Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 18.224.70.193
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
mysql /
mysql-test /
suite /
ndb /
t /
[ HOME SHELL ]
Name
Size
Permission
Action
bug36547.test
596
B
-rw-r--r--
clusterj.cnf
169
B
-rw-r--r--
clusterj.test
2.28
KB
-rw-r--r--
clusterj_jpa.test
2.71
KB
-rw-r--r--
disabled.def
1.36
KB
-rw-r--r--
have_ndb_dist_priv.inc
944
B
-rw-r--r--
have_ndb_error_insert.inc
931
B
-rw-r--r--
loaddata_autocom_ndb.test
308
B
-rw-r--r--
ndb_add_partition.cnf
594
B
-rw-r--r--
ndb_add_partition.test
13.3
KB
-rw-r--r--
ndb_addnode.cnf
665
B
-rw-r--r--
ndb_addnode.test
5.12
KB
-rw-r--r--
ndb_addnode_restart.cnf
79
B
-rw-r--r--
ndb_addnode_restart.test
299
B
-rw-r--r--
ndb_addnode_restart2.cnf
79
B
-rw-r--r--
ndb_addnode_restart2.test
465
B
-rw-r--r--
ndb_addnode_withbinlog.cnf
869
B
-rw-r--r--
ndb_addnode_withbinlog.test
1.18
KB
-rw-r--r--
ndb_alter_table.test
18.09
KB
-rw-r--r--
ndb_alter_table2.test
1.52
KB
-rw-r--r--
ndb_alter_table3.test
1.68
KB
-rw-r--r--
ndb_alter_table_backup.test
1.73
KB
-rw-r--r--
ndb_alter_table_dml.test
2.8
KB
-rw-r--r--
ndb_alter_table_error.test
1.15
KB
-rw-r--r--
ndb_alter_table_online.test
24.07
KB
-rw-r--r--
ndb_alter_table_online2.test
6.24
KB
-rw-r--r--
ndb_alter_table_online_multi.t...
2.08
KB
-rw-r--r--
ndb_auto_increment.test
12.89
KB
-rw-r--r--
ndb_autoinc.test
2.05
KB
-rw-r--r--
ndb_backup_rate.cnf
286
B
-rw-r--r--
ndb_backup_rate.test
2.35
KB
-rw-r--r--
ndb_basic.test
21.28
KB
-rw-r--r--
ndb_bitfield.test
6.54
KB
-rw-r--r--
ndb_blob.test
18.61
KB
-rw-r--r--
ndb_blob_big.cnf
380
B
-rw-r--r--
ndb_blob_big.test
1.83
KB
-rw-r--r--
ndb_blob_partition.test
4.49
KB
-rw-r--r--
ndb_bug13563280.test
743
B
-rw-r--r--
ndb_bug14166590.cnf
63
B
-rw-r--r--
ndb_bug14166590.test
1.45
KB
-rw-r--r--
ndb_bug17624736.cnf
110
B
-rw-r--r--
ndb_bug17624736.test
2.15
KB
-rw-r--r--
ndb_bug17719439.cnf
63
B
-rw-r--r--
ndb_bug17719439.test
1.34
KB
-rw-r--r--
ndb_bug19390895.cnf
272
B
-rw-r--r--
ndb_bug19390895.test
1.06
KB
-rw-r--r--
ndb_bug26793.test
1.06
KB
-rw-r--r--
ndb_bug31477.test
2.33
KB
-rw-r--r--
ndb_bulk_delete.test
4.13
KB
-rw-r--r--
ndb_bushy_joins.cnf
476
B
-rw-r--r--
ndb_bushy_joins.test
9.03
KB
-rw-r--r--
ndb_cache.cnf
201
B
-rw-r--r--
ndb_cache.test
8.13
KB
-rw-r--r--
ndb_cache2.cnf
23
B
-rw-r--r--
ndb_cache2.test
11.26
KB
-rw-r--r--
ndb_cache_multi.cnf
23
B
-rw-r--r--
ndb_cache_multi.test
2.09
KB
-rw-r--r--
ndb_cache_multi2.cnf
23
B
-rw-r--r--
ndb_cache_multi2.test
4.5
KB
-rw-r--r--
ndb_cache_trans.cnf
23
B
-rw-r--r--
ndb_cache_trans.test
4.85
KB
-rw-r--r--
ndb_charset.test
6.63
KB
-rw-r--r--
ndb_checksum.cnf
50
B
-rw-r--r--
ndb_checksum.test
77
B
-rw-r--r--
ndb_column_properties.test
4.71
KB
-rw-r--r--
ndb_condition_pushdown.test
85.29
KB
-rw-r--r--
ndb_config.test
4.16
KB
-rw-r--r--
ndb_config2.test
514
B
-rw-r--r--
ndb_create_table.test
1005
B
-rw-r--r--
ndb_cursor.test
1.1
KB
-rw-r--r--
ndb_database.test
3.18
KB
-rw-r--r--
ndb_dbug_lock.test
2.15
KB
-rw-r--r--
ndb_dbug_tc_select.test
4.03
KB
-rw-r--r--
ndb_dbug_tc_select_1.inc
1.83
KB
-rw-r--r--
ndb_dbug_tc_select_2.inc
1.91
KB
-rw-r--r--
ndb_dbug_tc_select_3.inc
2.06
KB
-rw-r--r--
ndb_dd_alter.test
9
KB
-rw-r--r--
ndb_dd_basic.test
20.93
KB
-rw-r--r--
ndb_dd_bug12581213.cnf
111
B
-rw-r--r--
ndb_dd_bug12581213.test
580
B
-rw-r--r--
ndb_dd_ddl.test
8.07
KB
-rw-r--r--
ndb_dd_disk2memory.test
10.4
KB
-rw-r--r--
ndb_dd_dump.test
10.79
KB
-rw-r--r--
ndb_dd_initial_lg.cnf
796
B
-rw-r--r--
ndb_dd_initial_lg.test
1.11
KB
-rw-r--r--
ndb_dd_restore_check_tablespac...
12.25
KB
-rw-r--r--
ndb_dd_restore_compat.test
1.13
KB
-rw-r--r--
ndb_dd_sql_features.test
16.35
KB
-rw-r--r--
ndb_ddl_open_trans.test
3.03
KB
-rw-r--r--
ndb_disconnect_ddl.test
1.52
KB
-rw-r--r--
ndb_discover_db-master.opt
43
B
-rw-r--r--
ndb_discover_db.test
3.41
KB
-rw-r--r--
ndb_dist_priv.test
10.53
KB
-rw-r--r--
ndb_dist_priv_bug_13340854.tes...
1.31
KB
-rw-r--r--
ndb_err4012.test
2.79
KB
-rw-r--r--
ndb_error_reporter.ini
288
B
-rw-r--r--
ndb_error_reporter.test
3.3
KB
-rw-r--r--
ndb_fired_trigger_shortage.cnf
60
B
-rw-r--r--
ndb_fired_trigger_shortage.tes...
1.31
KB
-rw-r--r--
ndb_fk_addnode.cnf
931
B
-rw-r--r--
ndb_fk_addnode.test
2.07
KB
-rw-r--r--
ndb_fk_alter.test
3.95
KB
-rw-r--r--
ndb_fk_bugs.test
20.95
KB
-rw-r--r--
ndb_fk_build.test
2.18
KB
-rw-r--r--
ndb_fk_cascade_delete.test
3.86
KB
-rw-r--r--
ndb_fk_cascade_delete_multi.te...
1.96
KB
-rw-r--r--
ndb_fk_cascade_update.test
1.37
KB
-rw-r--r--
ndb_fk_create_drop.test
2.55
KB
-rw-r--r--
ndb_fk_db.test
2.59
KB
-rw-r--r--
ndb_fk_deferred_cascade.test
2.81
KB
-rw-r--r--
ndb_fk_disable.test
11.61
KB
-rw-r--r--
ndb_fk_is.inc
2.59
KB
-rw-r--r--
ndb_fk_is.test
161
B
-rw-r--r--
ndb_fk_locase.cnf
63
B
-rw-r--r--
ndb_fk_locase.test
1.54
KB
-rw-r--r--
ndb_fk_locking.test
2.1
KB
-rw-r--r--
ndb_fk_multi_column.test
1.5
KB
-rw-r--r--
ndb_fk_mysqldump.test
1.32
KB
-rw-r--r--
ndb_fk_mysqldump2.test
1.76
KB
-rw-r--r--
ndb_fk_no_fk.test
25.97
KB
-rw-r--r--
ndb_fk_no_fk_compat.inc
3.94
KB
-rw-r--r--
ndb_fk_no_fk_legacy.test
112
B
-rw-r--r--
ndb_fk_no_fk_ndb-master.opt
49
B
-rw-r--r--
ndb_fk_no_fk_ndb.test
139
B
-rw-r--r--
ndb_fk_noaction.test
4.78
KB
-rw-r--r--
ndb_fk_resources.cnf
91
B
-rw-r--r--
ndb_fk_resources.test
1.44
KB
-rw-r--r--
ndb_fk_restore.inc
2.9
KB
-rw-r--r--
ndb_fk_restore.test
3.63
KB
-rw-r--r--
ndb_fk_restrict.test
5.19
KB
-rw-r--r--
ndb_fk_self_ref.test
3.85
KB
-rw-r--r--
ndb_fk_setdefault.test
982
B
-rw-r--r--
ndb_fk_setnull.test
2.43
KB
-rw-r--r--
ndb_global_schema_lock.test
3.71
KB
-rw-r--r--
ndb_global_schema_lock_error.t...
1.73
KB
-rw-r--r--
ndb_grant.later
10.98
KB
-rw-r--r--
ndb_hashmap.cnf
61
B
-rw-r--r--
ndb_hashmap.test
821
B
-rw-r--r--
ndb_hidden_pk.test
2.76
KB
-rw-r--r--
ndb_index.test
13.42
KB
-rw-r--r--
ndb_index_ordered.test
15.67
KB
-rw-r--r--
ndb_index_stat.test
11.05
KB
-rw-r--r--
ndb_index_stat_enable.inc
1.18
KB
-rw-r--r--
ndb_index_stat_partitions-mast...
70
B
-rw-r--r--
ndb_index_stat_partitions.test
4.27
KB
-rw-r--r--
ndb_index_stat_restart.test
2.47
KB
-rw-r--r--
ndb_index_unique.test
16.63
KB
-rw-r--r--
ndb_init_schema_locks_count.in...
325
B
-rw-r--r--
ndb_insert.test
37.01
KB
-rw-r--r--
ndb_join_pushdown.inc
131.68
KB
-rw-r--r--
ndb_join_pushdown_bka.test
2.98
KB
-rw-r--r--
ndb_join_pushdown_default.test
356
B
-rw-r--r--
ndb_join_pushdown_nobnl.test
464
B
-rw-r--r--
ndb_join_pushdown_none.test
1.15
KB
-rw-r--r--
ndb_jtie.test
1.17
KB
-rw-r--r--
ndb_limit.test
2.44
KB
-rw-r--r--
ndb_load.test
2.33
KB
-rw-r--r--
ndb_loaddatalocal.test
2.63
KB
-rw-r--r--
ndb_lock.test
5.89
KB
-rw-r--r--
ndb_lock_table.test
494
B
-rw-r--r--
ndb_many_fragments.cnf
433
B
-rw-r--r--
ndb_many_fragments.test
1.91
KB
-rw-r--r--
ndb_mgm.cnf
172
B
-rw-r--r--
ndb_mgm.inc
130
B
-rw-r--r--
ndb_mgm.test
7.38
KB
-rw-r--r--
ndb_mgmd.cnf
99
B
-rw-r--r--
ndb_mgmd.test
637
B
-rw-r--r--
ndb_minmax.test
1.48
KB
-rw-r--r--
ndb_multi.test
11.13
KB
-rw-r--r--
ndb_multi_row.test
1.99
KB
-rw-r--r--
ndb_multi_update_delete.test
2.02
KB
-rw-r--r--
ndb_native_default_support.tes...
27.65
KB
-rw-r--r--
ndb_one_fragment.cnf
443
B
-rw-r--r--
ndb_one_fragment.test
3.14
KB
-rw-r--r--
ndb_optimize_table.test
2.65
KB
-rw-r--r--
ndb_optimized_node_selection.t...
1.09
KB
-rw-r--r--
ndb_partition_error.test
2.04
KB
-rw-r--r--
ndb_partition_error2.test
579
B
-rw-r--r--
ndb_partition_hash.test
1.73
KB
-rw-r--r--
ndb_partition_key.test
7.85
KB
-rw-r--r--
ndb_partition_list.test
2.88
KB
-rw-r--r--
ndb_partition_range.test
8.11
KB
-rw-r--r--
ndb_print_file.test
1.35
KB
-rw-r--r--
ndb_rbwr.inc
2.13
KB
-rw-r--r--
ndb_rbwr.test
11.15
KB
-rw-r--r--
ndb_read_multi_range.test
14.9
KB
-rw-r--r--
ndb_reconnect.test
4.03
KB
-rw-r--r--
ndb_rename.test
1.19
KB
-rw-r--r--
ndb_replace.test
4.34
KB
-rw-r--r--
ndb_restart_nostart.inc
147
B
-rw-r--r--
ndb_restart_start.inc
130
B
-rw-r--r--
ndb_restore_bug17916243.test
1.21
KB
-rw-r--r--
ndb_restore_compat_compression...
46
B
-rw-r--r--
ndb_restore_compat_compression...
799
B
-rw-r--r--
ndb_restore_compat_downward.te...
4.21
KB
-rw-r--r--
ndb_restore_compat_endianness....
6.94
KB
-rw-r--r--
ndb_restore_conv_lossy_charbin...
17.35
KB
-rw-r--r--
ndb_restore_conv_lossy_integra...
23.02
KB
-rw-r--r--
ndb_restore_conv_more.test
20.65
KB
-rw-r--r--
ndb_restore_conv_padding.test
9.58
KB
-rw-r--r--
ndb_restore_conv_promotion.tes...
12.91
KB
-rw-r--r--
ndb_restore_discover.test
1.72
KB
-rw-r--r--
ndb_restore_misc.cnf
147
B
-rw-r--r--
ndb_restore_misc.test
27.44
KB
-rw-r--r--
ndb_restore_print.test
6.98
KB
-rw-r--r--
ndb_restore_schema_blobs.test
4.43
KB
-rw-r--r--
ndb_restore_schema_partitions....
15.04
KB
-rw-r--r--
ndb_restore_schema_rewrites.te...
16.47
KB
-rw-r--r--
ndb_restore_schema_subsets.tes...
11.14
KB
-rw-r--r--
ndb_restore_schema_tolerance.t...
6.72
KB
-rw-r--r--
ndb_restore_undolog.cnf
509
B
-rw-r--r--
ndb_restore_undolog.test
16.89
KB
-rw-r--r--
ndb_row_count.test
3.16
KB
-rw-r--r--
ndb_row_format.test
2.28
KB
-rw-r--r--
ndb_schema_locks_count.inc
308
B
-rw-r--r--
ndb_select_count.test
574
B
-rw-r--r--
ndb_share.cnf
652
B
-rw-r--r--
ndb_share.test
9.86
KB
-rw-r--r--
ndb_short_sigs.cnf
170
B
-rw-r--r--
ndb_short_sigs.test
2.7
KB
-rw-r--r--
ndb_show_tables_result.inc
768
B
-rw-r--r--
ndb_single_user-master.opt
32
B
-rw-r--r--
ndb_single_user.test
4.92
KB
-rw-r--r--
ndb_sp.test
1.09
KB
-rw-r--r--
ndb_spj_dict.test
9.25
KB
-rw-r--r--
ndb_sql_allow_batching.test
1.33
KB
-rw-r--r--
ndb_startup.test
2.01
KB
-rw-r--r--
ndb_statistics.inc
3.31
KB
-rw-r--r--
ndb_statistics0.test
613
B
-rw-r--r--
ndb_statistics1.test
612
B
-rw-r--r--
ndb_subquery.test
7.14
KB
-rw-r--r--
ndb_suma_handover.cnf
324
B
-rw-r--r--
ndb_suma_handover.test
1.62
KB
-rw-r--r--
ndb_temporary.test
1.3
KB
-rw-r--r--
ndb_tmp_table_and_DDL.test
603
B
-rw-r--r--
ndb_transaction.test
5.97
KB
-rw-r--r--
ndb_trigger.test
8.98
KB
-rw-r--r--
ndb_truncate.test
1004
B
-rw-r--r--
ndb_types.test
4.9
KB
-rw-r--r--
ndb_update.test
2.94
KB
-rw-r--r--
ndb_update_no_read.test
17.18
KB
-rw-r--r--
ndb_view.test
817
B
-rw-r--r--
ndb_wait_nostart.inc
103
B
-rw-r--r--
ndb_wait_started.inc
84
B
-rw-r--r--
ndb_wait_until_ready.cnf
544
B
-rw-r--r--
ndb_wait_until_ready.test
4.19
KB
-rw-r--r--
ndb_waiter.inc
148
B
-rw-r--r--
ndb_wl946_create.inc
449
B
-rw-r--r--
ndb_wl946_main.test
7.1
KB
-rw-r--r--
ndb_wl946_main_query.inc
66.38
KB
-rw-r--r--
ndb_wl946_post.test
2.67
KB
-rw-r--r--
ndb_wl946_pre.test
2.67
KB
-rw-r--r--
ndb_wl946_pre_query.inc
589
B
-rw-r--r--
ndb_wl946_select_all.inc
1.41
KB
-rw-r--r--
ndbapi-examples.test
3.29
KB
-rw-r--r--
ndbinfo.test
24.32
KB
-rw-r--r--
ndbinfo_cache.cnf
23
B
-rw-r--r--
ndbinfo_cache.test
882
B
-rw-r--r--
ndbinfo_dump.test
780
B
-rw-r--r--
ndbinfo_upgrade.test
1.15
KB
-rw-r--r--
ps_7ndb.test
1.08
KB
-rw-r--r--
show_attributes.inc
664
B
-rw-r--r--
show_indexes.inc
674
B
-rw-r--r--
show_primary_keys.inc
609
B
-rw-r--r--
show_varpart.inc
762
B
-rw-r--r--
strict_autoinc_5ndb.test
356
B
-rw-r--r--
test_debugger.test
267
B
-rw-r--r--
test_mgm.test
262
B
-rw-r--r--
test_mgmd.cnf
232
B
-rw-r--r--
test_mgmd.test
473
B
-rw-r--r--
test_ndbinfo.test
439
B
-rw-r--r--
wl10837.test
274
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ndb_rbwr.test
# # Test for read before write removal(rbwr) optimization in MySQL Cluster # # Parameter based testcase using a table containing the different queries # and their expected number of roundtrips(regarding rbwr). This allows the # same queries to be run with different settings while making sure that # the query result is always the same. Of course some settings causes the # rbwr optimzation to not apply and the expected number of roundtrips etc. # shouldn't be checked. # -- source include/have_ndb.inc -- source include/have_innodb.inc --disable_query_log --disable_result_log ### Setup parameter tables and utility procedures create table rbwr_tests ( test_id int primary key auto_increment, table_name varchar(255), query varchar(255), execute_count int, affected_rows int ) engine = MEMORY; ### Setup test tables # Same table as ndb_update_no_read create table t1 ( a int not null primary key, b int not null, c int, unique index_b (b) using hash ) engine = ndb; create temporary table data_t1 ( a int not null primary key, b int not null, c int ); insert into data_t1 values (1,10,1),(2,9,1),(3,8,1),(4,7,1),(5,6,1), (6,5,2),(7,4,2),(8,3,2),(9,2,2),(10,1,2); # Composite PK create table t2 ( pk_a int not null, pk_b int not null, pk_c int not null, PRIMARY KEY (pk_a,pk_b,pk_c), d int ) engine = ndb; create temporary table data_t2 ( a int not null, b int not null, c int not null, d int ); insert into data_t2 values (1,10,1,37),(2,9,1,38),(3,8,1,39),(4,7,1,40),(5,6,1,41), (6,5,2,42),(7,4,2,43),(8,3,2,44),(9,2,2,45),(10,1,2,46); # create table t3 ( pk_a varchar(256) not null, b int not null, c int not null, PRIMARY KEY (pk_a), unique index_cb (c,b) using hash, d int ) engine = ndb; create temporary table data_t3 ( a varchar(256) not null, b int not null, c int not null, d int ); insert into data_t3 values ('11111',10,1,44),('22222',9,2,45),('33333',8,3,46),('44444',7,4,47),('55555',6,5,48), ('66666',5,6,44),('77777',4,7,45),('88888',3,8,46),('99999',2,9,47),('00000',1,10,48); # Composite PK, more rows, random number of rows create table t4 ( pk_a varchar(256) not null, pk_b int not null, pk_c datetime not null, PRIMARY KEY (pk_a, pk_b, pk_c), d int, e varchar(255), f int, unique index_f (f) using hash, g bigint, h bigint, i bigint, j bigint, unique index_ghij (g,h,i,j) using hash ) engine = ndb; create temporary table data_t4 ( a varchar(256) not null, b int not null, c datetime not null, d int, e varchar(255), f int, g bigint, h int, i bigint, j char(11) ); let $i = `select round(rand() * 10)`; while ($i) { eval insert into data_t4 values ( REPEAT('$i', 4), $i, DATE_ADD("2012-10-15 11:11:11", INTERVAL $i SECOND), 100000-$i, REPEAT(CHAR(64+25*RAND()), 1+254*RAND()), $i, 1000+$i, 10000+$i, 100000+$i, 1000000+$i ); dec $i; } #Table with BLOB create table t5 ( a int not null primary key, b int not null, c int, d text, unique index_b (b) using hash ) engine = ndb; create temporary table data_t5 ( a int not null primary key, b int not null, c int, d text ); insert into data_t5 values (1,10,1,'aaa'),(2,9,1,'bbb'),(3,8,1,'ccc'),(4,7,1,''),(5,6,1,NULL), (6,5,2,'foo'),(7,4,2,'xxx'),(8,3,2,'yyy'),(9,2,2,'zzz'),(10,1,3,'xyz'); #enable_result_log; #select * from data_t4; #exit; ### Add test cases and their expected execute_count results # Same testcases as ndb_update_no_read INSERT INTO rbwr_tests (table_name, query, execute_count) VALUES ("t1", "update t1 set c = 97, b = 98 where a = 1", 2), ("t1", "delete from t1 where a = 1", 1), ("t1", "update t1 set c = 97 where b = 2", 1), ("t1", "update t1 set c = 97, b = 98 where b = 2", 2), ("t1", "delete from t1 where b = 9", 1), ("t1", "update t1 set c = 97 where a = 10 or a >= 10", 3), ("t1", "update t1 set c = 97 where a in (8,10)", 1), ("t1", "update t1 set c = 97 where a in (7,8) or a >= 10", 4), ("t1", "update t1 set a = 99, b = 98 where a = 3", 4), ("t1", "update t1 set a = 99, b = 98 where b = 7", 4), ("t1", "update t1 set c = 97, b = 98 where a = 5 and b = 6", 2), ("t1", "delete from t1 where b = 8 and c = 2", 2); # Using full primary key, one roundtrip INSERT INTO rbwr_tests (table_name, query, execute_count) VALUES ("t1", "delete from t1 where a = 1", 1), ("t1", "update t1 set c = 37 where a = 1", 1), ("t2", "delete from t2 where pk_a = 1 and pk_b = 2 and pk_c = 3", 1), ("t2", "update t2 set d = 37 where pk_a = 1 and pk_b = 2 and pk_c = 3", 1), ("t3", "delete from t3 where pk_a = \"11111\"", 1), ("t3", "update t3 set d = 37 where pk_a = \"11111\"", 1), ("t4", "delete from t4 where pk_a = \"16161616\" and pk_b = 16 and pk_c = \"2012-10-15 11:11:27\"", 1), ("t4", "update t4 set d = 37 where pk_a = \"16161616\" and pk_b = 16 and pk_c = \"2012-10-15 11:11:27\"", 1); # Using full unique key, one roundtrip INSERT INTO rbwr_tests (table_name, query, execute_count) VALUES ("t1", "delete from t1 where b = 1", 1), ("t1", "update t1 set c = 37 where b = 1", 1), # no unique key in t2 ("t3", "delete from t3 where c = 2 and b = 9", 1), ("t3", "update t3 set d = 37 where c = 2 and b = 9", 1), # The 4 cases below should supposedly also use only 1 roundtrip ("t4", "delete from t4 where f = 37", 2), ("t4", "update t4 set d = 37 where f = 37", 2), ("t4", "delete from t4 where g = 1009 and h = 10009 and i = 100009 and j = \"1000009\"", 2), ("t4", "update t4 set d = 37 where g = 1009 and h = 10009 and i = 100009 and j = \"1000009\"", 2); # Update (part of) primary key (may require read+delete+insert+commit) INSERT INTO rbwr_tests (table_name, query, execute_count) VALUES # All columns in PK updated ("t1", "update t1 set a = 97 where a = 1", 4), #PK ("t1", "update t1 set a = 98 where b = 1", 4), #Unique key # Update PK as keyop ("t2", "update t2 set pk_a = 37 where pk_a = 1 and pk_b = 2 and pk_c = 3", 2), #No match ("t2", "update t2 set pk_a = 38 where pk_a = 9 and pk_b = 2 and pk_c = 2", 4), ("t2", "update t2 set pk_b = 39 where pk_a = 9 and pk_b = 2 and pk_c = 2", 4), # Update PK as index-rangeop ("t2", "update t2 set pk_a = 47 where pk_a = 1 and pk_b = 2", 2), #No match ("t2", "update t2 set pk_a = 48 where pk_a = 9 and pk_b = 2", 6), # Update PK on table having BLOB ("t5", "update t5 set a = 57 where a = 1", 4), #PK ("t5", "update t5 set a = 58 where b = 1", 4), #Unique key # Update PK on table having BLOB, non existing rows ("t5", "update t5 set a = 57 where a = 99", 2), #PK ("t5", "update t5 set a = 58 where b = 99", 2) #Unique key ; # Update or delete of table with BLOB (Column 'd') set @b1 = 'b1'; set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1); INSERT INTO rbwr_tests (table_name, query, execute_count) VALUES ("t5", "update t5 set d = @b1 where a = 1", 3), #PK ("t5", "update t5 set d = NULL where a = 1", 3), #PK ("t5", "update t5 set d = @b1 where b = 1", 3), #UQ index ("t5", "update t5 set d = NULL where b = 1", 3), #UQ index ("t5", "update t5 set d = @b1 where c = 3", 3), #Scan 1 row ("t5", "update t5 set d = NULL where c = 3", 3), #Scan, update 1 row #("t5", "update t5 set d = @b1 where c > 1", 7), #Scan, update 5 rows #("t5", "update t5 set d = @b1", 12), #Scan, update 10 rows # Update BLOB in non existing rows ("t5", "update t5 set d = @b1 where a = 99", 2), #PK ("t5", "update t5 set d = NULL where a = 99", 2), #PK ("t5", "update t5 set d = @b1 where b = 99", 2), #UQ index ("t5", "update t5 set d = NULL where b = 99", 2), #UQ index ("t5", "update t5 set d = @b1 where c = 99", 2), #Scan ("t5", "update t5 set d = NULL where c = 99", 2), #Scan # Update BLOB also req. to read the BLOB column ("t5", "update t5 set d = concat(d,@b1) where a = 1", 3), #PK ("t5", "update t5 set d = concat(d,@b1) where b = 1", 3), #UQ index ("t5", "update t5 set d = concat(d,@b1) where c = 3", 3), #Scan 1 row #("t5", "update t5 set d = concat(d,@b1) where c > 1", 7), #Scan 5 rows #("t5", "update t5 set d = concat(d,@b1)", 11), #Scan 10 rows # Delete rows with BLOB ("t5", "delete from t5 where a = 1", 2), #PK ("t5", "delete from t5 where b = 1", 2), #UQ index ("t5", "delete from t5 where c = 3", 3), #Scan, single match #("t5", "delete from t5 where c > 1", 4), #Scan, match 5 rows #("t5", "delete from t5 where c > 0", 4), #Scan, match 10 rows ("t5", "delete from t5 where c > 9", 2) #Scan, no match #("t5", "delete from t5", 4) ; ### Run testcases while there are tests left in the param table while (`select count(*) from rbwr_tests`) { # Find one testcase select @test_id := test_id, @test_table := table_name, @test_query := query, @test_execute_count := execute_count, @test_affected_rows := affected_rows from rbwr_tests order by test_id limit 1; let $test_query = `select @test_query`; let $test_table = `select @test_table`; let $test_execute_count = `select @test_execute_count`; --source ndb_rbwr.inc # Delete testcase delete from rbwr_tests where test_id = @test_id; } ## Table with triggers CREATE TABLE main(id int NOT NULL AUTO_INCREMENT PRIMARY KEY, val int)engine=ndb; CREATE TABLE log(id int NOT NULL AUTO_INCREMENT PRIMARY KEY, bug_text varchar(500) NOT NULL)engine=ndb; # Check execute count to verify that read removal is not done for # a delete on a table which has a delete trigger CREATE TRIGGER log_deletes AFTER DELETE ON main FOR EACH ROW INSERT INTO log (bug_text) VALUES ("one row deleted"); let $before= `select VARIABLE_VALUE from information_schema.session_status where variable_name like 'NDB_EXECUTE_COUNT'`; eval DELETE FROM main WHERE id = 1; let $after= `select VARIABLE_VALUE from information_schema.session_status where variable_name like 'NDB_EXECUTE_COUNT'`; if (!`select $after-$before >= 4`) { enable_result_log; echo before: $before; echo after: $after; die Read removal used even when table has delete triggers, $after, $before - exiting; } # Check execute count to verify that read removal is not done for # an update on a table which has an update trigger CREATE TRIGGER log_updates AFTER UPDATE ON main FOR EACH ROW INSERT INTO log (bug_text) VALUES ("one row updated"); let $before= `select VARIABLE_VALUE from information_schema.session_status where variable_name like 'NDB_EXECUTE_COUNT'`; eval UPDATE main SET val = 111 WHERE id = 1; let $after= `select VARIABLE_VALUE from information_schema.session_status where variable_name like 'NDB_EXECUTE_COUNT'`; if (!`select $after-$before >= 3`) { enable_result_log; echo before: $before; echo after: $after; die Read removal used even when table has update triggers, $after, $before - exiting; } ### Cleanup # Drop test tables drop table t1, data_t1; drop table t2, data_t2; drop table t3, data_t3; drop table t4, data_t4; drop table t5, data_t5; drop trigger log_deletes; drop trigger log_updates; drop table main; drop table log; # Drop parameter tables drop table rbwr_tests; --enable_query_log --enable_result_log if ($ndb_rbwr_fail) { die Test failure detected!; }
Close