mariadb/mysql-test/t/multi_update.test

142 lines
3.9 KiB
Text
Raw Normal View History

#
# Only run the test if we are using --big-test, because this test takes a
# long time
#
This is a large push. Included are : * multi-table updates * new paid feature for limiting number of queries per hour for users * optional syntax for multi-table deletes * optimization for SQL_CALC_FOUND_ROWS * a small addition for CREATE .. SELECT that will be of future use I know that all this will require many additions to documentation, which I have not done, but I am at Arjen's disposal to help him document all this. libmysqld/lib_sql.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. mysql-test/r/multi_update.result: Change of the result to accomodate multi-table updates mysql-test/t/multi_update.test: Change in multi-table tests to accomodate multi-table updates BitKeeper/etc/ignore: Added 50 sql/new.cc to the ignore list scripts/mysql_install_db.sh: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/item_timefunc.h: This is a small feature that will be of use later in the proper creation of the tables out of CREATE ... SELECT... Further changes will come after this resolve/push/test passes .. sql/lex.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysql_priv.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysqld.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_class.h: These are changes required for multi-table updates. sql/sql_lex.h: Changes required for both multi-table updates and limiting number of queries per hour (paid feature). sql/sql_parse.cc: Ha ! So many changes. * multi-table updates * limiting number of queries per hour for users sql/sql_select.cc: Optimisation for SQL_CALC_FOUND_ROWS, when a query involves a single table, without WHERE or GROUP clause sql/sql_update.cc: multi-table updates sql/sql_yacc.yy: Many things : * multi-table updates * limiting number of queries per hour for users * new optional syntax for multi-table deletes. This one is different from the one demanded by user. USING clause MUST include ALL tables, not just the ones that are used and not deleted from.
2001-12-26 15:49:10 +01:00
#-- require r/big_test.require
#eval select $BIG_TEST as using_big_test;
drop table if exists t1,t2,t3;
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));
client/mysqlmanagerc.c added support for quiet increased line buffer size client/mysqltest.c fixed memory leak added query logging to result file added error message logging to result file added enable_query_log/disable_query_log mysql-test/mysql-test-run.sh converted tests to use mysqlmanager Updated test results BitKeeper/etc/ignore: added *.reject client/mysqlmanagerc.c: added support for quiet increased line buffer size client/mysqltest.c: fixed memory leak added query logging to result file added error message logging to result file added enable_query_log/disable_query_log mysql-test/mysql-test-run.sh: converted tests to use mysqlmanager mysql-test/r/alias.result: log queries mysql-test/r/alter_table.result: log queries mysql-test/r/analyse.result: log queries mysql-test/r/auto_increment.result: log queries mysql-test/r/backup.result: log queries mysql-test/r/bdb-crash.result: log queries mysql-test/r/bench_count_distinct.result: log queries mysql-test/r/bigint.result: log queries mysql-test/r/binary.result: log queries mysql-test/r/bulk_replace.result: log queries mysql-test/r/case.result: log queries mysql-test/r/check.result: log queries mysql-test/r/comments.result: log queries mysql-test/r/compare.result: log queries mysql-test/r/count_distinct.result: log queries mysql-test/r/count_distinct2.result: log queries mysql-test/r/create.result: log queries mysql-test/r/ctype_latin1_de.result: log queries mysql-test/r/delayed.result: log queries mysql-test/r/dirty-close.result: log queries mysql-test/r/distinct.result: log queries mysql-test/r/drop.result: log queries mysql-test/r/empty_table.result: log queries mysql-test/r/explain.result: log queries mysql-test/r/flush.result: log queries mysql-test/r/fulltext.result: log queries mysql-test/r/fulltext_cache.result: log queries mysql-test/r/fulltext_distinct.result: log queries mysql-test/r/fulltext_left_join.result: log queries mysql-test/r/fulltext_multi.result: log queries mysql-test/r/fulltext_order_by.result: log queries mysql-test/r/fulltext_update.result: log queries mysql-test/r/fulltext_var.result: log queries mysql-test/r/func_crypt.result: log queries mysql-test/r/func_date_add.result: log queries mysql-test/r/func_equal.result: log queries mysql-test/r/func_group.result: log queries mysql-test/r/func_in.result: log queries mysql-test/r/func_like.result: log queries mysql-test/r/func_math.result: log queries mysql-test/r/func_misc.result: log queries mysql-test/r/func_op.result: log queries mysql-test/r/func_regexp.result: log queries mysql-test/r/func_set.result: log queries mysql-test/r/func_str.result: log queries mysql-test/r/func_system.result: log queries mysql-test/r/func_test.result: log queries mysql-test/r/func_time.result: log queries mysql-test/r/func_timestamp.result: log queries mysql-test/r/group_by.result: log queries mysql-test/r/handler.result: log queries mysql-test/r/having.result: log queries mysql-test/r/heap.result: log queries mysql-test/r/identity.result: log queries mysql-test/r/ins000001.result: log queries mysql-test/r/insert.result: log queries mysql-test/r/insert_select.result: log queries mysql-test/r/isam.result: log queries mysql-test/r/join.result: log queries mysql-test/r/join_crash.result: log queries mysql-test/r/join_outer.result: log queries mysql-test/r/key.result: log queries mysql-test/r/key_diff.result: log queries mysql-test/r/key_primary.result: log queries mysql-test/r/keywords.result: log queries mysql-test/r/kill.result: log queries mysql-test/r/limit.result: log queries mysql-test/r/lock.result: log queries mysql-test/r/merge.result: log queries mysql-test/r/multi_update.result: log queries mysql-test/r/myisam.result: log queries mysql-test/r/null.result: log queries mysql-test/r/null_key.result: log queries mysql-test/r/odbc.result: log queries mysql-test/r/openssl_1.result: log queries mysql-test/r/openssl_2.result: log queries mysql-test/r/order_by.result: log queries mysql-test/r/order_fill_sortbuf.result: log queries mysql-test/r/raid.result: log queries mysql-test/r/range.result: log queries mysql-test/r/rename.result: log queries mysql-test/r/replace.result: log queries mysql-test/r/rollback.result: log queries mysql-test/r/rpl000001.result: log queries mysql-test/r/rpl000002.result: log queries mysql-test/r/rpl000003.result: log queries mysql-test/r/rpl000004.result: log queries mysql-test/r/rpl000005.result: log queries mysql-test/r/rpl000006.result: log queries mysql-test/r/rpl000007.result: log queries mysql-test/r/rpl000008.result: log queries mysql-test/r/rpl000009.result: log queries mysql-test/r/rpl000010.result: log queries mysql-test/r/rpl000011.result: log queries mysql-test/r/rpl000012.result: log queries mysql-test/r/rpl000013.result: log queries mysql-test/r/rpl000014.result: log queries mysql-test/r/rpl000015.result: log queries mysql-test/r/rpl000016.result: log queries mysql-test/r/rpl000017.result: log queries mysql-test/r/rpl000018.result: log queries mysql-test/r/rpl_get_lock.result: log queries mysql-test/r/rpl_log.result: log queries mysql-test/r/rpl_magic.result: log queries mysql-test/r/rpl_mystery22.result: log queries mysql-test/r/rpl_sporadic_master.result: log queries mysql-test/r/sel000001.result: log queries mysql-test/r/sel000002.result: log queries mysql-test/r/sel000003.result: log queries mysql-test/r/sel000031.result: log queries mysql-test/r/sel000032.result: log queries mysql-test/r/sel000033.result: log queries mysql-test/r/sel000100.result: log queries mysql-test/r/select.result: log queries mysql-test/r/select_found.result: log queries mysql-test/r/select_safe.result: log queries mysql-test/r/show_check.result: log queries mysql-test/r/slave-running.result: log queries mysql-test/r/slave-stopped.result: log queries mysql-test/r/status.result: log queries mysql-test/r/symlink.result: log queries mysql-test/r/tablelock.result: log queries mysql-test/r/temp_table.result: log queries mysql-test/r/truncate.result: log queries mysql-test/r/type_blob.result: log queries mysql-test/r/type_date.result: log queries mysql-test/r/type_datetime.result: log queries mysql-test/r/type_decimal.result: log queries mysql-test/r/type_enum.result: log queries mysql-test/r/type_float.result: log queries mysql-test/r/type_ranges.result: log queries mysql-test/r/type_time.result: log queries mysql-test/r/type_timestamp.result: log queries mysql-test/r/type_uint.result: log queries mysql-test/r/type_year.result: log queries mysql-test/r/union.result: log queries mysql-test/r/update.result: log queries mysql-test/r/user_var.result: log queries mysql-test/r/varbinary.result: log queries mysql-test/r/variables.result: log queries mysql-test/t/bench_count_distinct.test: log queries mysql-test/t/check.test: log queries mysql-test/t/count_distinct2.test: log queries mysql-test/t/flush.test: log queries mysql-test/t/isam.test: log queries mysql-test/t/multi_update.test: log queries mysql-test/t/myisam.test: log queries mysql-test/t/order_fill_sortbuf.test: log queries mysql-test/t/rpl000016.test: log queries tools/managertest1.nc: test for def_exec overwrite tools/mysqlmanager.c: support def_exec overwrite and queries on running server
2001-09-28 07:05:54 +02:00
disable_query_log;
This is a large push. Included are : * multi-table updates * new paid feature for limiting number of queries per hour for users * optional syntax for multi-table deletes * optimization for SQL_CALC_FOUND_ROWS * a small addition for CREATE .. SELECT that will be of future use I know that all this will require many additions to documentation, which I have not done, but I am at Arjen's disposal to help him document all this. libmysqld/lib_sql.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. mysql-test/r/multi_update.result: Change of the result to accomodate multi-table updates mysql-test/t/multi_update.test: Change in multi-table tests to accomodate multi-table updates BitKeeper/etc/ignore: Added 50 sql/new.cc to the ignore list scripts/mysql_install_db.sh: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/item_timefunc.h: This is a small feature that will be of use later in the proper creation of the tables out of CREATE ... SELECT... Further changes will come after this resolve/push/test passes .. sql/lex.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysql_priv.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysqld.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_class.h: These are changes required for multi-table updates. sql/sql_lex.h: Changes required for both multi-table updates and limiting number of queries per hour (paid feature). sql/sql_parse.cc: Ha ! So many changes. * multi-table updates * limiting number of queries per hour for users sql/sql_select.cc: Optimisation for SQL_CALC_FOUND_ROWS, when a query involves a single table, without WHERE or GROUP clause sql/sql_update.cc: multi-table updates sql/sql_yacc.yy: Many things : * multi-table updates * limiting number of queries per hour for users * new optional syntax for multi-table deletes. This one is different from the one demanded by user. USING clause MUST include ALL tables, not just the ones that are used and not deleted from.
2001-12-26 15:49:10 +01:00
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;
}
client/mysqlmanagerc.c added support for quiet increased line buffer size client/mysqltest.c fixed memory leak added query logging to result file added error message logging to result file added enable_query_log/disable_query_log mysql-test/mysql-test-run.sh converted tests to use mysqlmanager Updated test results BitKeeper/etc/ignore: added *.reject client/mysqlmanagerc.c: added support for quiet increased line buffer size client/mysqltest.c: fixed memory leak added query logging to result file added error message logging to result file added enable_query_log/disable_query_log mysql-test/mysql-test-run.sh: converted tests to use mysqlmanager mysql-test/r/alias.result: log queries mysql-test/r/alter_table.result: log queries mysql-test/r/analyse.result: log queries mysql-test/r/auto_increment.result: log queries mysql-test/r/backup.result: log queries mysql-test/r/bdb-crash.result: log queries mysql-test/r/bench_count_distinct.result: log queries mysql-test/r/bigint.result: log queries mysql-test/r/binary.result: log queries mysql-test/r/bulk_replace.result: log queries mysql-test/r/case.result: log queries mysql-test/r/check.result: log queries mysql-test/r/comments.result: log queries mysql-test/r/compare.result: log queries mysql-test/r/count_distinct.result: log queries mysql-test/r/count_distinct2.result: log queries mysql-test/r/create.result: log queries mysql-test/r/ctype_latin1_de.result: log queries mysql-test/r/delayed.result: log queries mysql-test/r/dirty-close.result: log queries mysql-test/r/distinct.result: log queries mysql-test/r/drop.result: log queries mysql-test/r/empty_table.result: log queries mysql-test/r/explain.result: log queries mysql-test/r/flush.result: log queries mysql-test/r/fulltext.result: log queries mysql-test/r/fulltext_cache.result: log queries mysql-test/r/fulltext_distinct.result: log queries mysql-test/r/fulltext_left_join.result: log queries mysql-test/r/fulltext_multi.result: log queries mysql-test/r/fulltext_order_by.result: log queries mysql-test/r/fulltext_update.result: log queries mysql-test/r/fulltext_var.result: log queries mysql-test/r/func_crypt.result: log queries mysql-test/r/func_date_add.result: log queries mysql-test/r/func_equal.result: log queries mysql-test/r/func_group.result: log queries mysql-test/r/func_in.result: log queries mysql-test/r/func_like.result: log queries mysql-test/r/func_math.result: log queries mysql-test/r/func_misc.result: log queries mysql-test/r/func_op.result: log queries mysql-test/r/func_regexp.result: log queries mysql-test/r/func_set.result: log queries mysql-test/r/func_str.result: log queries mysql-test/r/func_system.result: log queries mysql-test/r/func_test.result: log queries mysql-test/r/func_time.result: log queries mysql-test/r/func_timestamp.result: log queries mysql-test/r/group_by.result: log queries mysql-test/r/handler.result: log queries mysql-test/r/having.result: log queries mysql-test/r/heap.result: log queries mysql-test/r/identity.result: log queries mysql-test/r/ins000001.result: log queries mysql-test/r/insert.result: log queries mysql-test/r/insert_select.result: log queries mysql-test/r/isam.result: log queries mysql-test/r/join.result: log queries mysql-test/r/join_crash.result: log queries mysql-test/r/join_outer.result: log queries mysql-test/r/key.result: log queries mysql-test/r/key_diff.result: log queries mysql-test/r/key_primary.result: log queries mysql-test/r/keywords.result: log queries mysql-test/r/kill.result: log queries mysql-test/r/limit.result: log queries mysql-test/r/lock.result: log queries mysql-test/r/merge.result: log queries mysql-test/r/multi_update.result: log queries mysql-test/r/myisam.result: log queries mysql-test/r/null.result: log queries mysql-test/r/null_key.result: log queries mysql-test/r/odbc.result: log queries mysql-test/r/openssl_1.result: log queries mysql-test/r/openssl_2.result: log queries mysql-test/r/order_by.result: log queries mysql-test/r/order_fill_sortbuf.result: log queries mysql-test/r/raid.result: log queries mysql-test/r/range.result: log queries mysql-test/r/rename.result: log queries mysql-test/r/replace.result: log queries mysql-test/r/rollback.result: log queries mysql-test/r/rpl000001.result: log queries mysql-test/r/rpl000002.result: log queries mysql-test/r/rpl000003.result: log queries mysql-test/r/rpl000004.result: log queries mysql-test/r/rpl000005.result: log queries mysql-test/r/rpl000006.result: log queries mysql-test/r/rpl000007.result: log queries mysql-test/r/rpl000008.result: log queries mysql-test/r/rpl000009.result: log queries mysql-test/r/rpl000010.result: log queries mysql-test/r/rpl000011.result: log queries mysql-test/r/rpl000012.result: log queries mysql-test/r/rpl000013.result: log queries mysql-test/r/rpl000014.result: log queries mysql-test/r/rpl000015.result: log queries mysql-test/r/rpl000016.result: log queries mysql-test/r/rpl000017.result: log queries mysql-test/r/rpl000018.result: log queries mysql-test/r/rpl_get_lock.result: log queries mysql-test/r/rpl_log.result: log queries mysql-test/r/rpl_magic.result: log queries mysql-test/r/rpl_mystery22.result: log queries mysql-test/r/rpl_sporadic_master.result: log queries mysql-test/r/sel000001.result: log queries mysql-test/r/sel000002.result: log queries mysql-test/r/sel000003.result: log queries mysql-test/r/sel000031.result: log queries mysql-test/r/sel000032.result: log queries mysql-test/r/sel000033.result: log queries mysql-test/r/sel000100.result: log queries mysql-test/r/select.result: log queries mysql-test/r/select_found.result: log queries mysql-test/r/select_safe.result: log queries mysql-test/r/show_check.result: log queries mysql-test/r/slave-running.result: log queries mysql-test/r/slave-stopped.result: log queries mysql-test/r/status.result: log queries mysql-test/r/symlink.result: log queries mysql-test/r/tablelock.result: log queries mysql-test/r/temp_table.result: log queries mysql-test/r/truncate.result: log queries mysql-test/r/type_blob.result: log queries mysql-test/r/type_date.result: log queries mysql-test/r/type_datetime.result: log queries mysql-test/r/type_decimal.result: log queries mysql-test/r/type_enum.result: log queries mysql-test/r/type_float.result: log queries mysql-test/r/type_ranges.result: log queries mysql-test/r/type_time.result: log queries mysql-test/r/type_timestamp.result: log queries mysql-test/r/type_uint.result: log queries mysql-test/r/type_year.result: log queries mysql-test/r/union.result: log queries mysql-test/r/update.result: log queries mysql-test/r/user_var.result: log queries mysql-test/r/varbinary.result: log queries mysql-test/r/variables.result: log queries mysql-test/t/bench_count_distinct.test: log queries mysql-test/t/check.test: log queries mysql-test/t/count_distinct2.test: log queries mysql-test/t/flush.test: log queries mysql-test/t/isam.test: log queries mysql-test/t/multi_update.test: log queries mysql-test/t/myisam.test: log queries mysql-test/t/order_fill_sortbuf.test: log queries mysql-test/t/rpl000016.test: log queries tools/managertest1.nc: test for def_exec overwrite tools/mysqlmanager.c: support def_exec overwrite and queries on running server
2001-09-28 07:05:54 +02:00
enable_query_log;
select count(*) from t1 where id1 > 95;
select count(*) from t2 where id2 > 95;
select count(*) from t3 where id3 > 95;
This is a large push. Included are : * multi-table updates * new paid feature for limiting number of queries per hour for users * optional syntax for multi-table deletes * optimization for SQL_CALC_FOUND_ROWS * a small addition for CREATE .. SELECT that will be of future use I know that all this will require many additions to documentation, which I have not done, but I am at Arjen's disposal to help him document all this. libmysqld/lib_sql.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. mysql-test/r/multi_update.result: Change of the result to accomodate multi-table updates mysql-test/t/multi_update.test: Change in multi-table tests to accomodate multi-table updates BitKeeper/etc/ignore: Added 50 sql/new.cc to the ignore list scripts/mysql_install_db.sh: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/item_timefunc.h: This is a small feature that will be of use later in the proper creation of the tables out of CREATE ... SELECT... Further changes will come after this resolve/push/test passes .. sql/lex.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysql_priv.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysqld.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_class.h: These are changes required for multi-table updates. sql/sql_lex.h: Changes required for both multi-table updates and limiting number of queries per hour (paid feature). sql/sql_parse.cc: Ha ! So many changes. * multi-table updates * limiting number of queries per hour for users sql/sql_select.cc: Optimisation for SQL_CALC_FOUND_ROWS, when a query involves a single table, without WHERE or GROUP clause sql/sql_update.cc: multi-table updates sql/sql_yacc.yy: Many things : * multi-table updates * limiting number of queries per hour for users * new optional syntax for multi-table deletes. This one is different from the one demanded by user. USING clause MUST include ALL tables, not just the ones that are used and not deleted from.
2001-12-26 15:49:10 +01:00
update t1,t2,t3 set t1.t="aaa", t2.t="bbb", t3.t="cc" where t1.id1 = t2.id2 and t2.id2 = t3.id3 and t1.id1 > 90;
select count(*) from t1 where t = "aaa";
select count(*) from t1 where id1 > 90;
select count(*) from t2 where t = "bbb";
select count(*) from t2 where id2 > 90;
select count(*) from t3 where t = "cc";
select count(*) from t3 where id3 > 90;
This is a large push. Included are : * multi-table updates * new paid feature for limiting number of queries per hour for users * optional syntax for multi-table deletes * optimization for SQL_CALC_FOUND_ROWS * a small addition for CREATE .. SELECT that will be of future use I know that all this will require many additions to documentation, which I have not done, but I am at Arjen's disposal to help him document all this. libmysqld/lib_sql.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. mysql-test/r/multi_update.result: Change of the result to accomodate multi-table updates mysql-test/t/multi_update.test: Change in multi-table tests to accomodate multi-table updates BitKeeper/etc/ignore: Added 50 sql/new.cc to the ignore list scripts/mysql_install_db.sh: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/item_timefunc.h: This is a small feature that will be of use later in the proper creation of the tables out of CREATE ... SELECT... Further changes will come after this resolve/push/test passes .. sql/lex.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysql_priv.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysqld.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_class.h: These are changes required for multi-table updates. sql/sql_lex.h: Changes required for both multi-table updates and limiting number of queries per hour (paid feature). sql/sql_parse.cc: Ha ! So many changes. * multi-table updates * limiting number of queries per hour for users sql/sql_select.cc: Optimisation for SQL_CALC_FOUND_ROWS, when a query involves a single table, without WHERE or GROUP clause sql/sql_update.cc: multi-table updates sql/sql_yacc.yy: Many things : * multi-table updates * limiting number of queries per hour for users * new optional syntax for multi-table deletes. This one is different from the one demanded by user. USING clause MUST include ALL tables, not just the ones that are used and not deleted from.
2001-12-26 15:49:10 +01:00
delete t1.*, t2.*, t3.* from t1,t2,t3 where t1.id1 = t2.id2 and t2.id2 = t3.id3 and t1.id1 > 95;
check table t1, t2, t3;
This is a large push. Included are : * multi-table updates * new paid feature for limiting number of queries per hour for users * optional syntax for multi-table deletes * optimization for SQL_CALC_FOUND_ROWS * a small addition for CREATE .. SELECT that will be of future use I know that all this will require many additions to documentation, which I have not done, but I am at Arjen's disposal to help him document all this. libmysqld/lib_sql.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. mysql-test/r/multi_update.result: Change of the result to accomodate multi-table updates mysql-test/t/multi_update.test: Change in multi-table tests to accomodate multi-table updates BitKeeper/etc/ignore: Added 50 sql/new.cc to the ignore list scripts/mysql_install_db.sh: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/item_timefunc.h: This is a small feature that will be of use later in the proper creation of the tables out of CREATE ... SELECT... Further changes will come after this resolve/push/test passes .. sql/lex.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysql_priv.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysqld.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_class.h: These are changes required for multi-table updates. sql/sql_lex.h: Changes required for both multi-table updates and limiting number of queries per hour (paid feature). sql/sql_parse.cc: Ha ! So many changes. * multi-table updates * limiting number of queries per hour for users sql/sql_select.cc: Optimisation for SQL_CALC_FOUND_ROWS, when a query involves a single table, without WHERE or GROUP clause sql/sql_update.cc: multi-table updates sql/sql_yacc.yy: Many things : * multi-table updates * limiting number of queries per hour for users * new optional syntax for multi-table deletes. This one is different from the one demanded by user. USING clause MUST include ALL tables, not just the ones that are used and not deleted from.
2001-12-26 15:49:10 +01:00
select count(*) from t1 where id1 > 95;
select count(*) from t2 where id2 > 95;
select count(*) from t3 where id3 > 95;
This is a large push. Included are : * multi-table updates * new paid feature for limiting number of queries per hour for users * optional syntax for multi-table deletes * optimization for SQL_CALC_FOUND_ROWS * a small addition for CREATE .. SELECT that will be of future use I know that all this will require many additions to documentation, which I have not done, but I am at Arjen's disposal to help him document all this. libmysqld/lib_sql.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. mysql-test/r/multi_update.result: Change of the result to accomodate multi-table updates mysql-test/t/multi_update.test: Change in multi-table tests to accomodate multi-table updates BitKeeper/etc/ignore: Added 50 sql/new.cc to the ignore list scripts/mysql_install_db.sh: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/item_timefunc.h: This is a small feature that will be of use later in the proper creation of the tables out of CREATE ... SELECT... Further changes will come after this resolve/push/test passes .. sql/lex.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysql_priv.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysqld.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_class.h: These are changes required for multi-table updates. sql/sql_lex.h: Changes required for both multi-table updates and limiting number of queries per hour (paid feature). sql/sql_parse.cc: Ha ! So many changes. * multi-table updates * limiting number of queries per hour for users sql/sql_select.cc: Optimisation for SQL_CALC_FOUND_ROWS, when a query involves a single table, without WHERE or GROUP clause sql/sql_update.cc: multi-table updates sql/sql_yacc.yy: Many things : * multi-table updates * limiting number of queries per hour for users * new optional syntax for multi-table deletes. This one is different from the one demanded by user. USING clause MUST include ALL tables, not just the ones that are used and not deleted from.
2001-12-26 15:49:10 +01:00
delete t1, t2, t3 from t1,t2,t3 where t1.id1 = t2.id2 and t2.id2 = t3.id3 and t1.id1 > 5;
select count(*) from t1 where id1 > 5;
select count(*) from t2 where id2 > 5;
select count(*) from t3 where id3 > 5;
This is a large push. Included are : * multi-table updates * new paid feature for limiting number of queries per hour for users * optional syntax for multi-table deletes * optimization for SQL_CALC_FOUND_ROWS * a small addition for CREATE .. SELECT that will be of future use I know that all this will require many additions to documentation, which I have not done, but I am at Arjen's disposal to help him document all this. libmysqld/lib_sql.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. mysql-test/r/multi_update.result: Change of the result to accomodate multi-table updates mysql-test/t/multi_update.test: Change in multi-table tests to accomodate multi-table updates BitKeeper/etc/ignore: Added 50 sql/new.cc to the ignore list scripts/mysql_install_db.sh: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/item_timefunc.h: This is a small feature that will be of use later in the proper creation of the tables out of CREATE ... SELECT... Further changes will come after this resolve/push/test passes .. sql/lex.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysql_priv.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/mysqld.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.cc: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_acl.h: This is a small change required due to new paid feature of limiting number of queries per hour for each user. sql/sql_class.h: These are changes required for multi-table updates. sql/sql_lex.h: Changes required for both multi-table updates and limiting number of queries per hour (paid feature). sql/sql_parse.cc: Ha ! So many changes. * multi-table updates * limiting number of queries per hour for users sql/sql_select.cc: Optimisation for SQL_CALC_FOUND_ROWS, when a query involves a single table, without WHERE or GROUP clause sql/sql_update.cc: multi-table updates sql/sql_yacc.yy: Many things : * multi-table updates * limiting number of queries per hour for users * new optional syntax for multi-table deletes. This one is different from the one demanded by user. USING clause MUST include ALL tables, not just the ones that are used and not deleted from.
2001-12-26 15:49:10 +01:00
delete from t1, t2, t3 using t1,t2,t3 where t1.id1 = t2.id2 and t2.id2 = t3.id3 and t1.id1 > 0;
# These queries will force a scan of the table
select count(*) from t1 where id1;
select count(*) from t2 where id2;
select count(*) from t3 where id3;
drop table t1,t2,t3;
create table t1(id1 int not null primary key, t varchar(100)) pack_keys = 1;
create table t2(id2 int not null, t varchar(100), index(id2)) pack_keys = 1;
disable_query_log;
let $1 = 1000;
while ($1)
{
let $2 = 5;
eval insert into t1 values ($1,'aaaaaaaaaaaaaaaaaaaa');
while ($2)
{
eval insert into t2(id2,t) values ($1,'bbbbbbbbbbbbbbbbb');
dec $2;
}
dec $1;
}
enable_query_log;
delete t1 from t1,t2 where t1.id1 = t2.id2 and t1.id1 > 500;
drop table t1,t2;
DROP TABLE IF EXISTS a,b,c;
CREATE TABLE a (
id int(11) NOT NULL default '0',
name varchar(10) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
INSERT INTO a VALUES (1,'aaa'),(2,'aaa'),(3,'aaa');
CREATE TABLE b (
id int(11) NOT NULL default '0',
name varchar(10) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
INSERT INTO b VALUES (2,'bbb'),(3,'bbb'),(4,'bbb');
CREATE TABLE c (
id int(11) NOT NULL default '0',
mydate datetime default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
INSERT INTO c VALUES (1,'2002-02-04 00:00:00'),(3,'2002-05-12 00:00:00'),(5,'2002-05-12 00:00:00'),(6,'2002-06-22
00:00:00'),(7,'2002-07-22 00:00:00');
delete a,b,c from a,b,c
where to_days(now())-to_days(c.mydate)>=30
and c.id=a.id and c.id=b.id;
select * from c;
DROP TABLE IF EXISTS a,b,c;
2002-08-06 20:24:12 +02:00
drop table if exists parent, child;
CREATE TABLE IF NOT EXISTS `parent` (
`id` int(11) NOT NULL auto_increment,
`tst` text,
`tst1` text,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
CREATE TABLE IF NOT EXISTS `child` (
`ID` int(11) NOT NULL auto_increment,
`ParId` int(11) default NULL,
`tst` text,
`tst1` text,
PRIMARY KEY (`ID`),
KEY `IX_ParId_child` (`ParId`),
FOREIGN KEY (`ParId`) REFERENCES `test.parent` (`id`)
) TYPE=MyISAM;
INSERT INTO parent(tst,tst1)
VALUES("MySQL","MySQL AB"), ("MSSQL","Microsoft"), ("ORACLE","ORACLE");
INSERT INTO child(ParId)
VALUES(1), (2), (3);
select * from child;
UPDATE child, parent
SET child.tst = parent.tst,
child.tst1 = parent.tst1
WHERE child.ParId = parent.Id;
select * from child;
drop table parent, child;