diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/include | |
parent | Initial commit. (diff) | |
download | mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.tar.xz mariadb-3f619478f796eddbba6e39502fe941b285dd97b1.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/include')
585 files changed, 55887 insertions, 0 deletions
diff --git a/mysql-test/include/add_anonymous_users.inc b/mysql-test/include/add_anonymous_users.inc new file mode 100644 index 00000000..86ce529d --- /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 IGNORE INTO mysql.global_priv (host, user) VALUES ('localhost',''); +FLUSH PRIVILEGES; +enable_query_log; +enable_warnings; diff --git a/mysql-test/include/alter_table_mdev539.inc b/mysql-test/include/alter_table_mdev539.inc new file mode 100644 index 00000000..ea6d19df --- /dev/null +++ b/mysql-test/include/alter_table_mdev539.inc @@ -0,0 +1,69 @@ +--echo # +--echo # mdev-539: fast build of unique/primary indexes for MyISAM/Aria +--echo # + +--source include/default_charset.inc + +call mtr.add_suppression("Can't find record in '.*'"); + +--disable_warnings +DROP DATABASE IF EXISTS dbt3_s001; +--enable_warnings +CREATE DATABASE dbt3_s001; + +use dbt3_s001; + +--disable_query_log +--disable_result_log +--disable_warnings +--source include/dbt3_s001.inc +--enable_warnings +--enable_result_log +--enable_query_log + + +drop index `primary` on lineitem; +show create table lineitem; +alter table lineitem add primary key (l_orderkey, l_linenumber); +show create table lineitem; +drop index `primary` on lineitem; +select * from lineitem where l_orderkey=1 and l_linenumber=2; +insert into lineitem values +(1,68,9,2,36,34850.16,0.07,0.06,'N','O','1996-04-12','1996-02-28','1996-04-20','TAKE BACK RETURN','MAIL','slyly bold pinto beans detect s'); +select * from lineitem where l_orderkey=1 and l_linenumber=2; +--error ER_DUP_ENTRY +alter table lineitem add primary key (l_orderkey, l_linenumber); +show create table lineitem; +select * from lineitem where l_orderkey=1 and l_linenumber=2; +delete from lineitem where l_orderkey=1 and l_linenumber=2 and l_discount=0.07; +alter table lineitem add primary key (l_orderkey, l_linenumber); +show create table lineitem; +select * from lineitem where l_orderkey=1 and l_linenumber=2; + +create unique index i_c_name on customer(c_name); +show create table customer; +select * from customer where c_name='Customer#000000003'; +drop index i_c_name on customer; +insert into customer values +(303,'Customer#000000003','MG9kdTD2WBHm',1,'11-719-748-3364',7498.12,'AUTOMOBILE','special packages wake. slyly reg'); +select * from customer where c_name='Customer#000000003'; +--error ER_DUP_ENTRY +alter table customer add unique index i_c_name(c_name); +show create table customer; +select * from customer where c_name='Customer#000000003'; +delete from customer where c_custkey=303; +select * from customer where c_name='Customer#000000003'; +alter table customer add unique index i_c_name(c_name); +show create table customer; +select * from customer where c_name='Customer#000000003'; + +drop index `primary` on customer; +show create table customer; +insert into customer values +(3,'Customer#000000303','MG9kdTD2WBHm',1,'11-719-748-3364',7498.12,'AUTOMOBILE','special packages wake. slyly reg'); +alter ignore table customer add primary key (c_custkey); +show create table customer; +select * from customer where c_custkey=3; +--source include/restore_charset.inc +DROP DATABASE dbt3_s001; + diff --git a/mysql-test/include/analyze-format.inc b/mysql-test/include/analyze-format.inc new file mode 100644 index 00000000..49edd009 --- /dev/null +++ b/mysql-test/include/analyze-format.inc @@ -0,0 +1,7 @@ +# Remove non-deterministic parts of ANALYZE FORMAT=JSON output: +# - any timings +# - Buffer sizes (depend on pointer size) +# - r_engine_stats depends on buffer pool state and whether old record versions +# were purged. + +--replace_regex /("(r_[a-z_]*_time(_in_progress)?_ms|r_buffer_size)": )[^, \n]*/\1"REPLACED"/ /("r_engine_stats":) {[^}]*}/\1 REPLACED/ diff --git a/mysql-test/include/analyze-sync_with_master.test b/mysql-test/include/analyze-sync_with_master.test new file mode 100644 index 00000000..27b5a56c --- /dev/null +++ b/mysql-test/include/analyze-sync_with_master.test @@ -0,0 +1,9 @@ +# ==== Purpose ==== +# +# This is an auxiliary file that mysqltest executes when +# sync_slave_with_master or sync_with_master fails. The purpose is to +# print debug information. + +--let $rpl_server_count= 0 +--let $rpl_only_current_connection= 1 +--source include/show_rpl_debug_info.inc diff --git a/mysql-test/include/analyze-timeout.test b/mysql-test/include/analyze-timeout.test new file mode 100644 index 00000000..179ad8f7 --- /dev/null +++ b/mysql-test/include/analyze-timeout.test @@ -0,0 +1,3 @@ +SHOW PROCESSLIST; + +exit; diff --git a/mysql-test/include/assert.inc b/mysql-test/include/assert.inc new file mode 100644 index 00000000..34cc71e7 --- /dev/null +++ b/mysql-test/include/assert.inc @@ -0,0 +1,175 @@ +# ==== Purpose ==== +# +# Check if a condition holds, fail with debug info if not. +# +# The condition is parsed before executed. The following constructs +# are supported: +# +# [SQL_STATEMENT, COLUMN, ROW] +# The square bracket is replaced by the result from SQL_STATEMENT, +# in the given COLUMN and ROW. +# +# Optionally, SQL_STATEMENT may have the form: +# connection:SQL_STATEMENT +# In this case, SQL_STATEMENT is executed on the named connection. +# All other queries executed by this script will be executed on +# the connection that was in use when this script was started. +# The current connection will also be restored at the end of this +# script. +# +# Nested sub-statements on this form are not allowed. +# +# <1> +# This is a shorthand for the result of the first executed square +# bracket. <2> is a shorthand for the second executed square +# bracket, and so on. +# +# ==== Usage ==== +# +# --let $assert_text= Relay_Log_Pos must be between min_pos and max_pos +# --let $assert_cond= [SHOW SLAVE STATUS, Relay_Log_Pos, 1] >= $min_pos AND <1> <= $max_pos +# [--let $assert_quiet= 1] +# [--let $rpl_debug= 1] +# --source include/assert.inc +# +# Parameters: +# +# $assert_text +# Text that describes what is being checked. This text is written to +# the query log so it should not contain non-deterministic elements. +# +# $assert_cond +# Condition to check. See above for details about the format. The +# condition will be executed as `SELECT $assert_cond`. +# +# Both $assert_cond and the result from any substatement on the +# form [SQL_STATEMENT, COLUMN, ROW] will be used in SQL statements, +# inside single quotes (as in '$assert_text'). So any single quotes +# in these texts must be escaped or replaced by double quotes. +# +# $rpl_debug +# Print extra debug info. + + +--let $include_filename= assert.inc [$assert_text] +--source include/begin_include_file.inc + +if ($rpl_debug) +{ + --echo # debug: assert_text='$assert_text' assert_cond='$assert_cond' +} + +# Sanity-check input +if (!$assert_text) +{ + --die ERROR IN TEST: the mysqltest variable rpl_test must be set +} + +--let $_assert_old_connection= $CURRENT_CONNECTION + +# Evaluate square brackets in cond. +--let $_assert_substmt_number= 1 +--let $_assert_cond_interp= '$assert_cond' +--let $_assert_lbracket= `SELECT LOCATE('[', $_assert_cond_interp)` +while ($_assert_lbracket) +{ + # Get position of right bracket + --let $_assert_rbracket= `SELECT LOCATE(']', $_assert_cond_interp)` + if (!$_assert_rbracket) + { + --echo BUG IN TEST: Mismatching square brackets in assert_cond. + --echo Original assert_cond='$assert_cond' + --echo Interpolated assert_cond=$_assert_cond_interp + --die BUG IN TEST: Mismatching square brackets in $assert_cond + } + + # Get sub-statement from statement. Preserve escapes for single quotes. + --let $_assert_full_substmt= `SELECT QUOTE(SUBSTRING($_assert_cond_interp, $_assert_lbracket + 1, $_assert_rbracket - $_assert_lbracket - 1))` + + # Get connection from sub-statement + --let $_assert_colon= `SELECT IF($_assert_full_substmt REGEXP '^[a-zA-Z_][a-zA-Z_0-9]*:', LOCATE(':', $_assert_full_substmt), 0)` + --let $_assert_connection= + --let $_assert_substmt= $_assert_full_substmt + if ($_assert_colon) + { + --let $_assert_connection= `SELECT SUBSTRING($_assert_substmt, 1, $_assert_colon - 1)` + # Preserve escapes for single quotes. + --let $_assert_substmt= `SELECT QUOTE(SUBSTRING($_assert_substmt, $_assert_colon + 1))` + } + + # Interpolate escapes before using condition outside string context. + --let $_assert_substmt_interp= `SELECT $_assert_substmt` + + # Execute and get result from sub-statement + if ($_assert_connection) + { + if ($rpl_debug) + { + --echo # debug: connection='$_assert_connection' sub-statement=$_assert_substmt + } + --let $rpl_connection_name= $_assert_connection + --source include/rpl_connection.inc + --let $_assert_substmt_result= query_get_value($_assert_substmt_interp) + --let $rpl_connection_name= $_assert_old_connection + --source include/rpl_connection.inc + } + if (!$_assert_connection) + { + if ($rpl_debug) + { + --echo # debug: old connection, sub-statement=$_assert_substmt + } + --let $_assert_substmt_result= query_get_value($_assert_substmt_interp) + } + if ($rpl_debug) + { + --echo # debug: result of sub-statement='$_assert_substmt_result' + } + + # Replace sub-statement by its result + --let $_assert_cond_interp= `SELECT QUOTE(REPLACE($_assert_cond_interp, CONCAT('[', $_assert_full_substmt, ']'), '$_assert_substmt_result'))` + # Replace result references by result + --let $_assert_cond_interp= `SELECT QUOTE(REPLACE($_assert_cond_interp, '<$_assert_substmt_number>', '$_assert_substmt_result'))` + + --let $_assert_lbracket= `SELECT LOCATE('[', $_assert_cond_interp)` + + --inc $_assert_substmt_number +} + +# Interpolate escapes before using condition outside string context. +--let $_assert_cond_interp= `SELECT $_assert_cond_interp` + +if ($rpl_debug) +{ + --echo # debug: interpolated_cond='$_assert_cond_interp' +} + +# Execute. +--let $_assert_result= `SELECT $_assert_cond_interp` + +if ($rpl_debug) +{ + --echo # debug: result='$_assert_result' +} + +# Check. +if (!$_assert_result) +{ + --echo ######## Test assertion failed: $assert_text ######## + --echo Dumping debug info: + if ($rpl_inited) + { + --source include/show_rpl_debug_info.inc + } + --echo Assertion text: '$assert_text' + --echo Assertion condition: '$assert_cond' + --echo Assertion condition, interpolated: '$_assert_cond_interp' + --echo Assertion result: '$_assert_result' + --die Test assertion failed in assertion.inc +} + +--let $include_filename= assert.inc [$assert_text] +--source include/end_include_file.inc + +--let $assert_text= +--let $assert_cond= diff --git a/mysql-test/include/assert_grep.inc b/mysql-test/include/assert_grep.inc new file mode 100644 index 00000000..c4f18440 --- /dev/null +++ b/mysql-test/include/assert_grep.inc @@ -0,0 +1,159 @@ +# ==== Purpose ==== +# +# Grep a file for a pattern, produce a single string out of the +# matching lines, and assert that the string matches a given regular +# expression. +# +# ==== Usage ==== +# +# --let $assert_text= TEXT +# --let $assert_file= FILE +# --let $assert_select= REGEX +# [--let $assert_match= REGEX | --let $assert_count= NUMBER] +# [--let $assert_only_after= REGEX] +# --source include/assert_grep.inc +# +# Parameters: +# +# $assert_text +# Text that describes what is being checked. This text is written to +# the query log so it should not contain non-deterministic elements. +# +# $assert_file +# File to search. +# +# $assert_select +# All lines matching this text will be checked. +# +# $assert_match +# The script will find all lines that match $assert_select, +# concatenate them to a long string, and assert that it matches +# $assert_match. +# +# $assert_count +# Instead of asserting that the selected lines match +# $assert_match, assert that there were exactly $assert_count +# matching lines. +# +# $assert_only_after +# Reset all the lines matched and the counter when finding this pattern. +# It is useful for searching things in the mysqld.err log file just +# after the last server restart for example (discarding the log content +# of previous server executions). + + +if (!$assert_text) +{ + --die !!!ERROR IN TEST: you must set $assert_text +} +if (!$assert_file) +{ + --die !!!ERROR IN TEST: you must set $assert_file +} +if (!$assert_select) +{ + --die !!!ERROR IN TEST: you must set $assert_select +} +if ($assert_match == '') +{ + if ($assert_count == '') + { + --die !!!ERROR IN TEST: you must set either $assert_match or $assert_count + } +} +if ($assert_match != '') +{ + if ($assert_count != '') + { + --echo assert_text='$assert_text' assert_count='$assert_count' + --die !!!ERROR IN TEST: you must set only one of $assert_match or $assert_count + } +} + + +--let $include_filename= assert_grep.inc [$assert_text] +--source include/begin_include_file.inc + + +--let _AG_ASSERT_TEXT= $assert_text +--let _AG_ASSERT_FILE= $assert_file +--let _AG_ASSERT_SELECT= $assert_select +--let _AG_ASSERT_MATCH= $assert_match +--let _AG_ASSERT_COUNT= $assert_count +--let _AG_OUT= `SELECT CONCAT('$MYSQLTEST_VARDIR/tmp/_ag_', UUID())` +--let _AG_ASSERT_ONLY_AFTER= $assert_only_after + + +--perl + use strict; + use warnings; + my $file= $ENV{'_AG_ASSERT_FILE'}; + my $assert_select= $ENV{'_AG_ASSERT_SELECT'}; + my $assert_match= $ENV{'_AG_ASSERT_MATCH'}; + my $assert_count= $ENV{'_AG_ASSERT_COUNT'}; + my $assert_only_after= $ENV{'_AG_ASSERT_ONLY_AFTER'}; + my $out= $ENV{'_AG_OUT'}; + + if (!defined($assert_count)) { + $assert_count = ''; + } + + my $result= ''; + my $count= 0; + open(FILE, "$file") or die("Error $? opening $file: $!\n"); + while (<FILE>) { + my $line = $_; + if (($line =~ /^CURRENT_TEST: /) || + ($assert_only_after && $line =~ /$assert_only_after/)) { + $result = ""; + $count = 0; + } + if ($line =~ /$assert_select/) { + if ($assert_count ne '') { + $count++; + } + else { + $result .= $line; + } + } + } + close(FILE) or die("Error $? closing $file: $!"); + open OUT, "> $out" or die("Error $? opening $out: $!"); + if ($assert_count ne '' && ($count != $assert_count)) { + print OUT ($count) or die("Error $? writing $out: $!"); + } + elsif ($assert_count eq '' && $result !~ /$assert_match/) { + print OUT ($result) or die("Error $? writing $out: $!"); + } + else { + print OUT ("assert_grep.inc ok"); + } + close OUT or die("Error $? closing $out: $!"); +EOF + + +--let $_ag_outcome= `SELECT LOAD_FILE('$_AG_OUT')` +if ($_ag_outcome != 'assert_grep.inc ok') +{ + --source include/show_rpl_debug_info.inc + --echo include/assert_grep.inc failed! + --echo assert_text: '$assert_text' + --echo assert_file: '$assert_file' + --echo assert_select: '$assert_select' + --echo assert_match: '$assert_match' + --echo assert_count: '$assert_count' + --echo assert_only_after: '$assert_only_after' + if ($assert_match != '') + { + --echo matching lines: '$_ag_outcome' + } + if ($assert_count != '') + { + --echo number of matching lines: $_ag_outcome + } + --die assert_grep.inc failed. +} + +--remove_file $_AG_OUT +--let $include_filename= include/assert_grep.inc [$assert_text] +--source include/end_include_file.inc diff --git a/mysql-test/include/autoinc_mdev15353.inc b/mysql-test/include/autoinc_mdev15353.inc new file mode 100644 index 00000000..9085cb29 --- /dev/null +++ b/mysql-test/include/autoinc_mdev15353.inc @@ -0,0 +1,29 @@ +DELIMITER $$; +CREATE PROCEDURE autoinc_mdev15353_one(engine VARCHAR(64), t VARCHAR(64)) +BEGIN + DECLARE query TEXT DEFAULT 'CREATE TABLE t1 (' + ' id TTT NOT NULL AUTO_INCREMENT,' + ' name CHAR(30) NOT NULL,' + ' PRIMARY KEY (id)) ENGINE=EEE'; + EXECUTE IMMEDIATE REPLACE(REPLACE(query,'TTT', t), 'EEE', engine); + SHOW CREATE TABLE t1; + INSERT INTO t1 (name) VALUES ('dog'); + SELECT * FROM t1; + UPDATE t1 SET id=-1 WHERE id=1; + SELECT * FROM t1; + INSERT INTO t1 (name) VALUES ('cat'); + SELECT * FROM t1; + DROP TABLE t1; +END; +$$ +DELIMITER ;$$ + +CALL autoinc_mdev15353_one(@engine, 'tinyint'); +CALL autoinc_mdev15353_one(@engine, 'smallint'); +CALL autoinc_mdev15353_one(@engine, 'mediumint'); +CALL autoinc_mdev15353_one(@engine, 'int'); +CALL autoinc_mdev15353_one(@engine, 'bigint'); +CALL autoinc_mdev15353_one(@engine, 'float'); +CALL autoinc_mdev15353_one(@engine, 'double'); + +DROP PROCEDURE autoinc_mdev15353_one; diff --git a/mysql-test/include/begin_include_file.inc b/mysql-test/include/begin_include_file.inc new file mode 100644 index 00000000..6c438f3d --- /dev/null +++ b/mysql-test/include/begin_include_file.inc @@ -0,0 +1,91 @@ +# ==== Purpose ==== +# +# This is an auxiliary file that facilitates writing include/*.inc +# files. It has three purposes: +# +# 1. Store mtr's state at the beginning of the .inc file and restore +# the state at the end. The following status is restored: +# +# disable_warnings +# disable_query_log +# disable_result_log +# disable_abort_on_errors +# Current connection +# +# 2. This file also prints the name of the .inc file that sources +# it. Only the name of the top-level .inc file is printed: if +# file_1.inc sources file_2.inc, then this file only prints +# file_1.inc. +# +# 3. If the mysqltest variable $rpl_debug is set, then +# this file will print: +# +# ==== BEGIN include/<filename> ==== +# +# and end_include_file.inc will print +# +# ==== END include/<filename> ==== +# +# These printouts are indented to make it easier to read the +# result log. +# +# +# ==== Usage ==== +# +# # At the beginning of include/my_file.inc: +# --let $include_filename= my_file.inc +# [--let $rpl_debug= 1] +# --source include/begin_include_file.inc +# +# # At the end of include/my_file.inc: +# --let $include_filename= my_file.inc +# --source include/end_include_file.inc +# +# Parameters: +# $include_filename +# The basename of the file: a file named /path/to/my_file.inc +# should set $include_filename=my_file.inc. This parameter +# must be provided both for begin_include_file.inc and +# end_include_file.inc. +# +# $keep_include_silent +# This specifies whether it should be echoed to the result file +# the following string: include/$include_filename +# If not set, the string will be echoed. +# +# $rpl_debug +# If set, this script will print the following text: +# ==== BEGIN include/$include_filename.inc ==== + + +# Print 'include/$include_filename', but only when invoked from +# the top-level. We don't want to print +# 'include/$include_filename' from all files included +# recursively. +if (!$_include_file_depth) +{ + if (!$keep_include_silent) + { + --echo include/$include_filename + } + --let $_include_file_depth= 0 +} +--inc $_include_file_depth +if ($rpl_debug) +{ + --echo $_include_file_indent==== BEGIN include/$include_filename ==== +} + +--let $_include_file_enabled_warnings= $ENABLED_WARNINGS$_include_file_enabled_warnings +--let $_include_file_enabled_query_log= $ENABLED_QUERY_LOG$_include_file_enabled_query_log +--let $_include_file_enabled_result_log= $ENABLED_RESULT_LOG$_include_file_enabled_result_log +--let $_include_file_enabled_abort_on_error= $ENABLED_ABORT_ON_ERROR$_include_file_enabled_abort_on_error +--let $_include_file_connection= $CURRENT_CONNECTION,$_include_file_connection + +if ($rpl_debug) +{ + --echo $_include_file_indent con='$CURRENT_CONNECTION' warn='$ENABLED_WARNINGS' qlog='$ENABLED_QUERY_LOG' rlog='$ENABLED_RESULT_LOG' aborterr='$ENABLED_ABORT_ON_ERROR' +} + +--let $include_filename= +--let $_include_file_indent= .$_include_file_indent diff --git a/mysql-test/include/big_test.inc b/mysql-test/include/big_test.inc new file mode 100644 index 00000000..6bc6776d --- /dev/null +++ b/mysql-test/include/big_test.inc @@ -0,0 +1,4 @@ +--require include/big_test.require +disable_query_log; +eval select $BIG_TEST as using_big_test; +enable_query_log; diff --git a/mysql-test/include/big_test.require b/mysql-test/include/big_test.require new file mode 100644 index 00000000..001b9034 --- /dev/null +++ b/mysql-test/include/big_test.require @@ -0,0 +1,2 @@ +using_big_test +1 diff --git a/mysql-test/include/binlog_combinations.combinations b/mysql-test/include/binlog_combinations.combinations new file mode 100644 index 00000000..07042c2c --- /dev/null +++ b/mysql-test/include/binlog_combinations.combinations @@ -0,0 +1,8 @@ +[row] +binlog-format=row + +[stmt] +binlog-format=statement + +[mix] +binlog-format=mixed diff --git a/mysql-test/include/binlog_combinations.inc b/mysql-test/include/binlog_combinations.inc new file mode 100644 index 00000000..2ddd7876 --- /dev/null +++ b/mysql-test/include/binlog_combinations.inc @@ -0,0 +1,5 @@ +# The goal of including this file is to test with different +# binlog combinations: row, stmt or mix +# (see include/binlog_combinations.combinations) + +--source include/have_log_bin.inc diff --git a/mysql-test/include/binlog_inject_error.inc b/mysql-test/include/binlog_inject_error.inc new file mode 100644 index 00000000..ce940352 --- /dev/null +++ b/mysql-test/include/binlog_inject_error.inc @@ -0,0 +1,22 @@ +# +# === Name +# +# binlog_inject_error.inc +# +# === Description +# +# Inject binlog write error when running the query, verifies that the +# query is ended with the proper error (ER_ERROR_ON_WRITE). +# +# === Usage +# +# let query= 'CREATE TABLE t1 (a INT)'; +# source include/binlog_inject_error.inc; +# +set @saved_dbug = @@global.debug_dbug; +SET GLOBAL debug_dbug='d,injecting_fault_writing'; +--echo $query; +--replace_regex /(errno: .*)/(errno: #)/ +--error ER_ERROR_ON_WRITE +--eval $query +set @@global.debug_dbug = @saved_dbug; diff --git a/mysql-test/include/binlog_parallel_replication_marks.test b/mysql-test/include/binlog_parallel_replication_marks.test new file mode 100644 index 00000000..29e86d64 --- /dev/null +++ b/mysql-test/include/binlog_parallel_replication_marks.test @@ -0,0 +1,88 @@ +# Test the markings on GTID events (ddl, waited, trans, +# @@skip_parallel_replication) that are used to control parallel +# replication on the slave. + +--source include/have_innodb.inc + +RESET MASTER; +--source include/wait_for_binlog_checkpoint.inc + +CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +--let $binlog_pos1=query_get_value(SHOW MASTER STATUS, Position, 1) +/* GTID */ INSERT INTO t1 VALUES (1,0); +/* GTID */ BEGIN; +/* GTID */ INSERT INTO t1 VALUES (2,0); +/* GTID */ ALTER TABLE t1 ADD c INT; +/* GTID */ INSERT INTO t1 VALUES (3,0,0); +/* GTID */ COMMIT; +/* GTID */ BEGIN; +/* GTID */ UPDATE t1 SET b=1, c=1 WHERE a=2; +/* GTID */ CREATE TEMPORARY TABLE t2 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; +/* GTID */ INSERT INTO t2 VALUES (4,10), (5,20); +/* GTID */ INSERT INTO t1 SELECT a, 2, b FROM t2; +/* GTID */ DROP TEMPORARY TABLE t2; +/* GTID */ INSERT INTO t1 VALUES (6, 3, 0); +/* GTID */ COMMIT; +/* GTID */ CREATE TEMPORARY TABLE t3 (a INT PRIMARY KEY) ENGINE=InnoDB; +/* GTID */ BEGIN; +/* GTID */ DELETE FROM t1 WHERE a=5; +/* GTID */ INSERT INTO t3 VALUES (7); +/* GTID */ INSERT INTO t1 SELECT a, 4, 0 FROM t3; +/* GTID */ UPDATE t1 SET c=1 WHERE a=7; +/* GTID */ DROP TEMPORARY TABLE t3; +/* GTID */ COMMIT; +/* GTID */ CREATE TEMPORARY TABLE t4 (a INT PRIMARY KEY) ENGINE=InnoDB; +/* GTID */ BEGIN; +/* GTID */ INSERT INTO t1 VALUES (8, 5, 0); +/* GTID */ ALTER TABLE t4 ADD b INT; +/* GTID */ INSERT INTO t1 VALUES (9, 5, 1); +/* GTID */ COMMIT; +connect (tmp_con,localhost,root,,); +/* GTID */ INSERT INTO t1 VALUES (10, 6, 0); +/* GTID */ BEGIN; +/* GTID */ CREATE TEMPORARY TABLE t5 (a INT PRIMARY KEY) ENGINE=InnoDB; +/* GTID */ INSERT INTO t1 VALUES (11, 7, 0); +/* GTID */ COMMIT; +--let $before_drop_pos=query_get_value(SHOW MASTER STATUS, Position, 1) +disconnect tmp_con; +connection default; + +# We need to wait for the implicit DROP TEMPORARY TABLE to be logged after +# tmp_con disconnect, otherwise we get sporadic test failures. +# MDEV-20091: DROP TEMPORARY TABLE IF EXISTS statements will be written to +# binlog only if the corresponding temporary table exists. In row based +# replication temporary tables are not replicated hence their corresponding +# DROP TEMPORARY TABLE statement will be not be written to binary log upon +# session closure. + +if (!`SELECT @@BINLOG_FORMAT = 'ROW'`) { +--let $wait_condition= SELECT variable_value > $before_drop_pos FROM information_schema.global_status WHERE variable_name = 'binlog_snapshot_position' +--source include/wait_condition.inc +} +--let $binlog_pos2=query_get_value(SHOW MASTER STATUS, Position, 1) + +--let $binlog_file= query_get_value(SHOW MASTER STATUS, File, 1) +FLUSH LOGS; + +--let $MYSQLD_DATADIR= `select @@datadir` +--let $file= $MYSQLTEST_VARDIR/tmp/binlog_parallel_replication_marks.out +--let OUTPUT_FILE=$file +exec $MYSQL_BINLOG --start_position=$binlog_pos1 --stop_position=$binlog_pos2 $MYSQLD_DATADIR/$binlog_file > $file; + +perl; +my $file= $ENV{'OUTPUT_FILE'}; +open F, "<", $file + or die "Unable to open file '$file': $!\n"; +while (<F>) { + s/^#\d+ +\d+:\d+:\d+ /# /; + s/GTID \d+-\d+-\d+/GTID #-#-#/; + s/end_log_pos \d+/end_log_pos #/; + s/table id \d+/table id #/; + s/mapped to number \d+/mapped to number #/; + s/CRC32 0x[0-9a-f]+/CRC32 0x########/; + print if /\b(GTID|START TRANSACTION|COMMIT|Table_map|Write_rows|Update_rows|Delete_rows|generated by server|40005 TEMPORARY)\b/; +} +close F; +EOF + +DROP TABLE t1; diff --git a/mysql-test/include/binlog_start_pos.inc b/mysql-test/include/binlog_start_pos.inc new file mode 100644 index 00000000..5412a7ea --- /dev/null +++ b/mysql-test/include/binlog_start_pos.inc @@ -0,0 +1,28 @@ +############################################################################## +# +# binlog_start_pos is the postion of the the first event in the binary log +# which follows the Format description event. Intended to reduce test suite +# dependance on the Format description event length changes (e.g. in case +# of adding new events). Evaluated as: +# +# binlog_start_pos = 4 /* binlog header */ + +# (Format_description_log_event length) +# +# Format_description_log_event length = +# 19 /* event common header */ + +# 57 /* misc stuff in the Format description header */ + +# number of events + +# 1 /* Checksum algorithm */ + +# 4 /* CRC32 length */ +# +# With current number of events = 171, +# +# binlog_start_pos = 4 + 19 + 57 + 171 + 1 + 4 = 256. +# +############################################################################## + +--disable_query_log +set @binlog_start_pos=256 + @@encrypt_binlog * (36 + (@@binlog_checksum != 'NONE') * 4); +--enable_query_log +let $binlog_start_pos=`select @binlog_start_pos`; + diff --git a/mysql-test/include/bug38347.inc b/mysql-test/include/bug38347.inc new file mode 100644 index 00000000..99800849 --- /dev/null +++ b/mysql-test/include/bug38347.inc @@ -0,0 +1,17 @@ + +--echo +SHOW GRANTS FOR mysqltest_u1@localhost; + +--connect (con1,localhost,mysqltest_u1,,mysqltest_db1) +--connection con1 + +--echo +SHOW CREATE TABLE t1; + +--connection default + +--disconnect con1 + +--echo +REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_u1@localhost; +SHOW GRANTS FOR mysqltest_u1@localhost; diff --git a/mysql-test/include/bytes.inc b/mysql-test/include/bytes.inc new file mode 100644 index 00000000..71575992 --- /dev/null +++ b/mysql-test/include/bytes.inc @@ -0,0 +1,9 @@ +# +# Create a table with all byte values +# +CREATE TABLE halfs (a INT); +INSERT INTO halfs VALUES (0x00),(0x01),(0x02),(0x03),(0x04),(0x05),(0x06),(0x07); +INSERT INTO halfs VALUES (0x08),(0x09),(0x0A),(0x0B),(0x0C),(0x0D),(0x0E),(0x0F); +CREATE TEMPORARY TABLE bytes (a BINARY(1), KEY(a)) ENGINE=MyISAM; +INSERT INTO bytes SELECT CHAR((t1.a << 4) | t2.a USING BINARY) FROM halfs t1, halfs t2; +DROP TABLE halfs; diff --git a/mysql-test/include/bytes2.inc b/mysql-test/include/bytes2.inc new file mode 100644 index 00000000..c151d32a --- /dev/null +++ b/mysql-test/include/bytes2.inc @@ -0,0 +1,21 @@ +# +# Create a table with all 2 byte sequence values +# + +--source include/bytes.inc + +CREATE TABLE halfs (a BINARY(1)); +# "bytes" is a temporary table, hence is not allowed in joins +# Create a non-temporary copy. +INSERT INTO halfs SELECT * FROM bytes; +CREATE TEMPORARY TABLE bytes2 ( + a BINARY(2), + hi BINARY(1), + lo BINARY(1), + KEY(a), + KEY(lo) +) ENGINE=MyISAM; +INSERT INTO bytes2 +SELECT CONCAT(t1.a, t2.a), t1.a, t2.a FROM halfs t1, halfs t2 +ORDER BY t1.a, t2.a; +DROP TABLE halfs; diff --git a/mysql-test/include/case_insensitive_file_system.require b/mysql-test/include/case_insensitive_file_system.require new file mode 100644 index 00000000..062ac610 --- /dev/null +++ b/mysql-test/include/case_insensitive_file_system.require @@ -0,0 +1,2 @@ +Variable_name Value +lower_case_file_system ON diff --git a/mysql-test/include/case_insensitive_fs.require b/mysql-test/include/case_insensitive_fs.require new file mode 100644 index 00000000..062ac610 --- /dev/null +++ b/mysql-test/include/case_insensitive_fs.require @@ -0,0 +1,2 @@ +Variable_name Value +lower_case_file_system ON diff --git a/mysql-test/include/case_sensitive_file_system.require b/mysql-test/include/case_sensitive_file_system.require new file mode 100644 index 00000000..d0bdc6bf --- /dev/null +++ b/mysql-test/include/case_sensitive_file_system.require @@ -0,0 +1,2 @@ +Variable_name Value +lower_case_file_system OFF diff --git a/mysql-test/include/check-testcase.test b/mysql-test/include/check-testcase.test new file mode 100644 index 00000000..078f6572 --- /dev/null +++ b/mysql-test/include/check-testcase.test @@ -0,0 +1,156 @@ +# ==== Purpose ==== +# +# This test is executed twice for each test case. Before every +# testcase it is run with mysqltest in record mode and will thus +# produce an output file that can be compared to output from after the +# tescase. In that way, it is possible to check that a testcase does +# not have any unwanted side affects. + +--disable_query_log + +# We want to ensure all slave configuration is restored. But SHOW +# SLAVE STATUS returns nothing for servers not configured as slaves, +# and (after BUG#28796 was fixed) there is no way to de-configure a +# slave. Hence, it's impossible to clean up the replication state at +# the end. But we want to check that the slave is stopped, there is +# no error, and a few other invariants. So we issue SHOW SLAVE +# STATUS, and if it returns no rows we fake the result. +--let $tmp= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1) +--let $tmp= `SELECT '$tmp' = 'No such row'` +if ($tmp) +{ + # Note: after WL#5177, fields 13-18 shall not be filtered-out. + --echo Slave_IO_State + --echo Master_Host 127.0.0.1 + --echo Master_User root + --echo Master_Port # + --echo Connect_Retry # + --echo Master_Log_File # + --echo Read_Master_Log_Pos # + --echo Relay_Log_File # + --echo Relay_Log_Pos # + --echo Relay_Master_Log_File # + --echo Slave_IO_Running No + --echo Slave_SQL_Running No + --echo Replicate_Rewrite_DB # + --echo Replicate_Do_DB # + --echo Replicate_Ignore_DB # + --echo Replicate_Do_Table # + --echo Replicate_Ignore_Table # + --echo Replicate_Wild_Do_Table # + --echo Replicate_Wild_Ignore_Table # + --echo Last_Errno 0 + --echo Last_Error + --echo Skip_Counter 0 + --echo Exec_Master_Log_Pos # + --echo Relay_Log_Space # + --echo Until_Condition # + --echo Until_Log_File # + --echo Until_Log_Pos # + --echo Master_SSL_Allowed No + --echo Master_SSL_CA_File + --echo Master_SSL_CA_Path + --echo Master_SSL_Cert + --echo Master_SSL_Cipher + --echo Master_SSL_Key + --echo Seconds_Behind_Master NULL + --echo Master_SSL_Verify_Server_Cert No + --echo Last_IO_Errno 0 + --echo Last_IO_Error + --echo Last_SQL_Errno 0 + --echo Last_SQL_Error + --echo Replicate_Ignore_Server_Ids + --echo Master_Server_Id # + --echo Master_SSL_Crl # + --echo Master_SSL_Crlpath # + --echo Using_Gtid Slave_Pos + --echo Gtid_IO_Pos # + --echo Replicate_Do_Domain_Ids + --echo Replicate_Ignore_Domain_Ids + --echo Parallel_Mode optimistic + --echo SQL_Delay 0 + --echo SQL_Remaining_Delay NULL + --echo Slave_SQL_Running_State + --echo Slave_DDL_Groups # + --echo Slave_Non_Transactional_Groups # + --echo Slave_Transactional_Groups # +} +if (!$tmp) { + # Note: after WL#5177, fields 13-18 shall not be filtered-out. + --replace_column 4 # 5 # 6 # 7 # 8 # 9 # 10 # 13 # 14 # 15 # 16 # 17 # 18 # 19 # 23 # 24 # 25 # 26 # 27 # 41 # 42 # 43 # 45 # 52 # 53 # 54 # + query_vertical + SHOW SLAVE STATUS; +} + +# +# Ensure that we don't get warnings from mysql.proc (used by check_mysqld) +# + +--disable_query_log +--disable_warnings +--disable_result_log +select count(*) from mysql.proc; +--enable_result_log +--enable_warnings +--enable_query_log + +call mtr.check_testcase(); + +let $datadir=`select @@datadir`; +list_files $datadir mysql_upgrade_info; +list_files $datadir/test #sql*; +list_files $datadir/mysql #sql*; + +# +# Check that SHOW ENGINE INNODB STATUS does not show any active transactions +# We do this only if wsrep provider is loaded, to avoid disturbing any non-Galera MTR tests +# +if (`SELECT COUNT(*)=1 FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'wsrep' AND PLUGIN_STATUS='ACTIVE'`) { + if (`SELECT @@wsrep_on`) { + if (`SELECT COUNT(*) FROM information_schema.innodb_trx WHERE trx_mysql_thread_id != 0`) { + if ($before) { + --echo Before test start. + } + if (!$before) { + --echo After test end. + } + --echo There is one or more active InnoDB transaction(s) when there should be none. Dumping some diagnostics. + + --let $status_locks = `SELECT @@innodb_status_output_locks` + --let $status_output = `SELECT @@innodb_status_output` + --enable_query_log + SET GLOBAL innodb_status_output_locks=ON; + SHOW ENGINE INNODB STATUS; + --disable_query_log + --eval SET GLOBAL innodb_status_output_locks=$status_locks; + --eval SET GLOBAL innodb_status_output=$status_output; + --enable_query_log + + --vertical_results + if ($before) { + --replace_regex /$/ / + } + SELECT * FROM information_schema.processlist; + + if ($before) { + --replace_regex /$/ / + } + SELECT * FROM information_schema.innodb_trx; + + if ($before) { + --replace_regex /$/ / + } + SELECT * FROM information_schema.innodb_locks; + + if ($before) { + --replace_regex /$/ / + } + SELECT * FROM information_schema.innodb_lock_waits; + --horizontal_results + --disable_query_log + } + } +} + +--enable_query_log + diff --git a/mysql-test/include/check-warnings.test b/mysql-test/include/check-warnings.test new file mode 100644 index 00000000..be347ba4 --- /dev/null +++ b/mysql-test/include/check-warnings.test @@ -0,0 +1,68 @@ +# +# This test is executed once after each test to check the servers +# for unexpected warnings found in the servers error log +# +# NOTE! mysql-test-run.pl has already done a rough filtering +# of the file and written any suspicious lines +# to $error_log.warnings file +# +--disable_query_log + +# Don't write these queries to binlog +set SQL_LOG_BIN=0; + +# Do not replicate updates to other galera nodes +--error 0,1193 +set WSREP_ON=0; + +# Turn off any debug crashes, allow the variable to be +# non existent in release builds +--error 0,1193 +set debug_dbug=""; + +use mtr; +# Allow this session to read-write even if server is started +# with --transaction-read-only +set session transaction read write; + +create temporary table error_log ( + row int auto_increment primary key, + suspicious int default 1, + file_name varchar(255), + line varchar(1024) default null +) engine=myisam; + +# Get the name of servers error log +let $log_error= $MTR_LOG_ERROR; +let $log_warning= $log_error.warnings; + +# Try to load the warnings into a temporary table, +# it might fail with error saying "The MySQL server is +# running with the --secure-file-priv" in which case +# an attempt to load the file using LOAD DATA LOCAL is made +--error 0,1290 +eval load data infile '$log_warning' into table error_log + fields terminated by 'xykls37' escaped by '' + ignore 1 lines + (line) + set file_name='$log_error'; + +if ($mysql_errno) +{ + # Try LOAD DATA LOCAL + eval load data local infile '$log_warning' into table error_log + fields terminated by 'xykls37' escaped by '' + ignore 1 lines + (line) + set file_name='$log_error'; +} + +# Call check_warnings to filter out any warning in +# the error_log table +call mtr.check_warnings(@result); +if (`select @result = 0`){ + skip OK; +} +--enable_query_log +echo ^ Found warnings in $log_error; +exit; diff --git a/mysql-test/include/check_concurrent_insert.inc b/mysql-test/include/check_concurrent_insert.inc new file mode 100644 index 00000000..62de485d --- /dev/null +++ b/mysql-test/include/check_concurrent_insert.inc @@ -0,0 +1,96 @@ +# +# SUMMARY +# Check if statement reading table '$table' allows concurrent +# inserts in it. +# +# PARAMETERS +# $table Table in which concurrent inserts should be allowed. +# $con_aux1 Name of the first auxiliary connection to be used by this +# script. +# $con_aux2 Name of the second auxiliary connection to be used by this +# script. +# $statement Statement to be checked. +# $restore_table Table which might be modified by statement to be checked +# and thus needs backing up before its execution and +# restoring after it (can be empty). +# +# EXAMPLE +# lock_sync.test +# +--disable_result_log +--disable_query_log + +# Reset DEBUG_SYNC facility for safety. +set debug_sync= "RESET"; + +if ($restore_table) +{ +--eval create temporary table t_backup select * from $restore_table; +} + +connection $con_aux1; +set debug_sync='after_lock_tables_takes_lock SIGNAL parked WAIT_FOR go'; +--send_eval $statement; + +connection $con_aux2; +set debug_sync='now WAIT_FOR parked'; +--send_eval insert into $table (i) values (0); + +--enable_result_log +--enable_query_log +connection default; +# Wait until concurrent insert is successfully executed while +# statement being checked has its tables locked. +# We use wait_condition.inc instead of simply reaping +# concurrent insert here in order to avoid deadlocks if test +# fails and to time out gracefully instead. +let $wait_condition= + select count(*) = 0 from information_schema.processlist + where info = "insert into $table (i) values (0)"; +--source include/wait_condition.inc + +--disable_result_log +--disable_query_log + +if ($success) +{ +# Apparently concurrent insert was successfully executed. +# To be safe against wait_condition.inc succeeding due to +# races let us first reap concurrent insert to ensure that +# it has really been successfully executed. +connection $con_aux2; +--reap +connection default; +set debug_sync= 'now SIGNAL go'; +connection $con_aux1; +--reap +connection default; +--echo Success: '$statement' allows concurrent inserts into '$table'. +} +if (!$success) +{ +# Waiting has timed out. Apparently concurrent insert was blocked. +# So to be able to continue we need to end our statement first. +set debug_sync= 'now SIGNAL go'; +connection $con_aux1; +--reap +connection $con_aux2; +--reap +connection default; +--echo Error: '$statement' doesn't allow concurrent inserts into '$table'! +} + +--eval delete from $table where i = 0; + +if ($restore_table) +{ +--eval truncate table $restore_table; +--eval insert into $restore_table select * from t_backup; +drop temporary table t_backup; +} + +# Clean-up. Reset DEBUG_SYNC facility after use. +set debug_sync= "RESET"; + +--enable_result_log +--enable_query_log diff --git a/mysql-test/include/check_events_off.inc b/mysql-test/include/check_events_off.inc new file mode 100644 index 00000000..599a4b9e --- /dev/null +++ b/mysql-test/include/check_events_off.inc @@ -0,0 +1,31 @@ +########## include/check_events_off.inc #################################### +# # +# Purpose: # +# Wait till we can expect that we have no event activity till the scheduler is # +# switched on again. # +# = There will be no modifications of user tables by existing events # +# except they use "INSERT DELAYED" or the server system variable # +# "concurrent_inserts" is not switched off. # +# Only some storage engines support concurrent_inserts" or "INSERT DELAYED". # +# # +# Creation: # +# 2008-12-19 mleich Implement this check needed for bug fixes in tests # +# # +################################################################################ + +# 1. Check that the server system variable shows the state needed +if (`SELECT @@global.event_scheduler <> 'OFF'`) +{ + --echo # Error: We expect here that the event scheduler is switched off. + SELECT @@global.event_scheduler; + --echo # Thinkable reasons: + --echo # 1. SET GLOBAL event_scheduler = OFF had not the expected effect. + --echo # 2. Use of the current routine (include/check_events_off.inc) + --echo # within the wrong situation + --die +} +# 2. Wait till we have no event_scheduler session within the processlist +--source include/no_running_event_scheduler.inc +# 3. Wait till we have no event executor sessions within the processlist +--source include/no_running_events.inc + diff --git a/mysql-test/include/check_ftwrl_compatible.inc b/mysql-test/include/check_ftwrl_compatible.inc new file mode 100644 index 00000000..200f8cd3 --- /dev/null +++ b/mysql-test/include/check_ftwrl_compatible.inc @@ -0,0 +1,158 @@ +# +# SUMMARY +# Check that a statement is compatible with FLUSH TABLES WITH READ LOCK. +# +# PARAMETERS +# $con_aux1 Name of the 1st aux connection to be used by this script. +# $con_aux2 Name of the 2nd aux connection to be used by this script. +# $statement The statement to be checked. +# $cleanup_stmt The statement to be run in order to revert effects of +# the statement to be checked. +# $skip_3rd_chk Skip the 3rd stage of checking. The purpose of the third +# stage is to check that metadata locks taken by this +# statement are compatible with metadata locks taken +# by FTWRL. +# +# EXAMPLE +# flush_read_lock.test +# +--disable_result_log +--disable_query_log + +# Reset DEBUG_SYNC facility for safety. +set debug_sync= "RESET"; + +# +# First, check that the statement can be run under FTWRL. +# +flush tables with read lock; +--disable_abort_on_error +--eval $statement +--enable_abort_on_error +let $err= $mysql_errno; +if (!$err) +{ +--echo Success: Was able to run '$statement' under FTWRL. +unlock tables; +if ($cleanup_stmt) +{ +--eval $cleanup_stmt; +} +} +if ($err) +{ +--echo Error: Wasn't able to run '$statement' under FTWRL! +unlock tables; +} + +# +# Then check that this statement won't be blocked by FTWRL +# that is active in another connection. +# +connection $con_aux1; +flush tables with read lock; + +connection default; +--send_eval $statement; + +connection $con_aux1; + +--enable_result_log +--enable_query_log +let $wait_condition= + select count(*) = 0 from information_schema.processlist + where info = "$statement"; +--source include/wait_condition.inc +--disable_result_log +--disable_query_log + +if ($success) +{ +--echo Success: Was able to run '$statement' with FTWRL active in another connection. + +connection default; +# Apparently statement was successfully executed and so +# was not blocked by FTWRL. +# To be safe against wait_condition.inc succeeding due to +# races let us first reap the statement being checked to +# ensure that it has been successfully executed. +--reap + +connection $con_aux1; +unlock tables; + +connection default; +} +if (!$success) +{ +--echo Error: Wasn't able to run '$statement' with FTWRL active in another connection! +unlock tables; +connection default; +--reap +} + +if ($cleanup_stmt) +{ +--eval $cleanup_stmt; +} + +if (!$skip_3rd_check) +{ +# +# Finally, let us check that FTWRL will succeed if this statement +# is active but has already closed its tables. +# +connection default; +set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go'; +--send_eval $statement; + +connection $con_aux1; +set debug_sync="now WAIT_FOR parked"; +--send flush tables with read lock + +connection $con_aux2; +--enable_result_log +--enable_query_log +let $wait_condition= + select count(*) = 0 from information_schema.processlist + where info = "flush tables with read lock"; +--source include/wait_condition.inc +--disable_result_log +--disable_query_log + +if ($success) +{ +--echo Success: Was able to run FTWRL while '$statement' was active in another connection. +connection $con_aux1; +# Apparently FTWRL was successfully executed and so was not blocked by +# the statement being checked. To be safe against wait_condition.inc +# succeeding due to races let us first reap the FTWRL to ensure that it +# has been successfully executed. +--reap +unlock tables; +set debug_sync="now SIGNAL go"; +connection default; +--reap +} +if (!$success) +{ +--echo Error: Wasn't able to run FTWRL while '$statement' was active in another connection! +set debug_sync="now SIGNAL go"; +connection default; +--reap +connection $con_aux1; +--reap +unlock tables; +connection default; +} + +set debug_sync= "RESET"; +if ($cleanup_stmt) +{ +--eval $cleanup_stmt; +} + +} + +--enable_result_log +--enable_query_log diff --git a/mysql-test/include/check_ftwrl_incompatible.inc b/mysql-test/include/check_ftwrl_incompatible.inc new file mode 100644 index 00000000..a7e87c37 --- /dev/null +++ b/mysql-test/include/check_ftwrl_incompatible.inc @@ -0,0 +1,153 @@ +# +# SUMMARY +# Check that a statement is incompatible with FLUSH TABLES WITH READ LOCK. +# +# PARAMETERS +# $con_aux1 Name of the 1st aux connection to be used by this script. +# $con_aux2 Name of the 2nd aux connection to be used by this script. +# $statement The statement to be checked. +# $cleanup_stmt1 The 1st statement to be run in order to revert effects +# of statement to be checked. +# $cleanup_stmt2 The 2nd statement to be run in order to revert effects +# of statement to be checked. +# $skip_3rd_chk Skip the 3rd stage of checking. The purpose of the third +# stage is to check that metadata locks taken by this +# statement are incompatible with metadata locks taken +# by FTWRL. +# +# EXAMPLE +# flush_read_lock.test +# +--disable_result_log +--disable_query_log + +# Reset DEBUG_SYNC facility for safety. +set debug_sync= "RESET"; + +# +# First, check that the statement cannot be run under FTWRL. +# +flush tables with read lock; +--disable_abort_on_error +--eval $statement +--enable_abort_on_error +let $err= $mysql_errno; +if ($err) +{ +--echo Success: Was not able to run '$statement' under FTWRL. +unlock tables; +} +if (!$err) +{ +--echo Error: Was able to run '$statement' under FTWRL! +unlock tables; +if ($cleanup_stmt1) +{ +--eval $cleanup_stmt1; +} +if ($cleanup_stmt2) +{ +--eval $cleanup_stmt2; +} +} + + +# +# Then check that this statement is blocked by FTWRL +# that is active in another connection. +# +connection $con_aux1; +flush tables with read lock; + +connection default; +--send_eval $statement; + +connection $con_aux1; + +--enable_result_log +--enable_query_log +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for backup lock" and + info = "$statement"; +--source include/wait_condition.inc +--disable_result_log +--disable_query_log + +if ($success) +{ +--echo Success: '$statement' is blocked by FTWRL active in another connection. +} +if (!$success) +{ +--echo Error: '$statement' wasn't blocked by FTWRL active in another connection! +} +unlock tables; + +connection default; +--reap + +if ($cleanup_stmt1) +{ +--eval $cleanup_stmt1; +} +if ($cleanup_stmt2) +{ +--eval $cleanup_stmt2; +} + +if (!$skip_3rd_check) +{ +# +# Finally, let us check that FTWRL will not succeed if this +# statement is active but has already closed its tables. +# +connection default; +--eval set debug_sync='execute_command_after_close_tables SIGNAL parked WAIT_FOR go'; +--send_eval $statement; + +connection $con_aux1; +set debug_sync="now WAIT_FOR parked"; +--send flush tables with read lock + +connection $con_aux2; +--enable_result_log +--enable_query_log +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for backup lock" and + info = "flush tables with read lock"; +--source include/wait_condition.inc +--disable_result_log +--disable_query_log + +if ($success) +{ +--echo Success: FTWRL is blocked when '$statement' is active in another connection. +} +if (!$success) +{ +--echo Error: FTWRL isn't blocked when '$statement' is active in another connection! +} +set debug_sync="now SIGNAL go"; +connection default; +--reap +connection $con_aux1; +--reap +unlock tables; +connection default; + +set debug_sync= "RESET"; + +if ($cleanup_stmt1) +{ +--eval $cleanup_stmt1; +} +if ($cleanup_stmt2) +{ +--eval $cleanup_stmt2; +} +} + +--enable_result_log +--enable_query_log diff --git a/mysql-test/include/check_ipv6.inc b/mysql-test/include/check_ipv6.inc new file mode 100644 index 00000000..9b4fa16b --- /dev/null +++ b/mysql-test/include/check_ipv6.inc @@ -0,0 +1,5 @@ +# Check if ipv6 is available. +# +# The real check is done in the suite.pm +# (it has to be done *before* mysqld is started) +# diff --git a/mysql-test/include/check_key_reads.inc b/mysql-test/include/check_key_reads.inc new file mode 100644 index 00000000..cfb754bc --- /dev/null +++ b/mysql-test/include/check_key_reads.inc @@ -0,0 +1,6 @@ +# include file for checking if variable key_reads is zero +let $key_reads= query_get_value(SHOW STATUS LIKE 'key_reads',Value,1); +--disable_query_log +eval SELECT IF($key_reads = 0, "Yes!", "No!") as 'Zero key reads?'; +FLUSH STATUS; +--enable_query_log diff --git a/mysql-test/include/check_key_req.inc b/mysql-test/include/check_key_req.inc new file mode 100644 index 00000000..92a81f09 --- /dev/null +++ b/mysql-test/include/check_key_req.inc @@ -0,0 +1,9 @@ +# include file for checking if variable key_reads = key_read_requests +let $key_reads= query_get_value(SHOW STATUS LIKE 'key_reads',Value,1); +let $key_r_req= query_get_value(SHOW STATUS LIKE 'key_read_requests',Value,1); +let $key_writes= query_get_value(SHOW STATUS LIKE 'key_writes',Value,1); +let $key_w_req= query_get_value(SHOW STATUS LIKE 'key_write_requests',Value,1); +--disable_query_log +eval SELECT IF($key_reads = $key_r_req, "reads == requests", "reads != requests") as 'reads vs requests'; +eval SELECT IF($key_writes = $key_w_req, "writes == requests", "writes != requests") as 'writes vs requests'; +--enable_query_log diff --git a/mysql-test/include/check_no_concurrent_insert.inc b/mysql-test/include/check_no_concurrent_insert.inc new file mode 100644 index 00000000..ea3187d9 --- /dev/null +++ b/mysql-test/include/check_no_concurrent_insert.inc @@ -0,0 +1,82 @@ +# +# SUMMARY +# Check that statement reading table '$table' doesn't allow concurrent +# inserts in it. +# +# PARAMETERS +# $table Table in which concurrent inserts should be disallowed. +# $con_aux1 Name of the first auxiliary connection to be used by this +# script. +# $con_aux2 Name of the second auxiliary connection to be used by this +# script. +# $statement Statement to be checked. +# $restore_table Table which might be modified by statement to be checked +# and thus needs backing up before its execution and +# restoring after it (can be empty). +# +# EXAMPLE +# lock_sync.test +# +--disable_result_log +--disable_query_log + +# Reset DEBUG_SYNC facility for safety. +set debug_sync= "RESET"; + +if ($restore_table) +{ +--eval create temporary table t_backup select * from $restore_table; +} + +connection $con_aux1; +set debug_sync='after_lock_tables_takes_lock SIGNAL parked WAIT_FOR go'; +--send_eval $statement; + +connection $con_aux2; +set debug_sync='now WAIT_FOR parked'; +--send_eval insert into $table (i) values (0); + +--enable_result_log +--enable_query_log +connection default; +# Wait until concurrent insert is successfully blocked because +# of our statement. +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state = "Waiting for table level lock" and + info = "insert into $table (i) values (0)"; +--source include/wait_condition.inc + +--disable_result_log +--disable_query_log + +set debug_sync= 'now SIGNAL go'; +connection $con_aux1; +--reap +connection $con_aux2; +--reap +connection default; + +if ($success) +{ +--echo Success: '$statement' doesn't allow concurrent inserts into '$table'. +} +if (!$success) +{ +--echo Error: '$statement' allows concurrent inserts into '$table'! +} + +--eval delete from $table where i = 0; + +if ($restore_table) +{ +--eval truncate table $restore_table; +--eval insert into $restore_table select * from t_backup; +drop temporary table t_backup; +} + +# Clean-up. Reset DEBUG_SYNC facility after use. +set debug_sync= "RESET"; + +--enable_result_log +--enable_query_log diff --git a/mysql-test/include/check_no_row_lock.inc b/mysql-test/include/check_no_row_lock.inc new file mode 100644 index 00000000..c08e7f35 --- /dev/null +++ b/mysql-test/include/check_no_row_lock.inc @@ -0,0 +1,71 @@ +# +# SUMMARY +# Check if statement affecting or reading table '$table' doesn't +# take any kind of locks on its rows. +# +# PARAMETERS +# $table Table for which presence of row locks should be checked. +# $con_aux Name of auxiliary connection to be used by this script. +# $statement Statement to be checked. +# +# EXAMPLE +# innodb_mysql_lock2.test +# +--disable_result_log +--disable_query_log + +connection default; +begin; +--eval select * from $table for update; + +connection $con_aux; +begin; +--send_eval $statement; + +--enable_result_log +--enable_query_log + +connection default; +# Wait until statement is successfully executed while +# all rows in table are X-locked. This means that it +# does not acquire any row locks. +# We use wait_condition.inc instead of simply reaping +# statement here in order to avoid deadlocks if test +# fails and to time out gracefully instead. +let $wait_condition= + select count(*) = 0 from information_schema.processlist + where info = "$statement"; +--source include/wait_condition.inc + +--disable_result_log +--disable_query_log + +if ($success) +{ +# Apparently statement was successfully executed and thus it +# has not required any row locks. +# To be safe against wait_condition.inc succeeding due to +# races let us first reap the statement being checked to +# ensure that it has been successfully executed. +connection $con_aux; +--reap +rollback; +connection default; +rollback; +--echo Success: '$statement' doesn't take row locks on '$table'. +} +if (!$success) +{ +# Waiting has timed out. Apparently statement was blocked on +# some row lock. So to be able to continue we need to unlock +# rows first. +rollback; +connection $con_aux; +--reap +rollback; +connection default; +--echo Error: '$statement' takes some row locks on '$table'! +} + +--enable_result_log +--enable_query_log diff --git a/mysql-test/include/check_qep.inc b/mysql-test/include/check_qep.inc new file mode 100644 index 00000000..98a9d0b4 --- /dev/null +++ b/mysql-test/include/check_qep.inc @@ -0,0 +1,59 @@ +# include/check_qep.inc +# +# SUMMARY +# +# Designed to be used together with include/expect_qep.inc +# +# $query should be assigned a select statement using +# straight_join to force the tables to be joined in most +# optimal order. +# +# expect_qep.inc will then store the estimated 'Last_query_cost' +# and total # 'Handler_read%' for this straight_joined query. +# +# We should then assign a non-straight_join'ed version of +# the same query to $query and execute it using +# 'include/check_qep.inc'. Its estimated cost and +# #handler_reads will then be verified against the +# previous straight_joined query. +# +# USAGE +# +# let $query= <select straight_join optimal statement>; +# --source include/expect_qep.inc +# let $query= <select statement>; +# --source include/check_qep.inc +# +# EXAMPLE +# t/greedy_optimizer.test +# + +flush status; +eval EXPLAIN $query; +--disable_ps2_protocol +eval $query; +--enable_ps2_protocol + +let $cost= + query_get_value(SHOW STATUS LIKE 'Last_query_cost', Value, 1); + +--disable_warnings +let $reads= +`select sum(variable_value) + from information_schema.session_status + where VARIABLE_NAME like 'Handler_read%'`; +--enable_warnings + +#echo Cost: $cost, Handler_reads: $reads; + +if ($cost != $best_cost) +{ echo ### FAILED: Query_cost: $cost, expected: $best_cost ###; +} +# Difference in handler reads are ok as tables in MariaDB are sorted according +# to order in the query and the tables in greedy_optimizer.inc has reference to +# rows that does not exists, so different table orders will do different +# number of reads + +if ($reads != $best_reads) +{ echo ### NOTE: Handler_reads: $reads, expected: $best_reads ###; +} diff --git a/mysql-test/include/check_shared_row_lock.inc b/mysql-test/include/check_shared_row_lock.inc new file mode 100644 index 00000000..1c9d9b0c --- /dev/null +++ b/mysql-test/include/check_shared_row_lock.inc @@ -0,0 +1,62 @@ +# +# SUMMARY +# Check if statement reading table '$table' takes shared locks +# on some of its rows. +# +# PARAMETERS +# $table Table for which presence of row locks should be checked. +# $con_aux Name of auxiliary connection to be used by this script. +# $statement Statement to be checked. +# $wait_statement Sub-statement which is supposed to acquire locks (should +# be the same as $statement for ordinary statements). +# +# EXAMPLE +# innodb_mysql_lock2.test +# +--disable_result_log +--disable_query_log + +connection default; +begin; +--eval select * from $table for update; + +connection $con_aux; +begin; +--send_eval $statement; + +--enable_result_log +--enable_query_log + +connection default; +# Wait until statement is successfully blocked because +# all rows in table are X-locked. This means that at +# least it acquires S-locks on some of rows. +let $wait_condition= + select count(*) = 1 from information_schema.processlist + where state in ("Sending data","statistics", "preparing", "updating", + "executing", "Searching rows for update") and + info = "$wait_statement"; +--source include/wait_condition.inc + +--disable_result_log +--disable_query_log + +rollback; + +connection $con_aux; +--reap +rollback; + +connection default; +--enable_result_log +--enable_query_log + +if ($success) +{ +--echo Success: '$statement' takes shared row locks on '$table'. +} + +if (!$success) +{ +--echo Error: '$statement' hasn't taken shared row locks on '$table'! +} diff --git a/mysql-test/include/check_slave_is_running.inc b/mysql-test/include/check_slave_is_running.inc new file mode 100644 index 00000000..88664da7 --- /dev/null +++ b/mysql-test/include/check_slave_is_running.inc @@ -0,0 +1,30 @@ +# ==== Purpose ==== +# +# Assert that the slave threads are running and don't have any errors. +# +# +# ==== Usage ==== +# +# [--let $rpl_debug= 1] +# --source include/check_slave_is_running.inc +# +# Parameters: +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= check_slave_is_running.inc +--source include/begin_include_file.inc + + +--let $slave_param= Slave_IO_Running +--let $slave_param_value= Yes +--source include/check_slave_param.inc + +--let $slave_param= Slave_SQL_Running +--let $slave_param_value= Yes +--source include/check_slave_param.inc + + +--let $include_filename= check_slave_is_running.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/check_slave_no_error.inc b/mysql-test/include/check_slave_no_error.inc new file mode 100644 index 00000000..9922b426 --- /dev/null +++ b/mysql-test/include/check_slave_no_error.inc @@ -0,0 +1,31 @@ +# ==== Purpose ==== +# +# Assert that Slave_SQL_Errno = Slave_IO_Errno = 0 in the output from +# SHOW SLAVE STATUS. +# +# +# ==== Usage ==== +# +# [--let $rpl_debug= 1] +# --source include/check_slave_no_error.inc +# +# Parameters: +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= check_slave_no_error.inc +--source include/begin_include_file.inc + + +--let $slave_param= Last_SQL_Errno +--let $slave_param_value= 0 +--source include/check_slave_param.inc + +--let $slave_param= Last_IO_Errno +--let $slave_param_value= 0 +--source include/check_slave_param.inc + + +--let $include_filename= check_slave_no_error.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/check_slave_param.inc b/mysql-test/include/check_slave_param.inc new file mode 100644 index 00000000..7f9971d6 --- /dev/null +++ b/mysql-test/include/check_slave_param.inc @@ -0,0 +1,36 @@ +# ==== Purpose ==== +# +# Assert that a given column in SHOW SLAVE STATUS has a given value. +# +# ==== Usage ==== +# +# --let $slave_param= COLUMN_NAME +# --let $slave_param_value= VALUE +# [--let $rpl_debug= 1] +# --source include/check_slave_param.inc +# +# Parameters: +# $slave_param, $slave_param_value +# Column name in output of SHOW SLAVE STATUS that should be checked, +# and the expected value. Example: +# --let $slave_param= Exec_Master_Log_Pos +# --let $slave_param_value= 4711 +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= check_slave_param.inc [$slave_param] +--source include/begin_include_file.inc + + +--let $_param_value= query_get_value(SHOW SLAVE STATUS, $slave_param, 1) +if ($_param_value != $slave_param_value) { + --source include/show_rpl_debug_info.inc + --echo Wrong value for $slave_param. Expected '$slave_param_value', got '$_param_value' + --die Wrong value for slave parameter $slave_param +} + + +--let $include_filename= check_slave_param.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/check_utf8_cli.inc b/mysql-test/include/check_utf8_cli.inc new file mode 100644 index 00000000..a1fac216 --- /dev/null +++ b/mysql-test/include/check_utf8_cli.inc @@ -0,0 +1,3 @@ +# Check if utf8 can be used on the command line for --exec +# The real check is done in the suite.pm +# diff --git a/mysql-test/include/check_var_limit.inc b/mysql-test/include/check_var_limit.inc new file mode 100644 index 00000000..7fd886c6 --- /dev/null +++ b/mysql-test/include/check_var_limit.inc @@ -0,0 +1,9 @@ +# +# Check that second part of $LIMIT is between $MIN_LIMIT and $MAX_LIMIT +# This is useful to check that a variable from SHOW_VARIABLES is within +# certain limits. Check query_cache_merge.test for an example of using this. +# +-- require include/check_var_limit.require +disable_query_log; +eval select SUBSTRING_INDEX("$LIMIT", "\\t", -1) BETWEEN $MIN_LIMIT AND $MAX_LIMIT as "limit"; +enable_query_log; diff --git a/mysql-test/include/check_var_limit.require b/mysql-test/include/check_var_limit.require new file mode 100644 index 00000000..01a59782 --- /dev/null +++ b/mysql-test/include/check_var_limit.require @@ -0,0 +1,2 @@ +limit +1 diff --git a/mysql-test/include/check_windows_admin.inc b/mysql-test/include/check_windows_admin.inc new file mode 100644 index 00000000..44a8b71a --- /dev/null +++ b/mysql-test/include/check_windows_admin.inc @@ -0,0 +1,3 @@ +# Check if current user is Windows admin +# Used for testing services with mysql_install_db.exe +# Actual value is set by suite.pm diff --git a/mysql-test/include/cleanup_fake_relay_log.inc b/mysql-test/include/cleanup_fake_relay_log.inc new file mode 100644 index 00000000..921484ec --- /dev/null +++ b/mysql-test/include/cleanup_fake_relay_log.inc @@ -0,0 +1,28 @@ +# ==== Purpose ==== +# +# Clean up files created by setup_fake_relay_log.inc. +# +# ==== Usage ==== +# +# See setup_fake_relay_log.inc + +--let $include_filename= cleanup_fake_relay_log.inc +--source include/begin_include_file.inc + + +--disable_query_log +RESET SLAVE; + +# Assert that the fake relay log files are gone (RESET SLAVE should +# have removed them). +--let $file_does_not_exist= $_fake_relay_log +--source include/file_does_not_exist.inc + +# Revert variables. +eval SET @@global.relay_log_purge= $_fake_relay_log_purge; + +eval CHANGE MASTER TO MASTER_HOST = '$_fake_old_master_host'; + + +--let $include_filename= cleanup_fake_relay_log.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/column_compression_rpl.inc b/mysql-test/include/column_compression_rpl.inc new file mode 100644 index 00000000..f9986f69 --- /dev/null +++ b/mysql-test/include/column_compression_rpl.inc @@ -0,0 +1,262 @@ + +--disable_ps2_protocol + +--connection slave + +SET @saved_slave_type_conversions = @@slave_type_conversions; +SET GLOBAL SLAVE_TYPE_CONVERSIONS = 'ALL_NON_LOSSY'; + +--connection master +if (!$engine_type) {let $engine_type=`SELECT @@default_storage_engine`; let $engine_type2=`SELECT @@default_storage_engine`;} + +--disable_warnings +DROP TABLE IF EXISTS t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; +--enable_warnings + +echo --------------------------------------------------------------------------------------------------------------; +echo --------------------------------------------COMPRESSED TO COMPRESSED------------------------------------------; +echo --------------------------------------------------------------------------------------------------------------; + +--sync_slave_with_master +eval CREATE TABLE t1 (a BLOB COMPRESSED default "1111111111") ENGINE=$engine_type2; +eval CREATE TABLE t2 (a TINYBLOB COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t3 (a MEDIUMBLOB COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t4 (a LONGBLOB COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t5 (a TEXT COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t6 (a TINYTEXT COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t7 (a MEDIUMTEXT COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t8 (a LONGTEXT COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t9 (a VARCHAR(10000) COMPRESSED default "0") ENGINE=$engine_type2; +eval CREATE TABLE t10 (a VARBINARY(10000) COMPRESSED) ENGINE=$engine_type2; + +--connection master +eval CREATE TABLE t1 (a BLOB COMPRESSED default "1111111111") ENGINE=$engine_type; +eval CREATE TABLE t2 (a TINYBLOB COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE t3 (a MEDIUMBLOB COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE t4 (a LONGBLOB COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE t5 (a TEXT COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE t6 (a TINYTEXT COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE t7 (a MEDIUMTEXT COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE t8 (a LONGTEXT COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE t9 (a VARCHAR(10000) COMPRESSED default "0") ENGINE=$engine_type; +eval CREATE TABLE t10 (a VARBINARY(10000) COMPRESSED) ENGINE=$engine_type; + +INSERT INTO t1(a) VALUES(REPEAT('a',1000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),(default); +INSERT INTO t2(a) VALUES(REPEAT('a',100)),(REPEAT('v',200)),(REPEAT('r',254)),(NULL); +INSERT INTO t3(a) VALUES(REPEAT('a',100)),(REPEAT('v',2000)),("April"),(NULL); +INSERT INTO t4(a) VALUES(REPEAT('a',10000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),("00-00-00"); +INSERT INTO t5(a) VALUES(REPEAT('a',1000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL); +INSERT INTO t6(a) VALUES(REPEAT('a',100)),(REPEAT('v',200)),(REPEAT('r',254)),(NULL); +INSERT INTO t7(a) VALUES(REPEAT('a',100)),(REPEAT('v',200)),(REPEAT('r',3000)),(NULL); +INSERT INTO t8(a) VALUES(REPEAT('a',10000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),("qwerty"); +INSERT INTO t9(a) VALUES(REPEAT('a',1000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),("12-12-2009"),(default); +INSERT INTO t10(a) VALUES(REPEAT('a',1000)),(REPEAT('v',2000)),(REPEAT('r',300)),(NULL), (""); + +echo --------------------------------------------------data on master------------------------------------------------; + +let $a= 10; +while ($a) +{ + --sorted_result + eval SELECT LENGTH(a), SUBSTRING(a,1,10), "M,compressed" from t$a; + --sorted_result + eval SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t$a'; + dec $a; +} +SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_compressions', 'Column_decompressions'); + +echo --------------------------------------------------data on slave-------------------------------------------------; + +--sync_slave_with_master +let $a= 10; +while ($a) +{ + --sorted_result + eval SELECT LENGTH(a), SUBSTRING(a,1,10), "S,compressed" from t$a; + --sorted_result + eval SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t$a'; + dec $a; +} + +SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_compressions', 'Column_decompressions'); + +--connection master +DROP TABLE t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; +FLUSH STATUS; + +echo -----------------------------------------------------------------------------------------------------------------; +echo ---------------------------------------COMPRESSED TO NOT COMPRESSED----------------------------------------------; +echo -----------------------------------------------------------------------------------------------------------------; + +--sync_slave_with_master +FLUSH STATUS; +eval CREATE TABLE t1 (a BLOB) ENGINE=$engine_type2; +eval CREATE TABLE t2 (a TINYBLOB) ENGINE=$engine_type2; +eval CREATE TABLE t3 (a MEDIUMBLOB) ENGINE=$engine_type2; +eval CREATE TABLE t4 (a LONGBLOB) ENGINE=$engine_type2; +eval CREATE TABLE t5 (a TEXT) ENGINE=$engine_type2; +eval CREATE TABLE t6 (a TINYTEXT) ENGINE=$engine_type2; +eval CREATE TABLE t7 (a MEDIUMTEXT) ENGINE=$engine_type2; +eval CREATE TABLE t8 (a LONGTEXT) ENGINE=$engine_type2; +eval CREATE TABLE t9 (a VARCHAR(10000)) ENGINE=$engine_type2; +eval CREATE TABLE t10 (a VARBINARY(10000)) ENGINE=$engine_type2; + +--connection master +eval CREATE TABLE IF NOT EXISTS t1 (a BLOB COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t2 (a TINYBLOB COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t3 (a MEDIUMBLOB COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t4 (a LONGBLOB COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t5 (a TEXT COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t6 (a TINYTEXT COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t7 (a MEDIUMTEXT COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t8 (a LONGTEXT COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t9 (a VARCHAR(10000) COMPRESSED) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t10 (a VARBINARY(10000) COMPRESSED) ENGINE=$engine_type; + +INSERT INTO t1(a) VALUES(REPEAT('a',1000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL); +INSERT INTO t2(a) VALUES(REPEAT('a',100)),(REPEAT('v',200)),(REPEAT('r',254)),(NULL); +INSERT INTO t3(a) VALUES(REPEAT('a',100)),(REPEAT('v',2000)),("April"),(NULL); +INSERT INTO t4(a) VALUES(REPEAT('a',10000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),("00-00-00"); +INSERT INTO t5(a) VALUES(REPEAT('a',1000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL); +INSERT INTO t6(a) VALUES(REPEAT('a',100)),(REPEAT('v',200)),(REPEAT('r',254)),(NULL); +INSERT INTO t7(a) VALUES(REPEAT('a',100)),(REPEAT('v',200)),(REPEAT('r',3000)),(NULL); +INSERT INTO t8(a) VALUES(REPEAT('a',10000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),("qwerty"); +INSERT INTO t9(a) VALUES(REPEAT('a',1000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),("12-12-2009"); +INSERT INTO t10(a) VALUES(REPEAT('a',1000)),(REPEAT('v',2000)),(REPEAT('r',300)),(NULL), (""); + +echo ---------------------------------------data on master-----------------------------------------------------------; + +let $a= 10; +while ($a) +{ + --sorted_result + eval SELECT LENGTH(a),SUBSTRING(a,1,10), "M,compressed" from t$a; + --sorted_result + eval SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t$a'; + dec $a; +} +SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_compressions', 'Column_decompressions'); + +echo ---------------------------------------data on slave-------------------------------------------------------------; + +--sync_slave_with_master +let $a= 10; +while ($a) +{ + --sorted_result + eval SELECT LENGTH(a), SUBSTRING(a,1,10), "S,not compressed" from t$a; + --sorted_result + eval SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t$a'; + dec $a; +} + +SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_compressions', 'Column_decompressions'); +--connection master +DROP TABLE t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; +FLUSH STATUS; + +echo -----------------------------------------------------------------------------------------------------------------; +echo -----------------------------------NOT COMPRESSED to COMPRESSED--------------------------------------------------; +echo -----------------------------------------------------------------------------------------------------------------; + +--sync_slave_with_master +FLUSH STATUS; +eval CREATE TABLE t1 (a BLOB COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t2 (a TINYBLOB COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t3 (a MEDIUMBLOB COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t4 (a LONGBLOB COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t5 (a TEXT COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t6 (a TINYTEXT COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t7 (a MEDIUMTEXT COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t8 (a LONGTEXT COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t9 (a VARCHAR(10000) COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t10 (a VARBINARY(10000) COMPRESSED) ENGINE=$engine_type2; + +--connection master +eval CREATE TABLE IF NOT EXISTS t1 (a BLOB) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t2 (a TINYBLOB) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t3 (a MEDIUMBLOB) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t4 (a LONGBLOB) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t5 (a TEXT) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t6 (a TINYTEXT) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t7 (a MEDIUMTEXT) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t8 (a LONGTEXT) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t9 (a VARCHAR(10000)) ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t10 (a VARBINARY(10000)) ENGINE=$engine_type; + +INSERT INTO t1(a) VALUES(REPEAT('a',1000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL); +INSERT INTO t2(a) VALUES(REPEAT('a',100)),(REPEAT('v',200)),(REPEAT('r',254)),(NULL); +INSERT INTO t3(a) VALUES(REPEAT('a',100)),(REPEAT('v',2000)),("April"),(NULL); +INSERT INTO t4(a) VALUES(REPEAT('a',10000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),("00-00-00"); +INSERT INTO t5(a) VALUES(REPEAT('a',1000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL); +INSERT INTO t6(a) VALUES(REPEAT('a',100)),(REPEAT('v',200)),(REPEAT('r',254)),(NULL); +INSERT INTO t7(a) VALUES(REPEAT('a',100)),(REPEAT('v',200)),(REPEAT('r',3000)),(NULL); +INSERT INTO t8(a) VALUES(REPEAT('a',10000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),("qwerty"); +INSERT INTO t9(a) VALUES(REPEAT('a',1000)),(REPEAT('v',200)),(REPEAT('r',300)),(NULL),("12-12-2009"); +INSERT INTO t10(a) VALUES(REPEAT('a',1000)),(REPEAT('v',2000)),(REPEAT('r',300)),(NULL), (""); + +echo -----------------------------------data on master---------------------------------------------------------------; + +let $a= 10; +while ($a) +{ + --sorted_result + eval SELECT LENGTH(a),SUBSTRING(a,1,10), "M,not compressed" from t$a; + --sorted_result + eval SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t$a'; + dec $a; +} +SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_compressions', 'Column_decompressions'); + +echo -----------------------------------data on slave-----------------------------------------------------------------; + +--sync_slave_with_master +let $a= 10; +while ($a) +{ + --sorted_result + eval SELECT LENGTH(a), SUBSTRING(a,1,10), "S,compressed" from t$a; + --sorted_result + eval SELECT DATA_LENGTH FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t$a'; + dec $a; +} +SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME IN('Column_compressions', 'Column_decompressions'); + +--connection master +DROP TABLE t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; + +echo -----------------------------------------------------------------------------------------------------------------; +echo ------varchar(1000)->varchar(999) compressed, varchar(1000) compressed->varchar(999) ----------------------------; +echo -----------------------------------------------------------------------------------------------------------------; + +--sync_slave_with_master +eval CREATE TABLE t1 (a VARCHAR(999) COMPRESSED) ENGINE=$engine_type2; +eval CREATE TABLE t2 (a VARCHAR(999)) ENGINE=$engine_type2; +show warnings; +call mtr.add_suppression("Slave: Data too long for column 'a' at row 1 Error_code: 1406"); +call mtr.add_suppression("Slave: Table 't2' already exists Error_code: 1050"); + +--connection master +eval CREATE TABLE IF NOT EXISTS t1 (a VARCHAR(1000))ENGINE=$engine_type; +eval CREATE TABLE IF NOT EXISTS t2 (a VARCHAR(1000) COMPRESSED)ENGINE=$engine_type; + +INSERT INTO t1(a) VALUES(REPEAT('a',1000)); +--connection slave +--let $slave_sql_errno= 1406,1677 +--source include/wait_for_slave_sql_error_and_skip.inc +show warnings; + +--connection master + INSERT INTO t2(a) VALUES(REPEAT('a',1000)); +--connection slave +--let $slave_sql_errno= 1406,1677 +--source include/wait_for_slave_sql_error_and_skip.inc +show warnings; + +SET GLOBAL SLAVE_TYPE_CONVERSIONS = @saved_slave_type_conversions; + +--connection master +DROP TABLE t1,t2; +--sync_slave_with_master + +--enable_ps2_protocol diff --git a/mysql-test/include/column_compression_syntax_varbinary.inc b/mysql-test/include/column_compression_syntax_varbinary.inc new file mode 100644 index 00000000..e2f96c33 --- /dev/null +++ b/mysql-test/include/column_compression_syntax_varbinary.inc @@ -0,0 +1,64 @@ +--echo # +--echo # The following statements run without warnings. +--echo # + +--eval CREATE TABLE t1 (a $type COMPRESSED) +SHOW CREATE TABLE t1; +DROP TABLE t1; + + +--echo # +--echo # The following statements run without warnings. +--echo # They have extra column attributes (or GENERATED) after COMPRESSED. +--echo # + +--eval CREATE TABLE t1 (a $type COMPRESSED DEFAULT '') +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED NULL) +SHOW CREATE TABLE t1; +DROP TABLE t1; + +--eval CREATE TABLE t1 (a $type COMPRESSED GENERATED ALWAYS AS (REPEAT('a',10))) +SHOW CREATE TABLE t1; +DROP TABLE t1; + + +--echo # +--echo # The following statements return deprecated syntax warnings +--echo # + +--enable_prepare_warnings + +--eval CREATE TABLE t1 (a $type DEFAULT '' COMPRESSED) +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type NULL COMPRESSED) +SHOW CREATE TABLE t1; +DROP TABLE t1; + +--disable_prepare_warnings + +--echo # +--echo # The following statements fail by the grammar, +--echo # because COMPRESSED immediately follows 'field_type'. +--echo # + +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED COMPRESSED) + +--echo # +--echo # The following statements are not prohibited by the *.yy grammar, +--echo # because the sequence `field_type attribute COMPRESSED` is allowed +--echo # (notice there is at least one attribute after `field_type`). +--echo # The first COMPRESSED is parsed inside `field_type`. +--echo # The second COMPRESSED passes through the parser but then is caught +--echo # inside Column_definition::set_compressed_deprecated_with_type_check() +--echo # and a syntax error is raised. +--echo # + +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED DEFAULT '' COMPRESSED) +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED NULL COMPRESSED) +--error ER_PARSE_ERROR diff --git a/mysql-test/include/column_compression_syntax_varchar.inc b/mysql-test/include/column_compression_syntax_varchar.inc new file mode 100644 index 00000000..41ace4fe --- /dev/null +++ b/mysql-test/include/column_compression_syntax_varchar.inc @@ -0,0 +1,102 @@ +--echo # +--echo # The following statements run without warnings. +--echo # The `compressed opt_binary` grammar sequence is covered. +--echo # + +--eval CREATE TABLE t1 (a $type COMPRESSED) +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED BINARY) +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED BINARY ASCII) +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED BYTE) +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED ASCII) +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED UNICODE) +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED CHARACTER SET utf8) +SHOW CREATE TABLE t1; +DROP TABLE t1; + + +--echo # +--echo # The following statements run without warnings. +--echo # They have extra column attributes (or GENERATED) after COMPRESSED. +--echo # + +--eval CREATE TABLE t1 (a $type COMPRESSED BYTE DEFAULT '') +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED BINARY DEFAULT '') +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED ASCII DEFAULT '') +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type COMPRESSED CHARACTER SET utf8 DEFAULT '') +SHOW CREATE TABLE t1; +DROP TABLE t1; + +--eval CREATE TABLE t1 (a $type COMPRESSED CHARACTER SET utf8 GENERATED ALWAYS AS (REPEAT('a',100))) +SHOW CREATE TABLE t1; +DROP TABLE t1; + + +--echo # +--echo # The following statements return deprecated syntax warnings +--echo # + +--enable_prepare_warnings + +--eval CREATE TABLE t1 (a $type BINARY COMPRESSED) +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type ASCII COMPRESSED) +SHOW CREATE TABLE t1; +DROP TABLE t1; +--eval CREATE TABLE t1 (a $type BYTE COMPRESSED) +SHOW CREATE TABLE t1; +DROP TABLE t1; + +--disable_prepare_warnings + +--echo # +--echo # The following statements fail by the grammar, +--echo # because COMPRESSED immediately follows 'field_type'. +--echo # + +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED BYTE COMPRESSED) +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED BINARY COMPRESSED) +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED ASCII COMPRESSED) +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED CHARACTER SET utf8 COMPRESSED) + + +--echo # +--echo # The following statements are not prohibited by the *.yy grammar, +--echo # because the sequence `field_type attribute COMPRESSED` is allowed +--echo # (notice there is at least one attribute after `field_type`). +--echo # The first COMPRESSED is parsed inside `field_type`. +--echo # The second COMPRESSED passes through the parser but then is caught +--echo # inside Column_definition::set_compressed_deprecated_with_type_check() +--echo # and a syntax error is raised. +--echo # + +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED BYTE DEFAULT '' COMPRESSED) +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED BINARY DEFAULT '' COMPRESSED) +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED ASCII DEFAULT '' COMPRESSED) +--error ER_PARSE_ERROR +--eval CREATE TABLE t1 (a $type COMPRESSED CHARACTER SET utf8 DEFAULT '' COMPRESSED) diff --git a/mysql-test/include/commit.inc b/mysql-test/include/commit.inc new file mode 100644 index 00000000..c696613d --- /dev/null +++ b/mysql-test/include/commit.inc @@ -0,0 +1,791 @@ +## Bug#12713 (Error in a stored function called from a SELECT doesn't cause +## ROLLBACK of statem) + +## +## Pre-Requisites : +## - $engine_type should be set +## + +--disable_ps2_protocol +set sql_mode=no_engine_substitution; +eval set default_storage_engine = $engine_type; +set autocommit=1; + +--disable_warnings +drop table if exists t1; +drop table if exists t2; +drop table if exists t3; +drop function if exists f2; +drop procedure if exists bug12713_call; +drop procedure if exists bug12713_dump_spvars; +drop procedure if exists dummy; +--enable_warnings + +create table t1 (a int); +create table t2 (a int unique); +create table t3 (a int); + +# a workaround for Bug#32633: Can not create any routine if +# SQL_MODE=no_engine_substitution + +set sql_mode=default; + +insert into t1 (a) values (1), (2); +insert into t3 (a) values (1), (2); + +delimiter |; + +## Cause a failure every time +create function f2(x int) returns int +begin + insert into t2 (a) values (x); + insert into t2 (a) values (x); + return x; +end| + +delimiter ;| + +set autocommit=0; + +flush status; +##============================================================================ +## Design notes +## +## In each case, statement rollback is expected. +## for transactional engines, the rollback should be properly executed +## for non transactional engines, the rollback may cause warnings. +## +## The test pattern is as follows +## - insert 1000+N +## - statement with a side effect, that fails to insert N twice +## - a statement rollback is expected (expecting 1 row 1000+N only) in t2 +## - a rollback is performed +## - expecting a clean table t2. +##============================================================================ + +insert into t2 (a) values (1001); +--error ER_DUP_ENTRY +insert into t1 (a) values (f2(1)); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1002); +--error ER_DUP_ENTRY +insert into t3 (a) select f2(2) from t1; +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1003); +--error ER_DUP_ENTRY +update t1 set a= a + f2(3); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1004); +--error ER_DUP_ENTRY +update t1, t3 set t1.a = 0, t3.a = 0 where (f2(4) = 4) and (t1.a = t3.a); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1005); +--error ER_DUP_ENTRY +delete from t1 where (a = f2(5)); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1006); +--error ER_DUP_ENTRY +delete from t1, t3 using t1, t3 where (f2(6) = 6) ; +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1007); +--error ER_DUP_ENTRY +replace t1 values (f2(7)); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1008); +--error ER_DUP_ENTRY +replace into t3 (a) select f2(8) from t1; +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1009); +--error ER_DUP_ENTRY +select f2(9) from t1 ; +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1010); +--error ER_DUP_ENTRY +show databases where (f2(10) = 10); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1011); +--error ER_DUP_ENTRY +show tables where (f2(11) = 11); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1012); +--error ER_DUP_ENTRY +show triggers where (f2(12) = 12); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1013); +--error ER_DUP_ENTRY +show table status where (f2(13) = 13); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1014); +--error ER_DUP_ENTRY +show open tables where (f2(14) = 14); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1015); +--error ER_DUP_ENTRY +show columns in mysql.proc where (f2(15) = 15); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1016); +--error ER_DUP_ENTRY +show status where (f2(16) = 16); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1017); +--error ER_DUP_ENTRY +show variables where (f2(17) = 17); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1018); +--error ER_DUP_ENTRY +show charset where (f2(18) = 18); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1019); +--error ER_DUP_ENTRY +show collation where (f2(19) = 19); +select * from t2; +rollback; +select * from t2; + +--echo # We need at least one procedure to make sure the WHERE clause is +--echo # evaluated +create procedure dummy() begin end; +insert into t2 (a) values (1020); +--error ER_DUP_ENTRY +show procedure status where (f2(20) = 20); +select * from t2; +rollback; +select * from t2; +drop procedure dummy; + +insert into t2 (a) values (1021); +--error ER_DUP_ENTRY +show function status where (f2(21) = 21); +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1022); +prepare stmt from "insert into t1 (a) values (f2(22))"; +--error ER_DUP_ENTRY +execute stmt; +select * from t2; +rollback; +select * from t2; + +insert into t2 (a) values (1023); +do (f2(23)); +select * from t2; +rollback; +select * from t2; + +## Please note : +## This will insert a record 1024 in t1 (statement commit) +## This will insert a record 24 in t1 (statement commit) +## then will rollback the second insert only (24) (statement rollback) +## then will rollback the complete transaction (transaction rollback) + +delimiter |; + +create procedure bug12713_call () +begin + insert into t2 (a) values (24); + insert into t2 (a) values (24); +end| + +delimiter ;| + +insert into t2 (a) values (1024); +--error ER_DUP_ENTRY +call bug12713_call(); +select * from t2; +rollback; +select * from t2; + +--echo ======================================================================= +--echo Testing select_to_file +--echo ======================================================================= + +insert into t2 (a) values (1025); + +--replace_result $MYSQLTEST_VARDIR .. +--error ER_DUP_ENTRY +eval select f2(25) into outfile "$MYSQLTEST_VARDIR/tmp/dml.out" from t1; +select * from t2; +rollback; +select * from t2; +--remove_file $MYSQLTEST_VARDIR/tmp/dml.out + +insert into t2 (a) values (1026); +--replace_result $MYSQLTEST_VARDIR .. +--error ER_DUP_ENTRY +eval load data infile "../../std_data/words.dat" ignore into table t1 (a) set a:=f2(26); + +select * from t2; +rollback; +select * from t2; + +--echo ======================================================================= +--echo Testing select_dumpvar +--echo ======================================================================= + +insert into t2 (a) values (1027); +--error ER_DUP_ENTRY +select f2(27) into @foo; +select * from t2; +rollback; +select * from t2; + +--echo ======================================================================= +--echo Testing Select_fetch_into_spvars +--echo ======================================================================= + +delimiter |; + +create procedure bug12713_dump_spvars () +begin + declare foo int; + + declare continue handler for sqlexception + begin + select "Exception trapped"; + end; + + select f2(28) into foo; + select * from t2; +end| + +delimiter ;| + +insert into t2 (a) values (1028); +call bug12713_dump_spvars (); +rollback; +select * from t2; + +--echo ======================================================================= +--echo Cleanup +--echo ======================================================================= + +set autocommit=default; + +drop table t1; +drop table t2; +drop table t3; +drop function f2; +drop procedure bug12713_call; +drop procedure bug12713_dump_spvars; +--echo # +--echo # Bug#12713 Error in a stored function called from a SELECT doesn't +--echo # cause ROLLBACK of statem +--echo # +--echo # Verify that two-phase commit is not issued for read-only +--echo # transactions. +--echo # +--echo # Verify that two-phase commit is issued for read-write transactions, +--echo # even if the change is done inside a stored function called from +--echo # SELECT or SHOW statement. +--echo # +set autocommit=0; +--disable_warnings +drop table if exists t1; +drop table if exists t2; +drop function if exists f1; +drop procedure if exists p_verify_status_increment; +--enable_warnings + +# Save binlog_format in a user variable. References to system +# variables are "unsafe", meaning they are written as rows instead of +# as statements to the binlog, if the loggging mode is 'mixed'. But +# we don't want p_verify_status_increment to affect the logging mode. +# Hence, we save binlog_format in a user variable (which is not +# unsafe) and use that inside p_verify_status_increment. +set @binlog_format=@@global.binlog_format; + +set sql_mode=no_engine_substitution; +create table t1 (a int unique); +create table t2 (a int) engine=myisam; +set sql_mode=default; +--echo # +--echo # An auxiliary procedure to track Handler_prepare and Handler_commit +--echo # statistics. +--echo # +delimiter |; +create procedure +p_verify_status_increment(commit_inc_mixed int, prepare_inc_mixed int, + commit_inc_row int, prepare_inc_row int) +begin + declare commit_inc int; + declare prepare_inc int; + declare old_commit_count int default ifnull(@commit_count, 0); + declare old_prepare_count int default ifnull(@prepare_count, 0); + declare c_res int; +# Use a cursor to have just one access to I_S instead of 2, it is very slow +# and amounts for over 90% of test CPU time + declare c cursor for + select variable_value + from information_schema.session_status + where variable_name='Handler_commit' or variable_name='Handler_prepare' + order by variable_name; + + if @binlog_format = 'ROW' then + set commit_inc= commit_inc_row; + set prepare_inc= prepare_inc_row; + else + set commit_inc= commit_inc_mixed; + set prepare_inc= prepare_inc_mixed; + end if; + + open c; + fetch c into c_res; + set @commit_count=c_res; + fetch c into c_res; + set @prepare_count=c_res; + close c; + + if old_commit_count + commit_inc <> @commit_count then + select concat("Expected commit increment: ", commit_inc, + " actual: ", @commit_count - old_commit_count) + as 'ERROR'; + elseif old_prepare_count + prepare_inc <> @prepare_count then + select concat("Expected prepare increment: ", prepare_inc, + " actual: ", @prepare_count - old_prepare_count) + as 'ERROR'; + else + select '' as 'SUCCESS'; + end if; +end| +delimiter ;| +--echo # Reset Handler_commit and Handler_prepare counters +flush status; + +--echo # +--echo # Count of reading of p_verify_status_increment() from mysql.proc +call p_verify_status_increment(2, 0, 2, 0); + +--echo # +--echo # 1. Read-only statement: SELECT +--echo # +select * from t1; +call p_verify_status_increment(1, 0, 1, 0); +commit; +call p_verify_status_increment(1, 0, 1, 0); + +--echo # 2. Read-write statement: INSERT, insert 1 row. +--echo # +insert into t1 (a) values (1); +call p_verify_status_increment(2, 2, 2, 2); +commit; +call p_verify_status_increment(2, 2, 2, 2); + +--echo # 3. Read-write statement: UPDATE, update 1 row. +--echo # +update t1 set a=2; +call p_verify_status_increment(2, 2, 2, 2); +commit; +call p_verify_status_increment(2, 2, 2, 2); + +--echo # 4. Read-write statement: UPDATE, update 0 rows, 1 row matches WHERE +--echo # +update t1 set a=2; +call p_verify_status_increment(2, 0, 1, 0); +commit; +call p_verify_status_increment(2, 0, 1, 0); + +--echo # 5. Read-write statement: UPDATE, update 0 rows, 0 rows match WHERE +--echo # +--echo # In mixed replication mode, there is a read-only transaction +--echo # in InnoDB and also the statement is written to the binary log. +--echo # So we have two commits but no 2pc, since the first engine's +--echo # transaction is read-only. +--echo # In the row level replication mode, we only have the read-only +--echo # transaction in InnoDB and nothing is written to the binary log. +--echo # +update t1 set a=3 where a=1; +call p_verify_status_increment(2, 0, 1, 0); +commit; +call p_verify_status_increment(2, 0, 1, 0); + +--echo # 6. Read-write statement: DELETE, delete 0 rows. +--echo # +delete from t1 where a=1; +call p_verify_status_increment(2, 0, 1, 0); +commit; +call p_verify_status_increment(2, 0, 1, 0); + +--echo # 7. Read-write statement: DELETE, delete 1 row. +--echo # +delete from t1 where a=2; +call p_verify_status_increment(2, 2, 2, 2); +commit; +call p_verify_status_increment(2, 2, 2, 2); + +--echo # 8. Read-write statement: unqualified DELETE +--echo # +--echo # In statement or mixed replication mode, we call +--echo # handler::ha_delete_all_rows() and write statement text +--echo # to the binary log. This results in two read-write transactions. +--echo # In row level replication mode, we do not call +--echo # handler::ha_delete_all_rows(), but delete rows one by one. +--echo # Since there are no rows, nothing is written to the binary log. +--echo # Thus we have just one read-only transaction in InnoDB. +delete from t1; +call p_verify_status_increment(2, 2, 1, 0); +commit; +call p_verify_status_increment(2, 2, 1, 0); + +--echo # 9. Read-write statement: REPLACE, change 1 row. +--echo # +replace t1 set a=1; +call p_verify_status_increment(2, 2, 2, 2); +commit; +call p_verify_status_increment(2, 2, 2, 2); + +--echo # 10. Read-write statement: REPLACE, change 0 rows. +--echo # +replace t1 set a=1; +call p_verify_status_increment(2, 2, 1, 0); +commit; +call p_verify_status_increment(2, 2, 1, 0); + +--echo # 11. Read-write statement: IODKU, change 1 row. +--echo # +insert t1 set a=1 on duplicate key update a=a+1; +call p_verify_status_increment(2, 2, 2, 2); +select * from t1; +call p_verify_status_increment(1, 0, 1, 0); +commit; +call p_verify_status_increment(2, 2, 2, 2); + +--echo # 12. Read-write statement: IODKU, change 0 rows. +--echo # +insert t1 set a=2 on duplicate key update a=2; +call p_verify_status_increment(2, 2, 1, 0); +commit; +call p_verify_status_increment(2, 2, 1, 0); + +--echo # 13. Read-write statement: INSERT IGNORE, change 0 rows. +--echo # +insert ignore t1 set a=2; +call p_verify_status_increment(2, 2, 1, 0); +commit; +call p_verify_status_increment(2, 2, 1, 0); + +--echo # 14. Read-write statement: INSERT IGNORE, change 1 row. +--echo # +insert ignore t1 set a=1; +call p_verify_status_increment(2, 2, 2, 2); +commit; +call p_verify_status_increment(2, 2, 2, 2); +--echo # 15. Read-write statement: UPDATE IGNORE, change 0 rows. +--echo # +--disable_warnings +update ignore t1 set a=2 where a=1; +--enable_warnings +if (`select @@binlog_format = 'STATEMENT'`) +{ + --disable_query_log + call p_verify_status_increment(2, 2, 1, 0); + --enable_query_log +} +if (`select @@binlog_format != 'STATEMENT'`) +{ + --disable_query_log + call p_verify_status_increment(1, 0, 1, 0); + --enable_query_log +} +commit; +if (`select @@binlog_format = 'STATEMENT'`) +{ + --disable_query_log + call p_verify_status_increment(2, 2, 1, 0); + --enable_query_log +} +if (`select @@binlog_format != 'STATEMENT'`) +{ + --disable_query_log + call p_verify_status_increment(1, 0, 1, 0); + --enable_query_log +} +--echo # +--echo # Create a stored function that modifies a +--echo # non-transactional table. Demonstrate that changes in +--echo # non-transactional tables do not affect the two phase commit +--echo # algorithm. +--echo # +delimiter |; +create function f1() returns int +begin + insert t2 set a=2; + return 2; +end| +delimiter ;| +call p_verify_status_increment(4, 0, 4, 0); + +--echo # 16. A function changes non-trans-table. +--echo # +--echo # For row-based logging, there is an extra commit for the +--echo # non-transactional changes saved in the transaction cache to +--echo # the binary log. +--echo # +select f1(); +call p_verify_status_increment(3, 0, 3, 0); +commit; +call p_verify_status_increment(1, 0, 1, 0); + +--echo # 17. Read-only statement, a function changes non-trans-table. +--echo # +--echo # For row-based logging, there is an extra commit for the +--echo # non-transactional changes saved in the transaction cache to +--echo # the binary log. +--echo # +--disable_warnings +select f1() from t1; +--enable_warnings +call p_verify_status_increment(2, 0, 2, 0); +commit; +call p_verify_status_increment(2, 0, 2, 0); + +--echo # 18. Read-write statement: UPDATE, change 0 (transactional) rows. +--echo # +select count(*) from t2; +--disable_warnings +update t1 set a=2 where a=f1()+10; +--enable_warnings +select count(*) from t2; +call p_verify_status_increment(2, 0, 2, 0); +commit; +call p_verify_status_increment(2, 0, 2, 0); +--echo # +--echo # Replace the non-transactional table with a temporary +--echo # transactional table. Demonstrate that a change to a temporary +--echo # transactional table does not provoke 2-phase commit, although +--echo # does trigger a commit and a binlog write (in statement mode). +--echo # +drop table t2; +set sql_mode=no_engine_substitution; +create temporary table t2 (a int); +call p_verify_status_increment(1, 0, 0, 0); +set sql_mode=default; +--echo # 19. A function changes temp-trans-table. +--echo # +select f1(); +--echo # Two commits because a binary log record is written +call p_verify_status_increment(2, 0, 1, 0); +commit; +call p_verify_status_increment(2, 0, 1, 0); + +--echo # 20. Read-only statement, a function changes non-trans-table. +--echo # +select f1() from t1; +--echo # Two commits because a binary log record is written +call p_verify_status_increment(2, 0, 1, 0); +commit; +call p_verify_status_increment(2, 0, 1, 0); + +--echo # 21. Read-write statement: UPDATE, change 0 (transactional) rows. +--echo # +--disable_warnings +update t1 set a=2 where a=f1()+10; +--enable_warnings +call p_verify_status_increment(2, 0, 1, 0); +commit; +call p_verify_status_increment(2, 0, 1, 0); + +--echo # 22. DDL: ALTER TEMPORARY TABLE, should not cause a 2pc +--echo # +alter table t2 add column b int default 5; +--echo # A commit is done internally by ALTER. +call p_verify_status_increment(2, 0, 2, 0); +commit; +--echo # There is nothing left to commit +call p_verify_status_increment(0, 0, 0, 0); + +--echo # 23. DDL: RENAME TEMPORARY TABLE, does not start a transaction +--echo +--echo # No test because of Bug#8729 "rename table fails on temporary table" + +--echo # 24. DDL: TRUNCATE TEMPORARY TABLE +--echo +truncate table t2; +call p_verify_status_increment(2, 0, 2, 0); +commit; +--echo # There is nothing left to commit +call p_verify_status_increment(0, 0, 0, 0); + +--echo # 25. Read-write statement: unqualified DELETE +--echo +delete from t2; +call p_verify_status_increment(2, 0, 1, 0); +commit; +--echo # There is nothing left to commit +call p_verify_status_increment(2, 0, 1, 0); + +--echo # 25. DDL: DROP TEMPORARY TABLE, does not start a transaction +--echo # +drop temporary table t2; +call p_verify_status_increment(1, 0, 1, 0); +commit; +call p_verify_status_increment(1, 0, 1, 0); + +--echo # 26. Verify that SET AUTOCOMMIT issues an implicit commit +--echo # +insert t1 set a=3; +call p_verify_status_increment(2, 2, 2, 2); +set autocommit=1; +call p_verify_status_increment(2, 2, 2, 2); +rollback; +select a from t1 where a=3; +call p_verify_status_increment(1, 0, 1, 0); +delete from t1 where a=3; +call p_verify_status_increment(2, 2, 2, 2); +commit; +call p_verify_status_increment(0, 0, 0, 0); +set autocommit=0; +call p_verify_status_increment(0, 0, 0, 0); +insert t1 set a=3; +call p_verify_status_increment(2, 2, 2, 2); +--echo # Sic: not actually changing the value of autocommit +set autocommit=0; +call p_verify_status_increment(0, 0, 0, 0); +rollback; +select a from t1 where a=3; +call p_verify_status_increment(1, 0, 1, 0); + +--echo # 27. Savepoint management +--echo # +insert t1 set a=3; +call p_verify_status_increment(2, 2, 2, 2); +savepoint a; +call p_verify_status_increment(1, 0, 1, 0); +insert t1 set a=4; +call p_verify_status_increment(2, 2, 2, 2); +release savepoint a; +rollback; +call p_verify_status_increment(0, 0, 0, 0); +select a from t1 where a=3; +call p_verify_status_increment(1, 0, 1, 0); +commit; +call p_verify_status_increment(1, 0, 1, 0); + +--echo # 28. Read-write statement: DO +--echo # +create table t2 (a int); +call p_verify_status_increment(0, 0, 0, 0); +do (select f1() from t1 where a=2); +call p_verify_status_increment(2, 2, 2, 2); +commit; +call p_verify_status_increment(2, 2, 2, 2); + +--echo # 29. Read-write statement: MULTI-DELETE +--echo # +delete t1, t2 from t1 join t2 on (t1.a=t2.a) where t1.a=2; +commit; +call p_verify_status_increment(4, 4, 4, 4); + +--echo # 30. Read-write statement: INSERT-SELECT, MULTI-UPDATE, REPLACE-SELECT +--echo # +insert into t2 select a from t1; +commit; +--disable_warnings +replace into t2 select a from t1; +--enable_warnings +commit; +call p_verify_status_increment(8, 8, 8, 8); +# +# Multi-update is one of the few remaining statements that still +# locks the tables at prepare step (and hence starts the transaction. +# Disable the PS protocol, since in this protocol we get a different +# number of commmits (there is an extra commit after prepare +# +--disable_ps_protocol +update t1, t2 set t1.a=4, t2.a=8 where t1.a=t2.a and t1.a=1; +--enable_ps_protocol +commit; +call p_verify_status_increment(4, 4, 4, 4); + +--echo # 31. DDL: various DDL with transactional tables +--echo # +--echo # Sic: no table is created. +create table if not exists t2 (a int) select 6 union select 7; +--echo # Sic: first commits the statement, and then the transaction. +call p_verify_status_increment(0, 0, 0, 0); +create table t3 select a from t2; +call p_verify_status_increment(2, 0, 4, 4); +alter table t3 add column (b int); +call p_verify_status_increment(2, 0, 2, 0); +alter table t3 rename t4; +call p_verify_status_increment(0, 0, 0, 0); +rename table t4 to t3; +call p_verify_status_increment(0, 0, 0, 0); +truncate table t3; +call p_verify_status_increment(2, 0, 2, 0); +create view v1 as select * from t2; +call p_verify_status_increment(4, 0, 4, 0); +check table t1; +call p_verify_status_increment(2, 0, 2, 0); +--echo # Sic: after this bug is fixed, CHECK leaves no pending transaction +commit; +call p_verify_status_increment(0, 0, 0, 0); +check table t1, t2, t3; +call p_verify_status_increment(4, 0, 4, 0); +commit; +call p_verify_status_increment(0, 0, 0, 0); +drop view v1; +call p_verify_status_increment(2, 0, 2, 0); + +--echo # +--echo # Cleanup +--echo # +drop table t1, t2, t3; +drop procedure p_verify_status_increment; +drop function f1; +--enable_ps2_protocol diff --git a/mysql-test/include/common-tests.inc b/mysql-test/include/common-tests.inc new file mode 100644 index 00000000..9c6b2985 --- /dev/null +++ b/mysql-test/include/common-tests.inc @@ -0,0 +1,1842 @@ +# +# 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. +# +--sorted_result +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 tmp_memory_table_size=0; +select distinct concat(fld3," ",fld3) as namn from t2,t3 where t2.fld1=t3.t2nr order by namn limit 10; +set tmp_memory_table_size=default; +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 tmp_memory_table_size=0; +select distinct fld3,count(*) from t2 group by companynr,fld3 limit 10; +set tmp_memory_table_size=default; +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. +# + +SET @local_optimizer_switch=@@optimizer_switch; +set @local_join_cache_level=@@join_cache_level; +set @@join_cache_level=2; +set optimizer_switch='outer_join_with_cache=off,join_cache_hashed=off'; + +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; + +SET @@optimizer_switch=@local_optimizer_switch; + +# +# 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; + +SET @@join_cache_level=@local_join_cache_level; + +# +# 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/concurrent.inc b/mysql-test/include/concurrent.inc new file mode 100644 index 00000000..1d65549f --- /dev/null +++ b/mysql-test/include/concurrent.inc @@ -0,0 +1,600 @@ +# include/concurrent.inc +# +# Concurrent tests for transactional storage engines, mainly in UPDATE's +# Bug#3300 +# Designed and tested by Sinisa Milivojevic, sinisa@mysql.com +# +# These variables have to be set before sourcing this script: +# TRANSACTION ISOLATION LEVEL REPEATABLE READ +# innodb_locks_unsafe_for_binlog 0 (default) or 1 (by +# --innodb_locks_unsafe_for_binlog) +# $engine_type storage engine to be tested +# +# Last update: +# 2009-02-13 HH "Release_lock("hello")" is now also successful when delivering NULL, +# replaced two sleeps by wait_condition. The last two "sleep 1" have not been +# replaced as all tried wait conditions leaded to nondeterministic results, especially +# to succeeding concurrent updates. To replace the sleeps there should be some time +# planned (or internal knowledge of the server may help). +# 2006-08-02 ML test refactored +# old name was t/innodb_concurrent.test +# main code went into include/concurrent.inc +# 2008-06-03 KP test refactored; removed name locks, added comments. +# renamed wrapper t/concurrent_innodb.test -> +# t/concurrent_innodb_unsafelog.test +# new wrapper t/concurrent_innodb_safelog.test +# + +connection default; +SET SQL_MODE=""; +# +# Show prerequisites for this test. +# +SELECT @@global.tx_isolation; +# +# With the transaction isolation level REPEATABLE READ (the default) +# or SERIALIZEBLE, InnoDB takes "next-key locks"/"gap locks". This means it +# locks the gap before the keys that it accessed to find the rows to +# use for a statement. In this case we have to expect some more lock +# wait timeouts in the tests, compared to READ UNCOMMITTED or READ COMMITTED. +# For READ UNCOMMITTED or READ COMMITTED, no "next-key locks"/"gap locks" +# are taken and locks on keys that do not match the WHERE condition are +# released. Hence fewer lock collisions occur. +# We use the variable $keep_locks to set the expectations for +# lock wait timeouts accordingly. +# +let $keep_locks= `SELECT @@global.tx_isolation IN ('REPEATABLE-READ','SERIALIZABLE')`; +--echo # keep_locks == $keep_locks + +# +# Set up privileges and remove user level locks, if exist. +# +GRANT ALL ON test.* TO mysqltest@localhost; + +--echo +--echo ** +--echo ** two UPDATE's running and both changing distinct result sets +--echo ** +--disable_view_protocol + connect (thread1, localhost, mysqltest,,); + connection thread1; + --echo ** Set up table + eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + create table t1(eta int(11) not null, tipo int(11), c varchar(255)); + insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); + insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); + insert into t1 values (20,2,"ddddddddddddddddddddddddddddddddddddddddddd"); + insert into t1 values (30,1,"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + insert into t1 values (40,2,"fffffffffffffffffffffffffffffffffffffffffff"); + insert into t1 values (50,1,"ggggggggggggggggggggggggggggggggggggggggggg"); + insert into t1 values (60,2,"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); + insert into t1 values (70,1,"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"); + insert into t1 values (80,22,"jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"); + insert into t1 values (90,11,"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); + --echo ** Get user level lock (ULL) for thread 1 + select get_lock("hello",10); + + connect (thread2, localhost, mysqltest,,); + connection thread2; + --echo ** Start transaction for thread 2 + begin; + --echo ** Update will cause a table scan and a new ULL will + --echo ** be created and blocked on the first row where tipo=11. + send update t1 set eta=1+get_lock("hello",10)*0 where tipo=11; + + connection thread1; + let $wait_condition= select count(*)= 1 from information_schema.processlist where state= 'User lock'; + --source include/wait_condition.inc + --echo ** Start new transaction for thread 1 + begin; + --echo ** Update on t1 will cause a table scan which will be blocked because + --echo ** the previously initiated table scan applied exclusive key locks on + --echo ** all primary keys. + --echo ** Not so for READ UNCOMMITTED or READ COMMITTED. The locks that + --echo ** do not match the WHERE condition are released. + if ($keep_locks) + { + --error ER_LOCK_WAIT_TIMEOUT + update t1 set eta=2 where tipo=22; + } + if (!$keep_locks) + { + update t1 set eta=2 where tipo=22; + } + --echo ** Release user level name lock from thread 1. This will cause the ULL + --echo ** on thread 2 to end its wait. +# Due to Bug#32782 User lock hash fails to find lock, which probably also cause Bug#39484 (main.concurrent_innodb_safelog fails sporadically) the success of the following +# is also guaranteed for NULL. Replaced SELECT by DO (no result). + DO release_lock("hello"); + --echo ** Table is now updated with a new eta on tipo=22 for thread 1. + select * from t1; + + connection thread2; + --echo ** Release the lock and collect result from update on thread 2 + reap; +# Due to Bug#32782 User lock hash fails to find lock, which probably also cause Bug#39484 (main.concurrent_innodb_safelog fails sporadically) the success of the following +# is also guaranteed for NULL. Replaced SELECT by DO (no result). + DO release_lock("hello"); + --echo ** Table should have eta updates where tipo=11 but updates made by + --echo ** thread 1 shouldn't be visible yet. + select * from t1; + --echo ** Sending commit on thread 2. + commit; + + connection thread1; + --echo ** Make sure table reads didn't change yet on thread 1. + select * from t1; + --echo ** And send final commit on thread 1. + commit; + --echo ** Table should now be updated by both updates in the order of + --echo ** thread 1,2. + select * from t1; + + connection thread2; + --echo ** Make sure the output is similar for t1. + select * from t1; + + connection thread1; + select * from t1; + +connection default; +drop table t1; + +--echo +--echo ** +--echo ** two UPDATE's running and one changing result set +--echo ** + #connect (thread1, localhost, mysqltest,,); + connection thread1; + --echo ** Set up table + eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + create table t1(eta int(11) not null, tipo int(11), c varchar(255)); + insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); + insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); + insert into t1 values (20,2,"ddddddddddddddddddddddddddddddddddddddddddd"); + insert into t1 values (30,1,"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + insert into t1 values (40,2,"fffffffffffffffffffffffffffffffffffffffffff"); + insert into t1 values (50,1,"ggggggggggggggggggggggggggggggggggggggggggg"); + insert into t1 values (60,2,"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); + insert into t1 values (70,1,"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"); + insert into t1 values (80,22,"jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"); + insert into t1 values (90,11,"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); + --echo ** Get ULL "hello" on thread 1 + select get_lock("hello",10); + + #connect (thread2, localhost, mysqltest,,); + connection thread2; + --echo ** Start transaction on thread 2 + begin; + --echo ** Update will cause a table scan. + --echo ** This will cause a hang on the first row where tipo=1 until the + --echo ** blocking ULL is released. + send update t1 set eta=1+get_lock("hello",10)*0 where tipo=1; + + connection thread1; + let $wait_condition= select count(*)= 1 from information_schema.processlist where state= 'User lock'; + --source include/wait_condition.inc + --echo ** Start transaction on thread 1 + begin; + --echo ** Update on t1 will cause a table scan which will be blocked because + --echo ** the previously initiated table scan applied exclusive key locks on + --echo ** all primary keys. + --echo ** Not so for READ UNCOMMITTED or READ COMMITTED. The locks that + --echo ** do not match the WHERE condition are released. + if ($keep_locks) + { + --error ER_LOCK_WAIT_TIMEOUT + update t1 set tipo=1 where tipo=2; + } + if (!$keep_locks) + { + update t1 set tipo=1 where tipo=2; + } + --echo ** Release ULL. This will release the next waiting ULL on thread 2. +# Due to Bug#32782 User lock hash fails to find lock, which probably also cause Bug#39484 (main.concurrent_innodb_safelog fails sporadically)the success of the following +# is also guaranteed for NULL. Replaced SELECT by DO (no result). + DO release_lock("hello"); + --echo ** The table should still be updated with updates for thread 1 only: + select * from t1; + + connection thread2; + --echo ** Release the lock and collect result from thread 2: + reap; +# Due to Bug#32782 User lock hash fails to find lock, which probably also cause Bug#39484 (main.concurrent_innodb_safelog fails sporadically) the success of the following +# is also guaranteed for NULL. Replaced SELECT by DO (no result). + DO release_lock("hello"); + --echo ** Seen from thread 2 the table should have been updated on four + --echo ** places. + select * from t1; + commit; + + connection thread1; + --echo ** Thread 2 has committed but the result should remain the same for + --echo ** thread 1 (updated on three places): + select * from t1; + commit; + --echo ** After a commit the table should be merged with the previous + --echo ** commit. + --echo ** This select should show both updates: + select * from t1; + + connection thread2; + select * from t1; + + connection thread1; + select * from t1; + +connection default; +drop table t1; +--enable_view_protocol + +--echo +--echo ** +--echo ** One UPDATE and one INSERT .... Monty's test +--echo ** + #connect (thread1, localhost, mysqltest,,); + connection thread1; + --echo ** Set up table + eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + create table t1 (a int not null, b int not null); + insert into t1 values (1,1),(2,1),(3,1),(4,1); + --echo ** Create ULL 'hello2' + select get_lock("hello2",10); + + #connect (thread2, localhost, mysqltest,,); + connection thread2; + --echo ** Begin a new transaction on thread 2 + begin; + --echo ** Update will create a table scan which creates a ULL where a=2; + --echo ** this will hang waiting on thread 1. + send update t1 set b=10+get_lock(concat("hello",a),10)*0 where a=2; + + connection thread1; + let $wait_condition= select count(*)= 1 from information_schema.processlist where state= 'User lock'; + --source include/wait_condition.inc + --echo ** Insert new values to t1 from thread 1; this created an implicit + --echo ** commit since there are no on-going transactions. + insert into t1 values (1,1); + --echo ** Release the ULL (thread 2 updates will finish). +# Due to Bug#32782 User lock hash fails to find lock, which probably also cause Bug#39484 (main.concurrent_innodb_safelog fails sporadically) the success of the following +# is also guaranteed for NULL. Replaced SELECT by DO (no result). + DO release_lock("hello2"); + --echo ** ..but thread 1 will still see t1 as if nothing has happend: + select * from t1; + + connection thread2; + --echo ** Collect results from thread 2 and release the lock. + reap; +# Due to Bug#32782 User lock hash fails to find lock, which probably also cause Bug#39484 (main.concurrent_innodb_safelog fails sporadically) the success of the following +# is also guaranteed for NULL. Replaced SELECT by DO (no result). + DO release_lock("hello2"); + --echo ** The table should look like the original+updates for thread 2, + --echo ** and consist of new rows: + select * from t1; + --echo ** Commit changes from thread 2 + commit; + +connection default; +drop table t1; + + +--echo +--echo ** +--echo ** one UPDATE changing result set and SELECT ... FOR UPDATE +--echo ** + #connect (thread1, localhost, mysqltest,,); + connection thread1; + --echo ** Set up table + eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + create table t1(eta int(11) not null, tipo int(11), c varchar(255)); + insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); + insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); + insert into t1 values (20,2,"ddddddddddddddddddddddddddddddddddddddddddd"); + insert into t1 values (30,1,"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + insert into t1 values (40,2,"fffffffffffffffffffffffffffffffffffffffffff"); + insert into t1 values (50,1,"ggggggggggggggggggggggggggggggggggggggggggg"); + insert into t1 values (60,2,"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); + insert into t1 values (70,1,"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"); + insert into t1 values (80,22,"jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"); + insert into t1 values (90,11,"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); + + #connect (thread2, localhost, mysqltest,,); + connection thread2; + --echo ** Begin a new transaction on thread 2 + begin; + --echo ** Select a range for update. + --disable_view_protocol + select * from t1 where tipo=2 FOR UPDATE; + --enable_view_protocol + connection thread1; + --echo ** Begin a new transaction on thread 1 + begin; + --echo ** Update the same range which is marked for update on thread 2; this + --echo ** will hang because of row locks. + --error ER_LOCK_WAIT_TIMEOUT + update t1 set tipo=1 where tipo=2; + --echo ** After the update the table will be unmodified because the previous + --echo ** transaction failed and was rolled back. + select * from t1; + + connection thread2; + --echo ** The table should look unmodified from thread 2. + select * from t1; + --echo ** Sending a commit should release the row locks and enable + --echo ** thread 1 to complete the transaction. + commit; + + connection thread1; + --echo ** Commit on thread 1. + commit; + + connection thread2; + --echo ** The table should not have been changed. + select * from t1; + + connection thread1; + --echo ** Even on thread 1: + select * from t1; + +connection default; +drop table t1; + + +--echo +--echo ** +--echo ** one UPDATE not changing result set and SELECT ... FOR UPDATE +--echo ** +--disable_view_protocol + #connect (thread1, localhost, mysqltest,,); + connection thread1; + --echo ** Set up table + eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + create table t1(eta int(11) not null, tipo int(11), c varchar(255)); + insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); + insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); + insert into t1 values (20,2,"ddddddddddddddddddddddddddddddddddddddddddd"); + insert into t1 values (30,1,"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + insert into t1 values (40,2,"fffffffffffffffffffffffffffffffffffffffffff"); + insert into t1 values (50,1,"ggggggggggggggggggggggggggggggggggggggggggg"); + insert into t1 values (60,2,"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); + insert into t1 values (70,1,"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"); + insert into t1 values (80,22,"jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"); + insert into t1 values (90,11,"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); + + #connect (thread2, localhost, mysqltest,,); + connection thread2; + --echo ** Starting new transaction on thread 2. + begin; + --echo ** Starting SELECT .. FOR UPDATE + select * from t1 where tipo=2 FOR UPDATE; + connection thread1; + --echo + --echo ** Starting new transaction on thread 1 + begin; + --echo ** Updating single row using a table scan. This will time out + --echo ** because of ongoing transaction on thread 1 holding lock on + --echo ** all primary keys in the scan. + --echo ** Not so for READ UNCOMMITTED or READ COMMITTED. The locks that + --echo ** do not match the WHERE condition are released. + if ($keep_locks) + { + --error ER_LOCK_WAIT_TIMEOUT + update t1 set tipo=11 where tipo=22; + } + if (!$keep_locks) + { + update t1 set tipo=11 where tipo=22; + } + --echo ** After the time out the transaction is aborted; no rows should + --echo ** have changed. + select * from t1; + + connection thread2; + --echo ** The same thing should hold true for the transaction on + --echo ** thread 2 + select * from t1; + send commit; + + connection thread1; + commit; + + connection thread2; + --echo ** Even after committing: + reap; + select * from t1; + + connection thread1; + select * from t1; + +connection default; +drop table t1; + + +--echo +--echo ** +--echo ** two SELECT ... FOR UPDATE +--echo ** + #connect (thread1, localhost, mysqltest,,); + connection thread1; + --echo ** Set up table + eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + create table t1(eta int(11) not null, tipo int(11), c varchar(255)); + insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); + insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); + insert into t1 values (20,2,"ddddddddddddddddddddddddddddddddddddddddddd"); + insert into t1 values (30,1,"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + insert into t1 values (40,2,"fffffffffffffffffffffffffffffffffffffffffff"); + insert into t1 values (50,1,"ggggggggggggggggggggggggggggggggggggggggggg"); + insert into t1 values (60,2,"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); + insert into t1 values (70,1,"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"); + insert into t1 values (80,22,"jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"); + insert into t1 values (90,11,"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); + + #connect (thread2, localhost, mysqltest,,); + connection thread2; + --echo ** Begin a new transaction on thread 2 + begin; + select * from t1 where tipo=2 FOR UPDATE; + connection thread1; + --echo ** Begin a new transaction on thread 1 + begin; + --echo ** Selecting a range for update by table scan will be blocked + --echo ** because of on-going transaction on thread 2. + --disable_view_protocol + --error ER_LOCK_WAIT_TIMEOUT + select * from t1 where tipo=1 FOR UPDATE; + --enable_view_protocol + + connection thread2; + --echo ** Table will be unchanged and the select command will not be + --echo ** blocked: + select * from t1; + --echo ** Commit transacton on thread 2. + commit; + + connection thread1; + --echo ** Commit transaction on thread 1. + commit; + + connection thread2; + --echo ** Make sure table isn't blocked on thread 2: + select * from t1; + + connection thread1; + --echo ** Make sure table isn't blocked on thread 1: + select * from t1; + +connection default; +drop table t1; +--enable_view_protocol + +--echo +--echo ** +--echo ** one UPDATE changing result set and DELETE +--echo ** + #connect (thread1, localhost, mysqltest,,); + connection thread1; + --echo ** Set up table + eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + create table t1(eta int(11) not null, tipo int(11), c varchar(255)); + insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); + insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); + insert into t1 values (20,2,"ddddddddddddddddddddddddddddddddddddddddddd"); + insert into t1 values (30,1,"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + insert into t1 values (40,2,"fffffffffffffffffffffffffffffffffffffffffff"); + insert into t1 values (50,1,"ggggggggggggggggggggggggggggggggggggggggggg"); + insert into t1 values (60,2,"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); + insert into t1 values (70,1,"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"); + insert into t1 values (80,22,"jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"); + insert into t1 values (90,11,"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); + + #connect (thread2, localhost, mysqltest,,); + connection thread2; + begin; + send delete from t1 where tipo=2; +# The sleep has not been replaced as all tried wait conditions leaded to sporadically +# succeding update in the following thread. Also the used status variables '%lock%' and +# 'innodb_deleted_rows' and infos in processlist where not sucessful. + sleep 1; + + connection thread1; + begin; + --error ER_LOCK_WAIT_TIMEOUT + update t1 set tipo=1 where tipo=2; + select * from t1; + + connection thread2; + reap; + select * from t1; + send commit; + + connection thread1; + commit; + + connection thread2; + reap; + select * from t1; + + connection thread1; + select * from t1; + +connection default; +drop table t1; + + +--echo +--echo ** +--echo ** one UPDATE not changing result set and DELETE +--echo ** + #connect (thread1, localhost, mysqltest,,); + connection thread1; + --echo ** Set up table + eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + create table t1(eta int(11) not null, tipo int(11), c varchar(255)); + insert into t1 values (7,7, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + insert into t1 values (8,8, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"); + insert into t1 values (10,1,"ccccccccccccccccccccccccccccccccccccccccccc"); + insert into t1 values (20,2,"ddddddddddddddddddddddddddddddddddddddddddd"); + insert into t1 values (30,1,"eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"); + insert into t1 values (40,2,"fffffffffffffffffffffffffffffffffffffffffff"); + insert into t1 values (50,1,"ggggggggggggggggggggggggggggggggggggggggggg"); + insert into t1 values (60,2,"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"); + insert into t1 values (70,1,"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"); + insert into t1 values (80,22,"jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"); + insert into t1 values (90,11,"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); + + #connect (thread2, localhost, mysqltest,,); + connection thread2; + begin; + send delete from t1 where tipo=2; +# The sleep has not been replaced as all tried wait conditions leaded to sporadically +# succeding update in the following thread. Also the used status variables '%lock%' and +# 'innodb_deleted_rows' and infos in processlist where not sucessful. + sleep 1; + --disable_view_protocol + connection thread1; + begin; + --echo ** Update on t1 will cause a table scan which will be blocked because + --echo ** the previously initiated table scan applied exclusive key locks on + --echo ** all primary keys. + --echo ** Not so for READ UNCOMMITTED or READ COMMITTED. The locks that + --echo ** do not match the WHERE condition are released. + if ($keep_locks) + { + --error ER_LOCK_WAIT_TIMEOUT + update t1 set tipo=1 where tipo=22; + } + if (!$keep_locks) + { + update t1 set tipo=1 where tipo=22; + } + select * from t1; + + connection thread2; + reap; + select * from t1; + send commit; +--enable_view_protocol + connection thread1; + commit; + + connection thread2; + reap; + select * from t1; + + connection thread1; + select * from t1; + +disconnect thread1; +disconnect thread2; +connection default; +drop table t1; +drop user mysqltest@localhost; + +SET SQL_MODE=default; diff --git a/mysql-test/include/connect2.inc b/mysql-test/include/connect2.inc new file mode 100644 index 00000000..6b830a90 --- /dev/null +++ b/mysql-test/include/connect2.inc @@ -0,0 +1,56 @@ +# include/connect2.inc +# +# SUMMARY +# +# Make several attempts to connect. +# +# USAGE +# +# EXAMPLE +# +# connect.test +# + +--disable_query_log + +let $wait_counter= 300; +if ($wait_timeout) +{ + let $wait_counter= `SELECT $wait_timeout * 10`; +} +# Reset $wait_timeout so that its value won't be used on subsequent +# calls, and default will be used instead. +let $wait_timeout= 0; + +--echo # -- Establishing connection '$con_name' (user: $con_user_name)... + +while ($wait_counter) +{ + --disable_abort_on_error + --disable_result_log + --connect ($con_name,localhost,$con_user_name) + --enable_result_log + --enable_abort_on_error + + let $error = $mysql_errno; + + if (!$error) + { + let $wait_counter= 0; + } + if ($error) + { + real_sleep 0.1; + dec $wait_counter; + } +} +if ($error) +{ + --echo # -- Error: can not establish connection '$con_name'. +} +if (!$error) +{ + --echo # -- Connection '$con_name' has been established. +} + +--enable_query_log diff --git a/mysql-test/include/count_sessions.inc b/mysql-test/include/count_sessions.inc new file mode 100644 index 00000000..65098e27 --- /dev/null +++ b/mysql-test/include/count_sessions.inc @@ -0,0 +1,25 @@ +# include/count_sessions.inc +# +# SUMMARY +# +# Stores the number of current sessions in $count_sessions. +# +# +# USAGE +# +# Please look into include/wait_until_count_sessions.inc +# for examples of typical usage. +# +# +# EXAMPLE +# backup.test, grant3.test +# +# +# Created: 2009-01-14 mleich +# + +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + +let $count_sessions= query_get_value(SHOW STATUS LIKE 'Threads_connected', Value, 1); diff --git a/mysql-test/include/crash_mysqld.inc b/mysql-test/include/crash_mysqld.inc new file mode 100644 index 00000000..4190d24d --- /dev/null +++ b/mysql-test/include/crash_mysqld.inc @@ -0,0 +1,18 @@ +# Crash mysqld hard and wait until it's restarted + +--source include/have_debug_sync.inc +--source include/not_embedded.inc + +# Write file to make mysql-test-run.pl expect crash and restart +--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect + +# Setup the mysqld to crash at shutdown +SET debug_dbug="d,crash_shutdown"; +--error 2013 +shutdown; + +# Turn on reconnect +--enable_reconnect + +# Call script that will poll the server waiting for it to be back online again +--source include/wait_until_connected_again.inc diff --git a/mysql-test/include/ctype_8bit.inc b/mysql-test/include/ctype_8bit.inc new file mode 100644 index 00000000..7259db54 --- /dev/null +++ b/mysql-test/include/ctype_8bit.inc @@ -0,0 +1,46 @@ +# +# Test Unicode conversion, upper, lower +# +SELECT @@collation_connection; +CREATE TABLE t1 AS SELECT ' ' AS a LIMIT 0; +INSERT INTO t1 VALUES (0x00),(0x01),(0x02),(0x03),(0x04),(0x05),(0x06),(0x07); +INSERT INTO t1 VALUES (0x08),(0x09),(0x0A),(0x0B),(0x0C),(0x0D),(0x0E),(0x0F); +INSERT INTO t1 VALUES (0x10),(0x11),(0x12),(0x13),(0x14),(0x15),(0x16),(0x17); +INSERT INTO t1 VALUES (0x18),(0x19),(0x1A),(0x1B),(0x1C),(0x1D),(0x1E),(0x1F); +INSERT INTO t1 VALUES (0x20),(0x21),(0x22),(0x23),(0x24),(0x25),(0x26),(0x27); +INSERT INTO t1 VALUES (0x28),(0x29),(0x2A),(0x2B),(0x2C),(0x2D),(0x2E),(0x2F); +INSERT INTO t1 VALUES (0x30),(0x31),(0x32),(0x33),(0x34),(0x35),(0x36),(0x37); +INSERT INTO t1 VALUES (0x38),(0x39),(0x3A),(0x3B),(0x3C),(0x3D),(0x3E),(0x3F); +INSERT INTO t1 VALUES (0x40),(0x41),(0x42),(0x43),(0x44),(0x45),(0x46),(0x47); +INSERT INTO t1 VALUES (0x48),(0x49),(0x4A),(0x4B),(0x4C),(0x4D),(0x4E),(0x4F); +INSERT INTO t1 VALUES (0x50),(0x51),(0x52),(0x53),(0x54),(0x55),(0x56),(0x57); +INSERT INTO t1 VALUES (0x58),(0x59),(0x5A),(0x5B),(0x5C),(0x5D),(0x5E),(0x5F); +INSERT INTO t1 VALUES (0x60),(0x61),(0x62),(0x63),(0x64),(0x65),(0x66),(0x67); +INSERT INTO t1 VALUES (0x68),(0x69),(0x6A),(0x6B),(0x6C),(0x6D),(0x6E),(0x6F); +INSERT INTO t1 VALUES (0x70),(0x71),(0x72),(0x73),(0x74),(0x75),(0x76),(0x77); +INSERT INTO t1 VALUES (0x78),(0x79),(0x7A),(0x7B),(0x7C),(0x7D),(0x7E),(0x7F); +INSERT INTO t1 VALUES (0x80),(0x81),(0x82),(0x83),(0x84),(0x85),(0x86),(0x87); +INSERT INTO t1 VALUES (0x88),(0x89),(0x8A),(0x8B),(0x8C),(0x8D),(0x8E),(0x8F); +INSERT INTO t1 VALUES (0x90),(0x91),(0x92),(0x93),(0x94),(0x95),(0x96),(0x97); +INSERT INTO t1 VALUES (0x98),(0x99),(0x9A),(0x9B),(0x9C),(0x9D),(0x9E),(0x9F); +INSERT INTO t1 VALUES (0xA0),(0xA1),(0xA2),(0xA3),(0xA4),(0xA5),(0xA6),(0xA7); +INSERT INTO t1 VALUES (0xA8),(0xA9),(0xAA),(0xAB),(0xAC),(0xAD),(0xAE),(0xAF); +INSERT INTO t1 VALUES (0xB0),(0xB1),(0xB2),(0xB3),(0xB4),(0xB5),(0xB6),(0xB7); +INSERT INTO t1 VALUES (0xB8),(0xB9),(0xBA),(0xBB),(0xBC),(0xBD),(0xBE),(0xBF); +INSERT INTO t1 VALUES (0xC0),(0xC1),(0xC2),(0xC3),(0xC4),(0xC5),(0xC6),(0xC7); +INSERT INTO t1 VALUES (0xC8),(0xC9),(0xCA),(0xCB),(0xCC),(0xCD),(0xCE),(0xCF); +INSERT INTO t1 VALUES (0xD0),(0xD1),(0xD2),(0xD3),(0xD4),(0xD5),(0xD6),(0xD7); +INSERT INTO t1 VALUES (0xD8),(0xD9),(0xDA),(0xDB),(0xDC),(0xDD),(0xDE),(0xDF); +INSERT INTO t1 VALUES (0xE0),(0xE1),(0xE2),(0xE3),(0xE4),(0xE5),(0xE6),(0xE7); +INSERT INTO t1 VALUES (0xE8),(0xE9),(0xEA),(0xEB),(0xEC),(0xED),(0xEE),(0xEF); +INSERT INTO t1 VALUES (0xF0),(0xF1),(0xF2),(0xF3),(0xF4),(0xF5),(0xF6),(0xF7); +INSERT INTO t1 VALUES (0xF8),(0xF9),(0xFA),(0xFB),(0xFC),(0xFD),(0xFE),(0xFF); +SELECT + HEX(a) AS chr, + HEX(LOWER(a)) AS upper, + HEX(LOWER(a)) AS lower, + HEX(@utf8:=CONVERT(a USING utf8)) AS utf8, + HEX(@roundtrip:=CAST(@utf8 AS CHAR)) AS roundtrip, + if(a=BINARY @roundtrip,'','Round trip unsafe') AS issafe +FROM t1 ORDER BY chr; +DROP TABLE t1; diff --git a/mysql-test/include/ctype_E05C.inc b/mysql-test/include/ctype_E05C.inc new file mode 100644 index 00000000..d157d8a7 --- /dev/null +++ b/mysql-test/include/ctype_E05C.inc @@ -0,0 +1,122 @@ +--echo # Start of ctype_E05C.inc + +# +# A shared test for character sets big5, cp932, gbk, sjis +# They all can have 0x5C as the second byte in a multi-byte character. +# 0xE05C is one of such characters. +# + +# Checking that the character 0xE05C correctly understands 5C as the second byte +# rather than a stand-alone backslash, including the strings that also +# have real backslash escapes and/or separator escapes. + +SELECT HEX('\'),HEX('\t'); +SELECT HEX('\\\'),HEX('\\\t'),HEX('\\\t\t'); +SELECT HEX('''\'),HEX('\'''); +SELECT HEX('\\''\'),HEX('\''\\'); + +SELECT HEX(BINARY('\')),HEX(BINARY('\t')); +SELECT HEX(BINARY('\\\')),HEX(BINARY('\\\t')),HEX(BINARY('\\\t\t')); +SELECT HEX(BINARY('''\')),HEX(BINARY('\''')); +SELECT HEX(BINARY('\\''\')),HEX(BINARY('\''\\')); + +SELECT HEX(_BINARY'\'),HEX(_BINARY'\t'); +SELECT HEX(_BINARY'\\\'),HEX(_BINARY'\\\t'),HEX(_BINARY'\\\t\t'); +SELECT HEX(_BINARY'''\'),HEX(_BINARY'\'''); +SELECT HEX(_BINARY'\\''\'),HEX(_BINARY'\''\\'); + +CREATE TABLE t1 AS SELECT REPEAT(' ',10) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('\'),('\t'); +INSERT INTO t1 VALUES ('\\\'),('\\\t'),('\\\t\t'); +INSERT INTO t1 VALUES ('''\'),('\'''); +INSERT INTO t1 VALUES ('\\''\'),('\''\\'); +SELECT a, HEX(a) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a BLOB); +INSERT INTO t1 VALUES ('\'),('\t'); +INSERT INTO t1 VALUES ('\\\'),('\\\t'),('\\\t\t'); +INSERT INTO t1 VALUES ('''\'),('\'''); +INSERT INTO t1 VALUES ('\\''\'),('\''\\'); +SELECT a, HEX(a) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES (BINARY('\')),(BINARY('\t')); +INSERT INTO t1 VALUES (BINARY('\\\')),(BINARY('\\\t')),(BINARY('\\\t\t')); +INSERT INTO t1 VALUES (BINARY('''\')),(BINARY('\''')); +INSERT INTO t1 VALUES (BINARY('\\''\')),(BINARY('\''\\')); +SELECT a, HEX(a) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a BLOB); +INSERT INTO t1 VALUES (BINARY('\')),(BINARY('\t')); +INSERT INTO t1 VALUES (BINARY('\\\')),(BINARY('\\\t')),(BINARY('\\\t\t')); +INSERT INTO t1 VALUES (BINARY('''\')),(BINARY('\''')); +INSERT INTO t1 VALUES (BINARY('\\''\')),(BINARY('\''\\')); +SELECT a, HEX(a) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES (_BINARY'\'),(_BINARY'\t'); +INSERT INTO t1 VALUES (_BINARY'\\\'),(_BINARY'\\\t'),(_BINARY'\\\t\t'); +INSERT INTO t1 VALUES (_BINARY'''\'),(_BINARY'\'''); +INSERT INTO t1 VALUES (_BINARY'\\''\'),(_BINARY'\''\\'); +SELECT a, HEX(a) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (a BLOB); +INSERT INTO t1 VALUES (_BINARY'\'),(_BINARY'\t'); +INSERT INTO t1 VALUES (_BINARY'\\\'),(_BINARY'\\\t'),(_BINARY'\\\t\t'); +INSERT INTO t1 VALUES (_BINARY'''\'),(_BINARY'\'''); +INSERT INTO t1 VALUES (_BINARY'\\''\'),(_BINARY'\''\\'); +SELECT a, HEX(a) FROM t1; +DROP TABLE t1; + +# +# test how strings are written into view's frm +# +disable_view_protocol; +create view v1 as select hex('\'), hex('\t'); +select * from v1; +drop view v1; +enable_view_protocol; + +# Checking that with character_set_client=binary 0x5C in 0xE05C +# is treated as escape rather than the second byte of a multi-byte character, +# even if character_set_connection is big5/cp932/gbk/sjis. +# Note, the other 0x5C which is before 0xE05C is also treated as escape. +# +#check after fix MDEV-29290 +--disable_view_protocol +SET character_set_client=binary, character_set_results=binary; +SELECT @@character_set_client, @@character_set_connection, @@character_set_results; +SELECT HEX('\['), HEX('\\['); +CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('\['),('\\['); +SELECT HEX(a) FROM t1; +DROP TABLE t1; + +# +# Checking the other way around: +# 0x5C in 0xE05C is treated as the second byte +# when character_set_client=big5,cp932,gbk,sjis +# and character_set_connection=binary +# +SET character_set_client=@@character_set_connection, character_set_results=@@character_set_connection; +SET character_set_connection=binary; +SELECT @@character_set_client, @@character_set_connection, @@character_set_results; +SELECT HEX('\['), HEX('\\['); +CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('\['),('\\['); +SELECT HEX(a) FROM t1; +DROP TABLE t1; +--enable_view_protocol + +--echo # End of ctype_E05C.inc + diff --git a/mysql-test/include/ctype_ascii_order.inc b/mysql-test/include/ctype_ascii_order.inc new file mode 100644 index 00000000..b85cab68 --- /dev/null +++ b/mysql-test/include/ctype_ascii_order.inc @@ -0,0 +1,19 @@ +--disable_warnings +drop table if exists t1; +--enable_warnings + +create table t1 select repeat('a',10) as c1; +delete from t1; +insert into t1 values (0x00),(0x01),(0x02),(0x03),(0x04),(0x05),(0x06),(0x07),(0x08),(0x09),(0x0A),(0x0B),(0x0C),(0x0D),(0x0E),(0x0F); +insert into t1 values (0x10),(0x11),(0x12),(0x13),(0x14),(0x15),(0x16),(0x17),(0x18),(0x19),(0x1A),(0x1B),(0x1C),(0x1D),(0x1E),(0x1F); +insert into t1 values (0x20),(0x21),(0x22),(0x23),(0x24),(0x25),(0x26),(0x27),(0x28),(0x29),(0x2A),(0x2B),(0x2C),(0x2D),(0x2E),(0x2F); +insert into t1 values (0x30),(0x31),(0x32),(0x33),(0x34),(0x35),(0x36),(0x37),(0x38),(0x39),(0x3A),(0x3B),(0x3C),(0x3D),(0x3E),(0x3F); +insert into t1 values (0x40),(0x41),(0x42),(0x43),(0x44),(0x45),(0x46),(0x47),(0x48),(0x49),(0x4A),(0x4B),(0x4C),(0x4D),(0x4E),(0x4F); +insert into t1 values (0x50),(0x51),(0x52),(0x53),(0x54),(0x55),(0x56),(0x57),(0x58),(0x59),(0x5A),(0x5B),(0x5C),(0x5D),(0x5E),(0x5F); +insert into t1 values (0x60),(0x61),(0x62),(0x63),(0x64),(0x65),(0x66),(0x67),(0x68),(0x69),(0x6A),(0x6B),(0x6C),(0x6D),(0x6E),(0x6F); +insert into t1 values (0x70),(0x71),(0x72),(0x73),(0x74),(0x75),(0x76),(0x77),(0x78),(0x79),(0x7A),(0x7B),(0x7C),(0x7D),(0x7E),(0x7F); +create view v1 as select c1, if(c1 < 0x20 OR c1=0x7F, concat('<',hex(c1),'>'),c1) as name from t1; +select column_name, collation_name from information_schema.columns where table_schema=database() and table_name='v1'; +SELECT GROUP_CONCAT(name ORDER BY binary c1 SEPARATOR ''), GROUP_CONCAT(hex(c1) ORDER BY BINARY c1) FROM v1 GROUP BY c1; +drop table t1; +drop view v1; diff --git a/mysql-test/include/ctype_casefolding.inc b/mysql-test/include/ctype_casefolding.inc new file mode 100644 index 00000000..fc77b396 --- /dev/null +++ b/mysql-test/include/ctype_casefolding.inc @@ -0,0 +1,32 @@ +CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c LIMIT 0; +SHOW CREATE TABLE case_folding; +# Uncode code points that have a variable length case mapping in utf8 +# (e.g. LOWER('2-byte-character') -> '3-byte-character' +INSERT INTO case_folding (code) VALUES +(0x23A), +(0x23E), +(0x23F), +(0x240), +(0x250), +(0x251), +(0x252), +(0x26B), +(0x271), +(0x27D); + +INSERT INTO case_folding (code) VALUES +(0x0049) /* LATIN CAPITAL LETTER I */, +(0x0069) /* LATIN SMALL LETTER I */, +(0x0130) /* LATIN CAPITAL LETTER I WITH DOT ABOVE */, +(0x0131) /* LATIN SMALL LETTER DOTLESS I */ +; + +INSERT INTO case_folding (code) VALUES +(0x2C2F) /* GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI (Unicode-14.0) */, +(0x2C5F) /* GLAGOLITIC SMALL LETTER CAUDATE CHRIVI (Unicode-14.0) */, +(0xA7C0) /* LATIN CAPITAL LETTER OLD POLISH O (Unicode-14.0) */, +(0xA7C1) /* LATIN SMALL LETTER OLD POLISH O (Unicode-14.0) */; + +UPDATE case_folding SET c=CHAR(code USING ucs2); +SELECT HEX(code), HEX(LOWER(c)), HEX(UPPER(c)), c FROM case_folding; +DROP TABLE case_folding; diff --git a/mysql-test/include/ctype_casefolding_supplementary.inc b/mysql-test/include/ctype_casefolding_supplementary.inc new file mode 100644 index 00000000..7646ab56 --- /dev/null +++ b/mysql-test/include/ctype_casefolding_supplementary.inc @@ -0,0 +1,16 @@ +CREATE OR REPLACE TABLE case_folding AS SELECT 0 AS code, SPACE(32) AS c, SPACE(64) AS comment LIMIT 0; +SHOW CREATE TABLE case_folding; + +INSERT INTO case_folding (code, comment) VALUES (0x10595, 'VITHKUQI CAPITAL LETTER ZE (Unicode-14.0)'); +INSERT INTO case_folding (code, comment) VALUES (0x105BC, 'VITHKUQI SMALL LETTER ZE (Unicode-14.0)'); +INSERT INTO case_folding (code, comment) VALUES (0x1E921, 'ADLAM CAPITAL LETTER SHA (Unicode-9.0)'); +INSERT INTO case_folding (code, comment) VALUES (0x1E943, 'ADLAM SMALL LETTER SHA (Unicode-9.0)'); + +UPDATE case_folding SET c=CHAR(code USING utf32); +SELECT + HEX(CONVERT(c USING utf32)) AS ch, + HEX(CONVERT(LOWER(c) USING utf32)) AS cl, + HEX(CONVERT(UPPER(c) USING utf32)) AS cu, + comment +FROM case_folding ORDER BY BINARY(c); +DROP TABLE case_folding; diff --git a/mysql-test/include/ctype_common.inc b/mysql-test/include/ctype_common.inc new file mode 100644 index 00000000..410e8824 --- /dev/null +++ b/mysql-test/include/ctype_common.inc @@ -0,0 +1,95 @@ +# +# Common tests for all character sets and collations. +# Include this file from a test with @test_characrer_set +# and @test_collation set to desired values. +# +# Please don't use SHOW CREATE TABLE in this file, +# we want it to be HANDLER independent. You can +# use SHOW FULL COLUMNS instead. +# +# Please surround all CREATE TABLE with --disable_warnings +# and --enable_warnings to be able to set default_storage_engine +# without having to check if the hanlder exists. + +SET @safe_character_set_server= @@character_set_server; +SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; +SET character_set_server= @test_character_set; +SET collation_server= @test_collation; +CREATE DATABASE d1; +USE d1; + +# +# Bug 1883: LIKE did not work in some cases with a key. +# +--disable_warnings +CREATE TABLE t1 (c CHAR(10), KEY(c)); +--enable_warnings +# check the column was created with the expected charset/collation +--replace_result select,insert,update,references "" +SHOW FULL COLUMNS FROM t1; +INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa'); +SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%'; +DROP TABLE t1; + +# +# Bug 6643 incorrect response with partial utf8 index +# +--disable_warnings +CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2))); +--enable_warnings +# check the column was created with the expected charset/collation +--replace_result select,insert,update,references "" +SHOW FULL COLUMNS FROM t1; +INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab'); +SELECT c1 as want3results from t1 where c1 like 'l%'; +SELECT c1 as want3results from t1 where c1 like 'lo%'; +SELECT c1 as want1result from t1 where c1 like 'loc%'; +SELECT c1 as want1result from t1 where c1 like 'loca%'; +SELECT c1 as want1result from t1 where c1 like 'locat%'; +SELECT c1 as want1result from t1 where c1 like 'locati%'; +SELECT c1 as want1result from t1 where c1 like 'locatio%'; +SELECT c1 as want1result from t1 where c1 like 'location%'; +DROP TABLE t1; + +# +# Bug #31070: crash during conversion of charsets +# Bug #32726: crash with cast in order by clause and cp932 charset +# +create table t1 (a set('a') not null); +insert ignore into t1 values (),(); +select cast(a as char(1)) from t1; +select a sounds like a from t1; +select 1 from t1 order by cast(a as char(1)); +drop table t1; + +--echo # +--echo # MDEV-6134 SUBSTRING_INDEX returns wrong result for 8bit character sets when delimiter is not found +--echo # +--disable_service_connection +SET character_set_client=latin1; +SET character_set_connection= @test_character_set; +SET collation_connection= @test_collation; +SELECT COLLATION('.'), SUBSTRING_INDEX('.wwwmysqlcom', '.', -2) AS c1; +--enable_service_connection + +# +# Bug#27580 SPACE() function collation bug? +# +set names utf8; +create table t1 ( + name varchar(10), + level smallint unsigned); +show create table t1; +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +drop table t1; + +DROP DATABASE d1; +# Restore settings +USE test; +SET character_set_server= @safe_character_set_server; +SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; diff --git a/mysql-test/include/ctype_czech.inc b/mysql-test/include/ctype_czech.inc new file mode 100644 index 00000000..bc83d462 --- /dev/null +++ b/mysql-test/include/ctype_czech.inc @@ -0,0 +1,12 @@ +SELECT @@collation_connection; +--echo # +--echo # Bug#57737 Character sets: search fails with like, contraction, index +--echo # +CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS s1 LIMIT 0; +INSERT INTO t1 VALUES ('c'),('ce'),('cé'),('ch'); +SELECT * FROM t1 WHERE s1 LIKE 'c%'; +ALTER TABLE t1 ADD KEY s1 (s1); +SELECT * FROM t1 WHERE s1 LIKE 'c%'; +ALTER TABLE t1 DROP KEY s1, ADD KEY(s1(1)); +SELECT * FROM t1 WHERE s1 LIKE 'ch'; +DROP TABLE t1; diff --git a/mysql-test/include/ctype_datetime.inc b/mysql-test/include/ctype_datetime.inc new file mode 100644 index 00000000..7fab2b18 --- /dev/null +++ b/mysql-test/include/ctype_datetime.inc @@ -0,0 +1,60 @@ +--echo # +--echo # Bug#32390 Character sets: casting utf32 to/from date doesn't work +--echo # +CREATE TABLE t1 AS SELECT repeat('a',20) AS s1 LIMIT 0; +SET time_zone=_latin1'+03:00'; +SET timestamp=1216359724; +INSERT INTO t1 VALUES (current_date); +INSERT INTO t1 VALUES (current_time); +INSERT INTO t1 VALUES (current_timestamp); +SELECT s1, hex(s1) FROM t1; +DROP TABLE t1; +SET timestamp=0; +SET time_zone=default; + +--echo # +--echo # MDEV-5298 Illegal mix of collations on timestamp +--echo # + +# TODO: remove "--disable_ps_protocol" when MDEV-5444 is fixed +--disable_ps_protocol +#remove "--disable_view_protocol" in 10.6 version +--disable_view_protocol +SELECT CHARSET('2013-11-15 00:41:28' - INTERVAL 7 DAY); +SELECT COERCIBILITY('2013-11-15 00:41:28' - INTERVAL 7 DAY); +SELECT CHARSET(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY); +SELECT COERCIBILITY(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY); +SELECT CHARSET(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY)); +SELECT COERCIBILITY(CONCAT('2013-11-15 00:41:28' - INTERVAL 7 DAY)); +SELECT CHARSET(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)); +SELECT COERCIBILITY(CONCAT(TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY)); + +SELECT CHARSET(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY)); +SELECT COERCIBILITY(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY)); +SELECT HEX(CONCAT('','2001-01-08 00:00:00' - INTERVAL 7 DAY)); +SELECT CHARSET(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)); +SELECT COERCIBILITY(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)); +SELECT HEX(CONCAT('',TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)); +--enable_ps_protocol + +CREATE TABLE t1 AS SELECT REPEAT('a', 64) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES (''); +SELECT CHARSET(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; +SELECT COERCIBILITY(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; +SELECT HEX(CONCAT(a,'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; +SELECT CHARSET(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; +SELECT COERCIBILITY(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; +SELECT HEX(CONCAT(a,TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY)) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 (t TIMESTAMP NOT NULL); +INSERT INTO t1 VALUES ('2001-01-01 00:00:00'); +SELECT * FROM t1 WHERE t < '2013-11-15 00:41:28' - INTERVAL 7 DAY; +SELECT * FROM t1 WHERE t = '2001-01-08 00:00:00' - INTERVAL 7 DAY; +SELECT * FROM t1 WHERE t < CONCAT('2013-11-15 00:41:28',LEFT(RAND(),0)) - INTERVAL 7 DAY; +SELECT * FROM t1 WHERE t = CONCAT('2001-01-08 00:00:00',LEFT(RAND(),0)) - INTERVAL 7 DAY; +SELECT * FROM t1 WHERE t < TIMESTAMP'2013-11-15 00:41:28' - INTERVAL 7 DAY; +SELECT * FROM t1 WHERE t = TIMESTAMP'2001-01-08 00:00:00' - INTERVAL 7 DAY; +DROP TABLE t1; +--enable_view_protocol diff --git a/mysql-test/include/ctype_filesort.inc b/mysql-test/include/ctype_filesort.inc new file mode 100644 index 00000000..f80637e5 --- /dev/null +++ b/mysql-test/include/ctype_filesort.inc @@ -0,0 +1,48 @@ +# +# Set desired charset_connection and collation_collation +# before including this file. +# + +# The next query creates a LONGTEXT column +# using the current character_set_connection +# and collation_connection. + +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; +drop table t1; + + +--echo # +--echo # MDEV-5453 Assertion `src' fails in my_strnxfrm_unicode on GROUP BY MID(..) WITH ROLLUP +--echo # +SELECT @@collation_connection; +CREATE TABLE t1 (i INT) ENGINE=MyISAM; +INSERT INTO t1 VALUES (1),(2); +SELECT * FROM t1 GROUP BY MID(CURRENT_USER,0) WITH ROLLUP; +SELECT * FROM t1 GROUP BY MID('test',0) WITH ROLLUP; +DROP TABLE t1; + +--echo # +--echo # MDEV-6170 Incorrect ordering with utf8_bin and utf8mb4_bin collations +--echo # +SELECT @@collation_connection; +CREATE TABLE t1 ENGINE=MEMORY AS SELECT REPEAT('a',5) AS a LIMIT 0; +INSERT INTO t1 (a) VALUES ("a"); +INSERT INTO t1 (a) VALUES ("b"); +INSERT INTO t1 (a) VALUES ("c"); +INSERT INTO t1 (a) VALUES ("d"); +INSERT INTO t1 (a) VALUES ("e"); +INSERT INTO t1 (a) VALUES ("f"); +INSERT INTO t1 (a) VALUES ("g"); +INSERT INTO t1 (a) VALUES ("h"); +INSERT INTO t1 (a) VALUES ("i"); +INSERT INTO t1 (a) VALUES ("j"); +INSERT INTO t1 (a) VALUES ("k"); +INSERT INTO t1 (a) VALUES ("l"); +INSERT INTO t1 (a) VALUES ("m"); +SELECT * FROM t1 ORDER BY LOWER(a); +SELECT * FROM t1 ORDER BY LOWER(a) DESC; +DROP TABLE t1; diff --git a/mysql-test/include/ctype_filesort2.inc b/mysql-test/include/ctype_filesort2.inc new file mode 100644 index 00000000..7b576034 --- /dev/null +++ b/mysql-test/include/ctype_filesort2.inc @@ -0,0 +1,25 @@ +# +# Testing filesort for full Unicode character sets +# with supplementary characters. +# + +--echo # +--echo # Bug#55980 Character sets: supplementary character _bin ordering is wrong +--echo # +CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES (_utf8mb4 0xEFBE9D),(_utf8mb4 0xF0908E84); +INSERT INTO t1 VALUES (_utf8mb4 0xCE85),(_utf8mb4 0xF4808080); +SELECT HEX(a), HEX(CONVERT(a USING utf8mb4)) FROM t1 ORDER BY a; +ALTER TABLE t1 ADD KEY(a); +SELECT HEX(a), HEX(CONVERT(a USING utf8mb4)) FROM t1 ORDER BY a; +DROP TABLE IF EXISTS t1; +--echo # +--echo # BUG#16691598 - ORDER BY LOWER(COLUMN) PRODUCES +--echo # OUT-OF-ORDER RESULTS +--echo # +CREATE TABLE t1 SELECT ('a a') as n; +INSERT INTO t1 VALUES('a b'); +SELECT * FROM t1 ORDER BY LOWER(n) ASC; +SELECT * FROM t1 ORDER BY LOWER(n) DESC; +DROP TABLE t1; diff --git a/mysql-test/include/ctype_german.inc b/mysql-test/include/ctype_german.inc new file mode 100644 index 00000000..3985216a --- /dev/null +++ b/mysql-test/include/ctype_german.inc @@ -0,0 +1,73 @@ +--echo "BEGIN ctype_german.inc" +# +# Bug #27877 incorrect german order in utf8_general_ci +# +# Testing if "SHARP S" is equal to "S", +# like in latin1_german1_ci, utf8_general_ci, ucs2_general_ci +# Or if "SHART S" is equal to "SS", +# like in latin1_german2_ci, utf8_unicode_ci, ucs2_unicode_ci +# +# Also testing A-uml, O-uml, U-uml +# + +--disable_warnings +drop table if exists t1; +--enable_warnings + +# +# Create a table with a varchar(x) column, +# using current values of +# @@character_set_connection and @@collation_connection. +# + +create table t1 as select repeat(' ', 64) as s1; +select collation(s1) from t1; +delete from t1; + +# +# Populate data +# + +INSERT INTO t1 VALUES ('ud'),('uf'); +INSERT INTO t1 VALUES ('od'),('of'); +INSERT INTO t1 VALUES ('e'); +INSERT INTO t1 VALUES ('ad'),('af'); + +insert into t1 values ('a'),('ae'),(_latin1 0xE4); +insert into t1 values ('o'),('oe'),(_latin1 0xF6); +insert into t1 values ('s'),('ss'),(_latin1 0xDF); +insert into t1 values ('u'),('ue'),(_latin1 0xFC); + +# LIGATURE AE +INSERT INTO t1 VALUES (_latin1 0xE6), (_latin1 0xC6); +# LIGATURE OE +INSERT INTO t1 VALUES (_latin1 0x9C), (_latin1 0x8C); + +# +# Check order +# +#enable after fix MDEV-29290 +--disable_view_protocol +select s1, hex(s1) from t1 order by s1, binary s1; +select group_concat(s1 order by binary s1) from t1 group by s1; + +SELECT s1, hex(s1), hex(weight_string(s1)) FROM t1 ORDER BY s1, BINARY(s1); +SELECT s1, hex(s1) FROM t1 WHERE s1='ae' ORDER BY s1, BINARY(s1); + +drop table t1; +--enable_view_protocol + +# +# Check filesort for 'S' and "U+00DF SHARP S", +# for field and for item. +# +CREATE TABLE t1 AS SELECT REPEAT('a',1) AS a, 1 AS b LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('s',0),(_latin1 0xDF,1); +SELECT * FROM t1 ORDER BY a, b; +SELECT * FROM t1 ORDER BY a DESC, b; +SELECT * FROM t1 ORDER BY CONCAT(a), b; +SELECT * FROM t1 ORDER BY CONCAT(a) DESC, b; +DROP TABLE t1; + +--echo "END ctype_german.inc" diff --git a/mysql-test/include/ctype_heap.inc b/mysql-test/include/ctype_heap.inc new file mode 100644 index 00000000..061ed439 --- /dev/null +++ b/mysql-test/include/ctype_heap.inc @@ -0,0 +1,14 @@ +--echo # +--echo # Test that hash_sort() ignores trailing spaces +--echo # +SELECT @@collation_connection; +CREATE TABLE t1 ENGINE=HEAP AS SELECT REPEAT (' ', 10) AS a LIMIT 0; +ALTER TABLE t1 ADD KEY (a); +CREATE TABLE t2 (a VARCHAR(10)); +INSERT INTO t2 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'); +INSERT INTO t2 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F'); +INSERT INTO t1 SELECT CONCAT('a',t21.a,t22.a) FROM t2 t21, t2 t22 ORDER BY 1; +DROP TABLE t2; +INSERT INTO t1 VALUES ('a '); +SELECT a, HEX(a) FROM t1 WHERE a='a'; +DROP TABLE t1; diff --git a/mysql-test/include/ctype_ident_sys.inc b/mysql-test/include/ctype_ident_sys.inc new file mode 100644 index 00000000..80ac962f --- /dev/null +++ b/mysql-test/include/ctype_ident_sys.inc @@ -0,0 +1,73 @@ +--echo # +--echo # SET STATEMENT (bad|good.bad|bad.good)=1 +--echo # + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('SET STATEMENT ',@seq, '=1 SELECT 1'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('SET STATEMENT ',@seq, '.a=1 SELECT 1'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('SET STATEMENT a.',@seq, '=1 SELECT 1'); + + +--echo # +--echo # SET SESSION (bad|good.bad|bad.good)=1 +--echo # + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('SET SESSION ',@seq, '=1 SELECT 1'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('SET SESSION ',@seq, '.a=1 SELECT 1'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('SET SESSION a.',@seq, '=1 SELECT 1'); + + +--echo # +--echo # SET (bad|good.bad|bad.good)=1 +--echo # + + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('SET ', @seq, '=1'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('SET ', @seq, '.a=1'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('SET a.', @seq, '=1'); + + +--echo # +--echo # Oracle SP call: BEGIN (bad|good.bad|bad.good)(params); END +--echo # + +SET sql_mode=ORACLE; +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('BEGIN ',@seq, '(1); END;'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('BEGIN ',@seq, '.a(1); END;'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('BEGIN a.',@seq, '(1); END;'); + + +--echo # +--echo # Oracle assignment: (bad|good.bad|bad.good):= value +--echo # + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT(@seq, ':=1'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT(@seq, '.a:=1'); + +--error ER_INVALID_CHARACTER_STRING +EXECUTE IMMEDIATE CONCAT('a.', @seq, ':=1'); + + +SET sql_mode=DEFAULT; diff --git a/mysql-test/include/ctype_innodb_like.inc b/mysql-test/include/ctype_innodb_like.inc new file mode 100644 index 00000000..4f3201f5 --- /dev/null +++ b/mysql-test/include/ctype_innodb_like.inc @@ -0,0 +1,28 @@ +# +# Bug#11650: LIKE pattern matching using prefix index +# doesn't return correct result +# +--disable_query_log +set @ctype_save_sql_mode=@@sql_mode; +set sql_mode=""; +--enable_query_log +--disable_warnings +# +# This query creates a column using +# character_set_connection and +# collation_connection. +# +create table t1 engine=innodb select repeat('a',50) as c1; +--enable_warnings +--disable_query_log +set sql_mode=@ctype_save_sql_mode; +--enable_query_log +alter table t1 add index(c1(5)); + +insert into t1 values ('abcdefg'),('abcde100'),('abcde110'),('abcde111'); +select collation(c1) from t1 limit 1; +select c1 from t1 where c1 like 'abcdef%' order by c1; +select c1 from t1 where c1 like 'abcde1%' order by c1; +select c1 from t1 where c1 like 'abcde11%' order by c1; +select c1 from t1 where c1 like 'abcde111%' order by c1; +drop table t1; diff --git a/mysql-test/include/ctype_like.inc b/mysql-test/include/ctype_like.inc new file mode 100644 index 00000000..38de0bf2 --- /dev/null +++ b/mysql-test/include/ctype_like.inc @@ -0,0 +1,50 @@ +select @@collation_connection; + +# +# Create a table with a nullable varchar(10) column +# using currect character_set_connection. +create table t1 as select repeat(' ',10) as a union select null; +alter table t1 add key(a); +show create table t1; +insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test"); +explain select * from t1 where a like 'abc%'; +explain select * from t1 where a like concat('abc','%'); +select * from t1 where a like "abc%"; +select * from t1 where a like concat("abc","%"); +select * from t1 where a like "ABC%"; +select * from t1 where a like "test%"; +select * from t1 where a like "te_t"; +select * from t1 where a like "%a%"; +select * from t1 where a like "%abcd%"; +select * from t1 where a like "%abc\d%"; +drop table t1; + +# +# Bug #2619 ucs2 LIKE comparison fails in some cases +# + +select 'AA' like 'AA'; +select 'AA' like 'A%A'; +select 'AA' like 'A%%A'; +select 'AA' like 'AA%'; +select 'AA' like '%AA%'; +select 'AA' like '%A'; +select 'AA' like '%AA'; +select 'AA' like 'A%A%'; +select 'AA' like '_%_%'; +select 'AA' like '%A%A'; +select 'AAA'like 'A%A%A'; + +select 'AZ' like 'AZ'; +select 'AZ' like 'A%Z'; +select 'AZ' like 'A%%Z'; +select 'AZ' like 'AZ%'; +select 'AZ' like '%AZ%'; +select 'AZ' like '%Z'; +select 'AZ' like '%AZ'; +select 'AZ' like 'A%Z%'; +select 'AZ' like '_%_%'; +select 'AZ' like '%A%Z'; +select 'AZ' like 'A_'; +select 'AZ' like '_Z'; +select 'AMZ'like 'A%M%Z'; diff --git a/mysql-test/include/ctype_like_cond_propagation.inc b/mysql-test/include/ctype_like_cond_propagation.inc new file mode 100644 index 00000000..1c6ea04d --- /dev/null +++ b/mysql-test/include/ctype_like_cond_propagation.inc @@ -0,0 +1,55 @@ +--echo # +--echo # MDEV-7149 Constant condition propagation erroneously applied for LIKE +--echo # + +CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('a'),('a '); +SELECT * FROM t1 WHERE CONCAT(c1)='a'; +SELECT * FROM t1 WHERE CONCAT(c1) LIKE 'a '; +SELECT * FROM t1 WHERE CONCAT(c1)='a' AND CONCAT(c1) LIKE 'a '; +EXPLAIN EXTENDED SELECT * FROM t1 WHERE CONCAT(c1)='a' AND CONCAT(c1) LIKE 'a '; +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('a'),('a '); +SELECT * FROM t1 WHERE 'a'=CONCAT(c1); +SELECT * FROM t1 WHERE 'a ' LIKE CONCAT(c1); +SELECT * FROM t1 WHERE 'a'=CONCAT(c1) AND 'a ' LIKE CONCAT(c1); +EXPLAIN EXTENDED SELECT * FROM t1 WHERE 'a'=CONCAT(c1) AND 'a ' LIKE CONCAT(c1); +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('%'),('% '); +SELECT * FROM t1 WHERE '% '=CONCAT(c1); +SELECT * FROM t1 WHERE 'a' LIKE CONCAT(c1); +SELECT * FROM t1 WHERE '% '=CONCAT(c1) AND 'a' LIKE CONCAT(c1); +EXPLAIN EXTENDED SELECT * FROM t1 WHERE '% '=CONCAT(c1) AND 'a' LIKE CONCAT(c1); +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS c1 LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('%'),('% '); +SELECT * FROM t1 WHERE '%'=CONCAT(c1); +SELECT * FROM t1 WHERE 'a' LIKE CONCAT(c1); +SELECT * FROM t1 WHERE '%'=CONCAT(c1) AND 'a' LIKE CONCAT(c1); +EXPLAIN EXTENDED SELECT * FROM t1 WHERE '%'=CONCAT(c1) AND 'a' LIKE CONCAT(c1); +DROP TABLE t1; + +--echo # +--echo # MDEV-8694 Wrong result for SELECT..WHERE a NOT LIKE 'a ' AND a='a' +--echo # + +CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('a'),('a '); +SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a '; +SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a ' AND a='a'; +EXPLAIN EXTENDED SELECT a, LENGTH(a) FROM t1 WHERE a NOT LIKE 'a ' AND a='a'; +DROP TABLE t1; + +--echo # +--echo # End of MDEV-8694 +--echo # diff --git a/mysql-test/include/ctype_like_cond_propagation_utf8_german.inc b/mysql-test/include/ctype_like_cond_propagation_utf8_german.inc new file mode 100644 index 00000000..2cfa8944 --- /dev/null +++ b/mysql-test/include/ctype_like_cond_propagation_utf8_german.inc @@ -0,0 +1,16 @@ +--echo # +--echo # MDEV-7149 Constant condition propagation erroneously applied for LIKE +--echo # + +CREATE TABLE t1 AS SELECT REPEAT('a',10) AS c1 LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ae'),('ä'); +SELECT * FROM t1 WHERE c1='ä'; +SELECT * FROM t1 WHERE c1 LIKE 'ae'; +SELECT * FROM t1 WHERE c1='ä' AND c1 LIKE 'ae'; +EXPLAIN EXTENDED SELECT * FROM t1 WHERE c1='ä' AND c1 LIKE 'ae'; +SELECT * FROM t1 WHERE CONCAT(c1)='ä'; +SELECT * FROM t1 WHERE CONCAT(c1) LIKE 'ae'; +SELECT * FROM t1 WHERE CONCAT(c1)='ä' AND CONCAT(c1) LIKE 'ae'; +EXPLAIN EXTENDED SELECT * FROM t1 WHERE CONCAT(c1)='ä' AND CONCAT(c1) LIKE 'ae'; +DROP TABLE IF EXISTS t1; diff --git a/mysql-test/include/ctype_like_escape.inc b/mysql-test/include/ctype_like_escape.inc new file mode 100644 index 00000000..f817bc03 --- /dev/null +++ b/mysql-test/include/ctype_like_escape.inc @@ -0,0 +1,24 @@ +# +# Bugs: #13046: +# LIKE pattern matching using prefix index doesn't return correct result +# +select @@collation_connection; +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_'); +# should return ab_def +select c1 as c1u from t1 where c1 like 'ab\_def'; +# should return ab_def +select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; +drop table t1; + +# +# MDEV-13335 UTF8 escape wildcard LIKE match has different behavior in different collations +# +SELECT @@collation_connection; +SELECT '\%b' LIKE '%\%'; diff --git a/mysql-test/include/ctype_like_ignorable.inc b/mysql-test/include/ctype_like_ignorable.inc new file mode 100644 index 00000000..9f2fa7ae --- /dev/null +++ b/mysql-test/include/ctype_like_ignorable.inc @@ -0,0 +1,11 @@ +SELECT @@collation_connection; +--echo # +--echo # Bug#57737 Character sets: search fails with like, contraction, index +--echo # Part#2 - ignorable characters +--echo # +CREATE TABLE t1 AS SELECT REPEAT(' ', 10) AS s1 LIMIT 0; +INSERT INTO t1 VALUES ('a\0\0\0\0\0\t'),('a'),('b'),('c'),('d'),('e'); +SELECT HEX(s1) FROM t1 WHERE s1 LIKE 'a%'; +ALTER TABLE t1 ADD KEY s1 (s1); +SELECT HEX(s1) FROM t1 WHERE s1 LIKE 'a%'; +DROP TABLE t1; diff --git a/mysql-test/include/ctype_like_range_f1f2.inc b/mysql-test/include/ctype_like_range_f1f2.inc new file mode 100644 index 00000000..def341e8 --- /dev/null +++ b/mysql-test/include/ctype_like_range_f1f2.inc @@ -0,0 +1,28 @@ +# +# Bug#32510 LIKE search fails with indexed 'eucjpms' and 'ujis' char column +# +# Testing my_ctype_like_range_xxx +# (used in LIKE optimization for an indexed column) +# + +# Create table using @@character_set_connection and @@collation_connection +# for the string columns. + +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); + +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); + +#check after fix MDEV-29290 +--disable_view_protocol +# Check pattern (important for ucs2, utf16, utf32) +SELECT hex(concat(repeat(0xF1F2, 10), '%')); + +--echo 3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +DROP TABLE t1; +--enable_view_protocol diff --git a/mysql-test/include/ctype_like_range_mdev14350.inc b/mysql-test/include/ctype_like_range_mdev14350.inc new file mode 100644 index 00000000..89ecc020 --- /dev/null +++ b/mysql-test/include/ctype_like_range_mdev14350.inc @@ -0,0 +1,14 @@ +--echo # +--echo # MDEV-14350 Index use with collation utf8mb4_unicode_nopad_ci on LIKE pattern with wrong results +--echo # + +CREATE OR REPLACE TABLE t1 AS SELECT SPACE(50) AS a, SPACE (50) AS b; +ALTER TABLE t1 ADD KEY(a), ADD KEY(b); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('111', '111'); +INSERT INTO t1 VALUES ('222', '222'); +INSERT INTO t1 VALUES ('333', '333'); +INSERT INTO t1 VALUES ('444', '444'); +SELECT * FROM t1 WHERE a LIKE '111%'; +SELECT * FROM t1 IGNORE INDEX (a) WHERE a LIKE '111%'; +DROP TABLE t1; diff --git a/mysql-test/include/ctype_mdev13118.inc b/mysql-test/include/ctype_mdev13118.inc new file mode 100644 index 00000000..efcb5729 --- /dev/null +++ b/mysql-test/include/ctype_mdev13118.inc @@ -0,0 +1,15 @@ +--echo # +--echo # MDEV-13118 Wrong results with LOWER and UPPER and subquery +--echo # + +SET @save_optimizer_switch=@@optimizer_switch; +SET optimizer_switch=_latin1'derived_merge=on'; +CREATE TABLE t1 AS SELECT REPEAT('a', 10) AS t LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('abcdefghi'),('ABCDEFGHI'); +--sorted_result +SELECT CONCAT(t2,'-',t2) c2 FROM (SELECT LOWER(t) t2 FROM t1) sub; +--sorted_result +SELECT CONCAT(t2,'-',t2) c2 FROM (SELECT UPPER(t) t2 FROM t1) sub; +DROP TABLE t1; +SET optimizer_switch=@save_optimizer_switch; diff --git a/mysql-test/include/ctype_myanmar.inc b/mysql-test/include/ctype_myanmar.inc new file mode 100644 index 00000000..a3054308 --- /dev/null +++ b/mysql-test/include/ctype_myanmar.inc @@ -0,0 +1,1306 @@ +--echo # +--echo # Start of ctype_myanmar.inc +--echo # + +SELECT @@collation_connection; + +# +# Create a table with a varchar(x) column, +# using current values of +# @@character_set_connection and @@collation_connection. +# + +CREATE TABLE t1 AS SELECT 100000 AS id, REPEAT(' ', 64) AS s1 LIMIT 0; +SELECT COLLATION(s1) FROM t1; +DELETE FROM t1; +ALTER TABLE t1 MODIFY id INT NOT NULL AUTO_INCREMENT PRIMARY KEY; +SHOW CREATE TABLE t1; + +INSERT INTO t1 (s1) VALUES +(_ucs2 0x108C), +(_ucs2 0x1037), +(_ucs2 0x1038), +(_ucs2 0x10371038), +('--- Vowels'), +(_ucs2 0x102C), +(_ucs2 0x102B), +(_ucs2 0x1032), +(_ucs2 0x1031102C), +(_ucs2 0x1031102B), +(_ucs2 0x1031102C103A), +(_ucs2 0x1031102B103A), +(_ucs2 0x1034), +(_ucs2 0x1036), +(_ucs2 0x102D102F), +('--- Vowels with finals'), +(_ucs2 0x10001039), +(_ucs2 0x1000103A), +(_ucs2 0x102C10001039), +(_ucs2 0x102C1000103A), +(_ucs2 0x102B10001039), +(_ucs2 0x102B1000103A), +(_ucs2 0x102D10001039), +(_ucs2 0x102D1000103A), +(_ucs2 0x102F10001039), +(_ucs2 0x102F1000103A), +(_ucs2 0x103110001039), +(_ucs2 0x10311000103A), +(_ucs2 0x1031102C10001039), +(_ucs2 0x1031102C1000103A), +(_ucs2 0x1031102B10001039), +(_ucs2 0x1031102B1000103A), +(_ucs2 0x102D102F10001039), +(_ucs2 0x102D102F1000103A), +(_ucs2 0x10011039), +(_ucs2 0x1001103A), +(_ucs2 0x102C10011039), +(_ucs2 0x102C1001103A), +(_ucs2 0x102B10011039), +(_ucs2 0x102B1001103A), +(_ucs2 0x102D10011039), +(_ucs2 0x102D1001103A), +(_ucs2 0x102F10011039), +(_ucs2 0x102F1001103A), +(_ucs2 0x103110011039), +(_ucs2 0x10311001103A), +(_ucs2 0x1031102C10011039), +(_ucs2 0x1031102C1001103A), +(_ucs2 0x1031102B10011039), +(_ucs2 0x1031102B1001103A), +(_ucs2 0x102D102F10011039), +(_ucs2 0x102D102F1001103A), +(_ucs2 0x10021039), +(_ucs2 0x1002103A), +(_ucs2 0x102C10021039), +(_ucs2 0x102C1002103A), +(_ucs2 0x102B10021039), +(_ucs2 0x102B1002103A), +(_ucs2 0x102D10021039), +(_ucs2 0x102D1002103A), +(_ucs2 0x102F10021039), +(_ucs2 0x102F1002103A), +(_ucs2 0x103110021039), +(_ucs2 0x10311002103A), +(_ucs2 0x1031102C10021039), +(_ucs2 0x1031102C1002103A), +(_ucs2 0x1031102B10021039), +(_ucs2 0x1031102B1002103A), +(_ucs2 0x102D102F10021039), +(_ucs2 0x102D102F1002103A), +(_ucs2 0x10031039), +(_ucs2 0x1003103A), +(_ucs2 0x102C10031039), +(_ucs2 0x102C1003103A), +(_ucs2 0x102B10031039), +(_ucs2 0x102B1003103A), +(_ucs2 0x102D10031039), +(_ucs2 0x102D1003103A), +(_ucs2 0x102F10031039), +(_ucs2 0x102F1003103A), +(_ucs2 0x103110031039), +(_ucs2 0x10311003103A), +(_ucs2 0x1031102C10031039), +(_ucs2 0x1031102C1003103A), +(_ucs2 0x1031102B10031039), +(_ucs2 0x1031102B1003103A), +(_ucs2 0x102D102F10031039), +(_ucs2 0x102D102F1003103A), +(_ucs2 0x1004103A1039), +(_ucs2 0x1004103A), +(_ucs2 0x102C1004103A1039), +(_ucs2 0x102C1004103A), +(_ucs2 0x102B1004103A1039), +(_ucs2 0x102B1004103A), +(_ucs2 0x102D1004103A1039), +(_ucs2 0x102D1004103A), +(_ucs2 0x102F1004103A1039), +(_ucs2 0x102F1004103A), +(_ucs2 0x10311004103A1039), +(_ucs2 0x10311004103A), +(_ucs2 0x1031102C1004103A1039), +(_ucs2 0x1031102C1004103A), +(_ucs2 0x1031102B1004103A1039), +(_ucs2 0x1031102B1004103A), +(_ucs2 0x102D102F1004103A1039), +(_ucs2 0x102D102F1004103A), +(_ucs2 0x10051039), +(_ucs2 0x1005103A), +(_ucs2 0x102C10051039), +(_ucs2 0x102C1005103A), +(_ucs2 0x102B10051039), +(_ucs2 0x102B1005103A), +(_ucs2 0x102D10051039), +(_ucs2 0x102D1005103A), +(_ucs2 0x102F10051039), +(_ucs2 0x102F1005103A), +(_ucs2 0x103110051039), +(_ucs2 0x10311005103A), +(_ucs2 0x1031102C10051039), +(_ucs2 0x1031102C1005103A), +(_ucs2 0x1031102B10051039), +(_ucs2 0x1031102B1005103A), +(_ucs2 0x102D102F10051039), +(_ucs2 0x102D102F1005103A), +(_ucs2 0x10061039), +(_ucs2 0x1006103A), +(_ucs2 0x102C10061039), +(_ucs2 0x102C1006103A), +(_ucs2 0x102B10061039), +(_ucs2 0x102B1006103A), +(_ucs2 0x102D10061039), +(_ucs2 0x102D1006103A), +(_ucs2 0x102F10061039), +(_ucs2 0x102F1006103A), +(_ucs2 0x103110061039), +(_ucs2 0x10311006103A), +(_ucs2 0x1031102C10061039), +(_ucs2 0x1031102C1006103A), +(_ucs2 0x1031102B10061039), +(_ucs2 0x1031102B1006103A), +(_ucs2 0x102D102F10061039), +(_ucs2 0x102D102F1006103A), +(_ucs2 0x10071039), +(_ucs2 0x1007103A), +(_ucs2 0x102C10071039), +(_ucs2 0x102C1007103A), +(_ucs2 0x102B10071039), +(_ucs2 0x102B1007103A), +(_ucs2 0x102D10071039), +(_ucs2 0x102D1007103A), +(_ucs2 0x102F10071039), +(_ucs2 0x102F1007103A), +(_ucs2 0x103110071039), +(_ucs2 0x10311007103A), +(_ucs2 0x1031102C10071039), +(_ucs2 0x1031102C1007103A), +(_ucs2 0x1031102B10071039), +(_ucs2 0x1031102B1007103A), +(_ucs2 0x102D102F10071039), +(_ucs2 0x102D102F1007103A), +(_ucs2 0x1008103A), +(_ucs2 0x102C1008103A), +(_ucs2 0x102B1008103A), +(_ucs2 0x102D1008103A), +(_ucs2 0x102F1008103A), +(_ucs2 0x10311008103A), +(_ucs2 0x1031102C1008103A), +(_ucs2 0x1031102B1008103A), +(_ucs2 0x102D102F1008103A), +(_ucs2 0x10091039), +(_ucs2 0x1009103A), +(_ucs2 0x102C10091039), +(_ucs2 0x102C1009103A), +(_ucs2 0x102B10091039), +(_ucs2 0x102B1009103A), +(_ucs2 0x102D10091039), +(_ucs2 0x102D1009103A), +(_ucs2 0x102F10091039), +(_ucs2 0x102F1009103A), +(_ucs2 0x103110091039), +(_ucs2 0x10311009103A), +(_ucs2 0x1031102C10091039), +(_ucs2 0x1031102C1009103A), +(_ucs2 0x1031102B10091039), +(_ucs2 0x1031102B1009103A), +(_ucs2 0x102D102F10091039), +(_ucs2 0x102D102F1009103A), +(_ucs2 0x100A1039), +(_ucs2 0x100A103A), +(_ucs2 0x102C100A1039), +(_ucs2 0x102C100A103A), +(_ucs2 0x102B100A1039), +(_ucs2 0x102B100A103A), +(_ucs2 0x102D100A1039), +(_ucs2 0x102D100A103A), +(_ucs2 0x102F100A1039), +(_ucs2 0x102F100A103A), +(_ucs2 0x1031100A1039), +(_ucs2 0x1031100A103A), +(_ucs2 0x1031102C100A1039), +(_ucs2 0x1031102C100A103A), +(_ucs2 0x1031102B100A1039), +(_ucs2 0x1031102B100A103A), +(_ucs2 0x102D102F100A1039), +(_ucs2 0x102D102F100A103A), +(_ucs2 0x100B1039), +(_ucs2 0x100B103A), +(_ucs2 0x102C100B1039), +(_ucs2 0x102C100B103A), +(_ucs2 0x102B100B1039), +(_ucs2 0x102B100B103A), +(_ucs2 0x102D100B1039), +(_ucs2 0x102D100B103A), +(_ucs2 0x102F100B1039), +(_ucs2 0x102F100B103A), +(_ucs2 0x1031100B1039), +(_ucs2 0x1031100B103A), +(_ucs2 0x1031102C100B1039), +(_ucs2 0x1031102C100B103A), +(_ucs2 0x1031102B100B1039), +(_ucs2 0x1031102B100B103A), +(_ucs2 0x102D102F100B1039), +(_ucs2 0x102D102F100B103A), +(_ucs2 0x100C1039), +(_ucs2 0x100C103A), +(_ucs2 0x102C100C1039), +(_ucs2 0x102C100C103A), +(_ucs2 0x102B100C1039), +(_ucs2 0x102B100C103A), +(_ucs2 0x102D100C1039), +(_ucs2 0x102D100C103A), +(_ucs2 0x102F100C1039), +(_ucs2 0x102F100C103A), +(_ucs2 0x1031100C1039), +(_ucs2 0x1031100C103A), +(_ucs2 0x1031102C100C1039), +(_ucs2 0x1031102C100C103A), +(_ucs2 0x1031102B100C1039), +(_ucs2 0x1031102B100C103A), +(_ucs2 0x102D102F100C1039), +(_ucs2 0x102D102F100C103A), +(_ucs2 0x100D1039), +(_ucs2 0x100D103A), +(_ucs2 0x102C100D1039), +(_ucs2 0x102C100D103A), +(_ucs2 0x102B100D1039), +(_ucs2 0x102B100D103A), +(_ucs2 0x102D100D1039), +(_ucs2 0x102D100D103A), +(_ucs2 0x102F100D1039), +(_ucs2 0x102F100D103A), +(_ucs2 0x1031100D1039), +(_ucs2 0x1031100D103A), +(_ucs2 0x1031102C100D1039), +(_ucs2 0x1031102C100D103A), +(_ucs2 0x1031102B100D1039), +(_ucs2 0x1031102B100D103A), +(_ucs2 0x102D102F100D1039), +(_ucs2 0x102D102F100D103A), +(_ucs2 0x100E1039), +(_ucs2 0x100E103A), +(_ucs2 0x102C100E1039), +(_ucs2 0x102C100E103A), +(_ucs2 0x102B100E1039), +(_ucs2 0x102B100E103A), +(_ucs2 0x102D100E1039), +(_ucs2 0x102D100E103A), +(_ucs2 0x102F100E1039), +(_ucs2 0x102F100E103A), +(_ucs2 0x1031100E1039), +(_ucs2 0x1031100E103A), +(_ucs2 0x1031102C100E1039), +(_ucs2 0x1031102C100E103A), +(_ucs2 0x1031102B100E1039), +(_ucs2 0x1031102B100E103A), +(_ucs2 0x102D102F100E1039), +(_ucs2 0x102D102F100E103A), +(_ucs2 0x100F1039), +(_ucs2 0x100F103A), +(_ucs2 0x102C100F1039), +(_ucs2 0x102C100F103A), +(_ucs2 0x102B100F1039), +(_ucs2 0x102B100F103A), +(_ucs2 0x102D100F1039), +(_ucs2 0x102D100F103A), +(_ucs2 0x102F100F1039), +(_ucs2 0x102F100F103A), +(_ucs2 0x1031100F1039), +(_ucs2 0x1031100F103A), +(_ucs2 0x1031102C100F1039), +(_ucs2 0x1031102C100F103A), +(_ucs2 0x1031102B100F1039), +(_ucs2 0x1031102B100F103A), +(_ucs2 0x102D102F100F1039), +(_ucs2 0x102D102F100F103A), +(_ucs2 0x10101039), +(_ucs2 0x1010103A), +(_ucs2 0x102C10101039), +(_ucs2 0x102C1010103A), +(_ucs2 0x102B10101039), +(_ucs2 0x102B1010103A), +(_ucs2 0x102D10101039), +(_ucs2 0x102D1010103A), +(_ucs2 0x102F10101039), +(_ucs2 0x102F1010103A), +(_ucs2 0x103110101039), +(_ucs2 0x10311010103A), +(_ucs2 0x1031102C10101039), +(_ucs2 0x1031102C1010103A), +(_ucs2 0x1031102B10101039), +(_ucs2 0x1031102B1010103A), +(_ucs2 0x102D102F10101039), +(_ucs2 0x102D102F1010103A), +(_ucs2 0x10111039), +(_ucs2 0x1011103A), +(_ucs2 0x102C10111039), +(_ucs2 0x102C1011103A), +(_ucs2 0x102B10111039), +(_ucs2 0x102B1011103A), +(_ucs2 0x102D10111039), +(_ucs2 0x102D1011103A), +(_ucs2 0x102F10111039), +(_ucs2 0x102F1011103A), +(_ucs2 0x103110111039), +(_ucs2 0x10311011103A), +(_ucs2 0x1031102C10111039), +(_ucs2 0x1031102C1011103A), +(_ucs2 0x1031102B10111039), +(_ucs2 0x1031102B1011103A), +(_ucs2 0x102D102F10111039), +(_ucs2 0x102D102F1011103A), +(_ucs2 0x10121039), +(_ucs2 0x1012103A), +(_ucs2 0x102C10121039), +(_ucs2 0x102C1012103A), +(_ucs2 0x102B10121039), +(_ucs2 0x102B1012103A), +(_ucs2 0x102D10121039), +(_ucs2 0x102D1012103A), +(_ucs2 0x102F10121039), +(_ucs2 0x102F1012103A), +(_ucs2 0x103110121039), +(_ucs2 0x10311012103A), +(_ucs2 0x1031102C10121039), +(_ucs2 0x1031102C1012103A), +(_ucs2 0x1031102B10121039), +(_ucs2 0x1031102B1012103A), +(_ucs2 0x102D102F10121039), +(_ucs2 0x102D102F1012103A), +(_ucs2 0x10131039), +(_ucs2 0x1013103A), +(_ucs2 0x102C10131039), +(_ucs2 0x102C1013103A), +(_ucs2 0x102B10131039), +(_ucs2 0x102B1013103A), +(_ucs2 0x102D10131039), +(_ucs2 0x102D1013103A), +(_ucs2 0x102F10131039), +(_ucs2 0x102F1013103A), +(_ucs2 0x103110131039), +(_ucs2 0x10311013103A), +(_ucs2 0x1031102C10131039), +(_ucs2 0x1031102C1013103A), +(_ucs2 0x1031102B10131039), +(_ucs2 0x1031102B1013103A), +(_ucs2 0x102D102F10131039), +(_ucs2 0x102D102F1013103A), +(_ucs2 0x10141039), +(_ucs2 0x1014103A), +(_ucs2 0x102C10141039), +(_ucs2 0x102C1014103A), +(_ucs2 0x102B10141039), +(_ucs2 0x102B1014103A), +(_ucs2 0x102D10141039), +(_ucs2 0x102D1014103A), +(_ucs2 0x102F10141039), +(_ucs2 0x102F1014103A), +(_ucs2 0x103110141039), +(_ucs2 0x10311014103A), +(_ucs2 0x1031102C10141039), +(_ucs2 0x1031102C1014103A), +(_ucs2 0x1031102B10141039), +(_ucs2 0x1031102B1014103A), +(_ucs2 0x102D102F10141039), +(_ucs2 0x102D102F1014103A), +(_ucs2 0x10151039), +(_ucs2 0x1015103A), +(_ucs2 0x102C10151039), +(_ucs2 0x102C1015103A), +(_ucs2 0x102B10151039), +(_ucs2 0x102B1015103A), +(_ucs2 0x102D10151039), +(_ucs2 0x102D1015103A), +(_ucs2 0x102F10151039), +(_ucs2 0x102F1015103A), +(_ucs2 0x103110151039), +(_ucs2 0x10311015103A), +(_ucs2 0x1031102C10151039), +(_ucs2 0x1031102C1015103A), +(_ucs2 0x1031102B10151039), +(_ucs2 0x1031102B1015103A), +(_ucs2 0x102D102F10151039), +(_ucs2 0x102D102F1015103A), +(_ucs2 0x10161039), +(_ucs2 0x1016103A), +(_ucs2 0x102C10161039), +(_ucs2 0x102C1016103A), +(_ucs2 0x102B10161039), +(_ucs2 0x102B1016103A), +(_ucs2 0x102D10161039), +(_ucs2 0x102D1016103A), +(_ucs2 0x102F10161039), +(_ucs2 0x102F1016103A), +(_ucs2 0x103110161039), +(_ucs2 0x10311016103A), +(_ucs2 0x1031102C10161039), +(_ucs2 0x1031102C1016103A), +(_ucs2 0x1031102B10161039), +(_ucs2 0x1031102B1016103A), +(_ucs2 0x102D102F10161039), +(_ucs2 0x102D102F1016103A), +(_ucs2 0x10171039), +(_ucs2 0x1017103A), +(_ucs2 0x102C10171039), +(_ucs2 0x102C1017103A), +(_ucs2 0x102B10171039), +(_ucs2 0x102B1017103A), +(_ucs2 0x102D10171039), +(_ucs2 0x102D1017103A), +(_ucs2 0x102F10171039), +(_ucs2 0x102F1017103A), +(_ucs2 0x103110171039), +(_ucs2 0x10311017103A), +(_ucs2 0x1031102C10171039), +(_ucs2 0x1031102C1017103A), +(_ucs2 0x1031102B10171039), +(_ucs2 0x1031102B1017103A), +(_ucs2 0x102D102F10171039), +(_ucs2 0x102D102F1017103A), +(_ucs2 0x10181039), +(_ucs2 0x1018103A), +(_ucs2 0x102C10181039), +(_ucs2 0x102C1018103A), +(_ucs2 0x102B10181039), +(_ucs2 0x102B1018103A), +(_ucs2 0x102D10181039), +(_ucs2 0x102D1018103A), +(_ucs2 0x102F10181039), +(_ucs2 0x102F1018103A), +(_ucs2 0x103110181039), +(_ucs2 0x10311018103A), +(_ucs2 0x1031102C10181039), +(_ucs2 0x1031102C1018103A), +(_ucs2 0x1031102B10181039), +(_ucs2 0x1031102B1018103A), +(_ucs2 0x102D102F10181039), +(_ucs2 0x102D102F1018103A), +(_ucs2 0x10191039), +(_ucs2 0x1019103A), +(_ucs2 0x102C10191039), +(_ucs2 0x102C1019103A), +(_ucs2 0x102B10191039), +(_ucs2 0x102B1019103A), +(_ucs2 0x102D10191039), +(_ucs2 0x102D1019103A), +(_ucs2 0x102F10191039), +(_ucs2 0x102F1019103A), +(_ucs2 0x103110191039), +(_ucs2 0x10311019103A), +(_ucs2 0x1031102C10191039), +(_ucs2 0x1031102C1019103A), +(_ucs2 0x1031102B10191039), +(_ucs2 0x1031102B1019103A), +(_ucs2 0x102D102F10191039), +(_ucs2 0x102D102F1019103A), +(_ucs2 0x101A1039), +(_ucs2 0x101A103A), +(_ucs2 0x102C101A1039), +(_ucs2 0x102C101A103A), +(_ucs2 0x102B101A1039), +(_ucs2 0x102B101A103A), +(_ucs2 0x102D101A1039), +(_ucs2 0x102D101A103A), +(_ucs2 0x102F101A1039), +(_ucs2 0x102F101A103A), +(_ucs2 0x1031101A1039), +(_ucs2 0x1031101A103A), +(_ucs2 0x1031102C101A1039), +(_ucs2 0x1031102C101A103A), +(_ucs2 0x1031102B101A1039), +(_ucs2 0x1031102B101A103A), +(_ucs2 0x102D102F101A1039), +(_ucs2 0x102D102F101A103A), +(_ucs2 0x101B1039), +(_ucs2 0x101B103A), +(_ucs2 0x102C101B1039), +(_ucs2 0x102C101B103A), +(_ucs2 0x102B101B1039), +(_ucs2 0x102B101B103A), +(_ucs2 0x102D101B1039), +(_ucs2 0x102D101B103A), +(_ucs2 0x102F101B1039), +(_ucs2 0x102F101B103A), +(_ucs2 0x1031101B1039), +(_ucs2 0x1031101B103A), +(_ucs2 0x1031102C101B1039), +(_ucs2 0x1031102C101B103A), +(_ucs2 0x1031102B101B1039), +(_ucs2 0x1031102B101B103A), +(_ucs2 0x102D102F101B1039), +(_ucs2 0x102D102F101B103A), +(_ucs2 0x101C1039), +(_ucs2 0x101C103A), +(_ucs2 0x102C101C1039), +(_ucs2 0x102C101C103A), +(_ucs2 0x102B101C1039), +(_ucs2 0x102B101C103A), +(_ucs2 0x102D101C1039), +(_ucs2 0x102D101C103A), +(_ucs2 0x102F101C1039), +(_ucs2 0x102F101C103A), +(_ucs2 0x1031101C1039), +(_ucs2 0x1031101C103A), +(_ucs2 0x1031102C101C1039), +(_ucs2 0x1031102C101C103A), +(_ucs2 0x1031102B101C1039), +(_ucs2 0x1031102B101C103A), +(_ucs2 0x102D102F101C1039), +(_ucs2 0x102D102F101C103A), +(_ucs2 0x101D103A), +(_ucs2 0x102C101D103A), +(_ucs2 0x102B101D103A), +(_ucs2 0x102D101D103A), +(_ucs2 0x102F101D103A), +(_ucs2 0x1031101D103A), +(_ucs2 0x1031102C101D103A), +(_ucs2 0x1031102B101D103A), +(_ucs2 0x102D102F101D103A), +(_ucs2 0x101E1039), +(_ucs2 0x101E103A), +(_ucs2 0x102C101E1039), +(_ucs2 0x102C101E103A), +(_ucs2 0x102B101E1039), +(_ucs2 0x102B101E103A), +(_ucs2 0x102D101E1039), +(_ucs2 0x102D101E103A), +(_ucs2 0x102F101E1039), +(_ucs2 0x102F101E103A), +(_ucs2 0x1031101E1039), +(_ucs2 0x1031101E103A), +(_ucs2 0x1031102C101E1039), +(_ucs2 0x1031102C101E103A), +(_ucs2 0x1031102B101E1039), +(_ucs2 0x1031102B101E103A), +(_ucs2 0x102D102F101E1039), +(_ucs2 0x102D102F101E103A), +(_ucs2 0x101F1039), +(_ucs2 0x101F103A), +(_ucs2 0x102C101F1039), +(_ucs2 0x102C101F103A), +(_ucs2 0x102B101F1039), +(_ucs2 0x102B101F103A), +(_ucs2 0x102D101F1039), +(_ucs2 0x102D101F103A), +(_ucs2 0x102F101F1039), +(_ucs2 0x102F101F103A), +(_ucs2 0x1031101F1039), +(_ucs2 0x1031101F103A), +(_ucs2 0x1031102C101F1039), +(_ucs2 0x1031102C101F103A), +(_ucs2 0x1031102B101F1039), +(_ucs2 0x1031102B101F103A), +(_ucs2 0x102D102F101F1039), +(_ucs2 0x102D102F101F103A), +(_ucs2 0x1020103A), +(_ucs2 0x102C1020103A), +(_ucs2 0x102B1020103A), +(_ucs2 0x102D1020103A), +(_ucs2 0x102F1020103A), +(_ucs2 0x10311020103A), +(_ucs2 0x1031102C1020103A), +(_ucs2 0x1031102B1020103A), +(_ucs2 0x102D102F1020103A), +(_ucs2 0x1021103A), +(_ucs2 0x102C1021103A), +(_ucs2 0x102B1021103A), +(_ucs2 0x102D1021103A), +(_ucs2 0x102F1021103A), +(_ucs2 0x10311021103A), +(_ucs2 0x1031102C1021103A), +(_ucs2 0x1031102B1021103A), +(_ucs2 0x102D102F1021103A), +('--- Medials'), +(_ucs2 0x105E), +(_ucs2 0x105F), +(_ucs2 0x103B), +(_ucs2 0x103C), +(_ucs2 0x1060), +(_ucs2 0x103D), +(_ucs2 0x1082), +(_ucs2 0x103E), +(_ucs2 0x103B103D), +(_ucs2 0x103C103D), +(_ucs2 0x103B103E), +(_ucs2 0x103C103E), +(_ucs2 0x103D103E), +(_ucs2 0x103B103D103E), +(_ucs2 0x103C103D103E), +('--- Independent vowels'), +(_ucs2 0x1021102D), +(_ucs2 0x1023), +(_ucs2 0x1021102E), +(_ucs2 0x1024), +(_ucs2 0x1021102F), +(_ucs2 0x1025), +(_ucs2 0x10211030), +(_ucs2 0x1026), +(_ucs2 0x10211031), +(_ucs2 0x1027), +(_ucs2 0x1028), +(_ucs2 0x10211031102C), +(_ucs2 0x1029), +(_ucs2 0x10211031102C103A), +(_ucs2 0x102A), +(_ucs2 0x102D1019103A), +(_ucs2 0x102D1036), +(_ucs2 0x102D1019103A1037), +(_ucs2 0x102D10361037), +(_ucs2 0x102D1019103A1038), +(_ucs2 0x102D10361038), +(_ucs2 0x102F1019103A), +(_ucs2 0x102F1036), +(_ucs2 0x102F1019103A1037), +(_ucs2 0x102F10361037), +(_ucs2 0x102F1019103A1038), +(_ucs2 0x102F10361038), +(_ucs2 0x1021102F1036), +(_ucs2 0x1025102F1036), +('--- Independent vowels with finals'), +(_ucs2 0x1021102D10001039), +(_ucs2 0x102310001039), +(_ucs2 0x1021102D1000103A), +(_ucs2 0x10231000103A), +(_ucs2 0x1021102F10001039), +(_ucs2 0x102510001039), +(_ucs2 0x1021102F1000103A), +(_ucs2 0x10251000103A), +(_ucs2 0x1021103110001039), +(_ucs2 0x102710001039), +(_ucs2 0x102110311000103A), +(_ucs2 0x10271000103A), +(_ucs2 0x10211031102C10001039), +(_ucs2 0x102910001039), +(_ucs2 0x10211031102C1000103A), +(_ucs2 0x10291000103A), +(_ucs2 0x10211031102C10001039), +(_ucs2 0x10291031102C10001039), +(_ucs2 0x10211031102C1000103A), +(_ucs2 0x10291031102C1000103A), +(_ucs2 0x1021102D10011039), +(_ucs2 0x102310011039), +(_ucs2 0x1021102D1001103A), +(_ucs2 0x10231001103A), +(_ucs2 0x1021102F10011039), +(_ucs2 0x102510011039), +(_ucs2 0x1021102F1001103A), +(_ucs2 0x10251001103A), +(_ucs2 0x1021103110011039), +(_ucs2 0x102710011039), +(_ucs2 0x102110311001103A), +(_ucs2 0x10271001103A), +(_ucs2 0x10211031102C10011039), +(_ucs2 0x102910011039), +(_ucs2 0x10211031102C1001103A), +(_ucs2 0x10291001103A), +(_ucs2 0x10211031102C10011039), +(_ucs2 0x10291031102C10011039), +(_ucs2 0x10211031102C1001103A), +(_ucs2 0x10291031102C1001103A), +(_ucs2 0x1021102D10021039), +(_ucs2 0x102310021039), +(_ucs2 0x1021102D1002103A), +(_ucs2 0x10231002103A), +(_ucs2 0x1021102F10021039), +(_ucs2 0x102510021039), +(_ucs2 0x1021102F1002103A), +(_ucs2 0x10251002103A), +(_ucs2 0x1021103110021039), +(_ucs2 0x102710021039), +(_ucs2 0x102110311002103A), +(_ucs2 0x10271002103A), +(_ucs2 0x10211031102C10021039), +(_ucs2 0x102910021039), +(_ucs2 0x10211031102C1002103A), +(_ucs2 0x10291002103A), +(_ucs2 0x10211031102C10021039), +(_ucs2 0x10291031102C10021039), +(_ucs2 0x10211031102C1002103A), +(_ucs2 0x10291031102C1002103A), +(_ucs2 0x1021102D10031039), +(_ucs2 0x102310031039), +(_ucs2 0x1021102D1003103A), +(_ucs2 0x10231003103A), +(_ucs2 0x1021102F10031039), +(_ucs2 0x102510031039), +(_ucs2 0x1021102F1003103A), +(_ucs2 0x10251003103A), +(_ucs2 0x1021103110031039), +(_ucs2 0x102710031039), +(_ucs2 0x102110311003103A), +(_ucs2 0x10271003103A), +(_ucs2 0x10211031102C10031039), +(_ucs2 0x102910031039), +(_ucs2 0x10211031102C1003103A), +(_ucs2 0x10291003103A), +(_ucs2 0x10211031102C10031039), +(_ucs2 0x10291031102C10031039), +(_ucs2 0x10211031102C1003103A), +(_ucs2 0x10291031102C1003103A), +(_ucs2 0x1021102D10041039), +(_ucs2 0x102310041039), +(_ucs2 0x1021102D1004103A), +(_ucs2 0x10231004103A), +(_ucs2 0x1021102F10041039), +(_ucs2 0x102510041039), +(_ucs2 0x1021102F1004103A), +(_ucs2 0x10251004103A), +(_ucs2 0x1021103110041039), +(_ucs2 0x102710041039), +(_ucs2 0x102110311004103A), +(_ucs2 0x10271004103A), +(_ucs2 0x10211031102C10041039), +(_ucs2 0x102910041039), +(_ucs2 0x10211031102C1004103A), +(_ucs2 0x10291004103A), +(_ucs2 0x10211031102C10041039), +(_ucs2 0x10291031102C10041039), +(_ucs2 0x10211031102C1004103A), +(_ucs2 0x10291031102C1004103A), +(_ucs2 0x1021102D10051039), +(_ucs2 0x102310051039), +(_ucs2 0x1021102D1005103A), +(_ucs2 0x10231005103A), +(_ucs2 0x1021102F10051039), +(_ucs2 0x102510051039), +(_ucs2 0x1021102F1005103A), +(_ucs2 0x10251005103A), +(_ucs2 0x1021103110051039), +(_ucs2 0x102710051039), +(_ucs2 0x102110311005103A), +(_ucs2 0x10271005103A), +(_ucs2 0x10211031102C10051039), +(_ucs2 0x102910051039), +(_ucs2 0x10211031102C1005103A), +(_ucs2 0x10291005103A), +(_ucs2 0x10211031102C10051039), +(_ucs2 0x10291031102C10051039), +(_ucs2 0x10211031102C1005103A), +(_ucs2 0x10291031102C1005103A), +(_ucs2 0x1021102D10061039), +(_ucs2 0x102310061039), +(_ucs2 0x1021102D1006103A), +(_ucs2 0x10231006103A), +(_ucs2 0x1021102F10061039), +(_ucs2 0x102510061039), +(_ucs2 0x1021102F1006103A), +(_ucs2 0x10251006103A), +(_ucs2 0x1021103110061039), +(_ucs2 0x102710061039), +(_ucs2 0x102110311006103A), +(_ucs2 0x10271006103A), +(_ucs2 0x10211031102C10061039), +(_ucs2 0x102910061039), +(_ucs2 0x10211031102C1006103A), +(_ucs2 0x10291006103A), +(_ucs2 0x10211031102C10061039), +(_ucs2 0x10291031102C10061039), +(_ucs2 0x10211031102C1006103A), +(_ucs2 0x10291031102C1006103A), +(_ucs2 0x1021102D10071039), +(_ucs2 0x102310071039), +(_ucs2 0x1021102D1007103A), +(_ucs2 0x10231007103A), +(_ucs2 0x1021102F10071039), +(_ucs2 0x102510071039), +(_ucs2 0x1021102F1007103A), +(_ucs2 0x10251007103A), +(_ucs2 0x1021103110071039), +(_ucs2 0x102710071039), +(_ucs2 0x102110311007103A), +(_ucs2 0x10271007103A), +(_ucs2 0x10211031102C10071039), +(_ucs2 0x102910071039), +(_ucs2 0x10211031102C1007103A), +(_ucs2 0x10291007103A), +(_ucs2 0x10211031102C10071039), +(_ucs2 0x10291031102C10071039), +(_ucs2 0x10211031102C1007103A), +(_ucs2 0x10291031102C1007103A), +(_ucs2 0x1021102D10091039), +(_ucs2 0x102310091039), +(_ucs2 0x1021102D1009103A), +(_ucs2 0x10231009103A), +(_ucs2 0x1021102F10091039), +(_ucs2 0x102510091039), +(_ucs2 0x1021102F1009103A), +(_ucs2 0x10251009103A), +(_ucs2 0x1021103110091039), +(_ucs2 0x102710091039), +(_ucs2 0x102110311009103A), +(_ucs2 0x10271009103A), +(_ucs2 0x10211031102C10091039), +(_ucs2 0x102910091039), +(_ucs2 0x10211031102C1009103A), +(_ucs2 0x10291009103A), +(_ucs2 0x10211031102C10091039), +(_ucs2 0x10291031102C10091039), +(_ucs2 0x10211031102C1009103A), +(_ucs2 0x10291031102C1009103A), +(_ucs2 0x1021102D100A1039), +(_ucs2 0x1023100A1039), +(_ucs2 0x1021102D100A103A), +(_ucs2 0x1023100A103A), +(_ucs2 0x1021102F100A1039), +(_ucs2 0x1025100A1039), +(_ucs2 0x1021102F100A103A), +(_ucs2 0x1025100A103A), +(_ucs2 0x10211031100A1039), +(_ucs2 0x1027100A1039), +(_ucs2 0x10211031100A103A), +(_ucs2 0x1027100A103A), +(_ucs2 0x10211031102C100A1039), +(_ucs2 0x1029100A1039), +(_ucs2 0x10211031102C100A103A), +(_ucs2 0x1029100A103A), +(_ucs2 0x10211031102C100A1039), +(_ucs2 0x10291031102C100A1039), +(_ucs2 0x10211031102C100A103A), +(_ucs2 0x10291031102C100A103A), +(_ucs2 0x1021102D100B1039), +(_ucs2 0x1023100B1039), +(_ucs2 0x1021102D100B103A), +(_ucs2 0x1023100B103A), +(_ucs2 0x1021102F100B1039), +(_ucs2 0x1025100B1039), +(_ucs2 0x1021102F100B103A), +(_ucs2 0x1025100B103A), +(_ucs2 0x10211031100B1039), +(_ucs2 0x1027100B1039), +(_ucs2 0x10211031100B103A), +(_ucs2 0x1027100B103A), +(_ucs2 0x10211031102C100B1039), +(_ucs2 0x1029100B1039), +(_ucs2 0x10211031102C100B103A), +(_ucs2 0x1029100B103A), +(_ucs2 0x10211031102C100B1039), +(_ucs2 0x10291031102C100B1039), +(_ucs2 0x10211031102C100B103A), +(_ucs2 0x10291031102C100B103A), +(_ucs2 0x1021102D100C1039), +(_ucs2 0x1023100C1039), +(_ucs2 0x1021102D100C103A), +(_ucs2 0x1023100C103A), +(_ucs2 0x1021102F100C1039), +(_ucs2 0x1025100C1039), +(_ucs2 0x1021102F100C103A), +(_ucs2 0x1025100C103A), +(_ucs2 0x10211031100C1039), +(_ucs2 0x1027100C1039), +(_ucs2 0x10211031100C103A), +(_ucs2 0x1027100C103A), +(_ucs2 0x10211031102C100C1039), +(_ucs2 0x1029100C1039), +(_ucs2 0x10211031102C100C103A), +(_ucs2 0x1029100C103A), +(_ucs2 0x10211031102C100C1039), +(_ucs2 0x10291031102C100C1039), +(_ucs2 0x10211031102C100C103A), +(_ucs2 0x10291031102C100C103A), +(_ucs2 0x1021102D100D1039), +(_ucs2 0x1023100D1039), +(_ucs2 0x1021102D100D103A), +(_ucs2 0x1023100D103A), +(_ucs2 0x1021102F100D1039), +(_ucs2 0x1025100D1039), +(_ucs2 0x1021102F100D103A), +(_ucs2 0x1025100D103A), +(_ucs2 0x10211031100D1039), +(_ucs2 0x1027100D1039), +(_ucs2 0x10211031100D103A), +(_ucs2 0x1027100D103A), +(_ucs2 0x10211031102C100D1039), +(_ucs2 0x1029100D1039), +(_ucs2 0x10211031102C100D103A), +(_ucs2 0x1029100D103A), +(_ucs2 0x10211031102C100D1039), +(_ucs2 0x10291031102C100D1039), +(_ucs2 0x10211031102C100D103A), +(_ucs2 0x10291031102C100D103A), +(_ucs2 0x1021102D100E1039), +(_ucs2 0x1023100E1039), +(_ucs2 0x1021102D100E103A), +(_ucs2 0x1023100E103A), +(_ucs2 0x1021102F100E1039), +(_ucs2 0x1025100E1039), +(_ucs2 0x1021102F100E103A), +(_ucs2 0x1025100E103A), +(_ucs2 0x10211031100E1039), +(_ucs2 0x1027100E1039), +(_ucs2 0x10211031100E103A), +(_ucs2 0x1027100E103A), +(_ucs2 0x10211031102C100E1039), +(_ucs2 0x1029100E1039), +(_ucs2 0x10211031102C100E103A), +(_ucs2 0x1029100E103A), +(_ucs2 0x10211031102C100E1039), +(_ucs2 0x10291031102C100E1039), +(_ucs2 0x10211031102C100E103A), +(_ucs2 0x10291031102C100E103A), +(_ucs2 0x1021102D100F1039), +(_ucs2 0x1023100F1039), +(_ucs2 0x1021102D100F103A), +(_ucs2 0x1023100F103A), +(_ucs2 0x1021102F100F1039), +(_ucs2 0x1025100F1039), +(_ucs2 0x1021102F100F103A), +(_ucs2 0x1025100F103A), +(_ucs2 0x10211031100F1039), +(_ucs2 0x1027100F1039), +(_ucs2 0x10211031100F103A), +(_ucs2 0x1027100F103A), +(_ucs2 0x10211031102C100F1039), +(_ucs2 0x1029100F1039), +(_ucs2 0x10211031102C100F103A), +(_ucs2 0x1029100F103A), +(_ucs2 0x10211031102C100F1039), +(_ucs2 0x10291031102C100F1039), +(_ucs2 0x10211031102C100F103A), +(_ucs2 0x10291031102C100F103A), +(_ucs2 0x1021102D10101039), +(_ucs2 0x102310101039), +(_ucs2 0x1021102D1010103A), +(_ucs2 0x10231010103A), +(_ucs2 0x1021102F10101039), +(_ucs2 0x102510101039), +(_ucs2 0x1021102F1010103A), +(_ucs2 0x10251010103A), +(_ucs2 0x1021103110101039), +(_ucs2 0x102710101039), +(_ucs2 0x102110311010103A), +(_ucs2 0x10271010103A), +(_ucs2 0x10211031102C10101039), +(_ucs2 0x102910101039), +(_ucs2 0x10211031102C1010103A), +(_ucs2 0x10291010103A), +(_ucs2 0x10211031102C10101039), +(_ucs2 0x10291031102C10101039), +(_ucs2 0x10211031102C1010103A), +(_ucs2 0x10291031102C1010103A), +(_ucs2 0x1021102D10111039), +(_ucs2 0x102310111039), +(_ucs2 0x1021102D1011103A), +(_ucs2 0x10231011103A), +(_ucs2 0x1021102F10111039), +(_ucs2 0x102510111039), +(_ucs2 0x1021102F1011103A), +(_ucs2 0x10251011103A), +(_ucs2 0x1021103110111039), +(_ucs2 0x102710111039), +(_ucs2 0x102110311011103A), +(_ucs2 0x10271011103A), +(_ucs2 0x10211031102C10111039), +(_ucs2 0x102910111039), +(_ucs2 0x10211031102C1011103A), +(_ucs2 0x10291011103A), +(_ucs2 0x10211031102C10111039), +(_ucs2 0x10291031102C10111039), +(_ucs2 0x10211031102C1011103A), +(_ucs2 0x10291031102C1011103A), +(_ucs2 0x1021102D10121039), +(_ucs2 0x102310121039), +(_ucs2 0x1021102D1012103A), +(_ucs2 0x10231012103A), +(_ucs2 0x1021102F10121039), +(_ucs2 0x102510121039), +(_ucs2 0x1021102F1012103A), +(_ucs2 0x10251012103A), +(_ucs2 0x1021103110121039), +(_ucs2 0x102710121039), +(_ucs2 0x102110311012103A), +(_ucs2 0x10271012103A), +(_ucs2 0x10211031102C10121039), +(_ucs2 0x102910121039), +(_ucs2 0x10211031102C1012103A), +(_ucs2 0x10291012103A), +(_ucs2 0x10211031102C10121039), +(_ucs2 0x10291031102C10121039), +(_ucs2 0x10211031102C1012103A), +(_ucs2 0x10291031102C1012103A), +(_ucs2 0x1021102D10131039), +(_ucs2 0x102310131039), +(_ucs2 0x1021102D1013103A), +(_ucs2 0x10231013103A), +(_ucs2 0x1021102F10131039), +(_ucs2 0x102510131039), +(_ucs2 0x1021102F1013103A), +(_ucs2 0x10251013103A), +(_ucs2 0x1021103110131039), +(_ucs2 0x102710131039), +(_ucs2 0x102110311013103A), +(_ucs2 0x10271013103A), +(_ucs2 0x10211031102C10131039), +(_ucs2 0x102910131039), +(_ucs2 0x10211031102C1013103A), +(_ucs2 0x10291013103A), +(_ucs2 0x10211031102C10131039), +(_ucs2 0x10291031102C10131039), +(_ucs2 0x10211031102C1013103A), +(_ucs2 0x10291031102C1013103A), +(_ucs2 0x1021102D10141039), +(_ucs2 0x102310141039), +(_ucs2 0x1021102D1014103A), +(_ucs2 0x10231014103A), +(_ucs2 0x1021102F10141039), +(_ucs2 0x102510141039), +(_ucs2 0x1021102F1014103A), +(_ucs2 0x10251014103A), +(_ucs2 0x1021103110141039), +(_ucs2 0x102710141039), +(_ucs2 0x102110311014103A), +(_ucs2 0x10271014103A), +(_ucs2 0x10211031102C10141039), +(_ucs2 0x102910141039), +(_ucs2 0x10211031102C1014103A), +(_ucs2 0x10291014103A), +(_ucs2 0x10211031102C10141039), +(_ucs2 0x10291031102C10141039), +(_ucs2 0x10211031102C1014103A), +(_ucs2 0x10291031102C1014103A), +(_ucs2 0x1021102D10151039), +(_ucs2 0x102310151039), +(_ucs2 0x1021102D1015103A), +(_ucs2 0x10231015103A), +(_ucs2 0x1021102F10151039), +(_ucs2 0x102510151039), +(_ucs2 0x1021102F1015103A), +(_ucs2 0x10251015103A), +(_ucs2 0x1021103110151039), +(_ucs2 0x102710151039), +(_ucs2 0x102110311015103A), +(_ucs2 0x10271015103A), +(_ucs2 0x10211031102C10151039), +(_ucs2 0x102910151039), +(_ucs2 0x10211031102C1015103A), +(_ucs2 0x10291015103A), +(_ucs2 0x10211031102C10151039), +(_ucs2 0x10291031102C10151039), +(_ucs2 0x10211031102C1015103A), +(_ucs2 0x10291031102C1015103A), +(_ucs2 0x1021102D10161039), +(_ucs2 0x102310161039), +(_ucs2 0x1021102D1016103A), +(_ucs2 0x10231016103A), +(_ucs2 0x1021102F10161039), +(_ucs2 0x102510161039), +(_ucs2 0x1021102F1016103A), +(_ucs2 0x10251016103A), +(_ucs2 0x1021103110161039), +(_ucs2 0x102710161039), +(_ucs2 0x102110311016103A), +(_ucs2 0x10271016103A), +(_ucs2 0x10211031102C10161039), +(_ucs2 0x102910161039), +(_ucs2 0x10211031102C1016103A), +(_ucs2 0x10291016103A), +(_ucs2 0x10211031102C10161039), +(_ucs2 0x10291031102C10161039), +(_ucs2 0x10211031102C1016103A), +(_ucs2 0x10291031102C1016103A), +(_ucs2 0x1021102D10171039), +(_ucs2 0x102310171039), +(_ucs2 0x1021102D1017103A), +(_ucs2 0x10231017103A), +(_ucs2 0x1021102F10171039), +(_ucs2 0x102510171039), +(_ucs2 0x1021102F1017103A), +(_ucs2 0x10251017103A), +(_ucs2 0x1021103110171039), +(_ucs2 0x102710171039), +(_ucs2 0x102110311017103A), +(_ucs2 0x10271017103A), +(_ucs2 0x10211031102C10171039), +(_ucs2 0x102910171039), +(_ucs2 0x10211031102C1017103A), +(_ucs2 0x10291017103A), +(_ucs2 0x10211031102C10171039), +(_ucs2 0x10291031102C10171039), +(_ucs2 0x10211031102C1017103A), +(_ucs2 0x10291031102C1017103A), +(_ucs2 0x1021102D10181039), +(_ucs2 0x102310181039), +(_ucs2 0x1021102D1018103A), +(_ucs2 0x10231018103A), +(_ucs2 0x1021102F10181039), +(_ucs2 0x102510181039), +(_ucs2 0x1021102F1018103A), +(_ucs2 0x10251018103A), +(_ucs2 0x1021103110181039), +(_ucs2 0x102710181039), +(_ucs2 0x102110311018103A), +(_ucs2 0x10271018103A), +(_ucs2 0x10211031102C10181039), +(_ucs2 0x102910181039), +(_ucs2 0x10211031102C1018103A), +(_ucs2 0x10291018103A), +(_ucs2 0x10211031102C10181039), +(_ucs2 0x10291031102C10181039), +(_ucs2 0x10211031102C1018103A), +(_ucs2 0x10291031102C1018103A), +(_ucs2 0x1021102D10191039), +(_ucs2 0x102310191039), +(_ucs2 0x1021102D1019103A), +(_ucs2 0x10231019103A), +(_ucs2 0x1021102F10191039), +(_ucs2 0x102510191039), +(_ucs2 0x1021102F1019103A), +(_ucs2 0x10251019103A), +(_ucs2 0x1021103110191039), +(_ucs2 0x102710191039), +(_ucs2 0x102110311019103A), +(_ucs2 0x10271019103A), +(_ucs2 0x10211031102C10191039), +(_ucs2 0x102910191039), +(_ucs2 0x10211031102C1019103A), +(_ucs2 0x10291019103A), +(_ucs2 0x10211031102C10191039), +(_ucs2 0x10291031102C10191039), +(_ucs2 0x10211031102C1019103A), +(_ucs2 0x10291031102C1019103A), +(_ucs2 0x1021102D101A1039), +(_ucs2 0x1023101A1039), +(_ucs2 0x1021102D101A103A), +(_ucs2 0x1023101A103A), +(_ucs2 0x1021102F101A1039), +(_ucs2 0x1025101A1039), +(_ucs2 0x1021102F101A103A), +(_ucs2 0x1025101A103A), +(_ucs2 0x10211031101A1039), +(_ucs2 0x1027101A1039), +(_ucs2 0x10211031101A103A), +(_ucs2 0x1027101A103A), +(_ucs2 0x10211031102C101A1039), +(_ucs2 0x1029101A1039), +(_ucs2 0x10211031102C101A103A), +(_ucs2 0x1029101A103A), +(_ucs2 0x10211031102C101A1039), +(_ucs2 0x10291031102C101A1039), +(_ucs2 0x10211031102C101A103A), +(_ucs2 0x10291031102C101A103A), +(_ucs2 0x1021102D101B1039), +(_ucs2 0x1023101B1039), +(_ucs2 0x1021102D101B103A), +(_ucs2 0x1023101B103A), +(_ucs2 0x1021102F101B1039), +(_ucs2 0x1025101B1039), +(_ucs2 0x1021102F101B103A), +(_ucs2 0x1025101B103A), +(_ucs2 0x10211031101B1039), +(_ucs2 0x1027101B1039), +(_ucs2 0x10211031101B103A), +(_ucs2 0x1027101B103A), +(_ucs2 0x10211031102C101B1039), +(_ucs2 0x1029101B1039), +(_ucs2 0x10211031102C101B103A), +(_ucs2 0x1029101B103A), +(_ucs2 0x10211031102C101B1039), +(_ucs2 0x10291031102C101B1039), +(_ucs2 0x10211031102C101B103A), +(_ucs2 0x10291031102C101B103A), +(_ucs2 0x1021102D101C1039), +(_ucs2 0x1023101C1039), +(_ucs2 0x1021102D101C103A), +(_ucs2 0x1023101C103A), +(_ucs2 0x1021102F101C1039), +(_ucs2 0x1025101C1039), +(_ucs2 0x1021102F101C103A), +(_ucs2 0x1025101C103A), +(_ucs2 0x10211031101C1039), +(_ucs2 0x1027101C1039), +(_ucs2 0x10211031101C103A), +(_ucs2 0x1027101C103A), +(_ucs2 0x10211031102C101C1039), +(_ucs2 0x1029101C1039), +(_ucs2 0x10211031102C101C103A), +(_ucs2 0x1029101C103A), +(_ucs2 0x10211031102C101C1039), +(_ucs2 0x10291031102C101C1039), +(_ucs2 0x10211031102C101C103A), +(_ucs2 0x10291031102C101C103A), +(_ucs2 0x1021102D101E1039), +(_ucs2 0x1023101E1039), +(_ucs2 0x1021102D101E103A), +(_ucs2 0x1023101E103A), +(_ucs2 0x1021102F101E1039), +(_ucs2 0x1025101E1039), +(_ucs2 0x1021102F101E103A), +(_ucs2 0x1025101E103A), +(_ucs2 0x10211031101E1039), +(_ucs2 0x1027101E1039), +(_ucs2 0x10211031101E103A), +(_ucs2 0x1027101E103A), +(_ucs2 0x10211031102C101E1039), +(_ucs2 0x1029101E1039), +(_ucs2 0x10211031102C101E103A), +(_ucs2 0x1029101E103A), +(_ucs2 0x10211031102C101E1039), +(_ucs2 0x10291031102C101E1039), +(_ucs2 0x10211031102C101E103A), +(_ucs2 0x10291031102C101E103A), +(_ucs2 0x1021102D101F1039), +(_ucs2 0x1023101F1039), +(_ucs2 0x1021102D101F103A), +(_ucs2 0x1023101F103A), +(_ucs2 0x1021102F101F1039), +(_ucs2 0x1025101F1039), +(_ucs2 0x1021102F101F103A), +(_ucs2 0x1025101F103A), +(_ucs2 0x10211031101F1039), +(_ucs2 0x1027101F1039), +(_ucs2 0x10211031101F103A), +(_ucs2 0x1027101F103A), +(_ucs2 0x10211031102C101F1039), +(_ucs2 0x1029101F1039), +(_ucs2 0x10211031102C101F103A), +(_ucs2 0x1029101F103A), +(_ucs2 0x10211031102C101F1039), +(_ucs2 0x10291031102C101F1039), +(_ucs2 0x10211031102C101F103A), +(_ucs2 0x10291031102C101F103A), +('--- Contractions'), +(_ucs2 0x1031102C1000103A1000103B), +(_ucs2 0x1031102C1000103A103B /* (suffix of) man */), +(_ucs2 0x1014103A1014102F1015103A), +(_ucs2 0x1014103A102F1015103A /* (suffix of) I */), +('--- Great Sa'), +(_ucs2 0x1031101E1039101E), +(_ucs2 0x1031103F), +(_ucs2 0x102D101E1039101E), +(_ucs2 0x102D103F), +(_ucs2 0x102F101E1039101E), +(_ucs2 0x102F103F), +(_ucs2 0x1021102D101E1039101E), +(_ucs2 0x1023103F), +(_ucs2 0x1021102F101E1039101E), +(_ucs2 0x1025103F), +(_ucs2 0x101E1039101E), +(_ucs2 0x103F), +('--- Symbols - collate as long form'), +(_ucs2 0x1014103E102D102F1000103A), +(_ucs2 0x104C), +(_ucs2 0x101B103D10311037), +(_ucs2 0x104D), +(_ucs2 0x101C100A103A103810001031102C1004103A1038), +(_ucs2 0x104E1004103A1038), +(_ucs2 0x1021102D), +(_ucs2 0x104F), +('--- Short Forms may need to be added here'), +(_ucs2 0x101C1000103A101A102C), +(_ucs2 0x101C1000103A103B102C /* right hand side */), +(_ucs2 0x101E1019102E), +(_ucs2 0x101E10391019102E /* daughter */), +(_ucs2 0x101110191004103A1038), +(_ucs2 0x1011103910191004103A1038 /* cooked rice */), +(_ucs2 0x101C1000103A10181000103A), +(_ucs2 0x101C103910181000103A /* tea */); + +# enable view-protocol after fix MDEV-27871 +--disable_view_protocol + +SELECT id, IF(LEFT(s1,1)='-',s1,CONCAT(HEX(WEIGHT_STRING(s1)),'\t', HEX(CONVERT(s1 USING ucs2)))) FROM t1 ORDER BY id; +--enable_view_protocol + +DROP TABLE t1; + +--echo # +--echo # END of ctype_myanmar.inc +--echo # diff --git a/mysql-test/include/ctype_nopad_prefix_unique.inc b/mysql-test/include/ctype_nopad_prefix_unique.inc new file mode 100644 index 00000000..ec5bda0e --- /dev/null +++ b/mysql-test/include/ctype_nopad_prefix_unique.inc @@ -0,0 +1,79 @@ +--echo # +--echo # MDEV-30034 UNIQUE USING HASH accepts duplicate entries for tricky collations +--echo # + +# TEXT + +if (`SELECT UPPER(@@storage_engine) != 'MEMORY'`) +{ +EXECUTE IMMEDIATE REPLACE( + 'CREATE TABLE t1 ( ' + ' a TEXT COLLATE <COLLATION>,' + 'UNIQUE(a(3)))', + '<COLLATION>', @@collation_connection); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss '); +--error ER_DUP_ENTRY +INSERT INTO t1 VALUES (_utf8mb3 0xC39F20)/*SZ+SPACE*/; +DROP TABLE t1; + + +EXECUTE IMMEDIATE REPLACE( + 'CREATE TABLE t1 ( ' + ' a TEXT COLLATE <COLLATION>,' + 'UNIQUE(a(3)) USING HASH)', + '<COLLATION>', @@collation_connection); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss '); +--error ER_DUP_ENTRY +INSERT INTO t1 VALUES (_utf8mb3 0xC39F20)/*SZ+SPACE*/; +DROP TABLE t1; +} + + +# VARCHAR + +EXECUTE IMMEDIATE REPLACE( + 'CREATE TABLE t1 ( ' + ' a VARCHAR(2000) COLLATE <COLLATION>,' + 'UNIQUE(a(3)))', + '<COLLATION>', @@collation_connection); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss '); +--error ER_DUP_ENTRY +INSERT INTO t1 VALUES (_utf8mb3 0xC39F20)/*SZ+SPACE*/; +DROP TABLE t1; + + +EXECUTE IMMEDIATE REPLACE( + 'CREATE TABLE t1 ( ' + ' a VARCHAR(2000) COLLATE <COLLATION>,' + 'UNIQUE(a(3)) USING HASH)', + '<COLLATION>', @@collation_connection); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss '); +--error ER_DUP_ENTRY +INSERT INTO t1 VALUES (_utf8mb3 0xC39F20)/*SZ+SPACE*/; +DROP TABLE t1; + +# CHAR + +EXECUTE IMMEDIATE REPLACE( + 'CREATE TABLE t1 ( ' + ' a CHAR(20) COLLATE <COLLATION>,' + 'UNIQUE(a(3)))', + '<COLLATION>', @@collation_connection); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss '); +INSERT INTO t1 VALUES (_utf8mb3 0xC39F20)/*SZ+SPACE*/; +DROP TABLE t1; + +EXECUTE IMMEDIATE REPLACE( + 'CREATE TABLE t1 ( ' + ' a CHAR(20) COLLATE <COLLATION>,' + 'UNIQUE(a(3)) USING HASH)', + '<COLLATION>', @@collation_connection); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss '); +INSERT INTO t1 VALUES (_utf8mb3 0xC39F20)/*SZ+SPACE*/; +DROP TABLE t1; diff --git a/mysql-test/include/ctype_numconv.inc b/mysql-test/include/ctype_numconv.inc new file mode 100644 index 00000000..a4eaf72c --- /dev/null +++ b/mysql-test/include/ctype_numconv.inc @@ -0,0 +1,1854 @@ +#remove this include after fix MDEV-27871 +# maybe some tests need to be excluded separately after fix +--source include/no_view_protocol.inc + +SET TIME_ZONE = _latin1 '+03:00'; + +--echo # +--echo # Start of WL#2649 Number-to-string conversions +--echo # +# +# Basic constants +# +select hex(concat(1)); +create table t1 as select concat(1) as c1; +show create table t1; +select hex(c1) from t1; +drop table t1; + +select hex(concat(18446744073709551615)); +create table t1 as select concat(18446744073709551615) as c1; +show create table t1; +select hex(c1) from t1; +drop table t1; + +select hex(concat(1.1)); +create table t1 as select concat(1.1) as c1; +show create table t1; +select hex(c1) from t1; +drop table t1; + + +# +# Arithmetic operators +# + +select hex(concat('a', 1+2)), charset(concat(1+2)); +create table t1 as select concat(1+2) as c1; +show create table t1; +drop table t1; + +select hex(concat(1-2)); +create table t1 as select concat(1-2) as c1; +show create table t1; +drop table t1; + +select hex(concat(1*2)); +create table t1 as select concat(1*2) as c1; +show create table t1; +drop table t1; + +select hex(concat(1/2)); +create table t1 as select concat(1/2) as c1; +show create table t1; +drop table t1; + +select hex(concat(1 div 2)); +create table t1 as select concat(1 div 2) as c1; +show create table t1; +drop table t1; + +select hex(concat(1 % 2)); +create table t1 as select concat(1 % 2) as c1; +show create table t1; +drop table t1; + +select hex(concat(-1)); +create table t1 as select concat(-1) as c1; +show create table t1; +drop table t1; + +select hex(concat(-(1+2))); +create table t1 as select concat(-(1+2)) as c1; +show create table t1; +drop table t1; + + +# +# Bit functions +# + +select hex(concat(1|2)); +create table t1 as select concat(1|2) as c1; +show create table t1; +drop table t1; + +select hex(concat(1&2)); +create table t1 as select concat(1&2) as c1; +show create table t1; +drop table t1; + +select hex(concat(bit_count(12))); +create table t1 as select concat(bit_count(12)) as c1; +show create table t1; +drop table t1; + +select hex(concat(2<<1)); +create table t1 as select concat(2<<1) as c1; +show create table t1; +drop table t1; + +select hex(concat(2>>1)); +create table t1 as select concat(2>>1) as c1; +show create table t1; +drop table t1; + +select hex(concat(~0)); +create table t1 as select concat(~0) as c1; +show create table t1; +drop table t1; + +select hex(concat(3^2)); +create table t1 as select concat(3^2) as c1; +show create table t1; +drop table t1; + + + +# +# Math functions +# +# Note, some tests use LEFT(func(),1) to avoid +# non-deterministic results on various platforms. +# + +select hex(concat(abs(-2))); +create table t1 as select concat(abs(-2)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(exp(2)),1)); +create table t1 as select concat(exp(2)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(log(2)),1)); +create table t1 as select concat(log(2)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(log2(2)),1)); +create table t1 as select concat(log2(2)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(log10(2)),1)); +create table t1 as select concat(log10(2)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(sqrt(2)),1)); +create table t1 as select concat(sqrt(2)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(pow(2,2)),1)); +create table t1 as select concat(pow(2,2)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(acos(0.5)),1)); +create table t1 as select concat(acos(0.5)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(asin(0.5)),1)); +create table t1 as select concat(asin(0.5)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(atan(0.5)),1)); +create table t1 as select concat(atan(0.5)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(cos(0.5)),1)); +create table t1 as select concat(cos(0.5)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(sin(0.5)),1)); +create table t1 as select concat(sin(0.5)) as c1; +show create table t1; +drop table t1; + +select hex(left(concat(tan(0.5)),1)); +create table t1 as select concat(tan(0.5)) as c1; +show create table t1; +drop table t1; + +select hex(concat(degrees(0))); +create table t1 as select concat(degrees(0)) as c1; +show create table t1; +drop table t1; + +select hex(concat(radians(0))); +create table t1 as select concat(radians(0)) as c1; +show create table t1; +drop table t1; + +select hex(concat(ceiling(0.5))); +create table t1 as select ceiling(0.5) as c0, concat(ceiling(0.5)) as c1; +show create table t1; +drop table t1; + +select hex(concat(floor(0.5))); +create table t1 as select floor(0.5) as c0, concat(floor(0.5)) as c1; +show create table t1; +drop table t1; + +select hex(concat(round(0.5))); +create table t1 as select concat(round(0.5)) as c1; +show create table t1; +drop table t1; + +select hex(concat(sign(0.5))); +create table t1 as select concat(sign(0.5)) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(rand()) as c1; +show create table t1; +drop table t1; + + +# +# String functions +# + +select hex(concat(length('a'))); +create table t1 as select concat(length('a')) as c1; +show create table t1; +drop table t1; + +select hex(concat(char_length('a'))); +create table t1 as select concat(char_length('a')) as c1; +show create table t1; +drop table t1; + +select hex(concat(bit_length('a'))); +create table t1 as select concat(bit_length('a')) as c1; +show create table t1; +drop table t1; + +select hex(concat(coercibility('a'))); +create table t1 as select concat(coercibility('a')) as c1; +show create table t1; +drop table t1; + +select hex(concat(locate('a','a'))); +create table t1 as select concat(locate('a','a')) as c1; +show create table t1; +drop table t1; + +select hex(concat(field('c','a','b','c'))); +create table t1 as select concat(field('c','a','b','c')) as c1; +show create table t1; +drop table t1; + +select hex(concat(ascii(61))); +create table t1 as select concat(ascii(61)) as c1; +show create table t1; +drop table t1; + +select hex(concat(ord(61))); +create table t1 as select concat(ord(61)) as c1; +show create table t1; +drop table t1; + +select hex(concat(find_in_set('b','a,b,c,d'))); +create table t1 as select concat(find_in_set('b','a,b,c,d')) as c1; +show create table t1; +drop table t1; + + +# +# String hash functions +# + +select md5('a'), hex(md5('a')); +create table t1 as select md5('a') as c1; +show create table t1; +drop table t1; + +select old_password('a'), hex(old_password('a')); +create table t1 as select old_password('a') as c1; +show create table t1; +drop table t1; + +select password('a'), hex(password('a')); +create table t1 as select password('a') as c1; +show create table t1; +drop table t1; + +select sha('a'), hex(sha('a')); +create table t1 as select sha('a') as c1; +show create table t1; +drop table t1; + +select sha1('a'), hex(sha1('a')); +create table t1 as select sha1('a') as c1; +show create table t1; +drop table t1; + +#select sha2('a',224), hex(sha2('a',224)); +#create table t1 as select sha2('a',224) as c1; +#show create table t1; +#drop table t1; + + + +# +# CAST +# + +select hex(concat(cast('-1' as signed))); +create table t1 as select concat(cast('-1' as signed)) as c1; +show create table t1; +drop table t1; + +select hex(concat(cast('1' as unsigned))); +create table t1 as select concat(cast('1' as unsigned)) as c1; +show create table t1; +drop table t1; + +select hex(concat(cast(1/2 as decimal(5,5)))); +create table t1 as select concat(cast(1/2 as decimal(5,5))) as c1; +show create table t1; +drop table t1; + +select hex(concat(cast('2001-01-02 03:04:05' as date))); +create table t1 as select concat(cast('2001-01-02 03:04:05' as date)) as c1; +show create table t1; +select * from t1; +drop table t1; + +select hex(concat(cast('2001-01-02 03:04:05' as time))); +create table t1 as select concat(cast('2001-01-02 03:04:05' as time)) as c1; +show create table t1; +select * from t1; +drop table t1; + +select hex(concat(cast('2001-01-02' as datetime))); +create table t1 as select concat(cast('2001-01-02' as datetime)) as c1; +show create table t1; +select * from t1; +drop table t1; + + +# +# Aggregation: LEAST, GREATEST +# +select hex(concat(least(1,2))); +create table t1 as select concat(least(1,2)) as c1; +show create table t1; +drop table t1; + +select hex(concat(greatest(1,2))); +create table t1 as select concat(greatest(1,2)) as c1; +show create table t1; +drop table t1; + + +# +# Aggregation: CASE +# +select hex(concat(case when 11 then 22 else 33 end)); +create table t1 as select concat(case when 11 then 22 else 33 end) as c1; +show create table t1; +drop table t1; + + +# +# Aggregation: COALESCE +# +select hex(concat(coalesce(1,2))); +create table t1 as select concat(coalesce(1,2)) as c1; +show create table t1; +drop table t1; + + +# +# Aggregation: CONCAT_WS, GROUP_CONCAT +# +select hex(concat_ws(1,2,3)); +create table t1 as select concat_ws(1,2,3) as c1; +show create table t1; +drop table t1; + +select hex(group_concat(1,2,3)); +create table t1 as select group_concat(1,2,3) as c1; +show create table t1; +drop table t1; + +# +# Aggregation: UNION +# +create table t1 as select 1 as c1 union select 'a'; +show create table t1; +select hex(c1) from t1 order by c1; +drop table t1; + + +# +# Miscelaneous functions +# + +create table t1 as select concat(last_insert_id()) as c1; +show create table t1; +drop table t1; + +select hex(concat(benchmark(0,0))); +create table t1 as select concat(benchmark(0,0)) as c1; +show create table t1; +drop table t1; + +select hex(concat(sleep(0))); +create table t1 as select concat(sleep(0)) as c1; +show create table t1; +drop table t1; + +# Fails with "mtr --ps-protocol" for some reasons. +#select hex(concat(get_lock('a',0))); +#select hex(concat(release_lock('a'))); +#create table t1 as select concat(get_lock('a',0)) as c1; +#show create table t1; +#drop table t1; + +select hex(concat(is_free_lock('xxxx'))); +create table t1 as select concat(is_free_lock('xxxx')) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(is_used_lock('a')) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(release_lock('a')) as c1; +show create table t1; +drop table t1; + +select hex(concat(crc32(''))); +create table t1 as select concat(crc32('')) as c1; +show create table t1; +drop table t1; + +select hex(concat(uncompressed_length(''))); +create table t1 as select concat(uncompressed_length('')) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(connection_id()) as c1; +show create table t1; +drop table t1; + +select hex(concat(inet_aton('127.1.1.1'))); +create table t1 as select concat(inet_aton('127.1.1.1')) as c1; +show create table t1; +drop table t1; + +select hex(concat(inet_ntoa(2130772225))); +create table t1 as select concat(inet_ntoa(2130772225)) as c1; +select * from t1; +show create table t1; +drop table t1; + +--disable_ps2_protocol +# Ensure that row_count() value is reset after drop table. +select 1; +select hex(concat(row_count())); +create table t1 as select concat(row_count()) as c1; +show create table t1; +drop table t1; + +select hex(concat(found_rows())); +create table t1 as select concat(found_rows()) as c1; +show create table t1; +drop table t1; +--enable_ps2_protocol + +create table t1 as select concat(uuid_short()) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(uuid()) as c1; +show create table t1; +drop table t1; + +# +# Make sure we can mix uuid() to a latin1 object +# with DERIVATION_IMPLICIT (and higher): +# (DERIVATION_COERCIBLE + MY_REPERTOIRE_ASCII allow to do so) +# +select coercibility(uuid()), coercibility(cast('a' as char character set latin1)); +select charset(concat(uuid(), cast('a' as char character set latin1))); +create table t1 as select concat(uuid(), cast('a' as char character set latin1)) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(master_pos_wait('non-existent',0,2)) as c1; +show create table t1; +drop table t1; + + +# +# User and system variable functions +# + +# User variables: INT +select hex(concat(@a1:=1)); +create table t1 as select concat(@a2:=2) as c1, @a3:=3 as c2; +select hex(c1) from t1; +show create table t1; +drop table t1; + +set @a2=1; +select hex(concat(@a2)); +create table t1 as select concat(@a2) as c1, @a2 as c2; +select hex(c1) from t1; +show create table t1; +drop table t1; + +# User variables: REAL +select hex(concat(@a1:=sqrt(1))); +create table t1 as select concat(@a2:=sqrt(1)) as c1, @a3:=sqrt(1) as c2; +select hex(c1) from t1; +show create table t1; +drop table t1; + +set @a2=sqrt(1); +select hex(concat(@a2)); +create table t1 as select concat(@a2) as c1, @a2 as c2; +select hex(c1) from t1; +show create table t1; +drop table t1; + +# User variables: DECIMAL +select hex(concat(@a1:=1.1)); +create table t1 as select concat(@a2:=1.1) as c1, @a3:=1.1 as c2; +select hex(c1) from t1; +show create table t1; +drop table t1; + +set @a2=1.1; +select hex(concat(@a2)); +create table t1 as select concat(@a2) as c1, @a2 as c2; +select hex(c1) from t1; +show create table t1; +drop table t1; + + +select hex(concat(@@ft_max_word_len)); +create table t1 as select concat(@@ft_max_word_len) as c1; +select hex(c1) from t1; +show create table t1; +drop table t1; + +# +# Comparison functions +# + +select hex(concat('a'='a' IS TRUE)); +create table t1 as select concat('a'='a' IS TRUE) as c1; +show create table t1; +drop table t1; + +select hex(concat('a'='a' IS NOT TRUE)); +create table t1 as select concat('a'='a' IS NOT TRUE) as c1; +show create table t1; +drop table t1; + +select hex(concat(NOT 'a'='a')); +create table t1 as select concat(NOT 'a'='a') as c1; +show create table t1; +drop table t1; + +select hex(concat('a' IS NULL)); +create table t1 as select concat('a' IS NULL) as c1; +show create table t1; +drop table t1; + +select hex(concat('a' IS NOT NULL)); +create table t1 as select concat('a' IS NOT NULL) as c1; +show create table t1; +drop table t1; + +select hex(concat('a' rlike 'a')); +create table t1 as select concat('a' IS NOT NULL) as c1; +show create table t1; +drop table t1; + +select hex(concat(strcmp('a','b'))); +create table t1 as select concat(strcmp('a','b')) as c1; +show create table t1; +drop table t1; + +select hex(concat('a' like 'a')); +create table t1 as select concat('a' like 'b') as c1; +show create table t1; +drop table t1; + +select hex(concat('a' between 'b' and 'c')); +create table t1 as select concat('a' between 'b' and 'c') as c1; +show create table t1; +drop table t1; + +select hex(concat('a' in ('a','b'))); +create table t1 as select concat('a' in ('a','b')) as c1; +show create table t1; +drop table t1; + +select hex(concat(interval(23, 1, 15, 17, 30, 44, 200))); +create table t1 as select concat(interval(23, 1, 15, 17, 30, 44, 200)) as c1; +show create table t1; +drop table t1; + +create table t1 (a varchar(10), fulltext key(a)); +insert into t1 values ('a'); +select hex(concat(match (a) against ('a'))) from t1; +create table t2 as select concat(match (a) against ('a')) as a from t1; +show create table t2; +drop table t1, t2; + +select hex(ifnull(1,'a')); +create table t1 as select ifnull(1,'a') as c1; +show create table t1; +drop table t1; + +select hex(concat(ifnull(1,1))); +create table t1 as select concat(ifnull(1,1)) as c1; +show create table t1; +drop table t1; + +select hex(concat(ifnull(1.1,1.1))); +create table t1 as select concat(ifnull(1.1,1.1)) as c1; +show create table t1; +drop table t1; + +select hex(if(1,'b',1)); +create table t1 as select if(1,'b',1) as c1; +show create table t1; +drop table t1; + +select hex(if(1,1,'b')); +create table t1 as select if(1,1,'b') as c1; +show create table t1; +drop table t1; + +select hex(concat(if(1,1,1))); +create table t1 as select concat(if(1,1,1)) as c1; +show create table t1; +drop table t1; + +select hex(concat(nullif(1,2))); +create table t1 as select concat(nullif(1,2)) as c1; +show create table t1; +drop table t1; + +# +# GIS functions +# + +select hex(concat(Dimension(GeomFromText('LINESTRING(0 0,10 10)')))); +create table t1 as select concat(Dimension(GeomFromText('LINSTRING(0 0,10 10)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); +create table t1 as select concat(NumGeometries(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)')))); +create table t1 as select concat(NumPoints(MultiPointFromText('LINESTRING(0 0,10 10)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)')))); +create table t1 as select concat(SRID(MultiPointFromText('MULTIPOINT(0 0,10 10)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))')))); +create table t1 as select concat(NumInteriorRings(PolygonFromText('POLYGON((0 0,50 0,50 50,0 50,0 0), (10 10,20 10,20 20,10 20,10 10))'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(IsEmpty(GeomFromText('POINT(1 1)')))); +create table t1 as select concat(IsEmpty(GeomFromText('Point(1 1)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(IsSimple(GeomFromText('POINT(1 1)')))); +create table t1 as select concat(IsSimple(GeomFromText('Point(1 1)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(IsClosed(GeomFromText('LineString(1 1,2 2)')))); +create table t1 as select concat(IsClosed(GeomFromText('LineString(1 1,2 2)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)')))); +create table t1 as select concat(Equals(GeomFromText('Point(1 1)'),GeomFromText('Point(1 1)'))) as c1; +drop table t1; + +select hex(concat(x(GeomFromText('Point(1 2)')))); +create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(y(GeomFromText('Point(1 2)')))); +create table t1 as select concat(x(GeomFromText('Point(1 2)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(GLength(GeomFromText('LineString(1 2,2 2)')))); +create table t1 as select concat(GLength(GeomFromText('LineString(1 2, 2 2)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))')))); +create table t1 as select concat(Area(GeomFromText('Polygon((0 0,1 0,1 1,0 1,0 0))'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(GeometryType(GeomFromText('Point(1 2)')))); +create table t1 as select concat(GeometryType(GeomFromText('Point(1 2)'))) as c1; +show create table t1; +drop table t1; + +select hex(concat(AsText(GeomFromText('Point(1 2)')))); +create table t1 as select concat(AsText(GeomFromText('Point(1 2)'))) as c1; +show create table t1; +drop table t1; + + + +# +# Date/Time functions +# + +select hex(concat(period_add(200902, 2))); +create table t1 as select concat(period_add(200902, 2)) as c1; +show create table t1; +drop table t1; + +select hex(concat(period_diff(200902, 200802))); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +create table t1 as select concat(period_add(200902, 200802)) as c1; +show create table t1; +drop table t1; + +select hex(concat(to_days(20090224))); +create table t1 as select concat(to_days(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(dayofmonth(20090224))); +create table t1 as select concat(dayofmonth(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(dayofyear(20090224))); +create table t1 as select concat(dayofyear(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(hour('10:11:12'))); +create table t1 as select concat(hour('10:11:12')) as c1; +show create table t1; +drop table t1; + +select hex(concat(minute('10:11:12'))); +create table t1 as select concat(minute('10:11:12')) as c1; +show create table t1; +drop table t1; + +select hex(concat(second('10:11:12'))); +create table t1 as select concat(second('10:11:12')) as c1; +show create table t1; +drop table t1; + +select hex(concat(quarter(20090224))); +create table t1 as select concat(quarter(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(week(20090224))); +create table t1 as select concat(week(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(yearweek(20090224))); +create table t1 as select concat(yearweek(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(year(20090224))); +create table t1 as select concat(year(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(weekday(20090224))); +create table t1 as select concat(weekday(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(dayofweek(20090224))); +create table t1 as select concat(dayofweek(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(unix_timestamp(20090224))); +create table t1 as select concat(unix_timestamp(20090224)) as c1; +show create table t1; +drop table t1; + +select hex(concat(time_to_sec('10:11:12'))); +create table t1 as select concat(time_to_sec('10:11:12')) as c1; +show create table t1; +drop table t1; + +select hex(concat(extract(year from 20090702))); +create table t1 as select concat(extract(year from 20090702)) as c1; +show create table t1; +drop table t1; + +select hex(concat(microsecond('12:00:00.123456'))); +create table t1 as select concat(microsecond('12:00:00.123456')) as c1; +show create table t1; +drop table t1; + +select hex(concat(month(20090224))); +create table t1 as select concat(month(20090224)) as c1; +show create table t1; +drop table t1; + + +create table t1 as select concat(last_day('2003-02-05')) as c1; +show create table t1; +select c1, hex(c1) from t1; +drop table t1; + +create table t1 as select concat(from_days(730669)) as c1; +show create table t1; +select c1, hex(c1) from t1; +drop table t1; + +create table t1 as select concat(curdate()) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(utc_date()) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(curtime()) as c1; +show create table t1; +drop table t1; + +create table t1 as select repeat('a',20) as c1 limit 0; +set timestamp=1216359724; +insert into t1 values (current_date); +insert into t1 values (current_time); +select c1, hex(c1) from t1; +drop table t1; + +create table t1 as select concat(utc_time()) as c1; +show create table t1; +drop table t1; + +select hex(concat(sec_to_time(2378))); +create table t1 as select concat(sec_to_time(2378)) as c1; +show create table t1; +drop table t1; + +select hex(concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00'))); +create table t1 as select concat(timediff('2001-01-02 00:00:00', '2001-01-01 00:00:00')) as c1; +show create table t1; +drop table t1; + +select hex(concat(maketime(10,11,12))); +create table t1 as select concat(maketime(10,11,12)) as c1; +show create table t1; +drop table t1; + +select hex(get_format(DATE,'USA')); +create table t1 as select get_format(DATE,'USA') as c1; +show create table t1; +drop table t1; + +select hex(left(concat(from_unixtime(1111885200)),4)); +create table t1 as select concat(from_unixtime(1111885200)) as c1; +show create table t1; +drop table t1; + +select hex(concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00'))); +create table t1 as select concat(convert_tz('2004-01-01 12:00:00','+10:00','-6:00')) as c1; +show create table t1; +drop table t1; + +select hex(concat(date_add('2004-01-01 12:00:00', interval 1 day))); +create table t1 as select concat(date_add('2004-01-01 12:00:00', interval 1 day)) as c1; +show create table t1; +select * from t1; +drop table t1; + +select hex(concat(makedate(2009,1))); +create table t1 as select concat(makedate(2009,1)) as c1; +show create table t1; +select * from t1; +drop table t1; + +create table t1 as select concat(now()) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(utc_timestamp()) as c1; +show create table t1; +drop table t1; + +create table t1 as select concat(sysdate()) as c1; +show create table t1; +drop table t1; + +select hex(concat(addtime('00:00:00','11:22:33'))); +create table t1 as select concat(addtime('00:00:00','11:22:33')) as c1; +show create table t1; +drop table t1; + +select hex(concat(subtime('23:59:59','11:22:33'))); +create table t1 as select concat(subtime('23:59:59','11:22:33')) as c1; +show create table t1; +drop table t1; + + +# +# Other string functions with numeric input +# +select hex(elt(1,2,3)); +create table t1 as select elt(1,2,3) as c1; +show create table t1; +drop table t1; + +select hex(export_set(1,2,3,4,2)); +create table t1 as select export_set(1,2,3,4,2) as c1; +show create table t1; +drop table t1; + +select hex(insert(1133,3,0,22)); +create table t1 as select insert(1133,3,0,22) as c1; +show create table t1; +drop table t1; + +select hex(lcase(123)); +create table t1 as select lcase(123) as c1; +show create table t1; +drop table t1; + +select hex(left(123,1)); +create table t1 as select left(123,1) as c1; +show create table t1; +drop table t1; + +select hex(lower(123)); +create table t1 as select lower(123) as c1; +show create table t1; +drop table t1; + +select hex(lpad(1,2,0)); +create table t1 as select lpad(1,2,0) as c1; +show create table t1; +drop table t1; + +select hex(ltrim(1)); +create table t1 as select ltrim(1) as c1; +show create table t1; +drop table t1; + +select hex(mid(1,1,1)); +create table t1 as select mid(1,1,1) as c1; +show create table t1; +drop table t1; + +select hex(repeat(1,2)); +create table t1 as select repeat(1,2) as c1; +show create table t1; +drop table t1; + +select hex(replace(1,1,2)); +create table t1 as select replace(1,1,2) as c1; +show create table t1; +drop table t1; + +select hex(reverse(12)); +create table t1 as select reverse(12) as c1; +show create table t1; +drop table t1; + +select hex(right(123,1)); +create table t1 as select right(123,1) as c1; +show create table t1; +drop table t1; + +select hex(rpad(1,2,0)); +create table t1 as select rpad(1,2,0) as c1; +show create table t1; +drop table t1; + +select hex(rtrim(1)); +create table t1 as select rtrim(1) as c1; +show create table t1; +drop table t1; + +select hex(soundex(1)); +create table t1 as select soundex(1) as c1; +show create table t1; +drop table t1; + +select hex(substring(1,1,1)); +create table t1 as select substring(1,1,1) as c1; +show create table t1; +drop table t1; + +select hex(trim(1)); +create table t1 as select trim(1) as c1; +show create table t1; +drop table t1; + +select hex(ucase(1)); +create table t1 as select ucase(1) as c1; +show create table t1; +drop table t1; + +select hex(upper(1)); +create table t1 as select upper(1) as c1; +show create table t1; +drop table t1; + + +# +# Bug#8204 +# +create table t1 as select repeat(' ', 64) as a limit 0; +show create table t1; +insert into t1 values ("1.1"), ("2.1"); +select a, hex(a) from t1; +update t1 set a= a + 0.1; +select a, hex(a) from t1; +drop table t1; + +--enable_prepare_warnings +# +# Columns +# +create table t1 (a tinyint); +insert into t1 values (1); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a tinyint zerofill); +insert into t1 values (1), (10), (100); +select hex(concat(a)), a from t1; +drop table t1; + +create table t1 (a tinyint(4) zerofill); +insert into t1 values (1), (10), (100); +select hex(concat(a)), a from t1; +drop table t1; + +create table t1 (a decimal(10,2)); +insert into t1 values (123.45); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a smallint); +insert into t1 values (1); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a smallint zerofill); +insert into t1 values (1), (10), (100), (1000), (10000); +select hex(concat(a)), a from t1; +drop table t1; + +create table t1 (a mediumint); +insert into t1 values (1); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a mediumint zerofill); +insert into t1 values (1), (10), (100), (1000), (10000); +select hex(concat(a)), a from t1; +drop table t1; + +create table t1 (a int); +insert into t1 values (1); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a int zerofill); +insert into t1 values (1), (10), (100), (1000), (10000); +select hex(concat(a)), a from t1; +drop table t1; + +create table t1 (a bigint); +insert into t1 values (1); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a bigint zerofill); +insert into t1 values (1), (10), (100), (1000), (10000); +select hex(concat(a)), a from t1; +drop table t1; + +create table t1 (a float); +insert into t1 values (123.456); +select hex(concat(a)) from t1; +select concat(a) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a float zerofill); +insert into t1 values (1.1), (10.1), (100.1), (1000.1), (10000.1); +select hex(concat(a)), a from t1; +drop table t1; + +create table t1 (a double); +insert into t1 values (123.456); +select hex(concat(a)) from t1; +select concat(a) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a double zerofill); +insert into t1 values (1.1), (10.1), (100.1), (1000.1), (10000.1); +select hex(concat(a)), a from t1; +drop table t1; + +create table t1 (a year(2)); +insert into t1 values (1); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a year); +insert into t1 values (1); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a bit(64)); +# BIT is always BINARY +insert into t1 values (1); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); +insert into t1 values (0); +insert into t1 values (20010203040506); +insert into t1 values (19800203040506); +insert into t1 values ('2001-02-03 04:05:06'); +select hex(concat(a)) from t1; +select concat(a) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a date); +insert into t1 values ('2001-02-03'); +insert into t1 values (20010203); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a time); +insert into t1 values (1); +insert into t1 values ('01:02:03'); +select hex(concat(a)) from t1; +select concat(a) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +create table t1 (a datetime); +insert into t1 values ('2001-02-03 04:05:06'); +insert into t1 values (20010203040506); +select hex(concat(a)) from t1; +create table t2 as select concat(a) from t1; +show create table t2; +drop table t1, t2; + +# +# create view with string functions with numeric input +# +# Switched off in ucs tests due to bug#50716 +if ($not_ucs) +{ +create view v1 as select concat(1,2,3) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select concat_ws(',',1,2,3) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select elt(1,2,3) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select export_set(1,2,3,4,2) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select insert(1133,3,0,22) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select lcase(123) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select left(123,1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select lower(123) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select lpad(1,2,0) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select ltrim(1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select mid(1,1,1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select repeat(1,2) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select replace(1,1,2) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select reverse(12) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select right(123,1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select rpad(1,2,0) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select rtrim(1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select soundex(1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select substring(1,1,1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select trim(1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select ucase(1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; + +create view v1 as select upper(1) as c1; +show columns from v1; +select hex(c1) from v1; +drop view v1; +} + + +# +# Views from tables with numeric columns +# +create table t1 (a tinyint); +insert into t1 values (1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a tinyint zerofill); +insert into t1 values (1), (10), (100); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a tinyint(30) zerofill); +insert into t1 values (1), (10), (100); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a decimal(10,2)); +insert into t1 values (123.45); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a smallint); +insert into t1 values (1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a smallint zerofill); +insert into t1 values (1), (10), (100), (1000), (10000); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a mediumint); +insert into t1 values (1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a mediumint zerofill); +insert into t1 values (1), (10), (100), (1000), (10000); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a int); +insert into t1 values (1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a int zerofill); +insert into t1 values (1), (10), (100), (1000), (10000); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a bigint); +insert into t1 values (1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a bigint zerofill); +insert into t1 values (1), (10), (100), (1000), (10000); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a float); +insert into t1 values (123.456); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a float zerofill); +insert into t1 values (1.1), (10.1), (100.1), (1000.1), (10000.1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a double); +insert into t1 values (123.456); +select concat(a) from t1; +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a double zerofill); +insert into t1 values (1.1), (10.1), (100.1), (1000.1), (10000.1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a year(2)); +insert into t1 values (1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a year); +insert into t1 values (1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a bit(64)); +# BIT is always BINARY +insert into t1 values (1); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); +insert into t1 values (0); +insert into t1 values (20010203040506); +insert into t1 values (19800203040506); +insert into t1 values ('2001-02-03 04:05:06'); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a date); +insert into t1 values ('2001-02-03'); +insert into t1 values (20010203); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a time); +insert into t1 values (1); +insert into t1 values ('01:02:03'); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +create table t1 (a datetime); +insert into t1 values ('2001-02-03 04:05:06'); +insert into t1 values (20010203040506); +create view v1(a) as select concat(a) from t1; +show columns from v1; +select hex(a) from v1; +drop table t1; +drop view v1; + +--disable_prepare_warnings +# +# User defined function returning numeric result +# +delimiter |; +create function f1 (par1 int) returns int +begin +return concat(par1); +end| +delimiter ;| + +set @a= f1(1); +select hex(@a); +select hex(concat(f1(1))); +create table t1 as select f1(1) as c1; +show create table t1; +drop table t1; +create table t1 as select concat(f1(1)) as c1; +show create table t1; +create view v1 as select concat(f1(1)) as c1; +show columns from v1; +drop table t1; +drop view v1; +drop function f1; + +delimiter |; +create function f1 (par1 decimal(18,2)) returns decimal(18,2) +begin +return concat(par1); +end| +delimiter ;| + +set @a= f1(123.45); +select hex(@a); +select hex(concat(f1(123.45))); +create table t1 as select f1(123.45) as c1; +show create table t1; +drop table t1; +create table t1 as select concat(f1(123.45)) as c1; +show create table t1; +create view v1 as select concat(f1(123.45)) as c1; +show columns from v1; +drop table t1; +drop view v1; +drop function f1; + +delimiter |; +create function f1 (par1 float) returns float +begin +return concat(par1); +end| +delimiter ;| + +set @a= f1(123.45); +select hex(@a); +select hex(concat(f1(123.45))); +create table t1 as select f1(123.45) as c1; +show create table t1; +drop table t1; +create table t1 as select concat(f1(123.45)) as c1; +show create table t1; +create view v1 as select concat(f1(123.45)) as c1; +show columns from v1; +drop table t1; +drop view v1; +drop function f1; + +delimiter |; +create function f1 (par1 date) returns date +begin +return concat(par1); +end| +delimiter ;| + +set @a= f1(cast('2001-01-02' as date)); +select hex(@a); +select hex(concat(f1(cast('2001-01-02' as date)))); +create table t1 as select f1(cast('2001-01-02' as date)) as c1; +show create table t1; +drop table t1; +create table t1 as select concat(f1(cast('2001-01-02' as date))) as c1; +show create table t1; +create view v1 as select concat(f1(cast('2001-01-02' as date))) as c1; +show columns from v1; +drop table t1; +drop view v1; +drop function f1; + + +--echo # +--echo # End of WL#2649 Number-to-string conversions +--echo # + +--echo # +--echo # Bug#54668 User variable assignments get wrong type +--echo # +SET @x=md5('a'); +SELECT charset(@x), collation(@x); +SET @x=old_password('a'); +SELECT charset(@x), collation(@x); +SET @x=password('a'); +SELECT charset(@x), collation(@x); +SET @x=sha('a'); +SELECT charset(@x), collation(@x); +SET @x=sha1('a'); +SELECT charset(@x), collation(@x); +SET @x=astext(point(1,2)); +SELECT charset(@x), collation(@x); +SET @x=aswkt(point(1,2)); +SELECT charset(@x), collation(@x); + + +--echo # +--echo # Bug#54916 GROUP_CONCAT + IFNULL truncates output +--echo # + +SELECT @@collation_connection; +# ENGINE=MYISAM is very important to make sure "SYSTEM" join type +# is in use, which will create instances of Item_copy. +CREATE TABLE t1 (a MEDIUMINT NULL) ENGINE=MYISAM; +INSERT INTO t1 VALUES (1234567); +SELECT GROUP_CONCAT(IFNULL(a,'')) FROM t1; +SELECT GROUP_CONCAT(IF(a,a,'')) FROM t1; +SELECT GROUP_CONCAT(CASE WHEN a THEN a ELSE '' END) FROM t1; +--enable_metadata +SELECT COALESCE(a,'') FROM t1 GROUP BY 1; +--disable_metadata +--echo # All columns must be VARCHAR(9) with the same length: +--disable_warnings +CREATE TABLE t2 AS +SELECT + CONCAT(a), + IFNULL(a,''), + IF(a,a,''), + CASE WHEN a THEN a ELSE '' END, + COALESCE(a,'') +FROM t1; +--enable_warnings +# The above query is expected to send a warning +# in case of ucs2 character set, until Bug#55744 is fixed. +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT CONCAT_WS(1,2,3) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT INSERT(1133,3,0,22) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT LCASE(a) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT UCASE(a) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT REPEAT(1,2) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT LEFT(123,2) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT RIGHT(123,2) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT LTRIM(123) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT RTRIM(123) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT ELT(1,111,222,333) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT REPLACE(111,2,3) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT SUBSTRING_INDEX(111,111,1) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT MAKE_SET(111,222,3) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT SOUNDEX(1) FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; + +CREATE TABLE t2 AS SELECT EXPORT_SET(1,'Y','N','',8); +SHOW CREATE TABLE t2; +DROP TABLE t2; + +DROP TABLE t1; + +--echo # +--echo # End of Bug#54916 +--echo # + + +--echo # +--echo # Bug#58190 BETWEEN no longer uses indexes for date or datetime fields +--echo # +SELECT @@collation_connection; +CREATE TABLE t1 ( + id INT(11) DEFAULT NULL, + date_column DATE DEFAULT NULL, + KEY(date_column)); +INSERT INTO t1 VALUES (1,'2010-09-01'),(2,'2010-10-01'); +EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01'; +ALTER TABLE t1 MODIFY date_column DATETIME DEFAULT NULL; +EXPLAIN SELECT * FROM t1 WHERE date_column BETWEEN '2010-09-01' AND '2010-10-01'; +DROP TABLE t1; + + +--echo # +--echo # Bug #31384 DATE_ADD() and DATE_SUB() return binary data +--echo # +SELECT @@collation_connection, @@character_set_results; +SELECT + CHARSET(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1, + CHARSET(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field_str2, + CHARSET(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, + CHARSET(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; +CREATE TABLE t1 AS +SELECT + DATE_SUB('2007-08-03', INTERVAL 1 MINUTE) AS field_str1, + DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2, + DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date, + DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime; +SHOW CREATE TABLE t1; +DROP TABLE t1; +--enable_metadata +# PS protocol gives different "Max length" value for DATETIME. +--disable_ps_protocol +SELECT + DATE_SUB('2007-08-03', INTERVAL 1 DAY) AS field_str1, + DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE) AS field1_str2, + DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY) AS field_date, + DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE) AS field_datetime; +--disable_metadata +--enable_ps_protocol +SELECT + HEX(DATE_SUB('2007-08-03', INTERVAL 1 MINUTE)) AS field_str1, + HEX(DATE_SUB('2007-08-03 17:33:00', INTERVAL 1 MINUTE)) AS field1_str2, + HEX(DATE_SUB(DATE('2007-08-03'), INTERVAL 1 DAY)) AS field_date, + HEX(DATE_SUB(CAST('2007-08-03 17:33:00' AS DATETIME), INTERVAL 1 MINUTE)) AS field_datetime; + +--echo # +--echo # MDEV-4841 Wrong character set of ADDTIME() and DATE_ADD() +--echo # +SELECT @@collation_connection, @@character_set_results; +SELECT + CHARSET(ADDTIME(_latin1'10:01:01',_latin1'10:00:00')) AS addtime1, + CHARSET(ADDTIME('10:01:01','10:00:00')) AS addtime2, + CHARSET(DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second)) AS date_add1, + CHARSET(DATE_ADD('2001-01-01 10:01:01',interval 10 second)) AS date_add2; +CREATE TABLE t1 AS +SELECT + ADDTIME(_latin1'10:01:01',_latin1'10:00:00') AS addtime1, + ADDTIME('10:01:01','10:00:00') AS addtime2, + DATE_ADD(_latin1'2001-01-01 10:01:01',interval 10 second) AS date_add1, + DATE_ADD('2001-01-01 10:01:01',interval 10 second) AS date_add2; +SHOW CREATE TABLE t1; +SELECT * FROM t1; +DROP TABLE t1; + +--echo # +--echo # Bug#11926811 / Bug#60625 Illegal mix of collations +--echo # +SELECT @@collation_connection; +DELIMITER //; +CREATE PROCEDURE p1() +BEGIN + DECLARE v_LastPaymentDate DATETIME DEFAULT NULL; + SELECT v_LastPaymentDate < NOW(); + EXPLAIN EXTENDED SELECT v_LastPaymentDate < NOW(); + SHOW WARNINGS; + EXPLAIN EXTENDED SELECT CONCAT(v_LastPaymentDate, NOW()); +END// +DELIMITER ;// +CALL p1; +DROP PROCEDURE p1; + +--echo # +--echo # Bug#52159 returning time type from function and empty left join causes debug assertion +--echo # +CREATE FUNCTION f1() RETURNS TIME RETURN 1; +CREATE TABLE t1 (b INT); +INSERT INTO t1 VALUES (0); +SELECT f1() FROM t1 LEFT JOIN (SELECT 1 AS a FROM t1 LIMIT 0) AS d ON 1 GROUP BY a; +DROP FUNCTION f1; +DROP TABLE t1; + +--echo # +--echo # MDEV-9662 Assertion `precision || !scale' failed in my_decimal_precision_to_length_no_truncation(uint, uint8, bool) +--echo # +SELECT @@collation_connection; +SELECT CASE 1 WHEN 2 THEN ( - '3' ) END; + +--echo # +--echo # MDEV-5702 Incorrect results are returned with NULLIF() +--echo # +CREATE TABLE t1 (d DATE); +INSERT INTO t1 VALUES ('1999-11-11'),('2014-02-04'); +SELECT DISTINCT d, CAST(d AS CHAR), NULLIF(d,"2000-01-01") AS bad, NULLIF(CAST(d AS CHAR),"2000-01-01") AS good FROM t1; +CREATE TABLE t2 AS SELECT DISTINCT d, NULLIF(d,'2000-01-01') AS bad FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t1, t2; + + +SET NAMES latin1; +SET sql_mode=''; +CREATE TABLE t1(a char(215) CHARACTER SET utf8 NOT NULL DEFAULT '', KEY(a)); +INSERT INTO t1 VALUES (); +--disable_warnings +SELECT maketime(`a`,`a`,`a`) FROM t1 GROUP BY 1; +--enable_warnings +DROP TABLE t1; +SET sql_mode=default; diff --git a/mysql-test/include/ctype_pad.inc b/mysql-test/include/ctype_pad.inc new file mode 100644 index 00000000..a1887614 --- /dev/null +++ b/mysql-test/include/ctype_pad.inc @@ -0,0 +1,80 @@ +--echo # +--echo # Start of ctype_pad.inc +--echo # + +--echo # +--echo # Unique indexes +--echo # + +eval CREATE TABLE t1 (a VARCHAR(10) PRIMARY KEY) COLLATE $coll; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('abc'),('abc '),(' a'),(' a '),('a '); +SELECT HEX(a), a FROM t1 ORDER BY a; +SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a; +SELECT HEX(a), a FROM t1 IGNORE INDEX(PRIMARY) ORDER BY a DESC; + +--echo # +--echo # UNION +--echo # + +eval CREATE TABLE t2 (a VARCHAR(10)) COLLATE $coll; +INSERT INTO t2 VALUES ('abc '),('abc '),(' a'),('a '); +SELECT HEX(a),a FROM (SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY a) td; +DROP TABLE t1; +DROP TABLE t2; + +--echo # +--echo # DISTINCT, COUNT, MAX +--echo # + +eval CREATE TABLE t1 (a VARCHAR(10)) COLLATE $coll; +INSERT INTO t1 VALUES ('a'),('a '),(' a'),(' a '),('a '); +SELECT HEX(a), a FROM (SELECT DISTINCT a FROM t1 ORDER BY a) td; +SELECT COUNT(DISTINCT a) FROM t1 ORDER BY a; +SELECT HEX(MAX(a)), MAX(a) FROM t1; + +--echo # +--echo # GROUP BY +--echo # + +eval CREATE TABLE t2 (a VARCHAR(10), b int, c varchar(10)) COLLATE $coll; +INSERT t2 values('ab', 12, 'cd'), ('ab', 2, 'ed'), ('aa', 20, 'er'), ('aa ', 0, 'er '); +SELECT HEX(a), cnt FROM (SELECT a, COUNT(a) AS cnt FROM t2 GROUP BY a ORDER BY a) AS td; +DROP TABLE t2; + +--echo # +--echo # Weights +--echo # + +SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1; +DROP TABLE t1; + +--echo # +--echo # IF, CASE, LEAST +--echo # +#enable after fix MDEV-27871 +--disable_view_protocol +eval SELECT IF('abc' COLLATE $coll = 'abc ', 'pad', 'nopad'); +eval SELECT CASE 'abc' COLLATE $coll WHEN 'abc ' THEN 'pad' ELSE 'nopad' END; +eval SELECT CASE WHEN 'abc' COLLATE $coll = 'abc ' THEN 'pad' ELSE 'nopad' END; +eval SELECT HEX(LEAST('abc ' COLLATE $coll, 'abc ')); +eval SELECT HEX(GREATEST('abc ' COLLATE $coll, 'abc ')); +--enable_view_protocol +--echo # +--echo # Collation mix +--echo # + +eval CREATE TABLE t1 (a VARCHAR(10)) COLLATE $coll_pad; +INSERT INTO t1 VALUES ('a'),('a '); +SELECT COUNT(*) FROM t1 WHERE a='a'; +eval SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE $coll_pad; +eval SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE $coll; +eval ALTER TABLE t1 MODIFY a VARCHAR(10) COLLATE $coll; +SELECT COUNT(*) FROM t1 WHERE a='a'; +eval SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE $coll_pad; +eval SELECT COUNT(*) FROM t1 WHERE a='a' COLLATE $coll; +DROP TABLE t1; + +--echo # +--echo # End of ctype_pad.inc +--echo # diff --git a/mysql-test/include/ctype_pad_all_engines.inc b/mysql-test/include/ctype_pad_all_engines.inc new file mode 100644 index 00000000..a031f84e --- /dev/null +++ b/mysql-test/include/ctype_pad_all_engines.inc @@ -0,0 +1,7 @@ +SET DEFAULT_STORAGE_ENGINE=MyISAM; +--source include/ctype_pad.inc + +SET DEFAULT_STORAGE_ENGINE=HEAP; +--source include/ctype_pad.inc + +SET DEFAULT_STORAGE_ENGINE=Default; diff --git a/mysql-test/include/ctype_pad_space.inc b/mysql-test/include/ctype_pad_space.inc new file mode 100644 index 00000000..491225bd --- /dev/null +++ b/mysql-test/include/ctype_pad_space.inc @@ -0,0 +1,5 @@ +SELECT strcmp('a','a '), strcmp('a ','a'); +SELECT strcmp('a\0','a' ), strcmp('a','a\0'); +SELECT strcmp('a\0','a '), strcmp('a ','a\0'); +SELECT strcmp('a\t','a' ), strcmp('a', 'a\t'); +SELECT strcmp('a\t','a '), strcmp('a ', 'a\t'); diff --git a/mysql-test/include/ctype_regex.inc b/mysql-test/include/ctype_regex.inc new file mode 100644 index 00000000..2c8c9b4b --- /dev/null +++ b/mysql-test/include/ctype_regex.inc @@ -0,0 +1,43 @@ +# +# To test a desired collation, set session.collation_connection to +# this collation before including this file +# + +--disable_warnings +drop table if exists t1; +--enable_warnings + +# +# Create a table with two varchar(64) null-able column, +# using current values of +# @@character_set_connection and @@collation_connection. +# + +create table t1 as +select repeat(' ', 64) as s1, repeat(' ',64) as s2 +union +select null, null; +show create table t1; +delete from t1; + +insert into t1 values('aaa','aaa'); +insert into t1 values('aaa|qqq','qqq'); +insert into t1 values('gheis','^[^a-dXYZ]+$'); +insert into t1 values('aab','^aa?b'); +insert into t1 values('Baaan','^Ba*n'); +insert into t1 values('aaa','qqq|aaa'); +insert into t1 values('qqq','qqq|aaa'); + +insert into t1 values('bbb','qqq|aaa'); +insert into t1 values('bbb','qqq'); +insert into t1 values('aaa','aba'); + +insert into t1 values(null,'abc'); +insert into t1 values('def',null); +insert into t1 values(null,null); +insert into t1 values('ghi','ghi['); + +--sorted_result +select HIGH_PRIORITY s1 regexp s2 from t1; + +drop table t1; diff --git a/mysql-test/include/ctype_regex_utf8.inc b/mysql-test/include/ctype_regex_utf8.inc new file mode 100644 index 00000000..d389cb21 --- /dev/null +++ b/mysql-test/include/ctype_regex_utf8.inc @@ -0,0 +1,24 @@ +# +# Bug #3928 regexp [[:>:]] and UTF-8 +# +SELECT @@character_set_client, @@collation_connection; + +# This should return TRUE +select 'вася' rlike '\\bвася\\b'; +select 'вася ' rlike '\\bвася\\b'; +select ' вася' rlike '\\bвася\\b'; +select ' вася ' rlike '\\bвася\\b'; + +select 'вася' rlike '[[:<:]]вася[[:>:]]'; +select 'вася ' rlike '[[:<:]]вася[[:>:]]'; +select ' вася' rlike '[[:<:]]вася[[:>:]]'; +select ' вася ' rlike '[[:<:]]вася[[:>:]]'; + +# This should return FALSE +select 'васяz' rlike '\\bвася\\b'; +select 'zвася' rlike '\\bвася\\b'; +select 'zвасяz' rlike '\\bвася\\b'; + +select 'васяz' rlike '[[:<:]]вася[[:>:]]'; +select 'zвася' rlike '[[:<:]]вася[[:>:]]'; +select 'zвасяz' rlike '[[:<:]]вася[[:>:]]'; diff --git a/mysql-test/include/ctype_str_to_date.inc b/mysql-test/include/ctype_str_to_date.inc new file mode 100644 index 00000000..fc7d6801 --- /dev/null +++ b/mysql-test/include/ctype_str_to_date.inc @@ -0,0 +1,15 @@ +--echo # +--echo # MDEV-4842 STR_TO_DATE does not work with UCS2/UTF16/UTF32 +--echo # + +SELECT @@character_set_connection, HEX(CAST(_utf8'÷' AS CHAR)); +# enable view-protocol after fix MDEV-27871 +--disable_view_protocol +SELECT STR_TO_DATE(CAST(_utf8'2001÷01÷01' AS CHAR),CAST(_utf8'%Y÷%m÷%d' AS CHAR)); +--enable_view_protocol +CREATE TABLE t1 AS SELECT REPEAT(' ', 64) AS subject, REPEAT(' ',64) AS pattern LIMIT 0; +SHOW COLUMNS FROM t1; +INSERT INTO t1 VALUES (_utf8'2001÷01÷01',_utf8'%Y÷%m÷%d'); +SELECT HEX(subject),HEX(pattern),STR_TO_DATE(subject, pattern) FROM t1; +DROP TABLE t1; + diff --git a/mysql-test/include/ctype_strtoll10.inc b/mysql-test/include/ctype_strtoll10.inc new file mode 100644 index 00000000..725180d6 --- /dev/null +++ b/mysql-test/include/ctype_strtoll10.inc @@ -0,0 +1,49 @@ +--echo # +--echo # Testing strtoll10() +--echo # + +SELECT @@character_set_connection; + +SELECT CAST('1' AS UNSIGNED); +SELECT CAST('12' AS UNSIGNED); +SELECT CAST('123' AS UNSIGNED); +SELECT CAST('1234' AS UNSIGNED); +SELECT CAST('12345' AS UNSIGNED); +SELECT CAST('123456' AS UNSIGNED); +SELECT CAST('1234567' AS UNSIGNED); +SELECT CAST('12345678' AS UNSIGNED); +SELECT CAST('123456789' AS UNSIGNED); +SELECT CAST('1234567891' AS UNSIGNED); +SELECT CAST('12345678912' AS UNSIGNED); +SELECT CAST('123456789123' AS UNSIGNED); +SELECT CAST('1234567891234' AS UNSIGNED); +SELECT CAST('12345678912345' AS UNSIGNED); +SELECT CAST('123456789123456' AS UNSIGNED); +SELECT CAST('1234567891234567' AS UNSIGNED); +SELECT CAST('12345678912345678' AS UNSIGNED); +SELECT CAST('123456789123456789' AS UNSIGNED); +SELECT CAST('1234567891234567891' AS UNSIGNED); +SELECT CAST('12345678912345678912' AS UNSIGNED); +SELECT CAST('123456789123456789123' AS UNSIGNED); + +SELECT CAST('1x' AS UNSIGNED); +SELECT CAST('12x' AS UNSIGNED); +SELECT CAST('123x' AS UNSIGNED); +SELECT CAST('1234x' AS UNSIGNED); +SELECT CAST('12345x' AS UNSIGNED); +SELECT CAST('123456x' AS UNSIGNED); +SELECT CAST('1234567x' AS UNSIGNED); +SELECT CAST('12345678x' AS UNSIGNED); +SELECT CAST('123456789x' AS UNSIGNED); +SELECT CAST('1234567891x' AS UNSIGNED); +SELECT CAST('12345678912x' AS UNSIGNED); +SELECT CAST('123456789123x' AS UNSIGNED); +SELECT CAST('1234567891234x' AS UNSIGNED); +SELECT CAST('12345678912345x' AS UNSIGNED); +SELECT CAST('123456789123456x' AS UNSIGNED); +SELECT CAST('1234567891234567x' AS UNSIGNED); +SELECT CAST('12345678912345678x' AS UNSIGNED); +SELECT CAST('123456789123456789x' AS UNSIGNED); +SELECT CAST('1234567891234567891x' AS UNSIGNED); +SELECT CAST('12345678912345678912x' AS UNSIGNED); +SELECT CAST('123456789123456789123x' AS UNSIGNED); diff --git a/mysql-test/include/ctype_thai.inc b/mysql-test/include/ctype_thai.inc new file mode 100644 index 00000000..f72de9e9 --- /dev/null +++ b/mysql-test/include/ctype_thai.inc @@ -0,0 +1,156 @@ +--echo # +--echo # Start of ctype_thai.inc +--echo # + +# +# Test Unicode Thai collations based on libthai testcases +# + +CREATE TABLE t1 (a VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_bin); + +INSERT INTO t1 VALUES ('-กระแย่ง'); +INSERT INTO t1 VALUES ('กก'); +INSERT INTO t1 VALUES ('กราบ'); +INSERT INTO t1 VALUES ('ข่าง'); +INSERT INTO t1 VALUES ('ข้าง'); +INSERT INTO t1 VALUES ('ข้างกระดาน'); +INSERT INTO t1 VALUES ('ข้างขึ้น'); +INSERT INTO t1 VALUES ('ข้างควาย'); +INSERT INTO t1 VALUES ('ข้างเงิน'); +INSERT INTO t1 VALUES ('ข้างแรม'); +INSERT INTO t1 VALUES ('ข้างออก'); +INSERT INTO t1 VALUES ('ข้างๆ'); +INSERT INTO t1 VALUES ('ข้างๆ คูๆ'); +INSERT INTO t1 VALUES ('ขาง'); +INSERT INTO t1 VALUES ('แข็ง'); +INSERT INTO t1 VALUES ('แข่ง'); +INSERT INTO t1 VALUES ('แข่งขัน'); +INSERT INTO t1 VALUES ('แข้ง'); +INSERT INTO t1 VALUES ('แข้งขวา'); +INSERT INTO t1 VALUES ('แข็งขัน'); +INSERT INTO t1 VALUES ('ทูลเกล้า'); +INSERT INTO t1 VALUES ('ทูลเกล้าทูลกระหม่อม'); +INSERT INTO t1 VALUES ('ทูลเกล้าฯ'); +INSERT INTO t1 VALUES ('บุญญา'); +INSERT INTO t1 VALUES ('บุญ-หลง'); +INSERT INTO t1 VALUES ('บุญหลง'); +INSERT INTO t1 VALUES ('ป่า'); +INSERT INTO t1 VALUES ('ป่าน'); +INSERT INTO t1 VALUES ('ป้า'); +INSERT INTO t1 VALUES ('ป้าน'); +INSERT INTO t1 VALUES ('ป๊า'); +INSERT INTO t1 VALUES ('ป๊าน'); +INSERT INTO t1 VALUES ('ป๋า'); +INSERT INTO t1 VALUES ('ป๋าน'); +INSERT INTO t1 VALUES ('ปา'); +INSERT INTO t1 VALUES ('ปาน'); +INSERT INTO t1 VALUES ('แป้ง'); +INSERT INTO t1 VALUES ('พณิชย์'); +INSERT INTO t1 VALUES ('ม้า'); +INSERT INTO t1 VALUES ('ฯพณฯ'); +INSERT INTO t1 VALUES ('A'); +INSERT INTO t1 VALUES ('a'); +INSERT INTO t1 VALUES ('a\''); +INSERT INTO t1 VALUES ('A-'); +INSERT INTO t1 VALUES ('a-'); +INSERT INTO t1 VALUES ('-a'); +INSERT INTO t1 VALUES ('A.'); +INSERT INTO t1 VALUES ('a.'); +INSERT INTO t1 VALUES ('A-1'); +INSERT INTO t1 VALUES ('aa'); +INSERT INTO t1 VALUES ('AA'); +INSERT INTO t1 VALUES ('A.A.'); +INSERT INTO t1 VALUES ('a.a.'); +INSERT INTO t1 VALUES ('AAA'); +INSERT INTO t1 VALUES ('A.A.A.'); +INSERT INTO t1 VALUES ('AAAA'); +INSERT INTO t1 VALUES ('A.A.A.L.'); +INSERT INTO t1 VALUES ('A.A.A.S.'); +INSERT INTO t1 VALUES ('Aachen'); +INSERT INTO t1 VALUES ('A.A.E.'); +INSERT INTO t1 VALUES ('A.Ae.E.'); +INSERT INTO t1 VALUES ('A.A.E.E.'); +INSERT INTO t1 VALUES ('AAES'); +INSERT INTO t1 VALUES ('AAF'); +INSERT INTO t1 VALUES ('A.Agr'); +INSERT INTO t1 VALUES ('aah'); +INSERT INTO t1 VALUES ('@@@@@'); +INSERT INTO t1 VALUES ('0000'); +INSERT INTO t1 VALUES ('9999'); +INSERT INTO t1 VALUES ('Aalborg'); +INSERT INTO t1 VALUES ('aide'); +INSERT INTO t1 VALUES ('air'); +INSERT INTO t1 VALUES ('@@@air'); +INSERT INTO t1 VALUES ('air@@@'); +INSERT INTO t1 VALUES ('C.A.F'); +INSERT INTO t1 VALUES ('Canon'); +INSERT INTO t1 VALUES ('coop'); +INSERT INTO t1 VALUES ('co-op'); +INSERT INTO t1 VALUES ('COOP'); +INSERT INTO t1 VALUES ('CO-OP'); +INSERT INTO t1 VALUES ('Copenhegen'); +INSERT INTO t1 VALUES ('McArthur'); +INSERT INTO t1 VALUES ('Mc Arthur'); +INSERT INTO t1 VALUES ('Mc Mahon'); +INSERT INTO t1 VALUES ('vice-president'); +INSERT INTO t1 VALUES ('vice versa'); +INSERT INTO t1 VALUES ('vice-versa'); +INSERT INTO t1 VALUES ('10 ลิตร'); +INSERT INTO t1 VALUES ('๑๐ ลิตร'); +INSERT INTO t1 VALUES ('10 litre'); +INSERT INTO t1 VALUES ('10 litre (10 ลิตร)'); +INSERT INTO t1 VALUES ('10 ลิตร (10 litre)'); +INSERT INTO t1 VALUES ('10 litre (๑๐ ลิตร)'); +INSERT INTO t1 VALUES ('๑๐ ลิตร (10 litre)'); +INSERT INTO t1 VALUES ('๑๐ ลิตร [10 litre]'); +INSERT INTO t1 VALUES ('๑๐ ลิตร {10 litre}'); + +# Sort the table according to binary 'a' +# To avoid problems with unpredictable order or 'AA' and 'aa' +ALTER TABLE t1 ORDER BY a; + +SET @backup_character_set_connection=@@character_set_connection; +SET @backup_collation_connection=@@collation_connection; +SET NAMES utf8; +SET @stmt= CONCAT('ALTER TABLE t1 MODIFY a VARCHAR(30)', + ' CHARACTER SET ', @backup_character_set_connection, + ' COLLATE ', @backup_collation_connection, + ' , ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY' + ' , ADD KEY a_id (a, id)'); +PREPARE stmt FROM @stmt; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +SET collation_connection=@backup_collation_connection; + +SHOW CREATE TABLE t1; + +--echo # +--echo # Ascending sort, using filesort +--echo # +EXPLAIN SELECT a FROM t1 ORDER BY a, BINARY a; +SELECT a FROM t1 ORDER BY a, BINARY a; + +--echo # +--echo # Descending sort, using filesort +--echo # +EXPLAIN SELECT a FROM t1 ORDER BY a DESC, BINARY a DESC; +SELECT a FROM t1 ORDER BY a DESC, BINARY a DESC; + + +--echo # +--echo # Ascending sort, using index +--echo # +EXPLAIN SELECT a FROM t1 ORDER BY a, id; +SELECT a FROM t1 ORDER BY a, id; + +--echo # +--echo # Descending sort, using index +--echo # +EXPLAIN SELECT a FROM t1 ORDER BY a DESC, id DESC; +SELECT a FROM t1 ORDER BY a DESC, id DESC; + +DROP TABLE t1; + +--echo # +--echo # End of ctype_thai.inc +--echo # diff --git a/mysql-test/include/ctype_uca1400_ids_using_convert.inc b/mysql-test/include/ctype_uca1400_ids_using_convert.inc new file mode 100644 index 00000000..1a6cf3a0 --- /dev/null +++ b/mysql-test/include/ctype_uca1400_ids_using_convert.inc @@ -0,0 +1,21 @@ +--disable_ps_protocol +--enable_metadata +DELIMITER $$; +FOR rec IN (SELECT COLLATION_NAME + FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY + WHERE CHARACTER_SET_NAME=@charset + AND COLLATION_NAME RLIKE 'uca1400' + ORDER BY ID) +DO + SET NAMES utf8mb4; + SET character_set_results=NULL; + EXECUTE IMMEDIATE CONCAT('SELECT CONVERT('''' USING ',@charset,')', + ' COLLATE ', rec.COLLATION_NAME, + ' AS ', rec.COLLATION_NAME, + ' LIMIT 0'); +END FOR; +$$ +DELIMITER ;$$ +--disable_metadata +--enable_ps_protocol +SET NAMES utf8; diff --git a/mysql-test/include/ctype_uca1400_ids_using_set_names.inc b/mysql-test/include/ctype_uca1400_ids_using_set_names.inc new file mode 100644 index 00000000..09cf49fc --- /dev/null +++ b/mysql-test/include/ctype_uca1400_ids_using_set_names.inc @@ -0,0 +1,17 @@ + +--disable_ps_protocol +--enable_metadata +DELIMITER $$; +FOR rec IN (SELECT COLLATION_NAME + FROM INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY + WHERE CHARACTER_SET_NAME=@charset + AND COLLATION_NAME RLIKE 'uca1400' + ORDER BY ID) +DO + EXECUTE IMMEDIATE CONCAT('SET NAMES ',@charset,' COLLATE ', rec.COLLATION_NAME); + SELECT rec.COLLATION_NAME; +END FOR; +$$ +DELIMITER ;$$ +--disable_metadata +--enable_ps_protocol diff --git a/mysql-test/include/ctype_uca_w2.inc b/mysql-test/include/ctype_uca_w2.inc new file mode 100644 index 00000000..b59f73b8 --- /dev/null +++ b/mysql-test/include/ctype_uca_w2.inc @@ -0,0 +1,65 @@ +--echo # +--echo # Start of ctype_uca_w2.inc +--echo # + +SELECT @@collation_connection; + +SELECT ID, SORTLEN, COLLATION_NAME, CHARACTER_SET_NAME +FROM INFORMATION_SCHEMA.COLLATIONS +WHERE COLLATION_NAME LIKE @@collation_connection; + +--echo # +--echo # Testing strnxfrm +--echo # + +CREATE TABLE t1 AS SELECT SPACE(3) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES (SPACE(0)),(SPACE(1)),(SPACE(2)); +SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(8))) FROM t1; +SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4))) FROM t1; +SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 1)) FROM t1; +SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 2)) FROM t1; +SELECT HEX(a), HEX(WEIGHT_STRING(a AS CHAR(4) LEVEL 3)) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES (_ucs2 0x3400); +INSERT INTO t1 VALUES (_ucs2 0xF001); +SELECT HEX(CONVERT(a USING ucs2)) AS ucs2, HEX(a), HEX(WEIGHT_STRING(a)) FROM t1; +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('A'),('À'),('Á'),('Â'),('Ã'),('Ä'),('Å'); +SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a; +SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a DESC; + +SET @backup_character_set_connection=@@character_set_connection; +SET @backup_collation_connection=@@collation_connection; + +SET NAMES utf8; +SET @stmt= CONCAT('ALTER TABLE t1 MODIFY a CHAR(10)' COLLATE utf8_bin, + ' CHARACTER SET ', @backup_character_set_connection, + ' COLLATE ', @backup_collation_connection); +PREPARE stmt FROM @stmt; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +SET collation_connection=@backup_collation_connection; + +SHOW CREATE TABLE t1; +SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a; +SELECT a, HEX(WEIGHT_STRING(a LEVEL 2)) FROM t1 ORDER BY a DESC; +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT SPACE(10) AS a LIMIT 0; +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('cota'),('cote'),('cotz'); +INSERT INTO t1 VALUES ('coté'),('côte'),('côté'),('cotë'),('côtë'); +SELECT * FROM t1 ORDER BY a; +SELECT * FROM t1 ORDER BY a DESC; +DROP TABLE t1; + +--echo # +--echo # End of ctype_uca_w2.inc +--echo # diff --git a/mysql-test/include/ctype_unescape.inc b/mysql-test/include/ctype_unescape.inc new file mode 100644 index 00000000..d7a8a275 --- /dev/null +++ b/mysql-test/include/ctype_unescape.inc @@ -0,0 +1,333 @@ +--echo # Start of ctype_unescape.inc + +SET sql_mode = ''; + +# +# Testing how string literals with backslash and quote-quote are unescaped. +# The tests assume that single quote (') is used as a delimiter. +# + +# +# Make sure that the parser really works using the character set we need. +# We use binary strings to compose strings, to be able to test get malformed +# sequences, which are possible as a result of mysql_real_escape_string(). +# The important thing for this test is to make the parser unescape using +# the client character set, rather than binary. Currently it works exactly +# that way by default, so the query below should return @@character_set_client +# +SET @query=_binary'SELECT CHARSET(\'test\'),@@character_set_client,@@character_set_connection'; +PREPARE stmt FROM @query; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +let $CHARSET=`SELECT @@character_set_connection`; + +CREATE TABLE allbytes (a VARBINARY(10)); + +# +# Create various byte sequences to test. Testing the full banch of +# possible combinations takes about 2 minutes. So this test provides +# variants to run with: +# - the full set of possible combinations +# - a reduced test of combinations for selected bytes only +# + +# Create selected byte combinations +if ($ctype_unescape_combinations == 'selected') +{ +--echo # Using selected bytes combinations +--source include/bytes.inc +# +# Populate "selected_bytes" with bytes that have a special meaning. +# We'll use "selected_bytes" to generate byte seqeunces, +# instead of the full possible byte combinations, to reduce test time. +# +CREATE TABLE selected_bytes (a VARBINARY(10)); + +# Bytes that have a special meaning in all character sets: +# 0x00 - mysql_real_escape_string() quotes this to '\0' +# 0x0D - mysql_real_escape_string() quotes this to '\r' +# 0x0A - mysql_real_escape_string() quotes this to '\n' +# 0x1A - mysql_real_escape_string() quotes this to '\Z' +# 0x08 - mysql_real_escape_string() does not quote this, +# but '\b' is unescaped to 0x08. +# 0x09 - mysql_real_escape_string() does not quote this, +# but '\t' is unescaped to 0x09. +# 0x30 - '0', as in '\0' +# 0x5A - 'Z', as in '\Z' +# 0x62 - 'b', as in '\b' +# 0x6E - 'n', as in '\n' +# 0x72 - 't', as in '\r' +# 0x74 - 't', as in '\t' + +INSERT INTO selected_bytes (a) VALUES ('\0'),('\b'),('\t'),('\r'),('\n'),('\Z'); +INSERT INTO selected_bytes (a) VALUES ('0'),('b'),('t'),('r'),('n'),('Z'); + +# 0x22 - double quote +# 0x25 - percent sign, '\%' is preserved as is for LIKE. +# 0x27 - single quote +# 0x5C - backslash +# 0x5F - underscore, '\_' is preserved as is for LIKE. +INSERT INTO selected_bytes (a) VALUES ('\\'),('_'),('%'),(0x22),(0x27); + +# Some bytes do not have any special meaning, for example basic Latin letters. +# Let's add, one should be enough for a good enough coverage. +INSERT INTO selected_bytes (a) VALUES ('a'); + +# +# This maps summarizes bytes that have a special +# meaning in various character sets: +# +# MBHEAD MBTAIL NONASCII-8BIT BAD +# ------ ------ -------------- ---------- +# big5: [A1..F9] [40..7E,A1..FE] N/A [80..A0,FA..FF] +# cp932: [81..9F,E0..FC] [40..7E,80..FC] [A1..DF] [FD..FF] +# gbk: [81..FE] [40..7E,80..FE] N/A [FF] +# sjis: [81..9F,E0..FC] [40..7E,80..FC] [A1..DF] [FD..FF] +# swe7: N/A N/A [5B..5E,7B..7E] [80..FF] +# + +INSERT INTO selected_bytes (a) VALUES +(0x3F), # 7bit +(0x40), # 7bit mbtail +(0x7E), # 7bit mbtail nonascii-8bit +(0x7F), # 7bit nonascii-8bit +(0x80), # mbtail bad-mb +(0x81), # mbhead mbtail +(0x9F), # mbhead mbtail bad-mb +(0xA0), # mbhead mbtail bad-mb +(0xA1), # mbhead mbtail nonascii-8bit +(0xE0), # mbhead mbtai +(0xEF), # mbhead mbtail +(0xF9), # mbhead mbtail +(0xFA), # mbhead mbtail bad-mb +(0xFC), # mbhead mbtail bad-mb +(0xFD), # mbhead mbtail bad-mb +(0xFE), # mbhead mbtial bad-mb +(0xFF); # bad-mb + +# +# Now populate the test table +# + +# Use all single bytes, this is cheap, there are only 256 values. +INSERT INTO allbytes (a) SELECT a FROM bytes; + +# Add selected bytes combinations +INSERT INTO allbytes (a) SELECT CONCAT(t1.a,t2.a) FROM selected_bytes t1,selected_bytes t2; +INSERT INTO allbytes (a) SELECT CONCAT(0x5C,t1.a,t2.a) FROM selected_bytes t1,selected_bytes t2; +INSERT INTO allbytes (a) SELECT CONCAT(0x5C,t1.a,0x5C,t2.a) FROM selected_bytes t1,selected_bytes t2; +DROP TABLE selected_bytes; + +# Delete all non-single byte sequences that do not have +# backslashes or quotes at all. There is nothing special with these strings. +DELETE FROM allbytes WHERE + OCTET_LENGTH(a)>1 AND + LOCATE(0x5C,a)=0 AND + a NOT LIKE '%\'%' AND + a NOT LIKE '%"%'; + +} + +if ($ctype_unescape_combinations=='') +{ +--echo # Using full byte combinations +--source include/bytes2.inc +INSERT INTO allbytes (a) SELECT a FROM bytes; +INSERT INTO allbytes (a) SELECT CONCAT(hi,lo) FROM bytes2; +INSERT INTO allbytes (a) SELECT CONCAT(0x5C,hi,lo) FROM bytes2; +INSERT INTO allbytes (a) SELECT CONCAT(0x5C,hi,0x5C,lo) FROM bytes2; +} + + +DELIMITER //; + +# +# A procedure that make an SQL query using 'val' as a string literal. +# The result of the query execution is written into the table 't1'. +# NULL in t1.b means that query failed due to syntax error, +# typically because of mis-interpreted closing quote delimiter. +# +CREATE PROCEDURE p1(val VARBINARY(10)) +BEGIN + DECLARE EXIT HANDLER FOR SQLSTATE '42000' INSERT INTO t1 (a,b) VALUES(val,NULL); + SET @query=CONCAT(_binary"INSERT INTO t1 (a,b) VALUES (0x",HEX(val),",'",val,"')"); + PREPARE stmt FROM @query; + EXECUTE stmt; + DEALLOCATE PREPARE stmt; +END// + +# +# A procedure that iterates through all records in "allbytes". +# And runs p1() for every record. +# +CREATE PROCEDURE p2() +BEGIN + DECLARE val VARBINARY(10); + DECLARE done INT DEFAULT FALSE; + DECLARE stmt CURSOR FOR SELECT a FROM allbytes; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE; + OPEN stmt; +read_loop1: LOOP + FETCH stmt INTO val; + IF done THEN + LEAVE read_loop1; + END IF; + CALL p1(val); +END LOOP; + CLOSE stmt; +END// + + +# A function that converts the value from binary to $CHARSET +# and check if it has changed. CONVERT() fixes malformed strings. +# So if the string changes in CONVERT(), it means it was not wellformed. +--eval CREATE FUNCTION iswellformed(a VARBINARY(256)) RETURNS INT RETURN a=BINARY CONVERT(a USING $CHARSET); + +# +# A function that approximately reproduces how the SQL parser +# would unescape a binary string. +# +CREATE FUNCTION unescape(a VARBINARY(256)) RETURNS VARBINARY(256) +BEGIN + # We need to do it in a way to avoid producing new escape sequences + # First, enclose all known escsape sequences to '{{xx}}' + # - Backslash not followed by a LIKE pattern characters _ and % + # - Double escapes + # This uses PCRE Branch Reset Groups: (?|(alt1)|(alt2)|(alt3)). + # So '\\1' in the last argument always means the match, no matter + # which alternative it came from. + SET a=REGEXP_REPLACE(a,'(?|(\\\\[^_%])|(\\x{27}\\x{27}))','{{\\1}}'); + # Now unescape all enclosed standard escape sequences + SET a=REPLACE(a,'{{\\0}}', '\0'); + SET a=REPLACE(a,'{{\\b}}', '\b'); + SET a=REPLACE(a,'{{\\t}}', '\t'); + SET a=REPLACE(a,'{{\\r}}', '\r'); + SET a=REPLACE(a,'{{\\n}}', '\n'); + SET a=REPLACE(a,'{{\\Z}}', '\Z'); + SET a=REPLACE(a,'{{\\\'}}', '\''); + # Unescape double quotes + SET a=REPLACE(a,'{{\'\'}}', '\''); + # Unescape the rest: all other \x sequences mean just 'x' + SET a=REGEXP_REPLACE(a, '{{\\\\(.|\\R)}}', '\\1'); + RETURN a; +END// + + +# +# A function that checks what happened during unescaping. +# +# @param a - the value before unescaping +# @param b - the value after unescaping +# +# The following return values are possible: +# - SyntErr - b IS NULL, which means syntax error happened in p1(). +# - Preserv - the value was not modified during unescaping. +# This is possible if 0x5C was treated as mbtail. +# Or only LIKE escape sequences were found: '\_' and '\%'. +# - Trivial - only 0x5C were removed. +# - Regular - the value was unescaped like a binary string. +# Some standard escape sequences were found. +# No special multi-byte handling happened. +# - Special - Something else happened. Should not happen. +# +CREATE FUNCTION unescape_type(a VARBINARY(256),b VARBINARY(256)) RETURNS VARBINARY(256) +BEGIN + RETURN CASE + WHEN b IS NULL THEN '[SyntErr]' + WHEN a=b THEN CASE + WHEN OCTET_LENGTH(a)=1 THEN '[Preserve]' + WHEN a RLIKE '\\\\[_%]' THEN '[Preserve][LIKE]' + WHEN a RLIKE '^[[:ascii:]]+$' THEN '[Preserve][ASCII]' + ELSE '[Preserv][MB]' END + WHEN REPLACE(a,0x5C,'')=b THEN '[Trivial]' + WHEN UNESCAPE(a)=b THEN '[Regular]' + ELSE '[Special]' END; +END// + + +# +# Check what happened with wellformedness during unescaping +# @param a - the value before unescaping +# @param b - the value after unescaping +# +# Returned values: +# [FIXED] - the value was malformed and become wellformed after unescaping +# [BROKE] - the value was wellformed and become malformed after unescaping +# [ILSEQ] - both values (before unescaping and after unescaping) are malformed +# '' - both values are wellformed +# +CREATE FUNCTION wellformedness(a VARBINARY(256), b VARBINARY(256)) + RETURNS VARBINARY(256) +BEGIN + RETURN CASE + WHEN b IS NULL THEN '' + WHEN NOT iswellformed(a) AND iswellformed(b) THEN '[FIXED]' + WHEN iswellformed(a) AND NOT iswellformed(b) THEN '[BROKE]' + WHEN NOT iswellformed(a) AND NOT iswellformed(b) THEN '[ILSEQ]' + ELSE '' + END; +END// + + +# +# Check if the value could be generated by mysql_real_escape_string(), +# or can only come from a direct user input. +# +# @param a - the value before unescaping +# +# Returns: +# [USER] - if the value could not be generated by mysql_real_escape_string() +# '' - if the value was possibly generated by mysql_real_escape_string() +# +# +CREATE FUNCTION mysql_real_escape_string_generated(a VARBINARY(256)) + RETURNS VARBINARY(256) +BEGIN + DECLARE a1 BINARY(1) DEFAULT SUBSTR(a,1,1); + DECLARE a2 BINARY(1) DEFAULT SUBSTR(a,2,1); + DECLARE a3 BINARY(1) DEFAULT SUBSTR(a,3,1); + DECLARE a4 BINARY(1) DEFAULT SUBSTR(a,4,1); + DECLARE a2a4 BINARY(2) DEFAULT CONCAT(a2,a4); + RETURN CASE + WHEN (a1=0x5C) AND + (a3=0x5C) AND + (a2>0x7F) AND + (a4 NOT IN ('_','%','0','t','r','n','Z')) AND + iswellformed(a2a4) THEN '[USER]' + ELSE '' + END; +END// + +DELIMITER ;// + + +CREATE TABLE t1 (a VARBINARY(10),b VARBINARY(10)); +CALL p2(); +# Avoid "Invalid XXX character string" warnings +# We mark malformed strings in the output anyway +--disable_warnings +# All records marked with '[BAD]' mean that the string was unescaped +# in a unexpected way, that means there is a bug in UNESCAPE() above. +#check after fix MDEV-29290 +--disable_view_protocol +SELECT HEX(a),HEX(b), + CONCAT(unescape_type(a,b), + wellformedness(a,b), + mysql_real_escape_string_generated(a), + IF(UNESCAPE(a)<>b,CONCAT('[BAD',HEX(UNESCAPE(a)),']'),'')) AS comment +FROM t1 ORDER BY LENGTH(a),a; +--enable_view_protocol +--enable_warnings +DROP TABLE t1; +DROP PROCEDURE p1; +DROP PROCEDURE p2; +DROP FUNCTION unescape; +DROP FUNCTION unescape_type; +DROP FUNCTION wellformedness; +DROP FUNCTION mysql_real_escape_string_generated; +DROP FUNCTION iswellformed; +DROP TABLE allbytes; +SET sql_mode = DEFAULT; + +--echo # End of ctype_backslash.inc diff --git a/mysql-test/include/ctype_unicode520.inc b/mysql-test/include/ctype_unicode520.inc new file mode 100644 index 00000000..46c8c7d8 --- /dev/null +++ b/mysql-test/include/ctype_unicode520.inc @@ -0,0 +1,166 @@ +# +# WL#2673 Unicode collation algorithm new version +# +CREATE TABLE t1 AS SELECT repeat('a', 10) as c LIMIT 0; +SHOW CREATE TABLE t1; + +# +# Unicode-5.0.0 characters +# + +# Latin Extended-B and IP extensions +INSERT INTO t1 VALUES (_utf32 0x0180),(_utf32 0x023A); +INSERT INTO t1 VALUES (_utf32 0x023B),(_utf32 0x023C); +INSERT INTO t1 VALUES (_utf32 0x023D),(_utf32 0x023E); +INSERT INTO t1 VALUES (_utf32 0x0241),(_utf32 0x0242); +INSERT INTO t1 VALUES (_utf32 0x0243),(_utf32 0x0244); +INSERT INTO t1 VALUES (_utf32 0x0245),(_utf32 0x0246); +INSERT INTO t1 VALUES (_utf32 0x0247),(_utf32 0x0248); +INSERT INTO t1 VALUES (_utf32 0x0249),(_utf32 0x024A); +INSERT INTO t1 VALUES (_utf32 0x024B),(_utf32 0x024C); +INSERT INTO t1 VALUES (_utf32 0x024D),(_utf32 0x024E); +INSERT INTO t1 VALUES (_utf32 0x024F),(_utf32 0x026B); +INSERT INTO t1 VALUES (_utf32 0x027D),(_utf32 0x0289); +INSERT INTO t1 VALUES (_utf32 0x028C); + +# Greek and Coptic +INSERT INTO t1 VALUES (_utf32 0x037B), (_utf32 0x037C); +INSERT INTO t1 VALUES (_utf32 0x037D), (_utf32 0x03FD); +INSERT INTO t1 VALUES (_utf32 0x03FE), (_utf32 0x03FF); + +# Cyrillic +INSERT INTO t1 VALUES (_utf32 0x04C0), (_utf32 0x04CF); +INSERT INTO t1 VALUES (_utf32 0x04F6), (_utf32 0x04F7); +INSERT INTO t1 VALUES (_utf32 0x04FA), (_utf32 0x04FB); +INSERT INTO t1 VALUES (_utf32 0x04FC), (_utf32 0x04FD); +INSERT INTO t1 VALUES (_utf32 0x04FE), (_utf32 0x04FF); +INSERT INTO t1 VALUES (_utf32 0x0510), (_utf32 0x0511); +INSERT INTO t1 VALUES (_utf32 0x0512), (_utf32 0x0513); + +# Georgian, Georgian Supplement +INSERT INTO t1 VALUES (_utf32 0x10A0), (_utf32 0x10A1); +INSERT INTO t1 VALUES (_utf32 0x10A2), (_utf32 0x10A3); +INSERT INTO t1 VALUES (_utf32 0x10A4), (_utf32 0x10A5); +INSERT INTO t1 VALUES (_utf32 0x10A6), (_utf32 0x10A7); +INSERT INTO t1 VALUES (_utf32 0x2D00), (_utf32 0x2D01); +INSERT INTO t1 VALUES (_utf32 0x2D02), (_utf32 0x2D03); +INSERT INTO t1 VALUES (_utf32 0x2D04), (_utf32 0x2D05); +INSERT INTO t1 VALUES (_utf32 0x2D06), (_utf32 0x2D07); + +# Phonetic Extensions +INSERT INTO t1 VALUES (_utf32 0x1D7D); + +# Letterlike Symbols +INSERT INTO t1 VALUES (_utf32 0x2132),(_utf32 0x214E); + +# Number Forms +INSERT INTO t1 VALUES (_utf32 0x2183),(_utf32 0x2184); + +# Coptic +INSERT INTO t1 VALUES (_utf32 0x2C80), (_utf32 0x2C81); +INSERT INTO t1 VALUES (_utf32 0x2C82), (_utf32 0x2C83); +INSERT INTO t1 VALUES (_utf32 0x2C84), (_utf32 0x2C85); +INSERT INTO t1 VALUES (_utf32 0x2C86), (_utf32 0x2C87); +INSERT INTO t1 VALUES (_utf32 0x2C88), (_utf32 0x2C89); +INSERT INTO t1 VALUES (_utf32 0x2C8A), (_utf32 0x2C8B); +INSERT INTO t1 VALUES (_utf32 0x2C8C), (_utf32 0x2C8D); +INSERT INTO t1 VALUES (_utf32 0x2C8E), (_utf32 0x2C8F); + +# Latin Extended-C +INSERT INTO t1 VALUES (_utf32 0x2C60), (_utf32 0x2C61); +INSERT INTO t1 VALUES (_utf32 0x2C62), (_utf32 0x2C63); +INSERT INTO t1 VALUES (_utf32 0x2C64), (_utf32 0x2C65); +INSERT INTO t1 VALUES (_utf32 0x2C66), (_utf32 0x2C67); +INSERT INTO t1 VALUES (_utf32 0x2C68), (_utf32 0x2C69); +INSERT INTO t1 VALUES (_utf32 0x2C6A), (_utf32 0x2C6B); +INSERT INTO t1 VALUES (_utf32 0x2C6C), (_utf32 0x2C75); +INSERT INTO t1 VALUES (_utf32 0x2C76); + +# Glagolitic +INSERT INTO t1 VALUES (_utf32 0x2C00), (_utf32 0x2C01); +INSERT INTO t1 VALUES (_utf32 0x2C02), (_utf32 0x2C03); +INSERT INTO t1 VALUES (_utf32 0x2C04), (_utf32 0x2C05); +INSERT INTO t1 VALUES (_utf32 0x2C06), (_utf32 0x2C07); +INSERT INTO t1 VALUES (_utf32 0x2C30), (_utf32 0x2C31); +INSERT INTO t1 VALUES (_utf32 0x2C32), (_utf32 0x2C33); +INSERT INTO t1 VALUES (_utf32 0x2C34), (_utf32 0x2C35); +INSERT INTO t1 VALUES (_utf32 0x2C36), (_utf32 0x2C37); + +# Deseret +INSERT INTO t1 VALUES (_utf32 0x10400), (_utf32 0x10401); +INSERT INTO t1 VALUES (_utf32 0x10402), (_utf32 0x10403); +INSERT INTO t1 VALUES (_utf32 0x10404), (_utf32 0x10405); +INSERT INTO t1 VALUES (_utf32 0x10406), (_utf32 0x10407); +INSERT INTO t1 VALUES (_utf32 0x10428), (_utf32 0x10429); +INSERT INTO t1 VALUES (_utf32 0x1042A), (_utf32 0x1042B); +INSERT INTO t1 VALUES (_utf32 0x1042C), (_utf32 0x1042D); +INSERT INTO t1 VALUES (_utf32 0x1042E), (_utf32 0x1042F); + + +# +# Unicode 5.1.0 characters +# + +INSERT INTO t1 VALUES (_utf32 0x0370); # GREEK CAPITAL LETTER HETA +INSERT INTO t1 VALUES (_utf32 0x0371); # GREEK SMALL LETTER HETA +INSERT INTO t1 VALUES (_utf32 0x0372); # GREEK CAPITAL LETTER ARCHAIC SAMPI +INSERT INTO t1 VALUES (_utf32 0x0373); # GREEK SMALL LETTER ARCHAIC SAMPI + +INSERT INTO t1 VALUES (_utf32 0x0514); # CYRILLIC CAPITAL LETTER LHA +INSERT INTO t1 VALUES (_utf32 0x0515); # CYRILLIC SMALL LETTER LHA +INSERT INTO t1 VALUES (_utf32 0x0516); # CYRILLIC CAPITAL LETTER RHA +INSERT INTO t1 VALUES (_utf32 0x0517); # CYRILLIC SMALL LETTER RHA + +INSERT INTO t1 VALUES (_utf32 0xA640); # CYRILLIC CAPITAL LETTER ZEMLYA +INSERT INTO t1 VALUES (_utf32 0xA641); # CYRILLIC SMALL LETTER ZEMLYA +INSERT INTO t1 VALUES (_utf32 0xA642); # CYRILLIC CAPITAL LETTER DZELO +INSERT INTO t1 VALUES (_utf32 0xA643); # CYRILLIC SMALL LETTER DZELO + +INSERT INTO t1 VALUES (_utf32 0xA722); # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF +INSERT INTO t1 VALUES (_utf32 0xA723); # LATIN SMALL LETTER EGYPTOLOGICAL ALEF +INSERT INTO t1 VALUES (_utf32 0xA724); # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN +INSERT INTO t1 VALUES (_utf32 0xA725); # LATIN SMALL LETTER EGYPTOLOGICAL AIN + +INSERT INTO t1 VALUES (_utf32 0xA726); # LATIN CAPITAL LETTER HENG +INSERT INTO t1 VALUES (_utf32 0xA727); # LATIN SMALL LETTER HENG +INSERT INTO t1 VALUES (_utf32 0xA728); # LATIN CAPITAL LETTER TZ +INSERT INTO t1 VALUES (_utf32 0xA729); # LATIN SMALL LETTER TZ +INSERT INTO t1 VALUES (_utf32 0xA72A); # LATIN CAPITAL LETTER TRESILLO +INSERT INTO t1 VALUES (_utf32 0xA72B); # LATIN SMALL LETTER TRESILLO + +# +# Unicode 5.2.0 characters +# + +INSERT INTO t1 VALUES (_utf32 0x2CEB); # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI;Lu;0;L;;;;;N;;;;2CEC; +INSERT INTO t1 VALUES (_utf32 0x2CEC); # COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI;Ll;0;L;;;;;N;;;2CEB;;2CEB +INSERT INTO t1 VALUES (_utf32 0x2CED); # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA;Lu;0;L;;;;;N;;;;2CEE; +INSERT INTO t1 VALUES (_utf32 0x2CEE); # COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA;Ll;0;L;;;;;N;;;2CED;;2CED + +# +# Check case folding and UCA weights +# +SELECT hex(c), hex(lower(c)), hex(upper(c)), hex(weight_string(c)), c +FROM t1 ORDER BY c, BINARY c; + + +# +# Check that LIKE works fine with and without index. +# This test makes sure that cs->min_sort_char and cs->max_sort_char +# are set properly +# Also check that LIKE is case insensitive for supplementary characters +# +INSERT INTO t1 VALUES ('a'); +INSERT INTO t1 VALUES (concat(_utf32 0x61, _utf32 0xFFFF)); +INSERT INTO t1 VALUES (concat(_utf32 0x61, _utf32 0x10FFFF)); +INSERT INTO t1 VALUES (concat(_utf32 0x61, _utf32 0x10400)); +SELECT hex(c), hex(weight_string(c)) FROM t1 WHERE c LIKE 'a%' ORDER BY c; +SELECT hex(c), hex(weight_string(c)), c FROM t1 WHERE c LIKE _utf32 0x10400 ORDER BY c, BINARY c; +SELECT hex(c), hex(weight_string(c)), c FROM t1 WHERE c LIKE _utf32 0x10428 ORDER BY c, BINARY c; +ALTER TABLE t1 ADD KEY(c); +EXPLAIN SELECT hex(c) FROM t1 WHERE c LIKE 'a%' ORDER BY c; +SELECT hex(c), hex(weight_string(c)) FROM t1 WHERE c LIKE 'a%' ORDER BY c; +SELECT hex(c), hex(weight_string(c)), c FROM t1 WHERE c LIKE _utf32 0x10400 ORDER BY c, BINARY c; +SELECT hex(c), hex(weight_string(c)), c FROM t1 WHERE c LIKE _utf32 0x10428 ORDER BY c, BINARY c; + +DROP TABLE t1; diff --git a/mysql-test/include/ctype_unicode_allchars.inc b/mysql-test/include/ctype_unicode_allchars.inc new file mode 100644 index 00000000..1f0670bd --- /dev/null +++ b/mysql-test/include/ctype_unicode_allchars.inc @@ -0,0 +1,23 @@ +# +# Make a table with all Unicode characters +# in the range U+0000 .. U+10FFFF +# + +CREATE TABLE allchars AS SELECT 1 AS code, ' ' AS str LIMIT 0; +SHOW CREATE TABLE allchars; + +CREATE TABLE t1tmp (a INT NOT NULL); +DELIMITER $$; +FOR i IN 0..0xFFF +DO + INSERT INTO t1tmp VALUES (i); +END FOR; +$$ +DELIMITER ;$$ +INSERT INTO allchars SELECT + t1.a*0x1000+t2.a, + CHAR(t1.a*0x1000+t2.a USING utf32) +FROM t1tmp t1, t1tmp t2 +WHERE t1.a BETWEEN 0 AND 0x10F; +DROP TABLE t1tmp; +SELECT COUNT(*) FROM allchars; diff --git a/mysql-test/include/ctype_unicode_casefold_bmp.inc b/mysql-test/include/ctype_unicode_casefold_bmp.inc new file mode 100644 index 00000000..e5b16b93 --- /dev/null +++ b/mysql-test/include/ctype_unicode_casefold_bmp.inc @@ -0,0 +1,23 @@ +--source include/have_utf32.inc +--source include/have_ucs2.inc +--source include/have_sequence.inc + +EXECUTE IMMEDIATE SFORMAT(' +CREATE VIEW v_bmp AS +SELECT + seq AS codepoint, + LPAD(HEX(seq),4,''0'') AS codepoint_hex4, + CONVERT(CHAR(seq USING utf32) USING {}) COLLATE {} AS c +FROM + seq_0_to_65535', @@character_set_connection, @@collation_connection); + +SELECT COLLATION(c) FROM v_bmp LIMIT 1; + +SELECT + codepoint_hex4, + HEX(CAST(LOWER(c) AS CHAR CHARACTER SET ucs2)), + HEX(CAST(UPPER(c) AS CHAR CHARACTER SET ucs2)) +FROM v_bmp +WHERE BINARY(c)<>BINARY(LOWER(c)) OR BINARY(c)<>BINARY(UPPER(c)); + +DROP VIEW v_bmp; diff --git a/mysql-test/include/ctype_unicode_casefold_supplementary.inc b/mysql-test/include/ctype_unicode_casefold_supplementary.inc new file mode 100644 index 00000000..bb603118 --- /dev/null +++ b/mysql-test/include/ctype_unicode_casefold_supplementary.inc @@ -0,0 +1,22 @@ +--source include/have_utf32.inc +--source include/have_sequence.inc + +EXECUTE IMMEDIATE SFORMAT(' +CREATE VIEW v_supplementary AS +SELECT + seq AS codepoint, + LPAD(HEX(seq),8,''0'') AS codepoint_hex8, + CONVERT(CHAR(seq USING utf32) USING {}) COLLATE {} AS c +FROM + seq_65536_to_1114111', @@character_set_connection, @@collation_connection); + +SELECT COLLATION(c) FROM v_supplementary LIMIT 1; + +SELECT + codepoint_hex8, + HEX(CAST(LOWER(c) AS CHAR CHARACTER SET utf32)), + HEX(CAST(UPPER(c) AS CHAR CHARACTER SET utf32)) +FROM v_supplementary +WHERE BINARY(c)<>BINARY(LOWER(c)) OR BINARY(c)<>BINARY(UPPER(c)); + +DROP VIEW v_supplementary; diff --git a/mysql-test/include/ctype_unicode_latin.inc b/mysql-test/include/ctype_unicode_latin.inc new file mode 100644 index 00000000..b4344a3b --- /dev/null +++ b/mysql-test/include/ctype_unicode_latin.inc @@ -0,0 +1,179 @@ +# +# Basic Latin +# +insert into t1 values ('A'),('a'); +insert into t1 values ('B'),('b'); +insert into t1 values ('C'),('c'); +insert into t1 values ('D'),('d'); +insert into t1 values ('E'),('e'); +insert into t1 values ('F'),('f'); +insert into t1 values ('G'),('g'); +insert into t1 values ('H'),('h'); +insert into t1 values ('I'),('i'); +insert into t1 values ('J'),('j'); +insert into t1 values ('K'),('k'); +insert into t1 values ('L'),('l'); +insert into t1 values ('M'),('m'); +insert into t1 values ('N'),('n'); +insert into t1 values ('O'),('o'); +insert into t1 values ('P'),('p'); +insert into t1 values ('Q'),('q'); +insert into t1 values ('R'),('r'); +insert into t1 values ('S'),('s'); +insert into t1 values ('T'),('t'); +insert into t1 values ('U'),('u'); +insert into t1 values ('V'),('v'); +insert into t1 values ('W'),('w'); +insert into t1 values ('X'),('x'); +insert into t1 values ('Y'),('y'); +insert into t1 values ('Z'),('z'); + +# +# Latin1 supplement +# +insert into t1 values (_ucs2 0x00e0),(_ucs2 0x00c0); +insert into t1 values (_ucs2 0x00e1),(_ucs2 0x00c1); +insert into t1 values (_ucs2 0x00e2),(_ucs2 0x00c2); +insert into t1 values (_ucs2 0x00e3),(_ucs2 0x00c3); +insert into t1 values (_ucs2 0x00e4),(_ucs2 0x00c4); +insert into t1 values (_ucs2 0x00e5),(_ucs2 0x00c5); +insert into t1 values (_ucs2 0x00e6),(_ucs2 0x00c6); +insert into t1 values (_ucs2 0x00e7),(_ucs2 0x00c7); +insert into t1 values (_ucs2 0x00e8),(_ucs2 0x00c8); +insert into t1 values (_ucs2 0x00e9),(_ucs2 0x00c9); +insert into t1 values (_ucs2 0x00ea),(_ucs2 0x00ca); +insert into t1 values (_ucs2 0x00eb),(_ucs2 0x00cb); +insert into t1 values (_ucs2 0x00ec),(_ucs2 0x00cc); +insert into t1 values (_ucs2 0x00ed),(_ucs2 0x00cd); +insert into t1 values (_ucs2 0x00ee),(_ucs2 0x00ce); +insert into t1 values (_ucs2 0x00ef),(_ucs2 0x00cf); + +insert into t1 values (_ucs2 0x00f0),(_ucs2 0x00d0); +insert into t1 values (_ucs2 0x00f1),(_ucs2 0x00d1); +insert into t1 values (_ucs2 0x00f2),(_ucs2 0x00d2); +insert into t1 values (_ucs2 0x00f3),(_ucs2 0x00d3); +insert into t1 values (_ucs2 0x00f4),(_ucs2 0x00d4); +insert into t1 values (_ucs2 0x00f5),(_ucs2 0x00d5); +insert into t1 values (_ucs2 0x00f6),(_ucs2 0x00d6); +insert into t1 values (_ucs2 0x00f7),(_ucs2 0x00d7); +insert into t1 values (_ucs2 0x00f8),(_ucs2 0x00d8); +insert into t1 values (_ucs2 0x00f9),(_ucs2 0x00d9); +insert into t1 values (_ucs2 0x00fa),(_ucs2 0x00da); +insert into t1 values (_ucs2 0x00fb),(_ucs2 0x00db); +insert into t1 values (_ucs2 0x00fc),(_ucs2 0x00dc); +insert into t1 values (_ucs2 0x00fd),(_ucs2 0x00dd); +insert into t1 values (_ucs2 0x00fe),(_ucs2 0x00de); +insert into t1 values (_ucs2 0x00ff),(_ucs2 0x00df); + +# +# Latin extended-A, 0100-017F +# +insert into t1 values (_ucs2 0x0100),(_ucs2 0x0101),(_ucs2 0x0102),(_ucs2 0x0103); +insert into t1 values (_ucs2 0x0104),(_ucs2 0x0105),(_ucs2 0x0106),(_ucs2 0x0107); +insert into t1 values (_ucs2 0x0108),(_ucs2 0x0109),(_ucs2 0x010a),(_ucs2 0x010b); +insert into t1 values (_ucs2 0x010c),(_ucs2 0x010d),(_ucs2 0x010e),(_ucs2 0x010f); +insert into t1 values (_ucs2 0x0110),(_ucs2 0x0111),(_ucs2 0x0112),(_ucs2 0x0113); +insert into t1 values (_ucs2 0x0114),(_ucs2 0x0115),(_ucs2 0x0116),(_ucs2 0x0117); +insert into t1 values (_ucs2 0x0118),(_ucs2 0x0119),(_ucs2 0x011a),(_ucs2 0x011b); +insert into t1 values (_ucs2 0x011c),(_ucs2 0x011d),(_ucs2 0x011e),(_ucs2 0x011f); +insert into t1 values (_ucs2 0x0120),(_ucs2 0x0121),(_ucs2 0x0122),(_ucs2 0x0123); +insert into t1 values (_ucs2 0x0124),(_ucs2 0x0125),(_ucs2 0x0126),(_ucs2 0x0127); +insert into t1 values (_ucs2 0x0128),(_ucs2 0x0129),(_ucs2 0x012a),(_ucs2 0x012b); +insert into t1 values (_ucs2 0x012c),(_ucs2 0x012d),(_ucs2 0x012e),(_ucs2 0x012f); +insert into t1 values (_ucs2 0x0130),(_ucs2 0x0131),(_ucs2 0x0132),(_ucs2 0x0133); +insert into t1 values (_ucs2 0x0134),(_ucs2 0x0135),(_ucs2 0x0136),(_ucs2 0x0137); +insert into t1 values (_ucs2 0x0138),(_ucs2 0x0139),(_ucs2 0x013a),(_ucs2 0x013b); +insert into t1 values (_ucs2 0x013c),(_ucs2 0x013d),(_ucs2 0x013e),(_ucs2 0x013f); +insert into t1 values (_ucs2 0x0140),(_ucs2 0x0141),(_ucs2 0x0142),(_ucs2 0x0143); +insert into t1 values (_ucs2 0x0144),(_ucs2 0x0145),(_ucs2 0x0146),(_ucs2 0x0147); +insert into t1 values (_ucs2 0x0148),(_ucs2 0x0149),(_ucs2 0x014a),(_ucs2 0x014b); +insert into t1 values (_ucs2 0x014c),(_ucs2 0x014d),(_ucs2 0x014e),(_ucs2 0x014f); +insert into t1 values (_ucs2 0x0150),(_ucs2 0x0151),(_ucs2 0x0152),(_ucs2 0x0153); +insert into t1 values (_ucs2 0x0154),(_ucs2 0x0155),(_ucs2 0x0156),(_ucs2 0x0157); +insert into t1 values (_ucs2 0x0158),(_ucs2 0x0159),(_ucs2 0x015a),(_ucs2 0x015b); +insert into t1 values (_ucs2 0x015c),(_ucs2 0x015d),(_ucs2 0x015e),(_ucs2 0x015f); +insert into t1 values (_ucs2 0x0160),(_ucs2 0x0161),(_ucs2 0x0162),(_ucs2 0x0163); +insert into t1 values (_ucs2 0x0164),(_ucs2 0x0165),(_ucs2 0x0166),(_ucs2 0x0167); +insert into t1 values (_ucs2 0x0168),(_ucs2 0x0169),(_ucs2 0x016a),(_ucs2 0x016b); +insert into t1 values (_ucs2 0x016c),(_ucs2 0x016d),(_ucs2 0x016e),(_ucs2 0x016f); +insert into t1 values (_ucs2 0x0170),(_ucs2 0x0171),(_ucs2 0x0172),(_ucs2 0x0173); +insert into t1 values (_ucs2 0x0174),(_ucs2 0x0175),(_ucs2 0x0176),(_ucs2 0x0177); +insert into t1 values (_ucs2 0x0178),(_ucs2 0x0179),(_ucs2 0x017a),(_ucs2 0x017b); +insert into t1 values (_ucs2 0x017c),(_ucs2 0x017d),(_ucs2 0x017e),(_ucs2 0x017f); + +# +# Latin extended-B, 0180-024F +# +insert into t1 values (_ucs2 0x0180),(_ucs2 0x0181),(_ucs2 0x0182),(_ucs2 0x0183); +insert into t1 values (_ucs2 0x0184),(_ucs2 0x0185),(_ucs2 0x0186),(_ucs2 0x0187); +insert into t1 values (_ucs2 0x0188),(_ucs2 0x0189),(_ucs2 0x018a),(_ucs2 0x018b); +insert into t1 values (_ucs2 0x018c),(_ucs2 0x018d),(_ucs2 0x018e),(_ucs2 0x018f); +insert into t1 values (_ucs2 0x0190),(_ucs2 0x0191),(_ucs2 0x0192),(_ucs2 0x0193); +insert into t1 values (_ucs2 0x0194),(_ucs2 0x0195),(_ucs2 0x0196),(_ucs2 0x0197); +insert into t1 values (_ucs2 0x0198),(_ucs2 0x0199),(_ucs2 0x019a),(_ucs2 0x019b); +insert into t1 values (_ucs2 0x019c),(_ucs2 0x019d),(_ucs2 0x019e),(_ucs2 0x019f); +insert into t1 values (_ucs2 0x01a0),(_ucs2 0x01a1),(_ucs2 0x01a2),(_ucs2 0x01a3); +insert into t1 values (_ucs2 0x01a4),(_ucs2 0x01a5),(_ucs2 0x01a6),(_ucs2 0x01a7); +insert into t1 values (_ucs2 0x01a8),(_ucs2 0x01a9),(_ucs2 0x01aa),(_ucs2 0x01ab); +insert into t1 values (_ucs2 0x01ac),(_ucs2 0x01ad),(_ucs2 0x01ae),(_ucs2 0x01af); +insert into t1 values (_ucs2 0x01b0),(_ucs2 0x01b1),(_ucs2 0x01b2),(_ucs2 0x01b3); +insert into t1 values (_ucs2 0x01b4),(_ucs2 0x01b5),(_ucs2 0x01b6),(_ucs2 0x01b7); +insert into t1 values (_ucs2 0x01b8),(_ucs2 0x01b9),(_ucs2 0x01ba),(_ucs2 0x01bb); +insert into t1 values (_ucs2 0x01bc),(_ucs2 0x01bd),(_ucs2 0x01be),(_ucs2 0x01bf); +insert into t1 values (_ucs2 0x01c0),(_ucs2 0x01c1),(_ucs2 0x01c2),(_ucs2 0x01c3); +insert into t1 values (_ucs2 0x01c4),(_ucs2 0x01c5),(_ucs2 0x01c6),(_ucs2 0x01c7); +insert into t1 values (_ucs2 0x01c8),(_ucs2 0x01c9),(_ucs2 0x01ca),(_ucs2 0x01cb); +insert into t1 values (_ucs2 0x01cc),(_ucs2 0x01cd),(_ucs2 0x01ce),(_ucs2 0x01cf); +insert into t1 values (_ucs2 0x01d0),(_ucs2 0x01d1),(_ucs2 0x01d2),(_ucs2 0x01d3); +insert into t1 values (_ucs2 0x01d4),(_ucs2 0x01d5),(_ucs2 0x01d6),(_ucs2 0x01d7); +insert into t1 values (_ucs2 0x01d8),(_ucs2 0x01d9),(_ucs2 0x01da),(_ucs2 0x01db); +insert into t1 values (_ucs2 0x01dc),(_ucs2 0x01dd),(_ucs2 0x01de),(_ucs2 0x01df); +insert into t1 values (_ucs2 0x01e0),(_ucs2 0x01e1),(_ucs2 0x01e2),(_ucs2 0x01e3); +insert into t1 values (_ucs2 0x01e4),(_ucs2 0x01e5),(_ucs2 0x01e6),(_ucs2 0x01e7); +insert into t1 values (_ucs2 0x01e8),(_ucs2 0x01e9),(_ucs2 0x01ea),(_ucs2 0x01eb); +insert into t1 values (_ucs2 0x01ec),(_ucs2 0x01ed),(_ucs2 0x01ee),(_ucs2 0x01ef); +insert into t1 values (_ucs2 0x01f0),(_ucs2 0x01f1),(_ucs2 0x01f2),(_ucs2 0x01f3); +insert into t1 values (_ucs2 0x01f4),(_ucs2 0x01f5),(_ucs2 0x01f6),(_ucs2 0x01f7); +insert into t1 values (_ucs2 0x01f8),(_ucs2 0x01f9),(_ucs2 0x01fa),(_ucs2 0x01fb); +insert into t1 values (_ucs2 0x01fc),(_ucs2 0x01fd),(_ucs2 0x01fe),(_ucs2 0x01ff); + +# +# Latin Extended Additional: Latin extension for Vietnamese, 1EA0-1EF1 +# +INSERT INTO t1 VALUES (_ucs2 0x1EA0),(_ucs2 0x1EA1),(_ucs2 0x1EA2),(_ucs2 0x1EA3); +INSERT INTO t1 VALUES (_ucs2 0x1EA4),(_ucs2 0x1EA5),(_ucs2 0x1EA6),(_ucs2 0x1EA7); +INSERT INTO t1 VALUES (_ucs2 0x1EA8),(_ucs2 0x1EA9),(_ucs2 0x1EAA),(_ucs2 0x1EAB); +INSERT INTO t1 VALUES (_ucs2 0x1EAC),(_ucs2 0x1EAD),(_ucs2 0x1EAE),(_ucs2 0x1EAF); +INSERT INTO t1 VALUES (_ucs2 0x1EB0),(_ucs2 0x1EB1),(_ucs2 0x1EB2),(_ucs2 0x1EB3); +INSERT INTO t1 VALUES (_ucs2 0x1EB4),(_ucs2 0x1EB5),(_ucs2 0x1EB6),(_ucs2 0x1EB7); +INSERT INTO t1 VALUES (_ucs2 0x1EB8),(_ucs2 0x1EB9),(_ucs2 0x1EBA),(_ucs2 0x1EBB); +INSERT INTO t1 VALUES (_ucs2 0x1EBC),(_ucs2 0x1EBD),(_ucs2 0x1EBE),(_ucs2 0x1EBF); +INSERT INTO t1 VALUES (_ucs2 0x1EC0),(_ucs2 0x1EC1),(_ucs2 0x1EC2),(_ucs2 0x1EC3); +INSERT INTO t1 VALUES (_ucs2 0x1EC4),(_ucs2 0x1EC5),(_ucs2 0x1EC6),(_ucs2 0x1EC7); +INSERT INTO t1 VALUES (_ucs2 0x1EC8),(_ucs2 0x1EC9),(_ucs2 0x1ECA),(_ucs2 0x1ECB); +INSERT INTO t1 VALUES (_ucs2 0x1ECC),(_ucs2 0x1ECD),(_ucs2 0x1ECE),(_ucs2 0x1ECF); +INSERT INTO t1 VALUES (_ucs2 0x1ED0),(_ucs2 0x1ED1),(_ucs2 0x1ED2),(_ucs2 0x1ED3); +INSERT INTO t1 VALUES (_ucs2 0x1ED4),(_ucs2 0x1ED5),(_ucs2 0x1ED6),(_ucs2 0x1ED7); +INSERT INTO t1 VALUES (_ucs2 0x1ED8),(_ucs2 0x1ED9),(_ucs2 0x1EDA),(_ucs2 0x1EDB); +INSERT INTO t1 VALUES (_ucs2 0x1EDC),(_ucs2 0x1EDD),(_ucs2 0x1EDE),(_ucs2 0x1EDF); +INSERT INTO t1 VALUES (_ucs2 0x1EE0),(_ucs2 0x1EE1),(_ucs2 0x1EE2),(_ucs2 0x1EE3); +INSERT INTO t1 VALUES (_ucs2 0x1EE4),(_ucs2 0x1EE5),(_ucs2 0x1EE6),(_ucs2 0x1EE7); +INSERT INTO t1 VALUES (_ucs2 0x1EE8),(_ucs2 0x1EE9),(_ucs2 0x1EEA),(_ucs2 0x1EEB); +INSERT INTO t1 VALUES (_ucs2 0x1EEC),(_ucs2 0x1EED),(_ucs2 0x1EEE),(_ucs2 0x1EEF); +INSERT INTO t1 VALUES (_ucs2 0x1EF0),(_ucs2 0x1EF1); + +# +# Contractions used in some languages +# +insert into t1 values ('AA'),('Aa'),('aa'),('aA'); +insert into t1 values ('AE'),('Ae'),('ae'),('aE'); +insert into t1 values ('CH'),('Ch'),('ch'),('cH'); +insert into t1 values ('DZ'),('Dz'),('dz'),('dZ'); +insert into t1 values ('DŽ'),('Dž'),('dž'),('dŽ'); +insert into t1 values ('IJ'),('Ij'),('ij'),('iJ'); +insert into t1 values ('LJ'),('Lj'),('lj'),('lJ'); +insert into t1 values ('LL'),('Ll'),('ll'),('lL'); +insert into t1 values ('NJ'),('Nj'),('nj'),('nJ'); +insert into t1 values ('OE'),('Oe'),('oe'),('oE'); +insert into t1 values ('SS'),('Ss'),('ss'),('sS'); +insert into t1 values ('RR'),('Rr'),('rr'),('rR'); diff --git a/mysql-test/include/ctype_unicode_ws_bmp.inc b/mysql-test/include/ctype_unicode_ws_bmp.inc new file mode 100644 index 00000000..dcbd8894 --- /dev/null +++ b/mysql-test/include/ctype_unicode_ws_bmp.inc @@ -0,0 +1,29 @@ +--source include/have_utf32.inc +--source include/have_sequence.inc + +EXECUTE IMMEDIATE SFORMAT(' +CREATE VIEW v_bmp AS +SELECT + seq AS codepoint, + LPAD(HEX(seq),4,''0'') AS codepoint_hex4, + CONVERT(CHAR(seq USING utf32) USING {}) COLLATE {} AS c +FROM + seq_0_to_65535', @@character_set_connection, @@collation_connection); + +--disable_service_connection +SELECT COLLATION(c) FROM v_bmp LIMIT 1; + +SELECT HEX(codepoint) FROM v_bmp WHERE HEX(WEIGHT_STRING(c))='FFFD'; + +SELECT + SUM(codepoint_hex4=HEX(WEIGHT_STRING(c))) AS count_bmp_weight_is_codepoint, + SUM(codepoint_hex4<>HEX(WEIGHT_STRING(c))) AS count_bmp_weight_is_not_codepoint +FROM v_bmp; + +SELECT codepoint_hex4,HEX(WEIGHT_STRING(c)) +FROM v_bmp +WHERE codepoint_hex4<>HEX(WEIGHT_STRING(c)); + +--enable_service_connection + +DROP VIEW v_bmp; diff --git a/mysql-test/include/ctype_unicode_ws_supplementary.inc b/mysql-test/include/ctype_unicode_ws_supplementary.inc new file mode 100644 index 00000000..82273e8f --- /dev/null +++ b/mysql-test/include/ctype_unicode_ws_supplementary.inc @@ -0,0 +1,19 @@ +--source include/have_utf32.inc +--source include/have_sequence.inc + +EXECUTE IMMEDIATE SFORMAT(' +CREATE VIEW v_supplementary AS +SELECT + seq AS codepoint, + CONVERT(CHAR(seq USING utf32) USING {}) COLLATE {} AS c +FROM + seq_65536_to_1114111', @@character_set_connection, @@collation_connection); + +SELECT COLLATION(c) FROM v_supplementary LIMIT 1; + +SELECT + SUM(HEX(WEIGHT_STRING(c))<>'FFFD'), + SUM(HEX(WEIGHT_STRING(c))='FFFD') +FROM v_supplementary; + +DROP VIEW v_supplementary; diff --git a/mysql-test/include/ctype_utf8_ilseq.inc b/mysql-test/include/ctype_utf8_ilseq.inc new file mode 100644 index 00000000..35869466 --- /dev/null +++ b/mysql-test/include/ctype_utf8_ilseq.inc @@ -0,0 +1,133 @@ +# +# Compare a field to an utf8 string literal with illegal byte sequences +# + +--echo # +--echo # Start of ctype_utf8_ilseq.inc +--echo # + +--eval CREATE TABLE t1 ENGINE=$ENGINE AS SELECT REPEAT(' ', 60) AS ch LIMIT 0; +ALTER TABLE t1 + ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, + ADD KEY(ch); +SHOW CREATE TABLE t1; + +INSERT INTO t1 (ch) VALUES ('admin'),('admin1'); +SELECT ch FROM t1 WHERE ch='admin𝌆'; +EXPLAIN SELECT ch FROM t1 WHERE ch='admin𝌆'; +SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆'; +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆'; +DELETE FROM t1; +INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????'); +INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b'); +INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z'); +INSERT INTO t1 (ch) VALUES ('z'); +# LATIN SMALL LETTER A + LATIN CAPITAL LETTER E WITH GRAVE +INSERT INTO t1 (ch) VALUES (_utf8 0x61D080); +# LATIN SMALL LETTER A + ARMENIAN SMALL LETTER REH +INSERT INTO t1 (ch) VALUES (_utf8 0x61D680); + +SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; +SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; +--replace_column 9 # +EXPLAIN +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch; +--replace_column 9 # +EXPLAIN +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch; + +SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; +SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; +--replace_column 9 # +EXPLAIN +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch; +--replace_column 9 # +EXPLAIN +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch; + +SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; +SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; +--replace_column 9 # +EXPLAIN +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch; +--replace_column 9 # +EXPLAIN +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; +SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch; + +ALTER TABLE t1 DROP KEY ch; + +--echo # 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,''''); +PREPARE stmt FROM @query; +EXECUTE stmt; +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b'''); +PREPARE stmt FROM @query; +EXECUTE stmt; + +# +# Non-equality comparison currently work differently depending on collation: +# +# - utf8_general_ci falls back to memcmp() on bad byte +# - utf8_unicode_ci treats bad bytes greater than any valid character +# +# For example, these two characters: +# _utf8 0xD080 (U+00C8 LATIN CAPITAL LETTER E WITH GRAVE) +# _utf8 0xD680 (U+0580 ARMENIAN SMALL LETTER REH) +# +# will give different results (depending on collation) when compared +# to an incomplete byte sequence 0xD1 (mb2head not followed by mb2tail). +# +# For utf8_general_ci the result depends on the valid side: +# - 0xD080 is smaller than 0xD1, because 0xD0 < 0xD1 +# - 0xD680 is greater than 0xD1, because 0xD6 > 0xD1 +# +# For utf8_unicode_ci the result does not depend on the valid side: +# - 0xD080 is smaller than 0xD1, because 0xD1 is greater than any valid character +# - 0xD680 is smaller than 0xD1, because 0xD1 is greater than any valid character +# +# utf8_general_ci should be eventually fixed to treat bad bytes greater +# than any valid character, similar to utf8_unicode_ci. +# + +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch'); +PREPARE stmt FROM @query; +EXECUTE stmt; +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch'); +PREPARE stmt FROM @query; +EXECUTE stmt; + +--echo # 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch'); +PREPARE stmt FROM @query; +EXECUTE stmt; +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch'); +PREPARE stmt FROM @query; +EXECUTE stmt; + +--echo # 0x8F is a bad byte sequence (an mb2tail without mb2head) +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch'); +PREPARE stmt FROM @query; +EXECUTE stmt; +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch'); +PREPARE stmt FROM @query; +EXECUTE stmt; + +--echo # 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times) +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch'); +PREPARE stmt FROM @query; +EXECUTE stmt; +SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch'); +PREPARE stmt FROM @query; +EXECUTE stmt; + +DROP TABLE t1; + +--echo # +--echo # End of ctype_utf8_ilseq.inc +--echo # diff --git a/mysql-test/include/ctype_utf8_table.inc b/mysql-test/include/ctype_utf8_table.inc new file mode 100644 index 00000000..006b0352 --- /dev/null +++ b/mysql-test/include/ctype_utf8_table.inc @@ -0,0 +1,47 @@ +CREATE TABLE t1 (a CHAR(1)) CHARACTER SET utf8; +INSERT INTO t1 VALUES ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'); +INSERT INTO t1 VALUES ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F'); + +--disable_warnings +# +# Populate tables head and tail with values '00'-'FF' +# +CREATE TEMPORARY TABLE head AS SELECT concat(b1.a, b2.a) AS head FROM t1 b1, t1 b2; +CREATE TEMPORARY TABLE tail AS SELECT concat(b1.a, b2.a) AS tail FROM t1 b1, t1 b2; +CREATE TEMPORARY TABLE middle AS SELECT concat(b1.a, b2.a) AS middle FROM t1 b1, t1 b2; +DROP TABLE t1; + +CREATE TABLE t1 (a varchar(1)) CHARACTER SET utf8; + +# +# Populate single byte characters +# + +INSERT INTO t1 SELECT UNHEX(head) +FROM head WHERE (head BETWEEN '00' AND '7F') ORDER BY head; + +# +# Populate 2-byte byte characters: U+80..U+7FF: [C2-DF][80-BF] +# +INSERT INTO t1 +SELECT UNHEX(CONCAT(head,tail)) +FROM head, tail +WHERE (head BETWEEN 'C2' AND 'DF') AND (tail BETWEEN '80' AND 'BF') +ORDER BY head, tail; + + +# +# Populate 3-byte characters: U+800..U+FFFF: [E0-EF][80-BF][80-BF] +# excluding overlong [E0][80-9F][80-BF] +# +INSERT INTO t1 +SELECT UNHEX(CONCAT(head, middle, tail)) +FROM head, middle, tail +WHERE (head BETWEEN 'E0' AND 'EF') +AND (middle BETWEEN '80' AND 'BF') +AND (tail BETWEEN '80' AND 'BF') +AND NOT (head='E0' AND middle BETWEEN '80' AND '9F') +ORDER BY head, middle, tail; +--disable_warnings + +SELECT count(*) FROM t1; diff --git a/mysql-test/include/ctype_utf8mb3_uca_char.inc b/mysql-test/include/ctype_utf8mb3_uca_char.inc new file mode 100644 index 00000000..4540416a --- /dev/null +++ b/mysql-test/include/ctype_utf8mb3_uca_char.inc @@ -0,0 +1,54 @@ +--echo # +--echo # MDEV-30048 Prefix keys for CHAR work differently for MyISAM vs InnoDB +--echo # + +SET NAMES utf8mb3; + +# +# Engines have different conditions based on the column size +# determining when to use trailing space compressions in key values, +# so let's test different column sizes for better coverage. +# + + +# +# CHAR(10) +# + +CREATE TABLE t1 (a CHAR(10) COLLATE utf8mb3_unicode_nopad_ci, UNIQUE KEY(a)); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss'),('ß'); +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(10) COLLATE utf8mb3_unicode_nopad_ci, UNIQUE KEY(a(2))); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss'),('ß'); +DROP TABLE t1; + +# +# CHAR(120) +# + +CREATE TABLE t1 (a CHAR(120) COLLATE utf8mb3_unicode_nopad_ci, UNIQUE KEY(a)); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss'),('ß'); +DROP TABLE t1; + +CREATE TABLE t1 (a CHAR(120) COLLATE utf8mb3_unicode_nopad_ci, UNIQUE KEY(a(100))); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss'),('ß'); +DROP TABLE t1; + +--echo # +--echo # MDEV-30050 Inconsistent results of DISTINCT with NOPAD +--echo # + +CREATE TABLE t1 (c CHAR(100) COLLATE utf8mb3_unicode_nopad_ci); +SHOW CREATE TABLE t1; +INSERT INTO t1 VALUES ('ss'),('ß'); +SET big_tables=0; +SELECT DISTINCT c FROM t1; +SET big_tables=1; +SELECT DISTINCT c FROM t1; +DROP TABLE t1; +SET big_tables=DEFAULT; diff --git a/mysql-test/include/ctype_utf8mb4.inc b/mysql-test/include/ctype_utf8mb4.inc new file mode 100644 index 00000000..436b0f27 --- /dev/null +++ b/mysql-test/include/ctype_utf8mb4.inc @@ -0,0 +1,1859 @@ +# +# Tests with the utf8mb4 character set +# + +# Tests will be skipped for the view protocol because the view protocol uses +# an additional util connection and don't use for this nessesary configurations +# Also need to resolve MDEV-27871 +-- source include/no_view_protocol.inc + +--source include/default_optimizer_switch.inc +--disable_warnings +drop table if exists t1,t2; +--enable_warnings + +--echo # +--echo # Start of 5.5 tests +--echo # + +set names utf8mb4; + +select left(_utf8mb4 0xD0B0D0B1D0B2,1); +select right(_utf8mb4 0xD0B0D0B2D0B2,1); + +select locate('he','hello'); +select locate('he','hello',2); +select locate('lo','hello',2); +select locate('HE','hello'); +select locate('HE','hello',2); +select locate('LO','hello',2); +select locate('HE','hello' collate utf8mb4_bin); +select locate('HE','hello' collate utf8mb4_bin,2); +select locate('LO','hello' collate utf8mb4_bin,2); + +select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D0B1D0B2); +select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2); +select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2); +select locate(_utf8mb4 0xD091, _utf8mb4 0xD0B0D0B1D0B2 collate utf8mb4_bin); +select locate(_utf8mb4 0xD0B1, _utf8mb4 0xD0B0D091D0B2 collate utf8mb4_bin); + +select length(_utf8mb4 0xD0B1), bit_length(_utf8mb4 0xD0B1), char_length(_utf8mb4 0xD0B1); + +select 'a' like 'a'; +select 'A' like 'a'; +select 'A' like 'a' collate utf8mb4_bin; +select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD0B1,_utf8mb4 '%'); + +# Bug #6040: can't retrieve records with umlaut +# characters in case insensitive manner. +# Case insensitive search LIKE comparison +# was broken for multibyte characters: +select convert(_latin1'Gnter Andr' using utf8mb4) like CONVERT(_latin1'GNTER%' USING utf8mb4); +select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4); +select CONVERT(_koi8r'' USING utf8mb4) LIKE CONVERT(_koi8r'' USING utf8mb4); + +# +# Check the following: +# "a" == "a " +# "a\0" < "a" +# "a\0" < "a " + +SELECT 'a' = 'a '; +SELECT 'a\0' < 'a'; +SELECT 'a\0' < 'a '; +SELECT 'a\t' < 'a'; +SELECT 'a\t' < 'a '; + +# +# The same for binary collation +# +SELECT 'a' = 'a ' collate utf8mb4_bin; +SELECT 'a\0' < 'a' collate utf8mb4_bin; +SELECT 'a\0' < 'a ' collate utf8mb4_bin; +SELECT 'a\t' < 'a' collate utf8mb4_bin; +SELECT 'a\t' < 'a ' collate utf8mb4_bin; + +eval CREATE TABLE t1 (a char(10) character set utf8mb4 not null) ENGINE $engine; +INSERT INTO t1 VALUES ('a'),('a\0'),('a\t'),('a '); +--sorted_result +SELECT hex(a),STRCMP(a,'a'), STRCMP(a,'a ') FROM t1; +DROP TABLE t1; + +# +# Fix this, it should return 1: +# +#select _utf8mb4 0xD0B0D0B1D0B2 like concat(_utf8mb4'%',_utf8mb4 0xD091,_utf8mb4 '%'); +# + +# +# Bug 2367: INSERT() behaviour is different for different charsets. +# +select insert('txs',2,1,'hi'),insert('is ',4,0,'a'),insert('txxxxt',2,4,'es'); +select insert("aa",100,1,"b"),insert("aa",1,3,"b"); + +# +# LELF() didn't work well with utf8mb4 in some cases too. +# +select char_length(left(@a:='тест',5)), length(@a), @a; + + +# +# CREATE ... SELECT +# +eval create table t1 ENGINE $engine select date_format("2004-01-19 10:10:10", "%Y-%m-%d"); +show create table t1; +select * from t1; +drop table t1; + +# +# Bug#22646 LC_TIME_NAMES: Assignment to non-UTF8 target fails +# +set names utf8mb4; +set LC_TIME_NAMES='fr_FR'; +eval create table t1 (s1 char(20) character set latin1) engine $engine; +insert into t1 values (date_format('2004-02-02','%M')); +select hex(s1) from t1; +drop table t1; +eval create table t1 (s1 char(20) character set koi8r) engine $engine; +set LC_TIME_NAMES='ru_RU'; +insert into t1 values (date_format('2004-02-02','%M')); +insert into t1 values (date_format('2004-02-02','%b')); +insert into t1 values (date_format('2004-02-02','%W')); +insert into t1 values (date_format('2004-02-02','%a')); +--sorted_result +select hex(s1), s1 from t1; +drop table t1; +set LC_TIME_NAMES='en_US'; + + +# +# Bug #2366 Wrong utf8mb4 behaviour when data is truncated +# +set names koi8r; +eval create table t1 (s1 char(1) character set utf8mb4) engine $engine; +insert ignore into t1 values (_koi8r''); +select s1,hex(s1),char_length(s1),octet_length(s1) from t1; +drop table t1; + +if (!$is_heap) +{ +eval create table t1 (s1 tinytext character set utf8mb4) engine $engine; +} +if ($is_heap) +{ +eval create table t1 (s1 varchar(255) character set utf8mb4) engine $engine; +} +insert ignore into t1 select repeat('a',300); +insert ignore into t1 select repeat('',300); +insert ignore into t1 select repeat('a',300); +insert ignore into t1 select repeat('a',300); +insert ignore into t1 select repeat('',300); +--sorted_result +select hex(s1) from t1; +--sorted_result +select length(s1),char_length(s1) from t1; +drop table t1; + +if (!$is_heap) +{ +eval create table t1 (s1 text character set utf8mb4) engine $engine; +} +if ($is_heap) +{ +eval create table t1 (s1 varchar(255) character set utf8mb4) engine $engine; +} +insert ignore into t1 select repeat('a',66000); +insert ignore into t1 select repeat('',66000); +insert ignore into t1 select repeat('a',66000); +insert ignore into t1 select repeat('a',66000); +insert ignore into t1 select repeat('',66000); +--sorted_result +select length(s1),char_length(s1) from t1; +drop table t1; + +# +# Bug #2368 Multibyte charsets do not check that incoming data is well-formed +# +eval create table t1 (s1 char(10) character set utf8mb4) engine $engine; +insert ignore into t1 values (0x41FF); +select hex(s1) from t1; +drop table t1; + +eval create table t1 (s1 varchar(10) character set utf8mb4) engine $engine; +insert ignore into t1 values (0x41FF); +select hex(s1) from t1; +drop table t1; + +if (!$is_heap) +{ +eval create table t1 (s1 text character set utf8mb4) engine $engine; +insert ignore into t1 values (0x41FF); +select hex(s1) from t1; +drop table t1; +} + +# +# Bug 2699 +# UTF8 breaks primary keys for cols > 333 characters +# +if(!$is_heap) +{ +--error 0,ER_TOO_LONG_KEY +eval create table t1 (a text character set utf8mb4, primary key(a(371))) engine $engine; +show warnings; +drop table if exists t1; +} + +# +# Bug 2959 +# UTF8 charset breaks joins with mixed column/string constant +# +eval CREATE TABLE t1 ( a varchar(10) ) CHARACTER SET utf8mb4 ENGINE $engine; +INSERT INTO t1 VALUES ( 'test' ); +SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a; +SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = 'test' and b.a = 'test'; +SELECT a.a, b.a FROM t1 a, t1 b WHERE a.a = b.a and a.a = 'test'; +DROP TABLE t1; + +eval create table t1 (a char(255) character set utf8mb4) engine $engine; +insert into t1 values('b'),('b'); +select * from t1 where a = 'b'; +select * from t1 where a = 'b' and a = 'b'; +select * from t1 where a = 'b' and a != 'b'; +drop table t1; + +# +# Testing regexp +# +set names utf8mb4; +--source include/ctype_regex.inc +--source include/ctype_regex_utf8.inc + +# +# Bug #4555 +# ALTER TABLE crashes mysqld with enum column collated utf8mb4_unicode_ci +# +eval CREATE TABLE t1 (a enum ('Y', 'N') DEFAULT 'N' COLLATE utf8mb4_unicode_ci) ENGINE $engine; +ALTER TABLE t1 ADD COLUMN b CHAR(20); +DROP TABLE t1; + +# Customer Support Center issue # 3299 +# ENUM and SET multibyte fields computed their length wronly +# when converted into a char field +set names utf8mb4; +eval create table t1 (a enum('aaaa','проба') character set utf8mb4) engine $engine; +show create table t1; +insert into t1 values ('проба'); +select * from t1; +eval create table t2 engine $engine select ifnull(a,a) from t1; +show create table t2; +select * from t2; +drop table t1; +drop table t2; + +# +# Bug 4521: unique key prefix interacts poorly with utf8mb4 +# MYISAM: keys with prefix compression, case insensitive collation. +# +eval create table t1 (c varchar(30) character set utf8mb4, unique(c(10))) engine $engine; +insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z'); +insert into t1 values ('aaaaaaaaaa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaaaaaaaaaa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaaaaaaaaaaa'); +insert into t1 values (repeat('b',20)); +select c c1 from t1 where c='1'; +select c c2 from t1 where c='2'; +select c c3 from t1 where c='3'; +select c cx from t1 where c='x'; +select c cy from t1 where c='y'; +select c cz from t1 where c='z'; +select c ca10 from t1 where c='aaaaaaaaaa'; +select c cb20 from t1 where c=repeat('b',20); +drop table t1; + +# +# Bug 4521: unique key prefix interacts poorly with utf8mb4 +# InnoDB: keys with prefix compression, case insensitive collation. +# +--disable_warnings +eval create table t1 (c varchar(30) character set utf8mb4, unique(c(10))) engine=$engine; +--enable_warnings +insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z'); +insert into t1 values ('aaaaaaaaaa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaaaaaaaaaa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaaaaaaaaaaa'); +insert into t1 values (repeat('b',20)); +select c c1 from t1 where c='1'; +select c c2 from t1 where c='2'; +select c c3 from t1 where c='3'; +select c cx from t1 where c='x'; +select c cy from t1 where c='y'; +select c cz from t1 where c='z'; +select c ca10 from t1 where c='aaaaaaaaaa'; +select c cb20 from t1 where c=repeat('b',20); +drop table t1; + +# +# Bug 4521: unique key prefix interacts poorly with utf8mb4 +# MYISAM: fixed length keys, case insensitive collation +# +eval create table t1 (c char(3) character set utf8mb4, unique (c(2))) engine $engine; +insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z'); +insert into t1 values ('a'); +insert into t1 values ('aa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaa'); +insert into t1 values ('b'); +insert into t1 values ('bb'); +--error ER_DUP_ENTRY +insert into t1 values ('bbb'); +insert into t1 values ('а'); +insert into t1 values ('аа'); +--error ER_DUP_ENTRY +insert into t1 values ('ааа'); +insert into t1 values ('б'); +insert into t1 values ('бб'); +--error ER_DUP_ENTRY +insert into t1 values ('ббб'); +insert into t1 values ('ꪪ'); +insert into t1 values ('ꪪꪪ'); +--error ER_DUP_ENTRY +insert into t1 values ('ꪪꪪꪪ'); +drop table t1; +# +# Bug 4521: unique key prefix interacts poorly with utf8mb4 +# InnoDB: fixed length keys, case insensitive collation +# +--disable_warnings +eval create table t1 (c char(3) character set utf8mb4, unique (c(2))) engine=$engine; +--enable_warnings +insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z'); +insert into t1 values ('a'); +insert into t1 values ('aa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaa'); +insert into t1 values ('b'); +insert into t1 values ('bb'); +--error ER_DUP_ENTRY +insert into t1 values ('bbb'); +insert into t1 values ('а'); +insert into t1 values ('аа'); +--error ER_DUP_ENTRY +insert into t1 values ('ааа'); +insert into t1 values ('б'); +insert into t1 values ('бб'); +--error ER_DUP_ENTRY +insert into t1 values ('ббб'); +insert into t1 values ('ꪪ'); +insert into t1 values ('ꪪꪪ'); +--error ER_DUP_ENTRY +insert into t1 values ('ꪪꪪꪪ'); +drop table t1; +# +# Bug 4531: unique key prefix interacts poorly with utf8mb4 +# Check HEAP+HASH, case insensitive collation +# +eval create table t1 ( +c char(10) character set utf8mb4, +unique key a using hash (c(1)) +) engine=$engine; +show create table t1; +insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); +--error ER_DUP_ENTRY +insert into t1 values ('aa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaa'); +insert into t1 values ('б'); +--error ER_DUP_ENTRY +insert into t1 values ('бб'); +--error ER_DUP_ENTRY +insert into t1 values ('ббб'); +select c as c_all from t1 order by c; +select c as c_a from t1 where c='a'; +select c as c_a from t1 where c='б'; +drop table t1; + +# +# Bug 4531: unique key prefix interacts poorly with utf8mb4 +# Check HEAP+BTREE, case insensitive collation +# +eval create table t1 ( +c char(10) character set utf8mb4, +unique key a using btree (c(1)) +) engine=$engine; +show create table t1; +insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); +--error ER_DUP_ENTRY +insert into t1 values ('aa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaa'); +insert into t1 values ('б'); +--error ER_DUP_ENTRY +insert into t1 values ('бб'); +--error ER_DUP_ENTRY +insert into t1 values ('ббб'); +select c as c_all from t1 order by c; +select c as c_a from t1 where c='a'; +select c as c_a from t1 where c='б'; +drop table t1; + +# +# Bug 4531: unique key prefix interacts poorly with utf8mb4 +# Check BDB, case insensitive collation +# +--disable_warnings +eval create table t1 ( +c char(10) character set utf8mb4, +unique key a (c(1)) +) engine=$engine; +--enable_warnings +insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); +--error ER_DUP_ENTRY +insert into t1 values ('aa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaa'); +insert into t1 values ('б'); +--error ER_DUP_ENTRY +insert into t1 values ('бб'); +--error ER_DUP_ENTRY +insert into t1 values ('ббб'); +select c as c_all from t1 order by c; +select c as c_a from t1 where c='a'; +select c as c_a from t1 where c='б'; +drop table t1; + +# +# Bug 4521: unique key prefix interacts poorly with utf8mb4 +# MYISAM: keys with prefix compression, binary collation. +# +eval create table t1 (c varchar(30) character set utf8mb4 collate utf8mb4_bin, unique(c(10))) engine $engine; +insert into t1 values ('1'),('2'),('3'),('x'),('y'),('z'); +insert into t1 values ('aaaaaaaaaa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaaaaaaaaaa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaaaaaaaaaaa'); +insert into t1 values (repeat('b',20)); +select c c1 from t1 where c='1'; +select c c2 from t1 where c='2'; +select c c3 from t1 where c='3'; +select c cx from t1 where c='x'; +select c cy from t1 where c='y'; +select c cz from t1 where c='z'; +select c ca10 from t1 where c='aaaaaaaaaa'; +select c cb20 from t1 where c=repeat('b',20); +drop table t1; + +# +# Bug 4521: unique key prefix interacts poorly with utf8mb4 +# MYISAM: fixed length keys, binary collation +# +eval create table t1 (c char(3) character set utf8mb4 collate utf8mb4_bin, unique (c(2))) engine $engine; +insert into t1 values ('1'),('2'),('3'),('4'),('x'),('y'),('z'); +insert into t1 values ('a'); +insert into t1 values ('aa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaa'); +insert into t1 values ('b'); +insert into t1 values ('bb'); +--error ER_DUP_ENTRY +insert into t1 values ('bbb'); +insert into t1 values ('а'); +insert into t1 values ('аа'); +--error ER_DUP_ENTRY +insert into t1 values ('ааа'); +insert into t1 values ('б'); +insert into t1 values ('бб'); +--error ER_DUP_ENTRY +insert into t1 values ('ббб'); +insert into t1 values ('ꪪ'); +insert into t1 values ('ꪪꪪ'); +--error ER_DUP_ENTRY +insert into t1 values ('ꪪꪪꪪ'); +drop table t1; + +# +# Bug 4531: unique key prefix interacts poorly with utf8mb4 +# Check HEAP+HASH, binary collation +# +eval create table t1 ( +c char(10) character set utf8mb4 collate utf8mb4_bin, +unique key a using hash (c(1)) +) engine=$engine; +show create table t1; +insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); +--error ER_DUP_ENTRY +insert into t1 values ('aa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaa'); +insert into t1 values ('б'); +--error ER_DUP_ENTRY +insert into t1 values ('бб'); +--error ER_DUP_ENTRY +insert into t1 values ('ббб'); +select c as c_all from t1 order by c; +select c as c_a from t1 where c='a'; +select c as c_a from t1 where c='б'; +drop table t1; + +# +# Bug 4531: unique key prefix interacts poorly with utf8mb4 +# Check HEAP+BTREE, binary collation +# +eval create table t1 ( +c char(10) character set utf8mb4 collate utf8mb4_bin, +unique key a using btree (c(1)) +) engine=$engine; +show create table t1; +insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); +--error ER_DUP_ENTRY +insert into t1 values ('aa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaa'); +insert into t1 values ('б'); +--error ER_DUP_ENTRY +insert into t1 values ('бб'); +--error ER_DUP_ENTRY +insert into t1 values ('ббб'); +select c as c_all from t1 order by c; +select c as c_a from t1 where c='a'; +select c as c_a from t1 where c='б'; +drop table t1; + +# +# Bug 4531: unique key prefix interacts poorly with utf8mb4 +# Check BDB, binary collation +# +--disable_warnings +eval create table t1 ( +c char(10) character set utf8mb4 collate utf8mb4_bin, +unique key a (c(1)) +) engine=$engine; +--enable_warnings +insert into t1 values ('a'),('b'),('c'),('d'),('e'),('f'); +--error ER_DUP_ENTRY +insert into t1 values ('aa'); +--error ER_DUP_ENTRY +insert into t1 values ('aaa'); +insert into t1 values ('б'); +--error ER_DUP_ENTRY +insert into t1 values ('бб'); +--error ER_DUP_ENTRY +insert into t1 values ('ббб'); +select c as c_all from t1 order by c; +select c as c_a from t1 where c='a'; +select c as c_a from t1 where c='б'; +drop table t1; + + +# Bug#4594: column index make = failed for gbk, but like works +# Check MYISAM +# +eval create table t1 ( + str varchar(255) character set utf8mb4 not null, + key str (str(2)) +) engine=$engine; +INSERT INTO t1 VALUES ('str'); +INSERT INTO t1 VALUES ('str2'); +select * from t1 where str='str'; +drop table t1; + +# Bug#4594: column index make = failed for gbk, but like works +# Check InnoDB +# +--disable_warnings +eval create table t1 ( + str varchar(255) character set utf8mb4 not null, + key str (str(2)) +) engine=$engine; +--enable_warnings +INSERT INTO t1 VALUES ('str'); +INSERT INTO t1 VALUES ('str2'); +select * from t1 where str='str'; +drop table t1; + +# the same for HEAP+BTREE +# + +eval create table t1 ( + str varchar(255) character set utf8mb4 not null, + key str using btree (str(2)) +) engine=$engine; +INSERT INTO t1 VALUES ('str'); +INSERT INTO t1 VALUES ('str2'); +select * from t1 where str='str'; +drop table t1; + +# the same for HEAP+HASH +# + +eval create table t1 ( + str varchar(255) character set utf8mb4 not null, + key str using hash (str(2)) +) engine=$engine; +INSERT INTO t1 VALUES ('str'); +INSERT INTO t1 VALUES ('str2'); +select * from t1 where str='str'; +drop table t1; + +# the same for BDB +# + +#hh +--disable_warnings +eval create table t1 ( + str varchar(255) character set utf8mb4 not null, + key str (str(2)) +) engine= $engine; +--enable_warnings +INSERT INTO t1 VALUES ('str'); +INSERT INTO t1 VALUES ('str2'); +select * from t1 where str='str'; +drop table t1; + +# +# Bug #5397: Crash with varchar binary and LIKE +# +eval CREATE TABLE t1 (a varchar(32) BINARY) CHARACTER SET utf8mb4 ENGINE $engine; +INSERT INTO t1 VALUES ('test'); +SELECT a FROM t1 WHERE a LIKE '%te'; +DROP TABLE t1; + +# +# Bug #5723: length(<varchar utf8mb4 field>) returns varying results +# +--disable_warnings +SET NAMES utf8mb4; +--disable_warnings +eval CREATE TABLE t1 ( + subject varchar(255) character set utf8mb4 collate utf8mb4_unicode_ci, + p varchar(15) character set utf8mb4 +) ENGINE= $engine DEFAULT CHARSET=latin1; +--enable_warnings +INSERT INTO t1 VALUES ('谷川俊二と申しますが、インターネット予約の会員登録をしましたところ、メールアドレスを間違えてしまい会員IDが受け取ることが出来ませんでした。間違えアドレスはtani-shun@n.vodafone.ne.jpを書き込みました。どうすればよいですか? その他、住所等は間違えありません。連絡ください。よろしくお願いします。m(__)m','040312-000057'); +INSERT INTO t1 VALUES ('aaa','bbb'); +--sorted_result +SELECT length(subject) FROM t1; +SELECT length(subject) FROM t1 ORDER BY 1; +DROP TABLE t1; + +# +# Bug #5832 SELECT doesn't return records in some cases +# +if (!$is_heap) +{ +eval CREATE TABLE t1 ( + id int unsigned NOT NULL auto_increment, + list_id smallint unsigned NOT NULL, + term TEXT NOT NULL, + PRIMARY KEY(id), + INDEX(list_id, term(4)) +) ENGINE=$engine CHARSET=utf8mb4; +INSERT INTO t1 SET list_id = 1, term = "letterc"; +INSERT INTO t1 SET list_id = 1, term = "letterb"; +INSERT INTO t1 SET list_id = 1, term = "lettera"; +INSERT INTO t1 SET list_id = 1, term = "letterd"; +SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterc"); +SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterb"); +SELECT id FROM t1 WHERE (list_id = 1) AND (term = "lettera"); +SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterd"); +DROP TABLE t1; + +# +# Bug #6043 erratic searching for diacriticals in indexed MyISAM UTF-8 table +# +SET NAMES latin1; +eval CREATE TABLE t1 ( + id int unsigned NOT NULL auto_increment, + list_id smallint unsigned NOT NULL, + term text NOT NULL, + PRIMARY KEY(id), + INDEX(list_id, term(19)) +) ENGINE=$engine CHARSET=utf8mb4; +INSERT INTO t1 set list_id = 1, term = "testtest"; +INSERT INTO t1 set list_id = 1, term = "testetest"; +INSERT INTO t1 set list_id = 1, term = "testtest"; +SELECT id, term FROM t1 where (list_id = 1) AND (term = "testtest"); +SELECT id, term FROM t1 where (list_id = 1) AND (term = "testetest"); +SELECT id, term FROM t1 where (list_id = 1) AND (term = "testtest"); +DROP TABLE t1; +} + +# +# Bug #6019 SELECT tries to use too short prefix index on utf8mb4 data +# +set names utf8mb4; +--disable_warnings +eval create table t1 ( + a int primary key, + b varchar(6), + index b3(b(3)) +) engine=$engine character set=utf8mb4; +--enable_warnings +insert into t1 values(1,'foo'),(2,'foobar'); +--sorted_result +select * from t1 where b like 'foob%'; +--disable_query_log +set @ctype_save_sql_mode=@@sql_mode; +set sql_mode=""; +--enable_query_log +--disable_warnings +alter table t1 engine=innodb; +--enable_warnings +--disable_query_log +set sql_mode=@ctype_save_sql_mode; +--enable_query_log +--sorted_result +select * from t1 where b like 'foob%'; +drop table t1; + +# +# Test for calculate_interval_lengths() function +# +eval create table t1 ( + a enum('петя','вася','анюта') character set utf8mb4 not null default 'анюта', + b set('петя','вася','анюта') character set utf8mb4 not null default 'анюта' +) engine $engine; +eval create table t2 engine $engine select concat(a,_utf8mb4'') as a, concat(b,_utf8mb4'')as b from t1; +show create table t2; +drop table t2; +drop table t1; + +# +# Bug #6787 LIKE not working properly with _ and utf8mb4 data +# +select 'c' like '\_' as want0; + +# +# SUBSTR with negative offset didn't work with multi-byte strings +# +SELECT SUBSTR('вася',-2); + + +# +# Bug #7730 Server crash using soundex on an utf8mb4 table +# +eval create table t1 (id integer, a varchar(100) character set utf8mb4 collate utf8mb4_unicode_ci) engine $engine; +insert into t1 values (1, 'Test'); +select * from t1 where soundex(a) = soundex('Test'); +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(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB); +select hex(soundex(_utf8mb4 0xE99885E8A788E99A8FE697B6E69BB4E696B0E79A84E696B0E997BB)); +select soundex(_utf8mb4 0xD091D092D093); +select hex(soundex(_utf8mb4 0xD091D092D093)); + + +SET collation_connection='utf8mb4_general_ci'; +-- source include/ctype_filesort.inc +-- source include/ctype_like_escape.inc +-- source include/ctype_german.inc +SET collation_connection='utf8mb4_bin'; +-- source include/ctype_filesort.inc +-- source include/ctype_like_escape.inc + +# +# Bug #7874 CONCAT() gives wrong results mixing +# latin1 field and utf8mb4 string literals +# +eval CREATE TABLE t1 ( + user varchar(255) NOT NULL default '' +) ENGINE=$engine DEFAULT CHARSET=latin1; +INSERT INTO t1 VALUES ('one'),('two'); +SELECT CHARSET('a'); +--sorted_result +SELECT user, CONCAT('<', user, '>') AS c FROM t1; +DROP TABLE t1; + +# +# Bug#8785 +# the same problem with the above, but with nested CONCATs +# +eval create table t1 (f1 varchar(1) not null) default charset utf8mb4 engine $engine; +insert into t1 values (''), (''); +select concat(concat(_latin1'->',f1),_latin1'<-') from t1; +drop table t1; + +# +# Bug#8385: utf8mb4_general_ci treats Cyrillic letters I and SHORT I as the same +# +select convert(_koi8r'' using utf8mb4) < convert(_koi8r'' using utf8mb4); + +# +# Bugs#5980: NULL requires a characterset in a union +# +set names latin1; +eval create table t1 (a varchar(10)) character set utf8mb4 engine $engine; +insert into t1 values ('test'); +select ifnull(a,'') from t1; +drop table t1; +select repeat(_utf8mb4'+',3) as h union select NULL; +select ifnull(NULL, _utf8mb4'string'); + +# +# Bug#9509 Optimizer: wrong result after AND with comparisons +# +set names utf8mb4; +eval create table t1 (s1 char(5) character set utf8mb4 collate utf8mb4_lithuanian_ci) engine $engine; +insert into t1 values ('I'),('K'),('Y'); +--sorted_result +select * from t1 where s1 < 'K' and s1 = 'Y'; +--sorted_result +select * from t1 where 'K' > s1 and s1 = 'Y'; +drop table t1; + +eval create table t1 (s1 char(5) character set utf8mb4 collate utf8mb4_czech_ci) engine $engine; +insert into t1 values ('c'),('d'),('h'),('ch'),('CH'),('cH'),('Ch'),('i'); +--sorted_result +select * from t1 where s1 > 'd' and s1 = 'CH'; +--sorted_result +select * from t1 where 'd' < s1 and s1 = 'CH'; +--sorted_result +select * from t1 where s1 = 'cH' and s1 <> 'ch'; +--sorted_result +select * from t1 where 'cH' = s1 and s1 <> 'ch'; +drop table t1; + +# +# Bug#10714: Inserting double value into utf8mb4 column crashes server +# +eval create table t1 (a varchar(255)) default character set utf8mb4 engine $engine; +insert into t1 values (1.0); +drop table t1; + +# +# Bug#10253 compound index length and utf8mb4 char set +# produces invalid query results +# +eval create table t1 ( + id int not null, + city varchar(20) not null, + key (city(7),id) +) character set=utf8mb4 engine $engine; +insert into t1 values (1,'Durban North'); +insert into t1 values (2,'Durban'); +select * from t1 where city = 'Durban'; +select * from t1 where city = 'Durban '; +drop table t1; + +# +# Bug #11819 CREATE TABLE with a SET DEFAULT 0 and UTF8 crashes server. +# +--error 1067 +eval create table t1 (x set('A', 'B') default 0) character set utf8mb4 engine $engine; +--error 1067 +eval create table t1 (x enum('A', 'B') default 0) character set utf8mb4 engine $engine; + + +# +# Test for bug #11167: join for utf8mb4 varchar value longer than 255 bytes +# + +SET NAMES UTF8; + +eval CREATE TABLE t1 ( + `id` int(20) NOT NULL auto_increment, + `country` varchar(100) NOT NULL default '', + `shortcode` varchar(100) NOT NULL default '', + `operator` varchar(100) NOT NULL default '', + `momid` varchar(30) NOT NULL default '', + `keyword` varchar(160) NOT NULL default '', + `content` varchar(160) NOT NULL default '', + `second_token` varchar(160) default NULL, + `gateway_id` int(11) NOT NULL default '0', + `created` datetime NOT NULL default '0000-00-00 00:00:00', + `msisdn` varchar(15) NOT NULL default '', + PRIMARY KEY (`id`), + UNIQUE KEY `MSCCSPK_20030521130957121` (`momid`), + KEY `IX_mobile_originated_message_keyword` (`keyword`), + KEY `IX_mobile_originated_message_created` (`created`), + KEY `IX_mobile_originated_message_support` (`msisdn`,`momid`,`keyword`,`gateway_id`,`created`) +) ENGINE=$engine DEFAULT CHARSET=utf8mb4; + +INSERT INTO t1 VALUES +(1,'blah','464','aaa','fkc1c9ilc20x0hgae7lx6j09','ERR','ERR Имри.Афимим.Аеимимримдмримрмрирор имримримримр имридм ирбднримрфмририримрфмфмим.Ад.Д имдимримрад.Адимримримрмдиримримримр м.Дадимфшьмримд им.Адимимрн имадми','ИМРИ.АФИМИМ.АЕИМИМРИМДМРИМРМРИРОР',3,'2005-06-01 17:30:43','1234567890'), +(2,'blah','464','aaa','haxpl2ilc20x00bj4tt2m5ti','11','11 g','G',3,'2005-06-02 22:43:10','1234567890'); + +--disable_warnings +eval CREATE TABLE t2 ( + `msisdn` varchar(15) NOT NULL default '', + `operator_id` int(11) NOT NULL default '0', + `created` datetime NOT NULL default '0000-00-00 00:00:00', + UNIQUE KEY `PK_user` (`msisdn`) +) ENGINE=$engine DEFAULT CHARSET=utf8mb4; +--enable_warnings + +INSERT INTO t2 VALUES ('1234567890',2,'2005-05-24 13:53:25'); + +SELECT content, t2.msisdn FROM t1, t2 WHERE t1.msisdn = '1234567890'; + +DROP TABLE t1,t2; + +# +# Bug#11591: CHAR column with utf8mb4 does not work properly +# (more chars than expected) +# +eval create table t1 (a char(20) character set utf8mb4) engine $engine; +insert into t1 values ('123456'),('андрей'); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +alter table t1 modify a char(2) character set utf8mb4; +select char_length(a), length(a), a from t1 order by a; +drop table t1; + +# +# Bugs#12611 +# ESCAPE + LIKE do not work when the escape char is a multibyte one +# +set names utf8mb4; +select 'andre%' like 'andreñ%' escape 'ñ'; + +# +# Bugs#11754: SET NAMES utf8mb4 followed by SELECT "A\\" LIKE "A\\" returns 0 +# +set names utf8mb4; +select 'a\\' like 'a\\'; +select 'aa\\' like 'a%\\'; + +eval create table t1 (a char(10), key(a)) character set utf8mb4 engine $engine; +insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test"); +--sorted_result +select * from t1 where a like "abc%"; +--sorted_result +select * from t1 where a like concat("abc","%"); +--sorted_result +select * from t1 where a like "ABC%"; +select * from t1 where a like "test%"; +select * from t1 where a like "te_t"; +--sorted_result +select * from t1 where a like "%a%"; +--sorted_result +select * from t1 where a like "%abcd%"; +select * from t1 where a like "%abc\d%"; +drop table t1; + + +# +# Bug#9557 MyISAM utf8mb4 table crash +# +eval CREATE TABLE t1 ( + a varchar(255) NOT NULL default '', + KEY a (a) +) ENGINE=$engine DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci; +insert into t1 values (_utf8mb4 0xe880bd); +insert into t1 values (_utf8mb4 0x5b); +--sorted_result +select hex(a) from t1; +drop table t1; + +# +# Bug#13751 find_in_set: Illegal mix of collations +# +set names 'latin1'; +eval create table t1 (a varchar(255)) default charset=utf8mb4 engine $engine; +select * from t1 where find_in_set('-1', a); +drop table t1; + +# +# Bug#13233: select distinct char(column) fails with utf8mb4 +# +eval create table t1 (a int) engine $engine; +insert into t1 values (48),(49),(50); +set names utf8mb4; +--sorted_result +select distinct char(a) from t1; +drop table t1; + +if (!$is_heap) +{ +# +# Bug#15581: COALESCE function truncates mutli-byte TINYTEXT values +# +eval CREATE TABLE t1 (t TINYTEXT CHARACTER SET utf8mb4) ENGINE $engine; +INSERT INTO t1 VALUES(REPEAT('a', 100)); +eval CREATE TEMPORARY TABLE t2 ENGINE $engine SELECT COALESCE(t) AS bug FROM t1; +SELECT LENGTH(bug) FROM t2; +DROP TABLE t2; +DROP TABLE t1; +} + +# +# Bug#17313: N'xxx' and _utf8mb4'xxx' are not equivalent +# +eval CREATE TABLE t1 (item varchar(255)) default character set utf8mb4 ENGINE $engine; +INSERT INTO t1 VALUES (N'\\'); +INSERT INTO t1 VALUES (_utf8mb4'\\'); +INSERT INTO t1 VALUES (N'Cote d\'Ivoire'); +INSERT INTO t1 VALUES (_utf8mb4'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 +# + +SET NAMES utf8mb4; +DROP TABLE IF EXISTS t1; +eval CREATE TABLE t1(a VARCHAR(255), KEY(a)) ENGINE=$engine DEFAULT CHARSET=utf8mb4; +INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'); +INSERT INTO t1 VALUES('uu'); +check table t1; +INSERT INTO t1 VALUES('uU'); +check table t1; +INSERT INTO t1 VALUES('uu'); +check table t1; +INSERT INTO t1 VALUES('uuABC'); +check table t1; +INSERT INTO t1 VALUES('UuABC'); +check table t1; +INSERT INTO t1 VALUES('uuABC'); +check table t1; +alter table t1 add b int; +INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1); +INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',2); +delete from t1 where b=1; +INSERT INTO t1 VALUES('UUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1); +check table t1; +INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3); +INSERT INTO t1 VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',4); +delete from t1 where b=3; +INSERT INTO t1 VALUES('uUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3); +check table t1; +drop table t1; + +# +# Bug#20471 LIKE search fails with indexed utf8mb4 char column +# +set names utf8mb4; +eval create table t1 (s1 char(5) character set utf8mb4) engine $engine; +insert into t1 values +('a'),('b'),(null),('ペテルグル'),('ü'),('Y'); +create index it1 on t1 (s1); +select s1 as before_delete_general_ci from t1 where s1 like 'ペテ%'; +delete from t1 where s1 = 'Y'; +select s1 as after_delete_general_ci from t1 where s1 like 'ペテ%'; +drop table t1; + +set names utf8mb4; +eval create table t1 (s1 char(5) character set utf8mb4 collate utf8mb4_unicode_ci) engine $engine; +insert into t1 values +('a'),('b'),(null),('ペテルグル'),('ü'),('Y'); +create index it1 on t1 (s1); +select s1 as before_delete_unicode_ci from t1 where s1 like 'ペテ%'; +delete from t1 where s1 = 'Y'; +select s1 as after_delete_unicode_ci from t1 where s1 like 'ペテ%'; +drop table t1; + +set names utf8mb4; +eval create table t1 (s1 char(5) character set utf8mb4 collate utf8mb4_bin) engine $engine; +insert into t1 values +('a'),('b'),(null),('ペテルグル'),('ü'),('Y'); +create index it1 on t1 (s1); +select s1 as before_delete_bin from t1 where s1 like 'ペテ%'; +delete from t1 where s1 = 'Y'; +select s1 as after_delete_bin from t1 where s1 like 'ペテ%'; +drop table t1; + +# additional tests from duplicate bug#20744 MySQL return no result + +set names utf8mb4; +--disable_warnings +eval create table t1 (a varchar(30) not null primary key) +engine=$engine default character set utf8mb4 collate utf8mb4_general_ci; +--enable_warnings +insert into t1 values ('あいうえおかきくけこさしすせそ'); +insert into t1 values ('さしすせそかきくけこあいうえお'); +select a as gci1 from t1 where a like 'さしすせそかきくけこあいうえお%'; +select a as gci2 from t1 where a like 'あいうえおかきくけこさしすせそ'; +drop table t1; + +set names utf8mb4; +--disable_warnings +eval create table t1 (a varchar(30) not null primary key) +engine=$engine default character set utf8mb4 collate utf8mb4_unicode_ci; +--enable_warnings +insert into t1 values ('あいうえおかきくけこさしすせそ'); +insert into t1 values ('さしすせそかきくけこあいうえお'); +select a as uci1 from t1 where a like 'さしすせそかきくけこあいうえお%'; +select a as uci2 from t1 where a like 'あいうえおかきくけこさしすせそ'; +drop table t1; + +set names utf8mb4; +--disable_warnings +eval create table t1 (a varchar(30) not null primary key) +engine=$engine default character set utf8mb4 collate utf8mb4_bin; +--enable_warnings +insert into t1 values ('あいうえおかきくけこさしすせそ'); +insert into t1 values ('さしすせそかきくけこあいうえお'); +select a as bin1 from t1 where a like 'さしすせそかきくけこあいうえお%'; +select a as bin2 from t1 where a like 'あいうえおかきくけこさしすせそ'; +drop table t1; + + + +# +# Bug#14896: Comparison with a key in a partial index over mb chararacter field +# + +SET NAMES utf8mb4; +eval CREATE TABLE t1 (id int PRIMARY KEY, + a varchar(16) collate utf8mb4_unicode_ci NOT NULL default '', + b int, + f varchar(128) default 'XXX', + INDEX (a(4)) +) ENGINE=$engine DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; +INSERT INTO t1(id, a, b) VALUES + (1, 'cccc', 50), (2, 'cccc', 70), (3, 'cccc', 30), + (4, 'cccc', 30), (5, 'cccc', 20), (6, 'bbbbbb', 40), + (7, 'dddd', 30), (8, 'aaaa', 10), (9, 'aaaa', 50), + (10, 'eeeee', 40), (11, 'bbbbbb', 60); + +--sorted_result +SELECT id, a, b FROM t1; + +--sorted_result +SELECT id, a, b FROM t1 WHERE a BETWEEN 'aaaa' AND 'bbbbbb'; + +--sorted_result +SELECT id, a FROM t1 WHERE a='bbbbbb'; +SELECT id, a FROM t1 WHERE a='bbbbbb' ORDER BY b; + +DROP TABLE t1; + +# +# Bug#16674: LIKE predicate for a utf8mb4 character set column +# + +SET NAMES utf8mb4; + +eval CREATE TABLE t1 ( + a CHAR(13) DEFAULT '', + INDEX(a) +) ENGINE=$engine DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +INSERT INTO t1 VALUES + ('Käli Käli 2-4'), ('Käli Käli 2-4'), + ('Käli Käli 2+4'), ('Käli Käli 2+4'), + ('Käli Käli 2-6'), ('Käli Käli 2-6'); +INSERT INTO t1 SELECT * FROM t1; + +eval CREATE TABLE t2 ( + a CHAR(13) DEFAULT '', + INDEX(a) +) ENGINE=$engine DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; + +INSERT INTO t2 VALUES + ('Kali Kali 2-4'), ('Kali Kali 2-4'), + ('Kali Kali 2+4'), ('Kali Kali 2+4'), + ('Kali Kali 2-6'), ('Kali Kali 2-6'); +INSERT INTO t2 SELECT * FROM t2; + +SELECT a FROM t1 WHERE a LIKE 'Käli Käli 2+4'; +SELECT a FROM t2 WHERE a LIKE 'Kali Kali 2+4'; + +EXPLAIN SELECT a FROM t1 WHERE a LIKE 'Käli Käli 2+4'; +EXPLAIN SELECT a FROM t1 WHERE a = 'Käli Käli 2+4'; +EXPLAIN SELECT a FROM t2 WHERE a LIKE 'Kali Kali 2+4'; +EXPLAIN SELECT a FROM t2 WHERE a = 'Kali Kali 2+4'; + +DROP TABLE t1,t2; + +eval CREATE TABLE t1 ( + a char(255) DEFAULT '', + KEY(a(10)) +) ENGINE=$engine DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +INSERT INTO t1 VALUES ('Käli Käli 2-4'); +SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%'; +INSERT INTO t1 VALUES ('Käli Käli 2-4'); +SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%'; +DROP TABLE t1; + +eval CREATE TABLE t1 ( + a char(255) DEFAULT '' +) ENGINE=$engine DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; +INSERT INTO t1 VALUES ('Käli Käli 2-4'); +INSERT INTO t1 VALUES ('Käli Käli 2-4'); +SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%'; +ALTER TABLE t1 ADD KEY (a(10)); +SELECT * FROM t1 WHERE a LIKE 'Käli Käli 2%'; +DROP TABLE t1; + +# +# Bug#18359: LIKE predicate for a 'utf8mb4' text column with a partial index +# (see bug #16674 as well) +# + +SET NAMES latin2; + +if (!$is_heap) +{ +eval CREATE TABLE t1 ( + id int(11) NOT NULL default '0', + tid int(11) NOT NULL default '0', + val text NOT NULL, + INDEX idx(tid, val(10)) +) ENGINE=$engine DEFAULT CHARSET=utf8mb4; + +INSERT INTO t1 VALUES + (40988,72,'VOLN ADSL'),(41009,72,'VOLN ADSL'), + (41032,72,'VOLN ADSL'),(41038,72,'VOLN ADSL'), + (41063,72,'VOLN ADSL'),(41537,72,'VOLN ADSL Office'), + (42141,72,'VOLN ADSL'),(42565,72,'VOLN ADSL Combi'), + (42749,72,'VOLN ADSL'),(44205,72,'VOLN ADSL'); + +SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLNY ADSL'; +SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN ADSL'; +SELECT * FROM t1 WHERE tid=72 and val LIKE '%VOLN ADSL'; + +ALTER TABLE t1 DROP KEY idx; +ALTER TABLE t1 ADD KEY idx (tid,val(11)); + +SELECT * FROM t1 WHERE tid=72 and val LIKE 'VOLN ADSL'; + +DROP TABLE t1; +} + +# +# Bug 20709: problem with utf8mb4 fields in temporary tables +# + +eval create table t1(a char(200) collate utf8mb4_unicode_ci NOT NULL default '') + default charset=utf8mb4 collate=utf8mb4_unicode_ci engine $engine; +insert into t1 values (unhex('65')), (unhex('C3A9')), (unhex('65')); +explain select distinct a from t1; +SELECT COUNT(*) FROM (SELECT DISTINCT a FROM t1) AS t2; +explain select a from t1 group by a; +SELECT COUNT(*) FROM (SELECT a FROM t1 GROUP BY a) AS t2; +drop table t1; + +# +# Bug #20204: "order by" changes the results returned +# + +eval create table t1(a char(10)) default charset utf8mb4 engine $engine; +insert into t1 values ('123'), ('456'); +explain + select substr(Z.a,-1), Z.a from t1 as Y join t1 as Z on Y.a=Z.a order by 1; +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; + +# +# Bug #34349: Passing invalid parameter to CHAR() in an ORDER BY causes +# MySQL to hang +# + +SET CHARACTER SET utf8mb4; +--source include/default_charset.inc +SHOW VARIABLES LIKE 'character\_set\_%'; +SET @@character_set_server=@save_character_set_server; +CREATE DATABASE crashtest DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; +USE crashtest; +eval CREATE TABLE crashtest (crash char(10)) DEFAULT CHARSET=utf8mb4 ENGINE $engine; +INSERT INTO crashtest VALUES ('35'), ('36'), ('37'); +SELECT * FROM crashtest ORDER BY CHAR(crash USING utf8mb4); +INSERT INTO crashtest VALUES ('-1000'); +EXPLAIN SELECT * FROM crashtest ORDER BY CHAR(crash USING utf8mb4); +SELECT * FROM crashtest ORDER BY CHAR(crash USING utf8mb4); +DROP TABLE crashtest; +DROP DATABASE crashtest; +USE test; +SET CHARACTER SET default; + +# End of 4.1 tests + +# +# Test for bug #11484: wrong results for a DISTINCT varchar column in uft8. +# + +eval CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8mb4 ENGINE $engine; +INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa'); + +--sorted_result +SELECT id FROM t1; +--sorted_result +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 +# +eval create table t1 ( + a varchar(26) not null +) default character set utf8mb4 ENGINE $engine; +insert into t1 (a) values ('abcdefghijklmnopqrstuvwxyz'); +select * from t1; +# varchar to varchar +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +alter table t1 change a a varchar(20) character set utf8mb4 not null; +select * from t1; +# varchar to char +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +alter table t1 change a a char(15) character set utf8mb4 not null; +select * from t1; +# char to char +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +alter table t1 change a a char(10) character set utf8mb4 not null; +select * from t1; +# char to varchar +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +alter table t1 change a a varchar(5) character set utf8mb4 not null; +select * from t1; +drop table t1; + +# +# Check that do_varstring2_mb produces a warning +# +eval create table t1 ( + a varchar(4000) not null +) default character set utf8mb4 engine $engine; +insert into t1 values (repeat('a',4000)); +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +alter table t1 change a a varchar(3000) character set utf8mb4 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 utf8mb4; +# correct value +select hex(char(1 using utf8mb4)); +select char(0xd1,0x8f using utf8mb4); +select char(0xd18f using utf8mb4); +select char(53647 using utf8mb4); +# incorrect value: return with warning +select char(0xff,0x8f using utf8mb4); +select convert(char(0xff,0x8f) using utf8mb4); +# incorrect value in strict mode: return NULL with "Error" level warning +set sql_mode=traditional; +select char(0xff,0x8f using utf8mb4); +select char(195 using utf8mb4); +select char(196 using utf8mb4); +select char(2557 using utf8mb4); +select convert(char(0xff,0x8f) using utf8mb4); + +# +# Check convert + char + using +# +select hex(convert(char(2557 using latin1) using utf8mb4)); + +# +# 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 utf8mb4; +eval create table t1 (a char(1)) default character set utf8mb4 engine $engine; +eval create table t2 (a char(1)) default character set utf8mb4 engine $engine; +insert into t1 values('a'),('a'),(0xE38182),(0xE38182); +insert into t1 values('i'),('i'),(0xE38184),(0xE38184); +--sorted_result +select * from t1 union distinct select * from t2; +drop table t1,t2; + + +# +# Bug#12371: executing prepared statement fails (illegal mix of collations) +# +set names utf8mb4; +eval create table t1 (a char(10), b varchar(10)) engine $engine; +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 utf8mb4; +eval create table t1(col1 varchar(12) character set utf8mb4 collate utf8mb4_unicode_ci) engine $engine; +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 utf8mb4_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 utf8mb4; +eval create table t1 (a varchar(10) character set latin1, b int) engine $engine; +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 utf8mb4; +eval create table t1 (a varchar(10) character set latin1, b int) engine $engine; +insert into t1 values ('a',1); +select concat(a, if(b>10, _utf8mb4'x', _utf8mb4'y')) from t1; +--error 1267 +select concat(a, if(b>10, _utf8mb4'æ', _utf8mb4'ß')) from t1; +drop table t1; + +# Conversion tests for introducer + HEX string +set names utf8mb4; +eval create table t1 (a varchar(10) character set latin1, b int) engine $engine; +insert into t1 values ('a',1); +select concat(a, if(b>10, _utf8mb4 0x78, _utf8mb4 0x79)) from t1; +--error 1267 +select concat(a, if(b>10, _utf8mb4 0xC3A6, _utf8mb4 0xC3AF)) from t1; +drop table t1; + +# Conversion tests for "text_literal TEXT_STRING_literal" syntax structure +set names utf8mb4; +eval create table t1 (a varchar(10) character set latin1, b int) engine $engine; +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 +eval CREATE TABLE t1 ( + colA int(11) NOT NULL, + colB varchar(255) character set utf8mb4 NOT NULL, + PRIMARY KEY (colA) +) ENGINE=$engine DEFAULT CHARSET=latin1; +--enable_warnings +INSERT INTO t1 (colA, colB) VALUES (1, 'foo'), (2, 'foo bar'); +--disable_warnings +eval CREATE TABLE t2 ( + colA int(11) NOT NULL, + colB varchar(255) character set utf8mb4 NOT NULL, + KEY bad (colA,colB(3)) +) ENGINE=$engine 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'; + +eval CREATE TABLE t1 (c VARCHAR(11)) CHARACTER SET utf8mb4 ENGINE $engine; +eval CREATE TABLE t2 (b CHAR(1) CHARACTER SET binary, i INT) ENGINE $engine; + +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 utf8mb4)); +select hex(convert(0xFF using utf8mb4)); +--error ER_INVALID_CHARACTER_STRING +select hex(_utf8mb4 0x616263FF); +--error ER_INVALID_CHARACTER_STRING +select hex(_utf8mb4 X'616263FF'); +--error ER_INVALID_CHARACTER_STRING +select hex(_utf8mb4 B'001111111111'); +--error ER_INVALID_CHARACTER_STRING +select (_utf8mb4 X'616263FF'); +set sql_mode=default; +select hex(char(0xFF using utf8mb4)); +select hex(convert(0xFF using utf8mb4)); +--error ER_INVALID_CHARACTER_STRING +select hex(_utf8mb4 0x616263FF); +--error ER_INVALID_CHARACTER_STRING +select hex(_utf8mb4 X'616263FF'); +--error ER_INVALID_CHARACTER_STRING +select hex(_utf8mb4 B'001111111111'); +--error ER_INVALID_CHARACTER_STRING +select (_utf8mb4 X'616263FF'); + +# +# Bug #36772: When using UTF8, CONVERT with GROUP BY returns truncated results +# +eval CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL) ENGINE $engine; +INSERT INTO t1 VALUES (70000, 1092), (70001, 1085), (70002, 1065); +--sorted_result +SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b; +--sorted_result +SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1; +ALTER TABLE t1 ADD UNIQUE (b); +--sorted_result +SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b; +DROP INDEX b ON t1; +--sorted_result +SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b; +ALTER TABLE t1 ADD INDEX (b); +--sorted_result +SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) from t1 GROUP BY b; +DROP TABLE t1; + +--echo # +--echo # Bug#26474: Add Sinhala script (Sri Lanka) collation to MySQL +--echo # +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings +eval CREATE TABLE t1 ( + predicted_order int NOT NULL, + utf8mb4_encoding VARCHAR(10) NOT NULL +) CHARACTER SET utf8mb4 ENGINE $engine; +INSERT INTO t1 VALUES (19, x'E0B696'), (30, x'E0B69AE0B798'), (61, x'E0B6AF'), (93, x'E0B799'), (52, x'E0B6A6'), (73, x'E0B6BBE0B78AE2808D'), (3, x'E0B686'), (56, x'E0B6AA'), (55, x'E0B6A9'), (70, x'E0B6B9'), (94, x'E0B79A'), (80, x'E0B785'), (25, x'E0B69AE0B791'), (48, x'E0B6A2'), (13, x'E0B690'), (86, x'E0B793'), (91, x'E0B79F'), (81, x'E0B786'), (79, x'E0B784'), (14, x'E0B691'), (99, x'E0B78A'), (8, x'E0B68B'), (68, x'E0B6B7'), (22, x'E0B69A'), (16, x'E0B693'), (33, x'E0B69AE0B7B3'), (38, x'E0B69AE0B79D'), (21, x'E0B683'), (11, x'E0B68E'), (77, x'E0B782'), (40, x'E0B69AE0B78A'), (101, x'E0B78AE2808DE0B6BB'), (35, x'E0B69AE0B79A'), (1, x'E0B7B4'), (9, x'E0B68C'), (96, x'E0B79C'), (6, x'E0B689'), (95, x'E0B79B'), (88, x'E0B796'), (64, x'E0B6B3'), (26, x'E0B69AE0B792'), (82, x'E0B78F'), (28, x'E0B69AE0B794'), (39, x'E0B69AE0B79E'), (97, x'E0B79D'), (2, x'E0B685'), (75, x'E0B780'), (34, x'E0B69AE0B799'), (69, x'E0B6B8'), (83, x'E0B790'), (18, x'E0B695'), (90, x'E0B7B2'), (17, x'E0B694'), (72, x'E0B6BB'), (66, x'E0B6B5'), (59, x'E0B6AD'), (44, x'E0B69E'), (15, x'E0B692'), (23, x'E0B69AE0B78F'), (65, x'E0B6B4'), (42, x'E0B69C'), (63, x'E0B6B1'), (85, x'E0B792'), (47, x'E0B6A1'), (49, x'E0B6A3'), (92, x'E0B7B3'), (78, x'E0B783'), (36, x'E0B69AE0B79B'), (4, x'E0B687'), (24, x'E0B69AE0B790'), (87, x'E0B794'), (37, x'E0B69AE0B79C'), (32, x'E0B69AE0B79F'), (29, x'E0B69AE0B796'), (43, x'E0B69D'), (62, x'E0B6B0'), (100, x'E0B78AE2808DE0B6BA'), (60, x'E0B6AE'), (45, x'E0B69F'), (12, x'E0B68F'), (46, x'E0B6A0'), (50, x'E0B6A5'), (51, x'E0B6A4'), (5, x'E0B688'), (76, x'E0B781'), (89, x'E0B798'), (74, x'E0B6BD'), (10, x'E0B68D'), (57, x'E0B6AB'), (71, x'E0B6BA'), (58, x'E0B6AC'), (27, x'E0B69AE0B793'), (54, x'E0B6A8'), (84, x'E0B791'), (31, x'E0B69AE0B7B2'), (98, x'E0B79E'), (53, x'E0B6A7'), (41, x'E0B69B'), (67, x'E0B6B6'), (7, x'E0B68A'), (20, x'E0B682'); +SELECT predicted_order, hex(utf8mb4_encoding) FROM t1 ORDER BY utf8mb4_encoding COLLATE utf8mb4_sinhala_ci; +DROP TABLE t1; + +--echo # +--echo # Bug#32914 Character sets: illegal characters in utf8mb4 and utf32 columns +--echo # +eval create table t1 (utf8mb4 char(1) character set utf8mb4) engine $engine; +--echo Testing [F0][90..BF][80..BF][80..BF] +insert into t1 values (0xF0908080); +insert into t1 values (0xF0BFBFBF); +insert ignore into t1 values (0xF08F8080); +--sorted_result +select hex(utf8mb4) from t1; +delete from t1; + +--echo Testing [F2..F3][80..BF][80..BF][80..BF] +insert into t1 values (0xF2808080); +insert into t1 values (0xF2BFBFBF); +--sorted_result +select hex(utf8mb4) from t1; +delete from t1; + +--echo Testing [F4][80..8F][80..BF][80..BF] +insert into t1 values (0xF4808080); +insert into t1 values (0xF48F8080); +insert ignore into t1 values (0xF4908080); +--sorted_result +select hex(utf8mb4) from t1; +drop table t1; + + +--echo # +--echo # Check strnxfrm() with odd length +--echo # +set max_sort_length=65; +select @@max_sort_length; +eval create table t1 (a varchar(128) character set utf8mb4 collate utf8mb4_general_ci) engine $engine; +insert into t1 values ('a'),('b'),('c'); +select * from t1 order by a; +alter table t1 modify a varchar(128) character set utf8mb4 collate utf8mb4_bin; +select * from t1 order by a; +drop table t1; +set max_sort_length=default; + +--echo # +--echo # Bug#26180: Can't add columns to tables created with utf8mb4 text indexes +--echo # +if (!$is_heap) +{ +eval CREATE TABLE t1 ( + clipid INT NOT NULL, + Tape TINYTEXT, + PRIMARY KEY (clipid), + KEY tape(Tape(255)) +) CHARACTER SET=utf8mb4 ENGINE $engine; +ALTER TABLE t1 ADD mos TINYINT DEFAULT 0 AFTER clipid; +SHOW CREATE TABLE t1; +DROP TABLE t1; +} + +#--echo # +#--echo # Check that supplementary characters are not allowed in identifiers +#--echo # +# TODO: activate this when system_charset_info is changed to utf8mb4 +#--error 1300 +#CREATE DATABASE `𐀀`; +#--error 1300 +#CREATE TABLE `𐀀` (a int); +#--error 1166 +#CREATE TABLE test.t1 SELECT '𐀀'; +#--error 1300 +#CREATE USER `𐀀`; + +--echo # +--echo # Testing 4-byte values. +--echo # + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings +eval CREATE TABLE t1 ( + u_decimal int NOT NULL, + utf8mb4_encoding VARCHAR(10) NOT NULL +) CHARACTER SET utf8mb4 ENGINE $engine; +# Source of the following values: http://www.fileformat.info/info/unicode/block/index.htm +# SINGLE BARLINE +INSERT INTO t1 VALUES (119040, x'f09d8480'), +# G CLEF + (119070, x'f09d849e'), +# HALF NOTE + (119134, x'f09d859e'), +# MUSICAL SYMBOL CROIX + (119247, x'f09d878f'), +# MATHEMATICAL BOLD ITALIC CAPITAL DELTA + (120607, x'f09d9c9f'), +# SANS-SERIF BOLD ITALIC CAPITAL PI + (120735, x'f09d9e9f'), +# <Plane 16 Private Use, Last> (last 4 byte character) + (1114111, x'f48fbfbf'), +# VARIATION SELECTOR-256 + (917999, x'f3a087af'); +# All from musical chars +INSERT INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480'); +# Mix of 3-byte and 4-byte chars +INSERT INTO t1 VALUES (65131, x'efb9abf09d849ef09d859ef09d859ef09d8480f09d859fefb9abefb9abf09d85a0efb9ab'); +# All from musical chars, but 11 instead of 10 chars. truncated +INSERT IGNORE INTO t1 VALUES (119070, x'f09d849ef09d859ef09d859ef09d8480f09d859ff09d859ff09d859ff09d85a0f09d85a0f09d8480f09d85a0'); + +--sorted_result +SELECT u_decimal, hex(utf8mb4_encoding) FROM t1 ORDER BY utf8mb4_encoding COLLATE utf8mb4_general_ci, BINARY utf8mb4_encoding; + +# First invalid 4 byte value +INSERT IGNORE INTO t1 VALUES (1114111, x'f5808080'); + +--sorted_result +SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE + table_name= 't1' AND column_name= 'utf8mb4_encoding'; + +--disable_warnings +DROP TABLE IF EXISTS t2; +--enable_warnings +eval CREATE TABLE t2 ( + u_decimal int NOT NULL, + utf8mb3_encoding VARCHAR(10) NOT NULL +) CHARACTER SET utf8mb3 ENGINE $engine; +# LATIN CAPITAL LETTER VEND +INSERT INTO t2 VALUES (42856, x'ea9da8'); +# SMALL COMMERCIAL AT +INSERT INTO t2 VALUES (65131, x'efb9ab'); +# <Plane 16 Private Use, Last> (last 4 byte character) +INSERT IGNORE INTO t2 VALUES (1114111, x'f48fbfbf'); + +--sorted_result +SELECT character_maximum_length, character_octet_length FROM information_schema.columns WHERE + table_name= 't2' AND column_name= 'utf8mb3_encoding'; + +# Update a 3-byte char col with a 4-byte char, error +UPDATE IGNORE t2 SET utf8mb3_encoding= x'f48fbfbd' where u_decimal= 42856; + +# Update to a 3-byte char casted to 4-byte, error? +UPDATE t2 SET utf8mb3_encoding= _utf8mb4 x'ea9da8' where u_decimal= 42856; + +# Returns utfmb4 +--sorted_result +SELECT HEX(CONCAT(utf8mb4_encoding, _utf8 x'ea9da8')) FROM t1; +--sorted_result +SELECT HEX(CONCAT(utf8mb4_encoding, utf8mb3_encoding)) FROM t1,t2; + +#--error ER_INVALID_CHARACTER_STRING +#SELECT CONCAT(_utf8 utf8mb4_encoding, _utf8 '|') FROM t1; +#--error ER_INVALID_CHARACTER_STRING +#SELECT CONCAT(_utf8mb3 utf8mb4_encoding, _utf8 '|') FROM t1; + +SELECT count(*) FROM t1, t2 + WHERE t1.utf8mb4_encoding > t2.utf8mb3_encoding; + +# Alter from 4-byte charset to 3-byte charset, error +--disable_warnings +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +ALTER TABLE t1 CONVERT TO CHARACTER SET utf8; +--enable_warnings +SHOW CREATE TABLE t1; +--sorted_result +SELECT u_decimal,hex(utf8mb4_encoding),utf8mb4_encoding FROM t1; + +# Alter table from utf8 to utf8mb4 +ALTER TABLE t2 CONVERT TO CHARACTER SET utf8mb4; +SHOW CREATE TABLE t2; +--sorted_result +SELECT u_decimal,hex(utf8mb3_encoding) FROM t2; + +# Alter table back from utf8mb4 to utf8 +ALTER TABLE t2 CONVERT TO CHARACTER SET utf8mb3; +SHOW CREATE TABLE t2; +--sorted_result +SELECT u_decimal,hex(utf8mb3_encoding) FROM t2; + +# ALter of utf8mb4 column to utf8 +--disable_warnings +ALTER TABLE t1 MODIFY utf8mb4_encoding VARCHAR(10) CHARACTER SET utf8mb3; +--enable_warnings +SHOW CREATE TABLE t1; +--sorted_result +SELECT u_decimal,hex(utf8mb4_encoding) FROM t1; + +# ALter of utf8 column to utf8mb4 +ALTER TABLE t1 MODIFY utf8mb4_encoding VARCHAR(10) CHARACTER SET utf8mb4; +SHOW CREATE TABLE t1; +--sorted_result +SELECT u_decimal,hex(utf8mb4_encoding) FROM t1; + +# ALter of utf8 column to utf8mb4 +ALTER TABLE t2 MODIFY utf8mb3_encoding VARCHAR(10) CHARACTER SET utf8mb4; +SHOW CREATE TABLE t2; +--sorted_result +SELECT u_decimal,hex(utf8mb3_encoding) FROM t2; + +--disable_warnings +DROP TABLE IF EXISTS t3; +--enable_warnings +eval CREATE TABLE t3 ( + u_decimal int NOT NULL, + utf8mb3_encoding VARCHAR(10) NOT NULL +) CHARACTER SET utf8 ENGINE $engine; + +# Insert select utf8mb4 (4-byte) into utf8 (3-byte), error +#--error ER_INVALID_CHARACTER_STRING +INSERT INTO t3 SELECT * FROM t1; + +--disable_warnings +DROP TABLE IF EXISTS t4; +--enable_warnings +eval CREATE TABLE t4 ( + u_decimal int NOT NULL, + utf8mb4_encoding VARCHAR(10) NOT NULL +) CHARACTER SET utf8mb4 ENGINE $engine; + +# Insert select utf8 (3-byte) into utf8mb4 (4-byte) +INSERT INTO t3 SELECT * FROM t2; + +DROP TABLE t1; +DROP TABLE t2; +DROP TABLE t3; +DROP TABLE t4; + +--echo # +--echo # Testing that mixing utf8 and utf8mb4 collations returns utf8mb4 +--echo # +SELECT CHARSET(CONCAT(_utf8mb4'a',_utf8'b')); + +eval CREATE TABLE t1 (utf8mb4 VARCHAR(10) CHARACTER SET utf8mb4 NOT NULL) ENGINE $engine; +INSERT INTO t1 VALUES (x'ea9da8'),(x'f48fbfbf'); +SELECT CONCAT(utf8mb4, _utf8 x'ea9da8') FROM t1 LIMIT 0; + +eval CREATE TABLE t2 (utf8mb3 VARCHAR(10) CHARACTER SET utf8mb3 NOT NULL) ENGINE $engine; +INSERT INTO t2 VALUES (x'ea9da8'); + +SELECT HEX(CONCAT(utf8mb4, utf8mb3)) FROM t1,t2 ORDER BY 1; +SELECT CHARSET(CONCAT(utf8mb4, utf8mb3)) FROM t1, t2 LIMIT 1; + +eval CREATE TEMPORARY TABLE t3 ENGINE $engine AS SELECT *, concat(utf8mb4,utf8mb3) FROM t1, t2; +SHOW CREATE TABLE t3; +DROP TEMPORARY TABLE t3; + +SELECT * FROM t1, t2 WHERE t1.utf8mb4 > t2.utf8mb3; +SELECT * FROM t1, t2 WHERE t1.utf8mb4 = t2.utf8mb3; +SELECT * FROM t1, t2 WHERE t1.utf8mb4 < t2.utf8mb3; + +DROP TABLE t1; +DROP TABLE t2; + +--echo # +--echo # Check that mixing utf8mb4 with an invalid utf8 constant returns error +--echo # +# This should perhaps be changed to return ER_INVALID_CHARACTER_STRING +eval CREATE TABLE t1 (utf8mb4 VARCHAR(10) CHARACTER SET utf8mb4) ENGINE $engine; +INSERT INTO t1 VALUES (x'f48fbfbf'); +--error ER_CANT_AGGREGATE_2COLLATIONS +SELECT CONCAT(utf8mb4, _utf8 '') FROM t1; +--error ER_CANT_AGGREGATE_2COLLATIONS +SELECT CONCAT('a', _utf8 '') FROM t1; +DROP TABLE t1; + +--echo # +--echo # End of 5.5 tests +--echo # + +--echo # +--echo # ctype_utf8mb4.inc: Start of 10.1 tests +--echo # + +--echo # +--echo # MDEV-8417 utf8mb4: compare broken bytes as "greater than any non-broken character" +--echo # +CREATE TABLE t1 ( + id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + a VARCHAR(10) CHARACTER SET utf8mb4, KEY(a,id) +); +INSERT INTO t1 (a) VALUES (0x61); +INSERT INTO t1 (a) VALUES (0xC280),(0xDFBF); +INSERT INTO t1 (a) VALUES (0xE0A080),(0xEFBFBF); +INSERT INTO t1 (a) VALUES (0xF0908080),(0xF48FBFBF); +SELECT id,HEX(a) FROM t1 ORDER BY a,id; +SELECT id,HEX(a) FROM t1 ORDER BY a DESC,id DESC; +SELECT COUNT(DISTINCT a) FROM t1; +ALTER TABLE t1 MODIFY a VARCHAR(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; +SELECT id,HEX(a) FROM t1 ORDER BY a; +SELECT id,HEX(a) FROM t1 ORDER BY a DESC,id DESC; +SELECT COUNT(DISTINCT a) FROM t1; +DROP TABLE t1; + +--echo # +--echo # ctype_utf8mb4.inc: End of 10.1 tests +--echo # + +--echo # +--echo # End of ctype_utf8mb4.inc +--echo # diff --git a/mysql-test/include/daemon_example_bad_format.ini b/mysql-test/include/daemon_example_bad_format.ini new file mode 100644 index 00000000..8f880ef0 --- /dev/null +++ b/mysql-test/include/daemon_example_bad_format.ini @@ -0,0 +1,8 @@ +# +# Plugin configuration file. Place the following on a separate line: +# +# library binary file name (without .so or .dll) +# component_name +# [component_name] - additional components in plugin +# +libdaemon_example diff --git a/mysql-test/include/daemon_example_bad_soname.ini b/mysql-test/include/daemon_example_bad_soname.ini new file mode 100644 index 00000000..5f42b5a6 --- /dev/null +++ b/mysql-test/include/daemon_example_bad_soname.ini @@ -0,0 +1,9 @@ +# +# Plugin configuration file. Place the following on a separate line: +# +# library binary file name (without .so or .dll) +# component_name +# [component_name] - additional components in plugin +# +libdaemon_BADNAME +daemon_BADNAME diff --git a/mysql-test/include/dbt3_s001.inc b/mysql-test/include/dbt3_s001.inc new file mode 100644 index 00000000..6a85e705 --- /dev/null +++ b/mysql-test/include/dbt3_s001.inc @@ -0,0 +1,8997 @@ +CREATE TABLE customer ( + c_custkey int(11) NOT NULL, + c_name varchar(25) DEFAULT NULL, + c_address varchar(40) DEFAULT NULL, + c_nationkey int(11) DEFAULT NULL, + c_phone char(15) DEFAULT NULL, + c_acctbal double DEFAULT NULL, + c_mktsegment char(10) DEFAULT NULL, + c_comment varchar(117) DEFAULT NULL, + PRIMARY KEY (c_custkey), + KEY i_c_nationkey (c_nationkey) +); +INSERT INTO customer VALUES +(1,'Customer#000000001','IVhzIApeRb ot,c,E',15,'25-989-741-2988',711.56,'BUILDING','regular, regular platelets are fluffily according to the even attainments. blithely iron'), +(2,'Customer#000000002','XSTf4,NCwDVaWNe6tEgvwfmRchLXak',13,'23-768-687-3665',121.65,'AUTOMOBILE','furiously special deposits solve slyly. furiously even foxes wake alongside of the furiously ironic ideas. pending'), +(3,'Customer#000000003','MG9kdTD2WBHm',1,'11-719-748-3364',7498.12,'AUTOMOBILE','special packages wake. slyly reg'), +(4,'Customer#000000004','XxVSJsLAGtn',4,'14-128-190-5944',2866.83,'MACHINERY','slyly final accounts sublate carefully. slyly ironic asymptotes nod across the quickly regular pack'), +(5,'Customer#000000005','KvpyuHCplrB84WgAiGV6sYpZq7Tj',3,'13-750-942-6364',794.47,'HOUSEHOLD','blithely final instructions haggle; stealthy sauternes nod; carefully regu'), +(6,'Customer#000000006','sKZz0CsnMD7mp4Xd0YrBvx,LREYKUWAh yVn',20,'30-114-968-4951',7638.57,'AUTOMOBILE','special deposits wake along the ironic foxes. slyly regular deposits are furiously about the blith'), +(7,'Customer#000000007','TcGe5gaZNgVePxU5kRrvXBfkasDTea',18,'28-190-982-9759',9561.95,'AUTOMOBILE','theodolites kindle carefully carefully regular deposits. regular depe'), +(8,'Customer#000000008','I0B10bB0AymmC, 0PrRYBCP1yGJ8xcBPmWhl5',17,'27-147-574-9335',6819.74,'BUILDING','ironic deposits are quickly after the gifts. regular dependencies hinder slyly after the quickly ex'), +(9,'Customer#000000009','xKiAFTjUsCuxfeleNqefumTrjS',8,'18-338-906-3675',8324.07,'FURNITURE','deposits affix fluffily. blithely final ideas are furiously dolphins. i'), +(10,'Customer#000000010','6LrEaV6KR6PLVcgl2ArL Q3rqzLzcT1 v2',5,'15-741-346-9870',2753.54,'HOUSEHOLD','bold, final frays sleep carefully special ideas. carefully final asymptotes sleep furiously against the even i'), +(11,'Customer#000000011','PkWS 3HlXqwTuzrKg633BEi',23,'33-464-151-3439',-272.6,'BUILDING','furiously express packages are. regular courts play deposits. silent, ironic packages engage. furiously regular a'), +(12,'Customer#000000012','9PWKuhzT4Zr1Q',13,'23-791-276-1263',3396.49,'HOUSEHOLD','deposits are accounts: fluffily even dependencies haggle fluffily slyly regular requests. theodolit'), +(13,'Customer#000000013','nsXQu0oVjD7PM659uC3SRSp',3,'13-761-547-5974',3857.34,'BUILDING','ironic dependencies according to the slyly even ideas wake idl'), +(14,'Customer#000000014','KXkletMlL2JQEA ',1,'11-845-129-3851',5266.3,'FURNITURE','never regular pinto beans boost bl'), +(15,'Customer#000000015','YtWggXoOLdwdo7b0y,BZaGUQMLJMX1Y,EC,6Dn',23,'33-687-542-7601',2788.52,'HOUSEHOLD','fluffily bold dolphins detect quickly about the special instruction'), +(16,'Customer#000000016','cYiaeMLZSMAOQ2 d0W,',10,'20-781-609-3107',4681.03,'FURNITURE','deposits nod. blithely unusual'), +(17,'Customer#000000017','izrh 6jdqtp2eqdtbkswDD8SG4SzXruMfIXyR7',2,'12-970-682-3487',6.34,'AUTOMOBILE','packages nod quickly quickly ironic deposits. furiously unusual dependenci'), +(18,'Customer#000000018','3txGO AiuFux3zT0Z9NYaFRnZt',6,'16-155-215-1315',5494.43,'BUILDING','furiously even frays among the fluffily furious epitaphs haggle slyly about the ironic theodolites. iro'), +(19,'Customer#000000019','uc,3bHIx84H,wdrmLOjVsiqXCq2tr',18,'28-396-526-5053',8914.71,'HOUSEHOLD','blithely express foxes after the stealthy deposits wake slyly even excuses. packages cajole'), +(20,'Customer#000000020','JrPk8Pqplj4Ne',22,'32-957-234-8742',7603.4,'FURNITURE','regular dependencies serve blithely stealthy dugouts. express deposits kindle never '), +(21,'Customer#000000021','XYmVpr9yAHDEn',8,'18-902-614-8344',1428.25,'MACHINERY','platelets sleep carefully unusual instructions'), +(22,'Customer#000000022','QI6p41,FNs5k7RZoCCVPUTkUdYpB',3,'13-806-545-9701',591.98,'MACHINERY','brave deposits among the deposits sleep slyly sl'), +(23,'Customer#000000023','OdY W13N7Be3OC5MpgfmcYss0Wn6TKT',3,'13-312-472-8245',3332.02,'HOUSEHOLD','unusual, regular packages wake. slyly unusual courts wake '); +INSERT INTO customer VALUES +(24,'Customer#000000024','HXAFgIAyjxtdqwimt13Y3OZO 4xeLe7U8PqG',13,'23-127-851-8031',9255.67,'MACHINERY','even, final requests wake furiously bl'), +(25,'Customer#000000025','Hp8GyFQgGHFYSilH5tBfe',12,'22-603-468-3533',7133.7,'FURNITURE','regular, ironic requests integrate furi'), +(26,'Customer#000000026','8ljrc5ZeMl7UciP',22,'32-363-455-4837',5182.05,'AUTOMOBILE','bold, final ideas sleep carefully never express foxes. '), +(27,'Customer#000000027','IS8GIyxpBrLpMT0u7',3,'13-137-193-2709',5679.84,'BUILDING','ironic, pending courts against the special, regular theodolites nag around the quick '), +(28,'Customer#000000028','iVyg0daQ,Tha8x2WPWA9m2529m',8,'18-774-241-1462',1007.18,'FURNITURE','even pains sleep quickly along the slyly even requests. slyly silent packages wake closely. fluffil'), +(29,'Customer#000000029','sJ5adtfyAkCK63df2,vF25zyQMVYE34uh',0,'10-773-203-7342',7618.27,'FURNITURE','fluffily regular instructions nag fluffily during th'), +(30,'Customer#000000030','nJDsELGAavU63Jl0c5NKsKfL8rIJQQkQnYL2QJY',1,'11-764-165-5076',9321.01,'BUILDING','regular deposits hinder slyly ironic foxes'), +(31,'Customer#000000031','LUACbO0viaAv6eXOAebryDB xjVst',23,'33-197-837-7094',5236.89,'HOUSEHOLD','carefully even theodolites doubt final, final deposits. regular, ironic tithes sleep '), +(32,'Customer#000000032','jD2xZzi UmId,DCtNBLXKj9q0Tlp2iQ6ZcO3J',15,'25-430-914-2194',3471.53,'BUILDING','carefully regular excuses detect furiously along the f'), +(33,'Customer#000000033','qFSlMuLucBmx9xnn5ib2csWUweg D',17,'27-375-391-1280',-78.56,'AUTOMOBILE','pending theodolites sleep after the furiously express deposits? requests according to the pending platelets s'), +(34,'Customer#000000034','Q6G9wZ6dnczmtOx509xgE,M2KV',15,'25-344-968-5422',8589.7,'HOUSEHOLD','permanently ironic instructions above the asymptotes'), +(35,'Customer#000000035','TEjWGE4nBzJL2',17,'27-566-888-7431',1228.24,'HOUSEHOLD','even, unusual platelets about the slyly even platelets nag quickly furiously express accounts. carefully '), +(36,'Customer#000000036','3TvCzjuPzpJ0,DdJ8kW5U',21,'31-704-669-5769',4987.27,'BUILDING','ideas hinder blithely final deposits. fu'), +(37,'Customer#000000037','7EV4Pwh,3SboctTWt',8,'18-385-235-7162',-917.75,'FURNITURE','ironic, special instructions detect quickly above the even theodolites. quickly unusual requests maintain'), +(38,'Customer#000000038','a5Ee5e9568R8RLP 2ap7',12,'22-306-880-7212',6345.11,'HOUSEHOLD','enticing deposits are slyly beyond the final, special requests-- slyly ironic accounts hagg'), +(39,'Customer#000000039','nnbRg,Pvy33dfkorYE FdeZ60',2,'12-387-467-6509',6264.31,'AUTOMOBILE','theodolites sleep ironic foxes. fluffily ironic requests detect carefu'), +(40,'Customer#000000040','gOnGWAyhSV1ofv',3,'13-652-915-8939',1335.3,'BUILDING','slyly regular requests haggle furiously regular theodol'), +(41,'Customer#000000041','IM9mzmyoxeBmvNw8lA7G3Ydska2nkZF',10,'20-917-711-4011',270.95,'HOUSEHOLD','carefully ironic instructions w'), +(42,'Customer#000000042','ziSrvyyBke',5,'15-416-330-4175',8727.01,'BUILDING','even sentiments wake. slyly final packages nag against the carefully unusual theodolites. slyly pending pinto beans'), +(43,'Customer#000000043','ouSbjHk8lh5fKX3zGso3ZSIj9Aa3PoaFd',19,'29-316-665-2897',9904.28,'MACHINERY','idly regular sentiments affix. slyly pending foxes around the deposits haggle according to th'), +(44,'Customer#000000044','Oi,dOSPwDu4jo4x,,P85E0dmhZGvNtBwi',16,'26-190-260-5375',7315.94,'AUTOMOBILE','regular packages after the furiously ironic tithes play blithely about the instru'), +(45,'Customer#000000045','4v3OcpFgoOmMG,CbnF,4mdC',9,'19-715-298-9917',9983.38,'AUTOMOBILE','regular packages among the slyly regular attainments are asymptotes. special asymptotes haggle blithely'), +(46,'Customer#000000046','eaTXWWm10L9',6,'16-357-681-2007',5744.59,'AUTOMOBILE','carefully ironic theodolites haggle furiously carefully even instructions. bold depo'); +INSERT INTO customer VALUES (47,'Customer#000000047','b0UgocSqEW5 gdVbhNT',2,'12-427-271-9466',274.58,'BUILDING','blithely final deposits about the furiously special packages play even idea'), +(48,'Customer#000000048','0UU iPhBupFvemNB',0,'10-508-348-5882',3792.5,'BUILDING','slyly ironic ideas wake fluffily. carefully even dugouts prom'), +(49,'Customer#000000049','cNgAeX7Fqrdf7HQN9EwjUa4nxT,68L FKAxzl',10,'20-908-631-4424',4573.94,'FURNITURE','thin ideas are foxes. furiously regular t'), +(50,'Customer#000000050','9SzDYlkzxByyJ1QeTI o',6,'16-658-112-3221',4266.13,'MACHINERY','express, bold frets boost among the express ideas. final, express requests boost platelets. '), +(51,'Customer#000000051','uR,wEaiTvo4',12,'22-344-885-4251',855.87,'FURNITURE','silent dependencies about the deposits haggle slyly above the blithely unusual account'), +(52,'Customer#000000052','7 QOqGqqSy9jfV51BC71jcHJSD0',11,'21-186-284-5998',5630.28,'HOUSEHOLD','patterns cajole slyly among the blithely regul'), +(53,'Customer#000000053','HnaxHzTfFTZs8MuCpJyTbZ47Cm4wFOOgib',15,'25-168-852-5363',4113.64,'HOUSEHOLD','ironic requests against the carefully ironic dolphins nag fluffily against'), +(54,'Customer#000000054',',k4vf 5vECGWFy,hosTE,',4,'14-776-370-4745',868.9,'AUTOMOBILE','final, unusual requests alongside of the foxes cajole against the carefully unusual '), +(55,'Customer#000000055','zIRBR4KNEl HzaiV3a i9n6elrxzDEh8r8pDom',10,'20-180-440-8525',4572.11,'MACHINERY','carefully regular requests against the fluffily special accounts cajole slyly slyly'), +(56,'Customer#000000056','BJYZYJQk4yD5B',10,'20-895-685-6920',6530.86,'FURNITURE','regular accounts use furiously. instructions snooze. blithely d'), +(57,'Customer#000000057','97XYbsuOPRXPWU',21,'31-835-306-1650',4151.93,'AUTOMOBILE','accounts are. quickly regular pinto beans subla'), +(58,'Customer#000000058','g9ap7Dk1Sv9fcXEWjpMYpBZIRUohi T',13,'23-244-493-2508',6478.46,'HOUSEHOLD','packages wake slyly about the blithely ironic decoys. ironic ideas sleep. slyly ironic packages '), +(59,'Customer#000000059','zLOCP0wh92OtBihgspOGl4',1,'11-355-584-3112',3458.6,'MACHINERY','even requests dazzle quickly along the fi'), +(60,'Customer#000000060','FyodhjwMChsZmUz7Jz0H',12,'22-480-575-5866',2741.87,'MACHINERY','pending packages are blithely fluffily pending platelets. unusual instructions instead of the bold,'), +(61,'Customer#000000061','9kndve4EAJxhg3veF BfXr7AqOsT39o gtqjaYE',17,'27-626-559-8599',1536.24,'FURNITURE','blithely even deposits boost. accounts sleep furiously bold deposits. unusu'), +(62,'Customer#000000062','upJK2Dnw13,',7,'17-361-978-7059',595.61,'MACHINERY','deposits cajole after the slyly unusual instructions. quickly fi'), +(63,'Customer#000000063','IXRSpVWWZraKII',21,'31-952-552-9584',9331.13,'AUTOMOBILE','blithely even sentiments nag; blithely'), +(64,'Customer#000000064','MbCeGY20kaKK3oalJD,OT',3,'13-558-731-7204',-646.64,'BUILDING','regular accounts mold blithely. quickly quick theodolites use never. theodolites boost quickl'), +(65,'Customer#000000065','RGT yzQ0y4l0H90P783LG4U95bXQFDRXbWa1sl,X',23,'33-733-623-5267',8795.16,'AUTOMOBILE','slyly regular excuses about the'), +(66,'Customer#000000066','XbsEqXH1ETbJYYtA1A',22,'32-213-373-5094',242.77,'HOUSEHOLD','final multipliers nag furiously. ironi'), +(67,'Customer#000000067','rfG0cOgtr5W8 xILkwp9fpCS8',9,'19-403-114-4356',8166.59,'MACHINERY','furiously even packages are quic'), +(68,'Customer#000000068','o8AibcCRkXvQFh8hF,7o',12,'22-918-832-2411',6853.37,'HOUSEHOLD','blithely stealthy deposits wake. regular, regular gifts above the even, permanent foxes are furiously betw'), +(69,'Customer#000000069','Ltx17nO9Wwhtdbe9QZVxNgP98V7xW97uvSH1prEw',9,'19-225-978-5670',1709.28,'HOUSEHOLD','carefully regular deposits cajole above the quickly'), +(70,'Customer#000000070','mFowIuhnHjp2GjCiYYavkW kUwOjIaTCQ',22,'32-828-107-2832',4867.52,'FURNITURE','slowly unusual realms detect express accounts. quickly pending accounts nod quickly ironic asymptotes. furiously ir'); +INSERT INTO customer VALUES +(71,'Customer#000000071','TlGalgdXWBmMV,6agLyWYDyIz9MKzcY8gl,w6t1B',7,'17-710-812-5403',-611.19,'HOUSEHOLD','furiously regular frets wake carefully. bravely pending account'), +(72,'Customer#000000072','putjlmskxE,zs,HqeIA9Wqu7dhgH5BVCwDwHHcf',2,'12-759-144-9689',-362.86,'FURNITURE','carefully express deposits nod blithely. quickly '), +(73,'Customer#000000073','8IhIxreu4Ug6tt5mog4',0,'10-473-439-3214',4288.5,'BUILDING','even ideas boost. furiously final requests '), +(74,'Customer#000000074','IkJHCA3ZThF7qL7VKcrU nRLl,kylf ',4,'14-199-862-7209',2764.43,'MACHINERY','busy, blithe accounts cajole furiously al'), +(75,'Customer#000000075','Dh 6jZ,cwxWLKQfRKkiGrzv6pm',18,'28-247-803-9025',6684.1,'AUTOMOBILE','regular requests near the ironic, even accounts would sleep alongside of'), +(76,'Customer#000000076','m3sbCvjMOHyaOofH,e UkGPtqc4',0,'10-349-718-3044',5745.33,'FURNITURE','blithely final theodolites across the furiously stealthy attainments haggle sl'), +(77,'Customer#000000077','4tAE5KdMFGD4byHtXF92vx',17,'27-269-357-4674',1738.87,'BUILDING','slyly unusual dolphins cajole. asy'), +(78,'Customer#000000078','HBOta,ZNqpg3U2cSL0kbrftkPwzX',9,'19-960-700-9191',7136.97,'FURNITURE','dependencies are slyly. excuses haggle furiously slyly even'), +(79,'Customer#000000079','n5hH2ftkVRwW8idtD,BmM2',15,'25-147-850-4166',5121.28,'MACHINERY','carefully regular packages cajole along the sly'), +(80,'Customer#000000080','K,vtXp8qYB ',0,'10-267-172-7101',7383.53,'FURNITURE','bold asymptotes about the express, express asymptotes wake flu'), +(81,'Customer#000000081','SH6lPA7JiiNC6dNTrR',20,'30-165-277-3269',2023.71,'BUILDING','requests doze. slyly unusual deposits about the regular theodolites boost f'), +(82,'Customer#000000082','zhG3EZbap4c992Gj3bK,3Ne,Xn',18,'28-159-442-5305',9468.34,'AUTOMOBILE','furiously ironic deposits mold across the pending packag'), +(83,'Customer#000000083','HnhTNB5xpnSF20JBH4Ycs6psVnkC3RDf',22,'32-817-154-4122',6463.51,'BUILDING','final accounts nag carefully?'), +(84,'Customer#000000084','lpXz6Fwr9945rnbtMc8PlueilS1WmASr CB',11,'21-546-818-3802',5174.71,'FURNITURE','carefully ironic theodolites sublate'), +(85,'Customer#000000085','siRerlDwiolhYR 8FgksoezycLj',5,'15-745-585-8219',3386.64,'FURNITURE','final deposits inside the slyly express deposits wake furiously even foxes.'), +(86,'Customer#000000086','US6EGGHXbTTXPL9SBsxQJsuvy',0,'10-677-951-2353',3306.32,'HOUSEHOLD','fluffily fluffy foxes sleep slyly about the '), +(87,'Customer#000000087','hgGhHVSWQl 6jZ6Ev',23,'33-869-884-7053',6327.54,'FURNITURE','bold, unusual excuses haggle daringly according to the carefully express requests! theod'), +(88,'Customer#000000088','wtkjBN9eyrFuENSMmMFlJ3e7jE5KXcg',16,'26-516-273-2566',8031.44,'AUTOMOBILE','ironic packages ought to sleep packages. enticingly e'), +(89,'Customer#000000089','dtR, y9JQWUO6FoJExyp8whOU',14,'24-394-451-5404',1530.76,'FURNITURE','bold accounts cajole furiously after the permanently even excuses. accounts cajole. fluffily even requ'), +(90,'Customer#000000090','QxCzH7VxxYUWwfL7',16,'26-603-491-1238',7354.23,'BUILDING','blithely express packages boost quickly. enticingly ironic instruct'), +(91,'Customer#000000091','S8OMYFrpHwoNHaGBeuS6E 6zhHGZiprw1b7 q',8,'18-239-400-3677',4643.14,'AUTOMOBILE','fluffily stealthy pinto beans cajole. fluffily unusual packages are furiously about the final theodolites. furi'), +(92,'Customer#000000092','obP PULk2LH LqNF,K9hcbNqnLAkJVsl5xqSrY,',2,'12-446-416-8471',1182.91,'MACHINERY','carefully final packages wake'), +(93,'Customer#000000093','EHXBr2QGdh',7,'17-359-388-5266',2182.52,'MACHINERY','fluffily even packages cajole furiously along the notornis. quickly even ideas hag'), +(94,'Customer#000000094','IfVNIN9KtkScJ9dUjK3Pg5gY1aFeaXewwf',9,'19-953-499-8833',5500.11,'HOUSEHOLD','furiously even requests nag slyly ironic accounts. blithely bold packages across the final, '); +INSERT INTO customer VALUES +(95,'Customer#000000095','EU0xvmWvOmUUn5J,2z85DQyG7QCJ9Xq7',15,'25-923-255-2929',5327.38,'MACHINERY','final foxes use carefully. accounts integrate furiously. carefully special requests '), +(96,'Customer#000000096','vWLOrmXhRR',8,'18-422-845-1202',6323.92,'AUTOMOBILE','special ideas are fluffily fluffily even reque'), +(97,'Customer#000000097','OApyejbhJG,0Iw3j rd1M',17,'27-588-919-5638',2164.48,'AUTOMOBILE','carefully final packages are slyly aga'), +(98,'Customer#000000098','7yiheXNSpuEAwbswDW',12,'22-885-845-6889',-551.37,'BUILDING','blithely final foxes along the unusual realms detect accounts. idle theodolites use pinto beans. ev'), +(99,'Customer#000000099','szsrOiPtCHVS97Lt',15,'25-515-237-9232',4088.65,'HOUSEHOLD','deposits nod furiously alongside of the slyl'), +(100,'Customer#000000100','fptUABXcmkC5Wx',20,'30-749-445-4907',9889.89,'FURNITURE','final requests solve slyly regular instructions. slyly regular excuses solve above the carefully express accounts'), +(101,'Customer#000000101','sMmL2rNeHDltovSm Y',2,'12-514-298-3699',7470.96,'MACHINERY','even accounts are slyly quickly ironic theodolites. fluffily ironic accounts cajole bli'), +(102,'Customer#000000102','UAtflJ06 fn9zBfKjInkQZlWtqaA',19,'29-324-978-8538',8462.17,'BUILDING','regular requests above the regular, ironic asym'), +(103,'Customer#000000103','8KIsQX4LJ7QMsj6DrtFtXu0nUEdV,8a',9,'19-216-107-2107',2757.45,'BUILDING','regular packages wake slyly above the regular ideas. regular excuses after the slyly regul'), +(104,'Customer#000000104','9mcCK L7rt0SwiYtrbO88DiZS7U d7M',10,'20-966-284-8065',-588.38,'FURNITURE','slyly special dependencies sleep furiously furiously final instructions. ironic theodolites sleep caref'), +(105,'Customer#000000105','4iSJe4L SPjg7kJj98Yz3z0B',10,'20-793-553-6417',9091.82,'MACHINERY','quietly express ideas wake regular courts. carefully express instructi'), +(106,'Customer#000000106','xGCOEAUjUNG',1,'11-751-989-4627',3288.42,'MACHINERY','requests sleep carefully among the blithely ironic pac'), +(107,'Customer#000000107','Zwg64UZ,q7GRqo3zm7P1tZIRshBDz',15,'25-336-529-9919',2514.15,'AUTOMOBILE','packages haggle according to the dependencies. blithely even deposits shall nag? slyly regular courts nag bli'), +(108,'Customer#000000108','GPoeEvpKo1',5,'15-908-619-7526',2259.38,'BUILDING','blithely silent excuses cajole furiously. slyly even foxes integrate quickly regular '), +(109,'Customer#000000109','OOOkYBgCMzgMQXUmkocoLb56rfrdWp2NE2c',16,'26-992-422-8153',-716.1,'BUILDING','quickly bold asymptotes haggle dolphins. fu'), +(110,'Customer#000000110','mymPfgphaYXNYtk',10,'20-893-536-2069',7462.99,'AUTOMOBILE','blithely pending packages haggle slyly. unusual, bold accoun'), +(111,'Customer#000000111','CBSbPyOWRorloj2TBvrK9qp9tHBs',22,'32-582-283-7528',6505.26,'MACHINERY','quietly ironic pinto beans use about the quickly furious foxes. final accounts cajole quickly. furiously'), +(112,'Customer#000000112','RcfgG3bO7QeCnfjqJT1',19,'29-233-262-8382',2953.35,'FURNITURE','quickly express foxes are blithely. special, bold instructions unwind afte'), +(113,'Customer#000000113','eaOl5UBXIvdY57rglaIzqvfPD,MYfK',12,'22-302-930-4756',2912,'BUILDING','special, special dependencies sleep car'), +(114,'Customer#000000114','xAt 5f5AlFIU',14,'24-805-212-7646',1027.46,'FURNITURE','furiously special excuses according to the somas boost furiously above the'), +(115,'Customer#000000115','0WFt1IXENmUT2BgbsB0ShVKJZt0HCBCbFl0aHc',8,'18-971-699-1843',7508.92,'HOUSEHOLD','finally sly ideas sleep quickly final, regular excuses. blithely even instructions according to the quickly '), +(116,'Customer#000000116','yCuVxIgsZ3,qyK2rloThy3u',16,'26-632-309-5792',8403.99,'BUILDING','carefully final dependencies wake'), +(117,'Customer#000000117','uNhM,PzsRA3S,5Y Ge5Npuhi',24,'34-403-631-3505',3950.83,'FURNITURE','ironic requests cajole furiously around the regular, special requests. dependencies grow quickly. slyly regu'); +INSERT INTO customer VALUES +(118,'Customer#000000118','OVnFuHygK9wx3xpg8',18,'28-639-943-7051',3582.37,'AUTOMOBILE','foxes are slyly. ironic deposits haggle. theodolites haggle furiously quickly silent pinto beans. pending, '), +(119,'Customer#000000119','M1ETOIecuvH8DtM0Y0nryXfW',7,'17-697-919-8406',3930.35,'FURNITURE','regular, ironic theodolites alongside of the instructions haggle carefully even requests. packages '), +(120,'Customer#000000120','zBNna00AEInqyO1',12,'22-291-534-1571',363.75,'MACHINERY','carefully regular deposits breach slyly carefully careful accounts. carefully unusu'), +(121,'Customer#000000121','tv nCR2YKupGN73mQudO',17,'27-411-990-2959',6428.32,'BUILDING','excuses would affix. slyly unusual packages according to the permanent acc'), +(122,'Customer#000000122','yp5slqoNd26lAENZW3a67wSfXA6hTF',3,'13-702-694-4520',7865.46,'HOUSEHOLD','furiously regular instructions cajole furiously ideas. quickly bold foxes wake careful'), +(123,'Customer#000000123','YsOnaaER8MkvK5cpf4VSlq',5,'15-817-151-1168',5897.83,'BUILDING','slyly regular accounts use blithely. silent instructions haggle blithely silent packages. ironic ac'), +(124,'Customer#000000124','aTbyVAW5tCd,v09O',18,'28-183-750-7809',1842.49,'AUTOMOBILE','final requests along the special reque'), +(125,'Customer#000000125',',wSZXdVR xxIIfm9s8ITyLl3kgjT6UC07GY0Y',19,'29-261-996-3120',-234.12,'FURNITURE','special instructions use above the carefully quick packages. closely fi'), +(126,'Customer#000000126','ha4EHmbx3kg DYCsP6DFeUOmavtQlHhcfaqr',22,'32-755-914-7592',1001.39,'HOUSEHOLD','carefully special requests after the slyly regular packages sleep furiously slyly final epitaphs. '), +(127,'Customer#000000127','Xyge4DX2rXKxXyye1Z47LeLVEYMLf4Bfcj',21,'31-101-672-2951',9280.71,'MACHINERY','slyly pending deposits sleep according to the furiously regular packages. slyly ironic packages s'), +(128,'Customer#000000128','AmKUMlJf2NRHcKGmKjLS',4,'14-280-874-8044',-986.96,'HOUSEHOLD','instructions nag ironic foxes. regular, pending platelets bo'), +(129,'Customer#000000129','q7m7rbMM0BpaCdmxloCgBDRCleXsXkdD8kf',7,'17-415-148-7416',9127.27,'HOUSEHOLD','carefully regular deposits sleep furiously regular, final requests. grouches'), +(130,'Customer#000000130','RKPx2OfZy0Vn 8wGWZ7F2EAvmMORl1k8iH',9,'19-190-993-9281',5073.58,'HOUSEHOLD','blithely express packages affix fu'), +(131,'Customer#000000131','jyN6lAjb1FtH10rMC,XzlWyCBrg75',11,'21-840-210-3572',8595.53,'HOUSEHOLD','blithely final foxes along the carefully silent theodolite'), +(132,'Customer#000000132','QM5YabAsTLp9',4,'14-692-150-9717',162.57,'HOUSEHOLD','silent packages haggle carefully even '), +(133,'Customer#000000133','IMCuXdpIvdkYO92kgDGuyHgojcUs88p',17,'27-408-997-8430',2314.67,'AUTOMOBILE','regular sheaves cajole fluffily slyly final deposits. carefully ironic packa'), +(134,'Customer#000000134','sUiZ78QCkTQPICKpA9OBzkUp2FM',11,'21-200-159-5932',4608.9,'BUILDING','blithely slow attainments are about the bold'), +(135,'Customer#000000135','oZK,oC0 fdEpqUML',19,'29-399-293-6241',8732.91,'FURNITURE','busily final deposits run furiously-- quickly unusual requests across the slyly express multipliers wa'), +(136,'Customer#000000136','QoLsJ0v5C1IQbh,DS1',7,'17-501-210-4726',-842.39,'FURNITURE','furiously express accounts cajole: blithely pendin'), +(137,'Customer#000000137','cdW91p92rlAEHgJafqYyxf1Q',16,'26-777-409-5654',7838.3,'HOUSEHOLD','unusual, regular instructions sleep express packages. iro'), +(138,'Customer#000000138','5uyLAeY7HIGZqtu66Yn08f',5,'15-394-860-4589',430.59,'MACHINERY','quickly final accounts are blithely fluffily final acco'), +(139,'Customer#000000139','3ElvBwudHKL02732YexGVFVt ',9,'19-140-352-1403',7897.78,'MACHINERY','blithely special requests x-ray furiously. quickly final acco'), +(140,'Customer#000000140','XRqEPiKgcETII,iOLDZp5jA',4,'14-273-885-6505',9963.15,'MACHINERY','furiously even deposits are furiously. silent platelets are alongsid'), +(141,'Customer#000000141','5IW,WROVnikc3l7DwiUDGQNGsLBGOL6Dc0',1,'11-936-295-6204',6706.14,'FURNITURE','special theodolites engage quickly ironi'); +INSERT INTO customer VALUES +(142,'Customer#000000142','AnJ5lxtLjioClr2khl9pb8NLxG2,',9,'19-407-425-2584',2209.81,'AUTOMOBILE','blithely ironic packages kindle blithely. regular requests run. s'), +(143,'Customer#000000143','681r22uL452zqk 8By7I9o9enQfx0',16,'26-314-406-7725',2186.5,'MACHINERY','slyly special accounts cajole furiously among the dinos. ironic requests among the blithely s'), +(144,'Customer#000000144','VxYZ3ebhgbltnetaGjNC8qCccjYU05 fePLOno8y',1,'11-717-379-4478',6417.31,'MACHINERY','fluffily regular requests at the blithely even theodolites haggle around the requests. special frets x-'), +(145,'Customer#000000145','kQjHmt2kcec cy3hfMh969u',13,'23-562-444-8454',9748.93,'HOUSEHOLD','always unusual ideas boost fluffily about the fluffily unusual deposits. fluffily unusual dolphins p'), +(146,'Customer#000000146','GdxkdXG9u7iyI1,,y5tq4ZyrcEy',3,'13-835-723-3223',3328.68,'FURNITURE','ironic dependencies affix fluffily furiously ironic accounts. blithel'), +(147,'Customer#000000147','6VvIwbVdmcsMzuu,C84GtBWPaipGfi7DV',18,'28-803-187-4335',8071.4,'AUTOMOBILE','blithely ironic deposits nag according to the furiously ironic request'), +(148,'Customer#000000148','BhSPlEWGvIJyT9swk vCWE',11,'21-562-498-6636',2135.6,'HOUSEHOLD','final pinto beans integrate bli'), +(149,'Customer#000000149','3byTHCp2mNLPigUrrq',19,'29-797-439-6760',8959.65,'AUTOMOBILE','fluffily unusual theodolites x-ray. even deposits should haggle through the slyly even warthogs'), +(150,'Customer#000000150','zeoGShTjCwGPplOWFkLURrh41O0AZ8dwNEEN4 ',18,'28-328-564-7630',3849.48,'MACHINERY','furiously ironic excuses wake. regular, bold packages use carefully across t'); + +CREATE TABLE lineitem ( + l_orderkey int(11) NOT NULL DEFAULT '0', + l_partkey int(11) DEFAULT NULL, + l_suppkey int(11) DEFAULT NULL, + l_linenumber int(11) NOT NULL DEFAULT '0', + l_quantity double DEFAULT NULL, + l_extendedprice double DEFAULT NULL, + l_discount double DEFAULT NULL, + l_tax double DEFAULT NULL, + l_returnflag char(1) DEFAULT NULL, + l_linestatus char(1) DEFAULT NULL, + l_shipDATE date DEFAULT NULL, + l_commitDATE date DEFAULT NULL, + l_receiptDATE date DEFAULT NULL, + l_shipinstruct char(25) DEFAULT NULL, + l_shipmode char(10) DEFAULT NULL, + l_comment varchar(44) DEFAULT NULL, + PRIMARY KEY (l_orderkey,l_linenumber), + KEY i_l_shipdate (l_shipDATE), + KEY i_l_suppkey_partkey (l_partkey,l_suppkey), + KEY i_l_partkey (l_partkey), + KEY i_l_suppkey (l_suppkey), + KEY i_l_receiptdate (l_receiptDATE), + KEY i_l_orderkey (l_orderkey), + KEY i_l_orderkey_quantity (l_orderkey,l_quantity), + KEY i_l_commitdate (l_commitDATE) +); +INSERT INTO lineitem VALUES +(1,156,4,1,17,17954.55,0.04,0.02,'N','O','1996-03-13','1996-02-12','1996-03-22','DELIVER IN PERSON','TRUCK','blithely regular ideas caj'), +(1,68,9,2,36,34850.16,0.09,0.06,'N','O','1996-04-12','1996-02-28','1996-04-20','TAKE BACK RETURN','MAIL','slyly bold pinto beans detect s'), +(1,64,5,3,8,7712.48,0.1,0.02,'N','O','1996-01-29','1996-03-05','1996-01-31','TAKE BACK RETURN','REG AIR','deposits wake furiously dogged,'), +(1,3,6,4,28,25284,0.09,0.06,'N','O','1996-04-21','1996-03-30','1996-05-16','NONE','AIR','even ideas haggle. even, bold reque'), +(1,25,8,5,24,22200.48,0.1,0.04,'N','O','1996-03-30','1996-03-14','1996-04-01','NONE','FOB','carefully final gr'), +(1,16,3,6,32,29312.32,0.07,0.02,'N','O','1996-01-30','1996-02-07','1996-02-03','DELIVER IN PERSON','MAIL','furiously regular accounts haggle bl'), +(2,107,2,1,38,38269.8,0,0.05,'N','O','1997-01-28','1997-01-14','1997-02-02','TAKE BACK RETURN','RAIL','carefully ironic platelets against t'), +(3,5,2,1,45,40725,0.06,0,'R','F','1994-02-02','1994-01-04','1994-02-23','NONE','AIR','blithely s'), +(3,20,10,2,49,45080.98,0.1,0,'R','F','1993-11-09','1993-12-20','1993-11-24','TAKE BACK RETURN','RAIL','final, regular pinto'), +(3,129,8,3,27,27786.24,0.06,0.07,'A','F','1994-01-16','1993-11-22','1994-01-23','DELIVER IN PERSON','SHIP','carefully silent pinto beans boost fur'), +(3,30,5,4,2,1860.06,0.01,0.06,'A','F','1993-12-04','1994-01-07','1994-01-01','NONE','TRUCK','fluffily unusual deposits hag'), +(3,184,5,5,28,30357.04,0.04,0,'R','F','1993-12-14','1994-01-10','1994-01-01','TAKE BACK RETURN','FOB','blithely pending platelets according'), +(3,63,8,6,26,25039.56,0.1,0.02,'A','F','1993-10-29','1993-12-18','1993-11-04','TAKE BACK RETURN','RAIL','ideas until the unusual packages c'), +(4,89,10,1,30,29672.4,0.03,0.08,'N','O','1996-01-10','1995-12-14','1996-01-18','DELIVER IN PERSON','REG AIR','special dependencies am'), +(5,109,10,1,15,15136.5,0.02,0.04,'R','F','1994-10-31','1994-08-31','1994-11-20','NONE','AIR','unusual, even instructio'), +(5,124,5,2,26,26627.12,0.07,0.08,'R','F','1994-10-16','1994-09-25','1994-10-19','NONE','FOB','blithely even accoun'), +(5,38,4,3,50,46901.5,0.08,0.03,'A','F','1994-08-08','1994-10-13','1994-08-26','DELIVER IN PERSON','AIR','express platelets integr'), +(6,140,6,1,37,38485.18,0.08,0.03,'A','F','1992-04-27','1992-05-15','1992-05-02','TAKE BACK RETURN','TRUCK','ruthlessly unusual warhorses sleep slyly af'), +(7,183,4,1,12,12998.16,0.07,0.03,'N','O','1996-05-07','1996-03-13','1996-06-03','TAKE BACK RETURN','FOB','pending requests sleep furiously above'), +(7,146,3,2,9,9415.26,0.08,0.08,'N','O','1996-02-01','1996-03-02','1996-02-19','TAKE BACK RETURN','SHIP','carefully spe'), +(7,95,8,3,46,45774.14,0.1,0.07,'N','O','1996-01-15','1996-03-27','1996-02-03','COLLECT COD','MAIL','carefully exp'), +(7,164,5,4,28,29796.48,0.03,0.04,'N','O','1996-03-21','1996-04-08','1996-04-20','NONE','FOB','final deposits are quickly. furiously even'), +(7,152,4,5,38,39981.7,0.08,0.01,'N','O','1996-02-11','1996-02-24','1996-02-18','DELIVER IN PERSON','TRUCK','blithely expres'), +(7,80,10,6,35,34302.8,0.06,0.03,'N','O','1996-01-16','1996-02-23','1996-01-22','TAKE BACK RETURN','FOB','blithely silent accoun'), +(7,158,3,7,5,5290.75,0.04,0.02,'N','O','1996-02-10','1996-03-26','1996-02-13','NONE','FOB','furiously pending theodolit'), +(32,83,4,1,28,27526.24,0.05,0.08,'N','O','1995-10-23','1995-08-27','1995-10-26','TAKE BACK RETURN','TRUCK','ironic requests dazzle. final d'), +(32,198,10,2,32,35142.08,0.02,0,'N','O','1995-08-14','1995-10-07','1995-08-27','COLLECT COD','AIR','regular accounts cajole'), +(32,45,2,3,2,1890.08,0.09,0.02,'N','O','1995-08-07','1995-10-07','1995-08-23','DELIVER IN PERSON','AIR','furiously bold deposits '), +(32,3,8,4,4,3612,0.09,0.03,'N','O','1995-08-04','1995-10-01','1995-09-03','NONE','REG AIR','slyly bold requests nag. fluffily'), +(32,86,7,5,44,43387.52,0.05,0.06,'N','O','1995-08-28','1995-08-20','1995-09-14','DELIVER IN PERSON','AIR','slyly ironic notornis bo'); +INSERT INTO lineitem VALUES +(32,12,6,6,6,5472.06,0.04,0.03,'N','O','1995-07-21','1995-09-23','1995-07-25','COLLECT COD','RAIL','requests integrat'), +(33,62,7,1,31,29823.86,0.09,0.04,'A','F','1993-10-29','1993-12-19','1993-11-08','COLLECT COD','TRUCK','slyly even requests are f'), +(33,61,8,2,32,30753.92,0.02,0.05,'A','F','1993-12-09','1994-01-04','1993-12-28','COLLECT COD','MAIL','special theodolites boost '), +(33,138,4,3,5,5190.65,0.05,0.03,'A','F','1993-12-09','1993-12-25','1993-12-23','TAKE BACK RETURN','AIR','bold requests affix alongside of the slyly '), +(33,34,5,4,41,38295.23,0.09,0,'R','F','1993-11-09','1994-01-24','1993-11-11','TAKE BACK RETURN','MAIL','furiously regular deposits are carefully id'), +(34,89,10,1,13,12858.04,0,0.07,'N','O','1998-10-23','1998-09-14','1998-11-06','NONE','REG AIR','regular deposits grow. regu'), +(34,90,1,2,22,21781.98,0.08,0.06,'N','O','1998-10-09','1998-10-16','1998-10-12','NONE','FOB','carefully idle ins'), +(34,170,7,3,6,6421.02,0.02,0.06,'N','O','1998-10-30','1998-09-20','1998-11-05','NONE','FOB','furiously final ideas thrash carefully bo'), +(35,1,4,1,24,21624,0.02,0,'N','O','1996-02-21','1996-01-03','1996-03-18','TAKE BACK RETURN','FOB','dolphins along the slyly ir'), +(35,162,1,2,34,36113.44,0.06,0.08,'N','O','1996-01-22','1996-01-06','1996-01-27','DELIVER IN PERSON','RAIL','fluffily final deposits are bl'), +(35,121,4,3,7,7147.84,0.06,0.04,'N','O','1996-01-19','1995-12-22','1996-01-29','NONE','MAIL','quickly even depo'), +(35,86,7,4,25,24652,0.06,0.05,'N','O','1995-11-26','1995-12-25','1995-12-21','DELIVER IN PERSON','SHIP','slyly special excuses wake carefully ironic'), +(35,120,7,5,34,34684.08,0.08,0.06,'N','O','1995-11-08','1996-01-15','1995-11-26','COLLECT COD','MAIL','quickly regular instructions try t'), +(35,31,7,6,28,26068.84,0.03,0.02,'N','O','1996-02-01','1995-12-24','1996-02-28','COLLECT COD','RAIL','slyly final foxes haggle blithely de'), +(36,120,1,1,42,42845.04,0.09,0,'N','O','1996-02-03','1996-01-21','1996-02-23','COLLECT COD','SHIP','accounts sleep furiously bli'), +(37,23,8,1,40,36920.8,0.09,0.03,'A','F','1992-07-21','1992-08-01','1992-08-15','NONE','REG AIR','slyly final accounts caj'), +(37,127,6,2,39,40057.68,0.05,0.02,'A','F','1992-07-02','1992-08-18','1992-07-28','TAKE BACK RETURN','RAIL','regular, final packages are after the'), +(37,13,7,3,43,39259.43,0.05,0.08,'A','F','1992-07-10','1992-07-06','1992-08-02','DELIVER IN PERSON','TRUCK','fluffily f'), +(38,176,5,1,44,47351.48,0.04,0.02,'N','O','1996-09-29','1996-11-17','1996-09-30','COLLECT COD','MAIL','carefully final packages'), +(39,3,10,1,44,39732,0.09,0.06,'N','O','1996-11-14','1996-12-15','1996-12-12','COLLECT COD','RAIL','theodolites are bold foxes. fi'), +(39,187,8,2,26,28266.68,0.08,0.04,'N','O','1996-11-04','1996-10-20','1996-11-20','NONE','FOB','carefully even instructions sleep car'), +(39,68,3,3,46,44530.76,0.06,0.08,'N','O','1996-09-26','1996-12-19','1996-10-26','DELIVER IN PERSON','AIR','ideas cajole '), +(39,21,6,4,32,29472.64,0.07,0.05,'N','O','1996-10-02','1996-12-19','1996-10-14','COLLECT COD','MAIL','final theodolites'), +(39,55,10,5,43,41067.15,0.01,0.01,'N','O','1996-10-17','1996-11-14','1996-10-26','COLLECT COD','MAIL','ideas haggle '), +(39,95,7,6,40,39803.6,0.06,0.05,'N','O','1996-12-08','1996-10-22','1997-01-01','COLLECT COD','AIR','enticingly even'), +(64,86,7,1,21,20707.68,0.05,0.02,'R','F','1994-09-30','1994-09-18','1994-10-26','DELIVER IN PERSON','REG AIR','furiously regular'), +(65,60,5,1,26,24961.56,0.03,0.03,'A','F','1995-04-20','1995-04-25','1995-05-13','NONE','TRUCK','silent, regular accounts wake careful'), +(65,74,3,2,22,21429.54,0,0.05,'N','O','1995-07-17','1995-06-04','1995-07-19','COLLECT COD','FOB','regular, pending theodolites are'), +(65,2,5,3,21,18942,0.09,0.07,'N','O','1995-07-06','1995-05-14','1995-07-31','DELIVER IN PERSON','RAIL','ironically regular theodolites ha'), +(66,116,10,1,31,31499.41,0,0.08,'R','F','1994-02-19','1994-03-11','1994-02-20','TAKE BACK RETURN','RAIL','closely bo'); +INSERT INTO lineitem VALUES +(66,174,5,2,41,44040.97,0.04,0.07,'A','F','1994-02-21','1994-03-01','1994-03-18','COLLECT COD','AIR','furiously final waters are sl'), +(67,22,5,1,4,3688.08,0.09,0.04,'N','O','1997-04-17','1997-01-31','1997-04-20','NONE','SHIP','carefully final theodolites inte'), +(67,21,10,2,12,11052.24,0.09,0.05,'N','O','1997-01-27','1997-02-21','1997-02-22','NONE','REG AIR','carefully bold pa'), +(67,174,4,3,5,5370.85,0.03,0.07,'N','O','1997-02-20','1997-02-12','1997-02-21','DELIVER IN PERSON','TRUCK','bold excuses wake quickly ac'), +(67,88,9,4,44,43475.52,0.08,0.06,'N','O','1997-03-18','1997-01-29','1997-04-13','DELIVER IN PERSON','RAIL','pending ideas after the deposits cajole f'), +(67,41,10,5,23,21643.92,0.05,0.07,'N','O','1997-04-19','1997-02-14','1997-05-06','DELIVER IN PERSON','REG AIR','unusual depos'), +(67,179,9,6,29,31295.93,0.02,0.05,'N','O','1997-01-25','1997-01-27','1997-01-27','DELIVER IN PERSON','FOB','furiously regular ideas abov'), +(68,8,1,1,3,2724,0.05,0.02,'N','O','1998-07-04','1998-06-05','1998-07-21','NONE','RAIL','ironic, ironic '), +(68,176,4,2,46,49503.82,0.02,0.05,'N','O','1998-06-26','1998-06-07','1998-07-05','NONE','MAIL','special reque'), +(68,35,1,3,46,43011.38,0.04,0.05,'N','O','1998-08-13','1998-07-08','1998-08-29','NONE','RAIL','blithely ironic packages sleep f'), +(68,95,9,4,20,19901.8,0.07,0.01,'N','O','1998-06-27','1998-05-23','1998-07-02','NONE','REG AIR','fluffily specia'), +(68,83,4,5,27,26543.16,0.03,0.06,'N','O','1998-06-19','1998-06-25','1998-06-29','DELIVER IN PERSON','SHIP','quickly fi'), +(68,103,6,6,30,30093,0.05,0.06,'N','O','1998-08-11','1998-07-11','1998-08-14','NONE','RAIL','final, regular pinto beans nag a'), +(68,140,6,7,41,42645.74,0.09,0.08,'N','O','1998-06-24','1998-06-27','1998-07-06','NONE','SHIP','final, bold dolph'), +(69,116,10,1,48,48773.28,0.01,0.07,'A','F','1994-08-17','1994-08-11','1994-09-08','NONE','TRUCK','dependencies serve'), +(69,105,10,2,32,32163.2,0.08,0.06,'A','F','1994-08-24','1994-08-17','1994-08-31','NONE','REG AIR','express attainment'), +(69,138,4,3,17,17648.21,0.09,0,'A','F','1994-07-02','1994-07-07','1994-07-03','TAKE BACK RETURN','AIR','carefully regular requests sleep a'), +(69,38,9,4,3,2814.09,0.09,0.04,'R','F','1994-06-06','1994-07-27','1994-06-15','NONE','MAIL','regular dependencies are car'), +(69,93,6,5,42,41709.78,0.07,0.04,'R','F','1994-07-31','1994-07-26','1994-08-28','DELIVER IN PERSON','REG AIR','ideas are carefully pending asymptotes. '), +(69,19,3,6,23,21137.23,0.05,0,'A','F','1994-10-03','1994-08-06','1994-10-24','NONE','SHIP','sly theodolites along th'), +(70,65,2,1,8,7720.48,0.03,0.08,'R','F','1994-01-12','1994-02-27','1994-01-14','TAKE BACK RETURN','FOB','even pinto beans are alongside o'), +(70,197,10,2,13,14263.47,0.06,0.06,'A','F','1994-03-03','1994-02-13','1994-03-26','COLLECT COD','AIR','excuses haggl'), +(70,180,8,3,1,1080.18,0.03,0.05,'R','F','1994-01-26','1994-03-05','1994-01-28','TAKE BACK RETURN','RAIL','even packages haggle carefull'), +(70,46,9,4,11,10406.44,0.01,0.05,'A','F','1994-03-17','1994-03-17','1994-03-27','NONE','MAIL','regular, even pinto beans along the furious'), +(70,38,9,5,37,34707.11,0.09,0.04,'R','F','1994-02-13','1994-03-16','1994-02-21','COLLECT COD','MAIL','fluffily even deposits nag fluffil'), +(70,56,8,6,19,18164.95,0.06,0.03,'A','F','1994-01-26','1994-02-17','1994-02-06','TAKE BACK RETURN','SHIP','slyly special ideas after the r'), +(71,62,3,1,25,24051.5,0.09,0.07,'N','O','1998-04-10','1998-04-22','1998-04-11','COLLECT COD','FOB','unusual platelets are'), +(71,66,1,2,3,2898.18,0.09,0.07,'N','O','1998-05-23','1998-04-03','1998-06-02','COLLECT COD','SHIP','slyly regu'), +(71,35,1,3,45,42076.35,0,0.07,'N','O','1998-02-23','1998-03-20','1998-03-24','DELIVER IN PERSON','SHIP','accounts lose about the iro'), +(71,97,9,4,33,32903.97,0,0.01,'N','O','1998-04-12','1998-03-20','1998-04-15','NONE','FOB','pending accounts sleep furiously pinto '), +(71,104,7,5,39,39159.9,0.08,0.06,'N','O','1998-01-29','1998-04-07','1998-02-18','DELIVER IN PERSON','RAIL','bravely regular packag'); +INSERT INTO lineitem VALUES +(71,196,9,6,34,37270.46,0.04,0.01,'N','O','1998-03-05','1998-04-22','1998-03-30','DELIVER IN PERSON','TRUCK','quickly express ideas detect blithely acros'), +(96,124,7,1,23,23554.76,0.1,0.06,'A','F','1994-07-19','1994-06-29','1994-07-25','DELIVER IN PERSON','TRUCK','furiously express f'), +(96,136,7,2,30,31083.9,0.01,0.06,'R','F','1994-06-03','1994-05-29','1994-06-22','DELIVER IN PERSON','TRUCK','regular ide'), +(97,120,4,1,13,13261.56,0,0.02,'R','F','1993-04-01','1993-04-04','1993-04-08','NONE','TRUCK','slyly final packages affix f'), +(97,50,7,2,37,35151.85,0.02,0.06,'A','F','1993-04-13','1993-03-30','1993-04-14','DELIVER IN PERSON','SHIP','blithely bold deposits are at th'), +(97,78,6,3,19,18583.33,0.06,0.08,'R','F','1993-05-14','1993-03-05','1993-05-25','TAKE BACK RETURN','RAIL','permanent hockey players'), +(98,41,2,1,28,26349.12,0.06,0.07,'A','F','1994-12-24','1994-10-25','1995-01-16','COLLECT COD','REG AIR','final, silent ideas wake fluffily regular m'), +(98,110,7,2,1,1010.11,0,0,'A','F','1994-12-01','1994-12-12','1994-12-15','DELIVER IN PERSON','TRUCK','carefully pen'), +(98,45,6,3,14,13230.56,0.05,0.02,'A','F','1994-12-30','1994-11-22','1995-01-27','COLLECT COD','AIR','regular deposits wake'), +(98,168,9,4,10,10681.6,0.03,0.03,'A','F','1994-10-23','1994-11-08','1994-11-09','COLLECT COD','RAIL','regular braids s'), +(99,88,9,1,10,9880.8,0.02,0.01,'A','F','1994-05-18','1994-06-03','1994-05-23','COLLECT COD','RAIL','unusual, ironi'), +(99,124,5,2,5,5120.6,0.02,0.07,'R','F','1994-05-06','1994-05-28','1994-05-20','TAKE BACK RETURN','RAIL','blithely unusual t'), +(99,135,1,3,42,43475.46,0.02,0.02,'A','F','1994-04-19','1994-05-18','1994-04-20','NONE','RAIL','blithely regular deposits'), +(99,109,2,4,36,36327.6,0.09,0.02,'A','F','1994-07-04','1994-04-17','1994-07-30','DELIVER IN PERSON','AIR','quickly regular packages cajole furious'), +(100,63,4,1,28,26965.68,0.04,0.05,'N','O','1998-05-08','1998-05-13','1998-06-07','COLLECT COD','TRUCK','stealthily ironic packages according to th'), +(100,116,10,2,22,22354.42,0,0.07,'N','O','1998-06-24','1998-04-12','1998-06-29','DELIVER IN PERSON','SHIP','regular depo'), +(100,47,4,3,46,43563.84,0.03,0.04,'N','O','1998-05-02','1998-04-10','1998-05-22','TAKE BACK RETURN','SHIP','furiously regular accounts hagg'), +(100,39,10,4,14,13146.42,0.06,0.03,'N','O','1998-05-22','1998-05-01','1998-06-03','COLLECT COD','MAIL','carefully even pinto beans after the dog'), +(100,54,6,5,37,35299.85,0.05,0,'N','O','1998-03-06','1998-04-16','1998-03-31','TAKE BACK RETURN','TRUCK','slyly special packages nag against t'), +(101,119,9,1,49,49936.39,0.1,0,'N','O','1996-06-21','1996-05-27','1996-06-29','DELIVER IN PERSON','REG AIR','carefully even '), +(101,164,9,2,36,38309.76,0,0.01,'N','O','1996-05-19','1996-05-01','1996-06-04','DELIVER IN PERSON','AIR','final deposit'), +(101,139,5,3,12,12469.56,0.06,0.02,'N','O','1996-03-29','1996-04-20','1996-04-12','COLLECT COD','MAIL','final packages gr'), +(102,89,10,1,37,36595.96,0.06,0,'N','O','1997-07-24','1997-08-02','1997-08-07','TAKE BACK RETURN','SHIP','fluffily regular ideas ar'), +(102,170,5,2,34,36385.78,0.03,0.08,'N','O','1997-08-09','1997-07-28','1997-08-26','TAKE BACK RETURN','SHIP','quickly express packa'), +(102,183,4,3,25,27079.5,0.01,0.01,'N','O','1997-07-31','1997-07-24','1997-08-17','NONE','RAIL','instructions sleep. carefully even de'), +(102,62,7,4,15,14430.9,0.07,0.07,'N','O','1997-06-02','1997-07-13','1997-06-04','DELIVER IN PERSON','SHIP','carefully qu'), +(103,195,9,1,6,6571.14,0.03,0.05,'N','O','1996-10-11','1996-07-25','1996-10-28','NONE','FOB','carefully bold packages are slyly even'), +(103,11,5,2,37,33707.37,0.02,0.07,'N','O','1996-09-17','1996-07-27','1996-09-20','TAKE BACK RETURN','MAIL','furiously even ideas cajole '), +(103,29,10,3,23,21367.46,0.01,0.04,'N','O','1996-09-11','1996-09-18','1996-09-26','NONE','FOB','dolphins b'), +(103,30,9,4,32,29760.96,0.01,0.07,'N','O','1996-07-30','1996-08-06','1996-08-04','NONE','RAIL','platelets sleep quick'); +INSERT INTO lineitem VALUES +(128,107,10,1,38,38269.8,0.06,0.01,'A','F','1992-09-01','1992-08-27','1992-10-01','TAKE BACK RETURN','FOB','carefully bold ac'), +(129,3,6,1,46,41538,0.08,0.02,'R','F','1993-02-15','1993-01-24','1993-03-05','COLLECT COD','TRUCK','even accounts after the'), +(129,186,7,2,36,39102.48,0.01,0.02,'A','F','1992-11-25','1992-12-25','1992-12-09','TAKE BACK RETURN','REG AIR','blithely regular dolphins int'), +(129,40,6,3,33,31021.32,0.04,0.06,'A','F','1993-01-08','1993-02-14','1993-01-29','COLLECT COD','SHIP','deposits serve slyly quickly ironi'), +(129,136,7,4,34,35228.42,0,0.01,'R','F','1993-01-29','1993-02-14','1993-02-10','COLLECT COD','MAIL','carefully regular foxes are furiou'), +(129,32,8,5,24,22368.72,0.06,0,'A','F','1992-12-07','1993-01-02','1992-12-11','TAKE BACK RETURN','FOB','furiously unusual theodolites acr'), +(129,78,6,6,22,21517.54,0.06,0.01,'R','F','1993-02-15','1993-01-31','1993-02-24','COLLECT COD','SHIP','final realms affi'), +(129,169,6,7,1,1069.16,0.05,0.04,'R','F','1993-01-26','1993-01-08','1993-02-24','DELIVER IN PERSON','FOB','busily express i'), +(130,129,10,1,14,14407.68,0.08,0.05,'A','F','1992-08-15','1992-07-25','1992-09-13','COLLECT COD','RAIL','carefully bold theodolites '), +(130,2,5,2,48,43296,0.03,0.02,'R','F','1992-07-01','1992-07-12','1992-07-24','NONE','AIR','express, stealthy frets haggle. f'), +(130,12,3,3,18,16416.18,0.04,0.08,'A','F','1992-07-04','1992-06-14','1992-07-29','DELIVER IN PERSON','MAIL','blithely unusua'), +(130,116,6,4,13,13209.43,0.09,0.02,'R','F','1992-06-26','1992-07-29','1992-07-05','NONE','FOB','carefully busy asymp'), +(130,70,7,5,31,30072.17,0.06,0.05,'R','F','1992-09-01','1992-07-18','1992-09-02','TAKE BACK RETURN','RAIL','fluffily even pla'), +(131,168,7,1,45,48067.2,0.1,0.02,'R','F','1994-09-14','1994-09-02','1994-10-04','NONE','FOB','express asymptotes eat'), +(131,45,8,2,50,47252,0.02,0.04,'A','F','1994-09-17','1994-08-10','1994-09-21','NONE','SHIP','ironic asymptotes eat ruthlessl'), +(131,190,1,3,4,4360.76,0.04,0.03,'A','F','1994-09-20','1994-08-30','1994-09-23','COLLECT COD','REG AIR','slyly final excuses haggle furiou'), +(132,141,8,1,18,18740.52,0,0.08,'R','F','1993-07-10','1993-08-05','1993-07-13','NONE','TRUCK','bold, final asymptotes nag fluffily aga'), +(132,120,1,2,43,43865.16,0.01,0.08,'R','F','1993-09-01','1993-08-16','1993-09-22','NONE','TRUCK','ironic, express deposits haggle fluffil'), +(132,115,6,3,32,32483.52,0.04,0.04,'A','F','1993-07-12','1993-08-05','1993-08-05','COLLECT COD','TRUCK','furiously ironic requests'), +(132,29,2,4,23,21367.46,0.1,0,'A','F','1993-06-16','1993-08-27','1993-06-23','DELIVER IN PERSON','AIR','blithely pending pac'), +(133,104,7,1,27,27110.7,0,0.02,'N','O','1997-12-21','1998-02-23','1997-12-27','TAKE BACK RETURN','MAIL','furiously final ideas s'), +(133,177,5,2,12,12926.04,0.02,0.06,'N','O','1997-12-02','1998-01-15','1997-12-29','DELIVER IN PERSON','REG AIR','finally brave dependencies could have to d'), +(133,118,8,3,29,29525.19,0.09,0.08,'N','O','1998-02-28','1998-01-30','1998-03-09','DELIVER IN PERSON','RAIL','ironic, pe'), +(133,90,1,4,11,10890.99,0.06,0.01,'N','O','1998-03-21','1998-01-15','1998-04-04','DELIVER IN PERSON','REG AIR','carefully regular '), +(134,1,2,1,21,18921,0,0.03,'A','F','1992-07-17','1992-07-08','1992-07-26','COLLECT COD','SHIP','quickly final packages'), +(134,165,2,2,35,37280.6,0.06,0.07,'A','F','1992-08-23','1992-06-01','1992-08-24','NONE','MAIL','slowly bold ideas haggle cl'), +(134,189,10,3,26,28318.68,0.09,0.06,'A','F','1992-06-20','1992-07-12','1992-07-16','NONE','RAIL','pending accounts could have'), +(134,145,6,4,47,49121.58,0.05,0,'A','F','1992-08-16','1992-07-06','1992-08-28','NONE','REG AIR','final, ironic deposits'), +(134,36,7,5,12,11232.36,0.05,0.02,'A','F','1992-07-03','1992-06-01','1992-07-11','COLLECT COD','TRUCK','silent Tiresias cajole. furiously bo'), +(134,134,10,6,12,12409.56,0,0,'A','F','1992-08-08','1992-07-07','1992-08-20','TAKE BACK RETURN','FOB','even, regular dep'); +INSERT INTO lineitem VALUES +(135,109,10,1,47,47427.7,0.06,0.08,'N','O','1996-02-18','1996-01-01','1996-02-25','COLLECT COD','RAIL','final deposits wa'), +(135,199,3,2,21,23082.99,0,0.07,'N','O','1996-02-11','1996-01-12','1996-02-13','DELIVER IN PERSON','SHIP','furiously express escapades against t'), +(135,158,10,3,33,34918.95,0.02,0,'N','O','1996-01-03','1995-11-21','1996-02-01','TAKE BACK RETURN','MAIL','furiously fina'), +(135,68,7,4,34,32914.04,0.02,0.03,'N','O','1996-01-12','1996-01-19','1996-02-05','NONE','TRUCK','bold, regular'), +(135,137,8,5,20,20742.6,0.01,0.04,'N','O','1996-01-25','1995-11-20','1996-02-09','NONE','MAIL','bold dugouts above the ironic dependenc'), +(135,115,5,6,13,13196.43,0.04,0.02,'N','O','1995-11-12','1995-12-22','1995-11-17','NONE','FOB','quickly regular pack'), +(160,15,2,1,36,32940.36,0.07,0.01,'N','O','1997-03-11','1997-03-11','1997-03-20','COLLECT COD','MAIL','foxes are blithely carefully even accounts.'), +(160,87,8,2,22,21715.76,0,0.04,'N','O','1997-02-18','1997-03-05','1997-03-05','COLLECT COD','RAIL','slyly fina'), +(160,21,10,3,34,31314.68,0.01,0.05,'N','O','1997-01-31','1997-03-13','1997-02-14','NONE','FOB','slyly unusual de'), +(161,103,10,1,19,19058.9,0.01,0.01,'A','F','1994-12-13','1994-11-19','1994-12-26','DELIVER IN PERSON','TRUCK','carefully quiet warthogs cajole '), +(162,190,1,1,2,2180.38,0.02,0.01,'N','O','1995-09-02','1995-06-17','1995-09-08','COLLECT COD','FOB','carefully ironic requests wake fluffily'), +(163,168,3,1,43,45930.88,0.01,0,'N','O','1997-09-19','1997-11-19','1997-10-03','COLLECT COD','REG AIR','final accounts cajole. carefully sil'), +(163,121,2,2,13,13274.56,0.01,0.04,'N','O','1997-11-11','1997-10-18','1997-12-07','DELIVER IN PERSON','TRUCK','furiously express ideas affix. requests '), +(163,37,3,3,27,25299.81,0.04,0.08,'N','O','1997-12-26','1997-11-28','1998-01-05','COLLECT COD','REG AIR','carefully special requests are after the'), +(163,193,5,4,5,5465.95,0.02,0,'N','O','1997-11-17','1997-10-09','1997-12-05','DELIVER IN PERSON','TRUCK','carefully '), +(163,127,2,5,12,12325.44,0.1,0,'N','O','1997-12-18','1997-10-26','1997-12-22','COLLECT COD','TRUCK','quickly final the'), +(163,191,4,6,20,21823.8,0,0.07,'N','O','1997-09-27','1997-11-15','1997-10-07','TAKE BACK RETURN','FOB','furiously bold requests a'), +(164,92,4,1,26,25794.34,0.09,0.04,'A','F','1993-01-04','1992-11-21','1993-01-07','NONE','RAIL','ironic foxes bey'), +(164,19,6,2,24,22056.24,0.05,0.05,'R','F','1992-12-22','1992-11-27','1993-01-06','NONE','AIR','ironic platelets detec'), +(164,126,9,3,38,38992.56,0.03,0.06,'R','F','1992-12-04','1992-11-23','1993-01-02','TAKE BACK RETURN','AIR','furiously ironic pinto '), +(164,18,2,4,32,29376.32,0.05,0.01,'R','F','1992-12-21','1992-12-23','1992-12-28','COLLECT COD','RAIL','unusual reque'), +(164,148,1,5,43,45070.02,0.06,0.01,'R','F','1992-11-26','1993-01-03','1992-12-08','COLLECT COD','RAIL','express, ironic requests haggl'), +(164,109,10,6,27,27245.7,0.1,0.04,'R','F','1992-12-23','1993-01-16','1993-01-10','DELIVER IN PERSON','AIR','furiously ironic packages detect above'), +(164,4,7,7,23,20792,0.09,0.04,'A','F','1992-11-03','1992-12-02','1992-11-12','NONE','REG AIR','even accounts cajole quickly'), +(165,34,5,1,3,2802.09,0.01,0.08,'R','F','1993-03-29','1993-03-06','1993-04-12','DELIVER IN PERSON','REG AIR','express packages are blithely. furiously e'), +(165,162,7,2,43,45672.88,0.08,0.05,'R','F','1993-02-27','1993-04-19','1993-03-03','DELIVER IN PERSON','TRUCK','carefully regular warhors'), +(165,59,1,3,15,14385.75,0,0.05,'R','F','1993-04-10','1993-03-29','1993-05-01','COLLECT COD','SHIP','depths solve slyly across th'), +(165,140,1,4,49,50966.86,0.07,0.06,'A','F','1993-02-20','1993-04-02','1993-03-10','COLLECT COD','REG AIR','express in'), +(165,156,4,5,27,28516.05,0.01,0.04,'R','F','1993-04-27','1993-03-04','1993-05-13','NONE','MAIL','asymptotes sublate alongside'), +(166,65,2,1,37,35707.22,0.09,0.03,'N','O','1995-11-16','1995-10-17','1995-12-13','NONE','MAIL','furiously silent ideas sleep blith'); +INSERT INTO lineitem VALUES +(166,167,8,2,13,13873.08,0.09,0.05,'N','O','1995-11-09','1995-11-18','1995-11-14','COLLECT COD','SHIP','regular, regular pinto beans sleep furi'), +(166,100,2,3,41,41004.1,0.07,0.03,'N','O','1995-11-13','1995-11-07','1995-12-08','COLLECT COD','FOB','final dolphins h'), +(166,46,3,4,8,7568.32,0.05,0.02,'N','O','1995-12-30','1995-11-29','1996-01-29','DELIVER IN PERSON','RAIL','deposits aro'), +(167,102,3,1,28,28058.8,0.06,0.01,'R','F','1993-02-19','1993-02-16','1993-03-03','DELIVER IN PERSON','TRUCK','blithely even'), +(167,172,2,2,27,28948.59,0.09,0,'R','F','1993-05-01','1993-03-31','1993-05-31','TAKE BACK RETURN','FOB','asymptotes cajole careful'), +(192,98,1,1,23,22956.07,0,0,'N','O','1998-02-05','1998-02-06','1998-03-07','TAKE BACK RETURN','AIR','regular braids are carefull'), +(192,162,7,2,20,21243.2,0.07,0.01,'N','O','1998-03-13','1998-02-02','1998-03-31','TAKE BACK RETURN','REG AIR','idly ironic ideas about t'), +(192,111,8,3,15,15166.65,0.09,0.01,'N','O','1998-01-30','1998-02-10','1998-02-23','TAKE BACK RETURN','TRUCK','silent, unusual accounts against t'), +(192,197,1,4,2,2194.38,0.06,0.02,'N','O','1998-03-06','1998-02-03','1998-03-24','COLLECT COD','SHIP','carefully final packages print b'), +(192,83,4,5,25,24577,0.02,0.03,'N','O','1998-02-15','1998-01-11','1998-03-17','COLLECT COD','TRUCK','accounts abou'), +(192,142,9,6,45,46896.3,0,0.05,'N','O','1998-03-11','1998-01-09','1998-04-03','NONE','MAIL','fluffily regular requests detect car'), +(193,93,5,1,9,8937.81,0.06,0.06,'A','F','1993-09-17','1993-10-08','1993-09-30','COLLECT COD','TRUCK','daring, quick packages about the slyly '), +(193,154,6,2,15,15812.25,0.02,0.07,'R','F','1993-11-22','1993-10-09','1993-12-05','TAKE BACK RETURN','SHIP','pinto beans doubt f'), +(193,94,6,3,23,22864.07,0.06,0.05,'A','F','1993-08-21','1993-10-11','1993-09-02','DELIVER IN PERSON','TRUCK','blithely pending dependencies ca'), +(194,3,6,1,17,15351,0.05,0.04,'R','F','1992-05-24','1992-05-22','1992-05-30','COLLECT COD','AIR','carefully unusual attainment'), +(194,184,5,2,1,1084.18,0.04,0.06,'R','F','1992-04-30','1992-05-18','1992-05-23','NONE','REG AIR','furiously i'), +(194,66,1,3,13,12558.78,0.08,0.08,'A','F','1992-05-07','1992-06-18','1992-05-10','NONE','AIR','regular, ironic accounts a'), +(194,146,7,4,36,37661.04,0,0.05,'R','F','1992-05-21','1992-05-18','1992-05-27','TAKE BACK RETURN','RAIL','theodolites against the fluffily'), +(194,57,2,5,8,7656.4,0.04,0,'R','F','1992-07-06','1992-06-25','1992-07-11','COLLECT COD','FOB','busy, bold ideas'), +(194,149,6,6,16,16786.24,0.06,0.03,'A','F','1992-05-14','1992-06-14','1992-05-21','TAKE BACK RETURN','TRUCK','slyly unusual requests sleep furiousl'), +(194,168,7,7,21,22431.36,0.02,0.01,'R','F','1992-05-06','1992-05-20','1992-05-07','COLLECT COD','REG AIR','foxes breach blit'), +(195,85,6,1,6,5910.48,0.04,0.02,'A','F','1994-01-09','1994-03-27','1994-01-28','COLLECT COD','REG AIR','furiously silent requests '), +(195,94,8,2,41,40757.69,0.05,0.07,'A','F','1994-02-24','1994-02-11','1994-03-20','NONE','TRUCK','slyly regular'), +(195,86,7,3,34,33526.72,0.08,0.08,'R','F','1994-01-31','1994-02-11','1994-02-12','NONE','TRUCK','slyly ironic requests '), +(195,86,7,4,41,40429.28,0.06,0.04,'R','F','1994-03-14','1994-03-13','1994-04-09','COLLECT COD','RAIL','carefully even foxes daz'), +(196,136,7,1,19,19686.47,0.03,0.02,'R','F','1993-04-17','1993-05-27','1993-04-30','NONE','SHIP','carefully busy d'), +(196,10,3,2,15,13650.15,0.03,0.04,'A','F','1993-07-05','1993-05-08','1993-07-06','TAKE BACK RETURN','SHIP','slyly close theodolites play blithely fur'), +(197,99,1,1,39,38964.51,0.02,0.04,'N','O','1995-07-21','1995-07-01','1995-08-14','TAKE BACK RETURN','AIR','unusual sentiments ab'), +(197,178,8,2,8,8625.36,0.09,0.02,'A','F','1995-04-17','1995-07-01','1995-04-27','DELIVER IN PERSON','SHIP','packages detect furiously'), +(197,156,4,3,17,17954.55,0.06,0.02,'N','O','1995-08-02','1995-06-23','1995-08-03','COLLECT COD','REG AIR','fluffily regular packages use aga'); +INSERT INTO lineitem VALUES +(197,18,5,4,25,22950.25,0.04,0.01,'N','F','1995-06-13','1995-05-23','1995-06-24','TAKE BACK RETURN','FOB','blithely regular deposits sleep alongside'), +(197,42,9,5,14,13188.56,0.09,0.01,'R','F','1995-05-08','1995-05-24','1995-05-12','TAKE BACK RETURN','RAIL','regular, unusual packag'), +(197,106,1,6,1,1006.1,0.07,0.05,'N','O','1995-07-15','1995-06-21','1995-08-11','COLLECT COD','RAIL','slyly special accounts affix '), +(198,57,8,1,33,31582.65,0.07,0.02,'N','O','1998-01-05','1998-03-20','1998-01-10','TAKE BACK RETURN','TRUCK','ironic excuses detect fluffily.'), +(198,16,10,2,20,18320.2,0.03,0,'N','O','1998-01-15','1998-03-31','1998-01-25','DELIVER IN PERSON','FOB','blithely final ideas '), +(198,149,2,3,15,15737.1,0.04,0.02,'N','O','1998-04-12','1998-02-26','1998-04-15','COLLECT COD','MAIL','fluffily final asymptotes wake along '), +(198,11,5,4,35,31885.35,0.08,0.02,'N','O','1998-02-27','1998-03-23','1998-03-14','TAKE BACK RETURN','RAIL','furiously reg'), +(198,102,3,5,33,33069.3,0.02,0.01,'N','O','1998-03-22','1998-03-12','1998-04-14','DELIVER IN PERSON','SHIP','quickly pending acc'), +(199,133,9,1,50,51656.5,0.02,0,'N','O','1996-06-12','1996-06-03','1996-07-04','DELIVER IN PERSON','MAIL','furiously fina'), +(199,134,5,2,30,31023.9,0.08,0.05,'N','O','1996-03-27','1996-05-29','1996-04-14','NONE','TRUCK','furiously express instructi'), +(224,151,2,1,16,16818.4,0.04,0,'A','F','1994-08-01','1994-07-30','1994-08-27','DELIVER IN PERSON','MAIL','pending pa'), +(224,109,2,2,34,34309.4,0.04,0.08,'R','F','1994-07-13','1994-08-25','1994-07-31','COLLECT COD','TRUCK','ruthlessly final deposits sleep fluffil'), +(224,190,1,3,41,44697.79,0.07,0.04,'A','F','1994-09-01','1994-09-15','1994-09-02','TAKE BACK RETURN','SHIP','carefully express theodolites haggle caref'), +(224,167,4,4,12,12805.92,0.08,0.06,'R','F','1994-10-12','1994-08-29','1994-10-20','DELIVER IN PERSON','MAIL','slyly even asympt'), +(224,94,7,5,45,44734.05,0.07,0.07,'R','F','1994-08-14','1994-09-02','1994-08-27','COLLECT COD','AIR','regular sauternes'), +(224,51,3,6,4,3804.2,0.02,0,'R','F','1994-09-08','1994-08-24','1994-10-04','DELIVER IN PERSON','FOB','fluffily ironic accounts cajol'), +(225,172,3,1,4,4288.68,0.09,0.07,'N','O','1995-08-05','1995-08-19','1995-09-03','TAKE BACK RETURN','SHIP','deposits use. reg'), +(225,131,7,2,3,3093.39,0,0.08,'N','O','1995-07-25','1995-07-08','1995-08-17','DELIVER IN PERSON','REG AIR','ironic accounts accordin'), +(225,199,2,3,45,49463.55,0.06,0.01,'N','O','1995-08-17','1995-08-20','1995-08-30','TAKE BACK RETURN','FOB','carefully unusual requests along the blith'), +(225,147,4,4,24,25131.36,0,0.06,'N','O','1995-09-23','1995-08-05','1995-10-16','COLLECT COD','MAIL','quickly ironic packages are'), +(225,8,5,5,31,28148,0.04,0.06,'N','O','1995-06-21','1995-07-24','1995-07-04','TAKE BACK RETURN','FOB','furiously ironic requests within t'), +(225,132,8,6,12,12385.56,0,0,'A','F','1995-06-04','1995-07-15','1995-06-08','COLLECT COD','MAIL','furiously expr'), +(225,142,1,7,44,45854.16,0.1,0.06,'N','O','1995-09-22','1995-08-16','1995-10-22','NONE','REG AIR','carefully ironic a'), +(226,97,9,1,4,3988.36,0,0,'R','F','1993-03-31','1993-04-30','1993-04-10','NONE','TRUCK','furiously final instruc'), +(226,138,4,2,46,47753.98,0.06,0.01,'A','F','1993-07-06','1993-04-24','1993-07-13','COLLECT COD','FOB','quickly final theodol'), +(226,38,4,3,35,32831.05,0.09,0.03,'A','F','1993-03-31','1993-05-18','1993-04-01','NONE','RAIL','packages wake slyly. furiously unusua'), +(226,41,10,4,45,42346.8,0.1,0.02,'R','F','1993-04-17','1993-05-27','1993-05-11','DELIVER IN PERSON','AIR','furiously even foxes was blithely sly'), +(226,118,8,5,2,2036.22,0.07,0.02,'R','F','1993-03-26','1993-04-13','1993-04-20','TAKE BACK RETURN','SHIP','ironic theodolites nag. slyly f'), +(226,83,4,6,48,47187.84,0.02,0,'A','F','1993-06-11','1993-05-15','1993-06-19','NONE','REG AIR','slyly close deposits haggle quickly under '), +(226,118,8,7,14,14253.54,0.09,0,'R','F','1993-05-20','1993-06-05','1993-05-27','COLLECT COD','MAIL','ideas use carefully. silent decoys cajole'); +INSERT INTO lineitem VALUES +(227,166,1,1,19,20257.04,0.05,0.06,'N','O','1995-12-10','1996-01-30','1995-12-26','NONE','RAIL','regular, final '), +(227,175,3,2,24,25804.08,0.07,0.07,'N','O','1996-02-03','1995-12-24','1996-02-12','COLLECT COD','SHIP','slyly unusual theodolites wake. caref'), +(228,5,8,1,3,2715,0.1,0.08,'A','F','1993-05-20','1993-04-08','1993-05-26','DELIVER IN PERSON','SHIP','regular packages detect slyly. c'), +(229,84,5,1,20,19681.6,0.02,0.03,'R','F','1994-01-11','1994-01-31','1994-01-26','DELIVER IN PERSON','REG AIR','final accounts integrate. blithe'), +(229,129,10,2,29,29844.48,0.07,0,'A','F','1994-03-15','1994-03-02','1994-03-26','COLLECT COD','SHIP','slyly pending Ti'), +(229,79,10,3,28,27413.96,0.02,0.02,'R','F','1994-02-10','1994-02-02','1994-03-10','DELIVER IN PERSON','FOB','final deposits'), +(229,177,6,4,3,3231.51,0.02,0.08,'R','F','1994-03-22','1994-03-24','1994-04-04','DELIVER IN PERSON','REG AIR','slyly silent deposits sleep carefu'), +(229,156,1,5,33,34852.95,0.03,0.06,'R','F','1994-03-25','1994-02-11','1994-04-13','NONE','FOB','asymptotes'), +(229,106,9,6,29,29176.9,0.04,0,'R','F','1994-01-14','1994-02-16','1994-01-22','NONE','FOB','furiously fi'), +(230,186,7,1,46,49964.28,0.09,0,'R','F','1994-02-03','1994-01-15','1994-02-23','TAKE BACK RETURN','SHIP','carefully even deposits boos'), +(230,195,7,2,6,6571.14,0.03,0.08,'A','F','1994-01-26','1994-01-25','1994-02-13','NONE','REG AIR','quickly silent dependencies wake slyl'), +(230,8,5,3,1,908,0.07,0.06,'R','F','1994-01-22','1994-01-03','1994-02-05','TAKE BACK RETURN','RAIL','furiously pending pinto beans in'), +(230,10,3,4,44,40040.44,0.08,0.06,'R','F','1994-02-09','1994-01-18','1994-03-11','NONE','MAIL','blithely regular pinto bean'), +(230,19,9,5,8,7352.08,0.09,0.06,'R','F','1993-11-03','1994-01-20','1993-11-11','TAKE BACK RETURN','TRUCK','furiously ironic e'), +(230,34,10,6,8,7472.24,0,0.05,'R','F','1993-11-21','1994-01-05','1993-12-19','TAKE BACK RETURN','FOB','platelets sleep along the carefully'), +(231,159,10,1,16,16946.4,0.04,0.08,'R','F','1994-11-20','1994-10-29','1994-12-17','TAKE BACK RETURN','AIR','slyly express requests are aroun'), +(231,84,5,2,46,45267.68,0.04,0.05,'R','F','1994-12-13','1994-12-02','1994-12-14','DELIVER IN PERSON','SHIP','carefully regular dolphins'), +(231,199,1,3,50,54959.5,0.09,0.01,'A','F','1994-12-11','1994-12-14','1994-12-13','NONE','RAIL','bold packag'), +(231,57,8,4,31,29668.55,0.08,0.02,'A','F','1994-11-05','1994-12-27','1994-11-30','TAKE BACK RETURN','SHIP','bold requests boost carefully against the e'), +(256,89,10,1,22,21759.76,0.09,0.02,'R','F','1994-01-12','1993-12-28','1994-01-26','COLLECT COD','FOB','slyly final dependencies acc'), +(256,119,6,2,40,40764.4,0.1,0.01,'A','F','1993-11-30','1993-12-13','1993-12-02','NONE','FOB','carefully p'), +(256,130,9,3,45,46355.85,0.02,0.08,'R','F','1994-01-14','1994-01-17','1994-02-10','COLLECT COD','SHIP','pending package'), +(257,147,8,1,7,7329.98,0.05,0.02,'N','O','1998-06-18','1998-05-15','1998-06-27','COLLECT COD','FOB','blithely unusual inst'), +(258,107,4,1,8,8056.8,0,0.07,'R','F','1994-01-20','1994-03-21','1994-02-09','NONE','REG AIR','quick theodolites above th'), +(258,197,1,2,40,43887.6,0.1,0.01,'A','F','1994-03-13','1994-02-23','1994-04-05','DELIVER IN PERSON','FOB','quickly final platele'), +(258,162,3,3,45,47797.2,0.07,0.07,'R','F','1994-03-04','1994-02-13','1994-03-30','DELIVER IN PERSON','TRUCK','instructions boos'), +(258,133,9,4,31,32027.03,0.02,0.05,'A','F','1994-04-20','1994-03-20','1994-04-28','COLLECT COD','REG AIR','slyly pending ideas cajole. caref'), +(258,36,2,5,25,23400.75,0.08,0.02,'A','F','1994-04-13','1994-02-26','1994-04-29','TAKE BACK RETURN','TRUCK','slyly regular r'), +(258,147,4,6,36,37697.04,0.09,0.04,'A','F','1994-01-11','1994-03-04','1994-01-18','DELIVER IN PERSON','AIR','blithely ironic accounts'), +(259,99,10,1,14,13987.26,0,0.08,'A','F','1993-12-17','1993-12-09','1993-12-31','COLLECT COD','SHIP','pending, pending instructions'); +INSERT INTO lineitem VALUES +(259,162,1,2,14,14870.24,0.03,0.05,'R','F','1993-11-10','1993-11-20','1993-11-17','DELIVER IN PERSON','FOB','requests up the packages in'), +(259,24,5,3,42,38808.84,0.09,0,'R','F','1993-10-20','1993-11-18','1993-11-12','NONE','TRUCK','pending pinto beans are.'), +(259,196,10,4,3,3288.57,0.08,0.06,'R','F','1993-10-04','1993-11-07','1993-10-14','TAKE BACK RETURN','SHIP','packages must cajole slyly even '), +(259,193,6,5,6,6559.14,0,0.05,'R','F','1993-12-05','1993-12-22','1993-12-21','COLLECT COD','TRUCK','quickly even accounts haggle carefully'), +(260,156,7,1,50,52807.5,0.07,0.08,'N','O','1997-03-24','1997-02-09','1997-04-20','TAKE BACK RETURN','REG AIR','regular, regular pin'), +(260,183,4,2,26,28162.68,0.02,0.07,'N','O','1996-12-12','1997-02-06','1996-12-15','NONE','TRUCK','quickly even dependen'), +(260,42,1,3,27,25435.08,0.05,0.08,'N','O','1997-03-23','1997-02-15','1997-04-22','TAKE BACK RETURN','RAIL','express theodolites should en'), +(260,6,1,4,29,26274,0.1,0.06,'N','O','1997-03-15','1997-01-14','1997-04-13','NONE','MAIL','accounts haggle. final, bold requests use f'), +(260,96,9,5,44,43827.96,0.01,0.05,'N','O','1997-03-26','1997-02-03','1997-04-19','DELIVER IN PERSON','MAIL','furiously final deposits among the blithely'), +(261,2,7,1,34,30668,0.05,0.08,'R','F','1993-08-18','1993-09-24','1993-08-20','COLLECT COD','REG AIR','quickly even accoun'), +(261,66,7,2,20,19321.2,0,0.06,'R','F','1993-10-21','1993-08-02','1993-11-04','DELIVER IN PERSON','RAIL','quickly final dolphins ought to are-- '), +(261,174,3,3,28,30076.76,0.08,0.03,'R','F','1993-07-24','1993-08-20','1993-08-05','COLLECT COD','AIR','furiously even in'), +(261,119,3,4,49,49936.39,0.04,0.05,'R','F','1993-09-12','1993-08-31','1993-10-07','COLLECT COD','SHIP','blithely express foxes nag. even fo'), +(261,61,6,5,49,47091.94,0.01,0.08,'A','F','1993-09-29','1993-09-08','1993-10-01','COLLECT COD','SHIP','final theo'), +(261,97,9,6,20,19941.8,0.06,0.06,'A','F','1993-10-15','1993-09-05','1993-11-07','NONE','AIR','pinto beans haggle ironic, bold pa'), +(262,192,3,1,39,42595.41,0.01,0.05,'N','O','1996-01-15','1996-02-18','1996-01-28','COLLECT COD','RAIL','ironic deposits '), +(262,61,6,2,33,31714.98,0.09,0.03,'N','O','1996-03-10','1996-01-31','1996-03-27','TAKE BACK RETURN','AIR','theodolites cajole slyly above the fluffil'), +(262,59,1,3,35,33566.75,0.05,0.08,'N','O','1996-03-12','1996-02-14','1996-04-11','COLLECT COD','MAIL','quickly unusua'), +(263,24,9,1,22,20328.44,0.06,0.08,'R','F','1994-08-24','1994-06-20','1994-09-09','NONE','FOB','pending foxes are quickly alongside of the '), +(263,85,6,2,9,8865.72,0.08,0,'A','F','1994-07-21','1994-07-16','1994-08-08','TAKE BACK RETURN','TRUCK','express, express requests sleep quickly '), +(263,143,2,3,50,52157,0.06,0.04,'R','F','1994-08-18','1994-07-31','1994-08-22','NONE','TRUCK','carefully expr'), +(288,51,3,1,31,29482.55,0,0.03,'N','O','1997-03-17','1997-04-28','1997-04-06','TAKE BACK RETURN','AIR','silently reg'), +(288,117,1,2,49,49838.39,0.08,0.05,'N','O','1997-04-19','1997-05-19','1997-05-18','TAKE BACK RETURN','TRUCK','blithely final '), +(288,99,10,3,36,35967.24,0.02,0.02,'N','O','1997-02-22','1997-05-07','1997-03-07','TAKE BACK RETURN','TRUCK','slyly even foxes alongside of '), +(288,79,10,4,19,18602.33,0.07,0.07,'N','O','1997-03-14','1997-04-04','1997-03-26','NONE','MAIL','special requests sleep alongside of the re'), +(288,162,9,5,31,32926.96,0.1,0.04,'N','O','1997-05-29','1997-04-24','1997-06-20','TAKE BACK RETURN','RAIL','carefully express deposits wake quickly '), +(289,174,2,1,25,26854.25,0.07,0.05,'N','O','1997-03-18','1997-05-05','1997-04-15','DELIVER IN PERSON','FOB','quickly regular theodolites detect a'), +(289,112,2,2,6,6072.66,0.06,0.05,'N','O','1997-02-18','1997-05-08','1997-03-19','DELIVER IN PERSON','SHIP','furiously '), +(289,17,4,3,44,40348.44,0.1,0.08,'N','O','1997-06-05','1997-04-20','1997-07-02','COLLECT COD','MAIL','slyly even deposits cajole furi'); +INSERT INTO lineitem VALUES +(289,40,6,4,48,45121.92,0.01,0.08,'N','O','1997-03-14','1997-03-30','1997-03-24','DELIVER IN PERSON','RAIL','slyly furious accounts x-ray'), +(289,47,4,5,13,12311.52,0.1,0.03,'N','O','1997-06-08','1997-04-06','1997-06-18','TAKE BACK RETURN','REG AIR','furiously unusual requ'), +(290,6,1,1,35,31710,0.01,0.02,'R','F','1994-04-01','1994-02-05','1994-04-27','NONE','MAIL','theodolites'), +(290,129,4,2,2,2058.24,0.05,0.04,'A','F','1994-01-30','1994-02-13','1994-02-21','TAKE BACK RETURN','TRUCK','unusual, special dependen'), +(290,2,5,3,5,4510,0.03,0.05,'A','F','1994-01-19','1994-02-24','1994-01-27','NONE','MAIL','even frays mold. final'), +(290,124,9,4,23,23554.76,0.05,0.08,'R','F','1994-03-14','1994-02-21','1994-04-09','NONE','AIR','blithely u'), +(291,123,6,1,21,21485.52,0.05,0.07,'A','F','1994-05-26','1994-05-10','1994-06-23','COLLECT COD','TRUCK','sly theodolites use after th'), +(291,138,9,2,19,19724.47,0.08,0.02,'R','F','1994-06-14','1994-04-25','1994-06-19','NONE','REG AIR','thin dolphi'), +(291,61,8,3,30,28831.8,0.1,0.02,'R','F','1994-03-22','1994-04-30','1994-03-24','DELIVER IN PERSON','FOB','regular pearls above t'), +(292,154,5,1,8,8433.2,0.1,0.03,'R','F','1992-02-18','1992-03-30','1992-03-18','DELIVER IN PERSON','RAIL','furiously regular excuses'), +(292,100,1,2,24,24002.4,0.08,0.04,'R','F','1992-03-24','1992-03-06','1992-04-20','COLLECT COD','TRUCK','ironic instructions '), +(293,9,6,1,14,12726,0.02,0.05,'R','F','1992-10-19','1992-12-23','1992-11-10','DELIVER IN PERSON','SHIP','regular foxes boost furiously.'), +(293,187,8,2,11,11958.98,0.1,0.04,'R','F','1992-12-24','1992-12-01','1993-01-12','COLLECT COD','MAIL','fluffily even platelets upon the special, s'), +(293,118,8,3,13,13235.43,0.04,0.02,'A','F','1992-12-17','1992-12-26','1992-12-22','COLLECT COD','RAIL','dependencies nag blithely. '), +(294,60,2,1,31,29761.86,0,0.01,'R','F','1993-08-06','1993-08-19','1993-08-13','TAKE BACK RETURN','AIR','slyly unusual ideas haggle'), +(295,198,10,1,29,31847.51,0.02,0.07,'A','F','1994-11-09','1994-12-08','1994-12-07','COLLECT COD','MAIL','express deposits haggle. fluffily'), +(295,92,6,2,26,25794.34,0.04,0.03,'R','F','1994-12-13','1994-11-30','1995-01-06','DELIVER IN PERSON','AIR','carefully even p'), +(295,16,10,3,8,7328.08,0.1,0.07,'R','F','1995-01-13','1994-11-17','1995-01-25','NONE','TRUCK','ideas haggle. slyly special dolphin'), +(295,61,10,4,26,24987.56,0.1,0.04,'A','F','1995-01-12','1994-11-22','1995-01-22','DELIVER IN PERSON','MAIL','quickly final acc'), +(320,5,2,1,30,27150,0.05,0.01,'N','O','1997-12-04','1998-01-21','1997-12-13','NONE','RAIL','quickly even frets unwind carefully acc'), +(320,193,5,2,13,14211.47,0.03,0,'N','O','1997-12-16','1997-12-26','1997-12-17','TAKE BACK RETURN','AIR','final, ironic packa'), +(321,1,8,1,21,18921,0.01,0.08,'A','F','1993-07-18','1993-04-24','1993-08-13','TAKE BACK RETURN','REG AIR','final asymptotes haggle '), +(321,141,4,2,41,42686.74,0.08,0.07,'R','F','1993-06-21','1993-06-07','1993-07-09','NONE','REG AIR','carefully final account'), +(322,153,8,1,12,12637.8,0.08,0.07,'A','F','1992-06-29','1992-05-30','1992-07-11','NONE','AIR','carefully unusual instructions'), +(322,44,5,2,48,45313.92,0.02,0.07,'A','F','1992-06-11','1992-06-16','1992-06-26','COLLECT COD','RAIL','furiously ironi'), +(322,13,3,3,20,18260.2,0.04,0.01,'R','F','1992-04-26','1992-05-04','1992-05-22','DELIVER IN PERSON','MAIL','ironic instructions are sl'), +(322,184,5,4,10,10841.8,0.06,0.03,'R','F','1992-04-12','1992-05-13','1992-04-14','DELIVER IN PERSON','AIR','busy theodolites detect fluffily'), +(322,12,2,5,35,31920.35,0.07,0.06,'A','F','1992-07-17','1992-05-03','1992-08-14','TAKE BACK RETURN','RAIL','blithely ironic accounts are a'), +(322,34,5,6,3,2802.09,0.08,0.05,'A','F','1992-07-03','1992-05-10','1992-07-28','NONE','AIR','deposits detect above the slyly fin'), +(322,38,4,7,5,4690.15,0.01,0.02,'A','F','1992-04-15','1992-05-12','1992-04-26','COLLECT COD','REG AIR','ironic, express'); +INSERT INTO lineitem VALUES +(323,164,9,1,50,53208,0.05,0.04,'A','F','1994-04-20','1994-04-25','1994-05-12','DELIVER IN PERSON','REG AIR','bold dependenc'), +(323,96,8,2,18,17929.62,0.06,0.07,'R','F','1994-04-13','1994-06-02','1994-05-10','DELIVER IN PERSON','TRUCK','accounts lose slyl'), +(323,143,4,3,9,9388.26,0.07,0.04,'A','F','1994-06-26','1994-06-10','1994-07-13','COLLECT COD','TRUCK','ironic, regular acco'), +(324,200,3,1,26,28605.2,0.07,0.01,'R','F','1992-04-19','1992-05-28','1992-05-12','DELIVER IN PERSON','RAIL','slyly express packa'), +(325,159,1,1,34,36011.1,0.09,0.04,'A','F','1993-10-28','1993-12-13','1993-11-17','TAKE BACK RETURN','MAIL','furiously pending instructions a'), +(325,186,7,2,5,5430.9,0.07,0.08,'A','F','1994-01-02','1994-01-05','1994-01-04','TAKE BACK RETURN','MAIL','unusual theodolites nag quickly agai'), +(325,19,3,3,35,32165.35,0.07,0.07,'A','F','1993-12-06','1994-01-03','1993-12-26','DELIVER IN PERSON','REG AIR','regular de'), +(326,180,9,1,41,44287.38,0.06,0.03,'N','O','1995-08-30','1995-07-09','1995-09-12','DELIVER IN PERSON','TRUCK','deposits cajole am'), +(326,20,4,2,38,34960.76,0.02,0.08,'N','O','1995-09-12','1995-08-23','1995-09-14','COLLECT COD','RAIL','furiously final asymptotes boost. quickly '), +(326,184,5,3,25,27104.5,0.03,0.04,'N','O','1995-08-03','1995-07-27','1995-08-16','NONE','AIR','quickly even platelets after the '), +(326,85,6,4,5,4925.4,0.03,0.08,'N','O','1995-07-29','1995-07-13','1995-08-12','NONE','REG AIR','furiously ironic packages against the b'), +(326,35,6,5,31,28985.93,0.04,0.08,'N','O','1995-09-27','1995-07-06','1995-10-22','NONE','TRUCK','ruthlessly ironic ins'), +(326,157,9,6,41,43343.15,0.02,0,'N','O','1995-07-05','1995-07-23','1995-07-20','TAKE BACK RETURN','REG AIR','silent, express pinto beans'), +(326,43,10,7,47,44322.88,0.04,0.04,'N','O','1995-09-16','1995-07-04','1995-10-04','NONE','REG AIR','carefully even accounts snoo'), +(327,144,3,1,16,16706.24,0.03,0.01,'N','O','1995-07-05','1995-06-07','1995-07-09','TAKE BACK RETURN','TRUCK','regular packages are alongside'), +(327,42,9,2,9,8478.36,0.09,0.05,'A','F','1995-05-24','1995-07-11','1995-06-05','NONE','AIR','theodolites play along'), +(352,64,5,1,17,16389.02,0.07,0.05,'R','F','1994-06-02','1994-05-31','1994-06-29','NONE','FOB','fluffily regular theodolites '), +(353,120,7,1,41,41824.92,0,0.06,'A','F','1994-03-25','1994-03-31','1994-03-30','DELIVER IN PERSON','AIR','blithely even theodolite'), +(353,148,9,2,29,30396.06,0.09,0,'A','F','1994-01-11','1994-03-19','1994-02-09','COLLECT COD','FOB','bold, pending theodolites breach. account'), +(353,135,1,3,12,12421.56,0.06,0.01,'R','F','1994-01-02','1994-03-26','1994-01-19','DELIVER IN PERSON','RAIL','carefully express reques'), +(353,78,7,4,46,44991.22,0,0.04,'A','F','1994-04-14','1994-01-31','1994-05-05','DELIVER IN PERSON','FOB','fluffily silent '), +(353,117,4,5,9,9153.99,0.02,0.02,'A','F','1994-03-15','1994-03-20','1994-03-18','TAKE BACK RETURN','RAIL','deposits haggle furiously around the caref'), +(353,103,4,6,39,39120.9,0.02,0.05,'A','F','1994-01-15','1994-03-30','1994-02-01','NONE','MAIL','furiously pending requests pla'), +(354,50,7,1,14,13300.7,0.08,0.04,'N','O','1996-04-12','1996-06-03','1996-05-08','NONE','SHIP','slyly regular accounts aga'), +(354,194,8,2,24,26260.56,0.01,0.01,'N','O','1996-05-08','1996-05-17','1996-06-07','DELIVER IN PERSON','AIR','slyly even dependencies alongside of the'), +(354,59,10,3,50,47952.5,0.08,0.05,'N','O','1996-03-21','1996-05-20','1996-04-04','COLLECT COD','TRUCK','fluffily ironic theodolites wake slyly '), +(354,107,4,4,7,7049.7,0.06,0.01,'N','O','1996-05-07','1996-04-18','1996-05-24','NONE','MAIL','blithely ironic notornis wake accordi'), +(354,31,2,5,18,16758.54,0.04,0.08,'N','O','1996-03-31','1996-05-13','1996-04-27','DELIVER IN PERSON','RAIL','quickly thin accounts ha'), +(354,62,1,6,36,34634.16,0.03,0.02,'N','O','1996-03-19','1996-05-29','1996-03-30','NONE','AIR','carefully express requests use'), +(354,5,10,7,14,12670,0.01,0.07,'N','O','1996-07-06','1996-06-08','1996-07-10','TAKE BACK RETURN','MAIL','ironic accounts sleep fur'); +INSERT INTO lineitem VALUES +(355,114,1,1,31,31437.41,0.09,0.07,'A','F','1994-07-13','1994-08-18','1994-07-18','DELIVER IN PERSON','FOB','furiously express deposits h'), +(355,97,1,2,41,40880.69,0.05,0,'A','F','1994-08-15','1994-07-19','1994-09-06','DELIVER IN PERSON','TRUCK','slyly bold sautern'), +(356,46,7,1,4,3784.16,0.1,0.01,'A','F','1994-07-28','1994-08-01','1994-08-04','DELIVER IN PERSON','REG AIR','carefully ironic deposits detect r'), +(356,108,3,2,48,48388.8,0.02,0.03,'R','F','1994-08-12','1994-07-31','1994-08-26','NONE','FOB','even dependencies'), +(356,119,3,3,35,35668.85,0.08,0.07,'R','F','1994-10-14','1994-07-31','1994-10-23','COLLECT COD','TRUCK','express foxes sleep furi'), +(356,56,1,4,41,39198.05,0.07,0.05,'A','F','1994-09-28','1994-09-20','1994-10-07','COLLECT COD','SHIP','blithely ironic theodolites integr'), +(356,125,8,5,37,37929.44,0.05,0.03,'A','F','1994-07-15','1994-08-24','1994-08-09','DELIVER IN PERSON','FOB','requests ca'), +(357,114,5,1,26,26366.86,0.06,0.03,'N','O','1996-12-28','1996-11-26','1997-01-13','NONE','FOB','fluffy, even warthogs wake '), +(357,186,7,2,36,39102.48,0.07,0.06,'N','O','1996-12-28','1996-11-13','1997-01-24','DELIVER IN PERSON','AIR','always ironic deposi'), +(357,165,2,3,32,34085.12,0.05,0.07,'N','O','1997-01-28','1996-12-29','1997-02-14','NONE','MAIL','final deposits after the '), +(358,191,3,1,41,44738.79,0.06,0.01,'A','F','1993-11-18','1993-11-14','1993-11-28','NONE','TRUCK','carefully express accounts c'), +(358,190,1,2,32,34886.08,0.05,0.08,'A','F','1993-10-18','1993-12-12','1993-10-31','NONE','TRUCK','quickly even instructions wake.'), +(358,169,6,3,40,42766.4,0.09,0.01,'A','F','1993-12-05','1993-11-04','1994-01-01','COLLECT COD','MAIL','furiously regul'), +(358,97,10,4,15,14956.35,0.08,0.08,'A','F','1993-10-04','1993-12-17','1993-10-23','TAKE BACK RETURN','MAIL','blithely idle requests nag c'), +(358,29,2,5,18,16722.36,0.01,0.02,'R','F','1993-10-07','1993-11-01','1993-10-26','COLLECT COD','SHIP','deposits affix slyly ideas. boldly f'), +(358,162,3,6,32,33989.12,0.03,0.05,'R','F','1993-12-21','1993-11-06','1994-01-17','DELIVER IN PERSON','RAIL','fluffily blithe accounts wak'), +(358,83,4,7,45,44238.6,0.05,0.02,'A','F','1993-12-08','1993-10-29','1993-12-30','NONE','REG AIR','silent requests along the even asymp'), +(359,166,7,1,30,31984.8,0,0.08,'A','F','1995-01-06','1995-02-20','1995-01-20','TAKE BACK RETURN','AIR','special theodolites cajole. bl'), +(359,12,9,2,18,16416.18,0,0.03,'A','F','1995-01-27','1995-03-18','1995-01-31','DELIVER IN PERSON','RAIL','accounts doubt special foxes. careful'), +(359,132,8,3,17,17546.21,0.07,0.06,'A','F','1995-01-31','1995-03-18','1995-02-10','COLLECT COD','SHIP','furiously ironic accounts haggle'), +(359,90,1,4,38,37623.42,0.1,0.08,'R','F','1995-03-30','1995-01-20','1995-04-25','DELIVER IN PERSON','RAIL','enticing somas cajole car'), +(359,168,5,5,11,11749.76,0.01,0.03,'A','F','1995-02-15','1995-01-27','1995-02-18','NONE','FOB','slyly regular ideas sleep'), +(359,183,4,6,23,24913.14,0.04,0.07,'R','F','1995-01-31','1995-03-11','1995-02-16','DELIVER IN PERSON','REG AIR','idly final theodolites haggle quickly. p'), +(384,179,8,1,38,41008.46,0.07,0.01,'R','F','1992-06-02','1992-04-18','1992-06-10','DELIVER IN PERSON','TRUCK','carefully final '), +(384,64,3,2,49,47238.94,0.09,0.07,'A','F','1992-04-01','1992-04-25','1992-04-18','COLLECT COD','AIR','ironic, silent accounts wake furiously '), +(384,182,3,3,11,11903.98,0.02,0.08,'A','F','1992-04-02','1992-04-21','1992-04-15','COLLECT COD','MAIL','packages shall sleep fluffily! sly'), +(384,93,6,4,11,10923.99,0,0.06,'R','F','1992-06-24','1992-05-29','1992-07-22','COLLECT COD','TRUCK','carefully '), +(384,132,8,5,14,14449.82,0.08,0.06,'R','F','1992-06-14','1992-05-29','1992-07-05','DELIVER IN PERSON','TRUCK','bold, pending foxes boost si'), +(385,167,6,1,7,7470.12,0.05,0.06,'N','O','1996-05-23','1996-05-09','1996-06-06','DELIVER IN PERSON','REG AIR','pending, regu'), +(385,54,9,2,46,43886.3,0.08,0.07,'N','O','1996-03-29','1996-05-17','1996-04-18','NONE','REG AIR','slow notornis wake slyly quickly fin'); +INSERT INTO lineitem VALUES +(386,153,5,1,39,41072.85,0.1,0.07,'A','F','1995-05-10','1995-02-28','1995-05-25','NONE','SHIP','unusual, express'), +(386,69,4,2,16,15504.96,0.06,0.01,'A','F','1995-04-12','1995-04-18','1995-05-11','DELIVER IN PERSON','MAIL','fluffily regular packages use slyly'), +(386,131,2,3,37,38151.81,0.09,0.04,'A','F','1995-05-23','1995-03-01','1995-05-25','TAKE BACK RETURN','MAIL','carefully regular foxe'), +(387,137,8,1,1,1037.13,0.08,0.03,'N','O','1997-05-06','1997-04-23','1997-05-10','NONE','SHIP','slyly regular courts are slyly pac'), +(387,153,4,2,42,44232.3,0.07,0.05,'N','O','1997-05-25','1997-02-25','1997-05-29','DELIVER IN PERSON','RAIL','regular, blithe theo'), +(387,97,10,3,40,39883.6,0.09,0.02,'N','O','1997-03-08','1997-04-18','1997-03-31','COLLECT COD','TRUCK','slyly final reque'), +(387,56,7,4,19,18164.95,0.08,0,'N','O','1997-03-14','1997-04-21','1997-04-04','NONE','REG AIR','slyly bold deposits kindle carefully'), +(387,149,6,5,32,33572.48,0.08,0.06,'N','O','1997-05-02','1997-04-11','1997-05-11','DELIVER IN PERSON','TRUCK','final asymptotes sleep at the silent,'), +(388,33,9,1,42,39187.26,0.05,0.06,'R','F','1993-02-21','1993-02-26','1993-03-15','COLLECT COD','FOB','special accounts are slyly. expres'), +(388,128,9,2,46,47293.52,0.07,0.01,'A','F','1993-03-22','1993-01-26','1993-03-24','COLLECT COD','FOB','quickly even requests haggle furiously rut'), +(388,65,2,3,40,38602.4,0.06,0.01,'A','F','1992-12-24','1993-01-28','1993-01-19','TAKE BACK RETURN','REG AIR','quickly regular packages integrate. quickl'), +(389,190,1,1,2,2180.38,0.09,0,'R','F','1994-04-13','1994-04-10','1994-04-25','TAKE BACK RETURN','RAIL','ironic requests wak'), +(390,107,10,1,10,10071,0.02,0.05,'N','O','1998-05-26','1998-07-06','1998-06-23','TAKE BACK RETURN','SHIP','slyly regular dependencies wake aft'), +(390,124,7,2,17,17410.04,0.09,0.06,'N','O','1998-06-07','1998-06-14','1998-07-07','COLLECT COD','SHIP','slyly special packages haggle slyly unusual'), +(390,184,5,3,46,49872.28,0.07,0.04,'N','O','1998-06-06','1998-05-20','1998-06-14','DELIVER IN PERSON','SHIP','blithely express deposits slee'), +(390,142,3,4,42,43769.88,0.01,0.05,'N','O','1998-06-06','1998-06-22','1998-07-05','COLLECT COD','SHIP','express requ'), +(390,128,3,5,13,13365.56,0.02,0.06,'N','O','1998-07-08','1998-05-10','1998-07-18','DELIVER IN PERSON','SHIP','special ideas afte'), +(390,125,4,6,11,11276.32,0.09,0.06,'N','O','1998-05-05','1998-05-15','1998-06-01','DELIVER IN PERSON','SHIP','blithely silent'), +(390,85,6,7,24,23641.92,0.05,0.02,'N','O','1998-04-18','1998-05-19','1998-04-28','TAKE BACK RETURN','AIR','regular, enticing theodolites r'), +(391,122,1,1,14,14309.68,0.09,0.02,'R','F','1995-02-11','1995-02-03','1995-02-13','TAKE BACK RETURN','TRUCK','slyly ironic packages nag f'), +(416,94,6,1,25,24852.25,0,0.05,'A','F','1993-10-11','1993-11-26','1993-10-21','DELIVER IN PERSON','TRUCK','furiously bold ideas boost furiou'), +(416,111,1,2,22,22244.42,0.1,0,'R','F','1993-12-27','1993-12-17','1994-01-09','COLLECT COD','RAIL','final excuses are above the express asympt'), +(416,175,5,3,25,26879.25,0.07,0.01,'R','F','1993-10-16','1993-12-03','1993-10-29','NONE','AIR','furiously bold acc'), +(417,40,1,1,39,36661.56,0.01,0.02,'A','F','1994-05-31','1994-05-02','1994-06-06','NONE','SHIP','special accounts detect f'), +(417,70,7,2,18,17461.26,0,0.01,'R','F','1994-03-29','1994-04-10','1994-04-26','TAKE BACK RETURN','FOB','ironic, unusual pinto beans unwind slyl'), +(417,45,2,3,41,38746.64,0.1,0.01,'R','F','1994-04-11','1994-03-08','1994-05-06','COLLECT COD','RAIL','quick requests cajole ruthlessl'), +(417,132,3,4,2,2064.26,0.01,0.03,'R','F','1994-02-13','1994-04-19','1994-03-15','DELIVER IN PERSON','SHIP','carefully regular pin'), +(418,19,3,1,31,28489.31,0,0.03,'N','F','1995-06-05','1995-06-18','1995-06-26','COLLECT COD','FOB','carefully regula'), +(418,2,5,2,1,902,0.04,0.07,'N','O','1995-06-23','1995-06-16','1995-07-23','DELIVER IN PERSON','AIR','blithely u'); +INSERT INTO lineitem VALUES +(418,35,1,3,3,2805.09,0.04,0.06,'N','O','1995-06-29','1995-07-12','1995-07-01','COLLECT COD','AIR','special instructions wake'), +(419,153,8,1,33,34753.95,0.05,0.02,'N','O','1996-11-06','1996-12-25','1996-11-20','TAKE BACK RETURN','TRUCK','final instructions hagg'), +(419,65,2,2,32,30881.92,0.01,0.06,'N','O','1996-12-04','1996-12-04','1996-12-24','COLLECT COD','SHIP','furiously careful deposits nag '), +(419,71,1,3,15,14566.05,0.07,0.04,'N','O','1996-12-17','1996-11-28','1996-12-19','TAKE BACK RETURN','REG AIR','blithely even'), +(419,9,6,4,15,13635,0.01,0.02,'N','O','1997-01-09','1996-12-22','1997-01-25','COLLECT COD','FOB','requests above the quickly regular '), +(419,149,2,5,17,17835.38,0.01,0,'N','O','1997-01-13','1996-12-20','1997-02-01','COLLECT COD','REG AIR','regular platelet'), +(420,101,6,1,5,5005.5,0.04,0.03,'N','O','1995-11-04','1996-01-02','1995-11-30','NONE','REG AIR','furiously regular theodolites haggle sly'), +(420,162,7,2,22,23367.52,0.05,0.04,'N','O','1996-01-25','1995-12-16','1996-02-03','TAKE BACK RETURN','AIR','express pinto beans wake quickly furi'), +(420,48,1,3,45,42661.8,0.09,0.08,'N','O','1996-01-14','1996-01-01','1996-01-26','COLLECT COD','FOB','pinto beans haggle carefully. even platele'), +(420,75,6,4,12,11700.84,0.08,0.08,'N','O','1996-02-05','1996-01-03','1996-02-12','TAKE BACK RETURN','REG AIR','carefully regul'), +(420,73,2,5,37,36003.59,0.02,0,'N','O','1995-11-16','1995-12-13','1995-11-19','DELIVER IN PERSON','SHIP','pending accounts are slyly final '), +(420,124,7,6,40,40964.8,0.01,0.05,'N','O','1995-11-26','1995-12-26','1995-12-20','TAKE BACK RETURN','FOB','slyly regular packa'), +(420,16,7,7,39,35724.39,0,0.08,'N','O','1995-12-09','1995-12-16','1995-12-31','DELIVER IN PERSON','REG AIR','slyly even packages affix blithely alo'), +(421,134,5,1,1,1034.13,0.02,0.07,'R','F','1992-05-29','1992-04-27','1992-06-09','NONE','TRUCK','final, ironic requests int'), +(422,152,10,1,25,26303.75,0.1,0.07,'N','O','1997-07-01','1997-08-17','1997-07-09','DELIVER IN PERSON','SHIP','unusual, bold platelets nag fluffily about '), +(422,171,1,2,10,10711.7,0.02,0.03,'N','O','1997-06-15','1997-08-04','1997-07-08','TAKE BACK RETURN','AIR','pending depend'), +(422,176,4,3,46,49503.82,0.09,0,'N','O','1997-06-21','1997-07-14','1997-06-27','DELIVER IN PERSON','RAIL','slyly silent acc'), +(422,162,7,4,25,26554,0.1,0.04,'N','O','1997-08-24','1997-07-09','1997-09-22','NONE','FOB','quickly final p'), +(423,132,3,1,27,27867.51,0.06,0.03,'N','O','1996-08-20','1996-08-01','1996-08-23','TAKE BACK RETURN','SHIP','even, pending accounts a'), +(448,126,7,1,4,4104.48,0,0.04,'N','O','1995-11-25','1995-10-20','1995-11-26','TAKE BACK RETURN','MAIL','even, busy excuses above the furiously si'), +(448,173,1,2,46,49365.82,0.05,0,'N','O','1995-08-31','1995-09-30','1995-09-09','COLLECT COD','SHIP','carefully regular re'), +(448,27,6,3,35,32445.7,0.1,0.08,'N','O','1995-09-27','1995-11-19','1995-10-20','COLLECT COD','REG AIR','quickly even package'), +(448,170,1,4,8,8561.36,0.1,0,'N','O','1995-11-02','1995-10-16','1995-11-15','COLLECT COD','TRUCK','carefully regula'), +(448,138,9,5,23,23876.99,0.02,0.05,'N','O','1995-09-26','1995-11-02','1995-10-17','NONE','SHIP','blithely ironic sentiments after the stea'), +(449,152,7,1,12,12625.8,0.02,0.08,'N','O','1995-11-06','1995-08-25','1995-11-18','TAKE BACK RETURN','SHIP','accounts a'), +(449,109,6,2,4,4036.4,0.1,0.06,'N','O','1995-10-27','1995-09-14','1995-11-21','DELIVER IN PERSON','FOB','bold frays haggle'), +(449,10,1,3,3,2730.03,0.07,0.08,'N','O','1995-07-28','1995-09-11','1995-08-01','NONE','RAIL','fluffily regular deposits are sly'), +(449,158,3,4,22,23279.3,0.07,0,'N','O','1995-08-17','1995-09-04','1995-09-10','COLLECT COD','FOB','sheaves sleep bl'), +(450,162,7,1,42,44610.72,0.03,0,'N','F','1995-06-07','1995-05-29','1995-06-23','TAKE BACK RETURN','SHIP','silent sentiments across the '), +(450,107,8,2,5,5035.5,0.03,0.02,'A','F','1995-04-02','1995-05-06','1995-04-13','TAKE BACK RETURN','TRUCK','ironic deposits'); +INSERT INTO lineitem VALUES +(450,143,6,3,32,33380.48,0.06,0.03,'N','O','1995-07-02','1995-04-25','1995-07-30','TAKE BACK RETURN','SHIP','final, express requ'), +(450,57,9,4,40,38282,0.05,0.03,'R','F','1995-03-20','1995-05-25','1995-04-14','NONE','RAIL','furiously dogged asymptotes'), +(450,79,10,5,2,1958.14,0.09,0,'A','F','1995-03-11','1995-05-21','1995-03-16','COLLECT COD','AIR','even accounts haggle carefull'), +(450,153,1,6,33,34753.95,0.08,0.05,'R','F','1995-05-18','1995-05-22','1995-05-23','TAKE BACK RETURN','REG AIR','fluffily final instructions '), +(451,130,9,1,36,37084.68,0.02,0.06,'N','O','1998-06-18','1998-08-14','1998-06-20','TAKE BACK RETURN','AIR','hockey players wake furiou'), +(451,33,4,2,42,39187.26,0.05,0.01,'N','O','1998-08-01','1998-08-05','1998-08-30','DELIVER IN PERSON','TRUCK','fluffily final requests haggle furiously b'), +(451,87,8,3,1,987.08,0.07,0.05,'N','O','1998-07-13','1998-07-03','1998-08-04','DELIVER IN PERSON','AIR','bold foxes integrate? final pinto beans acc'), +(451,77,5,4,28,27357.96,0.04,0.05,'N','O','1998-06-16','1998-07-09','1998-06-17','DELIVER IN PERSON','SHIP','carefully even theodolites boost. pinto be'), +(452,115,6,1,2,2030.22,0.04,0.03,'N','O','1997-12-26','1998-01-03','1998-01-12','COLLECT COD','FOB','blithely even requests integrate fu'), +(453,198,1,1,45,49418.55,0.01,0,'N','O','1997-06-30','1997-08-20','1997-07-19','COLLECT COD','REG AIR','fluffily regular accounts detect '), +(453,176,4,2,38,40894.46,0.08,0.04,'N','O','1997-06-30','1997-07-08','1997-07-16','DELIVER IN PERSON','REG AIR','boldly regular pinto beans haggle fu'), +(453,14,1,3,38,34732.38,0.1,0.01,'N','O','1997-08-10','1997-07-24','1997-09-07','NONE','SHIP','pinto beans are furiously un'), +(453,96,7,4,45,44824.05,0.1,0.01,'N','O','1997-09-18','1997-06-29','1997-10-14','TAKE BACK RETURN','AIR','accounts hang '), +(453,26,1,5,32,29632.64,0.04,0.01,'N','O','1997-07-15','1997-06-27','1997-07-18','NONE','REG AIR','furiously qu'), +(453,95,7,6,28,27862.52,0.07,0.07,'N','O','1997-08-16','1997-08-12','1997-08-27','NONE','MAIL','blithely regular accounts slee'), +(454,118,8,1,24,24434.64,0.06,0.01,'N','O','1996-04-26','1996-03-23','1996-05-20','NONE','TRUCK','ironic asymptotes detect-- bo'), +(455,157,9,1,42,44400.3,0.1,0.02,'N','O','1997-01-26','1997-01-10','1997-02-22','DELIVER IN PERSON','REG AIR','regular, silent platelets '), +(455,28,9,2,44,40832.88,0.05,0.08,'N','O','1997-01-17','1997-02-22','1997-02-12','TAKE BACK RETURN','TRUCK','quickly express instructions'), +(455,49,2,3,45,42706.8,0.04,0.06,'N','O','1996-12-20','1997-01-31','1997-01-07','TAKE BACK RETURN','SHIP','slyly final accounts sleep a'), +(455,171,9,4,11,11782.87,0.01,0.02,'N','O','1997-03-15','1997-02-14','1997-03-26','DELIVER IN PERSON','MAIL','slyly ironic foxes above the furiou'), +(480,53,4,1,22,20967.1,0.04,0.02,'A','F','1993-06-16','1993-07-28','1993-07-09','NONE','MAIL','foxes thrash closely according to the '), +(481,19,9,1,17,15623.17,0.07,0.05,'A','F','1992-10-21','1992-12-09','1992-11-19','DELIVER IN PERSON','MAIL','regular theodolites try to boost dari'), +(481,21,2,2,19,17499.38,0.08,0.01,'R','F','1993-01-09','1992-11-27','1993-01-14','TAKE BACK RETURN','AIR','carefully unusual accounts b'), +(481,186,7,3,42,45619.56,0.08,0.08,'A','F','1992-11-27','1992-11-11','1992-12-08','COLLECT COD','RAIL','furiously re'), +(481,82,3,4,11,10802.88,0.05,0.06,'A','F','1993-01-12','1992-11-17','1993-02-05','NONE','FOB','foxes are. dogge'), +(481,112,9,5,31,31375.41,0.05,0.01,'A','F','1993-01-15','1992-12-31','1993-01-21','DELIVER IN PERSON','AIR','quickly ironic ideas s'), +(482,138,9,1,32,33220.16,0,0.02,'N','O','1996-05-22','1996-05-14','1996-05-29','NONE','SHIP','bold instructions use slowly alongside '), +(482,122,5,2,1,1022.12,0.05,0.08,'N','O','1996-05-29','1996-05-20','1996-05-31','COLLECT COD','AIR','slyly even requests nag quickly around the'), +(482,62,9,3,31,29823.86,0.04,0.03,'N','O','1996-06-01','1996-05-06','1996-06-17','NONE','MAIL','even requests use. co'); +INSERT INTO lineitem VALUES +(482,196,7,4,8,8769.52,0.02,0.05,'N','O','1996-04-19','1996-05-05','1996-04-21','NONE','TRUCK','regular ac'), +(482,39,10,5,46,43195.38,0.01,0.06,'N','O','1996-07-19','1996-06-05','1996-08-10','NONE','MAIL','carefully regul'), +(482,79,10,6,19,18602.33,0.04,0,'N','O','1996-03-27','1996-04-25','1996-04-15','NONE','FOB','blithely pending accounts against the pe'), +(483,33,9,1,8,7464.24,0,0.08,'N','O','1995-08-22','1995-08-23','1995-09-18','COLLECT COD','RAIL','quickly pending in'), +(483,80,1,2,23,22541.84,0.04,0.06,'N','O','1995-07-20','1995-08-11','1995-08-04','DELIVER IN PERSON','MAIL','quickly regular acc'), +(483,88,9,3,9,8892.72,0.04,0.03,'N','O','1995-09-10','1995-09-02','1995-09-13','NONE','AIR','unusual, final pains nag s'), +(484,31,2,1,49,45620.47,0.1,0.02,'N','O','1997-03-06','1997-02-28','1997-03-23','COLLECT COD','TRUCK','slyly special frays haggle about '), +(484,32,8,2,45,41941.35,0.06,0.07,'N','O','1997-04-09','1997-03-20','1997-04-19','DELIVER IN PERSON','TRUCK','even attainments alongs'), +(484,184,5,3,50,54209,0.06,0.05,'N','O','1997-01-24','1997-03-27','1997-02-22','DELIVER IN PERSON','MAIL','express accounts against the carefully '), +(484,165,6,4,22,23433.52,0.07,0.03,'N','O','1997-04-29','1997-03-26','1997-05-17','TAKE BACK RETURN','SHIP','blithely ironic re'), +(484,77,6,5,48,46899.36,0,0.05,'N','O','1997-03-05','1997-02-08','1997-03-22','TAKE BACK RETURN','MAIL','furiously regular accou'), +(484,97,9,6,10,9970.9,0.01,0.08,'N','O','1997-04-06','1997-02-14','1997-04-16','COLLECT COD','FOB','slyly final'), +(485,150,1,1,50,52507.5,0.01,0,'N','O','1997-03-28','1997-05-26','1997-04-18','TAKE BACK RETURN','MAIL','blithely ironic requests '), +(485,28,7,2,40,37120.8,0.08,0.01,'N','O','1997-04-29','1997-05-08','1997-04-30','TAKE BACK RETURN','TRUCK','furiously regular requests wake. expres'), +(485,137,3,3,22,22816.86,0,0.05,'N','O','1997-04-06','1997-04-27','1997-05-01','DELIVER IN PERSON','TRUCK','even ideas detect. unusual deposits are '), +(486,76,7,1,36,35138.52,0,0.01,'N','O','1996-06-25','1996-05-06','1996-07-07','COLLECT COD','AIR','slyly express deposits among the daring'), +(486,68,9,2,40,38722.4,0.03,0.08,'N','O','1996-05-21','1996-06-06','1996-06-07','COLLECT COD','SHIP','regular requests across the bli'), +(486,136,2,3,26,26939.38,0.04,0.03,'N','O','1996-03-16','1996-05-25','1996-03-31','NONE','RAIL','quick foxes wake. blithely daring requ'), +(486,72,1,4,38,36938.66,0.08,0.05,'N','O','1996-05-07','1996-04-26','1996-05-26','TAKE BACK RETURN','TRUCK','blithely regular packages are slyly. '), +(486,29,2,5,3,2787.06,0.07,0.05,'N','O','1996-07-07','1996-04-20','1996-07-23','DELIVER IN PERSON','RAIL','unusual foxes boost furiou'), +(486,47,4,6,46,43563.84,0,0.03,'N','O','1996-04-18','1996-05-02','1996-04-20','COLLECT COD','AIR','brave accou'), +(487,92,3,1,47,46628.23,0.06,0.06,'R','F','1992-09-30','1992-10-08','1992-10-24','NONE','TRUCK','quickly ironic deposits wake quick'), +(487,83,4,2,2,1966.16,0.02,0.06,'R','F','1992-10-19','1992-11-04','1992-11-11','COLLECT COD','TRUCK','slyly final th'), +(512,189,10,1,19,20694.42,0.08,0.05,'N','O','1995-07-12','1995-07-11','1995-08-04','COLLECT COD','MAIL','unusual, ironic accounts bo'), +(512,23,2,2,37,34151.74,0.01,0.04,'N','O','1995-06-20','1995-07-05','1995-07-16','NONE','RAIL','regular accounts wake quickly. furious'), +(512,180,1,3,40,43207.2,0.05,0.02,'N','O','1995-07-06','1995-07-08','1995-07-08','COLLECT COD','TRUCK','express, ironic t'), +(512,83,4,4,10,9830.8,0.09,0.02,'N','O','1995-09-16','1995-07-29','1995-10-07','NONE','AIR','forges are after the furio'), +(512,65,6,5,6,5790.36,0.03,0.05,'R','F','1995-06-10','1995-06-21','1995-06-16','DELIVER IN PERSON','FOB','furiously unusu'), +(512,33,9,6,12,11196.36,0.04,0,'R','F','1995-05-21','1995-08-03','1995-06-09','COLLECT COD','FOB','blithely regular platelets wake fur'), +(512,51,9,7,2,1902.1,0.09,0.08,'N','O','1995-06-19','1995-08-13','1995-06-24','NONE','TRUCK','regular, reg'); +INSERT INTO lineitem VALUES +(513,62,7,1,20,19241.2,0.09,0.07,'N','O','1995-07-12','1995-05-31','1995-07-31','NONE','AIR','ideas doze blithely. foxe'), +(513,122,5,2,44,44973.28,0.01,0.01,'N','O','1995-07-14','1995-07-14','1995-08-12','NONE','MAIL','express, even accounts'), +(514,79,9,1,21,20560.47,0.06,0.02,'N','O','1996-06-09','1996-05-15','1996-07-07','DELIVER IN PERSON','RAIL','fluffily special asympt'), +(514,118,2,2,34,34615.74,0.08,0.02,'N','O','1996-04-14','1996-06-03','1996-04-23','COLLECT COD','REG AIR','carefully unusual dolphins are slyly at '), +(514,13,7,3,6,5478.06,0.06,0.01,'N','O','1996-05-30','1996-06-04','1996-06-28','COLLECT COD','SHIP','quickly final packages'), +(514,116,7,4,43,43692.73,0,0.08,'N','O','1996-06-07','1996-05-14','1996-07-01','TAKE BACK RETURN','FOB','carefully ironic packages n'), +(515,105,8,1,10,10051,0.03,0.02,'A','F','1993-10-04','1993-11-03','1993-10-08','NONE','FOB','blithely bold requests '), +(515,148,1,2,38,39829.32,0.1,0.07,'A','F','1993-09-19','1993-11-12','1993-10-03','DELIVER IN PERSON','SHIP','regular ideas h'), +(515,183,4,3,11,11914.98,0,0.02,'R','F','1993-09-04','1993-10-02','1993-09-05','DELIVER IN PERSON','FOB','final patterns eat alo'), +(515,109,10,4,34,34309.4,0.09,0.03,'R','F','1993-10-03','1993-10-26','1993-10-15','DELIVER IN PERSON','REG AIR','slyly ironic requests haggle alongside'), +(515,131,7,5,32,32996.16,0.01,0.07,'R','F','1993-10-10','1993-10-08','1993-11-02','TAKE BACK RETURN','FOB','bold foxes are about the final deposits. s'), +(515,109,4,6,25,25227.5,0.04,0.08,'R','F','1993-11-14','1993-11-07','1993-12-03','DELIVER IN PERSON','MAIL','carefully bold accoun'), +(516,25,4,1,11,10175.22,0.01,0.06,'N','O','1998-05-02','1998-05-23','1998-05-12','DELIVER IN PERSON','FOB','final deposits boost care'), +(517,45,6,1,28,26461.12,0.03,0.02,'N','O','1997-04-30','1997-05-18','1997-05-17','COLLECT COD','MAIL','furiously ironic deposit'), +(517,156,4,2,15,15842.25,0.02,0,'N','O','1997-04-09','1997-06-26','1997-05-01','NONE','TRUCK','blithely quick asymptotes b'), +(517,41,8,3,9,8469.36,0.04,0,'N','O','1997-05-03','1997-06-16','1997-05-24','COLLECT COD','SHIP','fluffily final dependencies shall use '), +(517,133,4,4,11,11364.43,0.06,0.02,'N','O','1997-06-20','1997-06-01','1997-06-27','NONE','REG AIR','carefully regular'), +(517,24,3,5,23,21252.46,0,0.01,'N','O','1997-04-19','1997-05-07','1997-05-12','COLLECT COD','RAIL','accounts wake. slyly ironic Tiresias sl'), +(518,165,6,1,30,31954.8,0.07,0.05,'N','O','1998-02-18','1998-03-27','1998-03-16','COLLECT COD','TRUCK','final pinto beans affix quickly carefu'), +(518,84,5,2,23,22633.84,0.05,0.07,'N','O','1998-02-20','1998-05-05','1998-03-11','COLLECT COD','TRUCK','bold, slow ideas afte'), +(518,134,5,3,12,12409.56,0.01,0.06,'N','O','1998-03-08','1998-03-31','1998-04-06','NONE','AIR','express accounts detect carefully fin'), +(518,122,3,4,46,47017.52,0.07,0.02,'N','O','1998-04-07','1998-04-17','1998-04-29','NONE','MAIL','carefully '), +(518,71,2,5,16,15537.12,0.01,0.01,'N','O','1998-03-15','1998-03-24','1998-04-08','NONE','MAIL','slyly final requests use. iron'), +(518,197,10,6,39,42790.41,0.09,0.08,'N','O','1998-02-26','1998-03-17','1998-03-21','DELIVER IN PERSON','FOB','furiously ironic deposi'), +(518,186,7,7,48,52136.64,0.03,0.07,'N','O','1998-03-06','1998-04-22','1998-03-14','NONE','FOB','deposits hinder along the car'), +(519,159,4,1,1,1059.15,0.07,0.07,'N','O','1997-12-01','1998-01-26','1997-12-23','COLLECT COD','REG AIR','regular dependencies grow '), +(519,3,4,2,38,34314,0.05,0.08,'N','O','1998-02-19','1997-12-15','1998-03-19','DELIVER IN PERSON','FOB','furiously bold deposits maint'), +(519,106,1,3,19,19115.9,0,0.02,'N','O','1998-01-09','1998-01-03','1998-02-06','COLLECT COD','AIR','regular ins'), +(519,47,6,4,27,25570.08,0.08,0.06,'N','O','1997-11-20','1997-12-06','1997-12-16','DELIVER IN PERSON','REG AIR','quickly regular accounts cajo'), +(519,10,5,5,13,11830.13,0.06,0.08,'N','O','1998-02-06','1997-12-02','1998-03-03','TAKE BACK RETURN','TRUCK','furiously ironic accounts nag quic'); +INSERT INTO lineitem VALUES +(519,151,6,6,3,3153.45,0.04,0,'N','O','1998-02-01','1998-01-25','1998-02-27','TAKE BACK RETURN','FOB','ideas use carefully among the c'), +(544,139,10,1,47,48839.11,0.08,0.06,'R','F','1993-03-14','1993-03-27','1993-03-27','COLLECT COD','SHIP','carefully iro'), +(545,170,1,1,4,4280.68,0.02,0,'N','O','1996-02-23','1995-12-16','1996-03-21','DELIVER IN PERSON','FOB','even pinto beans nag furiously even'), +(545,171,10,2,18,19281.06,0,0,'N','O','1996-02-21','1996-01-17','1996-02-26','NONE','RAIL','slyly unusual'), +(546,85,6,1,16,15761.28,0.08,0.02,'N','O','1997-02-04','1996-12-30','1997-02-25','DELIVER IN PERSON','TRUCK','enticing accounts eat doggedly silent, e'), +(547,71,10,1,44,42727.08,0.08,0.08,'N','O','1996-10-18','1996-08-17','1996-10-27','TAKE BACK RETURN','FOB','furiously final patterns across '), +(547,137,8,2,48,49782.24,0.01,0.04,'N','O','1996-10-21','1996-08-04','1996-11-20','COLLECT COD','SHIP','platelets thrash blithely fluffily'), +(547,182,3,3,3,3246.54,0.05,0.02,'N','O','1996-09-04','1996-08-01','1996-09-21','COLLECT COD','SHIP','slyly enticing theodol'), +(548,197,8,1,2,2194.38,0.06,0.05,'A','F','1994-11-26','1994-11-06','1994-12-06','COLLECT COD','MAIL','express, regular ideas print. slyly i'), +(548,5,6,2,6,5430,0,0.08,'A','F','1995-01-18','1994-12-08','1995-02-10','NONE','TRUCK','finally silent depos'), +(548,1,8,3,21,18921,0.03,0.08,'A','F','1995-01-13','1994-12-18','1995-01-25','NONE','AIR','regular ideas after the carefully'), +(548,57,9,4,21,20098.05,0.08,0.03,'A','F','1994-10-27','1994-12-04','1994-11-21','DELIVER IN PERSON','AIR','blithely bold pinto beans are quickly even '), +(548,93,7,5,19,18868.71,0,0.02,'A','F','1994-09-24','1994-11-24','1994-10-01','DELIVER IN PERSON','MAIL','carefully fina'), +(548,153,8,6,32,33700.8,0.06,0.04,'A','F','1994-12-16','1994-11-20','1994-12-29','NONE','REG AIR','carefully pending requests cajo'), +(549,196,9,1,18,19731.42,0.07,0.04,'R','F','1992-10-19','1992-08-12','1992-11-13','COLLECT COD','REG AIR','dogged, pending frays haggle. sly'), +(549,189,10,2,38,41388.84,0.07,0.05,'A','F','1992-08-17','1992-08-28','1992-09-05','COLLECT COD','RAIL','carefully spec'), +(549,66,7,3,36,34778.16,0.08,0.04,'R','F','1992-09-11','1992-10-11','1992-09-12','DELIVER IN PERSON','AIR','regular, regular accoun'), +(549,21,4,4,18,16578.36,0.09,0.01,'A','F','1992-07-31','1992-09-11','1992-08-08','NONE','RAIL','unusual ideas hinder. blithely bold foxes w'), +(549,24,7,5,38,35112.76,0.06,0.02,'R','F','1992-08-23','1992-08-12','1992-08-25','COLLECT COD','REG AIR','carefully ironi'), +(550,191,3,1,31,33826.89,0.04,0.02,'N','O','1995-10-24','1995-09-27','1995-11-04','COLLECT COD','AIR','never ironic courts at the '), +(551,24,9,1,8,7392.16,0.08,0.02,'N','O','1995-07-29','1995-07-18','1995-08-02','NONE','REG AIR','quickly pending requests around '), +(551,159,4,2,20,21183,0,0.07,'N','O','1995-09-18','1995-08-25','1995-10-11','COLLECT COD','TRUCK','final foxes cajole. unusu'), +(551,162,9,3,16,16994.56,0.07,0.06,'N','O','1995-07-29','1995-08-19','1995-08-10','COLLECT COD','MAIL','furiously regular ideas sleep '), +(576,87,8,1,2,1974.16,0.07,0.01,'N','O','1997-05-15','1997-06-30','1997-05-28','NONE','RAIL','blithely express deposits detect blithely'), +(576,34,5,2,6,5604.18,0.06,0.05,'N','O','1997-05-15','1997-07-26','1997-06-03','DELIVER IN PERSON','TRUCK','fluffily regula'), +(576,37,3,3,6,5622.18,0.08,0.07,'N','O','1997-08-28','1997-06-16','1997-09-25','DELIVER IN PERSON','FOB','carefully express instructions outside'), +(576,138,9,4,5,5190.65,0.03,0.07,'N','O','1997-06-11','1997-06-17','1997-07-05','NONE','REG AIR','carefully special de'), +(577,26,5,1,25,23150.5,0.06,0.01,'A','F','1995-04-09','1995-02-20','1995-05-09','TAKE BACK RETURN','AIR','final foxes above th'), +(577,64,1,2,14,13496.84,0.08,0.03,'R','F','1995-03-19','1995-02-25','1995-04-09','DELIVER IN PERSON','RAIL','furiously sil'), +(578,156,7,1,40,42246,0.02,0.08,'N','O','1997-02-10','1997-03-18','1997-02-11','NONE','SHIP','quickly even dependencies haggle'); +INSERT INTO lineitem VALUES +(578,188,9,2,23,25028.14,0.05,0.08,'N','O','1997-03-06','1997-03-03','1997-03-20','TAKE BACK RETURN','FOB','carefully si'), +(579,151,6,1,9,9460.35,0,0.05,'N','O','1998-06-20','1998-04-28','1998-07-19','DELIVER IN PERSON','RAIL','quickly pending accounts co'), +(579,33,4,2,39,36388.17,0.02,0.01,'N','O','1998-06-21','1998-06-03','1998-06-26','COLLECT COD','REG AIR','theodolites nod quickly. blithely expres'), +(579,60,5,3,6,5760.36,0.03,0,'N','O','1998-04-24','1998-05-03','1998-05-08','TAKE BACK RETURN','TRUCK','even foxes lose closely even'), +(579,7,10,4,41,37187,0.04,0.05,'N','O','1998-05-28','1998-05-01','1998-06-04','COLLECT COD','REG AIR','unusual, final p'), +(579,13,7,5,28,25564.28,0,0.03,'N','O','1998-07-10','1998-05-24','1998-07-19','NONE','RAIL','final deposits should ha'), +(579,167,6,6,5,5335.8,0.05,0.08,'N','O','1998-05-02','1998-04-25','1998-05-05','COLLECT COD','REG AIR','quickly ironic waters eat slyly acro'), +(580,85,6,1,33,32507.64,0.03,0.05,'N','O','1997-10-11','1997-09-19','1997-10-16','TAKE BACK RETURN','FOB','ideas wake sl'), +(580,174,5,2,31,33299.27,0.04,0.08,'N','O','1997-10-04','1997-09-08','1997-10-15','COLLECT COD','FOB','deposits wil'), +(580,185,6,3,19,20618.42,0.04,0.04,'N','O','1997-07-23','1997-09-21','1997-08-15','NONE','FOB','deposits solve quickly. foxes '), +(581,64,1,1,41,39526.46,0.09,0.07,'N','O','1997-05-26','1997-04-06','1997-06-10','TAKE BACK RETURN','MAIL','even, bold excuses about the'), +(581,93,5,2,14,13903.26,0.06,0.08,'N','O','1997-05-17','1997-04-14','1997-06-08','NONE','MAIL','furiously silent depths'), +(581,101,6,3,49,49053.9,0.1,0.02,'N','O','1997-02-27','1997-04-24','1997-03-10','TAKE BACK RETURN','MAIL','furiously regular theodolites wake qu'), +(581,75,4,4,30,29252.1,0.1,0.08,'N','O','1997-06-19','1997-05-21','1997-06-22','TAKE BACK RETURN','TRUCK','even deposits wa'), +(582,57,9,1,7,6699.35,0.07,0,'N','O','1997-11-16','1997-11-29','1997-12-10','TAKE BACK RETURN','FOB','carefully final requests sleep slyly. even,'), +(582,51,2,2,49,46601.45,0.05,0.03,'N','O','1997-12-17','1998-01-12','1997-12-31','COLLECT COD','REG AIR','carefully regular'), +(582,141,4,3,42,43727.88,0.07,0,'N','O','1997-11-15','1997-12-21','1997-12-03','COLLECT COD','SHIP','pending, spe'), +(582,168,9,4,36,38453.76,0.06,0.01,'N','O','1997-12-09','1997-11-27','1997-12-26','TAKE BACK RETURN','SHIP','slyly final foxes nag permanen'), +(583,145,6,1,1,1045.14,0.07,0.07,'N','O','1997-06-17','1997-04-29','1997-06-28','NONE','TRUCK','bold accounts affix blithely final '), +(583,120,4,2,47,47945.64,0.1,0.06,'N','O','1997-07-14','1997-05-12','1997-08-11','DELIVER IN PERSON','AIR','blithely bold ideas play flu'), +(583,130,5,3,34,35024.42,0.01,0.02,'N','O','1997-05-11','1997-04-24','1997-06-03','DELIVER IN PERSON','MAIL','furiously regu'), +(583,142,1,4,33,34390.62,0.1,0.01,'N','O','1997-05-28','1997-04-25','1997-06-24','NONE','AIR','slyly final accounts abou'), +(583,189,10,5,13,14159.34,0.04,0.06,'N','O','1997-06-23','1997-05-29','1997-07-08','COLLECT COD','TRUCK','final deposits haggle blithely a'), +(608,154,6,1,19,20028.85,0.08,0.06,'N','O','1996-04-19','1996-05-02','1996-05-03','DELIVER IN PERSON','RAIL','quickly regular foxes sleep slyly '), +(608,198,1,2,40,43927.6,0.03,0.01,'N','O','1996-05-21','1996-04-11','1996-06-02','NONE','AIR','asymptotes solve idle idea'), +(609,66,5,1,21,20287.26,0.01,0.05,'R','F','1994-08-24','1994-08-23','1994-08-27','DELIVER IN PERSON','FOB','furiously even packages use amon'), +(610,111,8,1,49,49544.39,0.1,0.07,'N','O','1995-08-29','1995-10-26','1995-09-12','TAKE BACK RETURN','SHIP','slyly bold accounts alongside'), +(610,68,3,2,11,10648.66,0.07,0.08,'N','O','1995-10-31','1995-10-25','1995-11-18','NONE','MAIL','furiously '), +(610,118,9,3,26,26470.86,0.09,0.04,'N','O','1995-11-22','1995-09-09','1995-12-04','TAKE BACK RETURN','AIR','blithely ironic accounts d'), +(610,186,7,4,17,18465.06,0.03,0.03,'N','O','1995-11-01','1995-10-30','1995-11-04','COLLECT COD','FOB','blithely even orbits wake '); +INSERT INTO lineitem VALUES +(610,146,7,5,39,40799.46,0.08,0.05,'N','O','1995-10-30','1995-10-21','1995-11-11','TAKE BACK RETURN','REG AIR','fluffily fi'), +(610,95,7,6,5,4975.45,0,0.07,'N','O','1995-08-11','1995-10-22','1995-08-26','TAKE BACK RETURN','FOB','regular foxes haggle furiously across t'), +(610,190,1,7,27,29435.13,0.06,0.03,'N','O','1995-09-02','1995-09-19','1995-09-15','NONE','REG AIR','requests at the slyly ir'), +(611,17,7,1,39,35763.39,0.05,0.06,'R','F','1993-05-06','1993-04-09','1993-05-22','TAKE BACK RETURN','SHIP','carefully bold accou'), +(611,81,2,2,1,981.08,0.08,0.07,'R','F','1993-05-17','1993-02-26','1993-06-15','DELIVER IN PERSON','MAIL','ironic deposits kindle carefully'), +(611,120,4,3,39,39784.68,0.09,0.02,'A','F','1993-03-10','1993-03-10','1993-03-17','TAKE BACK RETURN','TRUCK','ironic requ'), +(612,185,6,1,5,5425.9,0.07,0,'R','F','1992-11-08','1992-11-20','1992-12-03','TAKE BACK RETURN','RAIL','ironic pains boost'), +(612,195,7,2,28,30665.32,0.07,0.06,'R','F','1993-01-02','1992-12-11','1993-01-30','DELIVER IN PERSON','TRUCK','carefully express t'), +(612,67,4,3,49,47385.94,0,0.08,'A','F','1993-01-08','1992-11-25','1993-01-17','TAKE BACK RETURN','REG AIR','ironic theo'), +(612,39,5,4,28,26292.84,0.05,0,'A','F','1992-11-12','1992-12-05','1992-12-02','TAKE BACK RETURN','REG AIR','fluffily pending pla'), +(612,88,9,5,1,988.08,0.08,0.04,'R','F','1992-12-18','1992-12-13','1992-12-20','TAKE BACK RETURN','FOB','furiously bold deposits wake slyly furiousl'), +(612,189,10,6,33,35942.94,0.1,0.03,'R','F','1992-11-30','1992-12-01','1992-12-12','COLLECT COD','MAIL','thinly even p'), +(613,91,5,1,17,16848.53,0.06,0.06,'N','O','1995-09-23','1995-08-04','1995-10-15','NONE','SHIP','asymptotes de'), +(613,79,7,2,6,5874.42,0.05,0.05,'N','O','1995-08-05','1995-08-09','1995-08-08','TAKE BACK RETURN','MAIL','quickly bold theodolites are requests-- '), +(613,186,7,3,3,3258.54,0.03,0.01,'N','O','1995-09-27','1995-09-11','1995-10-05','NONE','TRUCK','quickly unusual excuses wake regularly at'), +(613,159,10,4,7,7414.05,0.02,0.04,'N','O','1995-09-07','1995-08-02','1995-09-16','DELIVER IN PERSON','MAIL','bold asymptotes sl'), +(614,195,8,1,21,22998.99,0,0.03,'R','F','1993-03-29','1993-01-06','1993-04-16','TAKE BACK RETURN','TRUCK','unusual, bold packages are. furious'), +(614,187,8,2,48,52184.64,0.07,0.07,'A','F','1993-03-09','1993-01-19','1993-03-19','DELIVER IN PERSON','SHIP','carefully even foxes hagg'), +(614,167,2,3,43,45887.88,0.05,0,'A','F','1993-03-07','1993-02-22','1993-03-18','DELIVER IN PERSON','SHIP','even, unusual ideas'), +(614,147,6,4,14,14659.96,0.04,0.06,'A','F','1992-12-03','1993-02-14','1992-12-27','DELIVER IN PERSON','SHIP','regular, even dependen'), +(614,196,8,5,30,32885.7,0.08,0.07,'R','F','1993-01-16','1993-02-08','1993-02-12','TAKE BACK RETURN','FOB','pending foxes cajole daringly careful'), +(614,137,8,6,48,49782.24,0.04,0.08,'A','F','1992-12-14','1993-01-22','1993-01-11','NONE','TRUCK','slyly pending inst'), +(615,105,6,1,36,36183.6,0.1,0.01,'A','F','1992-06-01','1992-07-14','1992-06-27','NONE','FOB','requests x-ray? carefully ironic in'), +(640,93,7,1,49,48661.41,0.09,0.02,'R','F','1993-03-27','1993-04-17','1993-04-15','NONE','RAIL','carefully unusual deposits sublate permane'), +(640,1,4,2,40,36040,0.09,0.05,'A','F','1993-05-11','1993-04-11','1993-05-15','COLLECT COD','TRUCK','fluffily re'), +(640,180,8,3,22,23763.96,0.05,0.07,'A','F','1993-05-07','1993-04-14','1993-05-21','TAKE BACK RETURN','TRUCK','even reque'), +(640,32,3,4,45,41941.35,0.07,0.07,'R','F','1993-04-15','1993-04-23','1993-04-21','DELIVER IN PERSON','REG AIR','foxes wake caref'), +(641,126,9,1,18,18470.16,0.01,0.08,'R','F','1993-10-17','1993-10-11','1993-10-29','DELIVER IN PERSON','AIR','blithely unusual requests across the caref'), +(641,100,2,2,1,1000.1,0.09,0.02,'R','F','1993-12-03','1993-10-28','1993-12-26','TAKE BACK RETURN','RAIL','even platelets engage blithe'), +(641,95,7,3,40,39803.6,0.05,0.06,'R','F','1993-11-22','1993-10-20','1993-12-11','DELIVER IN PERSON','REG AIR','thinly unusual packages use blithely blithe'); +INSERT INTO lineitem VALUES (641,71,10,4,25,24276.75,0.03,0.02,'A','F','1993-12-04','1993-11-18','1993-12-18','TAKE BACK RETURN','FOB','furiously '), +(641,4,9,5,41,37064,0.07,0.04,'R','F','1993-11-29','1993-10-27','1993-12-04','TAKE BACK RETURN','FOB','unusual deposits c'), +(642,54,5,1,26,24805.3,0.1,0.03,'A','F','1994-04-16','1994-02-01','1994-04-27','COLLECT COD','REG AIR','regular deposits cajole blithely ac'), +(643,13,3,1,28,25564.28,0,0.08,'A','F','1995-04-13','1995-05-12','1995-04-14','TAKE BACK RETURN','TRUCK','pending warthogs boost blithely carefully'), +(643,51,2,2,48,45650.4,0.01,0.02,'N','O','1995-07-10','1995-06-07','1995-08-01','NONE','FOB','final, pending d'), +(643,163,2,3,23,24452.68,0.05,0.03,'N','O','1995-07-09','1995-05-18','1995-07-31','COLLECT COD','RAIL','slyly thin deposits boost final'), +(643,45,4,4,39,36856.56,0.08,0.04,'A','F','1995-06-08','1995-06-16','1995-06-13','COLLECT COD','RAIL','quickly regular asympto'), +(643,190,1,5,47,51238.93,0.1,0.03,'R','F','1995-04-05','1995-06-14','1995-04-26','DELIVER IN PERSON','RAIL','foxes wake carefully. final, pending reque'), +(644,134,10,1,46,47569.98,0.02,0.01,'A','F','1992-05-20','1992-06-14','1992-06-14','DELIVER IN PERSON','RAIL','quickly express foxes are fl'), +(644,130,3,2,11,11331.43,0.05,0.02,'A','F','1992-08-20','1992-07-21','1992-09-11','TAKE BACK RETURN','TRUCK','requests haggle furiously along the final '), +(644,101,6,3,44,44048.4,0.04,0.04,'R','F','1992-08-17','1992-07-26','1992-08-20','COLLECT COD','REG AIR','ideas wake. blithely unusual th'), +(644,80,8,4,7,6860.56,0.01,0.02,'A','F','1992-05-18','1992-07-01','1992-06-07','COLLECT COD','RAIL','unusual packages are carefully fi'), +(644,50,1,5,23,21851.15,0.02,0.04,'R','F','1992-07-31','1992-07-28','1992-08-13','DELIVER IN PERSON','TRUCK','carefully fi'), +(644,85,6,6,33,32507.64,0,0.07,'R','F','1992-08-26','1992-07-27','1992-08-28','NONE','AIR','final, unusual requests n'), +(644,51,9,7,38,36139.9,0.08,0.06,'R','F','1992-05-17','1992-07-10','1992-06-06','TAKE BACK RETURN','MAIL','pinto beans after the carefully '), +(645,160,8,1,33,34985.28,0.01,0.02,'A','F','1994-12-09','1995-02-21','1995-01-03','NONE','TRUCK','silent accounts about the even'), +(645,170,1,2,47,50297.99,0.07,0.05,'R','F','1995-02-16','1995-02-15','1995-02-25','COLLECT COD','TRUCK','fluffily pendi'), +(645,70,7,3,46,44623.22,0.1,0.01,'A','F','1995-01-04','1995-02-21','1995-01-21','COLLECT COD','REG AIR','quickly regu'), +(645,96,9,4,49,48808.41,0.05,0.03,'R','F','1995-01-24','1995-01-06','1995-02-17','NONE','TRUCK','express in'), +(645,5,8,5,43,38915,0.06,0.02,'A','F','1995-02-12','1995-02-27','1995-03-06','TAKE BACK RETURN','REG AIR','silent platelets cajole except the f'), +(645,34,5,6,18,16812.54,0.1,0.08,'A','F','1995-03-02','1995-02-08','1995-03-03','COLLECT COD','RAIL','carefully iro'), +(645,28,9,7,9,8352.18,0.03,0.03,'A','F','1994-12-25','1995-01-04','1995-01-15','COLLECT COD','REG AIR','slyly unusual excuses haggle slyly '), +(646,109,6,1,31,31282.1,0,0.05,'R','F','1994-12-17','1995-02-16','1995-01-04','COLLECT COD','MAIL','unusual foxes wake. furiousl'), +(646,127,8,2,1,1027.12,0.07,0.01,'A','F','1994-12-05','1995-01-07','1994-12-31','TAKE BACK RETURN','MAIL','furiously express ideas '), +(646,30,9,3,24,22320.72,0.06,0.02,'A','F','1995-02-20','1994-12-30','1995-03-16','TAKE BACK RETURN','TRUCK','special theod'), +(646,99,2,4,34,33969.06,0.01,0,'R','F','1994-12-28','1994-12-27','1994-12-31','COLLECT COD','SHIP','blithely final pa'), +(646,90,1,5,17,16831.53,0.04,0.01,'A','F','1994-12-31','1994-12-26','1995-01-01','DELIVER IN PERSON','REG AIR','ironic pinto beans h'), +(646,115,2,6,40,40604.4,0.1,0.01,'R','F','1995-01-01','1995-01-13','1995-01-11','COLLECT COD','TRUCK','slyly even pack'), +(647,17,1,1,41,37597.41,0.08,0.08,'N','O','1997-11-19','1997-09-24','1997-12-15','COLLECT COD','REG AIR','platelets cajole slyly packa'), +(647,113,10,2,5,5065.55,0.1,0,'N','O','1997-09-25','1997-09-22','1997-10-25','TAKE BACK RETURN','AIR','final pinto beans integrate blithely'); +INSERT INTO lineitem VALUES +(647,153,8,3,15,15797.25,0.08,0,'N','O','1997-09-23','1997-10-09','1997-10-21','NONE','MAIL','slyly unusual theodolites ag'), +(672,173,4,1,41,43999.97,0.06,0.06,'R','F','1994-06-20','1994-07-03','1994-06-22','COLLECT COD','REG AIR','even instructi'), +(672,190,1,2,9,9811.71,0.03,0.04,'R','F','1994-06-25','1994-06-06','1994-07-19','TAKE BACK RETURN','TRUCK','ironic instructi'), +(672,143,2,3,35,36509.9,0.02,0.01,'R','F','1994-07-13','1994-06-04','1994-07-14','COLLECT COD','RAIL','regular gifts haggle furiously.'), +(673,71,10,1,22,21363.54,0.03,0.02,'R','F','1994-03-15','1994-04-27','1994-03-29','TAKE BACK RETURN','TRUCK','carefully close pinto beans cajole slyl'), +(674,102,5,1,23,23048.3,0.06,0.07,'A','F','1992-10-25','1992-10-15','1992-11-03','COLLECT COD','SHIP','ironic foxes haggle instruction'), +(674,59,4,2,4,3836.2,0.02,0.07,'R','F','1992-10-05','1992-11-22','1992-10-22','NONE','RAIL','furiously final foxes haggle: slyly pendin'), +(675,157,9,1,1,1057.15,0.04,0.08,'N','O','1997-11-27','1997-09-30','1997-12-12','DELIVER IN PERSON','REG AIR','slyly express requests haggl'), +(675,137,3,2,35,36299.55,0.08,0.07,'N','O','1997-08-19','1997-10-16','1997-09-17','DELIVER IN PERSON','REG AIR','fluffily regular platelets sleep boldly. '), +(675,176,6,3,34,36589.78,0.1,0.04,'N','O','1997-11-17','1997-10-07','1997-11-27','NONE','FOB','carefully even deposits use '), +(675,100,4,4,15,15001.5,0.09,0.05,'N','O','1997-10-18','1997-09-28','1997-11-13','COLLECT COD','TRUCK','blithely ir'), +(675,5,8,5,46,41630,0.09,0.05,'N','O','1997-09-18','1997-10-14','1997-10-01','DELIVER IN PERSON','AIR','fluffily silent foxes wake fluffily '), +(676,51,3,1,9,8559.45,0.09,0.02,'N','O','1997-04-03','1997-02-02','1997-04-08','COLLECT COD','REG AIR','slyly brave t'), +(676,78,6,2,20,19561.4,0.07,0.07,'N','O','1997-02-02','1997-02-01','1997-02-11','NONE','REG AIR','special gifts across the pending, unu'), +(676,163,4,3,35,37210.6,0.05,0.01,'N','O','1996-12-30','1997-01-13','1997-01-19','DELIVER IN PERSON','RAIL','furiously express deposits impress furious'), +(676,73,1,4,24,23353.68,0.01,0.06,'N','O','1997-02-05','1997-01-16','1997-03-07','TAKE BACK RETURN','TRUCK','slyly unusual deposits above the ir'), +(676,166,1,5,31,33050.96,0.01,0.06,'N','O','1997-02-06','1997-02-28','1997-03-08','COLLECT COD','TRUCK','quickly bold ideas use '), +(676,76,7,6,33,32210.31,0.09,0.05,'N','O','1997-03-02','1997-02-22','1997-03-19','TAKE BACK RETURN','TRUCK','carefully ironi'), +(676,143,6,7,11,11474.54,0.07,0.02,'N','O','1997-03-09','1997-03-06','1997-03-31','TAKE BACK RETURN','MAIL','thin requests bet'), +(677,59,7,1,32,30689.6,0.04,0.08,'R','F','1994-01-06','1994-01-31','1994-02-02','NONE','RAIL','unusual, regular d'), +(677,168,9,2,39,41658.24,0,0.07,'R','F','1993-12-19','1994-02-11','1994-01-05','TAKE BACK RETURN','SHIP','express requests boost. bl'), +(677,24,5,3,46,42504.92,0.01,0.02,'R','F','1993-12-02','1994-02-12','1993-12-06','COLLECT COD','RAIL','slyly special packages cajole'), +(677,148,7,4,1,1048.14,0.06,0.05,'R','F','1993-12-01','1994-01-14','1993-12-26','DELIVER IN PERSON','MAIL','furiously final account'), +(677,150,9,5,25,26253.75,0,0.05,'A','F','1994-03-12','1994-02-02','1994-03-28','DELIVER IN PERSON','AIR','carefully silent deposits cajole carefull'), +(678,146,7,1,20,20922.8,0.05,0.08,'R','F','1993-06-21','1993-04-07','1993-07-10','TAKE BACK RETURN','MAIL','fluffily ironic courts '), +(678,37,3,2,22,20614.66,0.01,0.02,'A','F','1993-05-10','1993-04-29','1993-06-08','NONE','REG AIR','carefully express pinto beans '), +(678,143,10,3,16,16690.24,0.06,0.02,'R','F','1993-03-20','1993-04-13','1993-04-16','DELIVER IN PERSON','REG AIR','slyly pending pinto beans sleep car'), +(678,199,10,4,48,52761.12,0.08,0.08,'R','F','1993-02-28','1993-04-04','1993-03-24','NONE','REG AIR','blithely ex'), +(678,98,9,5,16,15969.44,0.06,0.04,'R','F','1993-03-09','1993-04-18','1993-04-07','NONE','AIR','blithely regular theodolites snooze blit'), +(678,43,4,6,11,10373.44,0.09,0,'R','F','1993-04-28','1993-05-16','1993-05-11','COLLECT COD','TRUCK','carefully s'); +INSERT INTO lineitem VALUES +(679,192,3,1,9,9829.71,0.09,0,'N','O','1995-12-20','1996-01-27','1996-01-07','COLLECT COD','REG AIR','never final theodolites nod'), +(704,190,1,1,40,43607.6,0.05,0.05,'N','O','1997-01-30','1997-01-10','1997-02-20','COLLECT COD','AIR','final requests cajole! q'), +(704,4,5,2,14,12656,0.07,0.08,'N','O','1997-02-02','1996-12-26','1997-02-19','DELIVER IN PERSON','REG AIR','slyly even'), +(705,189,10,1,46,50102.28,0.05,0.06,'N','O','1997-04-18','1997-05-06','1997-05-05','DELIVER IN PERSON','SHIP','regular, e'), +(705,117,7,2,35,35598.85,0.1,0.04,'N','O','1997-03-25','1997-03-20','1997-04-23','TAKE BACK RETURN','FOB','blithely regular sentiments thro'), +(706,197,9,1,23,25235.37,0.05,0,'N','O','1995-12-06','1995-12-02','1995-12-16','COLLECT COD','SHIP','carefully regular tithes print fluffil'), +(707,155,6,1,34,35875.1,0.01,0.02,'R','F','1994-12-08','1995-01-15','1995-01-02','NONE','RAIL','blithely regular ideas haggle slyly'), +(707,43,10,2,22,20746.88,0,0.06,'A','F','1995-01-12','1994-12-28','1995-01-16','DELIVER IN PERSON','REG AIR','regular dependenci'), +(708,124,7,1,3,3072.36,0.05,0.02,'N','O','1998-10-09','1998-09-22','1998-11-07','COLLECT COD','FOB','quickly regular packages '), +(708,180,1,2,19,20523.42,0.06,0,'N','O','1998-10-28','1998-09-23','1998-11-25','COLLECT COD','SHIP','blithely ironic accounts wake fl'), +(708,122,5,3,33,33729.96,0.09,0.06,'N','O','1998-09-10','1998-09-20','1998-09-22','COLLECT COD','RAIL','blithely ironic accounts haggle slyly'), +(708,56,7,4,5,4780.25,0.07,0.07,'N','O','1998-07-22','1998-08-15','1998-07-28','TAKE BACK RETURN','REG AIR','accounts cajole. instructions de'), +(708,143,2,5,36,37553.04,0.08,0.01,'N','O','1998-07-16','1998-09-04','1998-08-11','NONE','SHIP','blithely quick accounts haggle s'), +(708,23,6,6,7,6461.14,0.1,0.03,'N','O','1998-08-16','1998-08-15','1998-09-10','COLLECT COD','REG AIR','regular foxes agains'), +(709,87,8,1,7,6909.56,0,0,'N','O','1998-06-14','1998-06-08','1998-06-18','TAKE BACK RETURN','RAIL','blithely special instructions wake daringl'), +(709,198,10,2,15,16472.85,0.08,0,'N','O','1998-07-10','1998-06-26','1998-08-09','NONE','RAIL','furiously ironic deposi'), +(709,169,8,3,10,10691.6,0.01,0.02,'N','O','1998-06-04','1998-06-30','1998-06-11','NONE','REG AIR','patterns cajole'), +(709,108,9,4,40,40324,0.1,0.08,'N','O','1998-08-12','1998-06-20','1998-08-20','DELIVER IN PERSON','RAIL','carefully stealthy asymp'), +(710,163,8,1,47,49968.52,0.06,0.08,'A','F','1993-01-18','1993-03-24','1993-01-24','TAKE BACK RETURN','MAIL','quickly regular requests cajole ironi'), +(710,193,4,2,38,41541.22,0.07,0.02,'R','F','1993-04-18','1993-03-12','1993-05-15','COLLECT COD','FOB','quickly iron'), +(710,139,5,3,7,7273.91,0.04,0.06,'R','F','1993-01-20','1993-03-28','1993-02-15','TAKE BACK RETURN','REG AIR','slyly regular packages '), +(710,90,1,4,25,24752.25,0,0.05,'R','F','1993-03-31','1993-02-05','1993-04-22','COLLECT COD','FOB','furiously clo'), +(710,186,7,5,12,13034.16,0.01,0.02,'A','F','1993-02-18','1993-02-27','1993-03-07','DELIVER IN PERSON','MAIL','furiously '), +(710,114,4,6,21,21296.31,0.04,0.06,'R','F','1993-03-22','1993-03-05','1993-03-27','DELIVER IN PERSON','SHIP','ironic, regular pinto beans are s'), +(710,160,2,7,46,48767.36,0.03,0.07,'R','F','1993-04-16','1993-03-27','1993-05-05','COLLECT COD','MAIL','furiously unusual accounts above th'), +(711,146,3,1,2,2092.28,0.1,0.04,'R','F','1993-12-01','1993-12-09','1993-12-16','DELIVER IN PERSON','REG AIR','packages impress slyl'), +(711,103,8,2,27,27083.7,0,0.08,'A','F','1993-10-02','1993-10-26','1993-10-08','DELIVER IN PERSON','MAIL','carefully unusual theod'), +(711,128,7,3,46,47293.52,0.1,0,'R','F','1993-12-26','1993-11-19','1994-01-21','TAKE BACK RETURN','MAIL','express dugouts against the fluffily '), +(711,128,9,4,20,20562.4,0.09,0,'A','F','1994-01-17','1993-11-10','1994-01-31','DELIVER IN PERSON','TRUCK','quickly bold accounts'), +(736,158,9,1,46,48674.9,0.05,0.01,'N','O','1998-07-16','1998-09-01','1998-08-09','NONE','AIR','final, ironic packages to the final packa'); +INSERT INTO lineitem VALUES +(736,80,1,2,23,22541.84,0.02,0.05,'N','O','1998-10-08','1998-08-27','1998-10-19','TAKE BACK RETURN','AIR','accounts should have to are furiou'), +(736,57,9,3,13,12441.65,0,0.03,'N','O','1998-08-16','1998-07-26','1998-08-19','DELIVER IN PERSON','FOB','regular accounts nag. foxes about t'), +(736,98,2,4,14,13973.26,0.06,0.04,'N','O','1998-10-04','1998-08-14','1998-10-16','COLLECT COD','REG AIR','express accounts '), +(736,169,6,5,32,34213.12,0.04,0.03,'N','O','1998-07-30','1998-08-22','1998-08-12','DELIVER IN PERSON','RAIL','pending deposits wake slyly quickly bold'), +(737,182,3,1,12,12986.16,0.01,0.01,'R','F','1992-04-28','1992-06-30','1992-05-08','COLLECT COD','RAIL','carefully pending accounts detect quickly'), +(738,198,1,1,34,37338.46,0,0.06,'R','F','1993-06-09','1993-04-15','1993-07-09','TAKE BACK RETURN','TRUCK','bold packages among the sl'), +(738,188,9,2,4,4352.72,0,0.03,'A','F','1993-06-20','1993-04-08','1993-07-09','NONE','AIR','slyly pending deposits sleep'), +(738,170,1,3,23,24613.91,0.04,0.08,'A','F','1993-03-17','1993-04-02','1993-04-05','TAKE BACK RETURN','SHIP','sauternes affix against the furiously '), +(738,141,10,4,12,12493.68,0.04,0.08,'A','F','1993-06-16','1993-05-05','1993-06-22','NONE','SHIP','carefully even excuses cajole car'), +(738,175,4,5,30,32255.1,0.02,0,'A','F','1993-06-12','1993-05-29','1993-06-25','NONE','AIR','furiously eve'), +(739,85,6,1,28,27582.24,0,0.03,'N','O','1998-06-03','1998-08-04','1998-06-29','TAKE BACK RETURN','RAIL','ironic excuses use'), +(739,4,7,2,50,45200,0.07,0.06,'N','O','1998-08-26','1998-07-16','1998-09-02','COLLECT COD','MAIL','slyly unusual asymptotes boost furiousl'), +(739,49,2,3,12,11388.48,0.05,0,'N','O','1998-08-20','1998-07-24','1998-08-22','NONE','MAIL','deposits sleep furiously. acco'), +(739,44,3,4,47,44369.88,0.09,0.07,'N','O','1998-08-12','1998-07-09','1998-08-28','NONE','REG AIR','carefully ironic deposits'), +(739,188,9,5,30,32645.4,0.07,0.06,'N','O','1998-06-19','1998-08-26','1998-07-02','DELIVER IN PERSON','REG AIR','final theodolites boost quickly about the'), +(740,2,9,1,22,19844,0.1,0.02,'N','O','1995-07-24','1995-09-11','1995-08-11','TAKE BACK RETURN','FOB','slyly regular accounts nag abo'), +(740,66,1,2,35,33812.1,0,0,'N','O','1995-09-06','1995-08-22','1995-10-02','NONE','TRUCK','close escapa'), +(740,199,10,3,29,31876.51,0.06,0.05,'N','O','1995-10-26','1995-09-17','1995-10-29','DELIVER IN PERSON','FOB','bold deposits doze ironically regula'), +(741,187,8,1,25,27179.5,0.03,0.06,'N','O','1998-07-15','1998-08-27','1998-08-12','DELIVER IN PERSON','MAIL','even deposits throug'), +(741,91,4,2,22,21803.98,0.09,0.01,'N','O','1998-09-07','1998-09-28','1998-09-12','COLLECT COD','AIR','unusual, regula'), +(742,102,3,1,46,46096.6,0.04,0.08,'A','F','1995-03-12','1995-03-20','1995-03-16','TAKE BACK RETURN','SHIP','carefully unusual forges may hag'), +(742,96,8,2,15,14941.35,0.08,0.05,'A','F','1995-02-26','1995-03-20','1995-03-03','NONE','SHIP','bravely regular pinto be'), +(742,102,5,3,24,24050.4,0.08,0.08,'A','F','1995-02-12','1995-03-12','1995-02-14','DELIVER IN PERSON','SHIP','blithely express accounts nag behind th'), +(742,192,4,4,16,17475.04,0.01,0.05,'A','F','1995-01-15','1995-02-25','1995-01-24','COLLECT COD','AIR','fluffily regular excuses are'), +(742,101,4,5,48,48052.8,0.09,0.08,'R','F','1995-03-24','1995-01-23','1995-04-08','TAKE BACK RETURN','TRUCK','theodolites sleep furiously. s'), +(742,192,6,6,49,53517.31,0.02,0.07,'A','F','1995-01-13','1995-02-13','1995-01-26','TAKE BACK RETURN','RAIL','dogged instructions alongside of th'), +(743,192,5,1,21,22935.99,0.01,0.04,'N','O','1996-10-26','1996-11-05','1996-11-11','COLLECT COD','MAIL','carefully ironic accounts affix slyly. regu'), +(768,196,7,1,39,42751.41,0.06,0.08,'N','O','1996-09-25','1996-10-27','1996-10-20','NONE','SHIP','bold pinto'), +(768,18,9,2,2,1836.02,0,0.04,'N','O','1996-11-13','1996-10-03','1996-11-25','DELIVER IN PERSON','SHIP','carefully fluffy packages integrate a'); +INSERT INTO lineitem VALUES +(768,6,1,3,30,27180,0.06,0.05,'N','O','1996-09-22','1996-11-03','1996-10-13','NONE','MAIL','furiously final deposits haggle blith'), +(768,25,8,4,37,34225.74,0.1,0,'N','O','1996-10-02','1996-09-23','1996-10-14','TAKE BACK RETURN','REG AIR','ideas above the deposits cajole s'), +(768,47,10,5,47,44510.88,0.06,0.05,'N','O','1996-11-28','1996-10-30','1996-12-12','NONE','TRUCK','special, stealthy dependencies cajo'), +(768,112,9,6,43,43520.73,0.1,0.06,'N','O','1996-09-22','1996-11-03','1996-10-22','TAKE BACK RETURN','AIR','hockey player'), +(768,49,10,7,33,31318.32,0.01,0.04,'N','O','1996-09-06','1996-09-29','1996-10-01','COLLECT COD','RAIL','ironic foxes against t'), +(769,176,6,1,36,38742.12,0.02,0.02,'A','F','1993-10-01','1993-08-07','1993-10-15','NONE','AIR','bold foxes are-- quickly ironic excuses wa'), +(769,160,8,2,4,4240.64,0.01,0.04,'R','F','1993-06-25','1993-08-12','1993-07-15','DELIVER IN PERSON','FOB','bold, regular packages haggl'), +(770,181,2,1,39,42166.02,0.09,0.06,'N','O','1998-07-19','1998-08-09','1998-08-04','NONE','REG AIR','bold multipliers haggle about the b'), +(770,54,2,2,25,23851.25,0.03,0.02,'N','O','1998-05-26','1998-07-23','1998-06-04','TAKE BACK RETURN','AIR','slyly regular requests cajole furi'), +(771,7,4,1,12,10884,0.1,0.08,'N','O','1995-07-18','1995-08-02','1995-08-07','COLLECT COD','TRUCK','blithely unusual requests solve above the'), +(771,161,10,2,38,40324.08,0.03,0.08,'N','O','1995-07-22','1995-09-10','1995-07-29','TAKE BACK RETURN','REG AIR','quickly bold packages above the '), +(771,7,8,3,14,12698,0.02,0.05,'N','O','1995-07-31','1995-08-13','1995-08-07','DELIVER IN PERSON','AIR','furiously even accounts engage fu'), +(771,42,3,4,7,6594.28,0.06,0.02,'N','O','1995-06-18','1995-08-31','1995-06-20','NONE','REG AIR','doggedly ironic depths are deposits. som'), +(771,78,6,5,13,12714.91,0.09,0.01,'N','O','1995-08-10','1995-08-21','1995-08-30','NONE','FOB','finally bold attainments wa'), +(771,82,3,6,23,22587.84,0.08,0.03,'N','O','1995-06-19','1995-09-07','1995-07-09','COLLECT COD','FOB','accounts wake alongside of the slyly'), +(772,53,5,1,35,33356.75,0.1,0.06,'R','F','1993-07-05','1993-06-05','1993-08-02','NONE','SHIP','regular, regular requests w'), +(772,84,5,2,10,9840.8,0.05,0.01,'R','F','1993-05-20','1993-05-19','1993-06-15','DELIVER IN PERSON','MAIL','blithely even dolphins sleep slyly against '), +(772,86,7,3,35,34512.8,0.03,0.04,'R','F','1993-04-18','1993-06-13','1993-05-01','COLLECT COD','MAIL','never ironic packages haggle. furiousl'), +(772,180,8,4,10,10801.8,0.08,0.02,'A','F','1993-05-17','1993-06-09','1993-05-29','COLLECT COD','AIR','regular, stealthy ideas detect e'), +(772,54,5,5,42,40070.1,0.02,0.07,'A','F','1993-06-09','1993-07-16','1993-06-12','DELIVER IN PERSON','MAIL','dependencies boost carefully blithe'), +(773,100,1,1,5,5000.5,0.06,0.04,'A','F','1993-11-21','1993-12-19','1993-12-21','COLLECT COD','MAIL','quickly regular dep'), +(773,11,5,2,31,28241.31,0.02,0.06,'A','F','1993-12-30','1993-11-02','1994-01-01','TAKE BACK RETURN','MAIL','pending foxes haggle. quickly '), +(773,151,3,3,39,40994.85,0.06,0.05,'A','F','1994-01-04','1993-12-23','1994-01-26','DELIVER IN PERSON','FOB','fluffily pending ideas nag. c'), +(773,29,8,4,28,26012.56,0.1,0.06,'R','F','1994-01-19','1993-11-05','1994-01-23','NONE','TRUCK','fluffily final accounts sleep ste'), +(773,134,5,5,9,9307.17,0.09,0.02,'R','F','1993-10-09','1993-12-25','1993-11-04','TAKE BACK RETURN','FOB','pains breach furiously'), +(773,40,1,6,43,40421.72,0.07,0.03,'A','F','1993-11-06','1993-11-20','1993-11-08','TAKE BACK RETURN','SHIP','slyly regular instructio'), +(774,183,4,1,49,53075.82,0.08,0.03,'N','O','1995-12-06','1996-01-07','1995-12-14','DELIVER IN PERSON','SHIP','theodolites use furiously afte'), +(774,17,4,2,3,2751.03,0.1,0.06,'N','O','1996-02-13','1996-01-14','1996-03-04','COLLECT COD','FOB','slyly pending deposits shall have to wake '), +(774,148,7,3,34,35636.76,0.02,0.07,'N','O','1996-03-16','1996-01-03','1996-03-22','COLLECT COD','FOB','blithely thin ideas doze. furio'); +INSERT INTO lineitem VALUES +(774,15,6,4,8,7320.08,0,0.02,'N','O','1996-01-24','1996-01-15','1996-02-13','COLLECT COD','RAIL','pending ideas are slyly. orbits use blithel'), +(774,177,5,5,44,47395.48,0.09,0.07,'N','O','1996-02-29','1996-01-16','1996-03-06','NONE','REG AIR','express, bold foxes affix carefully unus'), +(774,120,1,6,2,2040.24,0.07,0.03,'N','O','1995-12-11','1996-02-10','1995-12-14','TAKE BACK RETURN','SHIP','pinto beans ab'), +(775,32,3,1,16,14912.48,0.1,0.06,'N','F','1995-05-23','1995-05-07','1995-06-19','NONE','TRUCK','quickly iron'), +(775,174,2,2,21,22557.57,0.01,0.06,'R','F','1995-05-01','1995-06-02','1995-05-13','DELIVER IN PERSON','FOB','platelets impress'), +(775,108,5,3,20,20162,0.01,0.08,'N','F','1995-06-17','1995-05-22','1995-07-13','COLLECT COD','AIR','slyly regular instructio'), +(800,72,1,1,38,36938.66,0,0.05,'N','O','1998-07-21','1998-09-25','1998-08-07','TAKE BACK RETURN','TRUCK','quickly special requests '), +(800,85,6,2,21,20686.68,0.04,0.05,'N','O','1998-07-23','1998-10-01','1998-08-20','TAKE BACK RETURN','RAIL','furiously unusual packages are quickly'), +(800,176,5,3,26,27980.42,0.01,0.02,'N','O','1998-07-23','1998-10-08','1998-07-25','DELIVER IN PERSON','FOB','pending instructions wake along the s'), +(801,6,3,1,13,11778,0.1,0.02,'R','F','1992-04-25','1992-04-24','1992-05-16','COLLECT COD','RAIL','slyly express requests wake sl'), +(801,95,8,2,21,20896.89,0.05,0.02,'A','F','1992-03-14','1992-04-01','1992-04-05','COLLECT COD','AIR','blithely express in'), +(801,3,4,3,21,18963,0.05,0.03,'A','F','1992-04-25','1992-03-20','1992-05-04','COLLECT COD','REG AIR','furiously quiet real'), +(801,164,9,4,12,12769.92,0.08,0.04,'A','F','1992-06-06','1992-04-14','1992-06-12','TAKE BACK RETURN','RAIL','final decoys'), +(801,74,2,5,45,43833.15,0.01,0.06,'R','F','1992-03-22','1992-03-22','1992-03-25','COLLECT COD','REG AIR','foxes cajole furiously among the st'), +(801,122,7,6,10,10221.2,0.08,0.01,'A','F','1992-06-05','1992-05-15','1992-06-21','DELIVER IN PERSON','MAIL','blithely pen'), +(801,26,5,7,11,10186.22,0.01,0.03,'A','F','1992-05-09','1992-04-19','1992-05-15','DELIVER IN PERSON','REG AIR','packages sleep slyly final packages. sheav'), +(802,143,6,1,40,41725.6,0.08,0.08,'A','F','1995-01-07','1995-04-03','1995-01-23','DELIVER IN PERSON','RAIL','slyly blithe accounts nod fl'), +(802,133,4,2,34,35126.42,0.08,0.06,'A','F','1995-03-01','1995-03-15','1995-03-12','COLLECT COD','AIR','warthogs sleep accounts. package'), +(802,131,2,3,44,45369.72,0.07,0.04,'R','F','1995-01-09','1995-02-04','1995-01-18','TAKE BACK RETURN','SHIP','blithely pending accounts haggle fur'), +(802,157,2,4,18,19028.7,0.09,0.02,'R','F','1995-03-06','1995-02-07','1995-03-19','TAKE BACK RETURN','RAIL','regular, regular t'), +(802,132,3,5,19,19610.47,0.08,0.06,'A','F','1995-04-01','1995-02-20','1995-04-23','DELIVER IN PERSON','REG AIR','slyly unusual ideas detect. even, final re'), +(803,54,9,1,8,7632.4,0.07,0.01,'N','O','1997-08-04','1997-06-19','1997-08-12','NONE','SHIP','furiously regular foxes wake carefully qu'), +(803,99,10,2,21,20980.89,0.08,0.06,'N','O','1997-08-25','1997-06-30','1997-09-10','TAKE BACK RETURN','AIR','fluffily unusual requests a'), +(804,126,7,1,30,30783.6,0.08,0.04,'A','F','1993-03-29','1993-05-07','1993-04-14','COLLECT COD','REG AIR','even excuses along the'), +(804,199,3,2,2,2198.38,0.02,0,'A','F','1993-06-23','1993-04-30','1993-06-25','NONE','TRUCK','regular foxes according to the '), +(804,76,5,3,44,42947.08,0.04,0.05,'R','F','1993-07-06','1993-04-13','1993-07-28','DELIVER IN PERSON','TRUCK','even, even packages cajole special '), +(804,38,9,4,21,19698.63,0.01,0,'A','F','1993-04-12','1993-06-06','1993-04-20','DELIVER IN PERSON','RAIL','fluffily ironic pinto beans'), +(805,198,10,1,25,27454.75,0.07,0.06,'N','O','1995-08-05','1995-09-30','1995-08-06','NONE','AIR','dependencies along the fluffily speci'), +(805,57,5,2,29,27754.45,0.07,0.01,'N','O','1995-08-24','1995-08-15','1995-09-16','TAKE BACK RETURN','AIR','deposits according to t'); +INSERT INTO lineitem VALUES +(805,47,8,3,12,11364.48,0.01,0.06,'N','O','1995-07-13','1995-09-27','1995-08-02','TAKE BACK RETURN','REG AIR','ironically regular theodolites sleep ir'), +(805,76,6,4,26,25377.82,0.08,0.07,'N','O','1995-08-28','1995-09-24','1995-09-11','TAKE BACK RETURN','RAIL','instructions on the'), +(806,105,2,1,1,1005.1,0.04,0.07,'N','O','1996-07-14','1996-09-12','1996-07-25','COLLECT COD','RAIL','carefully final packages cajole fur'), +(806,160,5,2,22,23323.52,0.08,0.02,'N','O','1996-10-03','1996-08-11','1996-10-20','DELIVER IN PERSON','REG AIR','express instructions integr'), +(806,91,3,3,4,3964.36,0.04,0.03,'N','O','1996-08-09','1996-09-18','1996-08-13','COLLECT COD','TRUCK','quickly final requests play blith'), +(807,117,7,1,49,49838.39,0,0,'R','F','1993-12-05','1994-01-13','1993-12-25','COLLECT COD','REG AIR','slyly brave packages cajole? fu'), +(807,155,10,2,49,51702.35,0.01,0.06,'A','F','1994-01-17','1994-01-24','1994-01-22','COLLECT COD','TRUCK','carefully slow accou'), +(807,181,2,3,48,51896.64,0.07,0.07,'A','F','1994-01-08','1994-02-02','1994-01-15','DELIVER IN PERSON','SHIP','accounts are quickly. slyly ironic'), +(807,80,1,4,10,9800.8,0.09,0,'R','F','1994-01-19','1994-02-12','1994-01-28','NONE','TRUCK','carefully permanent ideas cajo'), +(807,143,6,5,30,31294.2,0.02,0.01,'R','F','1994-01-19','1994-01-09','1994-01-27','NONE','RAIL','slyly regular account'), +(807,12,2,6,11,10032.11,0.02,0.04,'R','F','1994-03-25','1994-01-26','1994-04-14','NONE','FOB','carefully regular in'), +(807,1,6,7,19,17119,0.08,0.05,'A','F','1994-02-10','1994-02-20','1994-03-06','NONE','SHIP','dolphins ac'), +(832,103,6,1,45,45139.5,0.01,0.02,'A','F','1992-05-08','1992-06-06','1992-06-04','COLLECT COD','MAIL','bold, regular requests mig'), +(832,48,1,2,24,22752.96,0.05,0.06,'A','F','1992-06-15','1992-07-14','1992-06-17','NONE','TRUCK','regular co'), +(833,54,5,1,1,954.05,0.04,0.04,'R','F','1994-04-26','1994-04-05','1994-04-29','COLLECT COD','MAIL','fluffily regular asympt'), +(833,112,6,2,38,38460.18,0.05,0.05,'A','F','1994-04-05','1994-04-21','1994-05-01','COLLECT COD','TRUCK','unusual dinos believe'), +(833,162,7,3,9,9559.44,0.05,0.07,'A','F','1994-02-28','1994-04-26','1994-03-20','TAKE BACK RETURN','FOB','pending foxes detect bold pinto bean'), +(834,145,2,1,36,37625.04,0.06,0.04,'R','F','1994-06-28','1994-07-25','1994-07-07','TAKE BACK RETURN','SHIP','blithely regular deposits use quick'), +(834,7,2,2,11,9977,0.03,0,'A','F','1994-09-18','1994-08-03','1994-10-02','DELIVER IN PERSON','TRUCK','quick epitaphs cajole'), +(835,107,2,1,33,33234.3,0.09,0.06,'N','O','1995-11-01','1995-12-02','1995-11-24','DELIVER IN PERSON','RAIL','furiously ironic accounts need to ar'), +(835,185,6,2,28,30385.04,0.02,0.02,'N','O','1995-12-27','1995-12-11','1996-01-21','NONE','SHIP','furiously ironic pinto beans kindle quickly'), +(836,188,9,1,6,6529.08,0.09,0.03,'N','O','1996-12-09','1997-01-31','1996-12-29','COLLECT COD','TRUCK','carefully thin deposits are afte'), +(836,84,5,2,18,17713.44,0.03,0.05,'N','O','1997-02-27','1997-02-11','1997-03-22','NONE','REG AIR','carefully regular requests across the qu'), +(836,141,8,3,46,47892.44,0.05,0.07,'N','O','1997-03-21','1997-02-06','1997-04-05','NONE','REG AIR','doggedly regular ideas wake quickly sp'), +(837,57,5,1,39,37324.95,0.03,0.08,'A','F','1994-07-22','1994-08-10','1994-08-11','NONE','RAIL','dogged accounts sleep blithel'), +(837,88,9,2,24,23713.92,0.08,0,'R','F','1994-06-27','1994-09-02','1994-07-27','DELIVER IN PERSON','FOB','quickly daring inst'), +(838,134,10,1,20,20682.6,0.1,0.07,'N','O','1998-04-11','1998-03-25','1998-04-19','COLLECT COD','TRUCK','fluffily ironic pinto beans dazzle '), +(838,29,10,2,27,25083.54,0.05,0.07,'N','O','1998-02-15','1998-04-03','1998-02-20','DELIVER IN PERSON','SHIP','carefully express pinto beans '), +(838,95,7,3,23,22887.07,0.1,0.07,'N','O','1998-03-26','1998-04-17','1998-04-02','COLLECT COD','AIR','blithely regular requests sleep around t'), +(838,44,5,4,18,16992.72,0.09,0,'N','O','1998-03-28','1998-04-06','1998-03-31','TAKE BACK RETURN','AIR','blithely special do'); +INSERT INTO lineitem VALUES +(839,158,10,1,23,24337.45,0.07,0.02,'N','O','1995-10-17','1995-11-03','1995-11-04','COLLECT COD','AIR','blithely bold foxes c'), +(839,189,10,2,47,51191.46,0.08,0,'N','O','1995-10-17','1995-11-06','1995-11-10','NONE','AIR','furiously ironic requests'), +(864,130,5,1,34,35024.42,0.03,0.04,'N','O','1997-12-16','1997-10-23','1998-01-12','TAKE BACK RETURN','SHIP','carefully even deposits run. quickly reg'), +(864,98,1,2,7,6986.63,0.01,0.02,'N','O','1997-11-13','1997-10-07','1997-12-13','TAKE BACK RETURN','MAIL','quickly final platelets against the silent '), +(864,80,10,3,34,33322.72,0.03,0,'N','O','1997-09-14','1997-11-04','1997-09-21','TAKE BACK RETURN','REG AIR','blithely even'), +(865,198,10,1,16,17571.04,0.07,0.03,'R','F','1993-08-24','1993-06-26','1993-08-28','TAKE BACK RETURN','TRUCK','fluffily regular packages above the exp'), +(865,20,7,2,3,2760.06,0.02,0.05,'A','F','1993-07-17','1993-07-14','1993-08-01','NONE','MAIL','bold, pending sauternes ha'), +(865,87,8,3,15,14806.2,0,0.06,'R','F','1993-07-05','1993-06-25','1993-07-26','NONE','SHIP','slyly regular orbits ar'), +(865,169,4,4,34,36351.44,0.09,0.06,'A','F','1993-05-09','1993-07-28','1993-05-18','DELIVER IN PERSON','REG AIR','special dolphins use blithely. '), +(866,136,7,1,5,5180.65,0.08,0,'R','F','1993-01-22','1993-01-14','1993-02-07','TAKE BACK RETURN','AIR','final requests haggle slyly of '), +(867,139,10,1,7,7273.91,0.04,0.07,'A','F','1994-02-19','1993-12-25','1994-02-25','DELIVER IN PERSON','TRUCK','special, express pac'), +(868,168,9,1,8,8545.28,0.06,0.03,'R','F','1992-10-07','1992-08-01','1992-10-16','NONE','MAIL','regular, even packages against the q'), +(868,29,8,2,13,12077.26,0.05,0.07,'R','F','1992-07-25','1992-08-26','1992-08-04','NONE','AIR','slyly ironic platelets haggle fu'), +(868,68,5,3,19,18393.14,0.09,0.06,'R','F','1992-06-22','1992-08-27','1992-07-04','COLLECT COD','SHIP','carefully express packages according'), +(868,122,1,4,43,43951.16,0.02,0.04,'A','F','1992-07-02','1992-07-22','1992-07-21','COLLECT COD','SHIP','special, ironic excuses doze. bold, expre'), +(868,25,8,5,27,24975.54,0.04,0.01,'R','F','1992-08-01','1992-08-25','1992-08-12','TAKE BACK RETURN','RAIL','quickly ironi'), +(868,125,6,6,19,19477.28,0.02,0.05,'R','F','1992-09-20','1992-07-18','1992-10-04','NONE','FOB','express, ir'), +(869,63,2,1,27,26002.62,0.07,0.07,'N','O','1997-01-30','1997-02-17','1997-02-26','TAKE BACK RETURN','TRUCK','silent foxes according to the bol'), +(869,47,4,2,36,34093.44,0.04,0.01,'N','O','1997-05-03','1997-03-17','1997-05-24','NONE','RAIL','even requests wake slyly above the accoun'), +(870,50,9,1,36,34201.8,0.04,0.07,'A','F','1993-10-18','1993-09-16','1993-11-15','COLLECT COD','MAIL','finally re'), +(870,186,7,2,5,5430.9,0.06,0.05,'A','F','1993-08-13','1993-09-11','1993-08-24','COLLECT COD','FOB','deposits against th'), +(871,97,8,1,48,47860.32,0.1,0.03,'N','O','1996-02-25','1996-02-09','1996-03-18','NONE','AIR','slyly even ex'), +(871,55,10,2,47,44887.35,0.07,0.03,'N','O','1995-12-25','1996-02-01','1996-01-24','TAKE BACK RETURN','RAIL','furiously blithe packages accordin'), +(871,108,5,3,13,13105.3,0.09,0.01,'N','O','1996-01-25','1996-01-24','1996-02-03','NONE','REG AIR','express pinto beans are across the bold'), +(871,190,1,4,29,31615.51,0.06,0.07,'N','O','1995-11-16','1996-01-27','1995-12-16','DELIVER IN PERSON','RAIL','slyly final requests wake sl'), +(871,128,7,5,8,8224.96,0,0.01,'N','O','1995-11-25','1996-01-12','1995-12-12','DELIVER IN PERSON','AIR','packages w'), +(871,143,2,6,26,27121.64,0,0.06,'N','O','1996-02-07','1996-01-05','1996-02-25','COLLECT COD','AIR','furiously regular '), +(871,174,3,7,4,4296.68,0,0.07,'N','O','1996-03-09','1996-01-20','1996-03-26','COLLECT COD','FOB','slyly bold ins'), +(896,39,10,1,47,44134.41,0.07,0.08,'R','F','1993-05-28','1993-05-15','1993-06-15','DELIVER IN PERSON','TRUCK','silent, ironic instructions nag quickly'), +(896,198,2,2,10,10981.9,0.03,0.07,'A','F','1993-07-07','1993-06-03','1993-07-24','COLLECT COD','SHIP','silently special'); +INSERT INTO lineitem VALUES +(896,2,9,3,7,6314,0.09,0.02,'A','F','1993-05-02','1993-05-24','1993-05-31','DELIVER IN PERSON','MAIL','blithely ironi'), +(896,152,3,4,11,11573.65,0.08,0.04,'A','F','1993-05-19','1993-05-22','1993-06-08','COLLECT COD','MAIL','pending accou'), +(896,188,9,5,34,36998.12,0,0.05,'R','F','1993-05-21','1993-06-01','1993-05-23','NONE','TRUCK','slyly regular deposits alongside of the '), +(896,177,6,6,44,47395.48,0.09,0.08,'R','F','1993-05-19','1993-04-14','1993-06-02','DELIVER IN PERSON','FOB','even foxes use slyly; requests affix final '), +(896,109,2,7,11,11100.1,0.01,0.07,'A','F','1993-05-01','1993-04-09','1993-05-06','TAKE BACK RETURN','FOB','express pinto beans are alon'), +(897,91,4,1,15,14866.35,0.07,0.04,'R','F','1995-05-25','1995-05-09','1995-06-07','COLLECT COD','REG AIR','furiously regul'), +(897,184,5,2,26,28188.68,0.05,0.08,'N','O','1995-07-01','1995-06-10','1995-07-14','COLLECT COD','MAIL','accounts along '), +(897,126,1,3,13,13339.56,0.07,0,'A','F','1995-03-30','1995-05-17','1995-04-21','TAKE BACK RETURN','MAIL','furiously regular deposit'), +(897,102,7,4,2,2004.2,0.08,0.08,'R','F','1995-05-22','1995-05-07','1995-06-16','COLLECT COD','RAIL','blithely ironic requests sleep at'), +(898,161,2,1,9,9550.44,0.07,0.08,'A','F','1993-07-04','1993-07-09','1993-07-25','NONE','AIR','slyly even asymptotes wake slyly special '), +(898,179,7,2,37,39929.29,0.03,0.05,'A','F','1993-08-17','1993-08-04','1993-09-01','DELIVER IN PERSON','REG AIR','carefully silent at'), +(898,49,8,3,11,10439.44,0.01,0,'A','F','1993-09-13','1993-08-31','1993-09-25','TAKE BACK RETURN','MAIL','furiously bold packages are furi'), +(898,193,6,4,36,39354.84,0.04,0.07,'R','F','1993-08-04','1993-07-25','1993-08-23','DELIVER IN PERSON','REG AIR','carefully express'), +(899,61,10,1,18,17299.08,0.04,0.05,'N','O','1998-08-06','1998-05-09','1998-09-05','DELIVER IN PERSON','AIR','special, special '), +(899,47,4,2,25,23676,0,0.07,'N','O','1998-07-21','1998-05-12','1998-08-16','NONE','REG AIR','fluffily brave req'), +(899,85,6,3,4,3940.32,0.09,0.05,'N','O','1998-06-02','1998-06-28','1998-06-14','TAKE BACK RETURN','REG AIR','deposits wake. iron'), +(899,180,9,4,14,15122.52,0.05,0.03,'N','O','1998-05-21','1998-05-28','1998-06-03','TAKE BACK RETURN','FOB','carefully furious'), +(899,71,10,5,4,3884.28,0.06,0.02,'N','O','1998-04-11','1998-05-14','1998-04-27','NONE','TRUCK','express asymptotes acco'), +(899,120,4,6,47,47945.64,0,0.04,'N','O','1998-04-14','1998-05-30','1998-05-13','DELIVER IN PERSON','TRUCK','accounts are '), +(899,14,1,7,11,10054.11,0.02,0.08,'N','O','1998-06-03','1998-06-15','1998-06-20','COLLECT COD','REG AIR','slyly regular requests grow furiously ir'), +(900,199,1,1,44,48364.36,0.01,0.06,'R','F','1994-12-15','1994-12-03','1994-12-27','COLLECT COD','MAIL','blithely fin'), +(900,115,6,2,48,48725.28,0.08,0.04,'A','F','1994-12-22','1994-11-08','1995-01-19','COLLECT COD','TRUCK','dependencies must caj'), +(900,75,6,3,24,23401.68,0.03,0,'R','F','1994-10-21','1994-12-25','1994-10-22','TAKE BACK RETURN','SHIP','brave requests n'), +(901,22,7,1,36,33192.72,0.01,0.01,'N','O','1998-08-11','1998-10-09','1998-08-27','DELIVER IN PERSON','REG AIR','slyly ironic pac'), +(901,46,7,2,2,1892.08,0.09,0.02,'N','O','1998-10-25','1998-09-27','1998-11-01','DELIVER IN PERSON','AIR','furiously dogged as'), +(901,43,10,3,37,34892.48,0.04,0.08,'N','O','1998-11-01','1998-09-13','1998-11-05','NONE','AIR','silent depo'), +(901,18,9,4,11,10098.11,0,0.06,'N','O','1998-11-13','1998-10-19','1998-11-14','TAKE BACK RETURN','TRUCK','fluffy instructions nag'), +(902,111,2,1,3,3033.33,0.06,0,'R','F','1994-10-01','1994-10-25','1994-10-28','COLLECT COD','MAIL','slyly ironic instructions are slyly ev'), +(902,118,2,2,8,8144.88,0.06,0.07,'R','F','1994-10-25','1994-09-20','1994-11-07','COLLECT COD','RAIL','slyly unus'), +(902,165,2,3,24,25563.84,0.02,0.05,'R','F','1994-11-08','1994-10-12','1994-11-26','NONE','FOB','furiously pending depo'), +(903,65,10,1,27,26056.62,0.04,0.03,'N','O','1995-09-18','1995-09-20','1995-10-02','TAKE BACK RETURN','SHIP','blithely reg'); +INSERT INTO lineitem VALUES +(903,9,2,2,35,31815,0.06,0.05,'N','O','1995-09-18','1995-08-21','1995-10-12','TAKE BACK RETURN','TRUCK','fluffily regular theodolites affix quickl'), +(903,9,2,3,33,29997,0.02,0.03,'N','O','1995-09-24','1995-09-01','1995-10-12','COLLECT COD','MAIL','enticingly regular gifts un'), +(903,56,1,4,9,8604.45,0.09,0,'N','O','1995-10-06','1995-09-14','1995-10-24','NONE','TRUCK','ironic platelets around the spec'), +(903,42,3,5,1,942.04,0.04,0,'N','O','1995-10-22','1995-09-13','1995-11-03','NONE','AIR','carefully regular accounts are carefu'), +(903,168,9,6,13,13886.08,0.07,0.02,'N','O','1995-09-11','1995-10-04','1995-10-03','COLLECT COD','SHIP','evenly fin'), +(928,169,10,1,29,31005.64,0.07,0.02,'R','F','1995-05-17','1995-05-12','1995-05-21','NONE','REG AIR','fluffily even asymptotes about the instruct'), +(928,48,7,2,24,22752.96,0.05,0.08,'A','F','1995-04-06','1995-05-08','1995-04-24','DELIVER IN PERSON','AIR','blithely final dolphins use. bl'), +(928,152,10,3,46,48398.9,0.08,0,'A','F','1995-05-09','1995-04-09','1995-06-01','DELIVER IN PERSON','REG AIR','furiously '), +(928,52,4,4,43,40938.15,0.1,0.05,'A','F','1995-04-14','1995-04-21','1995-05-09','NONE','REG AIR','deposits mold. pinto bean'), +(928,12,3,5,38,34656.38,0.02,0.08,'N','F','1995-06-08','1995-04-15','1995-06-30','TAKE BACK RETURN','SHIP','slyly express accounts across the furious'), +(928,55,6,6,50,47752.5,0.05,0,'N','F','1995-06-07','1995-04-15','1995-07-01','DELIVER IN PERSON','TRUCK','even frays use fu'), +(928,11,5,7,11,10021.11,0,0.01,'A','F','1995-04-29','1995-04-16','1995-04-30','NONE','AIR','blithely bold gifts sl'), +(929,129,8,1,45,46310.4,0.09,0.01,'R','F','1993-01-24','1992-12-06','1993-02-16','DELIVER IN PERSON','REG AIR','doggedly ironic deposi'), +(929,175,5,2,44,47307.48,0.02,0,'A','F','1992-10-09','1992-11-20','1992-10-22','DELIVER IN PERSON','SHIP','quickly final excuses caj'), +(929,74,5,3,14,13636.98,0.06,0.07,'A','F','1992-10-21','1992-11-17','1992-11-15','NONE','FOB','fluffily ironic requests thr'), +(929,102,5,4,7,7014.7,0.06,0.01,'A','F','1992-12-24','1992-12-19','1993-01-08','TAKE BACK RETURN','TRUCK','idle, regular dependencies are care'), +(930,45,4,1,36,34021.44,0.1,0.04,'R','F','1994-12-21','1995-02-20','1994-12-24','COLLECT COD','RAIL','regularly ironic deposits are furiously a'), +(930,18,8,2,47,43146.47,0.08,0,'A','F','1995-03-20','1995-02-04','1995-04-04','DELIVER IN PERSON','AIR','quickly regular depos'), +(930,65,10,3,10,9650.6,0.07,0.08,'A','F','1994-12-18','1995-01-27','1995-01-16','COLLECT COD','AIR','carefully close war'), +(930,100,2,4,21,21002.1,0.06,0.02,'A','F','1995-02-16','1995-03-03','1995-03-13','DELIVER IN PERSON','SHIP','bold packages integrate quickly.'), +(930,164,9,5,50,53208,0.03,0.06,'A','F','1995-04-03','1995-01-29','1995-04-22','COLLECT COD','MAIL','final requests wake furiously pending '), +(930,145,4,6,10,10451.4,0,0.04,'A','F','1995-02-09','1995-02-17','1995-02-16','NONE','SHIP','furiously quiet '), +(930,167,4,7,30,32014.8,0.07,0.08,'R','F','1995-01-20','1995-02-28','1995-02-04','TAKE BACK RETURN','RAIL','slyly even deposits nag slyly ironic'), +(931,40,1,1,18,16920.72,0,0.05,'A','F','1993-04-04','1993-01-11','1993-04-13','NONE','RAIL','slyly even accounts can'), +(931,17,7,2,10,9170.1,0.05,0.07,'A','F','1993-03-01','1993-01-09','1993-03-07','TAKE BACK RETURN','SHIP','carefully pending asymptotes sleep qu'), +(931,147,6,3,48,50262.72,0.01,0.08,'A','F','1993-02-03','1993-03-02','1993-02-09','TAKE BACK RETURN','FOB','carefully r'), +(931,82,3,4,38,37319.04,0.08,0.08,'A','F','1993-03-06','1993-02-24','1993-03-27','DELIVER IN PERSON','RAIL','regular, final packag'), +(932,44,1,1,41,38705.64,0.01,0.05,'N','O','1997-06-05','1997-07-22','1997-06-26','COLLECT COD','RAIL','blithely ironic requests cajo'), +(933,49,8,1,23,21827.92,0.02,0.04,'R','F','1992-08-13','1992-09-18','1992-08-25','DELIVER IN PERSON','MAIL','thinly pen'), +(933,13,4,2,27,24651.27,0.02,0.01,'R','F','1992-10-03','1992-10-02','1992-10-26','DELIVER IN PERSON','RAIL','furiously bold theodolites wake even ac'); +INSERT INTO lineitem VALUES +(933,100,2,3,26,26002.6,0.05,0,'A','F','1992-11-09','1992-11-03','1992-11-16','DELIVER IN PERSON','AIR','slyly even dept'), +(934,118,5,1,18,18325.98,0.07,0.01,'N','O','1996-09-10','1996-09-20','1996-09-25','COLLECT COD','RAIL','furiously even pinto be'), +(935,28,3,1,23,21344.46,0.05,0,'N','O','1997-11-11','1997-11-22','1997-11-29','COLLECT COD','REG AIR','carefully even '), +(935,65,10,2,23,22196.38,0.02,0.01,'N','O','1998-01-11','1997-11-25','1998-02-05','COLLECT COD','TRUCK','carefully ironic m'), +(935,135,1,3,36,37264.68,0.06,0,'N','O','1997-11-05','1997-12-05','1997-11-25','TAKE BACK RETURN','AIR','evenly ironic foxes are caref'), +(935,58,3,4,13,12454.65,0.08,0.04,'N','O','1998-01-13','1997-11-30','1998-02-08','DELIVER IN PERSON','TRUCK','furiously unu'), +(935,13,7,5,8,7304.08,0.02,0.05,'N','O','1998-01-12','1997-11-02','1998-02-05','NONE','TRUCK','bold packages use. caref'), +(935,59,1,6,1,959.05,0.01,0.08,'N','O','1997-12-14','1997-11-22','1998-01-08','DELIVER IN PERSON','TRUCK','furiously regular deposits haggl'), +(960,107,10,1,1,1007.1,0.07,0,'A','F','1994-12-24','1994-10-26','1995-01-20','DELIVER IN PERSON','AIR','requests sleep according to t'), +(960,117,7,2,25,25427.75,0.06,0.08,'R','F','1994-12-01','1994-10-29','1994-12-27','DELIVER IN PERSON','RAIL','final theodolites are'), +(960,175,3,3,32,34405.44,0.01,0.08,'R','F','1995-01-19','1994-12-17','1995-02-04','DELIVER IN PERSON','FOB','busily final inst'), +(961,118,5,1,7,7126.77,0.1,0,'N','O','1995-07-23','1995-07-20','1995-08-11','TAKE BACK RETURN','RAIL','quickly pending '), +(961,91,2,2,18,17839.62,0.09,0.05,'N','O','1995-07-01','1995-08-14','1995-07-04','DELIVER IN PERSON','AIR','slyly ironic accounts cajole acco'), +(961,97,8,3,42,41877.78,0.06,0.01,'N','O','1995-08-24','1995-08-21','1995-09-10','TAKE BACK RETURN','SHIP','special, regu'), +(961,34,10,4,29,27086.87,0,0.07,'N','F','1995-06-10','1995-08-20','1995-06-26','TAKE BACK RETURN','TRUCK','carefully ev'), +(961,26,7,5,38,35188.76,0.03,0.05,'N','O','1995-08-21','1995-07-19','1995-08-27','NONE','RAIL','final deposits engage '), +(961,197,8,6,30,32915.7,0.09,0.03,'N','O','1995-07-06','1995-07-20','1995-07-26','DELIVER IN PERSON','MAIL','enticing ideas run f'), +(962,57,8,1,36,34453.8,0.01,0.03,'R','F','1994-08-09','1994-07-10','1994-09-02','COLLECT COD','TRUCK','furiously regu'), +(962,36,2,2,27,25272.81,0.09,0.02,'A','F','1994-05-11','1994-07-10','1994-06-03','TAKE BACK RETURN','SHIP','pending plate'), +(962,80,1,3,3,2940.24,0.07,0.08,'A','F','1994-05-08','1994-07-06','1994-06-02','DELIVER IN PERSON','FOB','unusual deposits eat quickly accordi'), +(962,57,5,4,20,19141,0.04,0.02,'R','F','1994-08-26','1994-06-27','1994-09-11','DELIVER IN PERSON','SHIP','carefully '), +(962,152,7,5,12,12625.8,0.02,0,'A','F','1994-06-09','1994-06-07','1994-06-11','COLLECT COD','TRUCK','quickly ironic depo'), +(962,188,9,6,5,5440.9,0.02,0.05,'A','F','1994-08-29','1994-07-15','1994-09-19','COLLECT COD','TRUCK','slyly unusual t'), +(963,194,8,1,7,7659.33,0.01,0,'R','F','1994-09-12','1994-07-18','1994-09-17','DELIVER IN PERSON','REG AIR','final, bold dependencies use slyly'), +(963,98,10,2,48,47908.32,0.1,0.06,'R','F','1994-08-25','1994-08-12','1994-09-21','DELIVER IN PERSON','RAIL','furiously i'), +(964,199,10,1,39,42868.41,0.04,0.01,'N','O','1995-06-21','1995-07-24','1995-06-24','NONE','AIR','carefully regular accounts cajole slyly'), +(964,113,4,2,1,1013.11,0.02,0.05,'N','O','1995-08-20','1995-07-29','1995-09-10','DELIVER IN PERSON','REG AIR','final platelets wak'), +(964,57,5,3,49,46895.45,0.01,0.03,'N','O','1995-09-06','1995-08-10','1995-10-05','NONE','MAIL','furiously regular asymptot'), +(964,55,3,4,44,42022.2,0.05,0.02,'N','O','1995-09-18','1995-08-02','1995-10-17','TAKE BACK RETURN','TRUCK','slyly final theodolites cajol'), +(965,108,1,1,20,20162,0.04,0.05,'N','F','1995-06-16','1995-07-20','1995-07-06','COLLECT COD','MAIL','furiously even deposits maintain'), +(965,18,5,2,23,21114.23,0.06,0.08,'N','O','1995-07-12','1995-07-08','1995-08-11','COLLECT COD','MAIL','carefully express theodol'); +INSERT INTO lineitem VALUES +(966,180,8,1,19,20523.42,0.07,0.01,'N','O','1998-05-26','1998-07-15','1998-05-29','COLLECT COD','FOB','bold deposits across the'), +(966,117,4,2,42,42718.62,0.02,0.06,'N','O','1998-06-28','1998-06-20','1998-07-05','NONE','TRUCK','regular, ironic deposits are across the fur'), +(966,22,1,3,42,38724.84,0.06,0.08,'N','O','1998-06-15','1998-06-08','1998-07-05','NONE','RAIL','quickly regula'), +(966,5,2,4,20,18100,0.04,0.01,'N','O','1998-07-19','1998-07-15','1998-07-27','NONE','TRUCK','pending deposits sleep fl'), +(967,59,4,1,41,39321.05,0.05,0.05,'R','F','1992-09-21','1992-08-15','1992-10-21','NONE','MAIL','unusual, iro'), +(967,85,6,2,4,3940.32,0.01,0.02,'A','F','1992-07-15','1992-07-27','1992-07-18','DELIVER IN PERSON','REG AIR','slyly regular theodolites among the'), +(967,132,8,3,10,10321.3,0,0.02,'A','F','1992-09-18','1992-08-06','1992-09-19','DELIVER IN PERSON','MAIL','bold deposit'), +(967,148,7,4,49,51358.86,0.01,0.04,'A','F','1992-09-28','1992-09-15','1992-10-14','NONE','SHIP','carefully regular reques'), +(967,17,1,5,41,37597.41,0.08,0.04,'A','F','1992-07-23','1992-08-07','1992-08-13','TAKE BACK RETURN','FOB','carefully special deposits haggle by the '), +(967,106,9,6,17,17103.7,0.05,0.06,'A','F','1992-10-02','1992-08-19','1992-10-25','NONE','MAIL','final ideas alongside '), +(967,161,8,7,18,19100.88,0,0.02,'A','F','1992-10-06','1992-08-05','1992-10-15','DELIVER IN PERSON','RAIL','special, regular r'), +(992,60,2,1,14,13440.84,0.1,0.03,'N','O','1998-01-29','1997-12-29','1998-02-18','TAKE BACK RETURN','MAIL','unusual ideas boost fluff'), +(992,38,9,2,34,31893.02,0.02,0,'N','O','1997-11-29','1998-01-21','1997-11-30','NONE','RAIL','carefully brave accounts '), +(992,105,6,3,30,30153,0.1,0,'N','O','1997-12-15','1998-02-02','1998-01-12','NONE','SHIP','permanent packages are blithely. express'), +(992,48,5,4,21,19908.84,0.06,0.06,'N','O','1997-11-13','1997-12-28','1997-12-10','NONE','TRUCK','deposits nod final, bold requests. furiousl'), +(992,92,4,5,7,6944.63,0.09,0.05,'N','O','1997-11-30','1997-12-24','1997-12-16','DELIVER IN PERSON','TRUCK','blithely express foxes are quickly qui'), +(992,75,3,6,41,39977.87,0.1,0.01,'N','O','1997-11-14','1998-02-04','1997-11-23','TAKE BACK RETURN','AIR','quickly unusual requests haggle fur'), +(993,175,5,1,33,35480.61,0.01,0.05,'N','O','1996-01-03','1995-11-28','1996-01-23','DELIVER IN PERSON','AIR','fluffily express reque'), +(993,3,6,2,28,25284,0.06,0.08,'N','O','1995-10-24','1995-11-20','1995-11-06','DELIVER IN PERSON','RAIL','furiously special ideas above the special, '), +(993,40,1,3,10,9400.4,0.03,0.08,'N','O','1995-12-17','1995-11-13','1995-12-20','NONE','RAIL','slyly regular requests '), +(993,191,4,4,40,43647.6,0.01,0.01,'N','O','1995-11-16','1995-11-01','1995-12-05','TAKE BACK RETURN','RAIL','slyly express excuses haggle blithely aga'), +(993,146,7,5,33,34522.62,0.09,0.08,'N','O','1995-09-28','1995-10-24','1995-10-03','COLLECT COD','RAIL','fluffily ironic excuses affix'), +(993,137,3,6,35,36299.55,0.04,0.02,'N','O','1995-10-26','1995-10-20','1995-11-05','DELIVER IN PERSON','FOB','slyly special deposits after the pending ac'), +(993,5,2,7,15,13575,0.09,0.03,'N','O','1995-09-27','1995-10-21','1995-10-17','DELIVER IN PERSON','MAIL','furiously express instructions should'), +(994,65,6,1,4,3860.24,0.07,0.03,'R','F','1994-07-05','1994-05-21','1994-07-20','COLLECT COD','SHIP','slyly even depend'), +(994,10,3,2,11,10010.11,0.01,0,'R','F','1994-05-03','1994-06-10','1994-05-22','NONE','AIR','silent instructions above the blithely i'), +(994,31,7,3,5,4655.15,0.08,0.08,'A','F','1994-06-24','1994-06-14','1994-06-26','NONE','MAIL','slyly even'), +(994,131,7,4,25,25778.25,0.1,0,'A','F','1994-06-03','1994-06-02','1994-06-06','COLLECT COD','RAIL','even, special foxe'), +(995,173,1,1,15,16097.55,0.08,0.05,'N','O','1995-06-30','1995-08-04','1995-07-27','NONE','REG AIR','furiously silent pinto beans maintain unusu'), +(995,129,4,2,28,28815.36,0.08,0.03,'N','F','1995-06-12','1995-07-20','1995-06-19','DELIVER IN PERSON','SHIP','furiously regular deposi'); +INSERT INTO lineitem VALUES +(995,166,3,3,45,47977.2,0,0.05,'N','O','1995-08-02','1995-07-21','1995-08-03','DELIVER IN PERSON','SHIP','accounts wake blithely expres'), +(995,66,3,4,25,24151.5,0.01,0.08,'N','O','1995-09-08','1995-08-05','1995-09-28','NONE','TRUCK','slyly bold requests are blithely. slyly r'), +(995,24,5,5,18,16632.36,0.06,0.03,'N','O','1995-07-03','1995-07-29','1995-07-22','TAKE BACK RETURN','AIR','unusual platelets breach. slyly fin'), +(996,173,2,1,43,46146.31,0.03,0.06,'N','O','1998-03-27','1998-03-25','1998-04-06','COLLECT COD','SHIP','slyly regular packages after the quic'), +(997,163,4,1,11,11694.76,0,0.02,'N','O','1997-06-16','1997-07-21','1997-07-14','DELIVER IN PERSON','TRUCK','theodolites haggle slyly according to '), +(997,48,9,2,17,16116.68,0.03,0,'N','O','1997-07-28','1997-07-26','1997-08-20','DELIVER IN PERSON','SHIP','slyly bold requests affix about the regul'), +(998,10,7,1,22,20020.22,0.04,0.05,'A','F','1994-12-03','1995-02-17','1994-12-19','TAKE BACK RETURN','RAIL','furiously even ideas sleep according to t'), +(998,181,2,2,7,7568.26,0.1,0.05,'R','F','1995-03-24','1995-01-18','1995-04-03','NONE','MAIL','slyly regular deposits sleep ac'), +(998,142,9,3,30,31264.2,0.05,0.07,'A','F','1994-12-02','1995-01-23','1994-12-23','NONE','SHIP','carefully '), +(998,11,8,4,6,5466.06,0.09,0.05,'R','F','1995-03-20','1994-12-27','1995-04-13','DELIVER IN PERSON','MAIL','excuses sl'), +(998,73,2,5,1,973.07,0.04,0,'R','F','1995-01-05','1995-01-06','1995-01-13','NONE','SHIP','furiously bold forges al'), +(999,61,6,1,34,32676.04,0,0.08,'R','F','1993-10-30','1993-10-17','1993-10-31','TAKE BACK RETURN','SHIP','quickly ironic foxes are blithely'), +(999,199,1,2,41,45066.79,0.08,0.01,'A','F','1993-10-16','1993-12-04','1993-11-03','DELIVER IN PERSON','REG AIR','unusual, pending deposits maintain blithely'), +(999,118,5,3,15,15271.65,0.07,0.06,'A','F','1993-12-12','1993-10-18','1994-01-08','COLLECT COD','REG AIR','accounts run thinly. fluffily ironic cou'), +(999,3,4,4,10,9030,0.05,0.02,'A','F','1993-11-23','1993-12-02','1993-11-29','NONE','MAIL','special depende'), +(999,19,10,5,3,2757.03,0.03,0,'R','F','1993-09-17','1993-10-22','1993-10-13','NONE','FOB','slyly special pinto beans subl'), +(999,181,2,6,37,40003.66,0,0.04,'R','F','1994-01-03','1993-10-28','1994-01-12','DELIVER IN PERSON','TRUCK','quickly express packages cajole slyly.'), +(1024,199,2,1,49,53860.31,0.03,0.05,'N','O','1998-03-06','1998-01-26','1998-03-29','TAKE BACK RETURN','FOB','blithely express frets above the blith'), +(1024,126,5,2,34,34888.08,0,0.01,'N','O','1998-01-06','1998-02-05','1998-01-26','COLLECT COD','SHIP','carefully close packages '), +(1024,44,3,3,28,26433.12,0.04,0.01,'N','O','1998-03-04','1998-03-12','1998-03-15','TAKE BACK RETURN','TRUCK','pending instructions a'), +(1024,184,5,4,13,14094.34,0.02,0.04,'N','O','1998-04-11','1998-02-26','1998-04-18','NONE','FOB','blithely even accou'), +(1024,21,4,5,49,45129.98,0.02,0.04,'N','O','1998-02-27','1998-03-10','1998-03-27','COLLECT COD','FOB','regular, ironic requests x-ray. deposit'), +(1025,150,1,1,36,37805.4,0.03,0.04,'A','F','1995-05-15','1995-07-05','1995-06-10','COLLECT COD','FOB','quiet, even requests maintain blithely.'), +(1025,69,10,2,23,22288.38,0.08,0.03,'N','F','1995-06-02','1995-07-29','1995-06-23','COLLECT COD','RAIL','regular request'), +(1025,23,2,3,25,23075.5,0.06,0.05,'R','F','1995-05-29','1995-06-21','1995-06-13','DELIVER IN PERSON','REG AIR','special packages '), +(1026,38,4,1,36,33769.08,0.1,0.02,'N','O','1997-06-14','1997-07-20','1997-06-23','NONE','SHIP','slyly pending deposits use final instructio'), +(1026,37,8,2,6,5622.18,0.1,0.08,'N','O','1997-07-07','1997-08-16','1997-07-14','TAKE BACK RETURN','TRUCK','slyly ironic w'), +(1027,156,1,1,43,45414.45,0.07,0.08,'R','F','1992-06-17','1992-08-28','1992-07-10','DELIVER IN PERSON','MAIL','even, ironic requests'), +(1027,113,10,2,20,20262.2,0.01,0.02,'A','F','1992-06-08','1992-08-29','1992-06-14','NONE','TRUCK','daringly regular pinto bea'); +INSERT INTO lineitem VALUES +(1027,126,9,3,2,2052.24,0.01,0.02,'R','F','1992-08-28','1992-07-09','1992-09-10','NONE','FOB','ironic, final dinos cajole fu'), +(1027,100,4,4,13,13001.3,0.08,0.01,'R','F','1992-08-22','1992-07-10','1992-09-12','DELIVER IN PERSON','RAIL','accounts wake furiously. final requests so'), +(1027,136,2,5,22,22794.86,0.02,0,'A','F','1992-09-03','1992-08-14','1992-10-01','DELIVER IN PERSON','FOB','blithely regular accounts according to the '), +(1027,105,8,6,10,10051,0.06,0.08,'R','F','1992-08-28','1992-08-06','1992-09-03','COLLECT COD','REG AIR','closely ironic'), +(1028,128,3,1,2,2056.24,0.09,0.03,'A','F','1994-01-10','1994-03-22','1994-01-26','COLLECT COD','FOB','slyly ironic excuses use carefully. furious'), +(1028,112,9,2,39,39472.29,0.06,0.05,'R','F','1994-02-18','1994-03-22','1994-03-06','TAKE BACK RETURN','MAIL','blithely pending theodolites dur'), +(1028,100,3,3,8,8000.8,0.03,0.07,'A','F','1994-02-14','1994-03-28','1994-02-22','NONE','AIR','express accounts after the instructions caj'), +(1028,32,8,4,26,24232.78,0.07,0.02,'A','F','1994-03-18','1994-02-08','1994-03-19','TAKE BACK RETURN','RAIL','bold deposits after the slyly'), +(1028,29,2,5,27,25083.54,0,0.04,'A','F','1994-04-03','1994-02-07','1994-04-26','NONE','REG AIR','permanent courts use stealthily. slyly ev'), +(1028,26,1,6,39,36114.78,0.03,0.02,'A','F','1994-02-27','1994-02-16','1994-03-02','DELIVER IN PERSON','AIR','theodolites boost carefully quickly ironi'), +(1028,31,2,7,22,20482.66,0.03,0,'R','F','1994-04-24','1994-02-27','1994-05-08','NONE','REG AIR','requests against the slyly ironic theodo'), +(1029,137,3,1,45,46670.85,0.05,0.07,'R','F','1994-07-21','1994-08-30','1994-07-29','TAKE BACK RETURN','FOB','regular dolphins cajo'), +(1030,65,10,1,17,16406.02,0.06,0.06,'R','F','1994-10-13','1994-08-01','1994-11-10','DELIVER IN PERSON','RAIL','quickly ironic decoys sleep dar'), +(1031,46,7,1,15,14190.6,0.1,0.08,'A','F','1994-11-07','1994-10-29','1994-11-09','TAKE BACK RETURN','FOB','quickly unusual excuses caj'), +(1031,165,4,2,28,29824.48,0.05,0.01,'A','F','1994-12-10','1994-10-29','1994-12-18','COLLECT COD','FOB','carefully final waters cajole carefully. ev'), +(1031,187,8,3,27,29353.86,0.07,0.02,'R','F','1994-09-20','1994-10-18','1994-10-10','DELIVER IN PERSON','SHIP','fluffily ironic pinto beans are blithely '), +(1031,88,9,4,7,6916.56,0.03,0.03,'R','F','1994-12-07','1994-11-11','1994-12-30','COLLECT COD','FOB','carefully regu'), +(1031,191,5,5,44,48012.36,0.01,0.07,'R','F','1994-11-20','1994-11-24','1994-12-11','NONE','AIR','express accounts haggl'), +(1056,121,6,1,37,37781.44,0.04,0.06,'R','F','1995-02-18','1995-04-01','1995-03-20','NONE','TRUCK','carefully ironic theodolites main'), +(1057,193,5,1,29,31702.51,0.1,0.01,'A','F','1992-05-05','1992-05-05','1992-06-03','TAKE BACK RETURN','SHIP','regular grouches above the iron'), +(1057,169,8,2,11,11760.76,0,0.02,'R','F','1992-03-31','1992-04-18','1992-04-18','COLLECT COD','AIR','special, regular packages after the sp'), +(1057,85,6,3,21,20686.68,0.03,0.04,'A','F','1992-02-28','1992-05-01','1992-03-10','NONE','REG AIR','carefully regular deposits above'), +(1057,182,3,4,20,21643.6,0.06,0.03,'R','F','1992-03-02','1992-05-19','1992-03-13','DELIVER IN PERSON','TRUCK','packages are across the '), +(1057,97,1,5,7,6979.63,0.06,0.05,'R','F','1992-06-05','1992-04-30','1992-06-20','NONE','TRUCK','furiously regular requests wake blithely '), +(1057,52,7,6,19,18088.95,0.04,0.07,'A','F','1992-05-31','1992-05-09','1992-06-02','DELIVER IN PERSON','FOB','fluffily ironic pinto be'), +(1058,140,6,1,24,24963.36,0.08,0.04,'A','F','1993-07-09','1993-05-28','1993-07-22','DELIVER IN PERSON','TRUCK','unusual packages cajo'), +(1058,89,10,2,5,4945.4,0.04,0.07,'R','F','1993-05-11','1993-05-29','1993-05-27','COLLECT COD','TRUCK','ironic deposits about the blithely'), +(1058,90,1,3,44,43563.96,0.1,0.01,'R','F','1993-06-26','1993-06-21','1993-07-20','COLLECT COD','TRUCK','special pains sleep furiously above the '); +INSERT INTO `lineitem` VALUES (1058,5,2,4,25,22625,0.09,0.01,'A','F','1993-05-27','1993-06-10','1993-06-20','TAKE BACK RETURN','MAIL','carefully even platelet'), +(1059,178,9,1,16,17250.72,0.07,0.02,'A','F','1994-04-24','1994-03-31','1994-04-28','DELIVER IN PERSON','SHIP','slyly even accounts wake furiously al'), +(1059,29,2,2,7,6503.14,0.07,0.06,'R','F','1994-03-30','1994-04-01','1994-04-24','DELIVER IN PERSON','MAIL','blithely final instructio'), +(1059,88,9,3,45,44463.6,0,0.02,'R','F','1994-06-10','1994-05-08','1994-06-21','COLLECT COD','RAIL','blithely unusual p'), +(1059,110,7,4,26,26262.86,0.09,0.01,'A','F','1994-03-17','1994-04-18','1994-03-26','DELIVER IN PERSON','TRUCK','carefully ironic dependenci'), +(1059,139,5,5,37,38447.81,0.09,0.04,'R','F','1994-03-31','1994-05-08','1994-04-06','COLLECT COD','RAIL','slyly ironic deposits cajole t'), +(1059,190,1,6,50,54509.5,0,0.03,'A','F','1994-06-15','1994-05-11','1994-06-29','NONE','MAIL','stealthily final foxes nag fl'), +(1059,123,4,7,13,13300.56,0.01,0.03,'R','F','1994-06-12','1994-05-11','1994-07-02','COLLECT COD','TRUCK','slyly express platelets are according'), +(1060,196,10,1,8,8769.52,0.07,0.04,'R','F','1993-05-21','1993-05-06','1993-06-10','DELIVER IN PERSON','FOB','quick packages according to the ironic'), +(1060,8,5,2,26,23608,0.06,0.08,'R','F','1993-04-12','1993-04-01','1993-04-20','DELIVER IN PERSON','TRUCK','ideas wake'), +(1060,164,3,3,11,11705.76,0.01,0.07,'A','F','1993-05-13','1993-05-08','1993-05-17','TAKE BACK RETURN','MAIL','even, final accounts w'), +(1060,110,7,4,16,16161.76,0.03,0.06,'A','F','1993-06-15','1993-04-18','1993-07-05','COLLECT COD','SHIP','carefully special theodolites '), +(1060,53,8,5,1,953.05,0.04,0.06,'A','F','1993-06-19','1993-05-10','1993-06-21','COLLECT COD','RAIL','special deposi'), +(1060,72,2,6,26,25273.82,0.01,0.03,'A','F','1993-02-28','1993-04-01','1993-03-09','TAKE BACK RETURN','FOB','ironic frets use slyly. expr'), +(1060,121,10,7,36,36760.32,0.09,0.01,'R','F','1993-03-14','1993-03-24','1993-04-02','TAKE BACK RETURN','FOB','bold accounts boost above the '), +(1061,151,6,1,7,7358.05,0.04,0.04,'N','O','1998-08-09','1998-08-12','1998-08-16','COLLECT COD','FOB','slyly regular courts wake quic'), +(1061,119,3,2,2,2038.22,0.06,0.02,'N','O','1998-08-15','1998-08-05','1998-08-24','COLLECT COD','MAIL','stealthy accounts haggle along t'), +(1061,111,8,3,26,26288.86,0.08,0.02,'N','O','1998-06-18','1998-07-25','1998-06-24','TAKE BACK RETURN','AIR','quickly pending accounts amo'), +(1061,136,7,4,41,42481.33,0,0.05,'N','O','1998-06-29','1998-07-02','1998-07-27','NONE','MAIL','furiously express depo'), +(1061,131,2,5,50,51556.5,0.04,0.08,'N','O','1998-05-25','1998-07-22','1998-06-22','COLLECT COD','AIR','regular accounts haggle sl'), +(1061,144,1,6,35,36544.9,0.09,0.05,'N','O','1998-07-05','1998-07-07','1998-07-30','TAKE BACK RETURN','MAIL','furiously q'), +(1062,137,8,1,38,39410.94,0,0.01,'N','O','1997-01-27','1997-03-07','1997-02-16','DELIVER IN PERSON','TRUCK','carefully re'), +(1063,96,9,1,42,41835.78,0.03,0.02,'A','F','1994-07-10','1994-05-25','1994-07-26','NONE','RAIL','ironic ideas cajole furiously. fluffily '), +(1088,107,8,1,30,30213,0.07,0.03,'A','F','1992-05-22','1992-06-25','1992-06-11','TAKE BACK RETURN','SHIP','carefully pe'), +(1088,37,3,2,11,10307.33,0.06,0,'A','F','1992-08-30','1992-07-25','1992-09-10','TAKE BACK RETURN','AIR','requests are around the furiously '), +(1088,181,2,3,5,5405.9,0.03,0.07,'A','F','1992-07-01','1992-07-25','1992-07-02','NONE','AIR','packages cajole about the carefully expr'), +(1088,124,5,4,3,3072.36,0.09,0.03,'A','F','1992-06-15','1992-08-02','1992-06-18','DELIVER IN PERSON','MAIL','quickly enticing asymptotes affix furi'), +(1089,151,3,1,47,49404.05,0.05,0.06,'N','O','1996-06-26','1996-06-25','1996-07-11','NONE','TRUCK','carefully spe'), +(1089,50,7,2,35,33251.75,0.03,0,'N','O','1996-08-14','1996-07-10','1996-08-26','NONE','TRUCK','furiously stealthy instructions'), +(1089,26,7,3,23,21298.46,0.1,0.05,'N','O','1996-06-24','1996-07-25','1996-07-20','DELIVER IN PERSON','AIR','carefully bold platelets hagg'); +INSERT INTO lineitem VALUES +(1089,141,10,4,1,1041.14,0.01,0.03,'N','O','1996-07-08','1996-07-07','1996-07-17','COLLECT COD','RAIL','bold accounts are sl'), +(1090,22,3,1,5,4610.1,0.02,0.05,'N','O','1998-02-19','1997-12-25','1998-02-24','DELIVER IN PERSON','AIR','carefully regu'), +(1090,113,10,2,28,28367.08,0.08,0.08,'N','O','1998-02-20','1998-01-03','1998-03-19','NONE','FOB','packages boost furiously pending, final a'), +(1091,38,9,1,40,37521.2,0.1,0.06,'N','O','1996-12-17','1996-10-14','1996-12-24','TAKE BACK RETURN','REG AIR','final accounts '), +(1092,184,5,1,48,52040.64,0.04,0.04,'N','O','1995-06-25','1995-04-06','1995-07-18','DELIVER IN PERSON','AIR','carefully bold asymptotes u'), +(1092,153,5,2,1,1053.15,0.01,0.06,'A','F','1995-03-10','1995-04-21','1995-04-06','COLLECT COD','RAIL','regular, even accounts are. quickly pe'), +(1092,161,8,3,28,29712.48,0.05,0.08,'R','F','1995-04-08','1995-05-01','1995-05-02','DELIVER IN PERSON','FOB','deposits cajole. evenly ironic packages '), +(1092,86,7,4,2,1972.16,0.05,0.07,'R','F','1995-04-09','1995-05-12','1995-05-03','TAKE BACK RETURN','TRUCK','ironic, spe'), +(1093,87,8,1,7,6909.56,0.04,0.02,'N','O','1997-11-24','1997-09-23','1997-11-25','TAKE BACK RETURN','SHIP','fluffily express excuses haggle '), +(1093,177,5,2,37,39855.29,0.08,0.04,'N','O','1997-11-06','1997-10-08','1997-11-22','COLLECT COD','FOB','bold, special depe'), +(1093,61,2,3,34,32676.04,0.01,0.06,'N','O','1997-11-07','1997-09-06','1997-11-28','TAKE BACK RETURN','REG AIR','ironic courts wak'), +(1094,115,6,1,9,9135.99,0.07,0.06,'N','O','1997-12-28','1998-03-16','1998-01-18','DELIVER IN PERSON','AIR','carefully ironic deposits about'), +(1095,137,3,1,33,34225.29,0.01,0.02,'N','O','1995-10-03','1995-09-22','1995-10-13','NONE','MAIL','requests after the final'), +(1095,136,2,2,24,24867.12,0.04,0.06,'N','O','1995-08-24','1995-10-20','1995-09-09','COLLECT COD','TRUCK','ruthless requests '), +(1095,156,4,3,13,13729.95,0.06,0.01,'N','O','1995-08-24','1995-10-19','1995-09-02','TAKE BACK RETURN','REG AIR','furiously final sauternes a'), +(1095,135,1,4,28,28983.64,0.08,0.03,'N','O','1995-09-20','1995-11-18','1995-10-02','DELIVER IN PERSON','SHIP','carefully special in'), +(1095,112,2,5,40,40484.4,0.09,0.03,'N','O','1995-10-18','1995-11-14','1995-11-09','NONE','MAIL','carefully special requests'), +(1095,181,2,6,37,40003.66,0.07,0.08,'N','O','1995-10-04','1995-11-13','1995-10-12','NONE','SHIP','furiously ironic packages cajole slyly fi'), +(1120,178,8,1,10,10781.7,0.08,0.05,'N','O','1997-12-17','1998-01-21','1997-12-23','DELIVER IN PERSON','MAIL','quickly bol'), +(1120,20,1,2,49,45080.98,0.01,0.07,'N','O','1998-01-03','1998-02-02','1998-01-09','TAKE BACK RETURN','RAIL','bold deposits across t'), +(1120,76,6,3,21,20497.47,0.06,0.01,'N','O','1998-01-11','1998-02-04','1998-01-19','COLLECT COD','REG AIR','blithely regula'), +(1120,46,9,4,22,20812.88,0.09,0.08,'N','O','1997-11-15','1998-01-25','1997-12-07','TAKE BACK RETURN','REG AIR','furiously ironic deposi'), +(1120,83,4,5,10,9830.8,0.07,0.08,'N','O','1997-11-10','1998-02-01','1997-11-28','TAKE BACK RETURN','AIR','doggedly regul'), +(1121,168,3,1,42,44862.72,0.04,0.05,'N','O','1997-03-05','1997-03-18','1997-03-14','DELIVER IN PERSON','SHIP','carefully ironic theodolites wake.'), +(1121,161,10,2,27,28651.32,0.08,0,'N','O','1997-05-08','1997-03-28','1997-05-14','NONE','MAIL','slyly unusual requests w'), +(1121,157,5,3,10,10571.5,0,0.04,'N','O','1997-04-17','1997-03-18','1997-05-02','TAKE BACK RETURN','RAIL','even, final deposits hang b'), +(1121,166,1,4,29,30918.64,0.02,0.01,'N','O','1997-03-07','1997-04-02','1997-04-01','DELIVER IN PERSON','REG AIR','final accounts cajole blithely'), +(1121,30,9,5,47,43711.41,0.09,0.03,'N','O','1997-04-27','1997-03-28','1997-05-14','COLLECT COD','FOB','slyly final platel'), +(1121,200,1,6,50,55010,0.06,0.03,'N','O','1997-04-21','1997-02-16','1997-04-25','NONE','TRUCK','quickly final accou'), +(1121,80,8,7,37,36262.96,0.06,0.01,'N','O','1997-02-27','1997-03-04','1997-03-02','COLLECT COD','RAIL','slyly ironic pi'); +INSERT INTO lineitem VALUES +(1122,92,6,1,8,7936.72,0.1,0.06,'N','O','1997-02-02','1997-04-03','1997-02-22','TAKE BACK RETURN','RAIL','slyly ironic pinto beans must have to na'), +(1122,182,3,2,29,31383.22,0.05,0.04,'N','O','1997-05-07','1997-04-07','1997-05-15','COLLECT COD','SHIP','theodolites alongside of the regular d'), +(1122,147,6,3,25,26178.5,0.09,0.01,'N','O','1997-03-21','1997-03-03','1997-04-07','TAKE BACK RETURN','RAIL','regular, unusual theo'), +(1122,106,9,4,40,40244,0.08,0.08,'N','O','1997-02-07','1997-03-25','1997-02-25','NONE','REG AIR','furiously silent requests use f'), +(1122,151,2,5,15,15767.25,0.05,0.03,'N','O','1997-04-15','1997-03-15','1997-05-07','COLLECT COD','SHIP','furiously '), +(1122,162,7,6,24,25491.84,0.04,0.01,'N','O','1997-03-08','1997-02-20','1997-04-05','NONE','RAIL','slyly unusual asymptotes affix carefully.'), +(1122,1,6,7,38,34238,0,0.08,'N','O','1997-01-23','1997-04-02','1997-02-16','NONE','TRUCK','ironic platelets caj'), +(1123,12,2,1,10,9120.1,0.05,0.08,'N','O','1996-11-12','1996-10-04','1996-11-30','NONE','MAIL','regular, ironic depths about t'), +(1123,178,8,2,39,42048.63,0.03,0.08,'N','O','1996-08-25','1996-10-21','1996-09-04','DELIVER IN PERSON','REG AIR','carefully '), +(1123,101,4,3,38,38041.8,0.03,0.08,'N','O','1996-09-23','1996-10-04','1996-09-27','DELIVER IN PERSON','FOB','slyly slow accou'), +(1124,198,2,1,1,1098.19,0.09,0.08,'N','O','1998-10-06','1998-10-02','1998-10-30','NONE','REG AIR','regular accounts are slyly. quick, bold de'), +(1124,6,1,2,13,11778,0.05,0.04,'N','O','1998-09-05','1998-10-03','1998-09-30','DELIVER IN PERSON','SHIP','blithely special excuses haggle fina'), +(1124,93,5,3,35,34758.15,0.1,0.05,'N','O','1998-11-25','1998-10-08','1998-12-25','TAKE BACK RETURN','AIR','carefully regu'), +(1124,50,1,4,25,23751.25,0.08,0.05,'N','O','1998-08-05','1998-10-14','1998-08-11','NONE','MAIL','final, pending accounts above the foxe'), +(1124,75,5,5,33,32177.31,0.05,0.04,'N','O','1998-10-19','1998-09-17','1998-10-26','TAKE BACK RETURN','SHIP','furiously regular package'), +(1124,27,6,6,43,39861.86,0.01,0.03,'N','O','1998-09-19','1998-10-28','1998-10-10','COLLECT COD','MAIL','slow, close foxes are. even, even r'), +(1124,95,6,7,1,995.09,0.09,0.01,'N','O','1998-10-07','1998-08-31','1998-10-12','NONE','TRUCK','slyly regular theodolites nag slyly '), +(1125,133,4,1,4,4132.52,0.08,0.02,'A','F','1994-12-10','1994-12-28','1994-12-30','NONE','MAIL','unusual deposits are carefu'), +(1125,138,9,2,24,24915.12,0.1,0.03,'R','F','1995-01-31','1994-12-02','1995-02-20','COLLECT COD','AIR','furiously regular g'), +(1125,122,7,3,26,26575.12,0.05,0.04,'A','F','1995-02-24','1995-01-18','1995-03-05','COLLECT COD','TRUCK','blithely even somas wake stealthily fina'), +(1125,98,1,4,29,28944.61,0.06,0,'A','F','1994-11-29','1994-12-20','1994-12-10','DELIVER IN PERSON','RAIL','bold ideas wake '), +(1126,36,2,1,44,41185.32,0.08,0.03,'N','O','1998-05-07','1998-04-02','1998-05-29','NONE','TRUCK','fluffily re'), +(1126,58,3,2,7,6706.35,0.06,0.01,'N','O','1998-05-02','1998-03-22','1998-05-21','COLLECT COD','MAIL','fluffily special deposits cajole furiousl'), +(1126,147,10,3,14,14659.96,0.07,0.07,'N','O','1998-04-17','1998-04-15','1998-05-12','DELIVER IN PERSON','TRUCK','regular, expre'), +(1127,43,10,1,35,33006.4,0.02,0.03,'N','O','1995-11-25','1995-11-03','1995-12-17','NONE','TRUCK','frets use slyly ironic, perman'), +(1127,110,5,2,38,38384.18,0.09,0.05,'N','O','1995-11-07','1995-11-11','1995-11-26','DELIVER IN PERSON','RAIL','slyly express instructions hinder '), +(1127,20,1,3,29,26680.58,0.09,0.07,'N','O','1995-09-20','1995-11-21','1995-10-11','DELIVER IN PERSON','REG AIR','ironic courts cajole q'), +(1127,175,6,4,7,7526.19,0.07,0.05,'N','O','1995-11-05','1995-11-02','1995-11-11','DELIVER IN PERSON','FOB','quickly express dependencies nag bl'), +(1152,9,10,1,23,20907,0.06,0.04,'A','F','1994-10-14','1994-10-22','1994-10-21','DELIVER IN PERSON','MAIL','furiously express frets n'); +INSERT INTO lineitem VALUES +(1152,100,2,2,25,25002.5,0.04,0.08,'R','F','1994-10-20','1994-09-18','1994-10-28','DELIVER IN PERSON','REG AIR','blithely unusual deposits believe sly'), +(1152,42,9,3,6,5652.24,0.07,0.03,'A','F','1994-12-07','1994-11-05','1994-12-25','DELIVER IN PERSON','FOB','frays sleep furiously. platelets around th'), +(1153,86,7,1,15,14791.2,0,0.08,'N','O','1996-04-24','1996-07-17','1996-04-29','TAKE BACK RETURN','SHIP','express excuses haggle alw'), +(1153,169,8,2,50,53458,0,0.07,'N','O','1996-06-27','1996-07-13','1996-07-05','COLLECT COD','REG AIR','express deposits sleep furiously'), +(1153,44,5,3,25,23601,0,0.05,'N','O','1996-06-18','1996-06-28','1996-07-09','NONE','TRUCK','blithely pending excuses cajole blithel'), +(1153,92,3,4,43,42659.87,0.01,0,'N','O','1996-06-09','1996-06-01','1996-07-04','DELIVER IN PERSON','MAIL','quickly regular requests haggle. carefully'), +(1153,142,5,5,45,46896.3,0,0.02,'N','O','1996-06-18','1996-06-20','1996-07-03','TAKE BACK RETURN','AIR','quickly special i'), +(1153,136,7,6,26,26939.38,0.02,0.03,'N','O','1996-08-16','1996-07-12','1996-09-08','NONE','MAIL','quickly final accounts are furiously quic'), +(1153,192,4,7,5,5460.95,0.02,0.03,'N','O','1996-05-03','1996-06-12','1996-05-28','TAKE BACK RETURN','FOB','slyly ironic ins'), +(1154,143,10,1,31,32337.34,0.06,0.06,'A','F','1992-04-17','1992-04-26','1992-05-17','COLLECT COD','AIR','slyly bold instruct'), +(1154,148,7,2,50,52407,0.07,0.06,'A','F','1992-04-22','1992-04-21','1992-05-01','NONE','TRUCK','pending deposits affix ca'), +(1154,97,1,3,5,4985.45,0.09,0.04,'A','F','1992-06-07','1992-05-07','1992-07-05','DELIVER IN PERSON','MAIL','ironic accounts slee'), +(1154,1,2,4,35,31535,0,0.07,'A','F','1992-03-30','1992-04-02','1992-04-21','DELIVER IN PERSON','TRUCK','quickly regular asympto'), +(1154,36,2,5,18,16848.54,0.02,0.03,'A','F','1992-02-26','1992-03-24','1992-03-20','TAKE BACK RETURN','REG AIR','carefully silent escapades use e'), +(1154,196,8,6,50,54809.5,0.06,0.03,'A','F','1992-03-04','1992-04-01','1992-04-01','TAKE BACK RETURN','TRUCK','blithely enticing dependencies haggle acros'), +(1155,70,1,1,4,3880.28,0.09,0.05,'N','O','1997-10-19','1997-12-09','1997-11-02','DELIVER IN PERSON','SHIP','carefully pending requests cajole bl'), +(1155,196,9,2,39,42751.41,0.08,0.05,'N','O','1998-01-29','1998-01-03','1998-02-01','COLLECT COD','TRUCK','blithely regular platelets accordi'), +(1155,147,4,3,23,24084.22,0.08,0.03,'N','O','1997-11-24','1997-11-28','1997-12-06','DELIVER IN PERSON','FOB','ironic, final id'), +(1155,140,1,4,12,12481.68,0.01,0.06,'N','O','1997-11-01','1998-01-03','1997-11-19','DELIVER IN PERSON','RAIL','final, regular de'), +(1155,5,2,5,49,44345,0.04,0.08,'N','O','1997-12-07','1997-12-30','1997-12-08','NONE','AIR','carefully regular accounts sleep blithe'), +(1156,87,8,1,15,14806.2,0.07,0.06,'N','O','1996-12-21','1997-01-03','1997-01-10','TAKE BACK RETURN','AIR','slyly regular'), +(1156,33,4,2,21,19593.63,0.02,0.08,'N','O','1996-11-07','1997-01-14','1996-12-03','NONE','AIR','packages cajole slyly. unusual reque'), +(1156,12,2,3,29,26448.29,0.09,0.06,'N','O','1997-01-24','1996-12-26','1997-02-04','DELIVER IN PERSON','TRUCK','blithely regular instruc'), +(1156,172,3,4,42,45031.14,0.02,0,'N','O','1997-01-18','1997-01-12','1997-02-13','NONE','REG AIR','notornis nag? slyly spe'), +(1156,74,4,5,49,47729.43,0.04,0.01,'N','O','1996-11-16','1996-12-02','1996-12-05','COLLECT COD','AIR','pending dependenci'), +(1156,195,9,6,42,45997.98,0.02,0.06,'N','O','1997-01-27','1997-01-09','1997-01-28','DELIVER IN PERSON','MAIL','carefully final accounts haggle along'), +(1156,47,6,7,20,18940.8,0.08,0.07,'N','O','1997-01-01','1997-01-06','1997-01-16','COLLECT COD','MAIL','ruthless excuses ca'), +(1157,49,2,1,16,15184.64,0.06,0,'N','O','1998-04-12','1998-03-09','1998-04-23','DELIVER IN PERSON','MAIL','special, careful'), +(1157,83,4,2,4,3932.32,0.1,0.05,'N','O','1998-02-24','1998-03-30','1998-03-24','DELIVER IN PERSON','SHIP','slyly express forges across t'); +INSERT INTO lineitem VALUES +(1157,48,7,3,8,7584.32,0.02,0,'N','O','1998-03-25','1998-03-16','1998-03-29','NONE','REG AIR','even ideas boost careful'), +(1157,77,8,4,46,44945.22,0.07,0.08,'N','O','1998-04-19','1998-03-13','1998-04-23','NONE','FOB','furiously careful foxes snoo'), +(1157,160,5,5,14,14842.24,0.03,0.03,'N','O','1998-04-17','1998-03-03','1998-05-01','NONE','FOB','blithely bold deposits use '), +(1158,45,2,1,5,4725.2,0.02,0.04,'N','O','1996-10-20','1996-07-30','1996-11-14','COLLECT COD','AIR','silent, silent hockey players cajole c'), +(1158,157,9,2,23,24314.45,0,0.08,'N','O','1996-10-21','1996-08-19','1996-10-31','COLLECT COD','MAIL','blithely furious ide'), +(1159,109,10,1,39,39354.9,0.01,0,'A','F','1992-11-20','1992-10-28','1992-12-18','TAKE BACK RETURN','FOB','furiously final packages dazz'), +(1159,96,9,2,7,6972.63,0.08,0,'A','F','1992-11-25','1992-10-27','1992-12-20','NONE','AIR','furiously pending requ'), +(1159,98,10,3,11,10978.99,0.1,0.03,'R','F','1992-12-09','1992-12-07','1992-12-18','DELIVER IN PERSON','MAIL','carefully regular realms ar'), +(1184,47,4,1,27,25570.08,0.01,0,'N','O','1998-01-10','1997-12-02','1998-02-06','TAKE BACK RETURN','REG AIR','furiously i'), +(1184,147,10,2,4,4188.56,0.04,0.03,'N','O','1997-12-25','1998-01-24','1998-01-18','DELIVER IN PERSON','RAIL','slyly even requests along the furiously pe'), +(1184,164,5,3,7,7449.12,0.05,0,'N','O','1998-02-14','1998-01-06','1998-03-11','COLLECT COD','TRUCK','quickly express foxes wake fluf'), +(1184,126,9,4,3,3078.36,0.02,0.05,'N','O','1998-01-15','1997-12-19','1998-02-02','NONE','REG AIR','accounts wake'), +(1185,72,1,1,8,7776.56,0.01,0.06,'A','F','1992-12-05','1992-10-05','1992-12-28','DELIVER IN PERSON','MAIL','carefully pending excuses according to'), +(1185,31,2,2,28,26068.84,0.07,0.06,'A','F','1992-09-24','1992-10-07','1992-10-10','DELIVER IN PERSON','REG AIR','fluffily regular pinto beans hang evenly '), +(1185,190,1,3,12,13082.28,0.05,0.06,'R','F','1992-10-12','1992-09-26','1992-11-11','NONE','REG AIR','accounts sleep. bravely express epitaphs d'), +(1186,3,4,1,28,25284,0.08,0.07,'N','O','1996-12-08','1996-10-17','1996-12-15','TAKE BACK RETURN','TRUCK','regular, even packages above the s'), +(1186,92,5,2,11,10912.99,0.07,0.05,'N','O','1996-10-03','1996-10-21','1996-10-17','DELIVER IN PERSON','AIR','blithely even co'), +(1186,101,2,3,20,20022,0.07,0.07,'N','O','1996-08-20','1996-10-23','1996-09-05','COLLECT COD','FOB','silent dependencies'), +(1186,106,7,4,27,27164.7,0.06,0.04,'N','O','1996-10-08','1996-11-06','1996-10-09','TAKE BACK RETURN','SHIP','ironic packages cajole slyly against the'), +(1187,178,6,1,29,31266.93,0.01,0.04,'R','F','1992-12-10','1993-02-09','1992-12-29','TAKE BACK RETURN','RAIL','blithely special excuses cajole f'), +(1187,131,7,2,15,15466.95,0.03,0.04,'A','F','1992-12-22','1993-01-13','1993-01-01','NONE','TRUCK','carefully express asymptotes use. ent'), +(1187,78,8,3,40,39122.8,0.08,0.06,'R','F','1993-03-05','1992-12-31','1993-03-12','NONE','TRUCK','quickly pending request'), +(1188,115,9,1,2,2030.22,0,0.04,'N','O','1996-05-22','1996-05-23','1996-06-06','COLLECT COD','RAIL','slyly regular '), +(1188,113,4,2,9,9117.99,0.01,0.08,'N','O','1996-08-04','1996-06-04','1996-08-19','NONE','REG AIR','accounts cajole. theodolites are sly'), +(1188,179,10,3,41,44245.97,0.07,0.04,'N','O','1996-06-29','1996-05-21','1996-07-21','TAKE BACK RETURN','TRUCK','accounts alongside of th'), +(1189,51,2,1,23,21874.15,0.06,0,'R','F','1994-07-25','1994-06-07','1994-08-02','COLLECT COD','FOB','furious, r'), +(1189,105,2,2,32,32163.2,0.09,0.02,'R','F','1994-05-06','1994-07-03','1994-05-15','TAKE BACK RETURN','FOB','express pint'), +(1189,57,5,3,22,21055.1,0.05,0.03,'R','F','1994-06-09','1994-06-29','1994-06-23','DELIVER IN PERSON','TRUCK','carefully even requests engage final req'), +(1190,84,5,1,32,31490.56,0.07,0.06,'N','O','1997-05-08','1997-04-17','1997-06-01','COLLECT COD','FOB','regular packages above the quickly special'), +(1191,49,6,1,29,27522.16,0,0.04,'N','O','1996-01-24','1996-01-28','1996-02-17','COLLECT COD','AIR','deposits w'); +INSERT INTO lineitem VALUES +(1216,97,1,1,8,7976.72,0.03,0.04,'R','F','1993-02-01','1993-03-06','1993-02-08','TAKE BACK RETURN','TRUCK','blithely ironic packages slee'), +(1216,75,3,2,48,46803.36,0.1,0.01,'R','F','1993-01-17','1993-02-01','1993-02-13','COLLECT COD','SHIP','blithely regular ideas use slyly caref'), +(1216,42,3,3,18,16956.72,0,0.03,'A','F','1993-01-20','1993-01-28','1993-02-02','COLLECT COD','MAIL','furiously final accounts '), +(1217,60,5,1,45,43202.7,0.07,0.02,'A','F','1992-07-01','1992-06-23','1992-07-06','COLLECT COD','AIR','furiously bold ideas across the '), +(1218,140,6,1,16,16642.24,0.04,0.07,'A','F','1994-06-26','1994-08-07','1994-06-30','TAKE BACK RETURN','FOB','packages are qu'), +(1218,94,6,2,41,40757.69,0.06,0.06,'R','F','1994-08-04','1994-08-05','1994-08-11','TAKE BACK RETURN','SHIP','final accounts nag. '), +(1218,48,7,3,44,41713.76,0.07,0.06,'A','F','1994-10-05','1994-09-03','1994-10-30','COLLECT COD','TRUCK','ideas against the bold requests'), +(1218,42,9,4,1,942.04,0.01,0.08,'R','F','1994-09-15','1994-09-07','1994-10-03','COLLECT COD','TRUCK','blithely unusual plat'), +(1219,132,3,1,6,6192.78,0.08,0.04,'N','O','1995-11-13','1995-12-24','1995-11-18','NONE','MAIL','ironic, bold instructions c'), +(1219,129,4,2,4,4116.48,0.01,0.04,'N','O','1995-11-24','1995-11-22','1995-12-07','TAKE BACK RETURN','SHIP','ironic asym'), +(1220,169,4,1,25,26729,0.1,0.03,'N','O','1996-10-15','1996-11-07','1996-11-06','COLLECT COD','REG AIR','furiously silent deposits c'), +(1220,160,5,2,36,38165.76,0.01,0.02,'N','O','1996-12-10','1996-11-14','1997-01-07','COLLECT COD','SHIP','blithely reg'), +(1220,37,8,3,3,2811.09,0.08,0.06,'N','O','1996-09-06','1996-11-03','1996-09-10','COLLECT COD','REG AIR','blithely iro'), +(1220,6,1,4,36,32616,0.07,0.03,'N','O','1996-12-12','1996-10-03','1996-12-15','TAKE BACK RETURN','TRUCK','pinto beans cajole '), +(1220,49,2,5,25,23726,0.03,0.08,'N','O','1996-09-11','1996-10-09','1996-09-25','DELIVER IN PERSON','RAIL','regular in'), +(1221,81,2,1,43,42186.44,0.05,0.05,'R','F','1992-06-22','1992-07-15','1992-07-20','DELIVER IN PERSON','FOB','even requests are slowly according to t'), +(1221,170,1,2,12,12842.04,0,0.08,'R','F','1992-08-07','1992-06-24','1992-08-13','COLLECT COD','AIR','furiously unusual as'), +(1221,69,6,3,3,2907.18,0.1,0.08,'R','F','1992-07-01','1992-06-04','1992-07-27','COLLECT COD','TRUCK','quickly regular'), +(1221,120,10,4,41,41824.92,0.06,0.02,'A','F','1992-04-28','1992-07-02','1992-05-19','NONE','RAIL','final packages us'), +(1221,108,1,5,13,13105.3,0.1,0,'R','F','1992-08-01','1992-06-29','1992-08-27','TAKE BACK RETURN','AIR','carefully regular packages boost. '), +(1221,85,6,6,7,6895.56,0.08,0.06,'A','F','1992-06-27','1992-06-16','1992-07-23','TAKE BACK RETURN','RAIL','furiously regular foxes haggle '), +(1222,72,10,1,12,11664.84,0.09,0.02,'A','F','1993-02-12','1993-03-14','1993-03-12','TAKE BACK RETURN','RAIL','furiously final dep'), +(1222,159,7,2,12,12709.8,0.08,0.01,'A','F','1993-05-05','1993-03-27','1993-05-18','TAKE BACK RETURN','REG AIR','slyly ironic requests do wake caref'), +(1222,8,1,3,26,23608,0.02,0.08,'R','F','1993-02-13','1993-03-20','1993-02-22','TAKE BACK RETURN','MAIL','regular, regular foxes wa'), +(1223,100,1,1,28,28002.8,0.1,0.06,'N','O','1996-08-07','1996-07-24','1996-08-13','TAKE BACK RETURN','MAIL','blithely regular requests nag pat'), +(1248,164,5,1,45,47887.2,0,0.08,'A','F','1992-04-17','1992-03-31','1992-05-13','NONE','RAIL','blithely eve'), +(1248,151,9,2,37,38892.55,0.06,0.06,'R','F','1992-01-26','1992-02-05','1992-02-13','COLLECT COD','TRUCK','deposits haggle aft'), +(1248,56,8,3,26,24857.3,0.09,0.06,'A','F','1992-01-16','1992-03-01','1992-02-06','TAKE BACK RETURN','AIR','express, express accounts wake carefu'), +(1248,156,7,4,49,51751.35,0.02,0.01,'A','F','1992-04-24','1992-02-18','1992-05-03','TAKE BACK RETURN','AIR','evenly regular pinto beans about the flu'), +(1248,122,7,5,20,20442.4,0.08,0,'A','F','1992-03-12','1992-03-23','1992-04-07','TAKE BACK RETURN','AIR','slyly ironic requests sleep aro'); +INSERT INTO lineitem VALUES +(1248,62,9,6,30,28861.8,0.1,0.01,'R','F','1992-02-01','1992-03-24','1992-02-08','TAKE BACK RETURN','MAIL','carefully busy foxes snooze'), +(1249,59,4,1,49,46993.45,0.07,0.05,'A','F','1994-03-03','1994-02-28','1994-03-08','NONE','RAIL','slyly even courts affix slyly abo'), +(1250,2,3,1,15,13530,0.1,0.06,'A','F','1992-11-05','1992-12-17','1992-12-03','TAKE BACK RETURN','SHIP','ideas along the slyly final instructions wa'), +(1251,4,5,1,37,33448,0.08,0.08,'N','O','1997-12-21','1998-01-12','1997-12-26','COLLECT COD','AIR','ideas cajole slyly even excuses? final dep'), +(1251,78,9,2,36,35210.52,0.07,0.04,'N','O','1997-11-29','1998-01-07','1997-12-03','TAKE BACK RETURN','RAIL','carefully bold packages sleep fluffi'), +(1251,99,3,3,37,36966.33,0.09,0.02,'N','O','1998-01-11','1997-12-01','1998-01-23','DELIVER IN PERSON','RAIL','blithely ironic requests wake evenly'), +(1251,150,9,4,7,7351.05,0.07,0,'N','O','1998-01-08','1997-12-27','1998-01-18','COLLECT COD','MAIL','blithely final packages wake fluff'), +(1251,188,9,5,1,1088.18,0.02,0.03,'N','O','1997-12-08','1998-01-06','1998-01-01','DELIVER IN PERSON','REG AIR','quickly fluffy requests sl'), +(1252,87,8,1,13,12832.04,0.1,0.01,'N','O','1997-09-07','1997-09-12','1997-10-01','COLLECT COD','REG AIR','blithely unusu'), +(1252,111,8,2,27,27299.97,0,0.08,'N','O','1997-10-22','1997-10-10','1997-11-10','TAKE BACK RETURN','REG AIR','final requests '), +(1252,40,1,3,19,17860.76,0.07,0.02,'N','O','1997-10-13','1997-10-23','1997-10-18','NONE','AIR','even, unusual requests use'), +(1252,92,4,4,11,10912.99,0.1,0.01,'N','O','1997-10-16','1997-09-22','1997-10-28','COLLECT COD','AIR','furiously ironic patterns '), +(1252,79,10,5,26,25455.82,0.05,0.05,'N','O','1997-08-05','1997-10-24','1997-08-07','DELIVER IN PERSON','SHIP','deposits integrate carefully across the '), +(1253,180,8,1,14,15122.52,0,0.06,'R','F','1993-04-03','1993-04-16','1993-04-27','TAKE BACK RETURN','MAIL','pending, express theodolites nag blithely '), +(1253,54,9,2,13,12402.65,0.01,0.06,'A','F','1993-03-05','1993-04-26','1993-03-08','DELIVER IN PERSON','FOB','furiously special excus'), +(1253,70,1,3,22,21341.54,0.05,0.06,'A','F','1993-02-23','1993-04-06','1993-03-07','TAKE BACK RETURN','SHIP','furiously bold courts a'), +(1253,176,5,4,23,24751.91,0.09,0.02,'R','F','1993-04-18','1993-04-18','1993-05-07','COLLECT COD','FOB','slyly special packages print. s'), +(1253,114,8,5,19,19268.09,0.05,0.05,'A','F','1993-04-01','1993-04-22','1993-04-14','TAKE BACK RETURN','AIR','daringly ironic accounts wake carefully i'), +(1254,193,5,1,6,6559.14,0.08,0.01,'N','O','1996-02-02','1996-03-21','1996-02-29','NONE','REG AIR','ironic deposits nag p'), +(1254,200,3,2,47,51709.4,0.05,0.06,'N','O','1996-03-07','1996-02-20','1996-04-05','COLLECT COD','MAIL','special excuses haggle fluffily re'), +(1254,135,6,3,35,36229.55,0.05,0.06,'N','O','1996-04-08','1996-02-29','1996-04-18','DELIVER IN PERSON','FOB','requests cajole slyl'), +(1255,192,4,1,12,13106.28,0,0.02,'A','F','1994-08-17','1994-06-29','1994-09-04','TAKE BACK RETURN','REG AIR','unusual theodolites x-ray final instructio'), +(1255,194,8,2,46,50332.74,0.07,0.05,'R','F','1994-07-06','1994-07-14','1994-08-05','NONE','MAIL','carefully quick idea'), +(1280,129,8,1,17,17495.04,0.01,0.01,'A','F','1993-02-04','1993-04-10','1993-02-07','NONE','FOB','pending, even waters are sil'), +(1280,189,10,2,6,6535.08,0.05,0.06,'R','F','1993-03-30','1993-02-16','1993-04-18','DELIVER IN PERSON','AIR','unusual pinto beans haggle'), +(1280,33,4,3,13,12129.39,0.03,0.02,'R','F','1993-03-06','1993-03-11','1993-03-18','DELIVER IN PERSON','TRUCK','final accounts engage against the '), +(1280,175,3,4,5,5375.85,0.06,0.03,'R','F','1993-02-03','1993-02-11','1993-02-23','DELIVER IN PERSON','AIR','slyly final ideas are flu'), +(1280,52,10,5,24,22849.2,0.07,0.02,'R','F','1993-03-20','1993-03-01','1993-04-09','COLLECT COD','RAIL','slow, bold theodolites sleep quickly. '), +(1280,66,3,6,9,8694.54,0,0.05,'R','F','1993-04-18','1993-03-28','1993-05-04','DELIVER IN PERSON','FOB','express packages grow idly along'); +INSERT INTO lineitem VALUES +(1280,92,6,7,19,18849.71,0.02,0.06,'A','F','1993-02-07','1993-02-28','1993-02-12','NONE','TRUCK','pending, unusual deposits amon'), +(1281,138,4,1,33,34258.29,0.07,0.08,'R','F','1995-02-01','1995-01-18','1995-03-03','NONE','REG AIR','express deposits wake carefully '), +(1281,7,2,2,37,33559,0.08,0.03,'A','F','1995-03-19','1995-02-02','1995-03-27','NONE','AIR','carefully silent platelets integrate'), +(1281,94,7,3,2,1988.18,0.05,0.06,'A','F','1994-12-27','1995-01-26','1995-01-21','TAKE BACK RETURN','FOB','slyly ironic p'), +(1281,154,2,4,38,40057.7,0.04,0.06,'R','F','1995-03-28','1995-01-11','1995-04-14','TAKE BACK RETURN','MAIL','pending, regular reques'), +(1281,152,10,5,13,13677.95,0.03,0.07,'A','F','1995-02-06','1995-02-13','1995-02-18','DELIVER IN PERSON','TRUCK','special, final requests sn'), +(1281,50,9,6,4,3800.2,0.07,0.04,'R','F','1995-03-15','1995-02-21','1995-03-20','NONE','SHIP','even foxes according to the final'), +(1281,78,6,7,43,42057.01,0.1,0.02,'R','F','1995-01-28','1995-02-08','1995-02-10','DELIVER IN PERSON','AIR','quickly unusual deposits mold final reque'), +(1282,23,4,1,14,12922.28,0.04,0.02,'R','F','1992-06-29','1992-04-05','1992-07-21','TAKE BACK RETURN','REG AIR','quickly daring instructions haggle quickly'), +(1282,30,9,2,10,9300.3,0.09,0.06,'R','F','1992-04-10','1992-04-16','1992-05-01','DELIVER IN PERSON','SHIP','slyly ironic '), +(1282,160,1,3,19,20143.04,0.01,0.03,'R','F','1992-05-07','1992-04-07','1992-05-13','NONE','RAIL','slyly ironi'), +(1282,59,10,4,19,18221.95,0,0.05,'A','F','1992-06-20','1992-04-17','1992-07-05','DELIVER IN PERSON','REG AIR','blithely regular packages hang furiously fi'), +(1283,93,7,1,47,46675.23,0.05,0.03,'N','O','1996-10-21','1996-10-29','1996-11-12','DELIVER IN PERSON','TRUCK','slyly pending attainments along t'), +(1283,106,1,2,1,1006.1,0,0.08,'N','O','1996-10-07','1996-10-12','1996-10-08','NONE','RAIL','quickly express theodolites '), +(1283,138,4,3,18,18686.34,0.02,0.01,'N','O','1996-10-14','1996-11-07','1996-10-22','DELIVER IN PERSON','AIR','pending foxes'), +(1283,192,4,4,40,43687.6,0.07,0.03,'N','O','1996-11-09','1996-11-23','1996-11-28','NONE','MAIL','enticing, final theodolites cajole carefu'), +(1283,124,9,5,43,44037.16,0.01,0.04,'N','O','1996-09-29','1996-11-19','1996-10-26','TAKE BACK RETURN','RAIL','slyly regular asymptotes across the f'), +(1283,8,5,6,30,27240,0.06,0.07,'N','O','1996-11-22','1996-11-22','1996-12-15','COLLECT COD','TRUCK','ironic packages sleep idly sly'), +(1283,197,8,7,21,23040.99,0.04,0.03,'N','O','1996-09-12','1996-10-02','1996-10-12','NONE','REG AIR','fluffily bold '), +(1284,178,7,1,49,52830.33,0,0.06,'N','O','1996-04-11','1996-03-04','1996-04-16','NONE','MAIL','express instructions detect slyly p'), +(1284,6,7,2,4,3624,0.07,0.06,'N','O','1996-02-29','1996-02-11','1996-03-01','TAKE BACK RETURN','TRUCK','express, bold deposits use. fluffy acc'), +(1284,133,4,3,39,40292.07,0.08,0,'N','O','1996-01-11','1996-02-07','1996-02-05','COLLECT COD','MAIL','slyly brave as'), +(1284,59,10,4,1,959.05,0.01,0.07,'N','O','1996-04-28','1996-04-02','1996-05-08','DELIVER IN PERSON','SHIP','bold pinto '), +(1284,34,5,5,9,8406.27,0.05,0.06,'N','O','1996-03-03','1996-03-19','1996-04-01','DELIVER IN PERSON','REG AIR','carefully ruthl'), +(1285,22,3,1,12,11064.24,0,0.06,'A','F','1992-06-21','1992-08-16','1992-07-12','COLLECT COD','MAIL','carefully even deposits do use. unusual in'), +(1285,143,10,2,45,46941.3,0.01,0.02,'R','F','1992-09-05','1992-08-08','1992-10-02','COLLECT COD','REG AIR','close Tiresias u'), +(1285,189,10,3,4,4356.72,0.09,0.06,'A','F','1992-07-20','1992-08-17','1992-07-26','DELIVER IN PERSON','FOB','slyly silent pinto bean'), +(1285,188,9,4,39,42439.02,0.05,0.01,'A','F','1992-09-15','1992-08-05','1992-10-05','DELIVER IN PERSON','TRUCK','slyly regular pin'), +(1285,84,5,5,33,32474.64,0,0.08,'R','F','1992-09-08','1992-08-25','1992-09-16','NONE','SHIP','blithely unusual multipliers affix bl'), +(1286,178,9,1,49,52830.33,0.08,0.01,'R','F','1993-06-24','1993-08-12','1993-06-26','DELIVER IN PERSON','SHIP','fluffily ironic asy'); +INSERT INTO lineitem VALUES +(1286,49,6,2,48,45553.92,0.01,0.04,'A','F','1993-07-11','1993-07-11','1993-08-01','COLLECT COD','TRUCK','furiously bold deposits nag re'), +(1286,189,10,3,11,11980.98,0.03,0.04,'R','F','1993-08-08','1993-07-30','1993-09-05','DELIVER IN PERSON','FOB','even, pending theodolites maintain abo'), +(1286,184,5,4,37,40114.66,0,0.02,'R','F','1993-05-27','1993-07-11','1993-06-01','COLLECT COD','SHIP','blithely ir'), +(1286,165,10,5,14,14912.24,0,0.01,'R','F','1993-05-23','1993-08-09','1993-06-01','NONE','REG AIR','furiously final requ'), +(1286,146,5,6,41,42891.74,0.04,0.05,'R','F','1993-08-02','1993-08-06','1993-08-07','TAKE BACK RETURN','FOB','furiously regular accounts sleep'), +(1287,174,3,1,35,37595.95,0.09,0.06,'A','F','1994-09-07','1994-09-12','1994-09-30','TAKE BACK RETURN','FOB','regular pac'), +(1287,95,8,2,10,9950.9,0.08,0.03,'R','F','1994-07-08','1994-08-28','1994-07-10','TAKE BACK RETURN','RAIL','sauternes cajole besides the even, iron'), +(1287,1,2,3,30,27030,0,0.07,'R','F','1994-07-12','1994-09-23','1994-08-07','NONE','RAIL','quickly unusual instruc'), +(1287,62,7,4,10,9620.6,0.01,0.05,'A','F','1994-09-03','1994-08-12','1994-09-16','TAKE BACK RETURN','REG AIR','bold, careful accou'), +(1287,179,8,5,21,22662.57,0.06,0.02,'A','F','1994-10-06','1994-09-25','1994-10-16','TAKE BACK RETURN','TRUCK','special packa'), +(1287,21,10,6,26,23946.52,0.03,0.08,'R','F','1994-10-03','1994-09-27','1994-10-30','DELIVER IN PERSON','RAIL','slyly fina'), +(1312,81,2,1,9,8829.72,0.04,0.08,'R','F','1994-07-19','1994-06-29','1994-07-24','TAKE BACK RETURN','MAIL','blithely even sauter'), +(1312,136,7,2,28,29011.64,0.06,0.06,'A','F','1994-09-09','1994-08-01','1994-10-02','TAKE BACK RETURN','FOB','final pinto bea'), +(1312,173,1,3,18,19317.06,0.03,0.07,'A','F','1994-09-13','1994-07-08','1994-09-22','TAKE BACK RETURN','MAIL','deposits wake carefully regu'), +(1313,52,4,1,48,45698.4,0.01,0.03,'A','F','1994-12-20','1994-10-29','1995-01-07','COLLECT COD','MAIL','slyly regular sentiments boost furiously '), +(1314,198,10,1,5,5490.95,0.03,0.01,'A','F','1994-05-26','1994-08-06','1994-05-31','TAKE BACK RETURN','AIR','platelets are. ironic r'), +(1314,110,5,2,39,39394.29,0.01,0.03,'R','F','1994-08-09','1994-06-14','1994-08-31','TAKE BACK RETURN','TRUCK','quickly regular platelets nag sl'), +(1314,41,2,3,11,10351.44,0.01,0.04,'A','F','1994-05-16','1994-07-30','1994-05-31','COLLECT COD','REG AIR','quickly regular foxes beyond the slyly'), +(1315,96,8,1,27,26894.43,0.01,0.03,'N','O','1998-07-04','1998-06-13','1998-07-28','NONE','SHIP','ironic depos'), +(1315,16,6,2,15,13740.15,0.05,0.01,'N','O','1998-07-12','1998-06-10','1998-08-07','COLLECT COD','AIR','pending frets sleep. carefully regul'), +(1315,168,3,3,25,26704,0.01,0.08,'N','O','1998-06-26','1998-06-10','1998-07-06','TAKE BACK RETURN','FOB','pending, express r'), +(1315,161,6,4,19,20162.04,0.02,0.05,'N','O','1998-07-05','1998-05-23','1998-08-04','TAKE BACK RETURN','SHIP','ruthless packages bene'), +(1315,159,7,5,32,33892.8,0.1,0.05,'N','O','1998-03-30','1998-06-12','1998-04-25','NONE','SHIP','regular excu'), +(1316,127,6,1,46,47247.52,0.05,0.04,'A','F','1994-01-13','1994-01-24','1994-02-03','COLLECT COD','TRUCK','theodolites wake with the pinto'), +(1316,79,9,2,15,14686.05,0.02,0.01,'R','F','1994-03-12','1994-03-02','1994-03-14','COLLECT COD','FOB','carefully speci'), +(1316,198,9,3,33,36240.27,0.1,0.06,'R','F','1994-03-31','1994-01-23','1994-04-20','TAKE BACK RETURN','AIR','carefully pending e'), +(1316,66,3,4,15,14490.9,0,0.06,'R','F','1993-12-17','1994-02-04','1993-12-20','NONE','RAIL','requests ha'), +(1316,41,2,5,40,37641.6,0.01,0.03,'R','F','1994-02-04','1994-02-09','1994-02-27','NONE','REG AIR','packages are blithely exp'), +(1316,4,7,6,7,6328,0.05,0.04,'A','F','1993-12-09','1994-01-12','1993-12-30','TAKE BACK RETURN','MAIL','sometimes regular '), +(1316,163,8,7,8,8505.28,0.1,0.04,'A','F','1994-03-26','1994-02-08','1994-04-19','NONE','SHIP','finally pending de'), +(1317,134,5,1,34,35160.42,0.08,0.04,'N','O','1995-08-13','1995-08-08','1995-09-10','COLLECT COD','RAIL','deposits caj'); +INSERT INTO lineitem VALUES +(1317,160,2,2,7,7421.12,0.05,0.01,'A','F','1995-06-08','1995-08-03','1995-06-16','TAKE BACK RETURN','SHIP','daringly regular packages s'), +(1317,158,9,3,26,27511.9,0.01,0.02,'N','O','1995-07-13','1995-06-26','1995-08-06','COLLECT COD','RAIL','slow foxes eat: regular, regular accounts'), +(1317,106,3,4,35,35213.5,0.05,0.02,'N','O','1995-07-16','1995-07-07','1995-07-22','TAKE BACK RETURN','FOB','carefully fina'), +(1317,150,9,5,36,37805.4,0.02,0,'N','O','1995-09-03','1995-07-06','1995-09-04','DELIVER IN PERSON','AIR','express pla'), +(1318,114,4,1,24,24338.64,0.08,0.06,'N','O','1998-09-27','1998-09-15','1998-10-12','TAKE BACK RETURN','AIR','furiously unusual'), +(1318,46,3,2,26,24597.04,0.01,0.03,'N','O','1998-09-26','1998-08-09','1998-10-07','DELIVER IN PERSON','FOB','furiously regular theodolites alongsid'), +(1318,129,4,3,31,31902.72,0.01,0.04,'N','O','1998-08-25','1998-07-31','1998-08-31','COLLECT COD','AIR','regular, re'), +(1319,61,8,1,21,20182.26,0.03,0.04,'N','O','1996-10-05','1996-12-02','1996-10-28','COLLECT COD','FOB','carefully ironic foxes sleep furiously. ca'), +(1319,37,8,2,12,11244.36,0.09,0.05,'N','O','1996-11-05','1996-12-12','1996-11-29','DELIVER IN PERSON','TRUCK','bold accou'), +(1344,141,4,1,15,15617.1,0.1,0.07,'A','F','1992-06-22','1992-06-24','1992-06-23','TAKE BACK RETURN','MAIL','accounts across the furiousl'), +(1344,190,1,2,29,31615.51,0.09,0,'A','F','1992-07-17','1992-06-07','1992-07-21','NONE','REG AIR','regular, unusual excuses according to the'), +(1345,198,9,1,49,53811.31,0.08,0,'A','F','1992-12-27','1993-01-23','1993-01-06','NONE','FOB','carefully regular requ'), +(1345,12,9,2,37,33744.37,0.1,0.07,'A','F','1992-11-27','1992-12-11','1992-12-07','COLLECT COD','FOB','unusual pinto beans'), +(1345,57,8,3,31,29668.55,0.08,0.07,'R','F','1992-12-02','1992-12-29','1992-12-14','COLLECT COD','REG AIR','carefully bold deposi'), +(1346,160,8,1,29,30744.64,0.07,0.05,'A','F','1992-08-18','1992-09-15','1992-09-17','TAKE BACK RETURN','REG AIR','carefully bold excuses are blithely-- ideas'), +(1346,125,6,2,48,49205.76,0.06,0.03,'A','F','1992-09-28','1992-07-22','1992-10-13','TAKE BACK RETURN','REG AIR','close packages '), +(1346,54,5,3,13,12402.65,0.1,0.04,'A','F','1992-07-22','1992-08-10','1992-08-06','NONE','SHIP','even, even theodolites wake across t'), +(1346,124,5,4,6,6144.72,0.02,0.02,'R','F','1992-09-13','1992-07-21','1992-09-27','TAKE BACK RETURN','AIR','quickly slow'), +(1346,187,8,5,30,32615.4,0.01,0.07,'R','F','1992-10-01','1992-07-22','1992-10-24','NONE','SHIP','requests cajole. fin'), +(1346,16,6,6,45,41220.45,0.02,0.04,'A','F','1992-09-11','1992-08-06','1992-09-12','COLLECT COD','FOB','ironic, regular ideas sleep careful'), +(1347,81,2,1,45,44148.6,0.02,0.05,'N','O','1997-08-24','1997-09-03','1997-09-08','COLLECT COD','AIR','fluffily pending '), +(1347,143,6,2,34,35466.76,0.07,0.04,'N','O','1997-06-25','1997-09-08','1997-07-24','COLLECT COD','FOB','furiously even platelets after the'), +(1347,185,6,3,23,24959.14,0.03,0.04,'N','O','1997-07-31','1997-08-25','1997-08-21','COLLECT COD','SHIP','daringly final requests are'), +(1347,113,7,4,28,28367.08,0.01,0,'N','O','1997-07-30','1997-07-22','1997-08-18','TAKE BACK RETURN','FOB','carefully regular excuses abo'), +(1347,65,6,5,9,8685.54,0.01,0.03,'N','O','1997-08-28','1997-09-16','1997-09-26','DELIVER IN PERSON','AIR','pending, final a'), +(1347,153,8,6,21,22116.15,0.06,0.04,'N','O','1997-10-10','1997-08-16','1997-11-02','NONE','FOB','carefully bold deposits sleep'), +(1347,51,3,7,10,9510.5,0.02,0.07,'N','O','1997-07-04','1997-07-23','1997-07-05','DELIVER IN PERSON','SHIP','slyly final excuses wake carefully'), +(1348,95,7,1,13,12936.17,0.01,0.01,'N','O','1998-04-28','1998-06-05','1998-05-12','TAKE BACK RETURN','SHIP','furiously final foxes cajole unu'), +(1348,22,5,2,41,37802.82,0.07,0.03,'N','O','1998-05-02','1998-05-26','1998-05-09','COLLECT COD','RAIL','slyly even foxes among t'), +(1348,199,10,3,40,43967.6,0.07,0.05,'N','O','1998-08-14','1998-07-10','1998-08-27','COLLECT COD','AIR','furiously ironic accounts cajole after the'); +INSERT INTO lineitem VALUES +(1348,98,1,4,2,1996.18,0.01,0.04,'N','O','1998-05-30','1998-06-20','1998-06-05','COLLECT COD','MAIL','slyly ironic packages cajole slyly quickl'), +(1349,181,2,1,1,1081.18,0.06,0.03,'N','O','1998-01-07','1998-01-14','1998-02-03','COLLECT COD','REG AIR','furiously e'), +(1349,118,2,2,45,45814.95,0.03,0.02,'N','O','1997-12-24','1998-01-17','1997-12-28','NONE','AIR','furiously final r'), +(1350,54,9,1,21,20035.05,0.04,0.04,'A','F','1993-12-17','1993-10-17','1993-12-25','COLLECT COD','REG AIR','regular ideas nag bli'), +(1350,44,5,2,32,30209.28,0.03,0,'R','F','1993-11-18','1993-09-30','1993-12-16','COLLECT COD','MAIL','carefully final a'), +(1351,108,9,1,25,25202.5,0.06,0.04,'N','O','1998-06-02','1998-05-25','1998-06-22','COLLECT COD','SHIP','unusual deposits cajole finally '), +(1376,169,8,1,22,23521.52,0.01,0.03,'N','O','1997-08-05','1997-07-08','1997-09-03','NONE','REG AIR','accounts cajole slyly among the eve'), +(1377,154,6,1,5,5270.75,0.06,0.05,'N','O','1998-05-06','1998-07-08','1998-06-01','TAKE BACK RETURN','FOB','slyly special packages cajole. quickly reg'), +(1377,33,9,2,3,2799.09,0.1,0.04,'N','O','1998-04-30','1998-07-02','1998-05-14','DELIVER IN PERSON','REG AIR','fluffily regul'), +(1377,84,5,3,26,25586.08,0.07,0.07,'N','O','1998-05-28','1998-06-11','1998-06-25','COLLECT COD','SHIP','unusual accounts are bold request'), +(1377,121,4,4,39,39823.68,0,0.03,'N','O','1998-07-27','1998-07-18','1998-08-13','DELIVER IN PERSON','SHIP','ironic, unusual excuses cajole '), +(1377,33,9,5,19,17727.57,0.1,0,'N','O','1998-06-20','1998-06-27','1998-07-20','NONE','AIR','ideas detect'), +(1377,154,6,6,17,17920.55,0.03,0.04,'N','O','1998-06-19','1998-07-20','1998-07-14','NONE','REG AIR','forges along the carefull'), +(1378,197,10,1,34,37304.46,0.09,0.07,'N','O','1996-07-08','1996-04-23','1996-07-09','COLLECT COD','RAIL','carefully pending d'), +(1378,124,9,2,18,18434.16,0.05,0.02,'N','O','1996-06-19','1996-05-16','1996-06-21','DELIVER IN PERSON','RAIL','final, bold platel'), +(1378,73,4,3,11,10703.77,0.1,0.03,'N','O','1996-06-07','1996-05-09','1996-07-05','COLLECT COD','TRUCK','furiously final foxes cajole '), +(1378,171,2,4,12,12854.04,0.02,0.06,'N','O','1996-06-16','1996-05-23','1996-07-09','COLLECT COD','SHIP','regular packages '), +(1378,156,7,5,9,9505.35,0.06,0.05,'N','O','1996-04-20','1996-04-13','1996-05-09','COLLECT COD','REG AIR','quickly final packages nag. carefully exp'), +(1378,194,6,6,29,31731.51,0.05,0.05,'N','O','1996-04-15','1996-04-23','1996-05-14','NONE','REG AIR','blithely sil'), +(1379,73,3,1,13,12649.91,0.04,0.01,'N','O','1998-06-08','1998-07-13','1998-06-16','NONE','AIR','blithely silent foxes caj'), +(1379,118,2,2,50,50905.5,0.07,0.08,'N','O','1998-08-31','1998-07-13','1998-09-02','TAKE BACK RETURN','FOB','ironic dependencies about'), +(1379,13,7,3,24,21912.24,0.05,0.02,'N','O','1998-07-06','1998-07-09','1998-07-29','DELIVER IN PERSON','MAIL','bold, regular theodolites wake slyly above'), +(1380,149,2,1,6,6294.84,0,0.04,'N','O','1996-08-06','1996-10-01','1996-08-14','NONE','RAIL','regular, s'), +(1380,141,4,2,40,41645.6,0.02,0.02,'N','O','1996-10-01','1996-08-14','1996-10-20','COLLECT COD','RAIL','final theodolites nod furiously a'), +(1380,78,9,3,15,14671.05,0.05,0.02,'N','O','1996-07-14','1996-08-12','1996-08-03','NONE','FOB','furiously brave id'), +(1380,61,10,4,33,31714.98,0.04,0.07,'N','O','1996-08-23','1996-10-01','1996-09-18','TAKE BACK RETURN','SHIP','blithely final tithes wake s'), +(1381,144,1,1,47,49074.58,0.08,0.04,'N','O','1998-09-22','1998-08-12','1998-10-12','DELIVER IN PERSON','AIR','bold theodolites about the escapad'), +(1381,34,10,2,12,11208.36,0.07,0.08,'N','O','1998-08-13','1998-08-12','1998-08-28','TAKE BACK RETURN','AIR','unusual theodolites detect carefully slyly '), +(1382,162,3,1,18,19118.88,0.08,0.03,'R','F','1993-08-30','1993-10-19','1993-09-03','DELIVER IN PERSON','AIR','regular deposits by the asymptotes'), +(1382,181,2,2,29,31354.22,0.08,0.04,'A','F','1993-10-08','1993-11-11','1993-10-10','COLLECT COD','FOB','ironic, regul'); +INSERT INTO lineitem VALUES +(1382,178,7,3,43,46361.31,0.1,0.04,'A','F','1993-09-02','1993-10-06','1993-09-15','DELIVER IN PERSON','AIR','accounts integrate. even ins'), +(1382,181,2,4,11,11892.98,0.04,0.04,'R','F','1993-09-17','1993-09-29','1993-09-21','NONE','SHIP','furiously bold packages boost. i'), +(1382,157,8,5,31,32771.65,0.07,0.03,'R','F','1993-10-26','1993-10-15','1993-11-09','TAKE BACK RETURN','FOB','unusual deposits wake blithely final di'), +(1382,10,5,6,38,34580.38,0.07,0.07,'R','F','1993-11-17','1993-09-28','1993-11-20','COLLECT COD','SHIP','carefully regular platelets are'), +(1382,23,4,7,5,4615.1,0.07,0.01,'R','F','1993-10-02','1993-09-29','1993-10-12','DELIVER IN PERSON','REG AIR','doggedly pending instructions cajol'), +(1383,193,7,1,14,15304.66,0.07,0.06,'A','F','1993-08-25','1993-07-09','1993-09-12','DELIVER IN PERSON','RAIL','even, ironic '), +(1383,161,10,2,19,20162.04,0.06,0.04,'R','F','1993-05-24','1993-07-07','1993-06-14','NONE','AIR','even, expre'), +(1408,148,7,1,29,30396.06,0.03,0.04,'N','O','1998-03-12','1998-02-14','1998-03-17','COLLECT COD','MAIL','regular pinto beans'), +(1408,173,2,2,7,7512.19,0.05,0.06,'N','O','1998-01-14','1998-03-21','1998-01-29','COLLECT COD','AIR','quickly regula'), +(1408,76,6,3,11,10736.77,0,0.03,'N','O','1998-04-04','1998-01-29','1998-04-18','NONE','REG AIR','final requests use s'), +(1408,148,5,4,20,20962.8,0.06,0,'N','O','1998-04-21','1998-01-25','1998-05-12','DELIVER IN PERSON','TRUCK','blithely even hockey players would'), +(1408,170,1,5,41,43876.97,0.02,0.06,'N','O','1998-02-25','1998-02-03','1998-03-13','COLLECT COD','REG AIR','accounts after the f'), +(1408,134,10,6,42,43433.46,0.05,0.08,'N','O','1998-01-30','1998-02-07','1998-02-18','TAKE BACK RETURN','REG AIR','slyly thin requests above'), +(1408,55,6,7,26,24831.3,0,0,'N','O','1998-03-19','1998-03-14','1998-04-01','COLLECT COD','RAIL','carefully final foxe'), +(1409,99,1,1,23,22979.07,0.01,0.03,'A','F','1993-04-18','1993-02-25','1993-05-06','DELIVER IN PERSON','FOB','careful forges cajole idly quietly unu'), +(1409,65,2,2,36,34742.16,0.09,0.02,'A','F','1993-01-27','1993-01-31','1993-02-07','COLLECT COD','FOB','accounts hagg'), +(1409,160,1,3,17,18022.72,0.07,0,'R','F','1993-04-15','1993-03-01','1993-04-29','NONE','REG AIR','sometimes pend'), +(1410,121,10,1,15,15316.8,0.06,0.05,'N','O','1997-05-25','1997-07-08','1997-06-15','NONE','SHIP','carefully silent ideas slee'), +(1410,179,9,2,18,19425.06,0.03,0,'N','O','1997-06-03','1997-05-17','1997-06-07','TAKE BACK RETURN','RAIL','blithely even instructions haggle blithel'), +(1410,109,4,3,37,37336.7,0.02,0.01,'N','O','1997-04-17','1997-06-18','1997-04-19','COLLECT COD','TRUCK','furiously bold ideas was '), +(1410,188,9,4,22,23939.96,0.1,0,'N','O','1997-07-31','1997-05-17','1997-08-19','TAKE BACK RETURN','RAIL','requests alongside of '), +(1410,66,1,5,25,24151.5,0.09,0.02,'N','O','1997-05-07','1997-07-10','1997-05-16','NONE','REG AIR','silent pinto beans sleep carefull'), +(1411,17,7,1,9,8253.09,0.06,0.04,'A','F','1995-03-08','1995-03-04','1995-03-11','DELIVER IN PERSON','AIR','even requests would cajole care'), +(1411,107,8,2,26,26184.6,0.02,0.02,'A','F','1995-04-12','1995-01-24','1995-05-03','TAKE BACK RETURN','TRUCK','ironic ideas sleep '), +(1411,27,6,3,37,34299.74,0,0.06,'A','F','1995-02-27','1995-03-02','1995-03-24','NONE','MAIL','carefully even asympto'), +(1411,200,3,4,20,22004,0.01,0.03,'R','F','1995-04-06','1995-03-16','1995-04-17','COLLECT COD','FOB','slyly bold packages along the furio'), +(1411,83,4,5,46,45221.68,0.08,0.05,'A','F','1995-04-03','1995-01-20','1995-04-05','DELIVER IN PERSON','REG AIR','blithely regular packages are busily arou'), +(1411,77,6,6,30,29312.1,0.09,0.04,'A','F','1995-01-12','1995-02-01','1995-01-23','DELIVER IN PERSON','MAIL','express requests ha'), +(1412,58,3,1,37,35447.85,0.06,0.01,'A','F','1993-04-10','1993-04-19','1993-04-12','DELIVER IN PERSON','RAIL','regular pi'), +(1412,156,1,2,20,21123,0.1,0.05,'A','F','1993-07-04','1993-05-18','1993-07-22','DELIVER IN PERSON','REG AIR','permanently regul'); +INSERT INTO lineitem VALUES +(1412,23,2,3,2,1846.04,0.1,0.07,'R','F','1993-04-01','1993-05-03','1993-04-12','DELIVER IN PERSON','REG AIR','carefully pending pinto beans ha'), +(1412,167,8,4,11,11738.76,0.05,0.07,'R','F','1993-05-27','1993-05-30','1993-06-07','DELIVER IN PERSON','MAIL','blithely i'), +(1412,158,6,5,11,11639.65,0.08,0.06,'A','F','1993-03-30','1993-05-25','1993-04-21','NONE','FOB','special ideas alon'), +(1413,178,9,1,18,19407.06,0.08,0.05,'N','O','1997-10-11','1997-08-17','1997-10-25','NONE','FOB','quickly regular deposits wake. slowly regu'), +(1413,165,10,2,49,52192.84,0.07,0.06,'N','O','1997-08-28','1997-08-23','1997-09-12','DELIVER IN PERSON','MAIL','regular foxe'), +(1413,42,9,3,6,5652.24,0.04,0.02,'N','O','1997-09-07','1997-07-30','1997-09-21','TAKE BACK RETURN','MAIL','blithely silent warhorses are. special pi'), +(1414,38,4,1,39,36583.17,0.1,0.03,'N','O','1995-09-22','1995-09-30','1995-10-07','NONE','MAIL','pending requests after the regular, final '), +(1414,107,8,2,4,4028.4,0.02,0.05,'N','O','1995-09-16','1995-11-01','1995-10-02','COLLECT COD','AIR','final pinto beans affix f'), +(1415,149,10,1,25,26228.5,0.06,0,'A','F','1994-09-03','1994-07-12','1994-09-13','DELIVER IN PERSON','RAIL','ironic deposits '), +(1440,193,6,1,3,3279.57,0.06,0.01,'N','O','1995-10-30','1995-10-17','1995-11-08','COLLECT COD','SHIP','bold, pending foxes '), +(1440,114,4,2,46,46649.06,0.02,0.03,'N','O','1995-09-21','1995-10-19','1995-10-19','NONE','RAIL','special, unusual deposits are. '), +(1441,144,7,1,5,5220.7,0.04,0.01,'N','O','1997-05-17','1997-05-11','1997-05-30','COLLECT COD','MAIL','quickly expres'), +(1441,177,7,2,5,5385.85,0.02,0.05,'N','O','1997-04-25','1997-04-16','1997-05-23','COLLECT COD','FOB','furiously unusual packages x-ray fur'), +(1441,118,5,3,14,14253.54,0.01,0.03,'N','O','1997-06-30','1997-04-29','1997-07-24','DELIVER IN PERSON','REG AIR','packages wake slyly unusual package'), +(1441,160,8,4,37,39225.92,0.01,0,'N','O','1997-04-26','1997-04-27','1997-04-29','NONE','REG AIR','carefully pending packa'), +(1441,72,10,5,34,33050.38,0.09,0,'N','O','1997-06-12','1997-05-11','1997-06-29','TAKE BACK RETURN','RAIL','slyly even packa'), +(1441,25,4,6,15,13875.3,0.09,0.08,'N','O','1997-05-21','1997-05-06','1997-06-04','NONE','REG AIR','furiously even de'), +(1441,96,10,7,50,49804.5,0.03,0.01,'N','O','1997-06-07','1997-05-12','1997-06-08','NONE','SHIP','special packages haggle. fluffily pen'), +(1442,26,5,1,8,7408.16,0.05,0.01,'A','F','1994-10-31','1994-09-04','1994-11-25','COLLECT COD','AIR','accounts along the requests nag r'), +(1443,34,10,1,47,43899.41,0.04,0.06,'N','O','1997-02-05','1997-02-02','1997-03-03','NONE','RAIL','unusual, regular packages ha'), +(1444,170,5,1,42,44947.14,0.01,0.02,'R','F','1994-12-22','1995-03-03','1994-12-31','NONE','SHIP','requests are. furiousl'), +(1444,57,2,2,34,32539.7,0.04,0.08,'A','F','1995-02-22','1995-02-15','1995-03-19','TAKE BACK RETURN','AIR','blithely ironic ideas nag against the bl'), +(1444,155,3,3,34,35875.1,0.02,0.07,'R','F','1994-12-17','1995-01-12','1995-01-03','COLLECT COD','AIR','furiously final de'), +(1444,119,6,4,6,6114.66,0.06,0.03,'A','F','1995-01-07','1995-03-05','1995-01-17','COLLECT COD','RAIL','slyly even accounts among the silent inst'), +(1444,20,1,5,35,32200.7,0.02,0.05,'A','F','1995-02-25','1995-03-05','1995-03-24','DELIVER IN PERSON','SHIP','furiously furious requests are carefull'), +(1444,33,4,6,42,39187.26,0,0.02,'A','F','1994-12-16','1995-02-18','1994-12-22','DELIVER IN PERSON','RAIL','blithely bold escap'), +(1444,82,3,7,12,11784.96,0,0.03,'R','F','1994-12-23','1995-01-15','1995-01-13','COLLECT COD','TRUCK','ironic excuses h'), +(1445,100,1,1,24,24002.4,0.01,0,'A','F','1995-02-21','1995-02-22','1995-03-18','DELIVER IN PERSON','SHIP','final requests wake carefully across'), +(1445,67,8,2,48,46418.88,0.1,0.02,'A','F','1995-02-28','1995-03-16','1995-03-12','COLLECT COD','MAIL','blithely final ideas cajole furiously fluff'), +(1445,192,4,3,7,7645.33,0.1,0.04,'A','F','1995-04-25','1995-02-25','1995-05-10','NONE','SHIP','unusual, regular accounts'); +INSERT INTO lineitem VALUES +(1445,28,1,4,17,15776.34,0.04,0.07,'A','F','1995-04-02','1995-04-04','1995-05-01','COLLECT COD','FOB','slyly regular pe'), +(1445,135,1,5,24,24843.12,0.1,0.06,'R','F','1995-04-23','1995-02-16','1995-05-18','NONE','REG AIR','slyly even requests '), +(1445,168,9,6,39,41658.24,0.03,0.02,'A','F','1995-02-05','1995-02-20','1995-02-06','NONE','MAIL','deposits wa'), +(1446,72,3,1,31,30134.17,0.1,0.02,'N','O','1998-05-01','1998-05-17','1998-05-30','NONE','REG AIR','evenly even packages boost '), +(1447,167,4,1,19,20276.04,0.06,0.04,'A','F','1993-01-31','1992-12-07','1993-02-04','COLLECT COD','MAIL','blithely ir'), +(1447,32,3,2,6,5592.18,0.01,0.05,'A','F','1992-10-24','1992-12-10','1992-11-05','DELIVER IN PERSON','AIR','foxes are ruthlessly requests. blith'), +(1447,39,5,3,9,8451.27,0.04,0,'R','F','1992-11-15','1993-01-07','1992-11-29','DELIVER IN PERSON','MAIL','final ideas are ca'), +(1447,22,5,4,8,7376.16,0.09,0.08,'R','F','1992-11-20','1993-01-12','1992-12-14','COLLECT COD','FOB','quickly regular packages sleep carefull'), +(1447,130,1,5,23,23692.99,0.02,0.07,'A','F','1992-12-07','1992-12-25','1993-01-06','TAKE BACK RETURN','AIR','final, express'), +(1447,200,3,6,41,45108.2,0.08,0.02,'R','F','1993-01-06','1993-01-05','1993-01-13','TAKE BACK RETURN','MAIL','carefully ironic accounts sleep s'), +(1472,8,5,1,36,32688,0.04,0.05,'N','O','1996-11-06','1996-11-13','1996-11-12','COLLECT COD','SHIP','quickly final theodolites sleep. caref'), +(1472,133,4,2,26,26861.38,0.03,0.05,'N','O','1996-11-08','1996-11-13','1996-12-02','DELIVER IN PERSON','FOB','quickly regular '), +(1472,1,8,3,6,5406,0.08,0.01,'N','O','1996-10-24','1996-11-19','1996-11-23','COLLECT COD','FOB','slyly express deposits serve ca'), +(1473,54,9,1,50,47702.5,0.04,0.03,'N','O','1997-05-05','1997-05-20','1997-05-09','NONE','TRUCK','carefully final platelets cajole q'), +(1473,68,3,2,32,30977.92,0,0.08,'N','O','1997-04-18','1997-05-12','1997-05-10','DELIVER IN PERSON','REG AIR','even deposits along the furious'), +(1474,15,5,1,5,4575.05,0.05,0.04,'A','F','1995-04-22','1995-02-20','1995-05-06','COLLECT COD','SHIP','requests are furiously foxes. care'), +(1474,123,8,2,30,30693.6,0.04,0.02,'A','F','1995-03-23','1995-02-11','1995-04-17','DELIVER IN PERSON','TRUCK','thinly regular asymptotes h'), +(1474,92,5,3,18,17857.62,0.06,0.02,'A','F','1995-01-23','1995-03-28','1995-02-03','NONE','RAIL','blithely regular accounts above the care'), +(1475,168,3,1,15,16022.4,0.08,0.06,'N','O','1998-02-12','1997-12-17','1998-03-02','TAKE BACK RETURN','SHIP','fluffily stealthy packages'), +(1475,118,9,2,18,18325.98,0.07,0,'N','O','1998-03-08','1998-01-18','1998-03-10','TAKE BACK RETURN','AIR','ironic, special requests'), +(1475,144,1,3,30,31324.2,0.03,0.02,'N','O','1998-03-11','1997-12-30','1998-03-15','COLLECT COD','REG AIR','slyly even depend'), +(1475,187,8,4,50,54359,0.03,0.05,'N','O','1997-12-14','1997-12-13','1997-12-21','COLLECT COD','AIR','quickly special packages'), +(1475,32,3,5,33,30756.99,0.01,0.06,'N','O','1998-01-02','1998-01-27','1998-01-11','NONE','FOB','slyly unusual d'), +(1475,50,7,6,12,11400.6,0.04,0.04,'N','O','1998-01-09','1997-12-30','1998-01-23','NONE','TRUCK','carefully blithe accou'), +(1475,112,3,7,23,23278.53,0.02,0,'N','O','1998-02-13','1998-02-05','1998-03-08','NONE','TRUCK','furiously fin'), +(1476,31,7,1,20,18620.6,0.02,0.03,'N','O','1996-08-11','1996-09-18','1996-08-26','TAKE BACK RETURN','AIR','foxes boost slyly'), +(1477,72,1,1,31,30134.17,0,0.06,'N','O','1997-12-16','1997-09-30','1997-12-17','COLLECT COD','RAIL','foxes use from the blithely regular accoun'), +(1477,110,7,2,8,8080.88,0.09,0.05,'N','O','1997-10-25','1997-10-18','1997-11-16','COLLECT COD','MAIL','final acco'), +(1477,125,6,3,42,43055.04,0.06,0,'N','O','1997-11-02','1997-11-02','1997-11-20','DELIVER IN PERSON','SHIP','carefully ex'), +(1477,107,8,4,32,32227.2,0.05,0.08,'N','O','1997-09-12','1997-10-26','1997-10-12','TAKE BACK RETURN','AIR','enticingly even forges boost foxes'); +INSERT INTO lineitem VALUES +(1477,115,6,5,41,41619.51,0.04,0.06,'N','O','1997-12-16','1997-10-31','1998-01-12','DELIVER IN PERSON','REG AIR','express pac'), +(1477,69,6,6,49,47483.94,0.06,0,'N','O','1997-11-18','1997-11-06','1997-11-27','COLLECT COD','FOB','express dependencies c'), +(1477,120,4,7,33,33663.96,0.06,0,'N','O','1997-11-12','1997-11-06','1997-11-24','DELIVER IN PERSON','TRUCK','even asymptotes cajole carefully even court'), +(1478,34,5,1,21,19614.63,0,0.06,'N','O','1997-09-20','1997-10-25','1997-10-06','TAKE BACK RETURN','MAIL','blithely bol'), +(1479,149,6,1,33,34621.62,0.1,0.01,'N','O','1996-03-12','1996-02-28','1996-03-31','DELIVER IN PERSON','FOB','slyly ironic accounts alongside of the '), +(1504,82,3,1,42,41247.36,0.02,0.03,'R','F','1992-10-18','1992-10-14','1992-11-10','TAKE BACK RETURN','FOB','express theodolites haggle fluffily-- blith'), +(1504,103,10,2,22,22068.2,0.04,0.03,'A','F','1992-09-09','1992-10-29','1992-09-10','NONE','REG AIR','carefully b'), +(1504,178,8,3,9,9703.53,0.07,0.02,'R','F','1992-11-02','1992-10-12','1992-11-15','TAKE BACK RETURN','RAIL','accounts wake slyly. fluffily pen'), +(1504,115,2,4,10,10151.1,0.04,0.07,'A','F','1992-09-22','1992-10-22','1992-10-13','TAKE BACK RETURN','TRUCK','furiously ironic asympto'), +(1504,20,10,5,7,6440.14,0.02,0,'R','F','1992-11-20','1992-11-23','1992-12-13','COLLECT COD','MAIL','quickly regula'), +(1505,120,7,1,4,4080.48,0.09,0,'A','F','1992-12-14','1992-11-11','1993-01-02','COLLECT COD','SHIP','furiously ironic courts cajole a'), +(1505,123,8,2,50,51156,0,0.02,'R','F','1992-11-22','1992-09-24','1992-11-26','TAKE BACK RETURN','FOB','quickly express package'), +(1506,133,4,1,46,47523.98,0.04,0.05,'R','F','1993-01-18','1992-11-11','1993-02-09','COLLECT COD','REG AIR','fluffily final pinto beans wak'), +(1506,114,4,2,30,30423.3,0.07,0.02,'A','F','1992-11-22','1992-10-25','1992-12-04','DELIVER IN PERSON','FOB','regular deposits believe furiously'), +(1506,191,3,3,28,30553.32,0.1,0.06,'A','F','1992-09-22','1992-11-19','1992-10-09','TAKE BACK RETURN','AIR','ironic requests wake furiously sp'), +(1506,28,7,4,37,34336.74,0,0.03,'R','F','1992-11-04','1992-12-01','1992-11-23','TAKE BACK RETURN','TRUCK','even ideas cajole slyly. ironic '), +(1506,195,8,5,15,16427.85,0.05,0,'R','F','1992-09-24','1992-11-11','1992-10-05','NONE','REG AIR','ironic accounts haggle fluffily'), +(1506,50,3,6,38,36101.9,0.05,0.02,'R','F','1992-12-02','1992-12-19','1992-12-29','NONE','REG AIR','regular, regular theodolites solve'), +(1506,169,6,7,4,4276.64,0.07,0,'R','F','1993-01-03','1992-12-06','1993-01-05','COLLECT COD','REG AIR','regular, pending packages boost according '), +(1507,68,5,1,25,24201.5,0.01,0.08,'R','F','1994-01-07','1994-01-06','1994-01-11','NONE','RAIL','quickly regular theodolites a'), +(1507,40,6,2,33,31021.32,0.04,0.02,'A','F','1993-10-29','1993-12-23','1993-11-14','DELIVER IN PERSON','REG AIR','platelets x-ray across th'), +(1507,86,7,3,39,38457.12,0.03,0.07,'R','F','1993-11-04','1993-12-16','1993-12-03','TAKE BACK RETURN','REG AIR','furiously unusual packages doubt blithely'), +(1508,51,3,1,16,15216.8,0.02,0.06,'N','O','1998-06-21','1998-05-30','1998-07-11','COLLECT COD','MAIL','furiously even pinto '), +(1508,25,4,2,20,18500.4,0.06,0.01,'N','O','1998-04-17','1998-06-11','1998-05-17','DELIVER IN PERSON','MAIL','furiously sile'), +(1508,93,7,3,43,42702.87,0.01,0.02,'N','O','1998-06-01','1998-06-24','1998-06-03','TAKE BACK RETURN','TRUCK','warhorses nag ironic, final'), +(1508,148,7,4,1,1048.14,0.02,0.02,'N','O','1998-07-13','1998-06-03','1998-07-17','TAKE BACK RETURN','AIR','regular accounts wake qu'), +(1508,135,6,5,29,30018.77,0.02,0,'N','O','1998-08-03','1998-07-08','1998-08-22','COLLECT COD','RAIL','carefully i'), +(1508,3,10,6,5,4515,0.06,0.08,'N','O','1998-05-22','1998-07-06','1998-06-04','COLLECT COD','REG AIR','final deposits affix furiously s'), +(1508,117,8,7,38,38650.18,0.03,0.06,'N','O','1998-04-30','1998-06-23','1998-05-18','DELIVER IN PERSON','RAIL','blithely unu'); +INSERT INTO lineitem VALUES +(1509,28,7,1,14,12992.28,0.04,0.01,'A','F','1993-10-04','1993-09-25','1993-10-21','NONE','TRUCK','ironic, pend'), +(1509,11,2,2,46,41906.46,0.08,0.02,'A','F','1993-10-15','1993-10-04','1993-11-01','TAKE BACK RETURN','FOB','enticingly pending pack'), +(1509,107,8,3,17,17120.7,0.06,0.05,'A','F','1993-07-25','1993-08-28','1993-08-19','DELIVER IN PERSON','AIR','pending depos'), +(1509,20,4,4,11,10120.22,0.03,0.08,'R','F','1993-11-04','1993-10-03','1993-11-14','TAKE BACK RETURN','FOB','fluffily special packages are carefull'), +(1509,90,1,5,37,36633.33,0.01,0.08,'A','F','1993-08-31','1993-09-10','1993-09-24','NONE','FOB','fluffily regu'), +(1509,187,8,6,31,33702.58,0.04,0.03,'A','F','1993-07-14','1993-08-21','1993-08-06','COLLECT COD','SHIP','carefully even Tiresias promise slyl'), +(1509,157,2,7,27,28543.05,0.01,0.01,'A','F','1993-09-29','1993-09-08','1993-10-04','TAKE BACK RETURN','FOB','ironic packages a'), +(1510,98,2,1,11,10978.99,0.09,0.04,'N','O','1996-09-23','1996-12-03','1996-10-01','DELIVER IN PERSON','RAIL','regular packages wake at '), +(1510,84,5,2,24,23617.92,0.05,0.04,'N','O','1996-10-07','1996-10-22','1996-11-03','DELIVER IN PERSON','REG AIR','blithely final requests shal'), +(1510,190,1,3,36,39246.84,0.07,0.02,'N','O','1996-10-02','1996-11-23','1996-10-05','NONE','SHIP','carefully regul'), +(1510,182,3,4,8,8657.44,0.01,0.08,'N','O','1996-10-26','1996-11-07','1996-10-30','TAKE BACK RETURN','RAIL','carefully final foxes cajole quickly '), +(1510,59,10,5,27,25894.35,0.08,0.06,'N','O','1996-10-20','1996-12-05','1996-11-02','NONE','MAIL','stealthily express dinos dazzle final r'), +(1510,14,5,6,3,2742.03,0.05,0.02,'N','O','1996-10-31','1996-12-03','1996-11-13','COLLECT COD','RAIL','idly pending'), +(1510,22,1,7,50,46101,0.04,0.05,'N','O','1996-11-01','1996-10-17','1996-11-28','NONE','MAIL','blithely final acc'), +(1511,98,2,1,29,28944.61,0.01,0.04,'N','O','1997-03-17','1997-02-11','1997-03-27','DELIVER IN PERSON','AIR','furiously ironic pinto beans use. slyly f'), +(1511,62,9,2,32,30785.92,0.04,0.01,'N','O','1997-01-06','1997-03-21','1997-01-26','TAKE BACK RETURN','REG AIR','blithely permanent a'), +(1536,194,5,1,5,5470.95,0.08,0.03,'N','O','1997-02-08','1997-03-11','1997-03-02','COLLECT COD','MAIL','slyly special excuses use against'), +(1537,18,2,1,17,15606.17,0.01,0.03,'A','F','1992-04-12','1992-04-19','1992-04-13','NONE','TRUCK','quickly silent f'), +(1537,179,8,2,50,53958.5,0.08,0,'R','F','1992-05-30','1992-05-14','1992-06-23','TAKE BACK RETURN','MAIL','furiously bold instructions wa'), +(1537,13,4,3,44,40172.44,0.05,0.04,'R','F','1992-04-01','1992-03-31','1992-04-21','NONE','TRUCK','blithely regular pinto beans haggle a'), +(1537,140,6,4,3,3120.42,0.08,0.07,'R','F','1992-03-20','1992-04-14','1992-03-21','TAKE BACK RETURN','SHIP','ironic, en'), +(1538,102,5,1,32,32067.2,0.05,0.05,'N','O','1995-07-08','1995-07-29','1995-08-01','TAKE BACK RETURN','RAIL','slyly ironic pi'), +(1538,192,3,2,27,29489.13,0.05,0.01,'N','O','1995-09-19','1995-08-03','1995-09-24','DELIVER IN PERSON','TRUCK','quick deposits alongside of'), +(1538,130,3,3,36,37084.68,0.08,0.04,'N','O','1995-07-11','1995-09-10','1995-07-26','DELIVER IN PERSON','MAIL','deposits cajole sin'), +(1538,104,1,4,28,28114.8,0.1,0.04,'N','O','1995-09-19','1995-08-27','1995-10-10','COLLECT COD','RAIL','express dolphins u'), +(1538,178,7,5,13,14016.21,0.01,0.05,'N','O','1995-06-26','1995-07-30','1995-07-25','NONE','SHIP','asymptotes sleep slyly regular accounts.'), +(1538,128,3,6,42,43181.04,0.08,0.08,'N','O','1995-10-10','1995-09-12','1995-11-08','DELIVER IN PERSON','TRUCK','furiously ironi'), +(1539,196,9,1,21,23019.99,0.08,0.02,'R','F','1995-04-19','1995-05-10','1995-04-27','COLLECT COD','TRUCK','blithely bold packages along the furiou'), +(1539,86,7,2,11,10846.88,0.01,0.08,'A','F','1995-05-27','1995-04-13','1995-06-10','TAKE BACK RETURN','TRUCK','blithely unusual ideas '), +(1539,68,5,3,7,6776.42,0.09,0.04,'R','F','1995-05-14','1995-04-16','1995-05-30','DELIVER IN PERSON','AIR','slyly final '); +INSERT INTO lineitem VALUES +(1540,173,1,1,38,40780.46,0.03,0.01,'R','F','1992-09-30','1992-10-27','1992-10-12','TAKE BACK RETURN','SHIP','special pinto beans sleep sl'), +(1540,60,2,2,35,33602.1,0.02,0.07,'R','F','1992-10-31','1992-09-04','1992-11-05','TAKE BACK RETURN','SHIP','quickly final accounts are slyly. qui'), +(1540,8,3,3,25,22700,0.08,0.04,'R','F','1992-11-15','1992-10-24','1992-12-14','DELIVER IN PERSON','SHIP','furiously special pack'), +(1540,25,8,4,6,5550.12,0.09,0.03,'R','F','1992-08-28','1992-09-17','1992-09-14','COLLECT COD','MAIL','slyly unusual theodolites about the '), +(1540,87,8,5,27,26651.16,0.1,0.08,'R','F','1992-12-02','1992-10-18','1992-12-31','NONE','SHIP','blithely ironic packages '), +(1541,64,3,1,44,42418.64,0.1,0.05,'N','O','1995-08-24','1995-07-13','1995-08-26','TAKE BACK RETURN','MAIL','blithely final dependencies could haggle. a'), +(1541,26,7,2,8,7408.16,0.1,0.08,'N','F','1995-06-05','1995-08-07','1995-06-21','TAKE BACK RETURN','TRUCK','unusual, ironic instructions '), +(1542,58,9,1,37,35447.85,0.07,0.06,'A','F','1993-12-15','1993-10-17','1994-01-07','TAKE BACK RETURN','REG AIR','final, express packages wake fu'), +(1542,3,6,2,12,10836,0.09,0.06,'R','F','1993-10-29','1993-11-02','1993-11-09','TAKE BACK RETURN','RAIL','carefully bold dolph'), +(1542,6,7,3,18,16308,0.05,0.05,'R','F','1993-10-17','1993-11-15','1993-10-26','TAKE BACK RETURN','FOB','carefully silent packages sle'), +(1542,143,10,4,21,21905.94,0.01,0.05,'R','F','1993-10-13','1993-12-13','1993-11-12','NONE','RAIL','blithely fina'), +(1542,155,7,5,46,48536.9,0,0,'R','F','1993-09-28','1993-11-03','1993-10-15','COLLECT COD','FOB','furiously eve'), +(1543,71,10,1,34,33016.38,0.02,0.08,'N','O','1997-05-25','1997-03-30','1997-06-04','NONE','AIR','fluffily final theodol'), +(1543,115,9,2,6,6090.66,0.09,0.01,'N','O','1997-04-16','1997-05-20','1997-05-16','DELIVER IN PERSON','MAIL','pains cajole'), +(1543,67,8,3,42,40616.52,0.06,0.01,'N','O','1997-05-26','1997-03-30','1997-06-12','DELIVER IN PERSON','FOB','carefully even accounts sleep '), +(1543,189,10,4,42,45745.56,0.05,0.06,'N','O','1997-04-11','1997-04-11','1997-04-23','TAKE BACK RETURN','MAIL','quickly express accounts play final account'), +(1543,40,1,5,9,8460.36,0.08,0.06,'N','O','1997-03-14','1997-05-19','1997-03-26','DELIVER IN PERSON','FOB','pinto beans about the carefully'), +(1543,49,8,6,3,2847.12,0.1,0.04,'N','O','1997-03-29','1997-05-10','1997-04-22','COLLECT COD','MAIL','quickly regul'), +(1543,68,7,7,3,2904.18,0,0.02,'N','O','1997-03-22','1997-04-06','1997-03-30','NONE','AIR','regular, silent packag'), +(1568,90,1,1,36,35643.24,0.02,0.03,'N','O','1997-05-31','1997-04-22','1997-06-21','TAKE BACK RETURN','RAIL','blithely special request'), +(1568,9,2,2,46,41814,0.04,0,'N','O','1997-04-06','1997-04-08','1997-04-23','TAKE BACK RETURN','MAIL','quickly brave foxes'), +(1569,75,3,1,5,4875.35,0.07,0,'N','O','1998-04-16','1998-06-21','1998-04-18','COLLECT COD','REG AIR','ironic instructions mold unde'), +(1569,39,10,2,16,15024.48,0.01,0.08,'N','O','1998-04-26','1998-06-16','1998-05-26','COLLECT COD','MAIL','slyly special packages '), +(1569,49,10,3,43,40808.72,0.1,0.03,'N','O','1998-06-05','1998-05-31','1998-06-28','DELIVER IN PERSON','FOB','quickly express instructions '), +(1569,70,1,4,30,29102.1,0.02,0.03,'N','O','1998-07-19','1998-06-04','1998-08-10','NONE','SHIP','carefully even dinos above the ca'), +(1570,183,4,1,25,27079.5,0,0.06,'N','O','1998-05-03','1998-06-02','1998-06-02','DELIVER IN PERSON','REG AIR','blithely even pinto beans haggle furiou'), +(1570,86,7,2,7,6902.56,0.05,0.05,'N','O','1998-07-10','1998-06-01','1998-07-23','TAKE BACK RETURN','MAIL','special instructions nag blithe'), +(1571,52,3,1,47,44746.35,0,0.05,'R','F','1992-12-07','1993-02-24','1993-01-01','TAKE BACK RETURN','REG AIR','furiously special deposits wake fluffily ag'), +(1571,183,4,2,6,6499.08,0.03,0,'A','F','1993-01-08','1993-02-13','1993-02-07','COLLECT COD','SHIP','asymptotes cajole. quickly iro'), +(1571,59,7,3,18,17262.9,0.05,0.08,'A','F','1993-01-09','1993-01-12','1993-01-31','COLLECT COD','AIR','slyly ironic'); +INSERT INTO lineitem VALUES +(1571,101,4,4,48,48052.8,0.05,0.05,'A','F','1992-12-28','1993-01-04','1993-01-04','DELIVER IN PERSON','RAIL','ironic packages are above the regular requ'), +(1571,42,5,5,10,9420.4,0.03,0.06,'R','F','1992-12-12','1993-02-13','1992-12-29','DELIVER IN PERSON','AIR','furiously '), +(1571,34,10,6,24,22416.72,0.05,0.07,'A','F','1993-03-22','1993-01-31','1993-04-09','NONE','TRUCK','unusual accounts sleep;'), +(1572,24,5,1,41,37884.82,0.02,0,'N','O','1996-05-16','1996-04-09','1996-05-28','TAKE BACK RETURN','REG AIR','ironic grouches'), +(1572,93,7,2,10,9930.9,0.04,0.06,'N','O','1996-05-17','1996-03-26','1996-05-19','NONE','AIR','ironic accounts'), +(1573,186,7,1,5,5430.9,0.05,0.01,'A','F','1993-04-24','1993-03-13','1993-05-17','TAKE BACK RETURN','MAIL','slyly special braids along the furiousl'), +(1573,31,2,2,17,15827.51,0,0.06,'R','F','1993-02-24','1993-02-16','1993-03-08','TAKE BACK RETURN','TRUCK','close waters are carefully blithely spec'), +(1573,83,4,3,16,15729.28,0.04,0.03,'A','F','1993-03-15','1993-03-16','1993-03-31','COLLECT COD','AIR','ironically ironic foxes sleep quic'), +(1573,194,7,4,11,12036.09,0.09,0.01,'R','F','1993-03-23','1993-03-24','1993-04-12','TAKE BACK RETURN','RAIL','carefully final dependencies slee'), +(1573,137,8,5,7,7259.91,0,0.01,'R','F','1993-01-30','1993-03-14','1993-02-27','DELIVER IN PERSON','SHIP','blithely even foxes cajole. furiously reg'), +(1573,154,6,6,30,31624.5,0.03,0.01,'A','F','1992-12-29','1993-03-06','1993-01-02','DELIVER IN PERSON','TRUCK','slyly ironic pearls detect al'), +(1574,48,7,1,41,38869.64,0.06,0.02,'N','O','1997-03-08','1997-02-09','1997-04-01','COLLECT COD','AIR','furiously even packages are along the f'), +(1574,191,5,2,50,54559.5,0,0.05,'N','O','1996-12-14','1997-02-14','1996-12-16','TAKE BACK RETURN','FOB','fluffily pending courts boost. expres'), +(1574,55,3,3,25,23876.25,0.06,0.02,'N','O','1997-01-16','1997-02-14','1997-02-12','DELIVER IN PERSON','TRUCK','final instructions are quickly around t'), +(1574,191,4,4,6,6547.14,0.03,0.05,'N','O','1997-02-24','1997-02-03','1997-03-01','NONE','AIR','packages wake slyly except the fin'), +(1574,109,4,5,6,6054.6,0.05,0.05,'N','O','1997-02-09','1997-03-02','1997-02-14','COLLECT COD','MAIL','unusual depo'), +(1574,5,2,6,42,38010,0.07,0.01,'N','O','1996-12-19','1997-01-13','1996-12-28','NONE','FOB','stealthily unusua'), +(1574,136,7,7,14,14505.82,0.04,0.01,'N','O','1996-12-30','1997-01-19','1997-01-20','NONE','AIR','busily pending requests al'), +(1575,29,10,1,42,39018.84,0.05,0.08,'N','O','1995-10-21','1995-11-25','1995-10-24','DELIVER IN PERSON','RAIL','furiously even r'), +(1575,36,7,2,39,36505.17,0,0.06,'N','O','1995-10-30','1995-10-15','1995-11-10','COLLECT COD','TRUCK','requests about the fur'), +(1575,2,5,3,12,10824,0.01,0.05,'N','O','1995-12-27','1995-11-11','1996-01-23','TAKE BACK RETURN','AIR','furiously express th'), +(1575,111,1,4,39,39433.29,0.07,0,'N','O','1995-09-23','1995-11-05','1995-09-25','TAKE BACK RETURN','TRUCK','carefully ironic ideas are silent, iron'), +(1575,83,4,5,10,9830.8,0.09,0,'N','O','1996-01-10','1995-11-20','1996-01-13','DELIVER IN PERSON','RAIL','regular requests wake abo'), +(1575,178,6,6,14,15094.38,0.08,0.06,'N','O','1995-10-31','1995-12-06','1995-11-30','NONE','AIR','regular platelets acro'), +(1575,117,1,7,48,48821.28,0.08,0.04,'N','O','1995-11-19','1995-10-25','1995-12-07','DELIVER IN PERSON','TRUCK','blithely final th'), +(1600,172,10,1,20,21443.4,0.02,0.01,'R','F','1993-06-16','1993-04-23','1993-07-02','COLLECT COD','FOB','slyly final reques'), +(1600,44,3,2,48,45313.92,0.07,0.02,'R','F','1993-04-17','1993-04-14','1993-05-03','DELIVER IN PERSON','FOB','unusual pac'), +(1600,39,10,3,8,7512.24,0.04,0.07,'R','F','1993-03-07','1993-04-22','1993-03-26','TAKE BACK RETURN','FOB','ironic accounts use above the re'), +(1600,69,8,4,25,24226.5,0,0.06,'A','F','1993-05-25','1993-04-07','1993-06-05','TAKE BACK RETURN','REG AIR','final, special accounts slee'); +INSERT INTO lineitem VALUES +(1600,147,8,5,30,31414.2,0.03,0.08,'R','F','1993-06-03','1993-05-03','1993-06-07','DELIVER IN PERSON','RAIL','furiously even packages'), +(1601,167,8,1,6,6402.96,0,0,'A','F','1994-10-19','1994-09-28','1994-10-23','COLLECT COD','SHIP','furiously even pattern'), +(1601,175,3,2,50,53758.5,0.03,0.02,'R','F','1994-12-24','1994-10-23','1995-01-11','COLLECT COD','FOB','ironic, express'), +(1601,90,1,3,14,13861.26,0.04,0.08,'R','F','1994-09-17','1994-11-22','1994-10-03','DELIVER IN PERSON','RAIL','unusual instructions af'), +(1602,183,4,1,4,4332.72,0.08,0.06,'R','F','1993-10-31','1993-09-05','1993-11-21','NONE','RAIL','carefully silent sentiments'), +(1603,39,5,1,1,939.03,0.08,0,'R','F','1993-08-17','1993-09-04','1993-08-22','TAKE BACK RETURN','REG AIR','packages sleep blithely regular deposits. q'), +(1603,66,5,2,29,28015.74,0.06,0.08,'A','F','1993-09-28','1993-09-20','1993-10-28','NONE','SHIP','bold deposit'), +(1604,42,3,1,15,14130.6,0.09,0.08,'R','F','1993-09-22','1993-09-03','1993-09-29','TAKE BACK RETURN','MAIL','furiously pending accounts affi'), +(1604,141,4,2,37,38522.18,0.06,0.06,'A','F','1993-08-22','1993-09-21','1993-09-10','COLLECT COD','SHIP','carefully silent pinto beans hang furiousl'), +(1604,114,8,3,19,19268.09,0.09,0.07,'A','F','1993-10-15','1993-10-04','1993-11-09','COLLECT COD','RAIL','foxes are furiously pending, bold pin'), +(1604,175,4,4,15,16127.55,0.03,0,'R','F','1993-09-10','1993-08-31','1993-09-30','TAKE BACK RETURN','RAIL','ideas cajole careful'), +(1604,21,4,5,23,21183.46,0.08,0.05,'A','F','1993-10-11','1993-08-30','1993-10-18','DELIVER IN PERSON','RAIL','even deposits wake entic'), +(1605,142,1,1,47,48980.58,0,0.01,'N','O','1998-04-29','1998-06-12','1998-05-20','DELIVER IN PERSON','AIR','unusual, final requests cajole along the'), +(1605,180,8,2,18,19443.24,0.1,0,'N','O','1998-05-13','1998-06-17','1998-06-03','COLLECT COD','REG AIR','blithely final deposits detect? regular pa'), +(1605,59,10,3,39,37402.95,0.02,0.03,'N','O','1998-07-12','1998-06-05','1998-08-09','DELIVER IN PERSON','MAIL','final deposits haggle slyly quickly '), +(1605,183,4,4,25,27079.5,0.06,0.02,'N','O','1998-05-26','1998-06-14','1998-06-05','COLLECT COD','AIR','final requests are carefully bol'), +(1606,115,6,1,21,21317.31,0.04,0,'N','O','1997-06-02','1997-07-02','1997-06-27','DELIVER IN PERSON','RAIL','quickly pending braids across the bold, '), +(1606,174,3,2,35,37595.95,0,0.02,'N','O','1997-06-20','1997-06-19','1997-06-22','COLLECT COD','TRUCK','blithely ironi'), +(1606,100,4,3,23,23002.3,0,0.06,'N','O','1997-04-19','1997-06-26','1997-04-30','NONE','MAIL','accounts wake carefully '), +(1606,97,9,4,20,19941.8,0.02,0.04,'N','O','1997-05-01','1997-05-26','1997-05-28','TAKE BACK RETURN','TRUCK','regular excuses was blithely reg'), +(1606,71,10,5,14,13594.98,0.1,0.01,'N','O','1997-05-19','1997-07-05','1997-06-10','COLLECT COD','FOB','busy deposits abo'), +(1607,190,1,1,2,2180.38,0.02,0,'N','O','1996-01-11','1996-02-15','1996-01-19','DELIVER IN PERSON','MAIL','blithely express requests across the blith'), +(1607,119,3,2,37,37707.07,0.05,0.02,'N','O','1996-02-27','1996-02-18','1996-03-16','NONE','AIR','bravely regular deposits use. ironic n'), +(1607,123,4,3,39,39901.68,0,0,'N','O','1996-02-01','1996-02-12','1996-02-16','NONE','FOB','daringly un'), +(1607,76,6,4,34,33186.38,0.05,0.06,'N','O','1996-01-06','1996-02-24','1996-01-10','DELIVER IN PERSON','SHIP','final excuses wake '), +(1607,178,8,5,48,51752.16,0,0.05,'N','O','1996-02-22','1996-02-13','1996-03-09','TAKE BACK RETURN','MAIL','unusual, spe'), +(1632,191,5,1,47,51285.93,0.08,0,'N','O','1997-01-25','1997-02-09','1997-02-19','TAKE BACK RETURN','RAIL','requests cajole ca'), +(1632,148,7,2,14,14673.96,0.08,0.05,'N','O','1997-01-15','1997-02-25','1997-01-28','NONE','RAIL','carefully special patt'), +(1632,177,6,3,47,50626.99,0.03,0.04,'N','O','1997-01-29','1997-03-03','1997-02-21','NONE','MAIL','slyly even requests detect '); +INSERT INTO lineitem VALUES +(1632,57,9,4,33,31582.65,0.09,0.02,'N','O','1997-04-01','1997-02-24','1997-04-29','TAKE BACK RETURN','REG AIR','packages haggle blithely. furiously'), +(1632,142,1,5,43,44812.02,0.1,0.03,'N','O','1997-02-24','1997-02-19','1997-03-25','DELIVER IN PERSON','FOB','excuses cajole across the slyly'), +(1633,178,7,1,35,37735.95,0.01,0.02,'N','O','1996-01-09','1995-12-02','1996-01-21','COLLECT COD','REG AIR','carefully idle packages among the car'), +(1633,5,6,2,15,13575,0,0.05,'N','O','1995-12-13','1995-11-13','1996-01-04','TAKE BACK RETURN','FOB','quickly special'), +(1634,48,9,1,21,19908.84,0,0,'N','O','1996-10-04','1996-10-22','1996-11-01','NONE','MAIL','even, even deposits'), +(1634,172,3,2,44,47175.48,0.05,0.01,'N','O','1996-09-17','1996-11-09','1996-10-03','COLLECT COD','SHIP','slyly final platelets cajole s'), +(1634,19,10,3,21,19299.21,0.06,0.07,'N','O','1996-11-16','1996-10-21','1996-11-27','NONE','TRUCK','furiously even deposits affix. bo'), +(1634,68,3,4,17,16457.02,0.08,0.07,'N','O','1996-10-29','1996-10-15','1996-11-02','TAKE BACK RETURN','SHIP','special saute'), +(1634,76,7,5,2,1952.14,0.07,0.04,'N','O','1996-11-22','1996-10-28','1996-12-17','NONE','SHIP','theodolites are blithely. express ide'), +(1634,170,9,6,11,11771.87,0.01,0.08,'N','O','1996-10-04','1996-12-06','1996-10-14','DELIVER IN PERSON','SHIP','slyly blithe packa'), +(1634,13,7,7,35,31955.35,0.06,0.02,'N','O','1996-11-25','1996-11-25','1996-12-12','TAKE BACK RETURN','RAIL','quickly regular depend'), +(1635,71,1,1,3,2913.21,0.06,0.08,'N','O','1997-03-13','1997-03-25','1997-03-27','COLLECT COD','FOB','quickly even pinto b'), +(1635,90,1,2,8,7920.72,0.04,0.05,'N','O','1997-04-30','1997-04-21','1997-05-09','DELIVER IN PERSON','AIR','asymptotes cajole slyly. furiously '), +(1635,114,5,3,20,20282.2,0.07,0.01,'N','O','1997-05-19','1997-04-01','1997-06-17','TAKE BACK RETURN','FOB','silent, final packages could have to '), +(1635,77,5,4,40,39082.8,0.01,0.04,'N','O','1997-02-25','1997-03-20','1997-03-12','TAKE BACK RETURN','RAIL','furiously '), +(1636,85,6,1,2,1970.16,0.09,0.03,'N','O','1997-09-26','1997-08-22','1997-10-05','NONE','TRUCK','even, silent theodolites bo'), +(1636,169,10,2,45,48112.2,0.03,0.01,'N','O','1997-07-14','1997-08-08','1997-07-27','COLLECT COD','RAIL','accounts haggle slyly regular braids. th'), +(1636,108,1,3,24,24194.4,0.07,0.08,'N','O','1997-10-07','1997-08-12','1997-11-04','TAKE BACK RETURN','MAIL','slyly ironic requests abou'), +(1636,153,1,4,43,45285.45,0.06,0,'N','O','1997-08-23','1997-08-10','1997-09-17','NONE','REG AIR','quickly bold requests sl'), +(1636,19,6,5,22,20218.22,0.05,0.02,'N','O','1997-07-22','1997-08-18','1997-08-03','COLLECT COD','AIR','final packages boost'), +(1636,63,2,6,34,32744.04,0.1,0.01,'N','O','1997-08-11','1997-09-09','1997-08-23','NONE','TRUCK','slyly regular packages affix slyly re'), +(1636,114,1,7,7,7098.77,0.04,0,'N','O','1997-07-28','1997-09-10','1997-07-31','NONE','MAIL','bold theodolit'), +(1637,86,7,1,49,48317.92,0.02,0.03,'N','F','1995-06-08','1995-04-19','1995-07-01','COLLECT COD','REG AIR','carefully even deposits against t'), +(1637,73,2,2,1,973.07,0.1,0.02,'A','F','1995-02-14','1995-03-26','1995-03-09','TAKE BACK RETURN','AIR','carefully slow re'), +(1637,22,1,3,10,9220.2,0.02,0.05,'R','F','1995-02-21','1995-03-17','1995-03-11','NONE','AIR','daring packages snooze blithely above the '), +(1637,93,5,4,42,41709.78,0.06,0.01,'A','F','1995-03-18','1995-04-24','1995-03-31','COLLECT COD','SHIP','blithely f'), +(1637,5,8,5,25,22625,0.05,0,'R','F','1995-06-07','1995-03-26','1995-06-08','COLLECT COD','RAIL','quickly silent instructions according to '), +(1637,109,4,6,38,38345.8,0.02,0.08,'R','F','1995-03-20','1995-05-05','1995-04-14','DELIVER IN PERSON','SHIP','foxes cajole blithely b'), +(1637,52,10,7,21,19993.05,0.07,0.08,'A','F','1995-04-30','1995-04-30','1995-05-05','COLLECT COD','SHIP','accounts haggle care'), +(1638,6,7,1,46,41676,0.03,0.02,'N','O','1997-10-16','1997-10-28','1997-11-09','COLLECT COD','MAIL','carefully final excu'); +INSERT INTO lineitem VALUES +(1638,149,10,2,30,31474.2,0,0.04,'N','O','1997-12-05','1997-09-17','1997-12-06','NONE','REG AIR','regular excuses run'), +(1638,31,7,3,5,4655.15,0.08,0.07,'N','O','1997-10-15','1997-11-01','1997-11-08','DELIVER IN PERSON','FOB','fluffily silent dependencies nag blit'), +(1638,56,8,4,19,18164.95,0,0.08,'N','O','1997-10-15','1997-10-27','1997-11-03','DELIVER IN PERSON','MAIL','bold courts in'), +(1638,143,6,5,25,26078.5,0.05,0.03,'N','O','1997-10-06','1997-09-30','1997-11-02','DELIVER IN PERSON','REG AIR','theodolites haggle quickly after'), +(1638,155,10,6,46,48536.9,0.07,0.08,'N','O','1997-08-20','1997-10-10','1997-09-09','COLLECT COD','AIR','even, regular foxes snooze slyly '), +(1639,187,8,1,24,26092.32,0.07,0,'N','O','1995-08-24','1995-10-06','1995-08-31','COLLECT COD','REG AIR','carefully unusual deposits at the '), +(1639,43,6,2,38,35835.52,0.01,0.04,'N','O','1995-08-23','1995-11-09','1995-08-29','TAKE BACK RETURN','FOB','furiously pending realms haggle carefully. '), +(1639,171,10,3,41,43917.97,0.04,0.02,'N','O','1995-12-19','1995-11-11','1996-01-12','DELIVER IN PERSON','FOB','regular, ironic requests boost q'), +(1664,118,5,1,48,48869.28,0.04,0.02,'N','O','1996-06-21','1996-05-01','1996-07-19','TAKE BACK RETURN','RAIL','regular, pending pac'), +(1664,173,2,2,30,32195.1,0.06,0.05,'N','O','1996-04-04','1996-05-04','1996-05-03','COLLECT COD','FOB','silent, bold'), +(1664,151,2,3,10,10511.5,0,0.06,'N','O','1996-04-10','1996-05-13','1996-05-07','TAKE BACK RETURN','RAIL','furiously special deposits d'), +(1664,155,3,4,35,36930.25,0,0.04,'N','O','1996-03-06','1996-05-16','1996-03-09','DELIVER IN PERSON','REG AIR','never pendin'), +(1664,57,8,5,9,8613.45,0.07,0.04,'N','O','1996-04-15','1996-05-14','1996-05-11','DELIVER IN PERSON','TRUCK','thin accounts wake fluffi'), +(1664,141,8,6,40,41645.6,0.09,0.07,'N','O','1996-04-02','1996-04-22','1996-04-17','COLLECT COD','REG AIR','fluffy requests maintain carefully up '), +(1665,47,6,1,4,3788.16,0.02,0.03,'A','F','1994-09-01','1994-06-07','1994-09-12','DELIVER IN PERSON','TRUCK','even pinto beans sleep pending in'), +(1665,78,6,2,1,978.07,0.03,0.05,'R','F','1994-05-22','1994-07-06','1994-05-24','TAKE BACK RETURN','TRUCK','requests engage along the ironic'), +(1666,185,6,1,30,32555.4,0.04,0.03,'N','O','1995-10-28','1995-11-30','1995-11-18','TAKE BACK RETURN','AIR','blithely unusual requests are '), +(1666,64,1,2,20,19281.2,0.01,0,'N','O','1996-01-27','1995-12-12','1996-01-31','NONE','REG AIR','carefully final the'), +(1666,134,10,3,31,32058.03,0.05,0.07,'N','O','1996-02-11','1996-01-11','1996-02-28','COLLECT COD','RAIL','carefully regular depos'), +(1666,169,8,4,41,43835.56,0.06,0.08,'N','O','1995-11-29','1996-01-04','1995-12-24','NONE','TRUCK','ironic, regular pinto beans sleep sl'), +(1667,21,4,1,6,5526.12,0.04,0.02,'N','O','1997-12-07','1997-11-16','1998-01-02','COLLECT COD','FOB','blithely ironic requests above the deposit'), +(1667,22,1,2,29,26738.58,0.06,0.07,'N','O','1997-10-15','1997-11-09','1997-11-11','TAKE BACK RETURN','MAIL','furiously special pinto beans haggle among'), +(1667,95,8,3,48,47764.32,0.05,0.01,'N','O','1998-01-27','1998-01-06','1998-02-09','TAKE BACK RETURN','SHIP','express theodolites across the s'), +(1667,59,1,4,24,23017.2,0.04,0.01,'N','O','1997-10-14','1997-12-01','1997-11-09','TAKE BACK RETURN','MAIL','ironic accou'), +(1667,195,9,5,2,2190.38,0.07,0,'N','O','1997-12-17','1997-11-22','1998-01-16','NONE','SHIP','quickly express grouches are blit'), +(1667,48,7,6,6,5688.24,0.01,0.03,'N','O','1998-01-21','1997-12-19','1998-01-28','NONE','TRUCK','even instructions detect quick'), +(1667,40,6,7,19,17860.76,0.09,0.03,'N','O','1998-01-23','1997-11-24','1998-01-26','DELIVER IN PERSON','SHIP','evenly bold packages are furiously. '), +(1668,132,8,1,8,8257.04,0.06,0.01,'N','O','1997-07-23','1997-10-09','1997-08-06','DELIVER IN PERSON','FOB','blithely regular'), +(1668,1,8,2,25,22525,0.01,0.06,'N','O','1997-08-08','1997-09-28','1997-09-01','NONE','TRUCK','furiously final deposits doze quickl'); +INSERT INTO lineitem VALUES +(1668,75,5,3,42,40952.94,0.08,0.01,'N','O','1997-08-09','1997-09-08','1997-08-31','NONE','FOB','even pinto beans lose requests. bold, un'), +(1668,191,5,4,9,9820.71,0.05,0.03,'N','O','1997-10-17','1997-09-05','1997-11-01','COLLECT COD','RAIL','final dolphins '), +(1668,128,9,5,25,25703,0.01,0.02,'N','O','1997-10-08','1997-09-20','1997-10-11','DELIVER IN PERSON','REG AIR','blithely regular requests sleep quickly fi'), +(1668,10,3,6,38,34580.38,0.07,0.01,'N','O','1997-08-26','1997-09-17','1997-09-05','DELIVER IN PERSON','TRUCK','carefully even packag'), +(1669,79,10,1,24,23497.68,0.04,0.08,'N','O','1997-09-04','1997-07-30','1997-09-20','DELIVER IN PERSON','RAIL','slyly final requests wake furiously'), +(1670,32,3,1,41,38213.23,0.07,0.01,'N','O','1997-07-19','1997-08-20','1997-07-23','DELIVER IN PERSON','TRUCK','fluffily silent theodolites on the care'), +(1670,122,3,2,10,10221.2,0.07,0.03,'N','O','1997-09-14','1997-08-16','1997-09-23','NONE','SHIP','closely iro'), +(1670,186,7,3,41,44533.38,0.07,0.07,'N','O','1997-07-19','1997-08-05','1997-07-26','COLLECT COD','SHIP','platelets boost careful'), +(1671,149,2,1,21,22031.94,0.02,0.07,'N','O','1996-07-28','1996-09-28','1996-08-08','TAKE BACK RETURN','AIR','bold theodolites play. pinto beans '), +(1671,96,10,2,4,3984.36,0.05,0,'N','O','1996-08-30','1996-09-19','1996-09-23','DELIVER IN PERSON','TRUCK','quickly bold pinto beans poach after the'), +(1671,124,3,3,11,11265.32,0.06,0.08,'N','O','1996-09-16','1996-10-21','1996-09-18','NONE','SHIP','deposits detect '), +(1671,178,7,4,5,5390.85,0,0,'N','O','1996-11-14','1996-10-20','1996-11-25','TAKE BACK RETURN','FOB','packages sleep carefully around the blit'), +(1671,127,8,5,12,12325.44,0.07,0.04,'N','O','1996-11-17','1996-09-02','1996-12-17','COLLECT COD','RAIL','bold dolphi'), +(1671,197,9,6,46,50470.74,0.08,0.05,'N','O','1996-09-13','1996-10-14','1996-09-28','TAKE BACK RETURN','REG AIR','quickly ste'), +(1696,16,3,1,8,7328.08,0.04,0.02,'N','O','1998-04-28','1998-02-07','1998-05-10','NONE','TRUCK','furiously express foxes '), +(1696,139,5,2,13,13508.69,0.08,0.06,'N','O','1998-03-01','1998-03-25','1998-03-24','TAKE BACK RETURN','TRUCK','theodolites are blithely. packages c'), +(1696,2,5,3,19,17138,0.08,0.05,'N','O','1998-05-03','1998-03-13','1998-05-28','TAKE BACK RETURN','REG AIR','slyly special th'), +(1696,193,4,4,21,22956.99,0.05,0,'N','O','1998-05-04','1998-02-18','1998-05-07','NONE','MAIL','carefully unusual deposi'), +(1696,94,7,5,43,42745.87,0.03,0.06,'N','O','1998-02-14','1998-03-29','1998-02-20','COLLECT COD','FOB','express, s'), +(1697,75,5,1,6,5850.42,0.05,0,'N','O','1997-01-28','1996-11-27','1997-01-31','NONE','FOB','excuses use: fluffily ironic dependencie'), +(1697,104,7,2,24,24098.4,0,0.08,'N','O','1996-12-29','1996-12-19','1997-01-10','NONE','SHIP','unusual requests '), +(1697,124,9,3,27,27651.24,0.06,0,'N','O','1997-01-20','1996-12-02','1997-02-05','COLLECT COD','MAIL','ironic packages wake furiously slow account'), +(1697,94,5,4,49,48710.41,0.08,0.04,'N','O','1996-12-07','1997-01-02','1996-12-31','COLLECT COD','TRUCK','quickly final accounts boost'), +(1697,35,1,5,19,17765.57,0.03,0.07,'N','O','1997-01-08','1996-11-12','1997-01-11','DELIVER IN PERSON','FOB','blithely even instructions h'), +(1698,97,8,1,44,43871.96,0.05,0.05,'N','O','1997-05-16','1997-07-05','1997-05-27','NONE','RAIL','blithely regular acc'), +(1698,93,5,2,6,5958.54,0.08,0,'N','O','1997-08-21','1997-06-08','1997-09-03','DELIVER IN PERSON','RAIL','furiously special'), +(1698,21,6,3,22,20262.44,0.03,0.04,'N','O','1997-08-07','1997-05-28','1997-08-24','DELIVER IN PERSON','TRUCK','regular grouches sleep furiously even a'), +(1698,112,6,4,19,19230.09,0,0.07,'N','O','1997-07-04','1997-06-21','1997-08-01','NONE','RAIL','accounts haggle blithely furiously '), +(1698,53,4,5,37,35262.85,0,0.03,'N','O','1997-05-16','1997-05-29','1997-05-27','NONE','AIR','thinly special'), +(1698,166,7,6,15,15992.4,0.1,0.01,'N','O','1997-07-20','1997-06-07','1997-07-21','TAKE BACK RETURN','RAIL','furiously unusual'); +INSERT INTO lineitem VALUES +(1699,38,9,1,50,46901.5,0,0.06,'A','F','1994-03-26','1994-03-23','1994-04-20','NONE','FOB','furiously regu'), +(1699,135,6,2,17,17597.21,0.07,0.02,'R','F','1994-01-12','1994-03-12','1994-02-08','NONE','AIR','express packages cajo'), +(1700,140,1,1,38,39525.32,0.04,0.04,'N','O','1996-10-03','1996-07-27','1996-10-22','NONE','RAIL','fluffily even theodolites are blithely. '), +(1700,156,7,2,49,51751.35,0.04,0,'N','O','1996-09-26','1996-07-28','1996-10-16','NONE','TRUCK','slyly special fo'), +(1701,150,9,1,47,49357.05,0.08,0.05,'R','F','1992-05-25','1992-06-29','1992-06-15','NONE','RAIL','blithely bol'), +(1701,54,5,2,2,1908.1,0.01,0.04,'R','F','1992-06-24','1992-07-12','1992-06-29','COLLECT COD','SHIP','blithely special theodolites hagg'), +(1701,35,1,3,26,24310.78,0.1,0.06,'R','F','1992-06-04','1992-07-11','1992-07-04','DELIVER IN PERSON','FOB','blithely express packages wake '), +(1702,67,2,1,19,18374.14,0.02,0.01,'N','F','1995-06-02','1995-06-30','1995-06-29','NONE','REG AIR','even notornis dete'), +(1702,30,5,2,38,35341.14,0,0,'N','O','1995-09-01','1995-06-10','1995-09-10','DELIVER IN PERSON','REG AIR','blithely express '), +(1702,195,6,3,46,50378.74,0,0.08,'N','O','1995-07-14','1995-06-30','1995-07-20','NONE','FOB','fluffily even packages lose furiously regu'), +(1702,93,4,4,28,27806.52,0.07,0.05,'R','F','1995-06-10','1995-07-26','1995-06-16','TAKE BACK RETURN','AIR','carefully silent platelets along the final'), +(1702,89,10,5,34,33628.72,0.01,0.06,'N','O','1995-07-04','1995-06-08','1995-07-28','DELIVER IN PERSON','AIR','bold dolphins sleep furiously furi'), +(1702,42,9,6,28,26377.12,0.1,0,'N','O','1995-08-14','1995-07-31','1995-09-08','COLLECT COD','RAIL','blithely special deposits '), +(1703,166,5,1,36,38381.76,0.09,0.01,'R','F','1993-04-22','1993-03-05','1993-04-24','DELIVER IN PERSON','SHIP','slyly unusual requests again'), +(1703,137,8,2,35,36299.55,0.01,0.08,'R','F','1993-04-14','1993-03-31','1993-04-27','NONE','RAIL','even pearls '), +(1703,124,5,3,48,49157.76,0.06,0.02,'R','F','1993-02-07','1993-04-20','1993-02-24','TAKE BACK RETURN','AIR','bold requests will sleep. slyly '), +(1728,126,5,1,1,1026.12,0.07,0.04,'N','O','1996-09-16','1996-08-19','1996-09-18','COLLECT COD','FOB','ironic pinto beans wake '), +(1728,105,8,2,23,23117.3,0.05,0.02,'N','O','1996-09-08','1996-07-24','1996-09-20','NONE','FOB','blithely even ideas above the quiet instru'), +(1728,165,10,3,44,46867.04,0.08,0.07,'N','O','1996-07-31','1996-06-22','1996-08-06','COLLECT COD','FOB','furiously pending platelets thrash'), +(1728,27,8,4,34,31518.68,0.08,0.05,'N','O','1996-08-28','1996-07-20','1996-09-12','DELIVER IN PERSON','MAIL','carefully ironic pi'), +(1728,199,2,5,31,34074.89,0.09,0.02,'N','O','1996-07-26','1996-06-28','1996-08-14','NONE','REG AIR','fluffily even waters ar'), +(1729,157,8,1,12,12685.8,0.08,0.04,'A','F','1992-08-11','1992-07-24','1992-08-16','COLLECT COD','RAIL','pinto beans are even excuses. depo'), +(1730,166,5,1,41,43712.56,0.01,0.03,'N','O','1998-08-11','1998-08-29','1998-09-02','TAKE BACK RETURN','TRUCK','carefully special theodolites are furiou'), +(1730,162,3,2,15,15932.4,0.07,0.04,'N','O','1998-09-07','1998-09-12','1998-09-30','TAKE BACK RETURN','AIR','courts after the fin'), +(1730,162,1,3,9,9559.44,0.1,0,'N','O','1998-09-18','1998-09-15','1998-09-21','DELIVER IN PERSON','FOB','ideas cajole blithely bold d'), +(1730,10,7,4,40,36400.4,0.02,0.03,'N','O','1998-10-02','1998-10-06','1998-10-03','NONE','SHIP','fluffily pending'), +(1730,141,4,5,43,44769.02,0.04,0.06,'N','O','1998-10-26','1998-10-22','1998-11-02','DELIVER IN PERSON','TRUCK','slyly regular pinto beans use after the alw'), +(1731,184,5,1,36,39030.48,0.1,0,'N','O','1996-04-18','1996-04-03','1996-04-29','TAKE BACK RETURN','MAIL','furiously qui'), +(1731,139,10,2,7,7273.91,0.04,0.07,'N','O','1996-04-11','1996-02-13','1996-04-30','DELIVER IN PERSON','REG AIR','quickly regular account'), +(1731,51,9,3,50,47552.5,0.05,0.04,'N','O','1996-01-14','1996-03-13','1996-01-29','COLLECT COD','RAIL','silent requests after the furiously even in'); +INSERT INTO lineitem VALUES +(1731,196,10,4,23,25212.37,0.1,0.04,'N','O','1996-04-22','1996-02-25','1996-05-16','TAKE BACK RETURN','RAIL','quickly final accounts sleep'), +(1731,53,4,5,37,35262.85,0.1,0.05,'N','O','1996-04-30','1996-03-17','1996-05-27','TAKE BACK RETURN','RAIL','accounts afte'), +(1731,124,7,6,41,41988.92,0.03,0.08,'N','O','1996-04-05','1996-02-28','1996-05-01','TAKE BACK RETURN','RAIL','quickly pending reque'), +(1732,5,6,1,50,45250,0.02,0.01,'R','F','1993-12-05','1994-01-23','1993-12-20','TAKE BACK RETURN','FOB','bold, stealthy ideas'), +(1732,99,10,2,36,35967.24,0.01,0.03,'A','F','1994-03-15','1994-02-09','1994-04-02','DELIVER IN PERSON','TRUCK','blithely even hockey players cajole after'), +(1732,161,8,3,41,43507.56,0,0.04,'R','F','1994-02-20','1994-01-07','1994-02-27','TAKE BACK RETURN','AIR','furiously unusual theodolites i'), +(1732,152,3,4,9,9469.35,0.04,0.04,'A','F','1994-02-25','1994-01-29','1994-03-16','TAKE BACK RETURN','FOB','special, fluffy foxes are. unusual packag'), +(1732,169,8,5,25,26729,0.02,0.05,'A','F','1994-02-15','1994-01-07','1994-02-21','COLLECT COD','REG AIR','pinto bean'), +(1732,73,1,6,16,15569.12,0.01,0.05,'R','F','1994-01-07','1994-01-02','1994-01-25','COLLECT COD','SHIP','quickly silent hockey player'), +(1733,111,5,1,41,41455.51,0.08,0.01,'N','O','1996-06-13','1996-07-08','1996-07-07','TAKE BACK RETURN','AIR','careful theod'), +(1733,24,7,2,16,14784.32,0,0.04,'N','O','1996-08-28','1996-07-25','1996-09-27','COLLECT COD','MAIL','even, even packages boost. express,'), +(1733,120,10,3,29,29583.48,0.1,0.06,'N','O','1996-07-16','1996-08-08','1996-07-28','NONE','TRUCK','furiously regular requests snooze. fluffil'), +(1733,136,7,4,38,39372.94,0.01,0.03,'N','O','1996-08-26','1996-07-23','1996-08-28','NONE','FOB','carefully ironic deposits haggle pending, r'), +(1733,34,5,5,22,20548.66,0.06,0.07,'N','O','1996-07-16','1996-07-24','1996-07-30','COLLECT COD','AIR','accounts are unusual accounts. pendi'), +(1733,66,7,6,9,8694.54,0.06,0.08,'N','O','1996-05-25','1996-07-23','1996-06-10','COLLECT COD','TRUCK','furiously '), +(1733,146,9,7,13,13599.82,0.02,0.03,'N','O','1996-08-03','1996-08-02','1996-08-18','NONE','MAIL','furiously express theodolites wake'), +(1734,155,3,1,38,40095.7,0.03,0.03,'R','F','1994-08-09','1994-09-07','1994-08-12','COLLECT COD','FOB','requests abou'), +(1734,118,2,2,4,4072.44,0.06,0.03,'A','F','1994-08-20','1994-07-17','1994-08-25','DELIVER IN PERSON','AIR','slyly idle'), +(1735,156,7,1,43,45414.45,0.02,0.06,'A','F','1993-01-14','1993-03-25','1993-02-02','DELIVER IN PERSON','FOB','quickly ironic dolphi'), +(1735,139,5,2,49,50917.37,0.03,0.04,'A','F','1992-12-31','1993-02-03','1993-01-25','TAKE BACK RETURN','TRUCK','blithely st'), +(1760,96,9,1,38,37851.42,0.09,0.03,'N','O','1996-06-15','1996-06-29','1996-07-11','NONE','MAIL','carefully fi'), +(1760,8,9,2,3,2724,0,0.06,'N','O','1996-07-18','1996-07-01','1996-08-01','NONE','RAIL','slyly ironic pac'), +(1760,137,8,3,44,45633.72,0.05,0.01,'N','O','1996-06-11','1996-06-16','1996-07-02','COLLECT COD','REG AIR','ironically regular dependenc'), +(1761,52,4,1,33,31417.65,0.09,0.03,'R','F','1994-01-03','1994-01-23','1994-01-31','NONE','FOB','carefully bold dugouts need to nag car'), +(1761,52,3,2,37,35225.85,0.02,0.07,'R','F','1994-02-17','1994-03-08','1994-03-16','NONE','RAIL','even deposits use. even packages are caref'), +(1761,49,6,3,37,35114.48,0.06,0.04,'R','F','1994-01-02','1994-03-12','1994-01-25','DELIVER IN PERSON','TRUCK','ironic deposits boost fluffily blithely'), +(1761,73,1,4,49,47680.43,0.06,0.07,'R','F','1994-01-08','1994-03-03','1994-02-05','TAKE BACK RETURN','FOB','ironic excuses cajo'), +(1761,157,5,5,37,39114.55,0.03,0.04,'R','F','1994-04-24','1994-03-14','1994-04-29','TAKE BACK RETURN','MAIL','slyly final instructions affix fi'), +(1761,24,7,6,12,11088.24,0.01,0.05,'A','F','1994-04-16','1994-03-08','1994-04-21','DELIVER IN PERSON','AIR','special, ironic th'), +(1761,1,6,7,13,11713,0.03,0.08,'R','F','1994-03-06','1994-03-18','1994-03-22','DELIVER IN PERSON','TRUCK','blithely pending accounts ag'); +INSERT INTO lineitem VALUES +(1762,26,5,1,15,13890.3,0.04,0.08,'A','F','1994-12-18','1994-10-29','1995-01-17','TAKE BACK RETURN','REG AIR','unusual deposits wake'), +(1762,50,3,2,39,37051.95,0.1,0.02,'A','F','1994-09-12','1994-11-09','1994-10-08','DELIVER IN PERSON','MAIL','blithely express packages wa'), +(1762,32,8,3,7,6524.21,0.05,0.01,'R','F','1994-09-03','1994-10-02','1994-09-10','NONE','REG AIR','carefully special packages s'), +(1762,145,2,4,24,25083.36,0.03,0.03,'A','F','1994-11-30','1994-11-02','1994-12-20','NONE','REG AIR','furiously regular asymptotes according to t'), +(1762,8,9,5,49,44492,0.08,0.05,'A','F','1994-10-20','1994-11-02','1994-11-10','TAKE BACK RETURN','SHIP','evenly even pa'), +(1762,94,7,6,35,34793.15,0.05,0.05,'A','F','1994-11-25','1994-10-21','1994-11-28','COLLECT COD','AIR','bravely dogged package'), +(1762,73,3,7,47,45734.29,0.03,0.01,'A','F','1994-11-02','1994-10-07','1994-11-08','NONE','SHIP','even deposits about the slyly ir'), +(1763,12,9,1,22,20064.22,0.09,0.06,'N','O','1997-01-17','1997-01-15','1997-02-03','TAKE BACK RETURN','SHIP','regular packages sleep. final accounts s'), +(1763,157,5,2,43,45457.45,0.04,0.04,'N','O','1996-11-04','1996-12-09','1996-11-28','DELIVER IN PERSON','FOB','even, special deposits sleep furiously. dep'), +(1763,25,10,3,16,14800.32,0.06,0.02,'N','O','1996-12-12','1996-12-04','1996-12-25','DELIVER IN PERSON','RAIL','slyly special dependencies p'), +(1763,61,6,4,44,42286.64,0.04,0.05,'N','O','1996-12-04','1997-01-06','1996-12-25','DELIVER IN PERSON','REG AIR','slyly regular asymptotes'), +(1763,147,4,5,13,13612.82,0.03,0.05,'N','O','1996-11-23','1997-01-24','1996-12-05','TAKE BACK RETURN','SHIP','ironic, regular requests cajole about'), +(1763,143,4,6,3,3129.42,0.05,0.03,'N','O','1996-12-10','1996-12-06','1997-01-04','TAKE BACK RETURN','FOB','furiously pending asymptotes use furiously'), +(1763,184,5,7,2,2168.36,0.05,0.07,'N','O','1997-02-27','1996-12-04','1997-03-27','COLLECT COD','FOB','slyly unusual dep'), +(1764,121,2,1,20,20422.4,0.09,0.02,'A','F','1992-06-09','1992-05-22','1992-07-06','COLLECT COD','MAIL','blithely unusual asymptotes '), +(1764,67,4,2,3,2901.18,0.07,0.07,'R','F','1992-05-13','1992-06-07','1992-05-26','COLLECT COD','RAIL','fluffily regular requests cajole'), +(1764,78,6,3,27,26407.89,0.07,0.04,'A','F','1992-05-06','1992-05-11','1992-05-23','COLLECT COD','TRUCK','carefully e'), +(1765,161,2,1,36,38201.76,0.08,0.04,'N','O','1996-03-02','1996-02-17','1996-03-14','DELIVER IN PERSON','SHIP','furiously speci'), +(1766,87,8,1,32,31586.56,0.08,0.01,'N','O','1997-01-08','1996-11-11','1997-01-31','TAKE BACK RETURN','AIR','final, express asymptote'), +(1766,34,10,2,12,11208.36,0.05,0.01,'N','O','1996-10-28','1996-12-18','1996-11-15','DELIVER IN PERSON','AIR','slyly final accounts sleep. f'), +(1766,111,1,3,1,1011.11,0.1,0.02,'N','O','1997-01-21','1997-01-07','1997-02-19','NONE','TRUCK','blithely regular reque'), +(1767,25,4,1,32,29600.64,0.08,0.04,'A','F','1995-05-22','1995-05-14','1995-05-23','COLLECT COD','SHIP','accounts against the s'), +(1767,42,1,2,1,942.04,0.09,0.05,'N','O','1995-06-23','1995-05-25','1995-07-03','TAKE BACK RETURN','RAIL','slyly regu'), +(1767,174,5,3,24,25780.08,0.06,0.03,'R','F','1995-03-16','1995-04-29','1995-04-11','DELIVER IN PERSON','RAIL','slyly ironic account'), +(1767,23,8,4,50,46151,0.01,0.02,'R','F','1995-05-29','1995-04-14','1995-06-15','NONE','REG AIR','packages wake furiously acc'), +(1767,52,10,5,40,38082,0.06,0,'R','F','1995-04-16','1995-05-06','1995-04-21','TAKE BACK RETURN','AIR','quickly pending ideas against the thin a'), +(1792,88,9,1,9,8892.72,0.09,0.04,'R','F','1994-02-28','1993-12-11','1994-03-12','TAKE BACK RETURN','AIR','carefully final deposits use blithely alwa'), +(1792,9,6,2,5,4545,0.04,0.02,'R','F','1994-02-13','1994-01-03','1994-02-28','DELIVER IN PERSON','TRUCK','pending requests haggle furiously carefully'), +(1792,9,2,3,8,7272,0.01,0.04,'A','F','1994-02-21','1994-01-26','1994-02-27','DELIVER IN PERSON','RAIL','carefully even requests with'); +INSERT INTO lineitem VALUES +(1792,191,3,4,45,49103.55,0,0.01,'A','F','1994-02-27','1993-12-24','1994-03-07','DELIVER IN PERSON','MAIL','special, b'), +(1792,199,2,5,35,38471.65,0.06,0.05,'R','F','1994-01-31','1994-01-20','1994-02-17','NONE','FOB','ideas might cajole. requests cajol'), +(1793,48,5,1,29,27493.16,0.01,0.06,'R','F','1992-10-24','1992-09-20','1992-11-23','NONE','MAIL','final, ironic packages are furiousl'), +(1793,126,9,2,4,4104.48,0.07,0.05,'A','F','1992-07-28','1992-08-26','1992-08-21','COLLECT COD','RAIL','slyly final excuses wake. quickly ev'), +(1793,131,7,3,6,6186.78,0.01,0.05,'R','F','1992-09-21','1992-09-05','1992-10-01','DELIVER IN PERSON','REG AIR','ironic, special theodol'), +(1793,118,8,4,4,4072.44,0,0.08,'R','F','1992-09-27','1992-09-21','1992-10-07','DELIVER IN PERSON','AIR','dogged instructions integrate carefully'), +(1793,25,6,5,42,38850.84,0.03,0.03,'A','F','1992-10-13','1992-10-02','1992-11-06','NONE','RAIL','carefully expre'), +(1794,168,9,1,36,38453.76,0.09,0.08,'N','O','1997-11-07','1997-11-01','1997-11-18','TAKE BACK RETURN','FOB','pending theodolites sleep a'), +(1794,95,8,2,3,2985.27,0.02,0.03,'N','O','1997-11-15','1997-12-16','1997-11-20','DELIVER IN PERSON','FOB','final dependencies n'), +(1794,117,8,3,23,23393.53,0.08,0.04,'N','O','1997-10-13','1997-11-30','1997-10-28','TAKE BACK RETURN','AIR','blithely final foxes i'), +(1794,85,6,4,34,33492.72,0.06,0.08,'N','O','1997-09-29','1997-11-13','1997-10-07','TAKE BACK RETURN','SHIP','blithely ir'), +(1794,117,4,5,47,47804.17,0.1,0.06,'N','O','1998-01-15','1997-11-30','1998-02-14','DELIVER IN PERSON','TRUCK','carefully final deposits use '), +(1794,91,3,6,37,36670.33,0.01,0.01,'N','O','1998-01-12','1997-12-21','1998-01-17','DELIVER IN PERSON','MAIL','slyly even deposits haggle quick'), +(1795,137,8,1,44,45633.72,0.08,0.08,'A','F','1994-04-28','1994-05-24','1994-05-27','NONE','AIR','accounts sleep. carefull'), +(1795,114,5,2,34,34479.74,0.08,0,'A','F','1994-04-24','1994-06-01','1994-05-08','DELIVER IN PERSON','SHIP','bold pinto beans nag slyly even, ex'), +(1795,168,3,3,25,26704,0.07,0.01,'A','F','1994-05-18','1994-05-22','1994-05-20','TAKE BACK RETURN','RAIL','pending, bold excuses '), +(1795,125,8,4,32,32803.84,0.03,0.06,'R','F','1994-05-10','1994-04-21','1994-05-17','DELIVER IN PERSON','SHIP','ironic deposits wake fluffily. furi'), +(1795,163,8,5,11,11694.76,0.08,0.02,'R','F','1994-06-19','1994-04-24','1994-07-02','TAKE BACK RETURN','TRUCK','furiously final dependencies use fur'), +(1796,10,1,1,28,25480.28,0.08,0.04,'A','F','1992-12-01','1993-01-01','1992-12-24','DELIVER IN PERSON','FOB','final pinto be'), +(1796,185,6,2,8,8681.44,0,0.08,'R','F','1993-01-07','1993-01-04','1993-01-10','NONE','SHIP','slyly even'), +(1797,31,7,1,17,15827.51,0.01,0.02,'N','O','1996-08-06','1996-07-11','1996-08-29','NONE','TRUCK','fluffily ironic'), +(1797,145,2,2,16,16722.24,0.01,0,'N','O','1996-06-03','1996-07-21','1996-06-07','NONE','FOB','furiously regular packages'), +(1797,12,9,3,21,19152.21,0.02,0.01,'N','O','1996-08-05','1996-08-05','1996-08-06','DELIVER IN PERSON','AIR','slyly even i'), +(1798,109,10,1,43,43391.3,0.01,0.08,'N','O','1997-08-27','1997-10-23','1997-09-09','DELIVER IN PERSON','MAIL','slyly final grouches detect slyly patterns.'), +(1799,52,10,1,8,7616.4,0.04,0.08,'R','F','1994-06-14','1994-05-27','1994-06-27','TAKE BACK RETURN','MAIL','blithely pending foxes engage furiou'), +(1799,27,10,2,42,38934.84,0.02,0.02,'R','F','1994-04-05','1994-04-28','1994-04-09','DELIVER IN PERSON','FOB','furiously fi'), +(1824,120,10,1,45,45905.4,0.03,0.02,'R','F','1994-08-21','1994-06-21','1994-09-19','NONE','RAIL','slyly special package'), +(1824,69,4,2,40,38762.4,0.1,0.03,'A','F','1994-05-08','1994-07-24','1994-06-06','NONE','FOB','asymptotes play slyly carefully even ex'), +(1825,156,1,1,43,45414.45,0.05,0.05,'A','F','1994-02-18','1994-02-19','1994-03-02','TAKE BACK RETURN','RAIL','carefully regular packages mold '), +(1825,148,5,2,39,40877.46,0,0,'R','F','1994-04-01','1994-01-12','1994-04-21','DELIVER IN PERSON','REG AIR','accounts among t'); +INSERT INTO lineitem VALUES +(1825,17,4,3,7,6419.07,0.04,0.03,'A','F','1994-01-02','1994-01-30','1994-01-30','TAKE BACK RETURN','REG AIR','furiously pending accounts among th'), +(1825,121,10,4,23,23485.76,0.05,0.01,'R','F','1994-01-08','1994-02-08','1994-01-19','NONE','MAIL','regular courts against the blithely pe'), +(1825,178,9,5,33,35579.61,0.04,0.04,'A','F','1993-12-07','1994-03-01','1993-12-16','TAKE BACK RETURN','RAIL','slyly final instructions'), +(1826,27,10,1,4,3708.08,0.06,0,'R','F','1992-07-05','1992-06-12','1992-08-04','DELIVER IN PERSON','MAIL','pending account'), +(1826,68,3,2,9,8712.54,0.07,0.07,'R','F','1992-07-12','1992-07-11','1992-07-15','DELIVER IN PERSON','TRUCK','deposits haggle alongs'), +(1826,176,4,3,14,15066.38,0.05,0.01,'A','F','1992-04-28','1992-05-31','1992-05-25','COLLECT COD','TRUCK','ironic theodolites cajo'), +(1826,180,9,4,6,6481.08,0.05,0.04,'R','F','1992-06-30','1992-05-17','1992-07-30','DELIVER IN PERSON','RAIL','express ideas cajole carefully '), +(1826,135,1,5,46,47615.98,0.05,0.06,'R','F','1992-05-02','1992-06-25','1992-05-26','TAKE BACK RETURN','FOB','quickly special d'), +(1826,108,3,6,43,43348.3,0.02,0.03,'A','F','1992-07-28','1992-06-14','1992-08-03','NONE','MAIL','special, bold courts use bl'), +(1827,90,1,1,47,46534.23,0,0.01,'N','O','1996-08-01','1996-08-07','1996-08-23','TAKE BACK RETURN','RAIL','quickly regula'), +(1827,154,9,2,48,50599.2,0.03,0.05,'N','O','1996-08-28','1996-09-15','1996-09-01','COLLECT COD','RAIL','furiously silent packa'), +(1827,200,1,3,37,40707.4,0.01,0.07,'N','O','1996-07-20','1996-08-18','1996-08-08','DELIVER IN PERSON','REG AIR','blithely regular packages are slyly afte'), +(1827,127,10,4,4,4108.48,0.04,0.04,'N','O','1996-07-22','1996-09-10','1996-08-11','DELIVER IN PERSON','RAIL','express, regular instructions across the ca'), +(1827,80,10,5,24,23521.92,0,0.08,'N','O','1996-08-07','1996-09-01','1996-09-04','DELIVER IN PERSON','SHIP','always final acc'), +(1827,21,2,6,7,6447.14,0.1,0.02,'N','O','1996-08-28','1996-08-07','1996-08-31','DELIVER IN PERSON','AIR','idly unusual theodolit'), +(1827,6,7,7,38,34428,0.05,0.01,'N','O','1996-10-17','1996-08-29','1996-11-07','TAKE BACK RETURN','SHIP','furiously regular packages nag quickl'), +(1828,100,4,1,33,33003.3,0.05,0.04,'R','F','1994-06-27','1994-06-10','1994-07-24','COLLECT COD','FOB','carefully ruth'), +(1828,13,3,2,40,36520.4,0.08,0.07,'R','F','1994-05-05','1994-07-02','1994-05-19','COLLECT COD','REG AIR','quickly even platelets cajole furiously. r'), +(1828,196,7,3,11,12058.09,0.07,0.08,'R','F','1994-07-21','1994-05-28','1994-08-13','DELIVER IN PERSON','FOB','pending, special depos'), +(1828,8,3,4,45,40860,0.02,0.05,'R','F','1994-05-15','1994-05-29','1994-05-28','COLLECT COD','RAIL','quickly ironic packages haggle am'), +(1828,79,7,5,14,13706.98,0.01,0.08,'A','F','1994-05-20','1994-06-02','1994-05-25','TAKE BACK RETURN','SHIP','daringly ironic packages'), +(1829,150,7,1,12,12601.8,0.05,0.06,'A','F','1994-08-23','1994-07-13','1994-09-04','DELIVER IN PERSON','FOB','furiously sly dep'), +(1829,5,6,2,11,9955,0.04,0.05,'A','F','1994-05-18','1994-06-13','1994-06-07','COLLECT COD','MAIL','slyly pending requests are slyly after the'), +(1829,104,9,3,49,49200.9,0.09,0.08,'A','F','1994-08-26','1994-08-01','1994-09-16','NONE','TRUCK','furiously regul'), +(1829,153,4,4,14,14744.1,0.03,0.06,'A','F','1994-08-15','1994-06-08','1994-08-30','TAKE BACK RETURN','AIR','fluffily special packages al'), +(1829,166,5,5,6,6396.96,0.02,0.07,'A','F','1994-08-09','1994-08-05','1994-09-05','DELIVER IN PERSON','MAIL','furiously final pac'), +(1829,115,5,6,36,36543.96,0.09,0.04,'R','F','1994-06-10','1994-06-23','1994-06-22','NONE','FOB','unusual, stealthy platelets impress. furio'), +(1830,120,4,1,38,38764.56,0,0.07,'R','F','1995-04-20','1995-05-22','1995-04-24','TAKE BACK RETURN','TRUCK','furiously express accounts after'), +(1830,25,10,2,9,8325.18,0.05,0.07,'R','F','1995-03-09','1995-05-24','1995-03-14','NONE','SHIP','dependencies use. regular, even requests '); +INSERT INTO lineitem VALUES +(1830,82,3,3,36,35354.88,0.07,0.07,'R','F','1995-04-21','1995-04-14','1995-05-10','DELIVER IN PERSON','SHIP','carefully special t'), +(1831,136,2,1,9,9325.17,0.02,0.03,'A','F','1993-12-17','1994-01-27','1993-12-26','NONE','TRUCK','permanent, ev'), +(1831,48,9,2,9,8532.36,0.07,0.06,'R','F','1994-03-22','1994-01-07','1994-04-06','COLLECT COD','MAIL','somas print fluffily packages. ideas s'), +(1831,115,5,3,17,17256.87,0.02,0.08,'R','F','1994-01-18','1994-02-12','1994-01-30','TAKE BACK RETURN','MAIL','furiously fina'), +(1831,95,8,4,23,22887.07,0.06,0.02,'R','F','1993-12-21','1994-02-08','1994-01-04','NONE','SHIP','blithely regular accounts alongside '), +(1856,55,10,1,10,9550.5,0.05,0.07,'R','F','1992-05-11','1992-05-20','1992-06-02','TAKE BACK RETURN','FOB','slyly ironic depos'), +(1856,97,10,2,47,46863.23,0.07,0.07,'R','F','1992-03-22','1992-06-09','1992-04-17','DELIVER IN PERSON','FOB','ironic, regular requests nag slyly. fluffi'), +(1856,117,7,3,20,20342.2,0.04,0.06,'R','F','1992-05-04','1992-05-06','1992-05-11','DELIVER IN PERSON','MAIL','furiously even accounts are'), +(1856,150,1,4,22,23103.3,0.08,0.02,'A','F','1992-05-02','1992-05-26','1992-05-20','TAKE BACK RETURN','REG AIR','never unusual instruc'), +(1856,190,1,5,14,15262.66,0.01,0.01,'A','F','1992-04-14','1992-05-02','1992-05-11','COLLECT COD','SHIP','carefully bold dependencies wake bo'), +(1856,23,6,6,36,33228.72,0.03,0.05,'A','F','1992-06-19','1992-05-12','1992-06-28','TAKE BACK RETURN','TRUCK','fluffily ironic accounts cajole furious'), +(1856,130,3,7,42,43265.46,0.04,0,'R','F','1992-05-23','1992-06-06','1992-06-19','COLLECT COD','RAIL','blithely final '), +(1857,174,5,1,15,16112.55,0.1,0.03,'R','F','1993-04-05','1993-02-28','1993-04-13','COLLECT COD','RAIL','blithely special deposits are. somet'), +(1857,167,6,2,40,42686.4,0.1,0,'R','F','1993-02-15','1993-03-08','1993-02-21','NONE','AIR','express foxes sleep c'), +(1857,119,3,3,8,8152.88,0.01,0.07,'R','F','1993-01-27','1993-04-04','1993-02-20','TAKE BACK RETURN','AIR','quickly special dependencies haggle furious'), +(1857,100,3,4,41,41004.1,0.07,0.07,'A','F','1993-04-16','1993-02-16','1993-04-18','NONE','REG AIR','foxes haggle along the blit'), +(1858,14,8,1,33,30162.33,0.01,0.02,'N','O','1997-12-28','1998-02-03','1998-01-13','NONE','RAIL','quickly express package'), +(1859,75,6,1,18,17551.26,0.1,0,'N','O','1997-08-08','1997-06-30','1997-08-26','TAKE BACK RETURN','SHIP','final, even accounts are carefu'), +(1859,188,9,2,36,39174.48,0.02,0.01,'N','O','1997-05-05','1997-07-08','1997-05-25','TAKE BACK RETURN','REG AIR','slyly expr'), +(1859,158,10,3,5,5290.75,0.06,0.03,'N','O','1997-06-20','1997-05-20','1997-07-19','TAKE BACK RETURN','AIR','slyly final deposi'), +(1859,191,2,4,21,22914.99,0,0.03,'N','O','1997-08-06','1997-05-29','1997-08-26','TAKE BACK RETURN','REG AIR','even, pendi'), +(1859,46,3,5,11,10406.44,0.06,0.06,'N','O','1997-07-15','1997-06-05','1997-07-29','TAKE BACK RETURN','SHIP','slyly regular packages'), +(1859,105,8,6,12,12061.2,0.08,0.03,'N','O','1997-05-22','1997-06-08','1997-06-07','COLLECT COD','TRUCK','furiously even requests cajole slyly. furio'), +(1860,113,4,1,9,9117.99,0.04,0.04,'N','O','1996-08-03','1996-05-31','1996-08-04','DELIVER IN PERSON','TRUCK','regular multi'), +(1861,68,5,1,7,6776.42,0.08,0.05,'A','F','1994-01-14','1994-04-03','1994-01-16','COLLECT COD','RAIL','even, even p'), +(1861,27,8,2,31,28737.62,0.1,0.05,'R','F','1994-01-29','1994-03-07','1994-02-15','TAKE BACK RETURN','RAIL','carefully '), +(1861,24,9,3,23,21252.46,0,0.08,'A','F','1994-04-09','1994-03-04','1994-04-11','DELIVER IN PERSON','MAIL','blithely sp'), +(1861,116,6,4,38,38612.18,0.1,0.05,'R','F','1994-02-26','1994-02-05','1994-03-01','NONE','RAIL','slyly regular p'), +(1861,16,3,5,2,1832.02,0.03,0.08,'R','F','1994-04-26','1994-03-15','1994-05-15','TAKE BACK RETURN','MAIL','blithely ironic platelets are caref'), +(1862,30,5,1,41,38131.23,0.1,0,'N','O','1998-06-05','1998-05-17','1998-07-04','COLLECT COD','FOB','blithely regular pinto beans integrate c'); +INSERT INTO lineitem VALUES +(1862,166,7,2,37,39447.92,0.06,0.02,'N','O','1998-04-15','1998-05-15','1998-05-14','TAKE BACK RETURN','MAIL','even theodolites s'), +(1862,104,1,3,26,26106.6,0.02,0.01,'N','O','1998-03-25','1998-05-17','1998-04-17','TAKE BACK RETURN','TRUCK','furiously regular requests '), +(1863,63,2,1,48,46226.88,0.09,0.04,'A','F','1993-10-10','1993-12-09','1993-10-19','NONE','FOB','blithely bold requests ha'), +(1863,157,2,2,48,50743.2,0.04,0.08,'A','F','1993-11-08','1993-11-05','1993-12-08','COLLECT COD','AIR','accounts alongside of the depo'), +(1888,98,10,1,27,26948.43,0.03,0.06,'R','F','1994-02-13','1994-01-16','1994-02-25','NONE','REG AIR','pending, unu'), +(1888,74,5,2,38,37014.66,0.03,0.03,'R','F','1993-11-29','1994-01-16','1993-12-08','TAKE BACK RETURN','TRUCK','deposits are furiously slow '), +(1888,80,1,3,49,48023.92,0.07,0.05,'A','F','1994-02-27','1994-01-14','1994-03-28','DELIVER IN PERSON','FOB','regular foxes against the'), +(1888,19,10,4,9,8271.09,0.01,0.04,'A','F','1994-02-09','1994-01-22','1994-02-19','NONE','AIR','carefully silent acc'), +(1888,160,1,5,4,4240.64,0.03,0.06,'R','F','1993-12-28','1993-12-19','1994-01-11','COLLECT COD','FOB','furiously ironic'), +(1888,53,8,6,48,45746.4,0.08,0.08,'R','F','1994-02-28','1993-12-16','1994-03-15','COLLECT COD','TRUCK','bold ideas run fluf'), +(1888,167,6,7,50,53358,0.04,0.07,'R','F','1993-12-22','1994-01-10','1994-01-06','DELIVER IN PERSON','FOB','carefully express theodolites wake flu'), +(1889,152,4,1,41,43138.15,0.1,0.02,'N','O','1997-06-15','1997-05-10','1997-07-08','NONE','AIR','furiously regular a'), +(1889,172,3,2,13,13938.21,0.05,0,'N','O','1997-06-12','1997-04-28','1997-06-23','NONE','REG AIR','ironic, pendi'), +(1889,138,9,3,36,37372.68,0.05,0.07,'N','O','1997-05-19','1997-06-14','1997-05-23','NONE','SHIP','ironic pinto beans shall cajole carefull'), +(1889,168,5,4,5,5340.8,0.02,0.07,'N','O','1997-06-26','1997-06-09','1997-07-21','COLLECT COD','AIR','quickly idle instructions are carefully a'), +(1890,141,8,1,26,27069.64,0.03,0.07,'N','O','1997-04-02','1997-03-13','1997-04-22','DELIVER IN PERSON','FOB','unusual requests run into t'), +(1890,100,1,2,43,43004.3,0.07,0.03,'N','O','1996-12-30','1997-01-31','1997-01-19','DELIVER IN PERSON','FOB','busily unusual deposits haggle'), +(1890,59,1,3,24,23017.2,0.06,0.04,'N','O','1997-02-09','1997-02-10','1997-02-12','COLLECT COD','MAIL','instructions wake furiously blithely '), +(1890,68,9,4,43,41626.58,0.09,0.04,'N','O','1997-04-08','1997-02-19','1997-04-30','TAKE BACK RETURN','FOB','carefully special r'), +(1890,122,3,5,45,45995.4,0.08,0.05,'N','O','1997-04-15','1997-03-16','1997-04-19','COLLECT COD','FOB','ruthless patterns haggle! ca'), +(1890,181,2,6,16,17298.88,0.08,0.02,'N','O','1997-02-13','1997-02-18','1997-03-12','TAKE BACK RETURN','TRUCK','furiously ironic excuses '), +(1890,121,4,7,10,10211.2,0.01,0.04,'N','O','1996-12-24','1997-02-19','1997-01-01','DELIVER IN PERSON','AIR','even, silent '), +(1891,77,8,1,45,43968.15,0.07,0.04,'A','F','1994-12-20','1995-01-16','1995-01-05','NONE','RAIL','pending asymptot'), +(1891,184,5,2,18,19515.24,0.06,0,'A','F','1995-01-24','1995-01-29','1995-02-14','NONE','RAIL','ironic pinto beans alon'), +(1891,198,9,3,15,16472.85,0.03,0,'R','F','1995-03-11','1995-03-05','1995-03-18','TAKE BACK RETURN','MAIL','boldly fluffy instructions eat car'), +(1892,113,7,1,48,48629.28,0.02,0.01,'A','F','1994-06-16','1994-06-16','1994-06-28','NONE','RAIL','final account'), +(1892,43,2,2,35,33006.4,0.04,0.08,'R','F','1994-04-05','1994-05-09','1994-05-03','NONE','MAIL','carefully pendi'), +(1892,134,5,3,37,38262.81,0.1,0.03,'R','F','1994-04-11','1994-06-04','1994-04-24','TAKE BACK RETURN','SHIP','slyly express requests run '), +(1892,197,9,4,14,15360.66,0.06,0.07,'R','F','1994-04-08','1994-06-12','1994-04-27','DELIVER IN PERSON','FOB','packages wake. silent requests wake. regula'), +(1893,99,1,1,43,42960.87,0.1,0,'N','O','1998-01-25','1998-01-06','1998-02-14','COLLECT COD','SHIP','regular, regular requests'); +INSERT INTO lineitem VALUES +(1893,148,9,2,49,51358.86,0.03,0.05,'N','O','1998-01-19','1998-01-28','1998-02-02','TAKE BACK RETURN','FOB','ironic accounts was among the bl'), +(1893,45,6,3,3,2835.12,0.03,0.02,'N','O','1998-02-10','1998-01-18','1998-02-25','DELIVER IN PERSON','MAIL','slyly ironic ideas '), +(1893,101,6,4,18,18019.8,0.07,0.06,'N','O','1998-01-24','1998-01-12','1998-02-13','TAKE BACK RETURN','RAIL','furiously silent requests cajole. furiousl'), +(1893,53,4,5,6,5718.3,0.1,0.02,'N','O','1998-01-23','1997-12-22','1998-02-09','DELIVER IN PERSON','TRUCK','ironic deposits '), +(1894,169,10,1,40,42766.4,0.03,0.07,'R','F','1992-06-07','1992-05-11','1992-07-01','DELIVER IN PERSON','FOB','regular packages alongside of t'), +(1895,161,6,1,43,45629.88,0.09,0.07,'R','F','1994-07-26','1994-07-19','1994-08-11','NONE','AIR','carefully ironic re'), +(1920,96,7,1,24,23906.16,0.04,0.05,'N','O','1998-09-27','1998-08-23','1998-10-15','DELIVER IN PERSON','AIR','slyly ironic p'), +(1920,51,6,2,31,29482.55,0.05,0.06,'N','O','1998-08-01','1998-08-30','1998-08-17','COLLECT COD','SHIP','ironic requests at the c'), +(1920,18,2,3,6,5508.06,0.01,0.05,'N','O','1998-10-01','1998-08-20','1998-10-24','COLLECT COD','SHIP','slyly express deposits ki'), +(1920,84,5,4,50,49204,0.09,0.06,'N','O','1998-10-03','1998-08-04','1998-10-29','DELIVER IN PERSON','MAIL','busy deposits use theodolites. carefully ex'), +(1920,34,10,5,14,13076.42,0.08,0.05,'N','O','1998-10-22','1998-08-10','1998-10-27','DELIVER IN PERSON','AIR','foxes across the slyly p'), +(1921,21,10,1,9,8289.18,0.08,0,'R','F','1994-02-01','1994-03-20','1994-03-01','DELIVER IN PERSON','FOB','fluffily ironi'), +(1921,140,6,2,21,21842.94,0.02,0.06,'R','F','1994-02-08','1994-03-28','1994-02-15','COLLECT COD','FOB','furiously s'), +(1921,71,2,3,27,26218.89,0,0.04,'A','F','1994-04-26','1994-04-07','1994-04-30','TAKE BACK RETURN','FOB','slyly regular frets boos'), +(1922,10,5,1,13,11830.13,0.05,0.03,'N','O','1996-10-24','1996-09-21','1996-11-15','NONE','SHIP','excuses haggle idl'), +(1923,37,8,1,9,8433.27,0.01,0.08,'N','O','1997-08-29','1997-09-13','1997-09-07','NONE','FOB','packages solve after the '), +(1923,178,8,2,23,24797.91,0.07,0.05,'N','O','1997-09-08','1997-08-11','1997-09-14','TAKE BACK RETURN','MAIL','regular deposits sleep '), +(1923,180,1,3,11,11881.98,0.03,0.03,'N','O','1997-07-12','1997-09-04','1997-08-01','TAKE BACK RETURN','REG AIR','even, final packages wake theodolites. sl'), +(1923,193,5,4,49,53566.31,0.06,0.05,'N','O','1997-07-21','1997-08-08','1997-07-26','NONE','AIR','slyly express pinto beans cajo'), +(1923,184,5,5,25,27104.5,0.1,0.08,'N','O','1997-08-18','1997-08-20','1997-09-12','DELIVER IN PERSON','TRUCK','furiously even depo'), +(1923,37,3,6,50,46851.5,0.03,0.03,'N','O','1997-11-04','1997-08-08','1997-11-25','NONE','TRUCK','bold dolphins use fl'), +(1924,73,1,1,7,6811.49,0.06,0.07,'N','O','1997-01-01','1996-12-02','1997-01-08','COLLECT COD','SHIP','carefully express dependencies u'), +(1924,18,8,2,47,43146.47,0.02,0.06,'N','O','1996-11-24','1996-10-18','1996-12-13','COLLECT COD','REG AIR','slyly pending ideas sleep furiously final, '), +(1924,57,8,3,40,38282,0.04,0.08,'N','O','1996-10-31','1996-11-30','1996-11-21','NONE','REG AIR','stealthily unusual packag'), +(1924,34,5,4,31,28954.93,0.03,0.03,'N','O','1996-09-20','1996-10-19','1996-10-19','DELIVER IN PERSON','SHIP','final packages hag'), +(1924,36,7,5,17,15912.51,0.04,0.05,'N','O','1996-12-31','1996-11-12','1997-01-25','COLLECT COD','TRUCK','final, pending deposits s'), +(1924,76,4,6,15,14641.05,0.02,0.04,'N','O','1997-01-04','1996-11-13','1997-01-27','NONE','SHIP','carefully regular asymptotes '), +(1924,40,1,7,21,19740.84,0.09,0.03,'N','O','1996-09-21','1996-11-12','1996-10-02','TAKE BACK RETURN','AIR','final gifts among the quic'), +(1925,184,5,1,50,54209,0.01,0.02,'R','F','1992-04-12','1992-04-23','1992-05-08','TAKE BACK RETURN','TRUCK','carefully express r'), +(1925,135,1,2,35,36229.55,0.06,0.06,'R','F','1992-05-11','1992-04-10','1992-05-14','TAKE BACK RETURN','AIR','carefully bold dolphins boost carefu'); +INSERT INTO lineitem VALUES +(1925,116,10,3,40,40644.4,0.08,0.08,'A','F','1992-05-17','1992-05-20','1992-06-08','TAKE BACK RETURN','AIR','final, express excuses against the unusu'), +(1925,30,5,4,17,15810.51,0.06,0.02,'R','F','1992-05-18','1992-04-06','1992-06-16','TAKE BACK RETURN','MAIL','final packages'), +(1926,51,9,1,24,22825.2,0.06,0.05,'N','O','1996-05-04','1996-03-14','1996-06-01','DELIVER IN PERSON','RAIL','express depos'), +(1926,106,9,2,29,29176.9,0.09,0.08,'N','O','1996-02-26','1996-03-14','1996-03-14','TAKE BACK RETURN','TRUCK','even deposits by the ironic requests are to'), +(1926,178,6,3,10,10781.7,0.02,0.03,'N','O','1996-05-23','1996-03-02','1996-06-04','NONE','AIR','furiously iro'), +(1926,68,9,4,13,12584.78,0.04,0.02,'N','O','1996-04-26','1996-04-13','1996-05-08','DELIVER IN PERSON','MAIL','blithely final tithes are '), +(1926,40,1,5,29,27261.16,0.06,0,'N','O','1996-02-29','1996-03-13','1996-03-24','DELIVER IN PERSON','MAIL','blithely regular instructions se'), +(1927,68,5,1,3,2904.18,0,0.05,'N','O','1995-10-06','1995-12-08','1995-11-05','COLLECT COD','FOB','bold pinto beans nag slyly unusua'), +(1927,73,2,2,15,14596.05,0.08,0.08,'N','O','1995-12-25','1995-12-26','1995-12-31','COLLECT COD','RAIL','ironic, ruthless de'), +(1927,65,10,3,6,5790.36,0.05,0.05,'N','O','1995-11-29','1995-11-20','1995-12-08','TAKE BACK RETURN','TRUCK','ironic deposits int'), +(1952,53,8,1,7,6671.35,0.04,0.05,'A','F','1994-05-06','1994-06-11','1994-05-12','NONE','RAIL','pending theodolites among the quickly iron'), +(1952,142,5,2,6,6252.84,0.06,0.05,'A','F','1994-05-09','1994-05-21','1994-05-26','DELIVER IN PERSON','AIR','quickly reg'), +(1953,128,1,1,25,25703,0.07,0.06,'A','F','1994-01-07','1994-01-28','1994-01-29','TAKE BACK RETURN','RAIL','express dolphins affix. even, even excuses '), +(1953,14,5,2,35,31990.35,0.06,0.06,'R','F','1994-02-03','1994-02-25','1994-02-14','DELIVER IN PERSON','FOB','blithe, ironic deposits'), +(1954,152,7,1,31,32616.65,0.06,0.06,'N','O','1997-08-18','1997-07-07','1997-09-03','DELIVER IN PERSON','RAIL','quickly special pa'), +(1954,182,3,2,1,1082.18,0.03,0.01,'N','O','1997-09-16','1997-07-08','1997-10-07','COLLECT COD','MAIL','regular, even accounts haggl'), +(1954,199,2,3,11,12091.09,0.07,0.07,'N','O','1997-08-07','1997-07-23','1997-08-25','DELIVER IN PERSON','TRUCK','slyly final excuses above the quickly'), +(1954,159,4,4,12,12709.8,0.02,0.08,'N','O','1997-07-19','1997-07-04','1997-08-06','COLLECT COD','AIR','blithely regular instructions are carefu'), +(1954,170,7,5,29,31034.93,0.08,0.08,'N','O','1997-08-25','1997-07-15','1997-09-02','DELIVER IN PERSON','RAIL','quickly express deposits cajole bl'), +(1954,177,8,6,13,14003.21,0,0.07,'N','O','1997-06-15','1997-08-22','1997-06-20','TAKE BACK RETURN','MAIL','quickly fluffy pinto beans again'), +(1954,194,5,7,49,53615.31,0.05,0.06,'N','O','1997-06-04','1997-08-29','1997-06-14','COLLECT COD','TRUCK','quickly final pla'), +(1955,137,3,1,32,33188.16,0.02,0.02,'A','F','1992-07-05','1992-06-29','1992-08-03','TAKE BACK RETURN','TRUCK','packages nag c'), +(1955,18,8,2,2,1836.02,0.03,0.01,'R','F','1992-07-06','1992-07-06','1992-08-01','COLLECT COD','TRUCK','bold excuses cajo'), +(1955,158,6,3,41,43384.15,0.08,0.06,'A','F','1992-08-01','1992-06-04','1992-08-07','COLLECT COD','AIR','pending waters cajole against the i'), +(1955,9,4,4,16,14544,0.03,0.07,'A','F','1992-04-30','1992-06-23','1992-05-23','TAKE BACK RETURN','FOB','final packages cajole slyly re'), +(1955,159,10,5,11,11650.65,0.09,0.01,'A','F','1992-06-03','1992-07-04','1992-06-07','NONE','REG AIR','bold deposits sleep '), +(1956,177,8,1,8,8617.36,0.02,0.04,'A','F','1992-12-25','1992-11-24','1993-01-12','TAKE BACK RETURN','AIR','ironic accounts haggle furiously r'), +(1956,103,6,2,16,16049.6,0,0.05,'R','F','1992-11-11','1992-11-11','1992-11-30','NONE','FOB','furiously even waters'), +(1956,139,5,3,39,40526.07,0.08,0.02,'A','F','1992-09-24','1992-11-26','1992-10-15','DELIVER IN PERSON','REG AIR','bold ideas wake carefully bold theodolite'); +INSERT INTO lineitem VALUES +(1956,29,10,4,11,10219.22,0.1,0,'A','F','1992-12-19','1992-10-29','1993-01-07','TAKE BACK RETURN','AIR','regular, regular idea'), +(1956,155,10,5,16,16882.4,0.08,0.02,'R','F','1992-09-28','1992-10-21','1992-09-30','TAKE BACK RETURN','FOB','express, ironic platelets accordi'), +(1957,79,9,1,50,48953.5,0.09,0.05,'N','O','1998-08-08','1998-09-28','1998-08-27','COLLECT COD','FOB','slyly special instructions are blithe'), +(1957,119,3,2,31,31592.41,0.1,0.08,'N','O','1998-08-13','1998-08-31','1998-08-16','NONE','REG AIR','regular frets haggle iro'), +(1958,73,2,1,9,8757.63,0.01,0.05,'N','O','1995-12-08','1995-12-17','1995-12-18','DELIVER IN PERSON','REG AIR','pending instru'), +(1958,176,7,2,29,31208.93,0.05,0.06,'N','O','1996-01-19','1995-12-05','1996-02-14','COLLECT COD','SHIP','blithely pending packages across the even '), +(1958,102,3,3,4,4008.4,0.04,0.02,'N','O','1995-10-24','1995-12-09','1995-10-28','DELIVER IN PERSON','AIR','blithely special '), +(1958,83,4,4,38,37357.04,0.09,0.07,'N','O','1995-10-09','1995-11-26','1995-11-05','COLLECT COD','TRUCK','furiously express'), +(1958,101,8,5,31,31034.1,0.08,0.01,'N','O','1995-10-31','1995-11-12','1995-11-07','TAKE BACK RETURN','TRUCK','even asymptotes nod fluf'), +(1958,17,4,6,44,40348.44,0.08,0.04,'N','O','1995-12-17','1995-11-30','1996-01-15','TAKE BACK RETURN','RAIL','final, bold attainments'), +(1958,39,5,7,29,27231.87,0.02,0.05,'N','O','1995-10-14','1995-11-06','1995-11-01','NONE','REG AIR','slyly regular requests sleep '), +(1959,169,10,1,46,49181.36,0.04,0,'N','O','1997-05-05','1997-03-03','1997-05-24','TAKE BACK RETURN','AIR','carefully regular foxes across the quickly '), +(1959,120,7,2,15,15301.8,0.08,0.07,'N','O','1997-01-20','1997-02-18','1997-02-08','DELIVER IN PERSON','MAIL','furiously unusual ideas wake blithely.'), +(1984,53,5,1,45,42887.25,0.03,0.04,'N','O','1998-04-09','1998-06-11','1998-05-01','COLLECT COD','AIR','ironically final foxes use '), +(1984,70,7,2,35,33952.45,0.01,0.07,'N','O','1998-05-18','1998-05-04','1998-06-01','COLLECT COD','RAIL','carefully daring packa'), +(1985,28,1,1,33,30624.66,0.1,0.03,'R','F','1994-12-04','1994-11-01','1994-12-05','DELIVER IN PERSON','FOB','even, even deposits nag blithely ac'), +(1985,21,6,2,50,46051,0.04,0.02,'R','F','1994-09-30','1994-10-18','1994-10-12','COLLECT COD','AIR','doggedly final instructions haggle'), +(1985,134,10,3,20,20682.6,0.07,0.03,'R','F','1994-10-29','1994-11-12','1994-11-27','NONE','TRUCK','blithely final deposit'), +(1985,199,10,4,30,32975.7,0.05,0.07,'R','F','1994-09-06','1994-10-10','1994-09-26','NONE','RAIL','slyly pendi'), +(1985,124,9,5,42,43013.04,0.05,0.05,'R','F','1994-10-25','1994-11-03','1994-11-19','DELIVER IN PERSON','SHIP','quickly spec'), +(1985,20,7,6,2,1840.04,0.02,0,'A','F','1994-11-25','1994-10-09','1994-12-25','TAKE BACK RETURN','FOB','quickly re'), +(1986,92,3,1,12,11905.08,0.06,0.05,'A','F','1994-08-17','1994-06-28','1994-09-02','COLLECT COD','RAIL','quickly regular cou'), +(1986,105,8,2,10,10051,0.1,0.03,'R','F','1994-05-14','1994-06-21','1994-06-02','COLLECT COD','REG AIR','special, express accounts according to th'), +(1986,63,2,3,14,13482.84,0.04,0.02,'R','F','1994-07-14','1994-06-19','1994-08-08','NONE','SHIP','bold, pending foxes '), +(1987,16,6,1,7,6412.07,0.03,0.03,'A','F','1994-07-30','1994-07-06','1994-08-29','NONE','REG AIR','express, special packa'), +(1988,72,1,1,36,34994.52,0.09,0.04,'N','O','1996-01-21','1995-11-24','1996-01-27','NONE','RAIL','special, final deposits along the blit'), +(1988,199,3,2,19,20884.61,0.08,0.08,'N','O','1996-02-03','1995-12-10','1996-02-14','COLLECT COD','FOB','furiously regular requests cajole. sometim'), +(1988,54,6,3,8,7632.4,0.06,0.01,'N','O','1995-10-20','1995-11-11','1995-11-18','DELIVER IN PERSON','AIR','special requests cajole sly'), +(1988,36,2,4,27,25272.81,0.08,0,'N','O','1996-01-27','1995-12-24','1996-02-24','TAKE BACK RETURN','TRUCK','blithely bold requests gr'), +(1988,79,8,5,26,25455.82,0.08,0.04,'N','O','1996-01-25','1995-12-15','1996-01-26','COLLECT COD','SHIP','bold packages are alon'); +INSERT INTO lineitem VALUES +(1988,86,7,6,9,8874.72,0.08,0.03,'N','O','1995-12-26','1996-01-02','1996-01-25','DELIVER IN PERSON','MAIL','slyly final foxes wake quickly. car'), +(1989,10,7,1,47,42770.47,0.1,0.02,'R','F','1994-06-21','1994-05-27','1994-06-22','TAKE BACK RETURN','REG AIR','fluffily regular foxes thrash furiously ex'), +(1990,101,2,1,46,46050.6,0.01,0.07,'R','F','1994-12-29','1995-03-14','1995-01-13','NONE','TRUCK','final accounts haggle above the fin'), +(1991,110,3,1,39,39394.29,0.06,0.02,'A','F','1993-01-01','1992-11-29','1993-01-10','TAKE BACK RETURN','TRUCK','blithely express requ'), +(1991,53,1,2,49,46699.45,0.08,0.06,'R','F','1992-10-19','1992-11-29','1992-10-25','NONE','SHIP','platelets boost alway'), +(1991,174,5,3,6,6445.02,0.02,0.01,'A','F','1992-11-02','1992-10-08','1992-11-14','TAKE BACK RETURN','REG AIR','slyly even packages cajole sly'), +(1991,138,9,4,6,6228.78,0.1,0.06,'A','F','1992-11-21','1992-11-03','1992-11-27','NONE','RAIL','express, even requests thrash alongside o'), +(1991,60,8,5,49,47042.94,0.06,0,'R','F','1992-09-10','1992-11-30','1992-10-07','NONE','AIR','carefully final '), +(2016,147,4,1,2,2094.28,0.02,0.07,'N','O','1996-10-12','1996-11-09','1996-10-31','DELIVER IN PERSON','TRUCK','regular accounts cajole '), +(2016,63,8,2,15,14445.9,0.04,0.05,'N','O','1996-09-24','1996-10-05','1996-10-21','TAKE BACK RETURN','MAIL','carefully express deposits wake slyly acro'), +(2016,122,7,3,8,8176.96,0.09,0.02,'N','O','1996-09-19','1996-10-21','1996-10-13','TAKE BACK RETURN','SHIP','regular, final dolphins are ruthles'), +(2017,103,4,1,49,49151.9,0.1,0.06,'N','O','1998-05-26','1998-07-01','1998-06-06','COLLECT COD','TRUCK','stealthily regular accounts promis'), +(2017,71,2,2,14,13594.98,0.07,0.04,'N','O','1998-06-28','1998-06-15','1998-07-11','NONE','TRUCK','final excuses about the ironic, regular'), +(2017,84,5,3,11,10824.88,0.05,0.02,'N','O','1998-05-22','1998-07-13','1998-05-26','TAKE BACK RETURN','TRUCK','final theodolites ought to use carefully '), +(2018,195,6,1,2,2190.38,0.02,0.07,'N','O','1995-06-25','1995-06-20','1995-07-04','NONE','TRUCK','blithely even a'), +(2018,129,10,2,23,23669.76,0.05,0.01,'R','F','1995-05-05','1995-05-12','1995-05-22','TAKE BACK RETURN','RAIL','unusual instr'), +(2019,4,9,1,31,28024,0.07,0.03,'R','F','1992-11-18','1992-12-26','1992-11-24','DELIVER IN PERSON','FOB','slyly express ideas use'), +(2019,52,7,2,18,17136.9,0.04,0.03,'R','F','1993-01-24','1992-12-22','1993-02-02','NONE','MAIL','quickly unusu'), +(2020,34,10,1,50,46701.5,0.06,0.01,'R','F','1993-07-12','1993-08-28','1993-08-02','COLLECT COD','TRUCK','express, ruthless i'), +(2020,176,4,2,40,43046.8,0.09,0,'A','F','1993-10-17','1993-09-14','1993-10-29','TAKE BACK RETURN','RAIL','slyly special platelets wake '), +(2020,14,4,3,30,27420.3,0.07,0.04,'A','F','1993-09-08','1993-08-11','1993-09-29','TAKE BACK RETURN','AIR','blithely even packages sleep carefully.'), +(2020,61,8,4,27,25948.62,0.05,0.06,'A','F','1993-07-14','1993-09-02','1993-08-03','NONE','FOB','furiously regular deposits belie'), +(2021,85,6,1,7,6895.56,0.08,0.04,'N','O','1995-10-17','1995-09-29','1995-10-20','NONE','MAIL','regular, special requests nag qui'), +(2021,166,3,2,19,20257.04,0.04,0.05,'N','O','1995-08-14','1995-09-05','1995-08-23','NONE','RAIL','final, final deposits ha'), +(2022,169,8,1,38,40628.08,0,0.08,'R','F','1992-07-05','1992-04-20','1992-07-13','TAKE BACK RETURN','REG AIR','carefully final packages breach. blit'), +(2022,55,3,2,38,36291.9,0.05,0.04,'R','F','1992-06-17','1992-05-15','1992-06-28','COLLECT COD','SHIP','silent, ironic instructions run'), +(2022,49,10,3,48,45553.92,0.1,0.02,'A','F','1992-06-14','1992-06-04','1992-07-12','DELIVER IN PERSON','SHIP','unusual accounts dazzle qui'), +(2022,182,3,4,16,17314.88,0.05,0.03,'R','F','1992-06-23','1992-05-22','1992-07-07','NONE','TRUCK','quickly ironic pinto bea'), +(2022,100,1,5,36,36003.6,0.05,0.02,'R','F','1992-03-24','1992-05-07','1992-04-13','NONE','MAIL','never even dep'); +INSERT INTO lineitem VALUES +(2022,129,2,6,20,20582.4,0.08,0.08,'A','F','1992-03-31','1992-04-17','1992-04-02','NONE','SHIP','packages across the ironic, pendin'), +(2022,78,9,7,13,12714.91,0.06,0.08,'R','F','1992-04-04','1992-05-30','1992-04-21','NONE','FOB','regular platelets use. fur'), +(2023,127,10,1,9,9244.08,0.05,0.04,'R','F','1992-06-04','1992-06-30','1992-06-10','NONE','AIR','blithely slo'), +(2023,38,4,2,2,1876.06,0.01,0,'R','F','1992-08-27','1992-07-16','1992-08-29','DELIVER IN PERSON','RAIL','slyly bold instructions unwin'), +(2023,19,6,3,25,22975.25,0.1,0.03,'A','F','1992-07-19','1992-07-07','1992-08-15','NONE','REG AIR','blithely ironic d'), +(2023,185,6,4,9,9766.62,0.02,0,'A','F','1992-07-23','1992-07-04','1992-08-20','TAKE BACK RETURN','AIR','fluffily specia'), +(2023,20,10,5,22,20240.44,0.04,0.06,'A','F','1992-06-15','1992-07-13','1992-06-21','TAKE BACK RETURN','SHIP','furiously express packages about the pend'), +(2023,43,2,6,29,27348.16,0.02,0.06,'A','F','1992-08-29','1992-07-28','1992-09-18','COLLECT COD','RAIL','final dolphins detect '), +(2023,134,10,7,50,51706.5,0,0.03,'R','F','1992-06-20','1992-07-04','1992-06-23','DELIVER IN PERSON','FOB','evenly final ideas haggle '), +(2048,35,1,1,7,6545.21,0.06,0.01,'R','F','1993-12-07','1994-01-31','1994-01-05','TAKE BACK RETURN','REG AIR','quickly un'), +(2048,8,5,2,5,4540,0.04,0.04,'A','F','1994-01-18','1994-02-01','1994-01-29','TAKE BACK RETURN','TRUCK','regular requests affix'), +(2048,101,2,3,12,12013.2,0.01,0.05,'R','F','1994-01-28','1994-01-19','1994-02-08','NONE','AIR','ironic theodolites hagg'), +(2048,97,1,4,11,10967.99,0.1,0.03,'R','F','1993-12-20','1994-01-19','1994-01-04','TAKE BACK RETURN','MAIL','final deposits sleep f'), +(2049,189,10,1,25,27229.5,0.08,0,'N','O','1996-03-31','1996-02-29','1996-04-15','DELIVER IN PERSON','MAIL','blithely unusual d'), +(2049,35,1,2,31,28985.93,0.1,0.05,'N','O','1995-12-25','1996-02-25','1995-12-29','TAKE BACK RETURN','MAIL','carefully pen'), +(2049,67,6,3,18,17407.08,0.05,0.05,'N','O','1996-01-09','1996-01-22','1996-01-25','TAKE BACK RETURN','AIR','regular pac'), +(2049,6,7,4,39,35334,0.02,0.05,'N','O','1996-01-17','1996-01-21','1996-02-03','TAKE BACK RETURN','MAIL','slyly enticing excuses use furiously abov'), +(2049,126,1,5,30,30783.6,0.04,0.06,'N','O','1995-12-16','1996-02-04','1995-12-22','NONE','TRUCK','final, regular pack'), +(2049,84,5,6,17,16729.36,0.07,0,'N','O','1996-02-04','1996-03-01','1996-02-24','NONE','FOB','idly special accou'), +(2050,73,2,1,47,45734.29,0.05,0.03,'A','F','1994-08-25','1994-07-18','1994-09-15','DELIVER IN PERSON','TRUCK','furiously busy '), +(2050,152,3,2,48,50503.2,0.05,0.01,'A','F','1994-09-30','1994-08-23','1994-10-29','COLLECT COD','AIR','special, express requests nag; '), +(2050,113,4,3,41,41537.51,0.1,0.04,'A','F','1994-06-08','1994-08-27','1994-06-23','NONE','AIR','patterns wake quickly for the regular f'), +(2050,32,8,4,11,10252.33,0.02,0.01,'A','F','1994-07-27','1994-08-18','1994-08-02','DELIVER IN PERSON','REG AIR','unusual deposits doubt carefully; pending'), +(2050,168,9,5,16,17090.56,0.07,0.01,'R','F','1994-08-17','1994-07-28','1994-09-05','DELIVER IN PERSON','REG AIR','deposits use. quickly bold deposits nag. fl'), +(2050,49,2,6,29,27522.16,0,0.05,'A','F','1994-09-23','1994-08-01','1994-10-23','TAKE BACK RETURN','MAIL','furiously even'), +(2050,48,5,7,25,23701,0.1,0,'R','F','1994-08-18','1994-07-04','1994-09-04','TAKE BACK RETURN','RAIL','quickly special deposits boost blithely acc'), +(2051,25,6,1,43,39775.86,0.08,0.04,'N','O','1996-04-22','1996-06-16','1996-04-28','COLLECT COD','RAIL','ironic requests sleep ru'), +(2051,130,1,2,48,49446.24,0.01,0.02,'N','O','1996-05-04','1996-06-14','1996-05-19','NONE','TRUCK','sometimes ironic sauternes about the care'), +(2052,68,7,1,50,48403,0.09,0.08,'R','F','1992-06-22','1992-06-03','1992-07-19','DELIVER IN PERSON','AIR','packages integrate quickly. even deposits'), +(2052,135,1,2,35,36229.55,0.09,0.05,'A','F','1992-05-29','1992-05-24','1992-06-11','NONE','TRUCK','fluffily regular escapades serve. car'); +INSERT INTO lineitem VALUES +(2052,43,2,3,16,15088.64,0.01,0.08,'A','F','1992-06-30','1992-07-09','1992-07-12','NONE','SHIP','express excuses nag quickly blithely sp'), +(2052,96,7,4,47,46816.23,0.08,0.01,'A','F','1992-06-18','1992-05-16','1992-07-02','TAKE BACK RETURN','REG AIR','bold packages use. fluffily ironic'), +(2053,101,4,1,20,20022,0.09,0,'A','F','1995-04-25','1995-04-12','1995-05-13','NONE','TRUCK','furiously final theodolites are car'), +(2053,33,4,2,34,31723.02,0.07,0,'A','F','1995-03-15','1995-03-20','1995-04-09','TAKE BACK RETURN','TRUCK','fluffily reg'), +(2053,65,2,3,46,44392.76,0.01,0.03,'R','F','1995-04-01','1995-04-02','1995-04-18','NONE','RAIL','furiously '), +(2053,121,6,4,31,31654.72,0.06,0.08,'R','F','1995-03-23','1995-03-13','1995-04-16','DELIVER IN PERSON','SHIP','fluffy, regular instructions w'), +(2054,113,4,1,11,11144.21,0.03,0.05,'R','F','1992-08-13','1992-08-26','1992-08-22','NONE','AIR','quiet, pending'), +(2054,120,7,2,31,31623.72,0.05,0.08,'A','F','1992-08-18','1992-09-04','1992-08-24','NONE','FOB','quietly final excuses nag across t'), +(2054,121,2,3,32,32675.84,0.06,0,'A','F','1992-06-23','1992-07-08','1992-07-22','NONE','FOB','slyly even accounts after '), +(2054,174,3,4,14,15038.38,0.1,0.05,'R','F','1992-06-25','1992-09-05','1992-07-14','DELIVER IN PERSON','SHIP','deposits among the si'), +(2054,6,1,5,40,36240,0.08,0.06,'R','F','1992-06-23','1992-08-09','1992-07-04','TAKE BACK RETURN','RAIL','blithely silent deposit'), +(2054,134,10,6,17,17580.21,0.08,0.01,'A','F','1992-06-09','1992-08-28','1992-06-16','NONE','AIR','pending packages haggle across the fu'), +(2054,11,1,7,4,3644.04,0,0.08,'R','F','1992-08-12','1992-08-31','1992-08-15','DELIVER IN PERSON','AIR','slyly regular accounts wak'), +(2055,45,6,1,15,14175.6,0.04,0.06,'A','F','1993-09-15','1993-10-06','1993-10-07','NONE','REG AIR','quickly permanent foxes are carefu'), +(2055,9,10,2,15,13635,0.06,0.05,'R','F','1993-10-30','1993-11-21','1993-11-22','COLLECT COD','RAIL','final packages wake '), +(2055,135,1,3,12,12421.56,0,0.02,'A','F','1993-10-26','1993-11-23','1993-11-22','COLLECT COD','TRUCK','slyly final w'), +(2055,134,10,4,16,16546.08,0.02,0.02,'A','F','1993-11-16','1993-11-12','1993-11-28','NONE','TRUCK','blithely unusual pinto beans cajole. '), +(2080,7,4,1,5,4535,0.08,0.05,'R','F','1993-08-26','1993-08-07','1993-09-02','DELIVER IN PERSON','TRUCK','even, final accounts boost according to '), +(2080,197,9,2,39,42790.41,0.07,0.04,'A','F','1993-08-22','1993-09-09','1993-08-23','COLLECT COD','FOB','final, even requests cajole. ironic, b'), +(2081,89,10,1,26,25716.08,0.03,0.08,'N','O','1997-10-21','1997-10-03','1997-11-10','NONE','FOB','furiously '), +(2081,149,2,2,13,13638.82,0.07,0.05,'N','O','1997-08-23','1997-08-22','1997-09-09','TAKE BACK RETURN','MAIL','theodolites are carefully.'), +(2081,13,10,3,32,29216.32,0.09,0.07,'N','O','1997-09-05','1997-09-26','1997-10-03','TAKE BACK RETURN','SHIP','theodolites cajole eve'), +(2081,85,6,4,23,22656.84,0.03,0.08,'N','O','1997-07-06','1997-09-11','1997-07-21','TAKE BACK RETURN','MAIL','blithely even platelets'), +(2081,113,7,5,19,19249.09,0.02,0.06,'N','O','1997-10-01','1997-08-12','1997-10-18','COLLECT COD','SHIP','quickly ev'), +(2081,142,9,6,31,32306.34,0.03,0.06,'N','O','1997-09-19','1997-09-13','1997-09-27','NONE','AIR','quickly even accounts use warthogs. slyly'), +(2082,75,3,1,36,35102.52,0,0,'R','F','1995-01-20','1995-03-18','1995-01-31','COLLECT COD','MAIL','blithely regular foxes '), +(2082,105,10,2,12,12061.2,0.08,0.05,'A','F','1995-01-27','1995-02-11','1995-02-07','NONE','FOB','express requests haggle? i'), +(2083,24,3,1,37,34188.74,0.07,0,'R','F','1993-09-07','1993-09-30','1993-09-18','TAKE BACK RETURN','MAIL','slyly bold notornis a'), +(2084,182,3,1,42,45451.56,0.03,0.05,'A','F','1993-03-29','1993-05-05','1993-04-22','COLLECT COD','REG AIR','regular req'), +(2084,180,10,2,23,24844.14,0.09,0.08,'A','F','1993-06-05','1993-05-26','1993-06-06','DELIVER IN PERSON','AIR','slyly ironic asy'); +INSERT INTO lineitem VALUES +(2084,136,2,3,37,38336.81,0.07,0.05,'A','F','1993-07-16','1993-04-20','1993-08-06','NONE','AIR','furiously pending ideas grow acc'), +(2084,94,8,4,9,8946.81,0.02,0.02,'A','F','1993-03-18','1993-06-08','1993-03-30','NONE','TRUCK','ruthless, express deposits nag'), +(2084,27,10,5,28,25956.56,0.07,0.02,'R','F','1993-05-04','1993-05-14','1993-05-31','COLLECT COD','TRUCK','blithely unusual packages around the'), +(2084,115,9,6,15,15226.65,0.09,0.04,'A','F','1993-06-23','1993-04-25','1993-07-23','COLLECT COD','SHIP','furiously fina'), +(2084,194,6,7,34,37202.46,0.09,0.02,'R','F','1993-06-20','1993-05-28','1993-06-25','DELIVER IN PERSON','RAIL','platelets sleep accord'), +(2085,41,8,1,45,42346.8,0,0.07,'R','F','1994-02-27','1994-01-11','1994-03-29','TAKE BACK RETURN','MAIL','carefully ironic'), +(2086,60,1,1,22,21121.32,0.03,0.07,'R','F','1994-12-04','1994-12-16','1994-12-20','DELIVER IN PERSON','RAIL','even requests '), +(2086,141,10,2,32,33316.48,0.04,0.06,'A','F','1994-11-15','1995-01-05','1994-12-09','TAKE BACK RETURN','TRUCK','ironic fox'), +(2086,105,6,3,44,44224.4,0.02,0.01,'A','F','1994-12-04','1994-11-30','1994-12-21','DELIVER IN PERSON','FOB','decoys are blithely. carefully pen'), +(2086,84,5,4,27,26570.16,0.02,0,'A','F','1994-11-04','1995-01-14','1994-11-25','COLLECT COD','REG AIR','accounts boost blithely. slyly enticing pla'), +(2086,156,1,5,33,34852.95,0.04,0,'A','F','1995-02-06','1994-11-25','1995-02-15','NONE','SHIP','ironic deposit'), +(2086,200,3,6,20,22004,0.01,0.03,'R','F','1994-11-30','1994-12-28','1994-12-07','COLLECT COD','FOB','quickly bold requests use ac'), +(2086,156,8,7,7,7393.05,0.04,0.05,'R','F','1994-12-27','1994-12-10','1995-01-05','COLLECT COD','RAIL','final, silent acco'), +(2087,127,8,1,1,1027.12,0.05,0.04,'N','O','1998-03-27','1998-03-24','1998-04-18','DELIVER IN PERSON','REG AIR','carefully unusual p'), +(2087,168,3,2,46,49135.36,0.1,0.03,'N','O','1998-02-24','1998-04-02','1998-03-04','DELIVER IN PERSON','AIR','regularly silent theodolites haggle'), +(2087,62,3,3,1,962.06,0.02,0.05,'N','O','1998-05-27','1998-04-11','1998-06-12','COLLECT COD','REG AIR','quickly unusual reque'), +(2087,59,1,4,6,5754.3,0.03,0.08,'N','O','1998-04-23','1998-03-27','1998-05-18','DELIVER IN PERSON','REG AIR','furiously silent packages na'), +(2112,71,2,1,18,17479.26,0.02,0.05,'N','O','1997-05-02','1997-03-16','1997-05-25','TAKE BACK RETURN','TRUCK','quickly unusual re'), +(2113,123,8,1,40,40924.8,0.04,0.06,'N','O','1998-01-16','1997-12-11','1998-02-06','TAKE BACK RETURN','TRUCK','always ironic multipliers cajole. ironic '), +(2113,112,2,2,24,24290.64,0.03,0.02,'N','O','1998-02-19','1998-01-08','1998-03-16','COLLECT COD','MAIL','regular requests sleep slyly eve'), +(2114,168,9,1,50,53408,0.05,0.05,'A','F','1995-02-05','1995-03-18','1995-02-13','COLLECT COD','RAIL','furiously unusual id'), +(2114,186,7,2,26,28240.68,0.02,0.02,'A','F','1995-04-30','1995-04-16','1995-05-28','NONE','SHIP','furious, ironic'), +(2114,162,1,3,25,26554,0.07,0.01,'A','F','1995-02-15','1995-03-13','1995-02-22','COLLECT COD','AIR','carefully even attainments wake carefully'), +(2115,196,8,1,27,29597.13,0.06,0.03,'N','O','1998-09-01','1998-07-29','1998-09-04','NONE','AIR','furiously ev'), +(2115,184,5,2,43,46619.74,0.06,0.02,'N','O','1998-07-14','1998-07-25','1998-07-24','COLLECT COD','FOB','slyly regular pinto beans detect regular,'), +(2115,51,3,3,3,2853.15,0.03,0.04,'N','O','1998-07-23','1998-07-30','1998-08-14','DELIVER IN PERSON','FOB','carefully special pinto bean'), +(2115,49,10,4,47,44604.88,0.06,0.07,'N','O','1998-08-29','1998-07-30','1998-09-05','TAKE BACK RETURN','REG AIR','final reques'), +(2115,199,3,5,13,14289.47,0.04,0,'N','O','1998-08-07','1998-08-06','1998-08-13','DELIVER IN PERSON','REG AIR','quickly even requests sleep. ironic, fin'), +(2116,131,2,1,2,2062.26,0,0.02,'R','F','1994-10-16','1994-11-24','1994-11-09','DELIVER IN PERSON','TRUCK','blithely express requests wake slyly deposi'), +(2116,140,1,2,47,48886.58,0.1,0.06,'R','F','1994-09-01','1994-11-18','1994-09-25','COLLECT COD','MAIL','fluffily unusual'); +INSERT INTO lineitem VALUES +(2116,184,5,3,11,11925.98,0.03,0.05,'R','F','1994-09-15','1994-10-21','1994-09-21','NONE','FOB','thin, furious warthogs about the quickly '), +(2117,165,2,1,36,38345.76,0.1,0.01,'N','O','1997-08-06','1997-07-15','1997-08-07','DELIVER IN PERSON','SHIP','regular, special hockey p'), +(2117,61,6,2,19,18260.14,0.04,0,'N','O','1997-07-30','1997-06-18','1997-08-13','DELIVER IN PERSON','REG AIR','dependencies doubt blithely '), +(2117,58,3,3,43,41196.15,0.04,0.03,'N','O','1997-06-27','1997-06-12','1997-07-22','DELIVER IN PERSON','SHIP','ruthlessly even instructions across the '), +(2117,91,4,4,24,23786.16,0,0.07,'N','O','1997-06-15','1997-05-27','1997-06-18','COLLECT COD','SHIP','furiously pe'), +(2117,147,8,5,3,3141.42,0.02,0.05,'N','O','1997-05-05','1997-07-20','1997-05-26','TAKE BACK RETURN','TRUCK','ideas sleep along the furious'), +(2117,1,4,6,27,24327,0.09,0.08,'N','O','1997-06-30','1997-06-27','1997-07-11','TAKE BACK RETURN','REG AIR','slyly iron'), +(2118,160,1,1,24,25443.84,0.1,0.03,'N','O','1997-01-06','1996-12-14','1997-01-14','TAKE BACK RETURN','RAIL','fluffily ironic dependencies among the'), +(2118,184,5,2,4,4336.72,0.08,0.01,'N','O','1996-10-25','1996-11-10','1996-11-22','COLLECT COD','AIR','slyly final foxes nag fu'), +(2118,145,4,3,11,11496.54,0.05,0.04,'N','O','1996-12-23','1996-12-20','1997-01-01','COLLECT COD','RAIL','regular accounts detect furiously.'), +(2119,102,7,1,36,36075.6,0.04,0,'N','O','1996-11-10','1996-10-25','1996-12-03','TAKE BACK RETURN','RAIL','regular deposits ab'), +(2144,92,6,1,33,32738.97,0,0.07,'R','F','1994-04-04','1994-06-20','1994-04-23','NONE','AIR','slyly blithe '), +(2144,51,9,2,46,43748.3,0.03,0.08,'R','F','1994-04-08','1994-04-29','1994-05-07','COLLECT COD','SHIP','slyly express packages hinder across '), +(2144,4,9,3,29,26216,0,0.07,'R','F','1994-05-03','1994-05-16','1994-06-01','DELIVER IN PERSON','FOB','ironic requests are carefully '), +(2144,158,9,4,10,10581.5,0,0.04,'R','F','1994-06-16','1994-05-03','1994-07-05','COLLECT COD','AIR','boldly special ideas wake fin'), +(2145,78,8,1,13,12714.91,0.04,0.05,'A','F','1992-11-12','1992-12-13','1992-12-07','TAKE BACK RETURN','MAIL','blithely pending requests af'), +(2145,154,6,2,6,6324.9,0.05,0.01,'A','F','1992-10-10','1992-11-29','1992-10-14','NONE','AIR','special, fluffy theodolites sl'), +(2146,57,5,1,42,40196.1,0.1,0.01,'A','F','1992-09-21','1992-11-02','1992-09-23','NONE','AIR','final, final gif'), +(2146,157,5,2,6,6342.9,0.07,0.05,'A','F','1993-01-03','1992-10-24','1993-01-24','DELIVER IN PERSON','RAIL','accounts serve fl'), +(2146,25,8,3,14,12950.28,0.03,0.01,'R','F','1992-09-16','1992-10-16','1992-09-20','COLLECT COD','SHIP','blithely ex'), +(2146,26,9,4,31,28706.62,0.02,0,'A','F','1993-01-04','1992-10-24','1993-01-15','DELIVER IN PERSON','TRUCK','quickly slow packages haggle bl'), +(2146,169,4,5,28,29936.48,0.02,0.05,'R','F','1993-01-03','1992-10-17','1993-01-08','COLLECT COD','MAIL','pending pac'), +(2146,71,9,6,32,31074.24,0.07,0.03,'R','F','1993-01-10','1992-10-19','1993-02-05','COLLECT COD','TRUCK','express instructions serve '), +(2146,25,6,7,39,36075.78,0.07,0.06,'R','F','1993-01-05','1992-11-06','1993-01-14','DELIVER IN PERSON','TRUCK','final, special acc'), +(2147,29,8,1,50,46451,0.04,0.06,'R','F','1992-11-18','1992-11-30','1992-11-30','NONE','RAIL','frets from the pinto beans haggle even asy'), +(2147,101,2,2,4,4004.4,0.01,0.04,'A','F','1992-09-27','1992-11-15','1992-10-22','NONE','AIR','requests are slyly ev'), +(2147,44,7,3,34,32097.36,0.1,0.04,'R','F','1992-11-29','1992-11-08','1992-12-22','TAKE BACK RETURN','REG AIR','final, express packages u'), +(2147,11,8,4,11,10021.11,0.06,0.07,'A','F','1992-09-27','1992-11-16','1992-10-16','NONE','AIR','blithely i'), +(2148,116,6,1,21,21338.31,0.09,0.01,'R','F','1995-05-28','1995-05-26','1995-06-15','NONE','FOB','regular dependencies sleep above the e'), +(2149,19,9,1,12,11028.12,0.05,0.07,'R','F','1993-06-01','1993-05-06','1993-06-11','TAKE BACK RETURN','TRUCK','furiously ironic ins'); +INSERT INTO lineitem VALUES +(2149,99,10,2,10,9990.9,0.06,0.01,'R','F','1993-06-09','1993-04-17','1993-06-16','DELIVER IN PERSON','TRUCK','even ideas haggle across'), +(2149,49,2,3,47,44604.88,0,0.04,'R','F','1993-06-27','1993-05-12','1993-07-11','COLLECT COD','AIR','furiously regular hocke'), +(2149,129,8,4,18,18524.16,0.06,0,'A','F','1993-04-05','1993-05-11','1993-04-23','DELIVER IN PERSON','REG AIR','Tiresias acco'), +(2149,60,5,5,22,21121.32,0.06,0.04,'R','F','1993-05-24','1993-04-23','1993-06-20','TAKE BACK RETURN','SHIP','packages a'), +(2150,78,7,1,26,25429.82,0,0.03,'A','F','1994-06-21','1994-08-05','1994-06-23','NONE','TRUCK','blithely quick dolphins '), +(2150,18,8,2,29,26622.29,0.04,0.03,'A','F','1994-09-02','1994-08-04','1994-10-02','TAKE BACK RETURN','RAIL','even foxes wake final escapades. packag'), +(2150,107,2,3,29,29205.9,0.04,0.08,'R','F','1994-06-10','1994-07-31','1994-06-26','COLLECT COD','RAIL','slyly pending i'), +(2150,54,6,4,39,37207.95,0.05,0.02,'R','F','1994-07-31','1994-08-17','1994-08-11','TAKE BACK RETURN','TRUCK','slyly special sauternes are furious'), +(2150,183,4,5,35,37911.3,0.01,0.01,'A','F','1994-09-27','1994-08-17','1994-10-13','COLLECT COD','RAIL','deposits boost slyly carefu'), +(2150,7,10,6,12,10884,0.09,0.03,'A','F','1994-08-27','1994-08-22','1994-09-18','COLLECT COD','AIR','regular ideas believ'), +(2151,167,2,1,23,24544.68,0.06,0.02,'N','O','1996-11-20','1996-12-17','1996-11-30','DELIVER IN PERSON','AIR','quickly regular accou'), +(2151,15,9,2,29,26535.29,0,0.02,'N','O','1997-03-04','1996-12-27','1997-03-21','TAKE BACK RETURN','SHIP','pending ideas unw'), +(2151,165,2,3,49,52192.84,0.07,0.01,'N','O','1997-01-20','1997-02-09','1997-02-18','NONE','FOB','furiously '), +(2151,18,5,4,28,25704.28,0.1,0.08,'N','O','1996-12-11','1996-12-26','1996-12-12','DELIVER IN PERSON','AIR','blithely final packages was fluffily. blit'), +(2176,191,4,1,38,41465.22,0.02,0.08,'R','F','1992-11-29','1993-01-14','1992-12-22','DELIVER IN PERSON','REG AIR','even requests eat fluffily. dep'), +(2176,95,8,2,14,13931.26,0,0.06,'A','F','1992-11-17','1993-01-07','1992-12-03','DELIVER IN PERSON','SHIP','blithely fluffy platelets about the q'), +(2176,160,1,3,25,26504,0.02,0.02,'R','F','1993-02-23','1993-01-05','1993-03-07','COLLECT COD','RAIL','ironic, bold foxes wake bold packag'), +(2176,143,6,4,2,2086.28,0.05,0.06,'A','F','1993-02-26','1993-01-08','1993-03-23','DELIVER IN PERSON','AIR','express notornis cajole'), +(2177,129,10,1,45,46310.4,0.02,0.01,'N','O','1997-02-11','1997-02-27','1997-02-17','NONE','SHIP','furiously even platelets are quickly a'), +(2177,139,5,2,27,28056.51,0.04,0.08,'N','O','1997-01-29','1997-03-20','1997-02-04','DELIVER IN PERSON','SHIP','furiously ironic accounts wake quickly f'), +(2177,81,2,3,23,22564.84,0.07,0.05,'N','O','1997-01-28','1997-03-02','1997-02-13','DELIVER IN PERSON','AIR','slyly regular packages detect blithe'), +(2177,55,3,4,34,32471.7,0.05,0.07,'N','O','1997-02-03','1997-04-10','1997-02-21','COLLECT COD','REG AIR','idly permanent deposits acros'), +(2177,57,9,5,46,44024.3,0.09,0.05,'N','O','1997-05-10','1997-02-23','1997-05-28','COLLECT COD','RAIL','special, pending excuses haggle quickly p'), +(2177,122,7,6,11,11243.32,0.02,0.04,'N','O','1997-03-20','1997-03-07','1997-04-09','DELIVER IN PERSON','MAIL','quickly careful '), +(2178,157,2,1,15,15857.25,0.1,0.01,'N','O','1997-03-27','1997-03-10','1997-04-18','NONE','REG AIR','carefully brave pac'), +(2178,16,10,2,27,24732.27,0.01,0.02,'N','O','1997-02-26','1997-02-19','1997-03-25','NONE','MAIL','carefully regular foxes wake never qu'), +(2178,5,2,3,40,36200,0,0.03,'N','O','1997-03-17','1997-02-09','1997-04-15','COLLECT COD','RAIL','express, final instructions wake ca'), +(2178,78,6,4,3,2934.21,0.07,0.07,'N','O','1997-04-07','1997-01-23','1997-04-18','COLLECT COD','MAIL','special deposi'), +(2179,130,9,1,22,22662.86,0.05,0.08,'N','O','1996-11-16','1996-11-03','1996-11-25','DELIVER IN PERSON','FOB','ironic, ironic instruct'), +(2179,139,5,2,20,20782.6,0.03,0.01,'N','O','1996-09-30','1996-11-10','1996-10-30','NONE','REG AIR','ideas use. furi'); +INSERT INTO lineitem VALUES +(2179,104,9,3,5,5020.5,0.03,0.02,'N','O','1996-11-09','1996-10-08','1996-11-11','DELIVER IN PERSON','REG AIR','foxes affix ab'), +(2179,6,3,4,24,21744,0.04,0.04,'N','O','1996-10-26','1996-11-05','1996-11-16','COLLECT COD','RAIL','dogged, bold sheaves against th'), +(2179,108,5,5,7,7056.7,0,0.02,'N','O','1996-10-24','1996-11-14','1996-11-21','TAKE BACK RETURN','RAIL','blithely regular foxes wake unus'), +(2180,16,3,1,31,28396.31,0.06,0.04,'N','O','1996-10-20','1996-11-21','1996-11-06','COLLECT COD','REG AIR','slyly pending requests sleep among '), +(2180,193,7,2,39,42634.41,0.01,0,'N','O','1997-01-03','1996-10-29','1997-01-25','NONE','RAIL','quickly even packages nag '), +(2180,197,9,3,24,26332.56,0.03,0,'N','O','1997-01-03','1996-10-24','1997-01-19','NONE','SHIP','pinto beans affix qui'), +(2180,111,5,4,47,47522.17,0.07,0.02,'N','O','1996-09-23','1996-12-08','1996-10-12','NONE','FOB','final court'), +(2180,143,2,5,23,23992.22,0.02,0.06,'N','O','1996-11-08','1996-10-25','1996-11-28','NONE','TRUCK','slyly even ideas about '), +(2180,55,6,6,48,45842.4,0.09,0.03,'N','O','1996-12-30','1996-11-22','1997-01-16','DELIVER IN PERSON','RAIL','carefully even pinto beans amon'), +(2181,178,9,1,4,4312.68,0.05,0.04,'N','O','1995-09-25','1995-11-12','1995-09-28','COLLECT COD','FOB','ironic deposits detect against the slyly ev'), +(2181,88,9,2,46,45451.68,0,0.02,'N','O','1995-11-28','1995-10-17','1995-12-26','COLLECT COD','AIR','special depths cajole quickly. fu'), +(2181,91,2,3,15,14866.35,0.08,0.05,'N','O','1995-10-05','1995-10-27','1995-11-03','DELIVER IN PERSON','FOB','regular ideas about the blit'), +(2181,55,10,4,28,26741.4,0.04,0.05,'N','O','1995-12-21','1995-10-23','1996-01-04','TAKE BACK RETURN','AIR','fluffy deposits nag slyly. caref'), +(2181,96,7,5,9,8964.81,0.06,0.07,'N','O','1996-01-05','1995-12-05','1996-01-08','COLLECT COD','TRUCK','express excuses'), +(2182,132,8,1,27,27867.51,0.02,0.07,'R','F','1994-05-10','1994-07-04','1994-06-04','DELIVER IN PERSON','SHIP','slyly final '), +(2182,190,1,2,3,3270.57,0.05,0.03,'R','F','1994-04-20','1994-07-04','1994-04-24','TAKE BACK RETURN','SHIP','furiously silent dugouts boost carefully a'), +(2182,94,6,3,34,33799.06,0.02,0.03,'R','F','1994-05-28','1994-06-02','1994-06-10','COLLECT COD','MAIL','slyly close depos'), +(2182,7,4,4,12,10884,0.04,0.07,'A','F','1994-05-08','1994-06-02','1994-05-09','COLLECT COD','REG AIR','slyly regular t'), +(2182,179,9,5,37,39929.29,0.06,0.02,'A','F','1994-04-08','1994-06-29','1994-04-18','TAKE BACK RETURN','TRUCK','slyly daring Tiresias affix slyly. spec'), +(2183,71,1,1,29,28161.03,0.05,0.01,'N','O','1996-07-21','1996-08-24','1996-08-15','TAKE BACK RETURN','RAIL','slyly pend'), +(2183,52,3,2,25,23801.25,0.06,0.02,'N','O','1996-07-06','1996-08-21','1996-08-05','NONE','RAIL','furiously ironic ideas'), +(2208,58,3,1,48,45986.4,0.08,0.07,'A','F','1995-05-13','1995-06-30','1995-05-20','COLLECT COD','MAIL','furiously pending accounts sleep '), +(2208,97,1,2,11,10967.99,0.08,0.01,'A','F','1995-05-06','1995-07-19','1995-05-22','COLLECT COD','TRUCK','express requ'), +(2208,74,4,3,41,39936.87,0.08,0.02,'N','O','1995-08-18','1995-06-19','1995-09-05','COLLECT COD','RAIL','silent, even deposi'), +(2208,43,2,4,50,47152,0.07,0.07,'N','F','1995-06-11','1995-05-31','1995-06-29','TAKE BACK RETURN','FOB','fluffily unusual de'), +(2208,30,5,5,43,39991.29,0.03,0.06,'A','F','1995-05-10','1995-06-02','1995-06-09','TAKE BACK RETURN','MAIL','dependencies c'), +(2208,167,2,6,18,19208.88,0.02,0.08,'R','F','1995-06-06','1995-06-10','1995-06-11','TAKE BACK RETURN','TRUCK','slyly final accoun'), +(2208,7,2,7,45,40815,0,0.08,'A','F','1995-05-05','1995-06-10','1995-05-11','NONE','SHIP','blithely final foxes haggle. fur'), +(2209,23,2,1,40,36920.8,0.05,0.01,'R','F','1992-11-01','1992-09-25','1992-11-08','DELIVER IN PERSON','SHIP','regular ideas'), +(2209,103,4,2,10,10031,0,0.02,'R','F','1992-09-02','1992-09-24','1992-09-21','DELIVER IN PERSON','AIR','slyly bold packages at the fo'); +INSERT INTO lineitem VALUES +(2209,64,1,3,11,10604.66,0.01,0.01,'A','F','1992-07-12','1992-08-24','1992-08-10','DELIVER IN PERSON','REG AIR','slyly even platelets haggle carefully final'), +(2209,181,2,4,39,42166.02,0.08,0.07,'R','F','1992-11-04','1992-09-02','1992-11-11','TAKE BACK RETURN','MAIL','ironic foxes haggle carefully express'), +(2209,124,7,5,24,24578.88,0.08,0.06,'R','F','1992-08-09','1992-08-18','1992-08-25','COLLECT COD','AIR','deposits before the ironic'), +(2209,178,7,6,7,7547.19,0.09,0.07,'A','F','1992-08-18','1992-09-09','1992-09-12','DELIVER IN PERSON','AIR','quickly express instructions above the slyl'), +(2210,78,7,1,36,35210.52,0.1,0,'A','F','1992-03-04','1992-03-24','1992-03-21','DELIVER IN PERSON','AIR','pinto beans h'), +(2211,48,1,1,25,23701,0.04,0.01,'A','F','1994-10-09','1994-08-04','1994-11-03','TAKE BACK RETURN','RAIL','carefully pending accou'), +(2211,140,6,2,40,41605.6,0.09,0.06,'A','F','1994-09-30','1994-09-10','1994-10-26','NONE','MAIL','ironic depos'), +(2211,160,2,3,25,26504,0,0.07,'A','F','1994-08-13','1994-08-17','1994-08-16','NONE','AIR','final, regular theodolites above the ironi'), +(2211,85,6,4,23,22656.84,0.03,0.02,'R','F','1994-10-05','1994-09-13','1994-10-17','DELIVER IN PERSON','AIR','ironic asymptotes haggle quickly. slyly i'), +(2211,135,1,5,3,3105.39,0.02,0.04,'A','F','1994-08-28','1994-09-10','1994-09-06','TAKE BACK RETURN','SHIP','carefully re'), +(2211,187,8,6,18,19569.24,0.05,0.08,'A','F','1994-08-31','1994-09-07','1994-09-22','NONE','TRUCK','unusual deposits sleep'), +(2211,79,9,7,3,2937.21,0.06,0.05,'R','F','1994-09-21','1994-08-10','1994-10-19','TAKE BACK RETURN','RAIL','pending deposits are blith'), +(2212,71,10,1,18,17479.26,0.07,0.06,'R','F','1994-06-22','1994-06-18','1994-06-25','TAKE BACK RETURN','FOB','carefully regular a'), +(2213,118,8,1,20,20362.2,0.01,0,'A','F','1993-01-21','1993-04-14','1993-01-29','COLLECT COD','REG AIR','ironic instructions at the excuses gro'), +(2213,60,1,2,4,3840.24,0.09,0.05,'R','F','1993-04-15','1993-04-15','1993-05-05','COLLECT COD','SHIP','furiously ironic i'), +(2213,70,5,3,1,970.07,0.05,0.05,'A','F','1993-04-25','1993-04-06','1993-04-28','TAKE BACK RETURN','AIR','bold requests grow. regular, unusual inst'), +(2213,174,3,4,39,41892.63,0.09,0.05,'A','F','1993-05-12','1993-04-07','1993-05-23','TAKE BACK RETURN','SHIP','blithely thin dependenc'), +(2213,38,9,5,43,40335.29,0.04,0.03,'A','F','1993-04-18','1993-03-11','1993-05-11','TAKE BACK RETURN','RAIL','regular acc'), +(2213,48,5,6,41,38869.64,0.01,0,'R','F','1993-01-31','1993-03-31','1993-02-28','COLLECT COD','FOB','fluffily pending foxes sleep furiously. re'), +(2213,64,9,7,3,2892.18,0.02,0.04,'A','F','1993-03-09','1993-03-17','1993-04-07','TAKE BACK RETURN','AIR','carefully even deposit'), +(2214,76,5,1,27,26353.89,0.04,0.04,'N','O','1998-05-31','1998-06-07','1998-06-19','DELIVER IN PERSON','REG AIR','quickly dogged p'), +(2214,194,5,2,50,54709.5,0,0.02,'N','O','1998-07-06','1998-06-16','1998-07-16','TAKE BACK RETURN','MAIL','theodolites wake according to the furiously'), +(2214,113,7,3,42,42550.62,0.04,0.08,'N','O','1998-05-26','1998-07-13','1998-06-22','COLLECT COD','FOB','slyly bold ideas nag again'), +(2214,196,9,4,22,24116.18,0.01,0.01,'N','O','1998-05-30','1998-07-02','1998-06-09','DELIVER IN PERSON','RAIL','fluffily ironic de'), +(2215,73,1,1,33,32111.31,0,0,'N','O','1996-07-19','1996-08-10','1996-07-30','COLLECT COD','RAIL','waters are. even, '), +(2215,33,9,2,30,27990.9,0.01,0,'N','O','1996-08-15','1996-09-10','1996-08-25','NONE','FOB','even accounts wake among the even, even '), +(2215,57,5,3,30,28711.5,0.07,0.03,'N','O','1996-09-09','1996-07-20','1996-09-28','COLLECT COD','TRUCK','packages are carefully. regular foxes '), +(2215,146,3,4,20,20922.8,0.02,0.02,'N','O','1996-09-09','1996-08-10','1996-09-19','NONE','MAIL','carefully unusual pinto bean'), +(2240,164,3,1,6,6384.96,0.01,0,'A','F','1992-06-23','1992-05-17','1992-07-20','COLLECT COD','AIR','furiously '); +INSERT INTO lineitem VALUES +(2240,28,1,2,37,34336.74,0.03,0.07,'R','F','1992-03-16','1992-05-31','1992-04-05','COLLECT COD','FOB','blithely pending deposits nag at'), +(2240,53,5,3,39,37168.95,0.08,0.06,'A','F','1992-05-22','1992-05-10','1992-06-08','NONE','FOB','bold, fina'), +(2240,86,7,4,10,9860.8,0.09,0,'A','F','1992-05-25','1992-04-14','1992-06-23','DELIVER IN PERSON','REG AIR','finally even Tiresia'), +(2240,161,10,5,29,30773.64,0.02,0.06,'A','F','1992-03-29','1992-05-08','1992-04-09','COLLECT COD','MAIL','express, pending packages snooze-- '), +(2240,81,2,6,32,31394.56,0.06,0.06,'R','F','1992-04-11','1992-04-18','1992-04-22','NONE','MAIL','slyly bold dependencies haggle ev'), +(2240,78,7,7,24,23473.68,0.04,0.05,'R','F','1992-05-13','1992-04-09','1992-05-14','DELIVER IN PERSON','FOB','carefully enticing instructions along th'), +(2241,5,6,1,25,22625,0,0.08,'R','F','1993-08-11','1993-07-23','1993-09-01','DELIVER IN PERSON','MAIL','fluffily final pinto beans poach ac'), +(2241,195,8,2,38,41617.22,0.04,0.06,'A','F','1993-08-04','1993-07-31','1993-08-06','TAKE BACK RETURN','TRUCK','carefully even deposits boo'), +(2241,97,10,3,48,47860.32,0.08,0.04,'A','F','1993-05-14','1993-07-30','1993-05-26','TAKE BACK RETURN','RAIL','slyly ironic instructions integrate busi'), +(2241,167,4,4,19,20276.04,0.1,0,'A','F','1993-06-01','1993-08-05','1993-06-07','TAKE BACK RETURN','TRUCK','furiously e'), +(2241,82,3,5,2,1964.16,0.04,0.03,'A','F','1993-08-16','1993-08-02','1993-08-24','NONE','REG AIR','carefully special deposits about th'), +(2241,116,3,6,22,22354.42,0.02,0.08,'R','F','1993-08-13','1993-06-15','1993-08-16','DELIVER IN PERSON','TRUCK','always final d'), +(2241,142,3,7,9,9379.26,0.09,0.03,'A','F','1993-05-14','1993-07-12','1993-05-29','NONE','AIR','carefully ironic packages sleep alongside '), +(2242,123,4,1,15,15346.8,0.09,0.08,'N','O','1997-08-04','1997-09-21','1997-08-11','COLLECT COD','FOB','daringly regular pinto beans serve. busil'), +(2243,127,8,1,10,10271.2,0.04,0.06,'N','O','1995-07-26','1995-07-18','1995-08-03','NONE','RAIL','ironic, ironic deposi'), +(2244,51,6,1,3,2853.15,0.02,0.02,'A','F','1993-04-30','1993-03-15','1993-05-19','TAKE BACK RETURN','FOB','slyly express accounts against the even '), +(2244,193,6,2,16,17491.04,0.01,0.06,'R','F','1993-02-12','1993-03-09','1993-02-28','COLLECT COD','FOB','permanently special deposits s'), +(2245,76,7,1,44,42947.08,0.03,0.03,'A','F','1993-06-12','1993-06-10','1993-06-16','NONE','TRUCK','carefully bold pinto beans are fluffily. '), +(2245,74,3,2,28,27273.96,0.05,0.03,'R','F','1993-08-19','1993-07-27','1993-09-04','COLLECT COD','TRUCK','bravely final the'), +(2245,86,7,3,33,32540.64,0.03,0.01,'R','F','1993-06-26','1993-06-11','1993-07-17','TAKE BACK RETURN','AIR','fluffily regular deposits haggle dogge'), +(2245,189,10,4,14,15248.52,0.02,0.04,'R','F','1993-05-06','1993-07-21','1993-05-19','DELIVER IN PERSON','RAIL','slyly iron'), +(2245,80,8,5,33,32342.64,0.03,0.07,'R','F','1993-06-16','1993-06-05','1993-07-07','NONE','MAIL','regular, regular asymptotes are slyly fur'), +(2246,53,4,1,22,20967.1,0.02,0.01,'N','O','1996-07-25','1996-08-03','1996-08-24','DELIVER IN PERSON','SHIP','asymptotes across the accounts s'), +(2246,104,5,2,43,43176.3,0.07,0.06,'N','O','1996-08-25','1996-08-23','1996-09-19','DELIVER IN PERSON','AIR','ironic ideas shall sleep furiously? blit'), +(2246,18,8,3,11,10098.11,0.1,0,'N','O','1996-06-21','1996-07-24','1996-07-18','TAKE BACK RETURN','TRUCK','permanently regular excuses poach blit'), +(2246,163,8,4,13,13821.08,0.08,0.05,'N','O','1996-09-15','1996-07-21','1996-10-08','DELIVER IN PERSON','AIR','even package'), +(2247,172,2,1,12,12866.04,0.02,0.07,'A','F','1992-09-06','1992-09-18','1992-09-26','NONE','MAIL','doggedly final sheave'), +(2272,90,1,1,18,17821.62,0.04,0,'R','F','1993-08-01','1993-07-06','1993-08-25','NONE','MAIL','slyly unusual instructions caj'), +(2272,34,10,2,40,37361.2,0.07,0,'A','F','1993-04-25','1993-07-12','1993-05-15','DELIVER IN PERSON','FOB','ironic instructions be'); +INSERT INTO lineitem VALUES +(2272,56,4,3,36,34417.8,0.03,0.02,'A','F','1993-05-25','1993-05-23','1993-06-09','TAKE BACK RETURN','RAIL','quickly bold packages about the bl'), +(2272,138,4,4,30,31143.9,0.09,0.07,'A','F','1993-07-27','1993-05-15','1993-08-13','NONE','RAIL','sometimes final accounts sleep slyly aroun'), +(2272,76,4,5,12,11712.84,0.03,0.03,'A','F','1993-04-19','1993-05-14','1993-04-23','NONE','RAIL','regular, bold reques'), +(2273,184,5,1,34,36862.12,0.02,0.03,'N','O','1997-01-08','1997-02-02','1997-01-23','COLLECT COD','MAIL','pending asymptotes around t'), +(2273,85,6,2,35,34477.8,0,0.05,'N','O','1997-01-02','1997-01-19','1997-01-14','NONE','REG AIR','blithely special deposits are ca'), +(2273,95,8,3,8,7960.72,0,0.04,'N','O','1996-12-15','1997-02-27','1997-01-10','NONE','FOB','even packages cajole'), +(2273,161,6,4,20,21223.2,0.06,0.04,'N','O','1997-03-05','1997-02-25','1997-04-01','NONE','RAIL','even, ironic theod'), +(2273,162,7,5,18,19118.88,0.07,0,'N','O','1996-12-16','1997-01-21','1997-01-03','COLLECT COD','TRUCK','accounts ab'), +(2273,155,7,6,16,16882.4,0.1,0.03,'N','O','1997-01-10','1997-02-03','1997-02-01','TAKE BACK RETURN','RAIL','carefully regular packages boost fluffily'), +(2273,20,1,7,7,6440.14,0.05,0.05,'N','O','1997-02-19','1997-01-22','1997-02-21','TAKE BACK RETURN','TRUCK','carefully even packages affi'), +(2274,12,6,1,18,16416.18,0.04,0.03,'R','F','1993-09-06','1993-12-03','1993-09-22','COLLECT COD','SHIP','ironic, regular realms haggle. accounts'), +(2274,111,8,2,23,23255.53,0.04,0.03,'R','F','1993-10-28','1993-11-03','1993-11-05','NONE','MAIL','regular deposits cajole furiously fin'), +(2274,129,10,3,18,18524.16,0.03,0.06,'R','F','1993-09-28','1993-11-22','1993-10-12','DELIVER IN PERSON','SHIP','express requests boost along the furious'), +(2275,34,5,1,30,28020.9,0.08,0.05,'R','F','1993-01-10','1992-11-21','1993-01-22','NONE','REG AIR','blithely ironic pains cajole slyly accordin'), +(2275,91,4,2,11,10901.99,0.08,0.03,'A','F','1993-01-16','1992-12-10','1993-01-25','COLLECT COD','REG AIR','blithely ironic ideas cajole'), +(2276,119,9,1,5,5095.55,0.07,0.08,'N','O','1996-05-09','1996-06-18','1996-05-13','DELIVER IN PERSON','FOB','quickly regular requests thrash'), +(2276,135,1,2,13,13456.69,0.08,0.04,'N','O','1996-07-24','1996-06-18','1996-08-16','COLLECT COD','RAIL','furiously regular instruc'), +(2276,171,2,3,27,28921.59,0.07,0.08,'N','O','1996-07-30','1996-06-10','1996-07-31','DELIVER IN PERSON','RAIL','packages detect. furiously r'), +(2276,109,6,4,38,38345.8,0.06,0.03,'N','O','1996-07-07','1996-06-28','1996-07-17','COLLECT COD','RAIL','requests wake past the theodolites. specia'), +(2276,153,5,5,50,52657.5,0.03,0.05,'N','O','1996-07-13','1996-06-25','1996-07-22','DELIVER IN PERSON','REG AIR','carefully exp'), +(2276,6,9,6,4,3624,0.1,0.03,'N','O','1996-07-05','1996-06-30','1996-08-04','COLLECT COD','FOB','excuses integrate packages. unu'), +(2277,137,8,1,38,39410.94,0.03,0.07,'R','F','1995-04-23','1995-03-25','1995-05-20','TAKE BACK RETURN','TRUCK','carefully un'), +(2277,8,1,2,2,1816,0.1,0.08,'A','F','1995-02-01','1995-02-04','1995-03-02','TAKE BACK RETURN','AIR','quickly silent ideas wa'), +(2277,198,10,3,4,4392.76,0.05,0.06,'R','F','1995-04-27','1995-03-16','1995-04-29','TAKE BACK RETURN','SHIP','regular accounts across the'), +(2277,159,4,4,31,32833.65,0.02,0,'R','F','1995-03-07','1995-03-19','1995-03-26','TAKE BACK RETURN','MAIL','slyly bold'), +(2278,45,2,1,36,34021.44,0.04,0.05,'N','O','1998-06-04','1998-06-06','1998-06-30','NONE','TRUCK','ironic, ironic re'), +(2278,45,2,2,50,47252,0.02,0,'N','O','1998-08-09','1998-07-08','1998-09-05','DELIVER IN PERSON','RAIL','carefully regular theodo'), +(2278,97,9,3,22,21935.98,0.03,0,'N','O','1998-05-15','1998-07-14','1998-06-04','TAKE BACK RETURN','REG AIR','deposits wake carefully even, quick depen'), +(2279,14,5,1,12,10968.12,0.07,0.08,'A','F','1993-05-10','1993-03-25','1993-06-02','COLLECT COD','REG AIR','slyly unusual'); +INSERT INTO lineitem VALUES +(2279,41,2,2,38,35759.52,0.08,0.07,'R','F','1993-06-09','1993-04-06','1993-06-26','COLLECT COD','TRUCK','final deposits are. pending packages s'), +(2279,4,7,3,3,2712,0.09,0.04,'A','F','1993-05-31','1993-05-07','1993-06-05','COLLECT COD','REG AIR','slyly ironic de'), +(2279,52,4,4,42,39986.1,0.02,0,'R','F','1993-02-28','1993-04-25','1993-03-02','TAKE BACK RETURN','REG AIR','slyly express accounts '), +(2279,169,8,5,9,9622.44,0.05,0.04,'R','F','1993-05-21','1993-03-29','1993-06-17','DELIVER IN PERSON','MAIL','ironic packages at the ironic deposits'), +(2279,147,10,6,12,12565.68,0.02,0,'R','F','1993-05-04','1993-04-26','1993-05-28','DELIVER IN PERSON','FOB','carefully i'), +(2279,119,9,7,32,32611.52,0.05,0.05,'A','F','1993-04-20','1993-05-22','1993-05-18','DELIVER IN PERSON','RAIL','regular, ironic theo'), +(2304,200,2,1,42,46208.4,0,0.01,'A','F','1994-01-20','1994-03-04','1994-02-05','COLLECT COD','RAIL','carefully iro'), +(2304,19,9,2,48,44112.48,0,0,'R','F','1994-02-12','1994-02-16','1994-03-10','COLLECT COD','REG AIR','careful package'), +(2304,48,9,3,3,2844.12,0,0.05,'R','F','1994-03-19','1994-03-04','1994-03-20','DELIVER IN PERSON','AIR','quietly regular packages use '), +(2305,174,4,1,3,3222.51,0,0.01,'A','F','1993-03-24','1993-04-05','1993-03-29','NONE','AIR','unusual, pending dolphins'), +(2305,60,8,2,39,37442.34,0.07,0,'R','F','1993-04-16','1993-04-17','1993-04-22','COLLECT COD','MAIL','bold accounts'), +(2305,102,3,3,32,32067.2,0.03,0.06,'A','F','1993-04-02','1993-03-18','1993-04-03','NONE','AIR','accounts alongside'), +(2305,112,3,4,17,17205.87,0,0.05,'A','F','1993-02-21','1993-03-30','1993-03-19','TAKE BACK RETURN','MAIL','carefully pending deposits cajole slyly '), +(2305,155,7,5,26,27433.9,0.06,0.07,'A','F','1993-05-14','1993-02-28','1993-06-04','NONE','SHIP','ironic, unusual requests against the '), +(2305,51,3,6,7,6657.35,0.06,0,'R','F','1993-05-15','1993-04-25','1993-06-09','DELIVER IN PERSON','RAIL','never ironic deposits'), +(2306,196,9,1,50,54809.5,0.09,0.01,'N','O','1995-07-27','1995-09-26','1995-08-06','DELIVER IN PERSON','FOB','slyly bold ideas acro'), +(2306,149,2,2,39,40916.46,0.04,0,'N','O','1995-09-07','1995-09-13','1995-10-03','COLLECT COD','SHIP','slyly regular deposits shall'), +(2306,178,6,3,35,37735.95,0.01,0.07,'N','O','1995-08-18','1995-08-30','1995-08-20','TAKE BACK RETURN','RAIL','quickly ir'), +(2306,119,3,4,21,21401.31,0.06,0.01,'N','O','1995-10-07','1995-09-18','1995-10-17','COLLECT COD','MAIL','final instructions integrat'), +(2306,142,9,5,42,43769.88,0.04,0.07,'N','O','1995-09-05','1995-08-25','1995-09-28','COLLECT COD','MAIL','slyly final account'), +(2306,124,5,6,29,29699.48,0,0.03,'N','O','1995-11-01','1995-09-01','1995-11-22','DELIVER IN PERSON','REG AIR','packages sleep out'), +(2306,176,4,7,19,20447.23,0.07,0.01,'N','O','1995-11-17','1995-09-06','1995-11-30','DELIVER IN PERSON','AIR','theodolites integrate-'), +(2307,142,9,1,24,25011.36,0.1,0.05,'R','F','1993-10-07','1993-08-05','1993-10-20','COLLECT COD','AIR','doggedly ir'), +(2307,140,6,2,2,2080.28,0.01,0,'A','F','1993-09-21','1993-08-22','1993-10-03','COLLECT COD','SHIP','regular accounts cajole '), +(2307,34,10,3,7,6538.21,0.07,0.04,'R','F','1993-08-03','1993-09-04','1993-08-28','DELIVER IN PERSON','AIR','slyly unusual orbits after the bold, final'), +(2307,165,6,4,19,20238.04,0.08,0.06,'R','F','1993-10-23','1993-09-09','1993-11-09','TAKE BACK RETURN','TRUCK','carefully final requests haggle platelets.'), +(2307,143,4,5,7,7301.98,0.01,0.06,'R','F','1993-09-01','1993-08-08','1993-09-29','NONE','AIR','bold foxes cajole furiously furiousl'), +(2308,118,9,1,24,24434.64,0.06,0.04,'R','F','1993-02-23','1992-12-24','1993-03-10','NONE','MAIL','blithely express depo'), +(2308,56,1,2,36,34417.8,0.05,0.06,'A','F','1992-11-11','1992-11-27','1992-11-23','NONE','MAIL','furiously express orbits wake'), +(2309,170,7,1,14,14982.38,0.1,0.03,'N','O','1996-01-01','1995-10-22','1996-01-23','NONE','AIR','quickly pe'); +INSERT INTO lineitem VALUES +(2309,169,8,2,1,1069.16,0.01,0.05,'N','O','1995-12-08','1995-11-03','1995-12-31','COLLECT COD','RAIL','slyly pending sheav'), +(2309,15,2,3,5,4575.05,0.01,0,'N','O','1995-12-10','1995-10-29','1996-01-06','TAKE BACK RETURN','SHIP','stealthily'), +(2309,139,10,4,46,47799.98,0.08,0.04,'N','O','1995-10-02','1995-10-30','1995-10-30','NONE','REG AIR','furiously even account'), +(2309,137,3,5,9,9334.17,0,0.07,'N','O','1995-12-21','1995-10-10','1996-01-20','COLLECT COD','AIR','regular packages wake agai'), +(2309,195,8,6,21,22998.99,0.09,0,'N','O','1995-11-05','1995-11-07','1995-11-22','NONE','AIR','furiously regular depo'), +(2309,138,4,7,48,49830.24,0.03,0.05,'N','O','1995-10-21','1995-11-21','1995-11-09','NONE','MAIL','furiously fur'), +(2310,58,6,1,36,34489.8,0.03,0.03,'N','O','1996-10-09','1996-10-28','1996-10-29','TAKE BACK RETURN','RAIL','blithely unusu'), +(2310,171,2,2,6,6427.02,0.07,0.01,'N','O','1996-11-08','1996-12-09','1996-12-07','COLLECT COD','REG AIR','permanent packages after the u'), +(2310,42,1,3,48,45217.92,0.08,0.02,'N','O','1996-10-04','1996-11-20','1996-10-25','TAKE BACK RETURN','FOB','regular dependencies '), +(2311,141,8,1,18,18740.52,0.01,0.01,'N','F','1995-06-11','1995-06-18','1995-07-02','NONE','FOB','pending packages s'), +(2311,122,1,2,49,50083.88,0.09,0.02,'R','F','1995-05-14','1995-07-11','1995-05-20','COLLECT COD','FOB','regular accounts integrate a'), +(2311,54,5,3,15,14310.75,0.08,0.04,'N','O','1995-06-23','1995-06-06','1995-07-09','COLLECT COD','AIR','accounts nag. regular courts '), +(2311,90,1,4,42,41583.78,0.01,0.06,'R','F','1995-06-03','1995-06-27','1995-06-11','DELIVER IN PERSON','MAIL','furiously final asymptotes su'), +(2311,47,10,5,1,947.04,0.05,0.02,'A','F','1995-06-07','1995-06-20','1995-06-10','NONE','AIR','special, pend'), +(2311,12,9,6,32,29184.32,0.01,0.03,'N','O','1995-07-19','1995-06-26','1995-07-26','NONE','RAIL','slyly final idea'), +(2336,193,5,1,20,21863.8,0.01,0.03,'N','O','1996-03-12','1996-02-25','1996-03-18','NONE','REG AIR','ironic, final courts are p'), +(2337,45,2,1,49,46306.96,0.06,0.05,'N','O','1997-08-08','1997-08-15','1997-08-31','TAKE BACK RETURN','FOB','bold, pending packages wake ca'), +(2338,52,7,1,30,28561.5,0.07,0.06,'N','O','1997-12-10','1997-10-15','1997-12-11','TAKE BACK RETURN','REG AIR','fluffily stealthy'), +(2339,192,3,1,22,24028.18,0.03,0.03,'A','F','1994-01-06','1994-03-06','1994-01-10','NONE','FOB','pinto beans'), +(2339,30,5,2,28,26040.84,0,0,'R','F','1994-01-25','1994-01-22','1994-01-28','DELIVER IN PERSON','RAIL','slyly bold requests '), +(2339,117,4,3,13,13222.43,0.06,0.08,'R','F','1994-03-10','1994-02-18','1994-03-20','TAKE BACK RETURN','REG AIR','final requests about the idea'), +(2340,138,4,1,9,9343.17,0.08,0.02,'N','O','1996-05-01','1996-02-24','1996-05-16','COLLECT COD','RAIL','express, d'), +(2340,193,5,2,21,22956.99,0.06,0.02,'N','O','1996-01-17','1996-03-04','1996-01-29','DELIVER IN PERSON','SHIP','pending requests sleep slyl'), +(2341,47,10,1,12,11364.48,0.08,0.03,'R','F','1993-06-06','1993-07-08','1993-06-17','DELIVER IN PERSON','FOB','blithely regular deposits nag blithe'), +(2341,71,10,2,37,35929.59,0.07,0.08,'A','F','1993-09-23','1993-07-25','1993-10-14','DELIVER IN PERSON','RAIL','ironic dependencies int'), +(2341,195,8,3,8,8761.52,0.03,0.07,'R','F','1993-06-08','1993-07-09','1993-06-10','COLLECT COD','FOB','even, even theodolites wake blithe'), +(2342,42,1,1,12,11304.48,0,0.08,'N','O','1996-07-31','1996-07-26','1996-08-14','NONE','TRUCK','quickly final req'), +(2342,117,1,2,24,24410.64,0.1,0.06,'N','O','1996-09-30','1996-07-22','1996-10-28','TAKE BACK RETURN','AIR','foxes haggle blithely. courts sleep wit'), +(2342,170,1,3,50,53508.5,0.1,0.01,'N','O','1996-08-28','1996-07-18','1996-09-22','COLLECT COD','RAIL','blithely fina'), +(2342,36,7,4,1,936.03,0.04,0.06,'N','O','1996-08-31','1996-08-09','1996-09-07','DELIVER IN PERSON','REG AIR','carefully final inst'), +(2342,27,2,5,22,20394.44,0.08,0.01,'N','O','1996-08-10','1996-08-02','1996-08-31','DELIVER IN PERSON','AIR','regular, pending '); +INSERT INTO lineitem VALUES +(2343,110,1,1,27,27272.97,0,0,'N','O','1995-11-10','1995-11-17','1995-12-10','TAKE BACK RETURN','SHIP','slyly specia'), +(2343,66,1,2,35,33812.1,0.03,0.06,'N','O','1995-10-24','1995-11-09','1995-10-26','COLLECT COD','TRUCK','final accounts boost along the dep'), +(2343,179,7,3,21,22662.57,0,0.03,'N','O','1995-09-07','1995-10-26','1995-10-07','TAKE BACK RETURN','RAIL','silent, even asymptotes haggle f'), +(2368,152,3,1,16,16834.4,0.04,0.03,'R','F','1993-10-31','1993-10-22','1993-11-06','NONE','REG AIR','final, final platelets wake'), +(2368,14,5,2,32,29248.32,0.03,0,'R','F','1993-09-23','1993-10-07','1993-09-27','COLLECT COD','TRUCK','blithely even deposits '), +(2368,149,6,3,39,40916.46,0.08,0.03,'R','F','1993-09-03','1993-09-20','1993-09-28','COLLECT COD','RAIL','special, unusual fo'), +(2368,156,8,4,17,17954.55,0.1,0.08,'A','F','1993-10-03','1993-09-27','1993-10-05','NONE','FOB','blithely bold packages at the pend'), +(2369,24,7,1,30,27720.6,0.05,0.04,'N','O','1997-04-23','1997-02-12','1997-05-21','COLLECT COD','REG AIR','regular deposits about the ironic deposits'), +(2369,169,10,2,47,50250.52,0.1,0.02,'N','O','1997-01-02','1997-02-18','1997-01-13','COLLECT COD','RAIL','final, pending ideas impress slyl'), +(2370,46,3,1,3,2838.12,0.03,0.07,'R','F','1994-03-24','1994-03-26','1994-04-15','COLLECT COD','SHIP','carefully final theodolites boost s'), +(2370,2,5,2,24,21648,0,0.05,'A','F','1994-05-15','1994-04-09','1994-06-12','NONE','REG AIR','silent foxes cajole slyly. '), +(2370,61,2,3,32,30753.92,0.05,0.02,'A','F','1994-04-24','1994-03-03','1994-05-15','DELIVER IN PERSON','MAIL','slyly final requests cajole slyly. exp'), +(2370,6,3,4,21,19026,0.04,0.01,'R','F','1994-02-01','1994-02-19','1994-02-09','TAKE BACK RETURN','MAIL','dependencies boost'), +(2371,159,4,1,37,39188.55,0.05,0.05,'N','O','1998-02-11','1998-03-24','1998-02-27','DELIVER IN PERSON','TRUCK','even theodolites haggle '), +(2371,35,1,2,21,19635.63,0,0.05,'N','O','1998-04-14','1998-02-14','1998-04-18','COLLECT COD','AIR','ironic pinto beans print across th'), +(2371,101,4,3,11,11012.1,0.05,0.02,'N','O','1998-02-25','1998-04-06','1998-03-23','TAKE BACK RETURN','TRUCK','furiously special requests s'), +(2371,43,6,4,33,31120.32,0.05,0.08,'N','O','1998-03-30','1998-02-06','1998-04-05','DELIVER IN PERSON','AIR','pending, final deposits acco'), +(2371,165,2,5,22,23433.52,0.02,0.05,'N','O','1998-03-26','1998-03-19','1998-04-16','DELIVER IN PERSON','REG AIR','accounts haggle along the special, pendi'), +(2371,86,7,6,39,38457.12,0.05,0.03,'N','O','1998-04-01','1998-03-13','1998-04-27','NONE','REG AIR','quickly regula'), +(2371,36,2,7,32,29952.96,0.07,0.07,'N','O','1998-02-15','1998-04-03','1998-02-23','NONE','REG AIR','quickly special ideas use quickly unusual '), +(2372,43,4,1,42,39607.68,0.08,0.02,'N','O','1998-01-04','1998-01-02','1998-02-02','COLLECT COD','REG AIR','final deposits integrate blithely. r'), +(2372,3,10,2,17,15351,0.07,0.01,'N','O','1997-12-17','1998-01-17','1997-12-25','NONE','RAIL','furiously ironic pac'), +(2372,164,1,3,12,12769.92,0.04,0.04,'N','O','1998-03-21','1997-12-21','1998-04-12','DELIVER IN PERSON','SHIP','quickly bol'), +(2372,122,1,4,4,4088.48,0,0.07,'N','O','1997-12-14','1997-12-28','1997-12-16','TAKE BACK RETURN','REG AIR','special theodol'), +(2372,20,7,5,5,4600.1,0.02,0.04,'N','O','1998-02-08','1998-01-18','1998-03-02','TAKE BACK RETURN','RAIL','slyly final requests w'), +(2372,189,10,6,11,11980.98,0.02,0.06,'N','O','1998-02-14','1998-01-18','1998-03-10','TAKE BACK RETURN','FOB','blithely ironic foxes across the slyly ex'), +(2372,57,8,7,19,18183.95,0.01,0.06,'N','O','1997-12-26','1998-02-19','1998-01-02','COLLECT COD','SHIP','brave theodolites sleep perm'), +(2373,191,5,1,17,18550.23,0.02,0.01,'R','F','1994-03-29','1994-05-19','1994-04-20','COLLECT COD','AIR','regular, even pinto beans '), +(2373,136,2,2,3,3108.39,0.08,0.08,'R','F','1994-05-15','1994-06-10','1994-06-04','COLLECT COD','TRUCK','requests at t'), +(2373,141,8,3,29,30193.06,0.05,0.02,'A','F','1994-06-01','1994-05-14','1994-06-17','NONE','TRUCK','carefully ev'); +INSERT INTO lineitem VALUES +(2373,91,5,4,5,4955.45,0.1,0.01,'R','F','1994-06-02','1994-05-03','1994-06-21','NONE','REG AIR','slyly regular instructions sleep ca'), +(2374,118,2,1,41,41742.51,0.07,0,'A','F','1994-01-27','1993-12-11','1994-02-12','TAKE BACK RETURN','RAIL','regular, silent pains shall have to ki'), +(2374,160,2,2,24,25443.84,0.07,0.08,'A','F','1994-02-02','1994-01-12','1994-02-04','DELIVER IN PERSON','TRUCK','special asymptotes wa'), +(2374,61,8,3,2,1922.12,0.06,0.02,'R','F','1993-12-30','1994-01-24','1994-01-02','COLLECT COD','FOB','requests boost blithely after t'), +(2374,74,5,4,28,27273.96,0.04,0.08,'R','F','1994-02-19','1993-12-16','1994-03-15','COLLECT COD','MAIL','express, regular dolphins b'), +(2374,1,2,5,25,22525,0.08,0,'A','F','1993-11-26','1993-12-15','1993-12-10','COLLECT COD','RAIL','pending requ'), +(2375,168,9,1,3,3204.48,0.02,0.08,'N','O','1997-02-14','1996-12-25','1997-02-22','COLLECT COD','RAIL','final, final theodo'), +(2375,132,8,2,9,9289.17,0.09,0.02,'N','O','1997-02-17','1996-12-27','1997-02-27','DELIVER IN PERSON','MAIL','carefully ironic accounts sleep carefu'), +(2375,47,4,3,26,24623.04,0.02,0.06,'N','O','1997-03-18','1997-02-02','1997-03-29','TAKE BACK RETURN','TRUCK','fluffily daring request'), +(2375,5,8,4,5,4525,0.01,0,'N','O','1997-01-31','1997-01-25','1997-02-22','COLLECT COD','REG AIR','packages thrash. furious'), +(2375,88,9,5,42,41499.36,0.01,0.08,'N','O','1997-01-24','1997-02-15','1997-02-07','DELIVER IN PERSON','FOB','quickly special theodolites w'), +(2375,126,7,6,20,20522.4,0.09,0.08,'N','O','1996-12-01','1996-12-26','1996-12-19','TAKE BACK RETURN','SHIP','accounts dazzle fluffily regular packages'), +(2400,103,6,1,48,48148.8,0.01,0.02,'N','O','1998-10-07','1998-08-30','1998-11-03','DELIVER IN PERSON','MAIL','bold deposits use f'), +(2400,90,1,2,1,990.09,0.04,0.07,'N','O','1998-08-18','1998-09-12','1998-09-11','NONE','MAIL','slyly special accoun'), +(2400,53,5,3,23,21920.15,0.02,0.08,'N','O','1998-08-05','1998-08-28','1998-08-30','NONE','SHIP','blithely pending foxes must'), +(2400,17,7,4,23,21091.23,0.09,0.04,'N','O','1998-10-04','1998-10-04','1998-10-31','NONE','RAIL','final sentiment'), +(2401,182,3,1,39,42205.02,0,0.03,'N','O','1997-09-29','1997-10-21','1997-10-17','DELIVER IN PERSON','FOB','furiously regular requests detect fur'), +(2401,3,8,2,49,44247,0.05,0.07,'N','O','1997-09-02','1997-09-11','1997-09-13','TAKE BACK RETURN','AIR','unusual, blithe p'), +(2402,86,7,1,43,42401.44,0.03,0.08,'N','O','1996-09-17','1996-11-20','1996-09-22','DELIVER IN PERSON','RAIL','furiously final requests wake iro'), +(2402,152,4,2,24,25251.6,0.02,0.05,'N','O','1996-11-21','1996-10-19','1996-11-29','DELIVER IN PERSON','SHIP','foxes cajole slyly'), +(2403,83,4,1,34,33424.72,0.04,0.07,'N','O','1998-05-30','1998-06-19','1998-06-05','NONE','REG AIR','slyly regular '), +(2403,152,4,2,19,19990.85,0.08,0.07,'N','O','1998-04-20','1998-07-02','1998-05-13','DELIVER IN PERSON','FOB','regular deposits sleep closely acc'), +(2403,193,4,3,27,29516.13,0.05,0.03,'N','O','1998-07-27','1998-07-08','1998-08-03','NONE','SHIP','packages haggle blithely? special accounts '), +(2403,31,2,4,30,27930.9,0.05,0.06,'N','O','1998-08-08','1998-06-17','1998-08-20','NONE','TRUCK','carefully express '), +(2404,147,10,1,36,37697.04,0.07,0,'N','O','1997-03-27','1997-05-16','1997-04-06','COLLECT COD','REG AIR','furiously final accounts alongside'), +(2404,36,2,2,1,936.03,0.02,0.04,'N','O','1997-05-22','1997-06-06','1997-05-28','DELIVER IN PERSON','MAIL','quickly regular fox'), +(2404,18,5,3,41,37638.41,0.02,0.06,'N','O','1997-06-12','1997-05-03','1997-07-12','NONE','AIR','express accounts cajole. regular, final'), +(2404,57,8,4,19,18183.95,0.09,0.03,'N','O','1997-05-07','1997-05-24','1997-05-24','TAKE BACK RETURN','SHIP','carefully even accounts wake against the'), +(2404,4,9,5,18,16272,0,0.04,'N','O','1997-06-25','1997-05-06','1997-07-02','NONE','RAIL','silent grouches against the pack'), +(2405,89,10,1,18,17803.44,0.09,0.07,'N','O','1997-01-23','1997-03-10','1997-02-03','COLLECT COD','REG AIR','deposits sleep fluffi'); +INSERT INTO lineitem VALUES +(2405,27,10,2,30,27810.6,0.1,0.08,'N','O','1997-03-24','1997-03-10','1997-04-14','TAKE BACK RETURN','AIR','deposits unwin'), +(2405,17,8,3,49,44933.49,0,0.06,'N','O','1996-12-24','1997-03-23','1997-01-01','TAKE BACK RETURN','FOB','fluffily pending deposits'), +(2405,177,7,4,23,24774.91,0.08,0.05,'N','O','1996-12-28','1997-01-29','1997-01-07','NONE','AIR','unusual packages shall use abou'), +(2406,170,5,1,18,19263.06,0.07,0.05,'N','O','1997-02-17','1996-12-25','1997-02-19','COLLECT COD','MAIL','express deposits wake quickly according to '), +(2406,41,8,2,40,37641.6,0.02,0.07,'N','O','1997-01-09','1996-12-02','1997-01-16','NONE','SHIP','quickly final theodolites cajole '), +(2406,50,1,3,16,15200.8,0.07,0.03,'N','O','1996-10-31','1996-11-28','1996-11-08','TAKE BACK RETURN','SHIP','packages poach furiously along'), +(2406,146,9,4,34,35568.76,0.07,0.06,'N','O','1996-12-01','1996-12-07','1996-12-16','NONE','AIR','slyly final requests was along the blith'), +(2406,187,8,5,25,27179.5,0.08,0.02,'N','O','1996-12-03','1996-12-14','1996-12-26','COLLECT COD','MAIL','fluffily ironic instructio'), +(2406,59,4,6,22,21099.1,0.05,0.02,'N','O','1996-11-22','1997-01-17','1996-12-15','NONE','TRUCK','carefully final accounts among the '), +(2406,60,2,7,30,28801.8,0.07,0.07,'N','O','1997-01-17','1997-01-12','1997-01-22','TAKE BACK RETURN','TRUCK','requests sleep '), +(2407,64,3,1,14,13496.84,0.04,0.02,'N','O','1998-10-10','1998-08-25','1998-10-27','NONE','FOB','slyly silent notornis above the '), +(2407,166,7,2,9,9595.44,0.07,0.05,'N','O','1998-08-06','1998-08-11','1998-08-20','TAKE BACK RETURN','TRUCK','quickly pe'), +(2407,131,2,3,39,40214.07,0.02,0.02,'N','O','1998-08-20','1998-09-12','1998-08-22','DELIVER IN PERSON','MAIL','quickly regular platelets affix. quickl'), +(2407,91,4,4,10,9910.9,0.01,0.07,'N','O','1998-08-14','1998-09-10','1998-08-29','COLLECT COD','FOB','carefully ironic courts affi'), +(2407,198,1,5,14,15374.66,0.04,0.05,'N','O','1998-09-24','1998-08-18','1998-10-06','DELIVER IN PERSON','FOB','furiously fina'), +(2407,71,9,6,18,17479.26,0.04,0.01,'N','O','1998-10-03','1998-08-30','1998-10-19','TAKE BACK RETURN','MAIL','fluffily even attainments wake furi'), +(2407,161,8,7,7,7428.12,0.07,0.03,'N','O','1998-09-11','1998-08-15','1998-09-30','TAKE BACK RETURN','MAIL','slyly special packages promise'), +(2432,50,3,1,30,28501.5,0.03,0.02,'N','O','1996-09-05','1996-10-10','1996-10-05','TAKE BACK RETURN','TRUCK','special, regular '), +(2432,162,3,2,8,8497.28,0.07,0.01,'N','O','1996-10-16','1996-10-01','1996-11-13','COLLECT COD','RAIL','furiously bold accounts according to the '), +(2432,109,2,3,13,13118.3,0.07,0.06,'N','O','1996-09-03','1996-10-10','1996-10-03','NONE','RAIL','furiously special somas wake silently. dep'), +(2432,13,4,4,14,12782.14,0,0.06,'N','O','1996-08-18','1996-09-04','1996-08-27','TAKE BACK RETURN','RAIL','slyly express foxes nag. quickly unusual'), +(2433,87,8,1,39,38496.12,0.01,0.04,'R','F','1994-11-20','1994-09-23','1994-12-10','DELIVER IN PERSON','SHIP','quickly pe'), +(2433,134,5,2,20,20682.6,0.05,0.06,'A','F','1994-12-09','1994-10-20','1994-12-15','COLLECT COD','REG AIR','regular packages sublate permanently. '), +(2433,157,2,3,38,40171.7,0.08,0.03,'A','F','1994-10-15','1994-10-23','1994-11-06','DELIVER IN PERSON','SHIP','furiously e'), +(2433,121,6,4,43,43908.16,0.01,0.05,'A','F','1994-10-16','1994-10-23','1994-11-08','DELIVER IN PERSON','RAIL','even frets across the bold, unusual a'), +(2433,108,1,5,3,3024.3,0.06,0.02,'A','F','1994-11-08','1994-09-24','1994-11-17','COLLECT COD','AIR','closely express instructions slee'), +(2434,95,6,1,1,995.09,0.01,0.06,'N','O','1997-08-02','1997-05-28','1997-08-19','TAKE BACK RETURN','MAIL','blithely silent foxes haggl'), +(2434,127,10,2,39,40057.68,0.09,0.05,'N','O','1997-06-10','1997-06-08','1997-07-03','COLLECT COD','RAIL','slyly regular warhorses wake furious'), +(2434,130,3,3,28,28843.64,0.02,0.05,'N','O','1997-06-28','1997-06-26','1997-07-15','COLLECT COD','RAIL','furiously pending req'); +INSERT INTO lineitem VALUES +(2434,168,9,4,49,52339.84,0,0.05,'N','O','1997-08-08','1997-07-23','1997-08-27','DELIVER IN PERSON','FOB','silently ironic deposits haggle '), +(2435,39,10,1,8,7512.24,0.08,0.03,'A','F','1993-06-08','1993-04-04','1993-06-29','COLLECT COD','SHIP','furiously even platelets boost careful'), +(2435,49,2,2,43,40808.72,0.03,0.08,'A','F','1993-03-27','1993-05-20','1993-04-18','DELIVER IN PERSON','TRUCK','slyly pending'), +(2435,12,9,3,24,21888.24,0.07,0.08,'R','F','1993-03-14','1993-05-20','1993-03-26','DELIVER IN PERSON','SHIP','pending pinto beans are slyly alongs'), +(2435,156,4,4,22,23235.3,0.02,0.05,'R','F','1993-05-23','1993-04-14','1993-06-04','NONE','SHIP','silently silent deposits engage slyl'), +(2435,72,2,5,3,2916.21,0.07,0.07,'R','F','1993-06-01','1993-03-25','1993-06-27','DELIVER IN PERSON','FOB','final courts use blithely '), +(2435,46,9,6,17,16082.68,0.02,0.02,'A','F','1993-06-05','1993-05-05','1993-06-14','NONE','TRUCK','ironic requests snooze carefully after '), +(2435,121,10,7,8,8168.96,0.07,0.02,'R','F','1993-05-03','1993-04-02','1993-05-17','COLLECT COD','SHIP','ironic pinto beans nag carefully'), +(2436,155,6,1,48,50647.2,0.04,0.02,'N','O','1995-10-22','1995-10-22','1995-11-16','DELIVER IN PERSON','FOB','ironic dinos a'), +(2436,117,7,2,18,18307.98,0.05,0.03,'N','O','1995-10-14','1995-11-21','1995-11-12','TAKE BACK RETURN','TRUCK','regular grouches haggle carefully upo'), +(2436,164,3,3,6,6384.96,0.06,0.08,'N','O','1995-10-25','1995-11-30','1995-11-24','DELIVER IN PERSON','RAIL','somas sleep. final foxes nod. '), +(2437,94,6,1,46,45728.14,0.07,0.04,'A','F','1993-08-12','1993-06-16','1993-08-29','NONE','RAIL','carefully final deposits wake alongside of'), +(2437,190,1,2,26,28344.94,0,0.04,'A','F','1993-06-25','1993-05-22','1993-07-07','DELIVER IN PERSON','REG AIR','final foxes use near the platelets.'), +(2437,2,7,3,23,20746,0.01,0,'A','F','1993-08-15','1993-06-28','1993-08-23','TAKE BACK RETURN','SHIP','regular theodolites haggle. fluffily silent'), +(2437,116,10,4,12,12193.32,0.03,0.08,'A','F','1993-04-27','1993-07-01','1993-05-18','TAKE BACK RETURN','FOB','quickly regular foxes cajole blithely. f'), +(2437,17,7,5,29,26593.29,0.02,0.06,'A','F','1993-05-12','1993-06-10','1993-05-25','NONE','FOB','slyly ironic fo'), +(2437,19,3,6,10,9190.1,0.1,0.06,'A','F','1993-05-20','1993-06-23','1993-05-22','TAKE BACK RETURN','MAIL','slyly unusual asymptot'), +(2438,165,2,1,45,47932.2,0.01,0,'A','F','1993-10-27','1993-09-24','1993-11-02','COLLECT COD','REG AIR','express, bold req'), +(2438,13,4,2,31,28303.31,0.08,0.01,'R','F','1993-10-16','1993-08-31','1993-11-10','COLLECT COD','REG AIR','ironic, unusual theodo'), +(2438,68,7,3,10,9680.6,0.1,0,'R','F','1993-08-18','1993-08-28','1993-09-08','NONE','SHIP','carefully regular ideas c'), +(2438,161,8,4,27,28651.32,0.01,0.02,'R','F','1993-07-27','1993-10-01','1993-08-06','TAKE BACK RETURN','FOB','even, even tithes boost slyl'), +(2438,166,3,5,28,29852.48,0.07,0.06,'R','F','1993-11-05','1993-08-22','1993-11-22','TAKE BACK RETURN','TRUCK','platelets integrate above the '), +(2438,149,6,6,23,24130.22,0.09,0.02,'R','F','1993-10-06','1993-08-17','1993-10-16','DELIVER IN PERSON','MAIL','always special notornis abou'), +(2438,183,4,7,46,49826.28,0.02,0.05,'R','F','1993-10-27','1993-08-30','1993-11-14','COLLECT COD','SHIP','final deposits integrate blithely spec'), +(2439,164,1,1,2,2128.32,0.09,0.03,'N','O','1997-04-14','1997-06-11','1997-05-09','COLLECT COD','MAIL','even deposits are care'), +(2439,144,5,2,5,5220.7,0.07,0.01,'N','O','1997-04-23','1997-04-26','1997-04-28','DELIVER IN PERSON','FOB','furiously regula'), +(2439,195,7,3,33,36141.27,0.08,0.05,'N','O','1997-06-01','1997-05-15','1997-06-07','TAKE BACK RETURN','FOB','furiously stealthy excuses hag'), +(2464,49,8,1,10,9490.4,0.05,0.03,'N','O','1998-02-04','1997-12-29','1998-02-16','TAKE BACK RETURN','RAIL','final, regular accounts haggle slyly '), +(2464,101,6,2,20,20022,0.01,0.07,'N','O','1997-12-26','1998-01-02','1998-01-24','DELIVER IN PERSON','FOB','carefully special accounts cajo'); +INSERT INTO lineitem VALUES +(2465,68,5,1,27,26137.62,0.05,0.02,'N','O','1995-09-05','1995-09-07','1995-09-17','DELIVER IN PERSON','FOB','furiously re'), +(2465,51,3,2,34,32335.7,0.02,0.05,'N','O','1995-10-02','1995-08-04','1995-10-09','COLLECT COD','RAIL','quickly even instructions '), +(2465,32,3,3,8,7456.24,0.1,0,'N','O','1995-10-16','1995-08-26','1995-11-07','TAKE BACK RETURN','FOB','furiously regular requests '), +(2465,148,7,4,45,47166.3,0.03,0.01,'N','O','1995-09-27','1995-08-25','1995-10-06','NONE','TRUCK','special foxes against the fluffi'), +(2465,47,4,5,50,47352,0.01,0.04,'N','O','1995-09-01','1995-09-06','1995-09-18','TAKE BACK RETURN','TRUCK','idle patterns wake'), +(2465,124,5,6,20,20482.4,0.03,0.03,'N','O','1995-08-16','1995-08-13','1995-09-02','COLLECT COD','FOB','carefully '), +(2466,186,7,1,16,17378.88,0,0.02,'R','F','1994-04-20','1994-04-20','1994-05-09','COLLECT COD','FOB','silent, ironic sauternes grow. blithely'), +(2466,105,8,2,10,10051,0,0,'A','F','1994-05-08','1994-04-06','1994-06-05','DELIVER IN PERSON','AIR','accounts detect carefully across the'), +(2466,14,1,3,29,26506.29,0.1,0.07,'A','F','1994-06-11','1994-04-27','1994-07-10','DELIVER IN PERSON','FOB','slyly ironic escapades'), +(2466,11,8,4,29,26419.29,0.04,0.04,'A','F','1994-04-01','1994-04-20','1994-04-23','DELIVER IN PERSON','MAIL','unusual requests nag regularly reques'), +(2466,79,10,5,30,29372.1,0.02,0.01,'A','F','1994-04-11','1994-05-02','1994-05-02','DELIVER IN PERSON','REG AIR','deposits a'), +(2466,173,2,6,19,20390.23,0.1,0.07,'R','F','1994-06-12','1994-04-18','1994-07-12','NONE','MAIL','even deposits cajole'), +(2466,155,7,7,35,36930.25,0.1,0,'A','F','1994-06-01','1994-05-27','1994-06-21','COLLECT COD','AIR','final, fin'), +(2467,133,9,1,7,7231.91,0,0,'N','O','1995-07-28','1995-10-04','1995-08-27','NONE','REG AIR','final pinto beans cajole alongside of the '), +(2468,94,7,1,46,45728.14,0,0.04,'N','O','1997-07-16','1997-08-09','1997-08-07','COLLECT COD','SHIP','furiously regular packages after the slyly '), +(2468,21,10,2,43,39603.86,0,0.04,'N','O','1997-08-17','1997-08-21','1997-08-30','DELIVER IN PERSON','FOB','carefully special foxes detect furi'), +(2468,195,6,3,44,48188.36,0,0.03,'N','O','1997-10-01','1997-08-02','1997-10-09','TAKE BACK RETURN','RAIL','blithely r'), +(2468,82,3,4,5,4910.4,0.08,0,'N','O','1997-06-28','1997-08-02','1997-07-22','NONE','MAIL','express instructions nag: packages eat f'), +(2468,159,7,5,18,19064.7,0.07,0,'N','O','1997-07-25','1997-08-26','1997-08-14','DELIVER IN PERSON','REG AIR','furiously regular request'), +(2469,166,1,1,11,11727.76,0,0.04,'N','O','1997-02-09','1997-01-26','1997-02-16','NONE','TRUCK','blithely express'), +(2469,114,1,2,16,16225.76,0.07,0.06,'N','O','1997-02-19','1997-02-04','1997-03-18','NONE','MAIL','accounts must have to wake'), +(2469,11,5,3,48,43728.48,0.05,0.06,'N','O','1997-01-11','1997-01-03','1997-01-15','TAKE BACK RETURN','AIR','blithely express packages wake furiously'), +(2469,88,9,4,35,34582.8,0.06,0.06,'N','O','1997-02-04','1997-02-02','1997-02-17','DELIVER IN PERSON','RAIL','carefully r'), +(2469,121,4,5,30,30633.6,0.09,0.01,'N','O','1996-12-21','1997-01-29','1997-01-02','COLLECT COD','SHIP','quietly even requ'), +(2469,104,5,6,49,49200.9,0.02,0.02,'N','O','1997-03-03','1996-12-26','1997-03-13','NONE','AIR','quickly unusual requests are c'), +(2469,127,10,7,8,8216.96,0.02,0,'N','O','1997-03-15','1997-01-20','1997-04-13','NONE','TRUCK','carefully final foxes '), +(2470,110,5,1,12,12121.32,0.06,0.06,'N','O','1997-07-12','1997-05-24','1997-07-17','TAKE BACK RETURN','FOB','furiously even requests a'), +(2470,100,4,2,50,50005,0.03,0.03,'N','O','1997-06-02','1997-06-01','1997-06-09','COLLECT COD','AIR','slow reques'), +(2470,64,3,3,10,9640.6,0.05,0.08,'N','O','1997-06-20','1997-06-19','1997-06-24','TAKE BACK RETURN','FOB','carefully special packages boost quic'), +(2470,162,3,4,30,31864.8,0.04,0.08,'N','O','1997-08-04','1997-07-13','1997-08-14','DELIVER IN PERSON','AIR','regular, specia'); +INSERT INTO lineitem VALUES +(2471,84,5,1,37,36410.96,0.05,0.01,'N','O','1998-05-28','1998-04-17','1998-06-08','COLLECT COD','TRUCK','slyly bold accounts det'), +(2496,141,8,1,38,39563.32,0.02,0.07,'R','F','1994-03-26','1994-04-06','1994-04-23','COLLECT COD','RAIL','quickly final requests are carefully expre'), +(2496,23,4,2,39,35997.78,0.03,0,'R','F','1994-03-23','1994-02-18','1994-04-10','TAKE BACK RETURN','FOB','unusual platel'), +(2496,189,10,3,36,39210.48,0.09,0.04,'R','F','1994-03-27','1994-03-15','1994-04-17','TAKE BACK RETURN','SHIP','bold accounts'), +(2496,24,9,4,30,27720.6,0.04,0.01,'A','F','1994-01-27','1994-03-11','1994-01-31','DELIVER IN PERSON','RAIL','regular courts believe carefully.'), +(2497,12,2,1,34,31008.34,0.02,0.03,'R','F','1992-09-02','1992-10-19','1992-09-12','COLLECT COD','AIR','regular, even pin'), +(2497,77,7,2,15,14656.05,0.09,0.02,'A','F','1992-12-23','1992-11-20','1993-01-18','DELIVER IN PERSON','SHIP','quickly final Tiresi'), +(2497,34,5,3,28,26152.84,0.02,0.08,'A','F','1992-12-02','1992-11-21','1992-12-04','DELIVER IN PERSON','REG AIR','fluffily express hockey '), +(2497,144,5,4,48,50118.72,0.06,0.05,'A','F','1992-09-29','1992-11-13','1992-10-19','TAKE BACK RETURN','AIR','carefully bold deposits cajole fu'), +(2497,175,5,5,28,30104.76,0.04,0.05,'A','F','1992-11-10','1992-09-30','1992-11-18','DELIVER IN PERSON','MAIL','furiously pending theodoli'), +(2497,71,2,6,19,18450.33,0.05,0.08,'A','F','1992-11-10','1992-11-20','1992-12-05','TAKE BACK RETURN','TRUCK','quickly final deposits among the'), +(2498,143,2,1,48,50070.72,0.1,0.01,'R','F','1993-11-25','1994-01-09','1993-12-24','DELIVER IN PERSON','RAIL','pending plat'), +(2499,150,3,1,15,15752.25,0.04,0.06,'N','O','1995-12-21','1995-12-06','1996-01-19','DELIVER IN PERSON','FOB','furiously even pinto beans are blithely q'), +(2499,46,3,2,48,45409.92,0.09,0.03,'N','O','1995-10-14','1995-12-12','1995-11-11','DELIVER IN PERSON','AIR','slyly stealthy instruc'), +(2499,133,9,3,31,32027.03,0.09,0.05,'N','O','1995-12-09','1995-10-28','1996-01-05','COLLECT COD','AIR','furiously r'), +(2499,159,7,4,39,41306.85,0.06,0.02,'N','O','1995-10-26','1995-10-27','1995-11-07','TAKE BACK RETURN','SHIP','carefully ironic ideas wak'), +(2499,130,9,5,6,6180.78,0.02,0.01,'N','O','1995-11-19','1995-12-14','1995-12-08','NONE','SHIP','carefully unusual ide'), +(2499,119,3,6,12,12229.32,0.04,0.05,'N','O','1995-11-18','1995-12-13','1995-11-23','COLLECT COD','REG AIR','quickly fina'), +(2500,192,3,1,40,43687.6,0,0.02,'A','F','1992-09-02','1992-09-30','1992-09-06','DELIVER IN PERSON','SHIP','carefully special acco'), +(2500,37,8,2,34,31859.02,0.06,0.02,'R','F','1992-10-03','1992-11-11','1992-10-29','DELIVER IN PERSON','TRUCK','furiously final requests are car'), +(2500,80,10,3,41,40183.28,0.02,0,'R','F','1992-09-02','1992-11-11','1992-09-06','DELIVER IN PERSON','RAIL','quickly ironic accounts nag deposits. quick'), +(2500,69,8,4,17,16474.02,0.01,0.02,'A','F','1992-09-30','1992-10-16','1992-10-05','DELIVER IN PERSON','REG AIR','regular, blithe deposits promise sly'), +(2501,84,5,1,4,3936.32,0.1,0.06,'N','O','1997-07-17','1997-07-27','1997-07-22','COLLECT COD','RAIL','special, final accounts sleep '), +(2501,106,1,2,33,33201.3,0.01,0.04,'N','O','1997-07-14','1997-08-09','1997-07-26','NONE','MAIL','ironic pinto beans hang fluffily. busily'), +(2501,72,2,3,20,19441.4,0.1,0.06,'N','O','1997-09-23','1997-07-01','1997-10-03','DELIVER IN PERSON','RAIL','accounts wake sl'), +(2501,58,10,4,26,24909.3,0.09,0.01,'N','O','1997-07-15','1997-08-15','1997-07-28','DELIVER IN PERSON','SHIP','furious dolphins cajole at '), +(2502,163,4,1,33,35084.28,0.1,0.06,'R','F','1993-08-12','1993-07-22','1993-09-04','COLLECT COD','REG AIR','furiously pending courts sleep. alway'), +(2503,123,2,1,33,33762.96,0.06,0.01,'R','F','1993-07-06','1993-08-14','1993-08-02','NONE','SHIP','carefully spe'), +(2503,65,10,2,28,27021.68,0.06,0.01,'R','F','1993-08-08','1993-08-31','1993-08-10','NONE','SHIP','carefully pending r'); +INSERT INTO lineitem VALUES +(2503,46,7,3,50,47302,0.09,0.01,'A','F','1993-09-22','1993-08-17','1993-09-29','DELIVER IN PERSON','TRUCK','carefully '), +(2503,91,5,4,27,26759.43,0.09,0,'A','F','1993-07-12','1993-07-24','1993-07-22','DELIVER IN PERSON','TRUCK','accounts after the idea'), +(2503,48,5,5,3,2844.12,0.04,0.02,'A','F','1993-07-10','1993-09-17','1993-07-19','TAKE BACK RETURN','TRUCK','final, final asymp'), +(2503,128,7,6,39,40096.68,0.05,0.05,'R','F','1993-10-11','1993-09-09','1993-10-16','NONE','MAIL','express deposits boost blithely a'), +(2503,19,6,7,17,15623.17,0.09,0.08,'R','F','1993-09-04','1993-07-31','1993-09-23','DELIVER IN PERSON','SHIP','furiously pending request'), +(2528,1,2,1,10,9010,0.02,0.03,'R','F','1994-12-12','1994-12-29','1994-12-28','COLLECT COD','REG AIR','express requests are packages. pearls acco'), +(2528,74,3,2,13,12662.91,0,0.03,'A','F','1994-11-27','1995-01-20','1994-12-03','TAKE BACK RETURN','REG AIR','silent accounts sleep silent'), +(2528,175,6,3,35,37630.95,0.1,0,'R','F','1994-12-19','1995-02-04','1995-01-15','NONE','MAIL','ironic foxes toward the blithely special f'), +(2528,65,4,4,37,35707.22,0,0.01,'A','F','1994-12-25','1995-02-02','1994-12-31','COLLECT COD','AIR','carefully even deposits '), +(2529,131,7,1,4,4124.52,0.07,0.07,'N','O','1996-10-19','1996-11-18','1996-10-24','DELIVER IN PERSON','SHIP','furiously '), +(2530,21,2,1,9,8289.18,0.09,0.03,'R','F','1994-05-10','1994-04-30','1994-05-24','TAKE BACK RETURN','REG AIR','thin, sile'), +(2530,93,7,2,42,41709.78,0.04,0.08,'R','F','1994-03-27','1994-05-20','1994-03-29','NONE','RAIL','carefully ironic ins'), +(2530,108,1,3,8,8064.8,0.1,0.08,'A','F','1994-05-02','1994-05-08','1994-05-24','DELIVER IN PERSON','MAIL','silent pinto beans use care'), +(2531,148,7,1,9,9433.26,0.03,0.07,'N','O','1996-07-27','1996-07-03','1996-08-01','DELIVER IN PERSON','AIR','special, unusual dependencies sleep'), +(2531,157,2,2,3,3171.45,0.07,0.06,'N','O','1996-07-20','1996-06-20','1996-08-10','NONE','MAIL','blithely unusual pinto beans use blithely?'), +(2531,86,7,3,20,19721.6,0.06,0.04,'N','O','1996-07-18','1996-06-25','1996-07-29','TAKE BACK RETURN','TRUCK','furiously even asymptotes agains'), +(2531,191,5,4,36,39282.84,0.08,0.01,'N','O','1996-06-11','1996-07-26','1996-06-27','NONE','MAIL','furiously special packages wake finally. f'), +(2531,56,4,5,28,26769.4,0.03,0.07,'N','O','1996-07-06','1996-07-31','1996-07-19','TAKE BACK RETURN','REG AIR','furiously express dependencies detect fur'), +(2531,145,4,6,46,48076.44,0.1,0.08,'N','O','1996-07-03','1996-06-27','1996-07-12','TAKE BACK RETURN','REG AIR','furiously regular requests '), +(2532,53,4,1,3,2859.15,0.06,0.07,'N','O','1995-12-14','1995-11-28','1995-12-15','COLLECT COD','FOB','slyly bold foxes about the '), +(2532,160,2,2,33,34985.28,0.06,0.05,'N','O','1995-11-23','1996-01-04','1995-12-16','DELIVER IN PERSON','TRUCK','packages are furiously along th'), +(2532,135,1,3,1,1035.13,0,0.06,'N','O','1996-01-27','1995-11-23','1996-01-29','DELIVER IN PERSON','REG AIR','carefully bold p'), +(2532,78,8,4,50,48903.5,0.02,0.02,'N','O','1995-11-13','1996-01-01','1995-11-26','NONE','TRUCK','express foxes haggle. caref'), +(2532,114,1,5,9,9126.99,0.09,0.04,'N','O','1995-11-30','1995-11-23','1995-12-12','DELIVER IN PERSON','TRUCK','blithely special packages along the speci'), +(2532,150,1,6,20,21003,0.09,0.05,'N','O','1995-12-02','1995-11-26','1995-12-08','TAKE BACK RETURN','AIR','furiously spe'), +(2533,54,9,1,36,34345.8,0.06,0.04,'N','O','1997-06-10','1997-04-28','1997-07-01','NONE','REG AIR','slyly special deposits along the ca'), +(2533,198,10,2,5,5490.95,0.1,0.04,'N','O','1997-05-26','1997-06-02','1997-06-24','NONE','FOB','platelets eat blithely according to'), +(2533,183,4,3,37,40077.66,0,0.08,'N','O','1997-05-10','1997-04-26','1997-05-28','COLLECT COD','SHIP','final deposits sleep. caref'), +(2533,30,5,4,17,15810.51,0.06,0.02,'N','O','1997-05-23','1997-05-10','1997-06-18','NONE','FOB','accounts are furiou'); +INSERT INTO lineitem VALUES +(2533,126,1,5,38,38992.56,0.09,0,'N','O','1997-05-10','1997-06-02','1997-05-28','TAKE BACK RETURN','REG AIR','furiously exp'), +(2533,184,5,6,20,21683.6,0.05,0.08,'N','O','1997-07-04','1997-04-30','1997-07-05','COLLECT COD','FOB','ironic requests into the ironic foxe'), +(2533,94,7,7,14,13917.26,0.06,0.04,'N','O','1997-07-06','1997-05-08','1997-08-03','COLLECT COD','FOB','final requests at the p'), +(2534,139,5,1,29,30134.77,0.07,0.07,'N','O','1996-08-09','1996-09-29','1996-08-11','COLLECT COD','TRUCK','final requests wake across the busily regul'), +(2534,27,6,2,49,45423.98,0.08,0.08,'N','O','1996-09-01','1996-08-20','1996-09-06','NONE','SHIP','thin instructions are slyly '), +(2534,1,4,3,50,45050,0.1,0.06,'N','O','1996-09-25','1996-10-07','1996-10-09','TAKE BACK RETURN','AIR','even courts ag'), +(2534,75,3,4,43,41928.01,0.09,0.02,'N','O','1996-10-25','1996-09-30','1996-11-05','TAKE BACK RETURN','REG AIR','quickly regular packages about the fu'), +(2534,165,2,5,14,14912.24,0.05,0.02,'N','O','1996-08-12','1996-09-26','1996-08-28','COLLECT COD','MAIL','requests detect accounts. req'), +(2534,116,10,6,12,12193.32,0.02,0.02,'N','O','1996-07-29','1996-10-12','1996-08-14','TAKE BACK RETURN','AIR','quickly ironic platelet'), +(2534,173,3,7,17,18243.89,0.02,0.07,'N','O','1996-07-22','1996-09-15','1996-08-03','NONE','SHIP','ideas are fluffily; bli'), +(2535,199,2,1,5,5495.95,0.06,0.01,'A','F','1993-09-07','1993-07-25','1993-09-29','DELIVER IN PERSON','REG AIR','carefully even excuses de'), +(2535,39,5,2,12,11268.36,0.08,0.05,'A','F','1993-07-17','1993-08-17','1993-07-31','TAKE BACK RETURN','FOB','carefully special instructions detect sly'), +(2535,54,5,3,5,4770.25,0.09,0.06,'R','F','1993-07-28','1993-08-14','1993-08-11','DELIVER IN PERSON','SHIP','carefully final idea'), +(2535,160,5,4,19,20143.04,0.01,0.02,'A','F','1993-06-01','1993-08-01','1993-06-19','DELIVER IN PERSON','FOB','furiously unusual instructions use alo'), +(2535,174,3,5,25,26854.25,0.07,0.04,'A','F','1993-07-19','1993-08-07','1993-07-27','NONE','REG AIR','slyly regular pinto beans sleep'), +(2560,169,10,1,41,43835.56,0.07,0.01,'R','F','1992-10-23','1992-11-11','1992-11-22','NONE','SHIP','idly silen'), +(2560,4,9,2,27,24408,0,0.01,'R','F','1992-12-03','1992-11-16','1992-12-30','NONE','MAIL','quickly ironic'), +(2560,46,5,3,31,29327.24,0.01,0.05,'A','F','1992-11-14','1992-10-14','1992-12-11','DELIVER IN PERSON','AIR','slyly final dep'), +(2560,72,1,4,36,34994.52,0.01,0.02,'A','F','1992-10-18','1992-10-30','1992-11-05','TAKE BACK RETURN','MAIL','carefully express requests after th'), +(2560,42,1,5,9,8478.36,0.04,0.02,'A','F','1992-10-23','1992-10-29','1992-11-02','COLLECT COD','REG AIR','slyly express packages along the blithel'), +(2560,108,9,6,13,13105.3,0.03,0.06,'A','F','1992-09-07','1992-10-21','1992-09-24','COLLECT COD','FOB','dogged gifts use carefully ironic Tire'), +(2561,25,4,1,32,29600.64,0.02,0.01,'N','O','1998-01-05','1997-12-28','1998-01-26','DELIVER IN PERSON','REG AIR','carefully final pinto bea'), +(2561,98,1,2,5,4990.45,0.07,0.04,'N','O','1997-12-27','1998-01-23','1998-01-13','TAKE BACK RETURN','AIR','bravely silent ac'), +(2561,173,4,3,47,50438.99,0.04,0.02,'N','O','1997-11-19','1998-01-21','1997-12-03','DELIVER IN PERSON','REG AIR','ironic packag'), +(2561,108,9,4,39,39315.9,0.08,0.06,'N','O','1998-01-20','1997-12-16','1998-02-05','TAKE BACK RETURN','MAIL','pending, careful deposits haggle! pending,'), +(2561,150,3,5,2,2100.3,0.04,0.08,'N','O','1998-03-14','1998-01-21','1998-03-27','DELIVER IN PERSON','TRUCK','attainments are fluffily among'), +(2561,51,6,6,14,13314.7,0.02,0.03,'N','O','1998-03-07','1998-02-04','1998-03-21','COLLECT COD','RAIL','regular, even r'), +(2562,53,5,1,28,26685.4,0.04,0.03,'R','F','1992-10-04','1992-09-24','1992-10-09','COLLECT COD','MAIL','quickly express packages los'), +(2562,148,9,2,1,1048.14,0.01,0.06,'R','F','1992-10-16','1992-09-18','1992-10-17','NONE','TRUCK','express platelets are permane'); +INSERT INTO lineitem VALUES +(2562,66,7,3,25,24151.5,0.05,0.03,'A','F','1992-11-23','1992-10-08','1992-12-19','DELIVER IN PERSON','REG AIR','fluffily special packages sl'), +(2562,148,1,4,37,38781.18,0.08,0.03,'R','F','1992-10-29','1992-10-06','1992-11-09','COLLECT COD','FOB','slyly bold packages wake after the e'), +(2562,160,8,5,29,30744.64,0.05,0.08,'A','F','1992-11-01','1992-09-29','1992-11-13','TAKE BACK RETURN','MAIL','regular theodolites integrate above th'), +(2562,50,7,6,17,16150.85,0.01,0.06,'A','F','1992-10-15','1992-10-08','1992-10-26','DELIVER IN PERSON','TRUCK','furiously express packages '), +(2563,65,4,1,10,9650.6,0.07,0.04,'A','F','1994-01-26','1993-12-19','1994-01-28','DELIVER IN PERSON','AIR','furiously final deposits in'), +(2563,167,4,2,28,29880.48,0.04,0.03,'R','F','1994-03-17','1994-02-04','1994-04-13','TAKE BACK RETURN','RAIL','blithely ironic pinto beans cajole bold '), +(2563,119,9,3,39,39745.29,0.07,0,'R','F','1994-02-10','1993-12-31','1994-02-19','COLLECT COD','FOB','carefully sile'), +(2563,90,1,4,50,49504.5,0.01,0.01,'A','F','1994-01-26','1994-01-03','1994-02-09','DELIVER IN PERSON','SHIP','final deposits wake. blithely regular'), +(2563,15,6,5,42,38430.42,0.06,0.08,'R','F','1994-02-21','1994-02-14','1994-03-04','DELIVER IN PERSON','AIR','theodolites are even pack'), +(2563,121,2,6,5,5105.6,0.1,0,'R','F','1993-12-27','1993-12-19','1994-01-02','DELIVER IN PERSON','REG AIR','packages sleep dependencies. bold pinto be'), +(2564,112,3,1,4,4048.44,0.02,0,'R','F','1994-11-12','1994-10-29','1994-12-04','NONE','MAIL','regular asymptotes sleep deposits. iron'), +(2565,144,5,1,42,43853.88,0.04,0.08,'N','O','1998-04-07','1998-04-02','1998-05-04','NONE','AIR','deposits play fluffily. furio'), +(2565,189,10,2,26,28318.68,0.05,0.08,'N','O','1998-05-07','1998-04-09','1998-05-15','DELIVER IN PERSON','TRUCK','quickly ironic requests cajole'), +(2565,115,5,3,34,34513.74,0.06,0.06,'N','O','1998-03-19','1998-04-12','1998-04-17','DELIVER IN PERSON','SHIP','theodolites wake furiously. packages b'), +(2565,17,7,4,25,22925.25,0.1,0.08,'N','O','1998-06-27','1998-05-20','1998-07-13','DELIVER IN PERSON','RAIL','blithely pending ideas cajole ca'), +(2565,76,7,5,26,25377.82,0.08,0.03,'N','O','1998-03-05','1998-04-11','1998-03-11','TAKE BACK RETURN','AIR','furiously final dependencies a'), +(2565,141,4,6,48,49974.72,0.08,0.07,'N','O','1998-06-18','1998-05-06','1998-07-13','DELIVER IN PERSON','TRUCK','slyly even reques'), +(2566,148,5,1,19,19914.66,0.06,0.07,'R','F','1992-12-21','1992-11-24','1992-12-22','DELIVER IN PERSON','MAIL','carefully quiet'), +(2566,181,2,2,42,45409.56,0.08,0.02,'R','F','1992-12-20','1992-12-22','1992-12-29','COLLECT COD','MAIL','fluffily express theodolites across the '), +(2566,23,8,3,18,16614.36,0.09,0.02,'A','F','1992-11-16','1992-12-24','1992-12-16','COLLECT COD','FOB','carefully pending req'), +(2566,42,9,4,3,2826.12,0.05,0.02,'A','F','1992-11-04','1992-12-30','1992-12-04','TAKE BACK RETURN','FOB','slyly regular dugouts haggle '), +(2566,22,3,5,9,8298.18,0.04,0.03,'R','F','1992-12-14','1992-12-28','1992-12-16','NONE','FOB','express ideas after the quickly unusua'), +(2566,128,3,6,1,1028.12,0.07,0.03,'A','F','1992-10-28','1992-11-20','1992-11-22','TAKE BACK RETURN','AIR','foxes about the bold the'), +(2567,26,9,1,39,36114.78,0.03,0.04,'N','O','1998-05-10','1998-05-10','1998-05-21','NONE','SHIP','carefully regular gi'), +(2567,112,3,2,50,50605.5,0.06,0.05,'N','O','1998-05-05','1998-04-18','1998-05-09','DELIVER IN PERSON','TRUCK','fluffily ironic accounts nag'), +(2567,52,10,3,6,5712.3,0.03,0.06,'N','O','1998-04-21','1998-04-14','1998-05-11','NONE','RAIL','slow accounts are dari'), +(2567,158,6,4,50,52907.5,0.05,0.03,'N','O','1998-03-27','1998-05-25','1998-04-23','DELIVER IN PERSON','FOB','slyly special excuses caj'), +(2567,81,2,5,46,45129.68,0.07,0.02,'N','O','1998-06-02','1998-04-30','1998-06-13','COLLECT COD','AIR','theodolites integrate slyly special f'), +(2567,100,3,6,32,32003.2,0.01,0.07,'N','O','1998-05-24','1998-04-30','1998-06-14','NONE','RAIL','blithely regular deposits '); +INSERT INTO lineitem VALUES +(2567,135,6,7,43,44510.59,0.06,0.02,'N','O','1998-05-11','1998-04-15','1998-05-29','NONE','RAIL','ironic packages detect b'), +(2592,90,1,1,7,6930.63,0.1,0.04,'R','F','1993-03-13','1993-04-25','1993-04-01','NONE','REG AIR','slyly express instructions haggle qu'), +(2592,66,1,2,2,1932.12,0.1,0,'A','F','1993-03-24','1993-04-05','1993-04-16','DELIVER IN PERSON','RAIL','express, ironic packages after the carefull'), +(2593,105,2,1,37,37188.7,0.08,0.06,'R','F','1993-12-14','1993-10-08','1994-01-04','NONE','SHIP','fluffily bol'), +(2593,90,1,2,28,27722.52,0.08,0.03,'A','F','1993-10-30','1993-10-18','1993-11-06','DELIVER IN PERSON','SHIP','blithely express excuses na'), +(2593,128,3,3,6,6168.72,0.04,0.05,'A','F','1993-11-28','1993-10-04','1993-12-28','TAKE BACK RETURN','REG AIR','pending, special pack'), +(2593,161,10,4,44,46691.04,0.02,0.08,'A','F','1993-09-05','1993-10-23','1993-09-29','NONE','RAIL','special, regular '), +(2593,4,5,5,3,2712,0.03,0,'A','F','1993-12-16','1993-11-01','1993-12-29','COLLECT COD','SHIP','dogged ideas was quickly about the blit'), +(2593,175,6,6,1,1075.17,0.08,0.08,'A','F','1993-11-23','1993-10-25','1993-12-04','DELIVER IN PERSON','RAIL','blithely even accou'), +(2593,192,5,7,11,12014.09,0,0.07,'R','F','1993-11-01','1993-11-19','1993-11-28','TAKE BACK RETURN','RAIL','pending pinto beans affix quickly above t'), +(2594,72,3,1,7,6804.49,0.06,0.02,'R','F','1993-03-26','1993-03-05','1993-04-24','DELIVER IN PERSON','FOB','blithely ironic reque'), +(2594,124,9,2,13,13313.56,0.1,0.05,'R','F','1993-02-06','1993-03-01','1993-02-23','TAKE BACK RETURN','TRUCK','quickly regul'), +(2594,126,1,3,24,24626.88,0.03,0,'A','F','1993-01-31','1993-03-10','1993-02-04','COLLECT COD','REG AIR','final, express epit'), +(2594,144,7,4,46,48030.44,0,0.08,'R','F','1993-04-17','1993-03-06','1993-04-21','TAKE BACK RETURN','SHIP','fluffily ironic accounts af'), +(2595,61,2,1,42,40364.52,0.08,0.02,'N','O','1996-03-24','1996-01-28','1996-04-10','DELIVER IN PERSON','MAIL','final deposits acros'), +(2595,88,9,2,30,29642.4,0.05,0.01,'N','O','1996-03-05','1996-02-23','1996-03-19','NONE','AIR','final requests cajole final packages.'), +(2595,24,3,3,19,17556.38,0.01,0.05,'N','O','1995-12-23','1996-03-02','1996-01-17','COLLECT COD','MAIL','blithely fl'), +(2595,159,1,4,29,30715.35,0.07,0.05,'N','O','1996-01-01','1996-02-13','1996-01-18','TAKE BACK RETURN','RAIL','enticingly reg'), +(2595,86,7,5,30,29582.4,0.09,0.07,'N','O','1996-03-16','1996-01-31','1996-04-05','TAKE BACK RETURN','FOB','quickly pending packages are blithely aro'), +(2595,82,3,6,31,30444.48,0.06,0.04,'N','O','1996-02-07','1996-02-10','1996-03-05','DELIVER IN PERSON','AIR','ironic accounts use alongsid'), +(2596,170,5,1,6,6421.02,0.05,0.01,'N','O','1996-12-15','1996-11-02','1996-12-29','TAKE BACK RETURN','TRUCK','regular reque'), +(2596,139,10,2,43,44682.59,0.07,0.03,'N','O','1996-09-03','1996-10-26','1996-09-15','NONE','FOB','unusual excuses abou'), +(2596,39,5,3,19,17841.57,0.1,0,'N','O','1996-09-02','1996-11-03','1996-09-06','COLLECT COD','AIR','evenly regular packages sleep. unusua'), +(2596,105,6,4,10,10051,0.06,0.05,'N','O','1996-08-25','1996-11-05','1996-09-13','DELIVER IN PERSON','REG AIR','furiously bold deposits alo'), +(2597,84,5,1,24,23617.92,0.07,0,'A','F','1993-05-15','1993-03-06','1993-05-25','TAKE BACK RETURN','FOB','dogged, thin depen'), +(2598,7,4,1,12,10884,0,0.01,'N','O','1996-06-17','1996-04-12','1996-06-24','COLLECT COD','TRUCK','pending foxes about the carefully final '), +(2598,148,7,2,40,41925.6,0.07,0.02,'N','O','1996-05-11','1996-05-19','1996-06-08','TAKE BACK RETURN','AIR','even deposits wake slyly b'), +(2598,104,9,3,4,4016.4,0.03,0.03,'N','O','1996-05-23','1996-05-13','1996-05-25','COLLECT COD','AIR','slyly bold requests slee'), +(2598,23,2,4,19,17537.38,0.02,0,'N','O','1996-04-09','1996-05-30','1996-04-17','TAKE BACK RETURN','RAIL','slyly pending deposits cajole carefully. pe'), +(2598,106,3,5,12,12073.2,0.01,0.08,'N','O','1996-04-14','1996-04-24','1996-04-21','TAKE BACK RETURN','REG AIR','carefully regular excuses w'); +INSERT INTO lineitem VALUES +(2599,101,4,1,11,11012.1,0.08,0.08,'N','O','1997-02-01','1996-12-14','1997-02-27','TAKE BACK RETURN','FOB','asymptotes haggle quickly qu'), +(2599,42,5,2,26,24493.04,0.03,0.04,'N','O','1996-11-08','1996-12-21','1996-11-24','TAKE BACK RETURN','AIR','special dependencies use carefully a'), +(2599,99,10,3,29,28973.61,0.09,0.03,'N','O','1997-01-10','1996-12-10','1997-02-02','COLLECT COD','RAIL','sometimes express instructions among the en'), +(2624,63,10,1,15,14445.9,0.03,0.07,'N','O','1997-02-28','1997-02-19','1997-03-21','DELIVER IN PERSON','AIR','requests haggle. request'), +(2624,189,10,2,12,13070.16,0.07,0,'N','O','1997-02-24','1997-02-22','1997-02-27','DELIVER IN PERSON','SHIP','accounts nag slyly'), +(2625,20,1,1,42,38640.84,0.02,0.04,'R','F','1992-10-18','1992-11-17','1992-10-23','DELIVER IN PERSON','AIR','quickly even excuses use slyly ironic do'), +(2626,22,5,1,45,41490.9,0.09,0.04,'N','O','1995-11-22','1995-11-01','1995-11-23','NONE','AIR','silent, regular instructions was slyly e'), +(2626,175,3,2,2,2150.34,0.05,0.07,'N','O','1995-10-19','1995-11-09','1995-10-24','TAKE BACK RETURN','FOB','regular accounts unwi'), +(2626,154,2,3,40,42166,0.05,0.07,'N','O','1995-09-28','1995-12-03','1995-10-10','NONE','REG AIR','bold frets affix final pa'), +(2627,131,7,1,28,28871.64,0.09,0.02,'R','F','1992-05-14','1992-05-09','1992-05-31','COLLECT COD','SHIP','packages across'), +(2628,106,9,1,44,44268.4,0.07,0.03,'R','F','1994-01-11','1994-01-14','1994-01-13','DELIVER IN PERSON','SHIP','pending packages haggle '), +(2628,106,9,2,14,14085.4,0.01,0.03,'A','F','1994-01-28','1993-11-30','1994-02-20','TAKE BACK RETURN','SHIP','carefully regular excuses wake furi'), +(2628,64,9,3,42,40490.52,0,0,'A','F','1993-11-20','1994-01-04','1993-12-19','DELIVER IN PERSON','TRUCK','quickly bold dependencies acco'), +(2628,95,7,4,23,22887.07,0.08,0.04,'A','F','1993-10-27','1994-01-08','1993-11-12','DELIVER IN PERSON','TRUCK','slyly fina'), +(2628,90,1,5,50,49504.5,0.07,0.01,'A','F','1994-01-13','1993-12-11','1994-01-14','NONE','AIR','bravely final ins'), +(2629,118,9,1,6,6108.66,0.06,0.05,'N','O','1998-06-10','1998-05-29','1998-06-13','DELIVER IN PERSON','SHIP','furiously ironic pa'), +(2629,124,7,2,31,31747.72,0.08,0.03,'N','O','1998-05-24','1998-05-26','1998-06-10','COLLECT COD','AIR','even foxes s'), +(2629,128,9,3,29,29815.48,0.08,0.07,'N','O','1998-07-09','1998-06-17','1998-07-12','TAKE BACK RETURN','AIR','final, special accounts cajol'), +(2629,70,5,4,33,32012.31,0.06,0.03,'N','O','1998-05-29','1998-05-14','1998-05-30','NONE','TRUCK','fluffily pending asymptotes boost'), +(2630,29,8,1,46,42734.92,0.05,0.03,'R','F','1992-11-05','1992-12-17','1992-12-05','TAKE BACK RETURN','MAIL','slyly ironic ideas alongsid'), +(2630,57,2,2,8,7656.4,0.09,0.07,'A','F','1992-11-16','1993-01-01','1992-12-07','DELIVER IN PERSON','TRUCK','fluffily enticing dolp'), +(2630,173,2,3,45,48292.65,0.08,0.07,'A','F','1993-01-04','1993-01-11','1993-01-09','NONE','FOB','carefully final theodolites '), +(2630,162,9,4,29,30802.64,0.08,0.07,'A','F','1992-12-03','1993-01-04','1992-12-12','DELIVER IN PERSON','SHIP','carefully final accounts haggle'), +(2631,122,7,1,42,42929.04,0,0.03,'A','F','1994-01-04','1993-12-01','1994-01-16','TAKE BACK RETURN','SHIP','carefully pending deposits sleep fluff'), +(2631,67,4,2,4,3868.24,0.07,0.06,'R','F','1993-11-03','1993-12-17','1993-11-05','COLLECT COD','AIR','furiously regula'), +(2631,118,8,3,15,15271.65,0.06,0.05,'A','F','1993-09-30','1993-11-06','1993-10-13','DELIVER IN PERSON','SHIP','requests cajole car'), +(2656,181,2,1,10,10811.8,0.02,0.06,'R','F','1993-06-28','1993-07-04','1993-07-12','TAKE BACK RETURN','TRUCK','quick ideas caj'), +(2656,137,8,2,38,39410.94,0.07,0.02,'A','F','1993-06-25','1993-06-04','1993-07-24','NONE','RAIL','quickly bold packages are inside the'), +(2656,2,5,3,19,17138,0.03,0.02,'R','F','1993-08-03','1993-07-25','1993-08-20','TAKE BACK RETURN','MAIL','carefully pendin'); +INSERT INTO lineitem VALUES +(2656,110,3,4,40,40404.4,0.05,0.04,'R','F','1993-06-09','1993-07-24','1993-06-21','DELIVER IN PERSON','RAIL','furiously unusual asymptotes '), +(2657,115,9,1,22,22332.42,0.02,0.03,'N','O','1995-12-08','1995-12-28','1995-12-21','TAKE BACK RETURN','MAIL','express requests sleep blithely amon'), +(2657,165,2,2,15,15977.4,0.08,0.05,'N','O','1995-12-09','1995-12-16','1995-12-18','NONE','RAIL','blithely special asymptotes integrate caref'), +(2657,79,9,3,25,24476.75,0.02,0.04,'N','O','1995-10-21','1995-12-12','1995-11-09','COLLECT COD','FOB','slyly express pinto beans'), +(2657,55,7,4,11,10505.55,0.04,0.08,'N','O','1995-11-19','1995-12-11','1995-11-24','COLLECT COD','TRUCK','carefully r'), +(2657,78,9,5,42,41078.94,0.06,0.03,'N','O','1996-01-23','1995-11-22','1996-01-25','COLLECT COD','RAIL','even accounts boost slyly. slyly regular ex'), +(2657,194,7,6,31,33919.89,0.01,0.03,'N','O','1995-11-10','1995-11-27','1995-12-06','COLLECT COD','RAIL','slyly pending ins'), +(2658,132,3,1,41,42317.33,0.05,0.04,'N','O','1995-11-07','1995-11-04','1995-12-04','NONE','MAIL','slyly final re'), +(2658,29,4,2,22,20438.44,0.08,0.05,'N','O','1995-11-12','1995-11-18','1995-11-14','DELIVER IN PERSON','TRUCK','carefully even theodolites sleep a'), +(2658,18,5,3,13,11934.13,0.07,0.06,'N','O','1995-10-24','1995-12-12','1995-11-14','COLLECT COD','FOB','slyly special instructions cajole '), +(2658,92,5,4,22,21825.98,0.04,0.04,'N','O','1995-12-02','1995-11-03','1995-12-26','DELIVER IN PERSON','SHIP','slyly silent accounts cajole. ev'), +(2658,7,8,5,45,40815,0.03,0.01,'N','O','1995-11-02','1995-11-08','1995-11-29','DELIVER IN PERSON','MAIL','permanently pending acc'), +(2658,147,4,6,27,28272.78,0.05,0.07,'N','O','1995-09-26','1995-12-08','1995-09-30','NONE','AIR','slyly expre'), +(2659,42,1,1,28,26377.12,0.08,0.05,'A','F','1994-03-17','1994-01-24','1994-03-19','NONE','FOB','blithely express'), +(2659,43,2,2,21,19803.84,0,0,'A','F','1993-12-23','1994-02-10','1994-01-17','DELIVER IN PERSON','RAIL','accounts along the quick'), +(2659,135,1,3,24,24843.12,0.04,0.03,'R','F','1994-03-28','1994-02-20','1994-04-05','DELIVER IN PERSON','REG AIR','ironic deposits nod regularly. caref'), +(2659,119,6,4,2,2038.22,0,0.08,'R','F','1994-02-19','1994-03-12','1994-02-21','NONE','MAIL','slyly ironic ideas haggle slyly bl'), +(2659,7,4,5,9,8163,0.08,0.03,'A','F','1994-02-07','1994-03-17','1994-03-04','DELIVER IN PERSON','AIR','slyly ironic deposits s'), +(2660,48,7,1,17,16116.68,0,0.05,'N','O','1995-08-18','1995-09-13','1995-09-17','NONE','SHIP','busily ironic theodolites nag quickly. ca'), +(2661,178,9,1,31,33423.27,0.03,0.02,'N','O','1997-04-07','1997-03-10','1997-04-23','TAKE BACK RETURN','AIR','final packages integrate? unusual, s'), +(2661,103,8,2,22,22068.2,0.08,0.02,'N','O','1997-03-14','1997-03-17','1997-04-08','COLLECT COD','REG AIR','slyly ironic requests sleep. fu'), +(2661,67,6,3,11,10637.66,0,0.08,'N','O','1997-04-14','1997-02-11','1997-05-05','TAKE BACK RETURN','FOB','even pinto beans caj'), +(2661,137,8,4,41,42522.33,0.06,0.02,'N','O','1997-03-06','1997-03-27','1997-03-15','DELIVER IN PERSON','AIR','slyly pending theodolites after the ent'), +(2662,102,5,1,43,43090.3,0.09,0.07,'N','O','1996-11-24','1996-11-04','1996-12-08','NONE','RAIL','special fox'), +(2662,128,9,2,8,8224.96,0.02,0.07,'N','O','1996-09-10','1996-10-09','1996-09-21','TAKE BACK RETURN','REG AIR','ironic ideas are blithely special braids. c'), +(2662,2,5,3,6,5412,0.02,0,'N','O','1996-11-30','1996-09-20','1996-12-03','DELIVER IN PERSON','REG AIR','ruthless accounts along the reg'), +(2662,30,1,4,34,31621.02,0.06,0.07,'N','O','1996-10-04','1996-11-05','1996-10-19','NONE','SHIP','blithely permanent accounts boost quick'), +(2663,114,4,1,35,35493.85,0.02,0.01,'N','O','1995-12-11','1995-10-16','1996-01-07','TAKE BACK RETURN','REG AIR','blithely silent requests sleep quickl'), +(2688,18,5,1,45,41310.45,0.08,0.08,'R','F','1992-05-21','1992-04-14','1992-05-28','NONE','FOB','silent, final pinto beans dazzle b'); +INSERT INTO lineitem VALUES +(2688,15,6,2,46,42090.46,0.01,0.01,'R','F','1992-05-24','1992-04-01','1992-05-26','COLLECT COD','TRUCK','special, ironic requests wake a'), +(2688,89,10,3,30,29672.4,0.05,0.04,'A','F','1992-04-18','1992-03-18','1992-05-18','TAKE BACK RETURN','RAIL','quickly regular deposits dou'), +(2688,25,10,4,3,2775.06,0,0.03,'R','F','1992-02-04','1992-03-18','1992-02-24','DELIVER IN PERSON','RAIL','final requests wake quickly slyly eve'), +(2688,59,10,5,22,21099.1,0.02,0.05,'R','F','1992-02-09','1992-04-09','1992-02-11','DELIVER IN PERSON','RAIL','slyly final idea'), +(2688,149,10,6,42,44063.88,0.01,0.01,'R','F','1992-04-29','1992-04-04','1992-05-17','TAKE BACK RETURN','FOB','carefully express i'), +(2689,6,1,1,45,40770,0.02,0.04,'R','F','1992-04-29','1992-06-22','1992-04-30','COLLECT COD','SHIP','fluffily special frays among the regular, '), +(2690,140,1,1,44,45766.16,0.05,0.06,'N','O','1996-05-30','1996-05-19','1996-06-26','NONE','REG AIR','final pains cajole quickly'), +(2690,51,2,2,50,47552.5,0.03,0.03,'N','O','1996-06-13','1996-05-22','1996-06-14','DELIVER IN PERSON','MAIL','blithely special packages af'), +(2690,125,6,3,45,46130.4,0.02,0.07,'N','O','1996-05-23','1996-06-02','1996-05-29','DELIVER IN PERSON','MAIL','accounts ar'), +(2690,195,6,4,12,13142.28,0.04,0.07,'N','O','1996-07-18','1996-06-03','1996-07-25','NONE','AIR','slyly regular pinto beans breac'), +(2690,86,7,5,30,29582.4,0.01,0.08,'N','O','1996-05-20','1996-06-01','1996-06-04','TAKE BACK RETURN','SHIP','instructions cajole enticingly. ironic ac'), +(2690,189,10,6,3,3267.54,0.07,0.01,'N','O','1996-07-04','1996-05-28','1996-07-06','TAKE BACK RETURN','RAIL','ideas sublate. furiously even deposits'), +(2690,79,7,7,35,34267.45,0.05,0.06,'N','O','1996-07-25','1996-05-14','1996-08-03','COLLECT COD','FOB','slyly even ideas wake. slyly blithe req'), +(2691,91,3,1,11,10901.99,0.04,0.07,'R','F','1992-06-21','1992-06-08','1992-07-09','COLLECT COD','FOB','furiously unusual pi'), +(2691,48,7,2,2,1896.08,0,0.07,'R','F','1992-05-10','1992-06-04','1992-05-11','TAKE BACK RETURN','TRUCK','fluffy packages wake quickly. excu'), +(2691,162,3,3,16,16994.56,0.09,0.03,'R','F','1992-06-11','1992-07-29','1992-06-29','NONE','RAIL','accounts x-ray pend'), +(2691,166,3,4,1,1066.16,0.08,0,'A','F','1992-08-11','1992-06-07','1992-08-16','NONE','SHIP','final requ'), +(2692,17,1,1,3,2751.03,0.1,0.04,'N','O','1998-02-25','1998-01-29','1998-03-27','TAKE BACK RETURN','MAIL','furiously brave warhorses wake. even '), +(2692,114,1,2,21,21296.31,0.03,0.05,'N','O','1998-03-11','1998-02-11','1998-03-19','NONE','SHIP','quiet ideas are ironic, final '), +(2693,9,10,1,26,23634,0.04,0,'N','O','1996-09-14','1996-10-07','1996-10-03','COLLECT COD','MAIL','carefully b'), +(2693,102,3,2,43,43090.3,0.03,0.04,'N','O','1996-10-24','1996-10-24','1996-11-03','TAKE BACK RETURN','TRUCK','pending exc'), +(2694,153,1,1,30,31594.5,0.02,0.06,'N','O','1996-06-20','1996-06-01','1996-07-15','NONE','TRUCK','fluffily ironic pi'), +(2694,157,2,2,35,37000.25,0.07,0.03,'N','O','1996-05-24','1996-06-01','1996-05-25','NONE','RAIL','blithely r'), +(2694,19,3,3,15,13785.15,0.08,0.02,'N','O','1996-06-30','1996-05-01','1996-07-25','TAKE BACK RETURN','REG AIR','express, ironic excuses according to the'), +(2694,20,10,4,12,11040.24,0,0.05,'N','O','1996-04-24','1996-04-22','1996-05-14','DELIVER IN PERSON','RAIL','fluffily ironic packages hang ironi'), +(2694,108,9,5,10,10081,0.08,0.08,'N','O','1996-06-23','1996-05-28','1996-06-27','COLLECT COD','REG AIR','blithely regular packages haggle blith'), +(2695,184,5,1,21,22767.78,0.07,0,'N','O','1996-10-04','1996-11-02','1996-10-21','NONE','MAIL','express, regular foxes use fluffily: unusua'), +(2695,19,9,2,44,40436.44,0.09,0.07,'N','O','1996-10-05','1996-10-10','1996-11-01','NONE','MAIL','slyly special deposits boost along the c'), +(2695,144,7,3,21,21926.94,0.02,0.07,'N','O','1996-09-13','1996-09-25','1996-10-13','NONE','TRUCK','carefully final accounts doze quickly aft'), +(2695,58,6,4,16,15328.8,0.08,0.08,'N','O','1996-11-16','1996-10-05','1996-11-22','NONE','TRUCK','permanently bold de'); +INSERT INTO lineitem VALUES +(2695,86,7,5,40,39443.2,0.02,0.03,'N','O','1996-11-02','1996-10-26','1996-11-14','NONE','FOB','blithely regular dolphins slee'), +(2720,45,6,1,5,4725.2,0.1,0.06,'A','F','1993-06-24','1993-08-08','1993-07-08','NONE','FOB','requests wake pinto beans'), +(2720,17,8,2,42,38514.42,0.09,0.03,'R','F','1993-07-25','1993-07-23','1993-08-23','COLLECT COD','REG AIR','bold, pending packages ca'), +(2720,120,1,3,50,51006,0.1,0.02,'A','F','1993-08-10','1993-07-29','1993-09-06','NONE','SHIP','packages wake. unusual requests wake a'), +(2720,109,2,4,49,49445.9,0.06,0.02,'A','F','1993-07-09','1993-07-14','1993-07-13','NONE','REG AIR','blithely regular ac'), +(2720,121,6,5,27,27570.24,0.04,0,'R','F','1993-06-29','1993-08-06','1993-07-28','NONE','TRUCK','pending instructions integrate slyly. caref'), +(2721,183,4,1,49,53075.82,0,0.08,'N','O','1996-02-14','1996-04-26','1996-03-02','DELIVER IN PERSON','AIR','slyly regu'), +(2721,3,4,2,2,1806,0.02,0.05,'N','O','1996-02-13','1996-03-14','1996-02-28','TAKE BACK RETURN','TRUCK','silent pinto b'), +(2722,124,7,1,21,21506.52,0.09,0.01,'A','F','1994-07-29','1994-06-26','1994-08-09','NONE','RAIL','carefully express packages above the ca'), +(2722,146,7,2,15,15692.1,0.05,0.03,'R','F','1994-07-02','1994-06-01','1994-07-13','COLLECT COD','AIR','ruthlessly even pint'), +(2722,34,10,3,16,14944.48,0.04,0.06,'R','F','1994-05-25','1994-06-09','1994-05-26','NONE','MAIL','carefully regular ac'), +(2723,13,7,1,47,42911.47,0.09,0.07,'N','O','1995-12-05','1995-11-19','1995-12-11','TAKE BACK RETURN','AIR','regular foxes cajole s'), +(2723,32,3,2,10,9320.3,0.06,0.08,'N','O','1995-11-27','1995-11-29','1995-12-12','DELIVER IN PERSON','MAIL','final, final accounts against the packa'), +(2723,162,1,3,2,2124.32,0.1,0.01,'N','O','1995-11-09','1995-11-10','1995-11-14','TAKE BACK RETURN','FOB','carefully unusual requests wake'), +(2723,82,3,4,12,11784.96,0.01,0.05,'N','O','1995-12-24','1995-11-15','1996-01-17','DELIVER IN PERSON','RAIL','silent somas nag according to the eve'), +(2723,129,10,5,40,41164.8,0.09,0.05,'N','O','1995-11-17','1995-11-22','1995-11-18','TAKE BACK RETURN','MAIL','carefully silent requests detect'), +(2724,92,4,1,47,46628.23,0.09,0.01,'A','F','1994-11-23','1994-11-13','1994-12-03','COLLECT COD','TRUCK','slyly ironic ideas around '), +(2724,147,8,2,21,21989.94,0.09,0.02,'A','F','1994-11-25','1994-10-15','1994-12-07','COLLECT COD','RAIL','fluffily even theodolites run qui'), +(2724,50,3,3,22,20901.1,0.04,0.06,'A','F','1994-09-19','1994-11-18','1994-10-17','TAKE BACK RETURN','TRUCK','ruthlessly regular packages'), +(2724,35,6,4,1,935.03,0.07,0.03,'A','F','1994-12-26','1994-11-27','1995-01-07','NONE','MAIL','slyly ironic accounts among the '), +(2724,149,2,5,29,30425.06,0.05,0.06,'A','F','1995-01-10','1994-11-17','1995-02-04','COLLECT COD','MAIL','ironic ideas are.'), +(2725,118,2,1,23,23416.53,0.1,0.08,'R','F','1994-08-25','1994-06-22','1994-08-28','TAKE BACK RETURN','REG AIR','ironic packages are quickly. regular pl'), +(2725,5,8,2,41,37105,0.01,0,'R','F','1994-07-05','1994-06-29','1994-08-02','DELIVER IN PERSON','TRUCK','regular ac'), +(2725,189,10,3,15,16337.7,0.07,0.03,'R','F','1994-08-06','1994-08-09','1994-08-15','TAKE BACK RETURN','AIR','even, final asymptotes against the slyly i'), +(2726,1,6,1,50,45050,0,0.06,'R','F','1993-03-04','1993-01-29','1993-03-28','COLLECT COD','TRUCK','carefully even'), +(2727,151,6,1,3,3153.45,0.03,0.01,'N','O','1998-06-18','1998-06-06','1998-06-23','NONE','RAIL','bold, regular requests breach furiously iro'), +(2752,31,2,1,41,38172.23,0.02,0.05,'A','F','1994-03-02','1994-01-31','1994-03-06','DELIVER IN PERSON','AIR','deposits impress f'), +(2752,7,2,2,29,26303,0.02,0.04,'R','F','1994-01-22','1994-01-08','1994-01-28','COLLECT COD','TRUCK','slyly bold deposits boost unusual accoun'), +(2752,56,7,3,4,3824.2,0.08,0,'A','F','1993-12-14','1994-02-13','1994-01-05','DELIVER IN PERSON','TRUCK','quickly regular a'), +(2752,24,7,4,40,36960.8,0.09,0.06,'A','F','1994-01-24','1994-01-18','1994-02-22','DELIVER IN PERSON','MAIL','blithely bold theodolites against the fi'); +INSERT INTO lineitem VALUES +(2752,126,5,5,22,22574.64,0.03,0.04,'A','F','1994-03-20','1994-02-08','1994-04-01','TAKE BACK RETURN','TRUCK','final ideas above the i'), +(2752,170,5,6,21,22473.57,0.09,0.05,'R','F','1994-01-01','1994-01-24','1994-01-24','COLLECT COD','SHIP','special deposits above the spec'), +(2752,199,10,7,38,41769.22,0.08,0,'R','F','1994-02-23','1993-12-23','1994-03-24','DELIVER IN PERSON','SHIP','final, regular accounts ca'), +(2753,13,3,1,6,5478.06,0.1,0.04,'A','F','1993-12-30','1994-01-28','1994-01-29','COLLECT COD','TRUCK','even, special ideas hagg'), +(2753,48,7,2,40,37921.6,0.03,0.05,'A','F','1994-01-06','1994-02-13','1994-02-03','DELIVER IN PERSON','SHIP','ironic deposit'), +(2753,89,10,3,30,29672.4,0,0.07,'A','F','1994-01-26','1994-01-29','1994-02-02','NONE','RAIL','even, ironic instructions sleep furiou'), +(2753,31,7,4,7,6517.21,0.07,0.03,'R','F','1994-02-11','1994-01-22','1994-03-10','DELIVER IN PERSON','AIR','carefully bold accounts affix '), +(2753,137,8,5,36,37336.68,0.04,0.08,'R','F','1994-03-15','1994-01-03','1994-04-03','DELIVER IN PERSON','SHIP','fluffily regular deposits br'), +(2753,50,1,6,17,16150.85,0.01,0.08,'A','F','1994-03-08','1994-01-17','1994-03-11','TAKE BACK RETURN','REG AIR','regular requests impress along the blith'), +(2753,148,9,7,20,20962.8,0.01,0.06,'R','F','1994-02-24','1994-02-04','1994-03-23','DELIVER IN PERSON','FOB','carefully pending packages cajol'), +(2754,149,6,1,4,4196.56,0.05,0.08,'A','F','1994-07-13','1994-05-15','1994-08-02','NONE','REG AIR','slyly ironic waters '), +(2754,177,5,2,19,20466.23,0.01,0.07,'A','F','1994-06-27','1994-05-06','1994-06-28','NONE','FOB','furiously slow ac'), +(2755,92,4,1,19,18849.71,0.1,0,'R','F','1992-02-11','1992-03-15','1992-02-14','TAKE BACK RETURN','MAIL','furiously special packa'), +(2755,24,3,2,11,10164.22,0.03,0.08,'A','F','1992-04-12','1992-05-07','1992-04-21','COLLECT COD','RAIL','ironic ideas nag slyly along the '), +(2755,64,3,3,21,20245.26,0.08,0.04,'R','F','1992-02-13','1992-04-20','1992-03-02','NONE','AIR','ironic, final ideas are carefully slyly iro'), +(2755,131,7,4,5,5155.65,0.01,0,'A','F','1992-02-27','1992-04-07','1992-03-09','TAKE BACK RETURN','AIR','daringly bol'), +(2755,116,7,5,48,48773.28,0.05,0.06,'R','F','1992-03-22','1992-03-10','1992-04-14','DELIVER IN PERSON','MAIL','quickly regular asymptotes '), +(2756,118,9,1,35,35633.85,0.03,0.02,'R','F','1994-06-08','1994-06-01','1994-06-21','TAKE BACK RETURN','AIR','quickly ironic accounts cajole. regular req'), +(2756,80,9,2,47,46063.76,0.06,0.01,'R','F','1994-05-10','1994-05-25','1994-05-13','NONE','AIR','fluffily even requests are slyly bli'), +(2756,105,8,3,31,31158.1,0.01,0.07,'A','F','1994-07-27','1994-07-06','1994-08-22','TAKE BACK RETURN','TRUCK','carefully special deposits try to eat '), +(2756,72,2,4,30,29162.1,0,0.04,'A','F','1994-06-05','1994-06-30','1994-06-14','DELIVER IN PERSON','TRUCK','furiously ironic requests along'), +(2757,148,5,1,26,27251.64,0.07,0,'N','O','1995-08-19','1995-10-02','1995-09-06','DELIVER IN PERSON','MAIL','quickly unusual requests wake care'), +(2757,22,7,2,12,11064.24,0.07,0.08,'N','O','1995-08-01','1995-09-04','1995-08-08','TAKE BACK RETURN','SHIP','ironic theodolites a'), +(2757,73,3,3,17,16542.19,0.1,0.04,'N','O','1995-09-06','1995-09-27','1995-09-22','DELIVER IN PERSON','AIR','fluffily regular packa'), +(2757,140,1,4,25,26003.5,0.08,0.01,'N','O','1995-11-09','1995-09-12','1995-11-23','NONE','AIR','ironic asymptotes along the fin'), +(2757,70,7,5,14,13580.98,0.04,0.05,'N','O','1995-09-01','1995-08-24','1995-09-03','TAKE BACK RETURN','SHIP','furiously final deposits nag across the '), +(2758,121,10,1,20,20422.4,0.02,0.04,'N','O','1998-07-27','1998-09-10','1998-08-21','TAKE BACK RETURN','AIR','fluffily final deposits '), +(2758,23,8,2,17,15691.34,0.1,0.06,'N','O','1998-09-25','1998-10-03','1998-10-25','NONE','MAIL','slyly special idea'), +(2758,26,5,3,1,926.02,0.06,0.02,'N','O','1998-10-09','1998-09-15','1998-10-16','NONE','TRUCK','blithely final sentiments al'); +INSERT INTO lineitem VALUES +(2759,59,1,1,10,9590.5,0.1,0.03,'R','F','1993-12-14','1994-01-08','1994-01-01','COLLECT COD','FOB','regular accounts are slyly. sl'), +(2759,113,10,2,37,37485.07,0,0.06,'R','F','1994-03-05','1994-02-22','1994-03-18','DELIVER IN PERSON','REG AIR','blithely fluffy packages impress blithe'), +(2759,112,9,3,11,11133.21,0.03,0.08,'A','F','1994-01-24','1994-01-16','1994-02-21','DELIVER IN PERSON','TRUCK','blithely dogged m'), +(2759,23,2,4,31,28613.62,0.02,0.05,'A','F','1994-01-11','1994-01-15','1994-01-23','NONE','SHIP','furiously ironic requests against the de'), +(2784,33,4,1,45,41986.35,0.03,0.01,'N','O','1998-02-15','1998-04-07','1998-02-26','COLLECT COD','AIR','packages sleep af'), +(2784,54,5,2,23,21943.15,0.03,0.05,'N','O','1998-03-28','1998-02-07','1998-04-17','DELIVER IN PERSON','AIR','slyly pending accounts haggle bo'), +(2784,175,4,3,40,43006.8,0.07,0.01,'N','O','1998-04-28','1998-03-19','1998-05-03','DELIVER IN PERSON','TRUCK','furiously regular theodolites affix '), +(2784,29,10,4,3,2787.06,0.04,0.03,'N','O','1998-01-19','1998-04-05','1998-02-05','TAKE BACK RETURN','AIR','express accounts before the '), +(2785,100,3,1,34,34003.4,0.08,0.06,'N','O','1995-08-07','1995-09-09','1995-09-05','NONE','RAIL','slyly pending forg'), +(2785,110,7,2,37,37374.07,0.08,0.04,'N','O','1995-07-25','1995-09-12','1995-08-06','DELIVER IN PERSON','TRUCK','final, thin accounts poach.'), +(2785,65,10,3,33,31846.98,0.08,0.06,'N','O','1995-10-16','1995-08-24','1995-11-02','DELIVER IN PERSON','MAIL','requests cajole. '), +(2785,48,1,4,34,32233.36,0,0.02,'N','O','1995-09-16','1995-09-09','1995-10-11','COLLECT COD','SHIP','blithely even accounts are sl'), +(2786,136,2,1,15,15541.95,0.03,0.04,'A','F','1992-05-19','1992-05-08','1992-05-28','COLLECT COD','TRUCK','slyly final warhorses so'), +(2786,51,3,2,42,39944.1,0.1,0.04,'R','F','1992-05-15','1992-04-22','1992-05-30','DELIVER IN PERSON','AIR','quickly regular '), +(2786,156,1,3,41,43302.15,0.04,0.05,'R','F','1992-07-01','1992-06-04','1992-07-13','COLLECT COD','RAIL','even accounts u'), +(2786,23,4,4,24,22152.48,0.05,0.02,'A','F','1992-04-04','1992-06-09','1992-05-02','DELIVER IN PERSON','MAIL','even ideas around the '), +(2786,50,3,5,43,40852.15,0.06,0.03,'R','F','1992-04-22','1992-05-13','1992-04-29','NONE','RAIL','bold, final accounts cajole thinly. quickly'), +(2786,162,1,6,21,22305.36,0.08,0,'A','F','1992-05-03','1992-05-01','1992-05-14','COLLECT COD','AIR','carefully special foxes are s'), +(2787,33,9,1,4,3732.12,0.04,0.04,'N','O','1996-01-26','1995-11-26','1996-02-20','TAKE BACK RETURN','SHIP','furiously special accounts boost quickly a'), +(2788,177,8,1,16,17234.72,0.06,0.06,'A','F','1994-10-04','1994-11-25','1994-10-18','DELIVER IN PERSON','AIR','slyly express requests nod. bold d'), +(2789,163,8,1,16,17010.56,0.03,0.02,'N','O','1998-04-18','1998-05-25','1998-05-12','DELIVER IN PERSON','REG AIR','unusual dolphins according to the '), +(2789,23,4,2,41,37843.82,0.02,0.05,'N','O','1998-03-20','1998-05-15','1998-03-21','COLLECT COD','MAIL','quickly unusual accounts nag quietly. b'), +(2789,176,5,3,33,35513.61,0.06,0.02,'N','O','1998-04-21','1998-05-02','1998-04-30','COLLECT COD','TRUCK','quickly regular theodolites wake care'), +(2789,16,3,4,47,43052.47,0.02,0.04,'N','O','1998-03-29','1998-05-05','1998-04-07','NONE','RAIL','quickly express'), +(2789,197,1,5,23,25235.37,0.02,0.07,'N','O','1998-03-25','1998-05-10','1998-04-24','COLLECT COD','RAIL','quickly even accounts cajol'), +(2789,144,5,6,16,16706.24,0.07,0.03,'N','O','1998-05-11','1998-05-08','1998-05-24','TAKE BACK RETURN','RAIL','blithely regular requests wake above the'), +(2789,133,4,7,42,43391.46,0.01,0,'N','O','1998-04-28','1998-05-17','1998-05-24','TAKE BACK RETURN','AIR','pending platelets after the slyly quic'), +(2790,185,6,1,27,29299.86,0.06,0.08,'R','F','1994-09-04','1994-09-27','1994-09-16','TAKE BACK RETURN','MAIL','quickly pending deposits hag'), +(2790,117,1,2,50,50855.5,0,0.06,'A','F','1994-12-08','1994-11-17','1994-12-19','NONE','RAIL','quickly pending excuses wake '); +INSERT INTO lineitem VALUES +(2790,184,5,3,19,20599.42,0.06,0,'R','F','1994-10-23','1994-10-03','1994-10-26','TAKE BACK RETURN','RAIL','final, regular pac'), +(2790,197,8,4,24,26332.56,0.07,0.01,'A','F','1994-12-04','1994-10-10','1994-12-25','NONE','MAIL','furiously final dugo'), +(2790,148,9,5,11,11529.54,0.08,0.03,'A','F','1994-09-28','1994-11-14','1994-10-04','TAKE BACK RETURN','AIR','accounts use slowly bo'), +(2790,73,3,6,13,12649.91,0.08,0,'R','F','1994-09-20','1994-10-10','1994-10-20','COLLECT COD','SHIP','final, iro'), +(2790,4,1,7,32,28928,0.08,0.02,'A','F','1994-09-25','1994-10-26','1994-10-01','NONE','SHIP','regular patterns '), +(2791,59,10,1,49,46993.45,0.1,0.04,'A','F','1995-01-11','1994-11-10','1995-02-08','COLLECT COD','MAIL','furiously express foxes serve w'), +(2791,63,4,2,4,3852.24,0.1,0.08,'A','F','1995-01-02','1994-12-28','1995-01-29','NONE','SHIP','furiously even requests use blithe'), +(2791,133,9,3,44,45457.72,0.08,0.06,'R','F','1994-11-17','1994-11-12','1994-12-14','NONE','FOB','instructions acro'), +(2791,156,8,4,24,25347.6,0.04,0.02,'R','F','1995-01-30','1994-11-20','1995-02-08','DELIVER IN PERSON','TRUCK','special packa'), +(2791,105,2,5,8,8040.8,0.02,0.04,'R','F','1995-01-30','1994-11-24','1995-02-13','NONE','FOB','special pinto'), +(2791,75,3,6,9,8775.63,0.08,0.02,'R','F','1994-11-19','1994-12-14','1994-12-10','TAKE BACK RETURN','AIR','quickly regular accounts at the blithel'), +(2791,29,2,7,26,24154.52,0.06,0.03,'R','F','1995-02-06','1994-12-07','1995-02-23','DELIVER IN PERSON','AIR','always special requests haggl'), +(2816,59,10,1,33,31648.65,0,0.07,'R','F','1994-10-19','1994-11-10','1994-11-09','NONE','REG AIR','packages are care'), +(2816,142,3,2,4,4168.56,0.05,0.04,'R','F','1994-12-11','1994-12-07','1995-01-03','NONE','FOB','carefully final instructions'), +(2816,121,6,3,4,4084.48,0.02,0.06,'R','F','1994-12-12','1994-12-05','1994-12-30','NONE','RAIL','requests do h'), +(2817,60,8,1,25,24001.5,0.07,0.01,'R','F','1994-04-21','1994-06-20','1994-05-07','DELIVER IN PERSON','FOB','bold excuses do haggle quickly s'), +(2817,32,8,2,5,4660.15,0.03,0.04,'A','F','1994-05-07','1994-05-31','1994-05-12','TAKE BACK RETURN','AIR','carefully express requests about '), +(2817,172,10,3,35,37525.95,0.01,0.07,'A','F','1994-05-20','1994-06-03','1994-05-22','COLLECT COD','FOB','bold, ironic ideas'), +(2817,161,2,4,4,4244.64,0,0.05,'R','F','1994-06-04','1994-06-11','1994-06-10','NONE','TRUCK','blithely final pinto bea'), +(2818,121,4,1,12,12253.44,0.1,0.03,'A','F','1995-02-01','1995-03-10','1995-02-16','NONE','AIR','carefully ex'), +(2818,199,2,2,22,24182.18,0.06,0.07,'R','F','1995-02-28','1995-03-10','1995-03-06','TAKE BACK RETURN','RAIL','furiously even foxes nag about the acco'), +(2818,45,6,3,11,10395.44,0.01,0.06,'R','F','1995-02-18','1995-02-11','1995-03-19','TAKE BACK RETURN','TRUCK','final dependencies use carefully among th'), +(2818,40,6,4,32,30081.28,0.08,0.08,'R','F','1995-02-04','1995-03-05','1995-02-18','COLLECT COD','REG AIR','ironic, express packages sleep ca'), +(2818,18,8,5,42,38556.42,0.08,0.04,'A','F','1995-02-12','1995-02-19','1995-03-13','COLLECT COD','MAIL','even, pendi'), +(2818,91,5,6,7,6937.63,0.06,0.03,'R','F','1995-03-24','1995-03-09','1995-04-06','TAKE BACK RETURN','TRUCK','bold deposits use across the fu'), +(2819,70,1,1,17,16491.19,0.08,0.08,'A','F','1994-07-16','1994-07-15','1994-07-17','TAKE BACK RETURN','RAIL','pending foxes do'), +(2819,67,2,2,12,11604.72,0.03,0.08,'R','F','1994-07-18','1994-06-24','1994-07-28','NONE','MAIL','quickly final requests '), +(2819,5,2,3,28,25340,0.03,0.08,'R','F','1994-05-09','1994-07-02','1994-05-15','NONE','RAIL','ironically final ideas against the fur'), +(2819,153,4,4,5,5265.75,0,0.02,'R','F','1994-05-29','1994-06-12','1994-06-28','NONE','TRUCK','quietly re'), +(2819,200,3,5,6,6601.2,0.03,0.01,'A','F','1994-07-22','1994-08-02','1994-07-29','NONE','REG AIR','theodolites wake fu'), +(2820,174,2,1,23,24705.91,0.04,0.08,'R','F','1994-07-10','1994-08-08','1994-07-21','NONE','MAIL','unusual, specia'); +INSERT INTO lineitem VALUES +(2820,126,9,2,33,33861.96,0.08,0.06,'A','F','1994-07-07','1994-08-17','1994-08-02','DELIVER IN PERSON','AIR','quickly even ideas integrate. requests '), +(2820,141,10,3,38,39563.32,0.03,0.08,'A','F','1994-09-10','1994-08-07','1994-10-07','TAKE BACK RETURN','MAIL','fluffily final packages are carefully about'), +(2820,197,9,4,40,43887.6,0.06,0.06,'A','F','1994-08-08','1994-07-30','1994-08-21','TAKE BACK RETURN','REG AIR','furiously even accounts was'), +(2821,181,2,1,4,4324.72,0,0,'A','F','1993-09-15','1993-10-02','1993-09-17','TAKE BACK RETURN','TRUCK','pending packages are asymptotes'), +(2821,72,1,2,4,3888.28,0.09,0,'A','F','1993-11-19','1993-09-20','1993-11-27','TAKE BACK RETURN','TRUCK','quickly stealthy excuses sleep quickl'), +(2821,164,1,3,27,28732.32,0.01,0.01,'A','F','1993-11-27','1993-10-11','1993-12-08','COLLECT COD','TRUCK','final, pend'), +(2822,151,9,1,39,40994.85,0.04,0.02,'R','F','1993-09-11','1993-08-29','1993-09-18','NONE','MAIL','furiously pen'), +(2823,86,7,1,45,44373.6,0.03,0.04,'N','O','1995-12-28','1995-11-27','1996-01-02','DELIVER IN PERSON','SHIP','sentiments affix carefully special '), +(2823,160,5,2,18,19082.88,0,0.03,'N','O','1995-11-11','1995-10-30','1995-12-08','TAKE BACK RETURN','TRUCK','instructions wake. accounts detect s'), +(2823,186,7,3,11,11947.98,0.07,0.02,'N','O','1995-12-10','1995-11-24','1995-12-21','DELIVER IN PERSON','SHIP','regular, final requests use ironic, pendin'), +(2823,139,10,4,48,49878.24,0.09,0.03,'N','O','1995-11-21','1995-10-30','1995-11-27','NONE','SHIP','requests cajole across the special accounts'), +(2823,99,2,5,18,17983.62,0.04,0.06,'N','O','1995-11-09','1995-10-30','1995-11-19','NONE','AIR','furiously bold dolphin'), +(2823,123,2,6,20,20462.4,0.07,0,'N','O','1995-11-13','1995-12-06','1995-12-07','NONE','MAIL','furiously regular platelets'), +(2823,86,7,7,12,11832.96,0.02,0.04,'N','O','1995-12-22','1995-11-20','1996-01-13','NONE','REG AIR','blithely final accou'), +(2848,65,4,1,44,42462.64,0.01,0.05,'R','F','1992-04-14','1992-05-09','1992-04-19','DELIVER IN PERSON','MAIL','final, bold deposits maint'), +(2848,165,6,2,8,8521.28,0.07,0.01,'A','F','1992-03-21','1992-05-18','1992-04-07','DELIVER IN PERSON','TRUCK','furiously final '), +(2848,138,4,3,8,8305.04,0.07,0.08,'A','F','1992-06-20','1992-04-12','1992-07-09','NONE','SHIP','pending, regular instruc'), +(2848,125,6,4,34,34854.08,0.02,0.08,'A','F','1992-03-15','1992-04-24','1992-04-12','TAKE BACK RETURN','RAIL','carefully regul'), +(2848,195,7,5,18,19713.42,0.07,0.03,'R','F','1992-04-10','1992-06-01','1992-05-05','DELIVER IN PERSON','TRUCK','asymptotes are bl'), +(2849,154,2,1,16,16866.4,0.09,0.08,'N','O','1996-05-20','1996-07-23','1996-06-18','NONE','TRUCK','quickly ironic instru'), +(2849,187,8,2,39,42400.02,0.1,0.03,'N','O','1996-05-22','1996-07-18','1996-06-05','TAKE BACK RETURN','SHIP','ironic theodolites '), +(2849,60,1,3,24,23041.44,0.01,0.05,'N','O','1996-06-12','1996-07-10','1996-06-27','TAKE BACK RETURN','AIR','carefully pending packages '), +(2849,55,7,4,48,45842.4,0.05,0.02,'N','O','1996-05-03','1996-06-05','1996-05-28','NONE','AIR','quickly bold packages poach ca'), +(2849,28,7,5,30,27840.6,0.1,0.06,'N','O','1996-08-24','1996-07-08','1996-09-03','TAKE BACK RETURN','SHIP','requests sleep after the final'), +(2849,69,4,6,30,29071.8,0.06,0.07,'N','O','1996-06-20','1996-07-23','1996-07-06','NONE','FOB','furiously even acco'), +(2850,97,1,1,43,42874.87,0.02,0.05,'N','O','1997-01-11','1996-11-03','1997-02-01','COLLECT COD','REG AIR','slyly even asymptotes nag carefully '), +(2850,110,7,2,30,30303.3,0.09,0.01,'N','O','1996-12-14','1996-11-29','1997-01-03','COLLECT COD','AIR','warhorses are. slyly permanent deposits ha'), +(2850,105,6,3,49,49249.9,0.09,0.04,'N','O','1996-10-07','1996-12-12','1996-10-12','TAKE BACK RETURN','MAIL','slyly ironic'), +(2850,199,3,4,4,4396.76,0.04,0.04,'N','O','1996-10-28','1996-12-26','1996-11-07','COLLECT COD','RAIL','furiously bold requests are. silen'), +(2851,148,5,1,8,8385.12,0.09,0.03,'N','O','1997-11-12','1997-11-22','1997-12-11','NONE','REG AIR','quickly fina'); +INSERT INTO lineitem VALUES +(2852,177,6,1,6,6463.02,0.01,0.01,'R','F','1993-03-02','1993-04-11','1993-03-11','TAKE BACK RETURN','RAIL','requests sleep slyly afte'), +(2852,41,10,2,24,22584.96,0.05,0.07,'R','F','1993-01-18','1993-03-13','1993-02-14','DELIVER IN PERSON','MAIL','furiously even deposits against the careful'), +(2852,164,9,3,29,30860.64,0.09,0.05,'R','F','1993-04-21','1993-03-22','1993-05-02','COLLECT COD','SHIP','furiously regular platelets'), +(2852,100,3,4,12,12001.2,0.08,0.02,'A','F','1993-02-25','1993-03-24','1993-03-07','TAKE BACK RETURN','TRUCK','furiously special dependencies'), +(2852,154,2,5,28,29516.2,0.05,0.03,'R','F','1993-02-08','1993-03-30','1993-02-11','NONE','MAIL','carefully even req'), +(2853,139,5,1,14,14547.82,0.07,0.05,'R','F','1994-05-16','1994-07-01','1994-05-27','NONE','TRUCK','slyly furious realms detect doggedl'), +(2853,134,10,2,26,26887.38,0.06,0.01,'R','F','1994-06-26','1994-06-05','1994-07-02','TAKE BACK RETURN','MAIL','slyly ironic Tiresias haggle carefully fl'), +(2853,173,3,3,40,42926.8,0.06,0.04,'A','F','1994-08-06','1994-06-24','1994-08-29','NONE','RAIL','platelets wake slyl'), +(2853,132,8,4,20,20642.6,0.02,0.04,'A','F','1994-08-30','1994-06-16','1994-09-06','TAKE BACK RETURN','TRUCK','unusual ideas after the iro'), +(2853,36,7,5,1,936.03,0.08,0.05,'R','F','1994-09-01','1994-06-27','1994-09-12','TAKE BACK RETURN','FOB','boldly iron'), +(2854,181,2,1,46,49734.28,0,0.04,'A','F','1994-09-22','1994-08-02','1994-09-30','COLLECT COD','AIR','slyly ironic foxes c'), +(2854,88,9,2,29,28654.32,0.09,0.07,'R','F','1994-07-06','1994-08-26','1994-07-09','COLLECT COD','SHIP','express requests hang clo'), +(2854,160,8,3,20,21203.2,0.08,0.01,'R','F','1994-09-18','1994-08-03','1994-10-12','COLLECT COD','AIR','fluffily express excuses caj'), +(2854,170,1,4,34,36385.78,0.06,0.03,'A','F','1994-09-06','1994-08-07','1994-09-22','NONE','REG AIR','furiously pending r'), +(2854,102,3,5,7,7014.7,0.03,0.06,'A','F','1994-09-23','1994-08-14','1994-10-10','DELIVER IN PERSON','REG AIR','blithely unusual foxes '), +(2854,18,2,6,13,11934.13,0.04,0.03,'R','F','1994-09-15','1994-08-18','1994-09-19','DELIVER IN PERSON','SHIP','carefully pending packages sleep about '), +(2855,33,4,1,50,46651.5,0.03,0.07,'A','F','1993-05-20','1993-06-28','1993-06-16','TAKE BACK RETURN','TRUCK','quickly re'), +(2880,35,6,1,40,37401.2,0.09,0,'A','F','1992-05-26','1992-06-01','1992-05-31','COLLECT COD','TRUCK','furiously even courts us'), +(2880,139,5,2,26,27017.38,0.07,0.07,'R','F','1992-04-12','1992-04-15','1992-04-28','NONE','RAIL','regular deposits detect. '), +(2880,115,9,3,42,42634.62,0.01,0.01,'R','F','1992-06-17','1992-05-29','1992-07-11','NONE','REG AIR','carefully regular sauternes ca'), +(2880,18,2,4,46,42228.46,0.02,0.02,'A','F','1992-04-21','1992-06-05','1992-05-16','COLLECT COD','RAIL','slyly regular pinto beans wake sly'), +(2881,180,10,1,16,17282.88,0.02,0.06,'A','F','1992-06-21','1992-06-27','1992-07-03','TAKE BACK RETURN','TRUCK','regular accounts use fur'), +(2881,10,1,2,1,910.01,0.09,0.03,'A','F','1992-05-13','1992-07-21','1992-05-18','COLLECT COD','MAIL','furiously special excu'), +(2881,93,6,3,21,20854.89,0.07,0.03,'A','F','1992-05-28','1992-07-03','1992-06-02','TAKE BACK RETURN','SHIP','ironic, silent'), +(2881,140,6,4,7,7280.98,0.06,0.01,'R','F','1992-08-03','1992-07-10','1992-08-27','NONE','REG AIR','furiously unusual t'), +(2882,4,7,1,14,12656,0.09,0.02,'N','O','1995-09-28','1995-11-11','1995-10-18','TAKE BACK RETURN','MAIL','accounts nag fluffily '), +(2882,42,1,2,30,28261.2,0,0,'N','O','1995-10-15','1995-10-13','1995-10-25','NONE','REG AIR','furiously sile'), +(2882,197,9,3,29,31818.51,0.1,0.08,'N','O','1995-09-10','1995-11-01','1995-10-02','NONE','TRUCK','braids cajole carefully according to'), +(2882,78,6,4,27,26407.89,0.06,0.02,'N','O','1995-09-04','1995-11-11','1995-09-12','DELIVER IN PERSON','MAIL','blithely even notornis about '), +(2882,134,5,5,32,33092.16,0.07,0.03,'N','O','1995-10-21','1995-11-10','1995-11-01','COLLECT COD','RAIL','unusual pearls poach fluffily. fin'); +INSERT INTO lineitem VALUES +(2882,87,8,6,47,46392.76,0.06,0.03,'N','O','1995-09-13','1995-09-21','1995-09-14','NONE','REG AIR','even packag'), +(2883,1,4,1,33,29733,0.08,0.07,'R','F','1995-02-26','1995-03-04','1995-03-01','NONE','RAIL','foxes should have to detect against the '), +(2883,125,6,2,27,27678.24,0,0.02,'A','F','1995-03-12','1995-03-10','1995-04-04','TAKE BACK RETURN','REG AIR','ironic accounts hang quickly a'), +(2883,189,10,3,47,51191.46,0.05,0.04,'R','F','1995-01-29','1995-04-19','1995-02-05','DELIVER IN PERSON','SHIP','special instr'), +(2883,98,2,4,23,22956.07,0,0.02,'R','F','1995-02-03','1995-03-17','1995-02-19','TAKE BACK RETURN','AIR','dolphins haggle agai'), +(2883,195,8,5,36,39426.84,0.07,0.06,'A','F','1995-05-02','1995-03-14','1995-05-30','COLLECT COD','MAIL','furiously pending braids boost bold pi'), +(2884,71,2,1,41,39813.87,0.03,0,'N','O','1998-01-02','1997-12-17','1998-01-20','DELIVER IN PERSON','TRUCK','unusual requests affix--'), +(2884,146,5,2,25,26153.5,0.09,0.08,'N','O','1998-01-18','1997-12-06','1998-02-16','TAKE BACK RETURN','MAIL','quickly furious request'), +(2884,26,7,3,8,7408.16,0.08,0.08,'N','O','1997-11-30','1997-11-28','1997-12-14','COLLECT COD','TRUCK','carefully bold theodolites'), +(2885,4,9,1,6,5424,0.1,0.01,'A','F','1993-01-05','1992-12-12','1993-01-19','COLLECT COD','FOB','blithely regular foxes around the quic'), +(2885,112,3,2,4,4048.44,0.07,0,'A','F','1992-10-09','1992-12-17','1992-11-04','TAKE BACK RETURN','SHIP','quickly expre'), +(2885,1,6,3,45,40545,0.1,0.04,'A','F','1992-12-24','1992-10-30','1993-01-04','NONE','SHIP','ruthlessly special deposits nag '), +(2885,32,3,4,15,13980.45,0.03,0.04,'R','F','1992-10-31','1992-11-24','1992-11-21','DELIVER IN PERSON','MAIL','furiously fluffy accounts w'), +(2885,175,5,5,43,46232.31,0.06,0,'R','F','1992-11-17','1992-10-30','1992-12-04','DELIVER IN PERSON','SHIP','fluffily special theod'), +(2885,190,1,6,5,5450.95,0.01,0.02,'R','F','1993-01-06','1992-11-13','1993-02-05','TAKE BACK RETURN','TRUCK','ironic deposits serve '), +(2885,50,9,7,40,38002,0.05,0.03,'A','F','1992-09-23','1992-11-15','1992-10-07','TAKE BACK RETURN','AIR','carefully bold theodol'), +(2886,60,1,1,1,960.06,0.09,0.05,'A','F','1995-02-01','1994-12-18','1995-02-28','COLLECT COD','REG AIR','accounts use carefully even ideas. blith'), +(2886,184,5,2,38,41198.84,0.02,0.04,'A','F','1995-01-21','1995-01-08','1995-01-30','NONE','SHIP','dependencies haggle carefull'), +(2886,63,8,3,2,1926.12,0.04,0.07,'A','F','1994-11-18','1995-01-31','1994-12-05','COLLECT COD','REG AIR','furiously furious somas cajol'), +(2886,130,3,4,46,47385.98,0.03,0.08,'A','F','1995-02-02','1995-01-26','1995-02-15','TAKE BACK RETURN','SHIP','final deposits unwind ar'), +(2887,66,3,1,11,10626.66,0.06,0,'N','O','1997-07-08','1997-07-17','1997-07-15','COLLECT COD','SHIP','slyly unusual platelets according'), +(2887,112,6,2,17,17205.87,0,0.08,'N','O','1997-08-31','1997-07-04','1997-09-17','DELIVER IN PERSON','SHIP','regular accou'), +(2912,122,1,1,8,8176.96,0.06,0.04,'A','F','1992-04-09','1992-04-19','1992-04-26','NONE','RAIL','slyly regular packages'), +(2912,115,9,2,18,18271.98,0,0.08,'R','F','1992-03-13','1992-04-19','1992-03-30','TAKE BACK RETURN','RAIL','pinto beans detect bravely across the'), +(2913,123,6,1,39,39901.68,0.06,0.04,'N','O','1997-08-28','1997-09-27','1997-09-02','TAKE BACK RETURN','AIR','blithely express a'), +(2913,22,5,2,22,20284.44,0.1,0.07,'N','O','1997-09-18','1997-08-11','1997-10-02','COLLECT COD','MAIL','fluffily even'), +(2913,166,1,3,17,18124.72,0.07,0.04,'N','O','1997-10-21','1997-09-25','1997-11-20','NONE','FOB','ironic accounts hang carefully acro'), +(2913,143,4,4,5,5215.7,0.1,0.07,'N','O','1997-10-07','1997-08-25','1997-10-09','TAKE BACK RETURN','RAIL','slyly express excuses ha'), +(2913,15,9,5,13,11895.13,0.03,0.01,'N','O','1997-10-02','1997-08-20','1997-10-26','COLLECT COD','MAIL','furious, furious warhorses are'), +(2913,168,5,6,35,37385.6,0.06,0.08,'N','O','1997-08-30','1997-08-21','1997-09-03','COLLECT COD','MAIL','silent notornis are idly'); +INSERT INTO lineitem VALUES +(2914,66,7,1,22,21253.32,0.05,0.06,'R','F','1993-05-11','1993-04-09','1993-05-22','DELIVER IN PERSON','FOB','carefully bold platelets k'), +(2914,163,10,2,25,26579,0.03,0.04,'A','F','1993-05-14','1993-04-04','1993-05-22','NONE','SHIP','carefully express th'), +(2914,35,1,3,4,3740.12,0,0.05,'R','F','1993-06-11','1993-04-09','1993-06-14','TAKE BACK RETURN','SHIP','furiously fluffy deposit'), +(2914,121,2,4,9,9190.08,0.06,0.01,'R','F','1993-06-17','1993-05-26','1993-06-19','NONE','REG AIR','carefully even deposits alongside of t'), +(2915,175,5,1,28,30104.76,0.1,0.02,'R','F','1994-04-17','1994-06-09','1994-05-10','NONE','MAIL','express accounts cajole furiously. fur'), +(2915,94,7,2,12,11929.08,0,0.03,'A','F','1994-07-18','1994-06-11','1994-07-27','TAKE BACK RETURN','RAIL','furiously final deposits boost slyly among'), +(2915,136,2,3,15,15541.95,0.07,0,'A','F','1994-05-01','1994-06-12','1994-05-15','DELIVER IN PERSON','TRUCK','regular, pending deposits nag even, ironi'), +(2915,81,2,4,43,42186.44,0.06,0.05,'R','F','1994-06-02','1994-05-24','1994-06-06','DELIVER IN PERSON','SHIP','asymptotes sub'), +(2916,83,4,1,21,20644.68,0.06,0.04,'N','O','1996-03-11','1996-02-21','1996-03-30','NONE','REG AIR','blithely final re'), +(2917,93,4,1,36,35751.24,0.1,0.01,'N','O','1998-04-07','1998-02-23','1998-05-01','DELIVER IN PERSON','RAIL','blithely unusual deposit'), +(2917,21,2,2,20,18420.4,0.06,0.03,'N','O','1997-12-31','1998-01-22','1998-01-12','NONE','MAIL','regular, even deposits integrate slyly a'), +(2917,90,1,3,4,3960.36,0.02,0.07,'N','O','1998-01-10','1998-01-18','1998-02-08','TAKE BACK RETURN','REG AIR','special, special packages above the ex'), +(2917,167,2,4,5,5335.8,0.05,0.01,'N','O','1997-12-16','1998-01-26','1998-01-07','NONE','RAIL','silently pending accounts nag bl'), +(2917,41,10,5,37,34818.48,0.04,0.01,'N','O','1997-12-12','1998-02-03','1997-12-23','COLLECT COD','RAIL','carefully re'), +(2917,194,8,6,7,7659.33,0.05,0.01,'N','O','1998-03-21','1998-03-03','1998-03-25','NONE','REG AIR','quickly busy deposits detect sl'), +(2918,78,7,1,24,23473.68,0.1,0.03,'N','O','1996-12-20','1996-10-28','1996-12-26','DELIVER IN PERSON','FOB','final deposits cajole s'), +(2919,102,5,1,2,2004.2,0.03,0.05,'R','F','1993-12-28','1994-02-23','1994-01-18','COLLECT COD','TRUCK','ironic package'), +(2919,121,4,2,49,50034.88,0.07,0.02,'R','F','1993-12-16','1994-02-28','1993-12-19','COLLECT COD','FOB','final platelets across the quickly special '), +(2919,46,5,3,44,41625.76,0.07,0.07,'A','F','1994-04-01','1994-01-12','1994-04-07','TAKE BACK RETURN','TRUCK','furiously bold packag'), +(2919,102,5,4,44,44092.4,0,0.05,'R','F','1994-02-04','1994-02-03','1994-03-02','TAKE BACK RETURN','AIR','ironic packa'), +(2944,120,1,1,44,44885.28,0.08,0.05,'N','O','1997-12-25','1997-10-28','1998-01-21','COLLECT COD','AIR','fluffily even deposits solve furiously. '), +(2944,42,9,2,44,41449.76,0.06,0.02,'N','O','1997-10-28','1997-11-22','1997-11-10','NONE','SHIP','deposits wake sl'), +(2944,170,5,3,2,2140.34,0.06,0.07,'N','O','1997-12-13','1997-12-01','1998-01-08','DELIVER IN PERSON','REG AIR','foxes around t'), +(2944,17,7,4,23,21091.23,0.02,0.03,'N','O','1998-01-12','1997-12-03','1998-01-17','TAKE BACK RETURN','MAIL','carefully express'), +(2944,75,4,5,18,17551.26,0.1,0.01,'N','O','1998-01-07','1997-10-26','1998-01-27','TAKE BACK RETURN','FOB','carefully pending acco'), +(2944,60,2,6,17,16321.02,0,0.03,'N','O','1997-10-18','1997-11-27','1997-10-29','TAKE BACK RETURN','SHIP','express ideas impres'), +(2944,90,1,7,7,6930.63,0.01,0.06,'N','O','1997-10-30','1997-11-03','1997-11-03','DELIVER IN PERSON','FOB','quickly even requests poach carefully'), +(2945,59,10,1,37,35484.85,0,0.02,'N','O','1996-02-10','1996-03-20','1996-02-12','COLLECT COD','SHIP','packages should haggle slyly during th'), +(2945,72,2,2,30,29162.1,0.05,0.01,'N','O','1996-01-19','1996-02-11','1996-01-26','NONE','TRUCK','slyly final requests wake furiously. blith'), +(2945,127,8,3,28,28759.36,0.06,0.02,'N','O','1996-03-17','1996-03-13','1996-04-15','COLLECT COD','FOB','quickly iron'); +INSERT INTO lineitem VALUES +(2945,188,9,4,34,36998.12,0.08,0.06,'N','O','1996-02-03','1996-03-17','1996-02-29','COLLECT COD','REG AIR','ironic deposits wake slyly q'), +(2945,173,1,5,10,10731.7,0.09,0.05,'N','O','1996-03-13','1996-03-10','1996-04-06','COLLECT COD','FOB','express, pendi'), +(2945,97,9,6,45,44869.05,0.07,0,'N','O','1996-03-01','1996-03-25','1996-03-08','TAKE BACK RETURN','MAIL','blithely express deposits'), +(2945,52,10,7,47,44746.35,0.07,0.05,'N','O','1996-01-05','1996-02-11','1996-01-12','DELIVER IN PERSON','MAIL','furiously regular deposits boost bene'), +(2946,10,5,1,25,22750.25,0.05,0.02,'N','O','1996-05-06','1996-04-23','1996-05-16','DELIVER IN PERSON','SHIP','requests poa'), +(2946,94,5,2,48,47716.32,0.03,0.07,'N','O','1996-06-02','1996-03-31','1996-06-16','COLLECT COD','TRUCK','express accounts across the ironic pin'), +(2946,3,6,3,35,31605,0.03,0,'N','O','1996-03-15','1996-04-02','1996-03-26','NONE','REG AIR','carefully special requests unwind furiously'), +(2947,10,1,1,37,33670.37,0.09,0.07,'N','O','1995-08-09','1995-07-05','1995-08-20','DELIVER IN PERSON','RAIL','slyly special pin'), +(2947,186,7,2,10,10861.8,0.09,0.07,'A','F','1995-06-07','1995-06-26','1995-06-08','NONE','MAIL','carefully final depen'), +(2948,118,9,1,48,48869.28,0,0.04,'R','F','1994-08-29','1994-10-23','1994-09-23','NONE','TRUCK','carefully regular asympt'), +(2948,92,3,2,49,48612.41,0.04,0.07,'R','F','1994-12-16','1994-11-08','1995-01-07','DELIVER IN PERSON','MAIL','express depths are final, even pi'), +(2949,21,6,1,4,3684.08,0.06,0.06,'A','F','1994-06-07','1994-06-17','1994-07-04','TAKE BACK RETURN','REG AIR','blithely re'), +(2949,70,5,2,50,48503.5,0.05,0.04,'A','F','1994-08-04','1994-06-23','1994-08-17','TAKE BACK RETURN','FOB','special packages alongside of the dep'), +(2949,180,9,3,38,41046.84,0.02,0.06,'R','F','1994-05-22','1994-05-25','1994-05-27','COLLECT COD','REG AIR','pinto beans use according to the never '), +(2950,130,1,1,32,32964.16,0.01,0.05,'N','O','1997-09-21','1997-08-25','1997-10-08','DELIVER IN PERSON','REG AIR','bold, silent asymptotes afte'), +(2950,66,7,2,18,17389.08,0.1,0.01,'N','O','1997-07-19','1997-08-29','1997-08-17','COLLECT COD','TRUCK','carefully final depos'), +(2950,53,4,3,14,13342.7,0.01,0.02,'N','O','1997-07-29','1997-08-05','1997-07-31','TAKE BACK RETURN','MAIL','fluffily special excu'), +(2950,187,8,4,45,48923.1,0.08,0,'N','O','1997-09-05','1997-09-23','1997-09-11','NONE','FOB','quickly regular '), +(2950,61,2,5,46,44208.76,0.02,0.05,'N','O','1997-07-15','1997-09-30','1997-07-25','COLLECT COD','RAIL','slyly pending pinto bea'), +(2950,174,5,6,27,29002.59,0.01,0.03,'N','O','1997-10-01','1997-09-13','1997-10-08','NONE','TRUCK','regular deposits haggl'), +(2951,3,8,1,5,4515,0.03,0.03,'N','O','1996-03-27','1996-04-16','1996-03-30','NONE','REG AIR','slyly bold requests hag'), +(2951,136,2,2,24,24867.12,0.07,0.03,'N','O','1996-03-24','1996-04-16','1996-04-08','NONE','SHIP','ruthless deposits are blithely. slyly fina'), +(2951,187,8,3,40,43487.2,0.02,0.07,'N','O','1996-05-03','1996-04-20','1996-05-22','COLLECT COD','REG AIR','dogged pinto b'), +(2951,73,3,4,21,20434.47,0.06,0.08,'N','O','1996-04-12','1996-04-27','1996-04-14','DELIVER IN PERSON','REG AIR','regular, regular requests wake blit'), +(2951,51,6,5,15,14265.75,0.07,0,'N','O','1996-03-25','1996-04-23','1996-03-27','COLLECT COD','REG AIR','slyly fluffy deposits are'), +(2951,138,4,6,18,18686.34,0.06,0,'N','O','1996-04-04','1996-04-27','1996-04-06','COLLECT COD','FOB','bold, ironic accounts nod. regular, r'), +(2976,9,4,1,32,29088,0.06,0,'A','F','1994-01-26','1994-02-13','1994-02-10','NONE','MAIL','deposits sleep bl'), +(2976,4,5,2,24,21696,0,0.03,'A','F','1994-03-19','1994-01-26','1994-04-18','COLLECT COD','TRUCK','furiously quick theodolites haggle fl'), +(2976,10,5,3,35,31850.35,0.1,0.07,'R','F','1993-12-19','1994-02-14','1994-01-11','NONE','RAIL','deposits haggle blithely alongside o'), +(2976,82,3,4,22,21605.76,0,0.04,'A','F','1994-02-08','1994-03-03','1994-02-12','TAKE BACK RETURN','FOB','blithely final accounts thrash f'); +INSERT INTO lineitem VALUES +(2976,134,5,5,13,13443.69,0,0.06,'A','F','1994-02-06','1994-02-02','1994-02-19','NONE','FOB','pending instruc'), +(2976,109,2,6,30,30273,0.08,0.03,'R','F','1994-03-27','1994-02-01','1994-04-26','TAKE BACK RETURN','RAIL','regularly special requests cajole'), +(2977,70,5,1,25,24251.75,0.03,0.07,'N','O','1996-09-21','1996-10-06','1996-10-13','TAKE BACK RETURN','RAIL','blithely ironic deposits sleep '), +(2978,90,1,1,29,28712.61,0,0.08,'A','F','1995-06-03','1995-07-25','1995-06-06','NONE','SHIP','slyly final deposits snooze carefully aft'), +(2978,127,2,2,42,43139.04,0.01,0.06,'N','O','1995-08-19','1995-07-18','1995-09-07','DELIVER IN PERSON','MAIL','blithely final packages nag throu'), +(2978,43,2,3,26,24519.04,0.07,0.05,'N','O','1995-07-29','1995-07-22','1995-08-20','COLLECT COD','REG AIR','carefully even packages wake slyl'), +(2978,28,1,4,7,6496.14,0,0,'N','O','1995-07-18','1995-07-03','1995-07-23','NONE','FOB','instructions sleep slyly regular account'), +(2978,29,2,5,33,30657.66,0.09,0.03,'R','F','1995-05-06','1995-07-23','1995-05-16','COLLECT COD','FOB','pending accounts lose against the exp'), +(2978,168,7,6,4,4272.64,0.08,0.04,'N','O','1995-07-06','1995-07-31','1995-07-19','COLLECT COD','AIR','pending packages affix furi'), +(2979,9,6,1,8,7272,0,0.08,'N','O','1996-06-18','1996-05-21','1996-07-06','COLLECT COD','REG AIR','bold excuses'), +(2979,11,2,2,47,42817.47,0.05,0,'N','O','1996-03-25','1996-05-13','1996-04-04','TAKE BACK RETURN','SHIP','quickly even packages run blith'), +(2979,188,9,3,35,38086.3,0.04,0.03,'N','O','1996-05-25','1996-06-11','1996-06-24','DELIVER IN PERSON','MAIL','quickly pendi'), +(2979,165,4,4,28,29824.48,0.05,0.08,'N','O','1996-06-04','1996-04-23','1996-06-24','DELIVER IN PERSON','FOB','instructions'), +(2980,37,3,1,2,1874.06,0.09,0.03,'N','O','1996-11-18','1996-10-22','1996-11-27','TAKE BACK RETURN','SHIP','theodolites are carefully after the fi'), +(2980,10,7,2,48,43680.48,0.04,0.05,'N','O','1996-09-25','1996-12-09','1996-10-12','NONE','REG AIR','regular, pending accounts maintain '), +(2980,133,9,3,27,27894.51,0.08,0.08,'N','O','1996-12-08','1996-12-03','1996-12-14','NONE','REG AIR','carefully ironic notornis about the fluffil'), +(2980,25,10,4,49,45325.98,0.03,0.02,'N','O','1996-10-04','1996-12-04','1996-10-06','NONE','RAIL','furiously special packages wake qui'), +(2980,187,8,5,24,26092.32,0.05,0.04,'N','O','1997-01-12','1996-10-27','1997-01-14','NONE','MAIL','slyly even instruction'), +(2980,109,4,6,43,43391.3,0.01,0.01,'N','O','1996-12-07','1996-11-10','1997-01-02','COLLECT COD','AIR','regular, bold packages '), +(2981,14,4,1,17,15538.17,0.03,0.05,'N','O','1998-10-17','1998-10-02','1998-10-21','DELIVER IN PERSON','RAIL','pinto beans nag blithely'), +(2981,176,4,2,8,8609.36,0.06,0.03,'N','O','1998-08-21','1998-09-28','1998-09-05','DELIVER IN PERSON','MAIL','blithely express ideas across the reque'), +(2981,37,3,3,14,13118.42,0.03,0.07,'N','O','1998-08-30','1998-10-04','1998-09-04','DELIVER IN PERSON','MAIL','express dependencies boost fu'), +(2982,112,6,1,21,21254.31,0,0.01,'A','F','1995-04-03','1995-06-08','1995-04-18','DELIVER IN PERSON','AIR','silently pending depend'), +(2982,99,2,2,13,12988.17,0.02,0.08,'R','F','1995-03-31','1995-05-07','1995-04-18','TAKE BACK RETURN','RAIL','furiously per'), +(2982,70,5,3,21,20371.47,0.01,0.01,'R','F','1995-04-19','1995-06-03','1995-04-28','COLLECT COD','SHIP','regular, regular packages sleep b'), +(2983,163,4,1,44,46779.04,0.03,0.06,'R','F','1992-02-09','1992-03-07','1992-03-09','TAKE BACK RETURN','AIR','even foxes are. pack'), +(2983,49,8,2,11,10439.44,0.09,0.06,'A','F','1992-04-29','1992-02-27','1992-05-26','NONE','MAIL','slyly express depe'), +(3008,132,3,1,8,8257.04,0.1,0.04,'N','O','1995-12-06','1996-01-12','1995-12-22','TAKE BACK RETURN','FOB','regular, regular platelets wake c'), +(3008,200,3,2,31,34106.2,0.05,0.06,'N','O','1995-12-14','1995-12-11','1995-12-31','TAKE BACK RETURN','AIR','unusual frays are fluffily bli'); +INSERT INTO lineitem VALUES +(3008,24,5,3,40,36960.8,0.01,0.03,'N','O','1995-12-18','1996-01-06','1996-01-11','COLLECT COD','AIR','slyly final realms use s'), +(3008,60,1,4,48,46082.88,0.07,0.06,'N','O','1996-01-23','1996-01-07','1996-02-09','COLLECT COD','SHIP','blithely special pinto beans sleep fur'), +(3008,105,10,5,31,31158.1,0.03,0.02,'N','O','1995-12-01','1996-01-20','1995-12-28','COLLECT COD','RAIL','blithe Tiresias mold carefully. quickly fin'), +(3009,45,8,1,48,45361.92,0.1,0.02,'N','O','1997-03-19','1997-05-13','1997-04-11','TAKE BACK RETURN','TRUCK','quickly final ideas are silently bo'), +(3009,185,6,2,38,41236.84,0,0.01,'N','O','1997-05-01','1997-04-10','1997-05-17','TAKE BACK RETURN','AIR','furiously '), +(3009,130,3,3,26,26783.38,0.08,0.02,'N','O','1997-05-15','1997-05-10','1997-06-13','TAKE BACK RETURN','SHIP','carefully even dependencies integrate quic'), +(3010,138,4,1,23,23876.99,0.04,0,'N','O','1996-03-08','1996-02-29','1996-03-27','NONE','TRUCK','bold, regular dependencies along th'), +(3010,174,4,2,22,23631.74,0.09,0.06,'N','O','1996-03-06','1996-04-06','1996-03-18','COLLECT COD','REG AIR','slyly express foxes boost slyly even'), +(3010,58,6,3,24,22993.2,0.04,0.07,'N','O','1996-05-09','1996-03-14','1996-05-15','DELIVER IN PERSON','RAIL','final, ironic requests run above the silen'), +(3010,24,7,4,28,25872.56,0.09,0.06,'N','O','1996-03-05','1996-03-28','1996-04-03','DELIVER IN PERSON','FOB','daringly ironic packages '), +(3010,104,5,5,9,9036.9,0.02,0.02,'N','O','1996-04-28','1996-03-17','1996-05-18','NONE','SHIP','express, final f'), +(3010,92,3,6,38,37699.42,0.05,0.07,'N','O','1996-04-15','1996-03-16','1996-04-21','DELIVER IN PERSON','RAIL','regular requests boost furio'), +(3011,198,10,1,5,5490.95,0.02,0.04,'R','F','1992-04-21','1992-02-23','1992-05-15','NONE','TRUCK','blithely regular accounts w'), +(3011,123,4,2,42,42971.04,0.05,0,'A','F','1992-02-01','1992-03-18','1992-02-29','NONE','TRUCK','even packages sleep furiou'), +(3012,195,7,1,49,53664.31,0,0,'A','F','1993-08-07','1993-07-01','1993-08-08','NONE','MAIL','express pinto beans ea'), +(3012,161,2,2,37,39262.92,0.06,0.03,'A','F','1993-08-16','1993-06-07','1993-08-24','TAKE BACK RETURN','REG AIR','carefully final pack'), +(3013,94,6,1,31,30816.79,0.08,0.08,'N','O','1997-05-03','1997-04-05','1997-05-25','NONE','AIR','carefully bold asymptotes detect blith'), +(3013,139,5,2,30,31173.9,0.05,0.06,'N','O','1997-05-02','1997-03-09','1997-05-12','TAKE BACK RETURN','MAIL','pending asymptotes haggle slyly. '), +(3013,120,10,3,35,35704.2,0,0.03,'N','O','1997-04-02','1997-05-04','1997-04-16','COLLECT COD','MAIL','regular requests along the request'), +(3013,181,2,4,17,18380.06,0.01,0.07,'N','O','1997-02-26','1997-05-02','1997-03-27','DELIVER IN PERSON','SHIP','final pinto beans doubt carefully. bold a'), +(3013,60,5,5,20,19201.2,0,0.04,'N','O','1997-05-06','1997-03-18','1997-05-12','COLLECT COD','RAIL','ironic, expres'), +(3013,72,2,6,19,18469.33,0.08,0.07,'N','O','1997-05-11','1997-04-18','1997-05-15','COLLECT COD','REG AIR','forges are. carefully even grouc'), +(3014,163,4,1,36,38273.76,0.05,0.03,'A','F','1992-11-16','1993-01-20','1992-11-28','TAKE BACK RETURN','FOB','regular accounts unwind sly'), +(3014,106,1,2,36,36219.6,0,0.08,'R','F','1992-12-28','1992-12-29','1993-01-24','COLLECT COD','MAIL','ironic instructio'), +(3014,151,9,3,48,50455.2,0.06,0.02,'A','F','1992-12-19','1993-01-08','1992-12-25','DELIVER IN PERSON','REG AIR','slyly regular accounts'), +(3014,114,1,4,14,14197.54,0.1,0.02,'R','F','1992-11-19','1993-01-01','1992-12-17','DELIVER IN PERSON','SHIP','quickly ironic deposits wa'), +(3014,75,5,5,28,27301.96,0.02,0.08,'R','F','1993-01-09','1992-12-18','1993-01-10','TAKE BACK RETURN','FOB','somas cajole quickl'), +(3014,38,4,6,30,28140.9,0.04,0.01,'R','F','1993-02-28','1993-01-02','1993-03-20','TAKE BACK RETURN','AIR','pending, ironic theodolites wake fluff'), +(3015,3,8,1,5,4515,0.09,0,'A','F','1993-01-10','1992-12-02','1993-01-19','TAKE BACK RETURN','RAIL','quickly special '); +INSERT INTO lineitem VALUES +(3015,18,2,2,17,15606.17,0.03,0.01,'R','F','1992-10-16','1992-11-20','1992-10-28','COLLECT COD','AIR','special accounts l'), +(3015,91,4,3,23,22795.07,0.03,0.05,'A','F','1992-12-03','1992-11-19','1992-12-23','DELIVER IN PERSON','FOB','carefully unusual p'), +(3015,156,7,4,7,7393.05,0.1,0.03,'A','F','1992-12-07','1992-12-17','1992-12-30','DELIVER IN PERSON','REG AIR','even, regular accounts after the ironic'), +(3015,165,4,5,42,44736.72,0.04,0.02,'R','F','1993-01-21','1992-11-07','1993-02-11','DELIVER IN PERSON','AIR','slyly unusual accounts nag slyly. '), +(3015,66,7,6,18,17389.08,0.02,0.03,'R','F','1992-10-10','1992-11-19','1992-10-18','TAKE BACK RETURN','MAIL','furiously express excuses sleep'), +(3040,16,6,1,18,16488.18,0.08,0.04,'R','F','1993-06-25','1993-07-06','1993-07-19','TAKE BACK RETURN','SHIP','carefully regula'), +(3040,133,9,2,9,9298.17,0,0.01,'A','F','1993-06-12','1993-05-16','1993-06-14','NONE','RAIL','slyly regula'), +(3040,126,5,3,30,30783.6,0.01,0.01,'A','F','1993-08-06','1993-05-18','1993-08-19','NONE','MAIL','furiously final accounts haggle quickl'), +(3040,83,4,4,14,13763.12,0.05,0.04,'A','F','1993-05-13','1993-05-18','1993-05-19','TAKE BACK RETURN','REG AIR','slyly special deposits besides '), +(3040,52,3,5,43,40938.15,0.04,0.04,'R','F','1993-05-21','1993-05-25','1993-05-26','NONE','MAIL','deposits unwind ca'), +(3040,18,5,6,10,9180.1,0.08,0.04,'R','F','1993-05-16','1993-06-24','1993-06-11','DELIVER IN PERSON','MAIL','thinly bold dependencies n'), +(3041,181,2,1,5,5405.9,0.07,0.04,'N','O','1997-07-20','1997-07-15','1997-08-17','COLLECT COD','FOB','special packages cajole sometimes regu'), +(3041,146,9,2,9,9415.26,0.03,0.03,'N','O','1997-06-29','1997-08-14','1997-07-19','COLLECT COD','AIR','ideas above the quickl'), +(3041,68,5,3,9,8712.54,0.09,0.06,'N','O','1997-08-28','1997-07-23','1997-09-16','TAKE BACK RETURN','FOB','furiously '), +(3042,105,2,1,30,30153,0.08,0.06,'A','F','1995-01-12','1995-02-15','1995-01-24','DELIVER IN PERSON','SHIP','regular, even packages boost alongsi'), +(3042,102,3,2,28,28058.8,0.05,0.03,'A','F','1994-11-24','1995-01-02','1994-12-06','TAKE BACK RETURN','MAIL','dependencies haggle against the sly'), +(3042,14,8,3,34,31076.34,0.04,0,'R','F','1994-12-11','1995-02-03','1994-12-21','TAKE BACK RETURN','TRUCK','blithely regular braids integrate slyly '), +(3042,48,1,4,19,18012.76,0.02,0.01,'A','F','1995-03-05','1995-01-24','1995-03-17','COLLECT COD','TRUCK','carefully special wartho'), +(3043,46,9,1,23,21758.92,0.07,0.04,'R','F','1992-05-08','1992-07-22','1992-05-18','COLLECT COD','TRUCK','special dolphins wake blith'), +(3043,6,3,2,15,13590,0.03,0.05,'A','F','1992-05-27','1992-06-03','1992-06-09','COLLECT COD','FOB','blithely bold instru'), +(3043,60,1,3,42,40322.52,0.1,0.07,'R','F','1992-07-15','1992-06-19','1992-07-23','NONE','MAIL','quickly unusual foxes use c'), +(3043,91,2,4,5,4955.45,0.1,0.01,'A','F','1992-05-22','1992-07-02','1992-06-20','TAKE BACK RETURN','TRUCK','carefully '), +(3044,101,2,1,10,10011,0.07,0.08,'N','O','1996-07-13','1996-05-06','1996-07-21','TAKE BACK RETURN','REG AIR','furiously even instructions'), +(3044,168,7,2,3,3204.48,0.06,0.02,'N','O','1996-07-27','1996-05-26','1996-08-15','TAKE BACK RETURN','AIR','deposits doubt: carefully bold accounts '), +(3044,19,3,3,47,43193.47,0.09,0,'N','O','1996-05-24','1996-06-22','1996-05-30','NONE','REG AIR','busily final ideas are. ex'), +(3045,88,9,1,41,40511.28,0.05,0.01,'N','O','1995-09-30','1995-11-24','1995-10-03','TAKE BACK RETURN','MAIL','boldly final deposits cajole slyl'), +(3045,69,6,2,48,46514.88,0.02,0.03,'N','O','1995-10-01','1995-12-16','1995-10-10','TAKE BACK RETURN','MAIL','furiously ruthless deposits use blithely. '), +(3046,74,5,1,44,42859.08,0.03,0.03,'N','O','1996-03-03','1996-02-25','1996-04-01','NONE','AIR','slyly final deposi'), +(3046,54,5,2,46,43886.3,0.03,0.08,'N','O','1996-03-22','1996-02-28','1996-04-07','TAKE BACK RETURN','AIR','quickly pending requests caj'); +INSERT INTO lineitem VALUES +(3046,2,9,3,31,27962,0.03,0.07,'N','O','1996-03-24','1996-01-30','1996-03-26','NONE','RAIL','permanent theodolites hagg'), +(3047,104,5,1,17,17069.7,0.08,0.02,'N','O','1997-06-14','1997-04-20','1997-06-23','COLLECT COD','FOB','quickly unusual accounts belie'), +(3047,14,1,2,23,21022.23,0,0.04,'N','O','1997-05-20','1997-06-14','1997-05-28','TAKE BACK RETURN','REG AIR','never silent deposits wake'), +(3072,57,9,1,6,5742.3,0.09,0.05,'R','F','1994-02-09','1994-03-24','1994-02-28','DELIVER IN PERSON','REG AIR','ironic, final p'), +(3072,108,3,2,36,36291.6,0.07,0.02,'R','F','1994-04-14','1994-04-22','1994-05-06','COLLECT COD','AIR','quickly even packag'), +(3072,97,8,3,7,6979.63,0.04,0.07,'R','F','1994-05-09','1994-03-31','1994-05-19','COLLECT COD','TRUCK','pending theodolites use.'), +(3072,83,4,4,39,38340.12,0.05,0.08,'A','F','1994-05-27','1994-04-20','1994-06-14','COLLECT COD','MAIL','doggedly even'), +(3072,88,9,5,1,988.08,0.01,0.08,'R','F','1994-02-26','1994-03-14','1994-03-19','NONE','AIR','fluffily even accounts cajole carefully '), +(3073,194,7,1,16,17507.04,0.07,0.01,'R','F','1994-03-02','1994-03-23','1994-03-31','DELIVER IN PERSON','AIR','deposits among the bold request'), +(3073,22,5,2,47,43334.94,0.09,0,'R','F','1994-03-26','1994-02-12','1994-04-21','NONE','REG AIR','carefully regular foxes abo'), +(3073,87,8,3,10,9870.8,0.03,0,'R','F','1994-02-11','1994-03-24','1994-02-26','COLLECT COD','FOB','fluffily unusual accounts'), +(3073,29,4,4,14,13006.28,0.09,0.07,'R','F','1994-03-24','1994-04-01','1994-04-07','NONE','RAIL','blithely regular packages use eve'), +(3073,41,10,5,25,23526,0,0.07,'R','F','1994-04-14','1994-03-07','1994-04-22','NONE','TRUCK','excuses nag. carefully even packages boost'), +(3073,147,8,6,39,40838.46,0.09,0.02,'R','F','1994-05-01','1994-02-16','1994-05-12','DELIVER IN PERSON','AIR','special exc'), +(3073,44,5,7,11,10384.44,0.08,0.07,'A','F','1994-05-01','1994-03-06','1994-05-08','COLLECT COD','SHIP','slyly express accounts detect fluffily'), +(3074,37,8,1,50,46851.5,0.08,0.08,'A','F','1993-01-31','1992-12-15','1993-02-20','NONE','AIR','packages are among the furious, permane'), +(3074,139,5,2,39,40526.07,0.03,0,'R','F','1992-12-08','1993-01-28','1992-12-09','DELIVER IN PERSON','TRUCK','accounts boost quickly: carefully ironic '), +(3075,9,6,1,39,35451,0.02,0.03,'A','F','1994-06-10','1994-06-21','1994-06-20','NONE','FOB','blithely regular braids along the quickl'), +(3075,52,10,2,2,1904.1,0.07,0.08,'R','F','1994-06-14','1994-06-10','1994-06-25','TAKE BACK RETURN','AIR','ironic packages sleep thinly. regular, e'), +(3076,85,6,1,44,43343.52,0,0.05,'A','F','1993-09-14','1993-10-04','1993-09-17','TAKE BACK RETURN','FOB','platelets sleep ab'), +(3076,106,1,2,22,22134.2,0.08,0,'A','F','1993-09-05','1993-09-10','1993-09-27','NONE','REG AIR','packages nag blithely upo'), +(3076,5,8,3,31,28055,0.06,0.06,'A','F','1993-08-10','1993-09-17','1993-08-17','TAKE BACK RETURN','SHIP','slyly express escapa'), +(3077,72,2,1,25,24301.75,0.06,0.01,'N','O','1997-09-14','1997-10-16','1997-10-06','NONE','TRUCK','ideas cajole. s'), +(3077,91,3,2,40,39643.6,0.05,0.06,'N','O','1997-10-22','1997-09-19','1997-11-19','DELIVER IN PERSON','AIR','ironic, regula'), +(3077,78,7,3,13,12714.91,0.03,0.07,'N','O','1997-09-09','1997-10-15','1997-09-19','NONE','TRUCK','slyly even pinto bean'), +(3077,115,5,4,23,23347.53,0.03,0.02,'N','O','1997-11-05','1997-09-16','1997-11-20','NONE','MAIL','regular packages are care'), +(3078,132,3,1,25,25803.25,0.01,0.03,'A','F','1993-04-22','1993-05-01','1993-04-28','TAKE BACK RETURN','AIR','blithely regular reque'), +(3078,78,8,2,21,20539.47,0.09,0.07,'A','F','1993-03-20','1993-03-21','1993-04-01','COLLECT COD','AIR','slyly thin gifts against '), +(3079,70,5,1,20,19401.4,0.05,0,'N','O','1997-10-18','1997-10-26','1997-11-14','NONE','RAIL','final packages '), +(3079,117,1,2,38,38650.18,0.08,0.07,'N','O','1997-11-07','1997-11-25','1997-12-06','NONE','RAIL','evenly unusual dependencies wake sl'); +INSERT INTO lineitem VALUES +(3079,17,8,3,40,36680.4,0.02,0.08,'N','O','1997-09-26','1997-12-11','1997-10-09','NONE','RAIL','even, bold instruction'), +(3079,24,5,4,2,1848.04,0,0.08,'N','O','1998-01-05','1997-11-17','1998-01-28','NONE','FOB','fluffily ironic accounts sleep agai'), +(3079,188,9,5,2,2176.36,0.1,0,'N','O','1997-12-27','1997-10-25','1998-01-08','COLLECT COD','SHIP','carefully silent packages '), +(3079,166,1,6,46,49043.36,0,0,'N','O','1997-11-19','1997-11-04','1997-11-25','DELIVER IN PERSON','REG AIR','furiously fina'), +(3104,51,6,1,20,19021,0.01,0.08,'A','F','1993-12-31','1993-11-24','1994-01-12','DELIVER IN PERSON','REG AIR','carefully final accounts integ'), +(3104,48,1,2,47,44557.88,0.02,0.05,'A','F','1993-12-25','1993-11-02','1994-01-12','COLLECT COD','RAIL','quickly do'), +(3104,63,4,3,11,10593.66,0.02,0.03,'A','F','1993-10-05','1993-11-30','1993-10-27','NONE','TRUCK','orbits are about the carefully spe'), +(3104,38,9,4,26,24388.78,0.02,0.08,'R','F','1994-01-02','1993-12-05','1994-01-31','TAKE BACK RETURN','TRUCK','bravely silent dependencies'), +(3105,184,5,1,11,11925.98,0.01,0.06,'N','O','1997-02-07','1997-02-09','1997-03-01','NONE','FOB','thinly regul'), +(3105,45,6,2,9,8505.36,0.08,0.08,'N','O','1996-12-25','1997-02-04','1997-01-09','COLLECT COD','SHIP','accounts cajole slyly above the fina'), +(3105,25,4,3,48,44400.96,0.02,0.05,'N','O','1997-02-28','1997-01-31','1997-03-18','DELIVER IN PERSON','REG AIR','blithely iron'), +(3105,91,5,4,23,22795.07,0.04,0.07,'N','O','1997-03-08','1996-12-14','1997-03-18','COLLECT COD','REG AIR','even dolphins serve abov'), +(3105,90,1,5,8,7920.72,0.07,0.07,'N','O','1996-12-28','1996-12-28','1997-01-25','NONE','FOB','fluffily pending platelets ac'), +(3105,47,6,6,30,28411.2,0.08,0.05,'N','O','1997-03-03','1997-02-03','1997-03-05','NONE','FOB','blithely ironic deposits s'), +(3106,86,7,1,22,21693.76,0.03,0.02,'N','O','1997-02-28','1997-02-12','1997-03-03','DELIVER IN PERSON','FOB','quickly regular ins'), +(3106,136,2,2,49,50770.37,0.06,0.06,'N','O','1997-02-27','1997-03-11','1997-03-12','NONE','TRUCK','furiously ironic decoys along the slyly'), +(3106,52,7,3,42,39986.1,0.09,0.07,'N','O','1997-04-05','1997-03-17','1997-04-22','COLLECT COD','REG AIR','final accounts are busily ag'), +(3106,196,10,4,6,6577.14,0.1,0.07,'N','O','1997-02-02','1997-04-11','1997-02-27','COLLECT COD','REG AIR','even, final theodolites use carefully'), +(3106,65,2,5,16,15440.96,0.09,0.08,'N','O','1997-02-25','1997-04-10','1997-03-16','NONE','AIR','furiously bold packages above the furiousl'), +(3107,149,6,1,16,16786.24,0.05,0.04,'N','O','1997-08-30','1997-10-20','1997-09-20','TAKE BACK RETURN','REG AIR','furiously special reques'), +(3107,142,3,2,35,36474.9,0.05,0.06,'N','O','1997-08-27','1997-11-19','1997-09-14','COLLECT COD','TRUCK','unusual foxes sleep furiou'), +(3107,170,9,3,23,24613.91,0.03,0.06,'N','O','1997-12-10','1997-11-11','1997-12-14','TAKE BACK RETURN','SHIP','pending deposits wake bl'), +(3107,87,8,4,27,26651.16,0,0.08,'N','O','1997-11-15','1997-10-31','1997-11-28','DELIVER IN PERSON','FOB','fluffily regular packages are. carefully'), +(3108,109,2,1,37,37336.7,0.06,0.04,'A','F','1993-10-16','1993-10-01','1993-11-09','DELIVER IN PERSON','RAIL','furiously express requests wake '), +(3108,166,1,2,26,27720.16,0.08,0.05,'A','F','1993-11-12','1993-10-05','1993-12-09','COLLECT COD','TRUCK','regular accounts haggle blithely accord'), +(3109,18,2,1,32,29376.32,0.08,0.03,'A','F','1993-09-05','1993-10-06','1993-09-18','DELIVER IN PERSON','FOB','slyly regular'), +(3109,145,4,2,49,51211.86,0.08,0.06,'R','F','1993-10-24','1993-09-30','1993-11-21','TAKE BACK RETURN','AIR','slyly silent pla'), +(3109,176,4,3,43,46275.31,0.04,0.07,'R','F','1993-09-29','1993-09-06','1993-10-13','COLLECT COD','MAIL','fluffily final instructions b'), +(3109,79,10,4,26,25455.82,0.01,0.05,'R','F','1993-11-16','1993-10-18','1993-12-06','TAKE BACK RETURN','TRUCK','unusual, even pa'), +(3109,143,2,5,50,52157,0.01,0.08,'A','F','1993-09-17','1993-10-16','1993-10-11','NONE','FOB','permanently exp'); +INSERT INTO lineitem VALUES +(3109,15,9,6,10,9150.1,0.1,0.04,'A','F','1993-10-26','1993-10-03','1993-11-09','NONE','TRUCK','quickly regular deposits after the accoun'), +(3110,89,10,1,1,989.08,0.02,0.07,'A','F','1995-01-15','1995-01-20','1995-01-30','DELIVER IN PERSON','REG AIR','slyly bold packages wake bl'), +(3110,57,2,2,31,29668.55,0.01,0.06,'R','F','1995-03-31','1995-03-07','1995-04-21','TAKE BACK RETURN','REG AIR','requests along the blithely pe'), +(3110,3,10,3,34,30702,0.02,0.02,'A','F','1995-02-23','1995-01-27','1995-03-09','TAKE BACK RETURN','FOB','even, bold accounts above the regular, '), +(3110,40,1,4,16,15040.64,0.04,0.04,'A','F','1995-01-10','1995-02-06','1995-01-26','NONE','MAIL','blithely regul'), +(3110,140,6,5,39,40565.46,0.09,0.01,'A','F','1995-02-09','1995-01-21','1995-02-21','NONE','MAIL','quickly final accou'), +(3111,137,8,1,22,22816.86,0.06,0.05,'N','O','1995-09-21','1995-11-09','1995-10-17','COLLECT COD','REG AIR','carefully st'), +(3111,58,10,2,30,28741.5,0.06,0.05,'N','O','1995-10-05','1995-11-15','1995-11-01','TAKE BACK RETURN','TRUCK','fluffily final packages wake caref'), +(3111,52,3,3,10,9520.5,0.02,0.02,'N','O','1995-11-10','1995-11-02','1995-12-04','NONE','FOB','doggedly bold accounts wa'), +(3111,132,3,4,31,31996.03,0,0.08,'N','O','1995-10-26','1995-09-26','1995-11-02','TAKE BACK RETURN','MAIL','carefully silent accounts haggle slyly si'), +(3111,54,6,5,14,13356.7,0.05,0.04,'N','O','1995-10-17','1995-10-19','1995-10-19','TAKE BACK RETURN','SHIP','unusual requests wake furiously quick'), +(3111,86,7,6,5,4930.4,0.03,0.08,'N','O','1995-08-30','1995-10-16','1995-09-04','DELIVER IN PERSON','TRUCK','ironic requests cajole atop'), +(3111,148,9,7,41,42973.74,0.09,0.05,'N','O','1995-11-22','1995-11-01','1995-12-01','TAKE BACK RETURN','FOB','dugouts engage furiously final f'), +(3136,142,5,1,30,31264.2,0.02,0.08,'R','F','1994-08-13','1994-10-02','1994-09-02','TAKE BACK RETURN','RAIL','slyly even pla'), +(3136,103,4,2,7,7021.7,0.05,0.07,'A','F','1994-10-08','1994-09-14','1994-10-11','TAKE BACK RETURN','SHIP','furiously express '), +(3136,158,3,3,43,45500.45,0,0.07,'A','F','1994-09-05','1994-09-25','1994-09-11','NONE','RAIL','fluffily final foxes '), +(3136,116,6,4,26,26418.86,0.04,0.05,'A','F','1994-10-13','1994-11-07','1994-11-05','TAKE BACK RETURN','AIR','even, unusual requests acro'), +(3136,67,8,5,2,1934.12,0.08,0.07,'R','F','1994-11-21','1994-11-03','1994-11-26','DELIVER IN PERSON','TRUCK','ironic deposits sleep blithely unusual,'), +(3136,80,1,6,29,28422.32,0.08,0.07,'A','F','1994-11-16','1994-10-03','1994-12-14','NONE','FOB','blithely special dependencies cajole arou'), +(3137,3,4,1,6,5418,0.02,0.02,'N','O','1995-09-19','1995-10-23','1995-10-16','NONE','SHIP','slyly final theodolites will have to'), +(3137,6,3,2,4,3624,0.06,0.04,'N','O','1995-10-01','1995-09-11','1995-10-30','COLLECT COD','RAIL','quickly even ideas sleep slyly. furiousl'), +(3138,93,5,1,7,6951.63,0.05,0.05,'R','F','1994-03-04','1994-03-14','1994-03-20','NONE','AIR','furiously pending foxes sleep'), +(3138,44,5,2,27,25489.08,0.09,0.01,'R','F','1994-03-24','1994-03-23','1994-04-18','DELIVER IN PERSON','FOB','ideas about'), +(3138,197,8,3,32,35110.08,0,0.01,'R','F','1994-02-24','1994-05-07','1994-02-28','TAKE BACK RETURN','MAIL','pending patte'), +(3138,172,3,4,38,40742.46,0.07,0.04,'R','F','1994-02-21','1994-03-21','1994-03-13','COLLECT COD','FOB','even packages c'), +(3138,10,1,5,12,10920.12,0.09,0.02,'A','F','1994-03-04','1994-04-11','1994-03-21','COLLECT COD','FOB','blithely final id'), +(3138,44,7,6,25,23601,0.05,0.08,'A','F','1994-05-19','1994-04-07','1994-06-17','TAKE BACK RETURN','AIR','carefully spe'), +(3139,40,6,1,46,43241.84,0.08,0.03,'R','F','1992-04-28','1992-03-04','1992-05-19','TAKE BACK RETURN','FOB','even, regular theodoli'), +(3140,7,4,1,21,19047,0.08,0.02,'R','F','1992-04-12','1992-05-31','1992-04-21','NONE','REG AIR','slyly ironic accounts affix af'), +(3140,89,10,2,10,9890.8,0.07,0.01,'A','F','1992-05-30','1992-05-09','1992-06-09','COLLECT COD','RAIL','furiously express asympt'); +INSERT INTO lineitem VALUES +(3140,133,4,3,28,28927.64,0.06,0,'R','F','1992-06-08','1992-07-07','1992-07-08','TAKE BACK RETURN','SHIP','accounts boos'), +(3141,177,6,1,32,34469.44,0.06,0,'N','O','1995-11-21','1995-12-18','1995-11-26','DELIVER IN PERSON','FOB','slyly unusual foxes around the slyly e'), +(3141,10,7,2,37,33670.37,0.1,0.05,'N','O','1996-01-24','1995-12-16','1996-01-27','DELIVER IN PERSON','AIR','furiously express requests sleep '), +(3141,79,7,3,9,8811.63,0.09,0.02,'N','O','1995-11-11','1995-12-10','1995-12-02','DELIVER IN PERSON','MAIL','always final theodolites '), +(3141,46,9,4,47,44463.88,0.03,0.01,'N','O','1995-11-29','1996-01-13','1995-12-10','TAKE BACK RETURN','TRUCK','carefully express deposits solve re'), +(3142,120,7,1,15,15301.8,0.03,0.08,'R','F','1992-08-15','1992-08-18','1992-08-22','DELIVER IN PERSON','AIR','slyly unusual deposits along th'), +(3143,90,1,1,22,21781.98,0.02,0,'A','F','1993-05-11','1993-03-26','1993-05-20','TAKE BACK RETURN','MAIL','furiously ironic braids boost slyly. '), +(3143,183,4,2,40,43327.2,0.03,0.08,'A','F','1993-05-07','1993-03-29','1993-05-17','COLLECT COD','FOB','carefully regular requests are furio'), +(3143,183,4,3,22,23829.96,0.05,0.03,'A','F','1993-03-18','1993-05-09','1993-04-14','DELIVER IN PERSON','MAIL','special foxes was. sly, express courts'), +(3143,66,7,4,46,44438.76,0.05,0.08,'R','F','1993-04-19','1993-03-21','1993-05-05','COLLECT COD','REG AIR','ironic, silent instruc'), +(3168,60,8,1,46,44162.76,0.08,0.08,'R','F','1992-02-14','1992-03-02','1992-03-02','TAKE BACK RETURN','SHIP','quickly pending accounts integr'), +(3168,154,5,2,1,1054.15,0.06,0.08,'A','F','1992-05-27','1992-03-12','1992-06-09','TAKE BACK RETURN','SHIP','unusual theodolite'), +(3168,128,3,3,13,13365.56,0.09,0.02,'A','F','1992-03-05','1992-04-29','1992-03-15','NONE','SHIP','furiously fin'), +(3168,165,10,4,11,11716.76,0.02,0.05,'R','F','1992-04-12','1992-03-17','1992-05-12','COLLECT COD','SHIP','carefully final foxes cajole quickly ar'), +(3169,192,4,1,12,13106.28,0.01,0.04,'R','F','1994-01-05','1994-03-18','1994-01-21','COLLECT COD','REG AIR','always pending ideas boost slyly '), +(3169,200,3,2,17,18703.4,0.05,0.04,'R','F','1994-03-02','1994-01-21','1994-03-03','DELIVER IN PERSON','TRUCK','furiously e'), +(3169,188,9,3,12,13058.16,0.08,0.07,'A','F','1994-04-18','1994-03-12','1994-05-08','TAKE BACK RETURN','FOB','regular requests are enticingly through the'), +(3169,105,6,4,26,26132.6,0.1,0.04,'R','F','1994-04-08','1994-03-21','1994-04-29','NONE','TRUCK','regular th'), +(3169,108,9,5,6,6048.6,0.09,0.01,'A','F','1994-03-24','1994-02-22','1994-04-04','TAKE BACK RETURN','AIR','regular depende'), +(3169,177,8,6,46,49549.82,0.02,0.07,'A','F','1994-02-01','1994-01-22','1994-02-24','DELIVER IN PERSON','RAIL','pending requests sleep ironic depen'), +(3170,40,6,1,12,11280.48,0.03,0.03,'N','O','1998-02-12','1998-01-17','1998-02-24','NONE','TRUCK','slyly permanen'), +(3170,100,2,2,21,21002.1,0.01,0,'N','O','1997-12-09','1998-01-31','1997-12-21','DELIVER IN PERSON','MAIL','regular accou'), +(3170,89,10,3,27,26705.16,0,0.05,'N','O','1998-02-25','1998-01-29','1998-02-27','COLLECT COD','AIR','carefully final pack'), +(3170,41,2,4,34,31995.36,0.05,0.04,'N','O','1998-02-01','1998-01-11','1998-02-20','TAKE BACK RETURN','TRUCK','slyly ironic requests after the final sen'), +(3170,90,1,5,32,31682.88,0.02,0.04,'N','O','1997-11-24','1997-12-12','1997-12-15','COLLECT COD','SHIP','fluffily un'), +(3170,110,5,6,43,43434.73,0.08,0.05,'N','O','1998-01-05','1998-01-04','1998-01-14','NONE','REG AIR','even dependencies was after the furio'), +(3170,84,5,7,26,25586.08,0.1,0.05,'N','O','1998-02-12','1997-12-22','1998-02-28','COLLECT COD','TRUCK','quickly busy packages '), +(3171,47,4,1,34,32199.36,0.04,0,'A','F','1993-05-30','1993-05-27','1993-06-06','DELIVER IN PERSON','REG AIR','carefully even deposits al'), +(3171,139,10,2,50,51956.5,0.01,0.04,'A','F','1993-07-19','1993-05-15','1993-07-31','TAKE BACK RETURN','REG AIR','slyly even packages'); +INSERT INTO lineitem VALUES +(3172,96,9,1,4,3984.36,0.06,0.07,'A','F','1992-09-26','1992-08-15','1992-10-20','DELIVER IN PERSON','TRUCK','ironic deposits cajole quickly boldly pe'), +(3172,148,7,2,43,45070.02,0.05,0.07,'R','F','1992-08-22','1992-07-07','1992-08-26','COLLECT COD','MAIL','blithely final deposits about the carefull'), +(3172,132,3,3,13,13417.69,0.03,0.01,'R','F','1992-07-06','1992-08-06','1992-08-05','DELIVER IN PERSON','MAIL','furiously final packages unw'), +(3172,135,6,4,28,28983.64,0.08,0.04,'R','F','1992-07-09','1992-07-14','1992-07-16','NONE','MAIL','carefully enticing foxes ha'), +(3172,64,5,5,31,29885.86,0.05,0.08,'A','F','1992-09-01','1992-08-27','1992-09-23','NONE','SHIP','furiously final accounts sleep. thin,'), +(3173,195,6,1,35,38331.65,0.01,0.08,'N','O','1996-09-09','1996-10-15','1996-10-04','TAKE BACK RETURN','RAIL','ideas promise furiously. slyly'), +(3173,178,7,2,5,5390.85,0.09,0.07,'N','O','1996-12-06','1996-09-17','1996-12-07','DELIVER IN PERSON','REG AIR','slyly even deposits across the pe'), +(3173,46,9,3,16,15136.64,0.06,0.01,'N','O','1996-08-12','1996-09-21','1996-08-22','NONE','SHIP','regular, regular accounts poach '), +(3173,94,5,4,2,1988.18,0,0,'N','O','1996-10-15','1996-11-06','1996-10-18','COLLECT COD','MAIL','carefully ironic pinto beans are '), +(3173,185,6,5,2,2170.36,0,0.06,'N','O','1996-08-18','1996-09-21','1996-09-07','DELIVER IN PERSON','MAIL','carefully regular dependen'), +(3174,186,7,1,6,6517.08,0.04,0.08,'N','O','1996-03-13','1996-02-09','1996-03-22','DELIVER IN PERSON','AIR','blithely even deposits w'), +(3174,194,7,2,4,4376.76,0.01,0.05,'N','O','1995-11-17','1996-01-08','1995-11-27','DELIVER IN PERSON','RAIL','platelets sleep. final,'), +(3174,92,4,3,21,20833.89,0.08,0.05,'N','O','1996-02-20','1995-12-28','1996-03-17','NONE','MAIL','carefully even'), +(3174,192,6,4,13,14198.47,0.08,0.06,'N','O','1996-01-11','1996-01-26','1996-02-01','DELIVER IN PERSON','SHIP','foxes sleep quick'), +(3174,72,2,5,39,37910.73,0.02,0.06,'N','O','1995-12-02','1996-02-08','1995-12-12','TAKE BACK RETURN','TRUCK','accounts integrate furiousl'), +(3174,120,7,6,8,8160.96,0.07,0.08,'N','O','1995-12-07','1996-01-08','1995-12-29','DELIVER IN PERSON','TRUCK','carefully final requests sh'), +(3175,120,10,1,28,28563.36,0.1,0.01,'R','F','1994-09-27','1994-10-05','1994-10-04','NONE','FOB','quickly regular pearls '), +(3175,1,4,2,38,34238,0.01,0.07,'R','F','1994-10-10','1994-08-25','1994-10-28','NONE','MAIL','regular accounts de'), +(3175,129,4,3,12,12349.44,0.09,0.07,'R','F','1994-10-16','1994-09-15','1994-10-18','NONE','AIR','final platelets caj'), +(3175,85,6,4,14,13791.12,0.02,0.05,'R','F','1994-10-21','1994-09-05','1994-11-15','NONE','MAIL','quickly final accounts wake sly'), +(3175,18,8,5,47,43146.47,0.08,0.03,'R','F','1994-08-08','1994-09-10','1994-08-21','COLLECT COD','REG AIR','express accounts unw'), +(3175,175,6,6,44,47307.48,0.01,0,'R','F','1994-09-26','1994-08-30','1994-10-24','TAKE BACK RETURN','MAIL','carefully regular accounts promise b'), +(3175,1,4,7,32,28832,0.01,0.02,'R','F','1994-09-29','1994-09-20','1994-10-10','TAKE BACK RETURN','SHIP','carefully daring theodolites haggle furio'), +(3200,116,6,1,17,17273.87,0.1,0,'N','O','1996-06-06','1996-04-21','1996-06-14','DELIVER IN PERSON','AIR','never express asymptotes p'), +(3200,166,1,2,27,28786.32,0.03,0,'N','O','1996-05-07','1996-05-01','1996-05-09','TAKE BACK RETURN','REG AIR','regular, final deposits use '), +(3200,131,2,3,36,37120.68,0.01,0.01,'N','O','1996-03-22','1996-03-19','1996-03-30','DELIVER IN PERSON','FOB','careful, silent pinto beans within the fur'), +(3200,30,9,4,11,10230.33,0.1,0.02,'N','O','1996-03-18','1996-03-21','1996-04-14','COLLECT COD','RAIL','carefully careful pinto '), +(3200,198,9,5,16,17571.04,0.05,0,'N','O','1996-02-28','1996-03-13','1996-03-11','NONE','RAIL','furiously express foxe'), +(3200,175,3,6,25,26879.25,0.1,0.01,'N','O','1996-02-08','1996-04-11','1996-03-06','COLLECT COD','FOB','express, en'); +INSERT INTO lineitem VALUES +(3201,46,7,1,11,10406.44,0.1,0.06,'A','F','1993-09-27','1993-08-29','1993-10-18','NONE','TRUCK','fluffily unusual ideas cajole '), +(3201,118,5,2,27,27488.97,0.08,0.02,'R','F','1993-08-31','1993-08-24','1993-09-08','TAKE BACK RETURN','FOB','blithely regular de'), +(3201,119,6,3,50,50955.5,0,0.08,'R','F','1993-10-27','1993-09-30','1993-11-16','COLLECT COD','TRUCK','carefully special packag'), +(3202,183,4,1,30,32495.4,0.09,0.02,'A','F','1993-03-18','1993-03-10','1993-03-23','COLLECT COD','SHIP','unusual ac'), +(3202,20,4,2,22,20240.44,0.01,0.02,'R','F','1993-02-16','1993-02-16','1993-03-16','TAKE BACK RETURN','MAIL','requests must have '), +(3203,144,5,1,23,24015.22,0.01,0.07,'N','O','1998-01-04','1998-01-12','1998-01-24','COLLECT COD','SHIP','carefully regular '), +(3203,188,9,2,22,23939.96,0.03,0.03,'N','O','1998-02-12','1998-01-01','1998-02-18','TAKE BACK RETURN','REG AIR','fluffily ir'), +(3204,12,2,1,10,9120.1,0.1,0.07,'R','F','1993-01-27','1993-03-08','1993-01-29','COLLECT COD','SHIP','express pa'), +(3204,7,10,2,39,35373,0.1,0.03,'R','F','1993-02-11','1993-03-19','1993-02-28','TAKE BACK RETURN','MAIL','slyly final ideas wake carefully'), +(3205,68,5,1,7,6776.42,0.09,0,'R','F','1992-07-05','1992-06-17','1992-07-07','NONE','SHIP','furiously blithe dugout'), +(3205,29,10,2,32,29728.64,0.08,0.03,'A','F','1992-06-01','1992-07-10','1992-06-06','TAKE BACK RETURN','RAIL','theodolites shall are quickly'), +(3205,103,6,3,38,38117.8,0.1,0.08,'A','F','1992-07-31','1992-06-03','1992-08-20','DELIVER IN PERSON','AIR','slyly ironic'), +(3205,56,7,4,10,9560.5,0.01,0.07,'A','F','1992-06-18','1992-07-04','1992-07-16','COLLECT COD','RAIL','slyly regular epitaphs sleep fu'), +(3205,70,9,5,18,17461.26,0.03,0.03,'A','F','1992-07-04','1992-06-14','1992-08-03','TAKE BACK RETURN','RAIL','fluffily ironic packages accord'), +(3205,195,8,6,19,20808.61,0.07,0.08,'R','F','1992-05-28','1992-05-30','1992-06-05','COLLECT COD','AIR','blithely pending requests h'), +(3205,69,8,7,36,34886.16,0.06,0.03,'A','F','1992-05-31','1992-06-19','1992-06-03','TAKE BACK RETURN','SHIP','boldly even realms haggle blithely. '), +(3206,176,4,1,1,1076.17,0.07,0.05,'N','O','1996-11-22','1996-10-16','1996-12-07','TAKE BACK RETURN','FOB','quickly even theodolites'), +(3206,111,5,2,37,37411.07,0.07,0.01,'N','O','1996-09-06','1996-10-31','1996-09-25','COLLECT COD','SHIP','blithely s'), +(3206,186,7,3,24,26068.32,0,0.08,'N','O','1996-08-25','1996-10-01','1996-09-04','COLLECT COD','TRUCK','blithely special orbits wake furiously. ca'), +(3207,113,3,1,2,2026.22,0.1,0.03,'N','O','1998-06-15','1998-04-20','1998-06-21','COLLECT COD','MAIL','ironic deposits sleep among the slyly pe'), +(3207,71,9,2,42,40784.94,0,0,'N','O','1998-05-02','1998-05-10','1998-06-01','NONE','SHIP','fluffily enticing instruct'), +(3207,152,7,3,17,17886.55,0.03,0.04,'N','O','1998-03-27','1998-04-06','1998-03-28','COLLECT COD','RAIL','regular deposits cajole. entici'), +(3207,19,6,4,32,29408.32,0,0.03,'N','O','1998-06-17','1998-04-26','1998-07-07','TAKE BACK RETURN','SHIP','bold packages above the slyly special'), +(3207,83,4,5,8,7864.64,0,0.06,'N','O','1998-06-13','1998-04-26','1998-07-11','COLLECT COD','SHIP','blithely final requests cajole fluffily.'), +(3207,134,5,6,32,33092.16,0.03,0.05,'N','O','1998-04-19','1998-05-01','1998-05-08','COLLECT COD','FOB','quickly regular sheaves may wake '), +(3232,14,5,1,22,20108.22,0.1,0.01,'A','F','1992-11-30','1992-12-09','1992-12-04','NONE','RAIL','carefully ironic deposits wake blit'), +(3232,135,1,2,34,35194.42,0.07,0.04,'R','F','1993-01-09','1992-11-14','1993-02-03','NONE','SHIP','unusual foxes use fur'), +(3232,181,2,3,3,3243.54,0.04,0.06,'R','F','1992-12-14','1992-12-11','1992-12-29','DELIVER IN PERSON','FOB','blithely regular dependencies'), +(3233,51,2,1,23,21874.15,0.04,0.05,'A','F','1994-12-07','1995-01-11','1994-12-26','NONE','AIR','blithely iro'), +(3233,154,6,2,6,6324.9,0.02,0.08,'A','F','1994-12-06','1994-12-05','1994-12-07','TAKE BACK RETURN','REG AIR','carefully special a'); +INSERT INTO lineitem VALUES +(3233,100,4,3,2,2000.2,0.04,0.06,'R','F','1995-01-03','1995-01-02','1995-01-21','TAKE BACK RETURN','AIR','slow deposit'), +(3233,9,2,4,25,22725,0.04,0.07,'A','F','1994-11-24','1995-01-07','1994-12-11','NONE','RAIL','theodolites a'), +(3234,79,10,1,45,44058.15,0.01,0.04,'N','O','1996-05-15','1996-05-09','1996-06-02','DELIVER IN PERSON','TRUCK','quickly regular requests '), +(3234,84,5,2,23,22633.84,0.03,0,'N','O','1996-05-29','1996-05-15','1996-06-17','DELIVER IN PERSON','AIR','final reque'), +(3234,75,4,3,16,15601.12,0.06,0.05,'N','O','1996-06-10','1996-05-30','1996-06-18','COLLECT COD','RAIL','blithely regular accounts wake across th'), +(3234,122,1,4,50,51106,0.09,0.05,'N','O','1996-06-11','1996-05-19','1996-06-18','NONE','MAIL','never ruthless dolphins affix across t'), +(3234,165,2,5,14,14912.24,0.01,0.07,'N','O','1996-04-06','1996-05-30','1996-04-13','NONE','REG AIR','fluffily slow accounts '), +(3235,109,2,1,9,9081.9,0.07,0,'N','O','1995-11-17','1995-12-24','1995-11-30','COLLECT COD','AIR','regular accounts '), +(3235,95,6,2,43,42788.87,0.1,0.07,'N','O','1995-12-25','1996-01-23','1996-01-09','COLLECT COD','MAIL','quickly regular acc'), +(3235,138,9,3,29,30105.77,0.06,0.06,'N','O','1996-01-28','1995-12-26','1996-02-12','DELIVER IN PERSON','RAIL','furiously bold accounts was slyly regular p'), +(3235,178,9,4,23,24797.91,0,0.01,'N','O','1996-02-16','1996-01-05','1996-03-07','DELIVER IN PERSON','SHIP','furiously fina'), +(3236,117,4,1,10,10171.1,0.06,0.05,'N','O','1996-11-15','1996-12-14','1996-11-29','TAKE BACK RETURN','AIR','carefully express accounts acros'), +(3236,122,7,2,21,21464.52,0.01,0.07,'N','O','1996-12-23','1996-12-12','1997-01-21','NONE','AIR','pending platelets a'), +(3236,118,2,3,7,7126.77,0.07,0.01,'N','O','1996-12-27','1996-12-18','1997-01-24','DELIVER IN PERSON','SHIP','furiously ironic ideas sleep. furiously'), +(3237,11,5,1,11,10021.11,0.02,0.07,'A','F','1992-08-03','1992-07-31','1992-08-13','TAKE BACK RETURN','AIR','carefully silent ideas serve ideas. d'), +(3238,72,3,1,12,11664.84,0.06,0.01,'R','F','1993-03-06','1993-05-08','1993-04-01','DELIVER IN PERSON','AIR','pending requests integrate! furiously idl'), +(3238,173,2,2,26,27902.42,0.01,0.06,'A','F','1993-02-25','1993-04-04','1993-03-20','TAKE BACK RETURN','REG AIR','blithely spe'), +(3238,81,2,3,1,981.08,0,0.04,'R','F','1993-05-17','1993-04-18','1993-05-27','NONE','SHIP','regular, ironic accounts lo'), +(3239,45,8,1,50,47252,0.05,0.01,'N','O','1998-02-09','1998-04-02','1998-02-22','NONE','FOB','final instructions detect. fu'), +(3239,45,8,2,43,40636.72,0.01,0.06,'N','O','1998-01-15','1998-03-12','1998-01-29','COLLECT COD','REG AIR','express reques'), +(3239,13,7,3,13,11869.13,0.01,0.05,'N','O','1998-02-10','1998-02-19','1998-02-25','DELIVER IN PERSON','MAIL','slyly final '), +(3239,195,6,4,26,28474.94,0.03,0.05,'N','O','1998-01-21','1998-03-21','1998-02-08','DELIVER IN PERSON','SHIP','slyly ironic accounts wake fu'), +(3239,12,9,5,31,28272.31,0.1,0.08,'N','O','1998-04-14','1998-03-24','1998-04-17','DELIVER IN PERSON','FOB','furiously silent gifts aft'), +(3264,200,1,1,39,42907.8,0.06,0.06,'N','O','1996-11-07','1996-12-12','1996-11-20','TAKE BACK RETURN','REG AIR','carefully bold co'), +(3264,131,2,2,34,35058.42,0,0.01,'N','O','1997-01-03','1997-01-06','1997-01-29','TAKE BACK RETURN','REG AIR','furiously spec'), +(3264,125,8,3,11,11276.32,0.09,0.03,'N','O','1996-12-11','1996-12-19','1996-12-15','DELIVER IN PERSON','SHIP','silent, ironic packages haggle slyl'), +(3264,109,10,4,24,24218.4,0.09,0.07,'N','O','1997-01-07','1996-12-13','1997-01-11','TAKE BACK RETURN','RAIL','ironic asymptotes run slyly. ironic deposit'), +(3264,63,4,5,6,5778.36,0.04,0.03,'N','O','1996-11-10','1996-12-05','1996-11-22','TAKE BACK RETURN','SHIP','blithely express packages wake'), +(3264,141,2,6,43,44769.02,0.06,0.06,'N','O','1997-01-17','1997-01-24','1997-02-01','TAKE BACK RETURN','TRUCK','furiously special pint'), +(3265,25,4,1,8,7400.16,0.06,0.02,'A','F','1992-09-01','1992-09-12','1992-09-27','DELIVER IN PERSON','TRUCK','packages use furiously ironic in'); +INSERT INTO lineitem VALUES +(3265,72,2,2,7,6804.49,0.09,0,'R','F','1992-09-16','1992-09-04','1992-10-14','DELIVER IN PERSON','MAIL','ideas are. ruthless, regular id'), +(3265,191,4,3,28,30553.32,0.09,0.08,'A','F','1992-10-22','1992-08-23','1992-10-25','NONE','RAIL','final theodolites sleep furiously am'), +(3266,64,1,1,31,29885.86,0.09,0.02,'N','O','1995-06-19','1995-05-04','1995-07-06','COLLECT COD','MAIL','furiously idle accounts a'), +(3266,38,4,2,43,40335.29,0.06,0.07,'R','F','1995-05-04','1995-05-30','1995-05-11','COLLECT COD','AIR','unusual, unusual pinto beans use'), +(3267,185,6,1,33,35810.94,0.06,0.01,'N','O','1997-03-30','1997-03-25','1997-04-23','TAKE BACK RETURN','AIR','carefully special packages believe permanen'), +(3268,96,7,1,1,996.09,0.06,0.08,'A','F','1994-09-12','1994-08-31','1994-09-16','NONE','TRUCK','final, regular packag'), +(3268,42,9,2,40,37681.6,0.08,0.01,'R','F','1994-06-30','1994-08-22','1994-07-25','COLLECT COD','FOB','furiously permanent packages integ'), +(3269,161,10,1,40,42446.4,0.02,0.07,'N','O','1996-06-11','1996-05-06','1996-06-15','DELIVER IN PERSON','TRUCK','blithely ironic instructi'), +(3269,38,4,2,46,43149.38,0,0.02,'N','O','1996-04-21','1996-04-12','1996-05-10','DELIVER IN PERSON','MAIL','ironic packages haggle carefully. q'), +(3269,44,3,3,39,36817.56,0.02,0.03,'N','O','1996-03-13','1996-05-26','1996-03-19','COLLECT COD','MAIL','quietly si'), +(3269,83,4,4,37,36373.96,0.07,0.05,'N','O','1996-06-14','1996-04-27','1996-07-07','NONE','MAIL','carefully expre'), +(3269,93,7,5,42,41709.78,0.09,0.05,'N','O','1996-03-19','1996-04-24','1996-04-18','COLLECT COD','TRUCK','blithely ironic requests cajole bli'), +(3269,131,7,6,16,16498.08,0.01,0.08,'N','O','1996-03-03','1996-04-06','1996-03-06','NONE','RAIL','ironic accounts cajole furiously abo'), +(3270,35,1,1,11,10285.33,0.07,0.06,'N','O','1997-07-29','1997-08-11','1997-08-05','TAKE BACK RETURN','AIR','slyly final accounts thrash am'), +(3270,38,4,2,44,41273.32,0.1,0.05,'N','O','1997-07-20','1997-08-15','1997-08-04','DELIVER IN PERSON','SHIP','fluffily express deposits wake car'), +(3270,65,4,3,20,19301.2,0.01,0.02,'N','O','1997-08-26','1997-07-31','1997-08-30','DELIVER IN PERSON','FOB','unusual packages should have to ar'), +(3270,189,10,4,29,31586.22,0.06,0.05,'N','O','1997-07-01','1997-07-23','1997-07-10','TAKE BACK RETURN','MAIL','quickly final frays integrate q'), +(3270,34,10,5,32,29888.96,0.03,0,'N','O','1997-09-23','1997-08-17','1997-09-27','NONE','REG AIR','regular packages use carefully about the'), +(3270,57,5,6,29,27754.45,0.01,0.04,'N','O','1997-08-22','1997-08-17','1997-09-06','COLLECT COD','RAIL','slyly bold theodolites nag a'), +(3270,117,1,7,9,9153.99,0.06,0.08,'N','O','1997-08-14','1997-08-11','1997-09-09','DELIVER IN PERSON','SHIP','carefully unusual instructions '), +(3271,57,9,1,30,28711.5,0.01,0.04,'A','F','1992-01-16','1992-03-20','1992-01-17','DELIVER IN PERSON','AIR','carefully final warthogs hag'), +(3271,54,5,2,18,17172.9,0.09,0.06,'R','F','1992-05-01','1992-03-28','1992-05-29','DELIVER IN PERSON','FOB','blithely regular p'), +(3271,95,6,3,14,13931.26,0.05,0.01,'A','F','1992-02-24','1992-02-14','1992-03-23','NONE','AIR','dependencies around the ins'), +(3271,64,1,4,29,27957.74,0.07,0.04,'A','F','1992-03-10','1992-02-05','1992-03-14','COLLECT COD','MAIL','unusual deposits wake carefully unusua'), +(3296,84,5,1,12,11808.96,0.06,0.07,'R','F','1994-12-08','1994-12-14','1994-12-24','COLLECT COD','AIR','regular instructions'), +(3296,149,8,2,31,32523.34,0.08,0,'R','F','1995-01-26','1994-12-25','1995-02-16','NONE','REG AIR','final, brave asymptotes lose ir'), +(3296,185,6,3,29,31470.22,0.02,0.04,'A','F','1995-01-12','1994-11-26','1995-02-06','DELIVER IN PERSON','SHIP','furiously ironic foxes integrate'), +(3296,140,1,4,47,48886.58,0.06,0,'A','F','1994-11-08','1994-12-20','1994-11-30','NONE','FOB','slyly final d'), +(3296,177,6,5,16,17234.72,0.06,0.02,'R','F','1995-01-11','1994-12-27','1995-01-12','DELIVER IN PERSON','SHIP','blithely final accounts are quickly acro'); +INSERT INTO lineitem VALUES +(3296,197,1,6,40,43887.6,0,0.04,'A','F','1994-12-28','1994-12-08','1995-01-13','COLLECT COD','REG AIR','bold excuses doubt carefully afte'), +(3296,36,2,7,6,5616.18,0.02,0.01,'R','F','1995-01-03','1994-12-23','1995-01-27','TAKE BACK RETURN','AIR','quickly regu'), +(3297,134,10,1,10,10341.3,0.1,0.04,'A','F','1992-12-14','1993-01-21','1992-12-26','NONE','SHIP','blithely f'), +(3298,149,6,1,9,9442.26,0.01,0.06,'N','O','1996-08-15','1996-05-24','1996-09-12','COLLECT COD','REG AIR','ironic courts cajole blithely '), +(3298,186,7,2,27,29326.86,0.06,0.06,'N','O','1996-07-10','1996-05-21','1996-07-15','DELIVER IN PERSON','FOB','bold accounts affix carefull'), +(3298,29,2,3,25,23225.5,0.1,0.08,'N','O','1996-06-30','1996-05-31','1996-07-23','COLLECT COD','SHIP','accounts solve fluffily '), +(3298,191,5,4,1,1091.19,0.1,0.03,'N','O','1996-07-31','1996-05-23','1996-08-24','TAKE BACK RETURN','FOB','bold theodolites hinder furiously after '), +(3299,183,4,1,40,43327.2,0.03,0.02,'A','F','1994-03-21','1994-03-23','1994-04-12','COLLECT COD','AIR','foxes cajo'), +(3300,129,4,1,3,3087.36,0.07,0.02,'N','O','1995-11-01','1995-10-02','1995-11-20','NONE','REG AIR','silent depo'), +(3300,149,10,2,23,24130.22,0.02,0.02,'N','O','1995-08-17','1995-09-03','1995-09-04','COLLECT COD','TRUCK','slyly idle dugouts cajole blithely expres'), +(3301,169,8,1,45,48112.2,0.04,0.05,'A','F','1994-11-19','1994-10-27','1994-11-24','TAKE BACK RETURN','FOB','grouches maintain carefully. quickly '), +(3302,36,2,1,45,42121.35,0.09,0,'N','O','1996-01-24','1995-12-16','1996-02-13','COLLECT COD','FOB','packages wake blithely according t'), +(3303,184,5,1,25,27104.5,0.06,0.01,'N','O','1998-03-25','1998-01-31','1998-04-12','NONE','SHIP','fluffily express packages nod alo'), +(3303,21,2,2,15,13815.3,0.04,0.06,'N','O','1998-01-29','1998-01-22','1998-02-21','COLLECT COD','SHIP','regular packages wake dependencie'), +(3303,99,10,3,37,36966.33,0.05,0.02,'N','O','1998-02-16','1998-03-07','1998-02-18','TAKE BACK RETURN','TRUCK','unusual pinto beans nag fluffily. furi'), +(3303,36,2,4,26,24336.78,0.09,0,'N','O','1998-01-18','1998-03-11','1998-02-11','DELIVER IN PERSON','REG AIR','blithely bo'), +(3328,113,7,1,6,6078.66,0.03,0.08,'A','F','1993-03-07','1993-01-25','1993-03-29','COLLECT COD','TRUCK','regular packages wa'), +(3328,5,2,2,23,20815,0.01,0.06,'R','F','1993-01-12','1993-02-07','1993-01-30','TAKE BACK RETURN','MAIL','sly, pending deposits across '), +(3328,139,10,3,44,45721.72,0.05,0,'R','F','1992-12-03','1992-12-19','1992-12-09','TAKE BACK RETURN','FOB','packages are sly'), +(3328,95,9,4,42,41793.78,0.01,0.05,'R','F','1992-11-24','1992-12-20','1992-12-06','DELIVER IN PERSON','AIR','express, pending accounts maintain. careful'), +(3328,131,7,5,25,25778.25,0.05,0,'R','F','1993-01-28','1993-01-04','1993-01-31','NONE','RAIL','furiously ironic instructions wake. bli'), +(3329,138,4,1,36,37372.68,0.09,0.08,'N','O','1995-08-06','1995-08-03','1995-08-14','DELIVER IN PERSON','TRUCK','furious pains beyond the furiously unusua'), +(3329,6,3,2,9,8154,0,0.02,'N','O','1995-07-24','1995-08-02','1995-08-01','COLLECT COD','MAIL','slyly unusual forges integrate abov'), +(3329,123,4,3,1,1023.12,0.04,0.08,'N','O','1995-08-22','1995-09-28','1995-09-09','COLLECT COD','REG AIR','carefully special sentiments s'), +(3330,20,7,1,49,45080.98,0.05,0.01,'R','F','1995-03-02','1995-03-03','1995-03-16','DELIVER IN PERSON','TRUCK','regular accounts b'), +(3331,64,9,1,9,8676.54,0.08,0.07,'A','F','1993-07-18','1993-07-03','1993-08-16','TAKE BACK RETURN','AIR','blithely bold'), +(3331,21,2,2,38,34998.76,0.06,0.04,'R','F','1993-07-24','1993-06-22','1993-08-23','NONE','AIR','slyly silent de'), +(3331,3,10,3,26,23478,0.09,0.05,'A','F','1993-08-05','1993-07-17','1993-08-29','DELIVER IN PERSON','MAIL','even packages are slyly final'), +(3332,84,5,1,28,27554.24,0.1,0.02,'R','F','1994-12-30','1995-01-16','1995-01-16','COLLECT COD','FOB','slow, even requests are'), +(3332,136,2,2,21,21758.73,0.08,0.04,'R','F','1995-02-04','1995-01-08','1995-02-06','COLLECT COD','MAIL','blithely bold pin'); +INSERT INTO lineitem VALUES +(3332,134,5,3,27,27921.51,0.03,0.02,'A','F','1994-12-10','1995-01-14','1994-12-11','TAKE BACK RETURN','FOB','thinly even i'), +(3333,150,9,1,27,28354.05,0.06,0.08,'A','F','1992-12-06','1992-10-26','1992-12-07','COLLECT COD','SHIP','permanent foxes nag quietly bold, '), +(3333,199,3,2,36,39570.84,0.08,0.07,'R','F','1992-11-20','1992-11-06','1992-12-16','TAKE BACK RETURN','FOB','quickly even '), +(3333,108,1,3,38,38307.8,0.05,0.05,'A','F','1992-10-30','1992-11-03','1992-11-04','NONE','MAIL','slyly express packages grow slyly even '), +(3333,113,4,4,49,49642.39,0.07,0.07,'R','F','1992-10-02','1992-11-30','1992-10-12','DELIVER IN PERSON','MAIL','regular deposit'), +(3333,43,2,5,45,42436.8,0.07,0.08,'A','F','1992-10-04','1992-11-08','1992-10-27','COLLECT COD','SHIP','deposits detect after '), +(3334,187,8,1,20,21743.6,0.04,0.03,'N','O','1996-05-21','1996-04-08','1996-05-26','TAKE BACK RETURN','AIR','slyly bold requests '), +(3334,190,1,2,7,7631.33,0.09,0.07,'N','O','1996-04-28','1996-04-08','1996-05-25','NONE','SHIP','sly, pending deposit'), +(3335,105,10,1,13,13066.3,0.06,0.07,'N','O','1996-01-20','1995-12-20','1996-02-09','COLLECT COD','REG AIR','express, regular foxes a'), +(3335,31,2,2,44,40965.32,0.07,0.02,'N','O','1996-01-05','1995-12-25','1996-01-18','DELIVER IN PERSON','SHIP','carefully bold theodolites might boost.'), +(3335,140,6,3,16,16642.24,0.01,0.06,'N','O','1995-10-18','1995-12-08','1995-11-03','DELIVER IN PERSON','SHIP','regular deposits try to integrate careful'), +(3335,90,1,4,47,46534.23,0.1,0.03,'N','O','1995-12-02','1995-11-19','1995-12-27','NONE','MAIL','bold, special deposits sleep furiously. sl'), +(3360,174,4,1,31,33299.27,0.08,0.04,'N','O','1998-04-24','1998-04-12','1998-05-23','COLLECT COD','REG AIR','regular hockey players alongs'), +(3360,91,3,2,29,28741.61,0,0.06,'N','O','1998-04-15','1998-02-25','1998-05-13','TAKE BACK RETURN','FOB','slyly final acc'), +(3360,82,3,3,39,38301.12,0.08,0.03,'N','O','1998-04-09','1998-04-20','1998-05-05','DELIVER IN PERSON','REG AIR','always special theod'), +(3360,117,7,4,29,29496.19,0.1,0.01,'N','O','1998-05-19','1998-03-03','1998-06-09','TAKE BACK RETURN','FOB','carefully stealthy platelets s'), +(3360,58,6,5,4,3832.2,0.08,0.07,'N','O','1998-02-27','1998-03-23','1998-03-28','COLLECT COD','SHIP','carefully special pack'), +(3360,71,1,6,42,40784.94,0.04,0.01,'N','O','1998-05-07','1998-04-18','1998-06-04','DELIVER IN PERSON','FOB','deposits u'), +(3361,144,5,1,6,6264.84,0.02,0.02,'R','F','1992-10-02','1992-10-25','1992-10-05','DELIVER IN PERSON','FOB','furiously even instru'), +(3361,171,10,2,33,35348.61,0.01,0.02,'R','F','1992-11-09','1992-10-15','1992-11-11','TAKE BACK RETURN','MAIL','carefully express '), +(3361,191,5,3,31,33826.89,0.06,0.04,'R','F','1992-08-29','1992-10-13','1992-09-08','NONE','FOB','carefully special reque'), +(3362,22,5,1,14,12908.28,0.06,0.05,'N','O','1995-08-01','1995-09-06','1995-08-22','NONE','FOB','carefully pending '), +(3362,195,6,2,41,44902.79,0.05,0.03,'N','O','1995-10-31','1995-09-04','1995-11-17','COLLECT COD','REG AIR','silent, even excuses cajole quic'), +(3362,115,9,3,40,40604.4,0.05,0.06,'N','O','1995-08-19','1995-10-17','1995-09-05','TAKE BACK RETURN','FOB','furiously express instructi'), +(3362,2,7,4,3,2706,0.03,0.01,'N','O','1995-08-26','1995-09-02','1995-09-17','NONE','SHIP','furiously slow packages betw'), +(3362,138,9,5,36,37372.68,0.06,0,'N','O','1995-10-05','1995-08-28','1995-11-03','TAKE BACK RETURN','RAIL','furiously regular'), +(3362,188,9,6,46,50056.28,0.09,0.05,'N','O','1995-08-02','1995-10-12','1995-08-28','COLLECT COD','REG AIR','express, special accounts a'), +(3363,10,3,1,42,38220.42,0,0.08,'N','O','1995-11-09','1995-11-25','1995-11-15','TAKE BACK RETURN','RAIL','bold pains lose about the ironic sh'), +(3363,191,4,2,21,22914.99,0.08,0.08,'N','O','1995-12-10','1995-10-28','1995-12-28','COLLECT COD','RAIL','instructions after the furiously bold'), +(3363,159,7,3,2,2118.3,0.01,0.07,'N','O','1996-01-22','1995-12-01','1996-02-18','TAKE BACK RETURN','SHIP','busily regular pinto bea'); +INSERT INTO lineitem VALUES +(3363,113,3,4,20,20262.2,0.07,0.06,'N','O','1995-12-11','1995-11-15','1995-12-21','COLLECT COD','MAIL','carefully ex'), +(3363,200,4,5,4,4400.8,0,0.08,'N','O','1995-10-30','1995-11-17','1995-11-22','COLLECT COD','FOB','requests slee'), +(3364,90,1,1,49,48514.41,0.03,0.05,'N','O','1997-09-17','1997-08-23','1997-10-06','NONE','SHIP','silent, special dependencies a'), +(3364,111,2,2,38,38422.18,0.02,0.02,'N','O','1997-08-30','1997-09-12','1997-09-27','COLLECT COD','REG AIR','even, final orbits boost slyly c'), +(3364,156,4,3,10,10561.5,0,0.01,'N','O','1997-08-10','1997-08-24','1997-08-15','TAKE BACK RETURN','SHIP','blithely ironic foxes above the pending '), +(3364,160,5,4,7,7421.12,0.1,0.05,'N','O','1997-07-09','1997-08-01','1997-07-16','NONE','TRUCK','express, final pinto beans sublate blithel'), +(3364,81,2,5,3,2943.24,0.01,0,'N','O','1997-10-19','1997-08-15','1997-10-28','TAKE BACK RETURN','TRUCK','accounts wake quickly. carefully even fo'), +(3365,151,6,1,37,38892.55,0.02,0.08,'R','F','1994-12-22','1995-02-07','1995-01-20','TAKE BACK RETURN','SHIP','deposits are blithely. permane'), +(3365,167,2,2,37,39484.92,0.07,0.08,'A','F','1994-11-24','1995-01-09','1994-11-27','NONE','REG AIR','foxes wake above the bl'), +(3365,115,6,3,13,13196.43,0.09,0.02,'R','F','1995-02-25','1995-01-31','1995-03-16','NONE','RAIL','finally unusual pinto beans alongside '), +(3365,176,4,4,49,52732.33,0.02,0.07,'R','F','1995-01-03','1995-01-01','1995-01-18','COLLECT COD','MAIL','ideas integrate furiously along the pendi'), +(3365,16,3,5,2,1832.02,0,0.03,'R','F','1995-02-04','1994-12-30','1995-03-06','TAKE BACK RETURN','FOB','unusual, fina'), +(3365,126,5,6,24,24626.88,0.01,0,'R','F','1995-02-27','1995-01-09','1995-03-27','DELIVER IN PERSON','REG AIR','slyly regular deposits'), +(3366,40,1,1,4,3760.16,0.07,0.01,'N','O','1997-05-20','1997-06-25','1997-06-03','DELIVER IN PERSON','AIR','ironic excuses boost quickly. '), +(3366,136,2,2,9,9325.17,0,0.08,'N','O','1997-06-02','1997-07-05','1997-06-26','COLLECT COD','REG AIR','furiously even requests after the c'), +(3367,41,10,1,27,25408.08,0.01,0.03,'A','F','1993-04-13','1993-03-16','1993-04-26','NONE','RAIL','furiously ironic deposits shall have '), +(3367,141,10,2,34,35398.76,0.04,0.08,'A','F','1993-03-30','1993-02-23','1993-04-11','COLLECT COD','MAIL','regular courts '), +(3367,120,7,3,38,38764.56,0.03,0.03,'R','F','1993-03-13','1993-02-12','1993-03-31','NONE','RAIL','carefully unusu'), +(3392,171,10,1,40,42846.8,0.01,0.01,'N','O','1996-02-18','1995-12-16','1996-02-26','COLLECT COD','MAIL','ironic excuses cajole caref'), +(3392,123,2,2,13,13300.56,0.09,0.02,'N','O','1995-11-26','1996-01-17','1995-12-01','NONE','MAIL','quickly unusua'), +(3392,127,10,3,34,34922.08,0.1,0.08,'N','O','1996-01-20','1996-01-21','1996-01-24','DELIVER IN PERSON','MAIL','requests about'), +(3392,124,3,4,7,7168.84,0.08,0.05,'N','O','1995-12-07','1996-01-09','1995-12-29','TAKE BACK RETURN','RAIL','express fo'), +(3393,117,7,1,16,16273.76,0.01,0,'N','O','1995-07-17','1995-08-19','1995-08-04','COLLECT COD','TRUCK','quickly ironic excuses nag c'), +(3393,125,4,2,44,45105.28,0.08,0.04,'N','O','1995-10-16','1995-08-05','1995-11-01','NONE','AIR','blithely furious instructions'), +(3393,97,1,3,25,24927.25,0.07,0.02,'N','O','1995-10-17','1995-08-12','1995-11-11','DELIVER IN PERSON','MAIL','fluffily bold requests wake slyly acr'), +(3393,72,2,4,48,46659.36,0.06,0.06,'N','O','1995-07-12','1995-09-15','1995-08-02','NONE','FOB','blithely express id'), +(3393,178,7,5,37,39892.29,0.07,0.02,'N','O','1995-10-16','1995-08-19','1995-10-19','COLLECT COD','AIR','regular foxe'), +(3393,62,7,6,17,16355.02,0.04,0.01,'N','O','1995-08-15','1995-09-07','1995-09-10','COLLECT COD','MAIL','ideas boost blithely. blithely '), +(3394,155,6,1,33,34819.95,0.07,0.08,'N','O','1996-08-07','1996-07-17','1996-09-02','TAKE BACK RETURN','SHIP','ironic, speci'), +(3394,146,3,2,43,44984.02,0.08,0.03,'N','O','1996-08-23','1996-07-20','1996-08-25','COLLECT COD','RAIL','furiously regular theodolites doubt atop'); +INSERT INTO lineitem VALUES +(3394,88,9,3,26,25690.08,0.01,0,'N','O','1996-08-08','1996-06-12','1996-09-05','TAKE BACK RETURN','RAIL','bold instructions impress furiou'), +(3394,81,2,4,14,13735.12,0.08,0,'N','O','1996-06-02','1996-07-02','1996-06-19','COLLECT COD','MAIL','fluffily final asymptotes u'), +(3394,127,8,5,30,30813.6,0.04,0.06,'N','O','1996-05-12','1996-07-24','1996-05-19','COLLECT COD','REG AIR','furiously final instructions sleep'), +(3394,184,5,6,14,15178.52,0.05,0.05,'N','O','1996-06-18','1996-06-24','1996-07-17','NONE','REG AIR','silent orbits alo'), +(3395,142,3,1,21,21884.94,0.03,0.06,'R','F','1994-12-19','1995-01-13','1994-12-25','TAKE BACK RETURN','SHIP','slyly regular ideas use ironic pack'), +(3395,36,2,2,38,35569.14,0.01,0.07,'R','F','1995-01-13','1995-01-13','1995-01-25','COLLECT COD','SHIP','slyly expr'), +(3395,43,4,3,43,40550.72,0.06,0.07,'A','F','1994-12-13','1995-01-07','1994-12-14','COLLECT COD','AIR','regular deposits us'), +(3395,122,1,4,39,39862.68,0.05,0.07,'R','F','1994-12-03','1995-01-17','1994-12-10','NONE','AIR','regular deposits haggle slyly around the '), +(3396,128,7,1,34,34956.08,0,0.06,'A','F','1994-05-30','1994-08-16','1994-06-11','NONE','AIR','final dolphins use furiousl'), +(3396,49,6,2,43,40808.72,0.03,0.08,'A','F','1994-07-03','1994-08-09','1994-07-14','TAKE BACK RETURN','MAIL','quickly final deposits inte'), +(3396,138,4,3,9,9343.17,0.01,0.06,'R','F','1994-07-01','1994-08-18','1994-07-21','DELIVER IN PERSON','AIR','final grouches sleep. carefully speci'), +(3396,75,3,4,32,31202.24,0.06,0.02,'R','F','1994-08-07','1994-08-10','1994-09-05','COLLECT COD','TRUCK','blithely reg'), +(3396,126,5,5,27,27705.24,0.02,0.01,'A','F','1994-09-14','1994-07-26','1994-09-28','DELIVER IN PERSON','FOB','always ironic deposits aff'), +(3396,39,10,6,18,16902.54,0.1,0,'A','F','1994-07-27','1994-06-26','1994-08-25','TAKE BACK RETURN','REG AIR','doggedly fi'), +(3396,198,2,7,31,34043.89,0.05,0.06,'A','F','1994-06-07','1994-06-23','1994-06-19','TAKE BACK RETURN','REG AIR','quickly eve'), +(3397,195,8,1,8,8761.52,0.07,0.01,'A','F','1994-08-05','1994-08-11','1994-08-08','DELIVER IN PERSON','RAIL','slyly unusual foxes wake bl'), +(3397,13,3,2,11,10043.11,0,0.07,'A','F','1994-07-29','1994-09-18','1994-08-12','DELIVER IN PERSON','REG AIR','carefully ironic theodolites i'), +(3397,184,5,3,1,1084.18,0.07,0.05,'R','F','1994-08-03','1994-07-30','1994-08-28','NONE','RAIL','bold, even instructions caj'), +(3397,86,7,4,33,32540.64,0.05,0.01,'R','F','1994-09-04','1994-08-06','1994-09-22','COLLECT COD','RAIL','fluffily even '), +(3397,132,3,5,28,28899.64,0.05,0.05,'R','F','1994-07-13','1994-08-26','1994-07-17','NONE','TRUCK','blithely regular accounts about the blithel'), +(3398,173,4,1,1,1073.17,0.01,0.08,'N','O','1996-11-22','1996-11-16','1996-12-09','COLLECT COD','MAIL','blithely idle packages are blithely sp'), +(3399,134,5,1,28,28955.64,0.09,0.05,'N','O','1995-06-29','1995-05-19','1995-07-12','COLLECT COD','AIR','bold requests snooze '), +(3399,55,6,2,8,7640.4,0.01,0.05,'A','F','1995-05-15','1995-04-19','1995-06-05','COLLECT COD','TRUCK','fluffily brave accounts haggle '), +(3399,67,4,3,3,2901.18,0.03,0,'N','F','1995-06-16','1995-04-04','1995-06-23','NONE','SHIP','fluffily regular deposits nag blithely a'), +(3399,14,5,4,21,19194.21,0.09,0.06,'A','F','1995-03-12','1995-05-18','1995-03-28','TAKE BACK RETURN','MAIL','thinly unu'), +(3424,181,2,1,39,42166.02,0.06,0.07,'N','O','1996-11-03','1996-11-08','1996-11-23','DELIVER IN PERSON','MAIL','blithely ironic pinto beans are quiet'), +(3425,120,1,1,11,11221.32,0.03,0.08,'N','O','1996-04-24','1996-05-29','1996-05-23','DELIVER IN PERSON','FOB','express packages aft'), +(3425,79,7,2,37,36225.59,0.06,0.03,'N','O','1996-06-04','1996-05-09','1996-06-12','NONE','SHIP','unusual, special dep'), +(3425,14,4,3,8,7312.08,0.06,0.08,'N','O','1996-07-22','1996-06-07','1996-07-26','TAKE BACK RETURN','AIR','blithely final foxes ha'), +(3425,19,10,4,37,34003.37,0.04,0.01,'N','O','1996-07-10','1996-05-10','1996-08-02','NONE','SHIP','blithely final instructions haggle blithely'); +INSERT INTO lineitem VALUES +(3425,79,9,5,48,46995.36,0.08,0.04,'N','O','1996-04-14','1996-05-25','1996-04-23','TAKE BACK RETURN','AIR','even request'), +(3425,148,9,6,24,25155.36,0.05,0.04,'N','O','1996-04-22','1996-06-24','1996-04-25','TAKE BACK RETURN','AIR','pending foxes boost'), +(3426,110,5,1,20,20202.2,0.05,0.04,'N','O','1996-11-10','1996-12-24','1996-12-01','COLLECT COD','FOB','pending, final dolphins are. bl'), +(3426,14,4,2,19,17366.19,0.1,0.08,'N','O','1996-11-02','1997-01-13','1996-11-15','DELIVER IN PERSON','RAIL','carefully silent pack'), +(3426,67,6,3,19,18374.14,0.08,0.05,'N','O','1996-12-07','1996-12-15','1996-12-14','DELIVER IN PERSON','FOB','ideas sleep among the careful'), +(3426,6,7,4,9,8154,0.09,0.05,'N','O','1996-12-24','1997-01-14','1997-01-13','NONE','FOB','bold depend'), +(3426,49,6,5,31,29420.24,0.07,0.08,'N','O','1996-11-11','1996-12-10','1996-12-10','DELIVER IN PERSON','SHIP','blithely silent pinto bea'), +(3427,54,5,1,41,39116.05,0.1,0.01,'N','O','1997-09-11','1997-07-03','1997-10-04','COLLECT COD','RAIL','fluffily final theodolites cajole ideas. fi'), +(3427,189,10,2,24,26140.32,0.02,0.04,'N','O','1997-07-01','1997-07-28','1997-07-30','NONE','SHIP','ruthless dependencies along the ironi'), +(3427,139,5,3,40,41565.2,0.06,0.05,'N','O','1997-06-12','1997-08-19','1997-06-23','COLLECT COD','MAIL','furiously final dinos sleep pending,'), +(3427,119,6,4,31,31592.41,0.08,0.04,'N','O','1997-08-12','1997-07-26','1997-08-25','COLLECT COD','RAIL','pending packages grow blithely around the c'), +(3428,198,9,1,4,4392.76,0,0.03,'N','O','1996-05-09','1996-06-13','1996-06-02','NONE','REG AIR','asymptotes affix. foxes are carefu'), +(3428,118,9,2,35,35633.85,0.02,0.03,'N','O','1996-05-01','1996-06-07','1996-05-20','COLLECT COD','TRUCK','accounts wake '), +(3428,136,7,3,47,48698.11,0.07,0.05,'N','O','1996-04-16','1996-06-08','1996-05-05','NONE','REG AIR','permanently unusual deposits are fu'), +(3429,137,8,1,48,49782.24,0.06,0.02,'N','O','1997-04-08','1997-03-09','1997-04-25','TAKE BACK RETURN','SHIP','furiously special accounts use foxes.'), +(3429,59,7,2,15,14385.75,0.03,0.04,'N','O','1997-02-04','1997-03-09','1997-03-01','TAKE BACK RETURN','TRUCK','even deposit'), +(3429,69,4,3,10,9690.6,0.05,0.07,'N','O','1997-01-19','1997-02-22','1997-01-25','TAKE BACK RETURN','REG AIR','regular frays are blithely. ideas shou'), +(3429,89,10,4,28,27694.24,0.1,0.07,'N','O','1997-01-30','1997-03-18','1997-02-17','TAKE BACK RETURN','AIR','final, even accounts wake around'), +(3429,165,6,5,45,47932.2,0.1,0,'N','O','1997-04-21','1997-03-08','1997-05-05','COLLECT COD','REG AIR','sometimes special d'), +(3430,189,10,1,2,2178.36,0.07,0.06,'R','F','1995-03-07','1995-01-28','1995-03-30','TAKE BACK RETURN','MAIL','furiously pending packages ar'), +(3430,81,2,2,32,31394.56,0.08,0,'R','F','1995-01-17','1995-01-28','1995-02-06','NONE','TRUCK','fluffily bold pl'), +(3430,97,8,3,41,40880.69,0.06,0.04,'R','F','1995-02-18','1995-02-21','1995-03-11','TAKE BACK RETURN','AIR','slyly final accounts sleep. ruthlessly e'), +(3430,65,2,4,50,48253,0.01,0,'R','F','1994-12-15','1995-03-03','1994-12-24','COLLECT COD','REG AIR','quickly final excuses believe br'), +(3430,95,9,5,5,4975.45,0.05,0.05,'A','F','1995-04-02','1995-02-12','1995-04-08','DELIVER IN PERSON','FOB','ironic, final deposits haggle carefully '), +(3430,171,10,6,15,16067.55,0.08,0.07,'A','F','1995-02-01','1995-03-12','1995-02-04','COLLECT COD','SHIP','courts are carefully blithely r'), +(3430,52,7,7,23,21897.15,0.09,0.08,'A','F','1995-03-06','1995-03-01','1995-03-10','COLLECT COD','MAIL','fluffily bold requests'), +(3431,180,8,1,41,44287.38,0.03,0.06,'A','F','1993-09-26','1993-10-13','1993-10-22','NONE','AIR','final, bold asymptotes are furiously blith'), +(3456,111,8,1,34,34377.74,0.1,0.06,'A','F','1993-08-29','1993-08-26','1993-09-07','TAKE BACK RETURN','SHIP','final pinto beans cajole. b'), +(3457,182,3,1,29,31383.22,0.03,0.02,'R','F','1995-05-12','1995-07-13','1995-06-05','NONE','TRUCK','regular packages haggle bli'); +INSERT INTO lineitem VALUES +(3457,106,7,2,22,22134.2,0.06,0.01,'N','O','1995-06-23','1995-06-16','1995-06-29','NONE','SHIP','quickly regular deposits affix bl'), +(3457,109,2,3,7,7063.7,0.07,0.08,'N','O','1995-08-14','1995-07-06','1995-08-18','COLLECT COD','SHIP','blithely pending braids boost blith'), +(3457,1,2,4,24,21624,0.07,0.07,'N','O','1995-08-03','1995-05-30','1995-08-14','TAKE BACK RETURN','REG AIR','furiously regular request'), +(3457,109,4,5,42,42382.2,0.05,0.01,'A','F','1995-06-12','1995-06-14','1995-06-14','COLLECT COD','MAIL','express, ironic depo'), +(3457,144,1,6,45,46986.3,0.08,0.01,'N','O','1995-08-12','1995-07-18','1995-08-23','TAKE BACK RETURN','SHIP','furiously regular foxes eat furiously'), +(3457,167,4,7,9,9604.44,0.04,0,'R','F','1995-05-29','1995-06-30','1995-06-12','DELIVER IN PERSON','FOB','final theodolites along the unusual, eve'), +(3458,133,4,1,48,49590.24,0.06,0.04,'R','F','1995-03-17','1995-01-25','1995-03-28','TAKE BACK RETURN','AIR','slyly pending '), +(3458,50,3,2,46,43702.3,0.06,0.06,'R','F','1995-03-08','1995-01-21','1995-03-10','TAKE BACK RETURN','SHIP','ideas after the theodolites cajole s'), +(3458,143,4,3,36,37553.04,0.01,0.06,'R','F','1995-04-20','1995-02-14','1995-05-09','TAKE BACK RETURN','REG AIR','furiously express accounts '), +(3458,16,10,4,16,14656.16,0.09,0.03,'R','F','1995-03-01','1995-02-25','1995-03-06','TAKE BACK RETURN','AIR','express, ironic requ'), +(3458,157,5,5,2,2114.3,0.09,0.03,'A','F','1995-02-05','1995-02-01','1995-03-07','COLLECT COD','FOB','boldly silent package'), +(3458,142,1,6,6,6252.84,0.09,0.04,'A','F','1995-03-10','1995-02-02','1995-03-23','TAKE BACK RETURN','AIR','quickly quiet excuses sleep slyly a'), +(3459,179,7,1,31,33454.27,0.06,0.01,'A','F','1994-09-05','1994-10-20','1994-10-03','NONE','REG AIR','slyly bold de'), +(3459,130,9,2,30,30903.9,0.04,0.08,'R','F','1994-11-22','1994-09-12','1994-12-11','NONE','REG AIR','carefully ironic packages af'), +(3459,41,8,3,45,42346.8,0.04,0.05,'A','F','1994-07-31','1994-09-09','1994-08-02','TAKE BACK RETURN','REG AIR','regular, unusual asy'), +(3459,69,10,4,10,9690.6,0.05,0.06,'A','F','1994-10-06','1994-09-16','1994-11-03','TAKE BACK RETURN','REG AIR','evenly pending dependencies haggle care'), +(3459,189,10,5,10,10891.8,0.02,0.02,'R','F','1994-08-01','1994-10-17','1994-08-11','TAKE BACK RETURN','FOB','fluffily final grouches detect carefully a'), +(3460,11,1,1,40,36440.4,0.1,0.06,'N','O','1995-12-28','1995-12-14','1996-01-02','NONE','REG AIR','final instructions along the slyly final de'), +(3460,74,4,2,3,2922.21,0.06,0,'N','O','1996-01-19','1995-12-28','1996-01-31','COLLECT COD','AIR','warhorses sleep carefully re'), +(3460,35,1,3,40,37401.2,0.08,0.07,'N','O','1995-10-29','1995-11-10','1995-11-24','TAKE BACK RETURN','REG AIR','final, final foxes are bli'), +(3460,95,8,4,50,49754.5,0.02,0.07,'N','O','1996-01-30','1995-12-10','1996-02-06','DELIVER IN PERSON','SHIP','express, even sheaves sleep accounts. '), +(3460,130,1,5,47,48416.11,0.08,0.05,'N','O','1995-12-09','1995-11-12','1995-12-22','TAKE BACK RETURN','SHIP','slyly even packages alongside of t'), +(3460,63,10,6,46,44300.76,0.03,0.07,'N','O','1996-01-27','1996-01-01','1996-02-01','NONE','TRUCK','quickly final packages after the final d'), +(3460,45,2,7,28,26461.12,0,0.01,'N','O','1995-10-28','1995-11-13','1995-11-17','COLLECT COD','SHIP','accounts above the '), +(3461,100,4,1,49,49004.9,0.06,0.06,'A','F','1993-03-09','1993-04-16','1993-03-13','DELIVER IN PERSON','RAIL','slyly special accounts mai'), +(3461,63,4,2,27,26002.62,0.06,0.06,'A','F','1993-02-10','1993-03-02','1993-03-04','COLLECT COD','SHIP','excuses hang furiou'), +(3461,39,5,3,44,41317.32,0.09,0.06,'A','F','1993-05-20','1993-04-03','1993-05-27','COLLECT COD','RAIL','quickly regular pinto b'), +(3461,95,7,4,41,40798.69,0.09,0.02,'R','F','1993-02-19','1993-04-20','1993-02-21','NONE','TRUCK','bold foxes haggle furiously. quickl'), +(3461,90,1,5,16,15841.44,0.08,0.06,'A','F','1993-05-09','1993-04-29','1993-05-26','TAKE BACK RETURN','TRUCK','blithely even pac'); +INSERT INTO lineitem VALUES +(3461,167,2,6,24,25611.84,0.1,0,'A','F','1993-06-01','1993-03-12','1993-06-20','TAKE BACK RETURN','MAIL','pending packages above the b'), +(3462,151,3,1,4,4204.6,0.09,0.04,'N','O','1997-06-12','1997-07-31','1997-06-16','COLLECT COD','RAIL','quickly spec'), +(3462,40,1,2,43,40421.72,0.08,0.03,'N','O','1997-08-01','1997-07-18','1997-08-29','NONE','RAIL','final requests'), +(3462,129,4,3,6,6174.72,0.05,0.04,'N','O','1997-06-02','1997-08-09','1997-06-30','NONE','RAIL','accounts haggle during the requests'), +(3462,99,3,4,2,1998.18,0.09,0.07,'N','O','1997-09-10','1997-08-08','1997-09-19','NONE','AIR','blithely ironic dugouts about the blithely'), +(3462,38,4,5,14,13132.42,0.01,0.02,'N','O','1997-05-31','1997-07-05','1997-06-24','COLLECT COD','MAIL','regular requests'), +(3463,61,10,1,45,43247.7,0.02,0.02,'A','F','1993-10-30','1993-11-04','1993-11-08','DELIVER IN PERSON','FOB','ironic depths'), +(3463,98,1,2,43,42917.87,0.04,0.02,'A','F','1993-10-28','1993-09-24','1993-11-03','DELIVER IN PERSON','FOB','quickly pending'), +(3488,160,5,1,1,1060.16,0.04,0.01,'A','F','1995-03-06','1995-02-16','1995-03-23','DELIVER IN PERSON','FOB','final pinto beans shall haggle care'), +(3488,104,9,2,48,48196.8,0,0.03,'A','F','1995-03-29','1995-03-26','1995-04-28','COLLECT COD','SHIP','quickly ironic dolph'), +(3488,160,1,3,11,11661.76,0.03,0.08,'R','F','1995-03-25','1995-02-08','1995-04-16','COLLECT COD','TRUCK','carefully ironic dependen'), +(3488,42,9,4,12,11304.48,0.05,0.07,'R','F','1995-04-27','1995-02-16','1995-05-09','DELIVER IN PERSON','RAIL','packages cajole carefully across the regul'), +(3488,156,1,5,18,19010.7,0.09,0.06,'A','F','1995-03-18','1995-03-19','1995-03-29','DELIVER IN PERSON','FOB','carefully silent theodolites are ab'), +(3489,186,7,1,19,20637.42,0.09,0.05,'A','F','1993-07-31','1993-10-26','1993-08-15','NONE','SHIP','blithely ironic ideas be'), +(3489,29,4,2,46,42734.92,0,0,'A','F','1993-08-02','1993-10-09','1993-08-10','TAKE BACK RETURN','TRUCK','depths cajole slyly a'), +(3490,92,6,1,43,42659.87,0.05,0.05,'N','O','1997-08-04','1997-08-06','1997-08-14','TAKE BACK RETURN','SHIP','carefully unu'), +(3490,86,7,2,50,49304,0.05,0.07,'N','O','1997-06-27','1997-08-15','1997-06-28','NONE','RAIL','carefully regular accounts haggl'), +(3490,93,7,3,8,7944.72,0.1,0.04,'N','O','1997-08-11','1997-07-25','1997-08-28','COLLECT COD','MAIL','special foxes wak'), +(3491,154,2,1,28,29516.2,0.04,0.03,'N','O','1998-09-29','1998-09-08','1998-10-23','COLLECT COD','FOB','quickly ir'), +(3491,122,3,2,22,22486.64,0.08,0.02,'N','O','1998-08-19','1998-08-22','1998-09-03','TAKE BACK RETURN','REG AIR','furiously final foxes should nag. regular t'), +(3492,156,7,1,3,3168.45,0.02,0.08,'R','F','1994-11-26','1994-12-28','1994-12-19','COLLECT COD','REG AIR','special, special requests sleep furi'), +(3492,126,9,2,7,7182.84,0.04,0,'R','F','1995-03-10','1995-01-03','1995-03-16','COLLECT COD','FOB','silent requests above the carefully unusu'), +(3492,109,10,3,34,34309.4,0.05,0.06,'A','F','1994-12-07','1994-12-29','1994-12-24','COLLECT COD','AIR','carefully final deposi'), +(3492,147,6,4,30,31414.2,0.02,0.06,'A','F','1995-01-29','1995-01-02','1995-02-13','DELIVER IN PERSON','MAIL','slyly final ideas nod. even atta'), +(3492,122,1,5,47,48039.64,0.09,0.07,'R','F','1995-03-24','1994-12-28','1995-03-29','NONE','REG AIR','packages nag above the caref'), +(3492,22,7,6,47,43334.94,0.04,0.07,'R','F','1994-12-12','1995-01-18','1994-12-26','COLLECT COD','RAIL','furiously ironic deposits use slowly ironic'), +(3493,93,6,1,31,30785.79,0.06,0.07,'R','F','1993-10-22','1993-10-12','1993-11-07','DELIVER IN PERSON','REG AIR','silent, unusu'), +(3493,132,3,2,10,10321.3,0.02,0.06,'R','F','1993-08-27','1993-10-07','1993-09-23','COLLECT COD','TRUCK','furiously regular accou'), +(3494,117,1,1,40,40684.4,0.05,0.04,'R','F','1993-07-10','1993-06-01','1993-07-25','TAKE BACK RETURN','TRUCK','quickly fin'), +(3494,75,6,2,23,22426.61,0.1,0.01,'A','F','1993-06-19','1993-06-04','1993-07-14','NONE','FOB','blithely bold package'); +INSERT INTO lineitem VALUES +(3494,198,2,3,40,43927.6,0.02,0.08,'A','F','1993-05-30','1993-07-02','1993-06-20','TAKE BACK RETURN','MAIL','instructions use against'), +(3494,77,8,4,30,29312.1,0.04,0.03,'R','F','1993-07-01','1993-06-08','1993-07-15','TAKE BACK RETURN','TRUCK','quiet foxes cajole blithely even theo'), +(3495,28,3,1,20,18560.4,0.1,0.03,'N','O','1996-04-24','1996-05-18','1996-05-01','TAKE BACK RETURN','RAIL','slyly express instructi'), +(3495,173,1,2,24,25756.08,0.05,0.02,'N','O','1996-03-22','1996-04-10','1996-04-07','DELIVER IN PERSON','RAIL','sauternes are above the '), +(3495,199,10,3,16,17587.04,0.08,0.02,'N','O','1996-03-30','1996-04-02','1996-04-12','TAKE BACK RETURN','AIR','blithely special'), +(3520,28,1,1,30,27840.6,0.04,0.02,'N','O','1997-11-11','1997-10-02','1997-12-06','COLLECT COD','SHIP','regular requests around the slyly eve'), +(3520,167,4,2,38,40552.08,0,0.04,'N','O','1997-08-14','1997-10-26','1997-09-09','NONE','RAIL','slyly iron'), +(3520,106,9,3,5,5030.5,0.01,0.02,'N','O','1997-11-13','1997-09-22','1997-12-09','NONE','MAIL','slyly final p'), +(3520,64,5,4,41,39526.46,0.01,0.01,'N','O','1997-08-06','1997-09-20','1997-08-20','TAKE BACK RETURN','AIR','blithely bold packages nag'), +(3520,163,10,5,35,37210.6,0.02,0.02,'N','O','1997-09-16','1997-09-03','1997-09-24','DELIVER IN PERSON','FOB','express theodolites '), +(3521,59,4,1,48,46034.4,0.09,0.03,'A','F','1993-01-03','1992-12-31','1993-01-22','NONE','AIR','express packages cajole furious'), +(3521,131,2,2,2,2062.26,0.05,0.06,'R','F','1993-01-29','1992-12-20','1993-02-23','NONE','MAIL','blithely regular'), +(3521,178,8,3,38,40970.46,0,0.08,'A','F','1993-02-15','1992-12-10','1993-03-10','COLLECT COD','FOB','pains use. carefully express requests '), +(3521,144,7,4,26,27147.64,0.02,0.08,'R','F','1993-01-04','1993-01-20','1993-01-17','DELIVER IN PERSON','AIR','ironic theodolites unwind carefully b'), +(3521,36,7,5,28,26208.84,0.1,0.01,'A','F','1993-01-06','1993-01-22','1993-02-02','TAKE BACK RETURN','FOB','quickly final packages hag'), +(3522,4,9,1,6,5424,0.08,0.03,'A','F','1995-01-21','1994-12-09','1995-01-23','NONE','SHIP','slowly bold'), +(3522,87,8,2,48,47379.84,0,0.03,'R','F','1994-12-05','1994-10-30','1994-12-26','TAKE BACK RETURN','SHIP','slyly regular packages wake'), +(3522,157,2,3,46,48628.9,0.09,0.02,'A','F','1994-11-12','1994-11-30','1994-11-20','NONE','AIR','regular, ironic'), +(3522,130,9,4,7,7210.91,0.1,0.02,'A','F','1994-10-31','1994-11-19','1994-11-28','NONE','TRUCK','fluffily unusual requests c'), +(3522,50,9,5,27,25651.35,0.02,0.05,'R','F','1994-11-29','1994-12-15','1994-12-08','COLLECT COD','REG AIR','quickly bold '), +(3522,158,10,6,18,19046.7,0.01,0.03,'A','F','1994-11-16','1994-10-29','1994-11-29','COLLECT COD','RAIL','quickly silent deposits inte'), +(3523,25,6,1,15,13875.3,0.06,0.02,'N','O','1998-06-26','1998-05-22','1998-07-24','COLLECT COD','REG AIR','furiously unusual deposits haggle busily'), +(3523,133,9,2,4,4132.52,0.03,0.06,'N','O','1998-05-08','1998-05-18','1998-05-25','TAKE BACK RETURN','MAIL','final accounts boost carefully agai'), +(3523,50,7,3,24,22801.2,0.07,0.04,'N','O','1998-08-02','1998-06-22','1998-08-27','COLLECT COD','FOB','furiously even requests wake quick'), +(3523,192,4,4,36,39318.84,0.06,0.08,'N','O','1998-05-26','1998-06-04','1998-06-25','DELIVER IN PERSON','SHIP','regular, regular accounts sleep carefu'), +(3523,134,5,5,48,49638.24,0,0.01,'N','O','1998-07-22','1998-06-25','1998-08-19','DELIVER IN PERSON','AIR','final instructions ca'), +(3524,137,8,1,5,5185.65,0.01,0.04,'R','F','1992-05-23','1992-07-25','1992-06-19','DELIVER IN PERSON','RAIL','blithely quick deposits for the fur'), +(3524,143,6,2,17,17733.38,0.09,0.08,'A','F','1992-09-01','1992-07-17','1992-09-05','DELIVER IN PERSON','FOB','deposits haggle blithely. expr'), +(3525,46,7,1,12,11352.48,0.01,0.03,'N','O','1996-03-08','1996-03-18','1996-03-16','NONE','TRUCK','carefully sly foxes use under the re'), +(3525,138,9,2,27,28029.51,0.03,0.03,'N','O','1995-12-30','1996-01-23','1996-01-02','DELIVER IN PERSON','SHIP','carefully expre'); +INSERT INTO lineitem VALUES +(3525,75,5,3,31,30227.17,0,0.03,'N','O','1996-03-08','1996-02-27','1996-03-13','COLLECT COD','TRUCK','silent, ironic accounts about '), +(3525,184,5,4,28,30357.04,0.03,0.02,'N','O','1996-01-22','1996-02-08','1996-01-27','COLLECT COD','FOB','carefully '), +(3526,98,9,1,11,10978.99,0.02,0.03,'R','F','1995-05-23','1995-05-28','1995-05-24','NONE','TRUCK','blithely final asymptotes sleep quickly abo'), +(3526,117,7,2,23,23393.53,0.03,0.04,'A','F','1995-05-01','1995-05-31','1995-05-25','DELIVER IN PERSON','FOB','carefully pending foxes'), +(3526,33,9,3,20,18660.6,0.05,0.08,'N','F','1995-06-16','1995-04-26','1995-06-22','DELIVER IN PERSON','REG AIR','slyly pending i'), +(3527,102,7,1,47,47098.7,0.07,0.02,'N','O','1997-07-14','1997-07-29','1997-07-21','DELIVER IN PERSON','RAIL','ironic accounts are carefully. c'), +(3527,26,9,2,33,30558.66,0.01,0.02,'N','O','1997-09-25','1997-09-17','1997-10-12','NONE','FOB','fluffily bold accounts are slyly. re'), +(3527,162,7,3,50,53108,0.09,0.07,'N','O','1997-07-17','1997-08-03','1997-07-29','DELIVER IN PERSON','SHIP','carefully eve'), +(3527,128,3,4,17,17478.04,0.02,0.05,'N','O','1997-07-30','1997-09-01','1997-08-17','COLLECT COD','MAIL','pending packages integrate. fi'), +(3552,197,8,1,18,19749.42,0.01,0.07,'N','O','1997-08-11','1997-07-14','1997-08-15','DELIVER IN PERSON','TRUCK','doggedly slow excuses be'), +(3552,90,1,2,44,43563.96,0.01,0,'N','O','1997-08-08','1997-06-15','1997-08-29','COLLECT COD','FOB','even deposits boost quic'), +(3552,161,6,3,36,38201.76,0.04,0.08,'N','O','1997-06-29','1997-06-24','1997-07-21','COLLECT COD','TRUCK','theodolites s'), +(3553,143,10,1,4,4172.56,0.05,0.01,'R','F','1994-06-13','1994-07-10','1994-07-03','COLLECT COD','RAIL','furiously idle requests wake. '), +(3553,65,4,2,26,25091.56,0.05,0.08,'A','F','1994-08-06','1994-07-30','1994-08-23','DELIVER IN PERSON','MAIL','carefully final accounts im'), +(3553,22,5,3,18,16596.36,0.04,0.03,'A','F','1994-07-03','1994-06-30','1994-07-07','COLLECT COD','RAIL','blithely unusual packa'), +(3553,32,8,4,40,37281.2,0.06,0,'A','F','1994-09-14','1994-06-26','1994-09-25','NONE','RAIL','fluffily final accounts are above the even,'), +(3553,157,2,5,36,38057.4,0.06,0.08,'R','F','1994-08-12','1994-06-25','1994-09-06','DELIVER IN PERSON','TRUCK','regular deposits are carefu'), +(3554,175,5,1,32,34405.44,0.01,0.05,'N','O','1995-09-28','1995-09-01','1995-10-07','NONE','RAIL','silent pinto beans impr'), +(3554,145,6,2,18,18812.52,0.03,0,'N','O','1995-09-11','1995-08-12','1995-10-04','DELIVER IN PERSON','REG AIR','carefully spe'), +(3554,192,3,3,41,44779.79,0.02,0.01,'N','O','1995-07-13','1995-08-28','1995-07-27','DELIVER IN PERSON','MAIL','pains at the furiously ironic epit'), +(3555,166,3,1,11,11727.76,0.05,0.02,'N','O','1996-09-25','1996-10-01','1996-10-03','NONE','FOB','carefully special ex'), +(3555,79,10,2,15,14686.05,0.03,0.08,'N','O','1996-07-13','1996-09-01','1996-08-02','TAKE BACK RETURN','RAIL','slyly bold pa'), +(3555,43,2,3,25,23576,0.09,0.07,'N','O','1996-10-01','1996-08-23','1996-10-24','TAKE BACK RETURN','MAIL','blithely express instructions wake. c'), +(3555,5,6,4,19,17195,0,0.05,'N','O','1996-09-08','1996-09-14','1996-10-01','COLLECT COD','REG AIR','furiously silent dependencies use c'), +(3555,33,4,5,29,27057.87,0.07,0.04,'N','O','1996-08-02','1996-09-04','1996-08-08','DELIVER IN PERSON','TRUCK','slyly sly accounts among the '), +(3555,28,3,6,33,30624.66,0.04,0.08,'N','O','1996-09-20','1996-09-23','1996-10-05','TAKE BACK RETURN','AIR','even dependencies h'), +(3555,126,5,7,9,9235.08,0.07,0.02,'N','O','1996-10-13','1996-10-02','1996-10-22','NONE','SHIP','quickly final dependencies lose ca'), +(3556,142,9,1,45,46896.3,0.05,0.06,'A','F','1992-10-14','1992-12-21','1992-10-16','NONE','TRUCK','requests are blithely. ironic reques'), +(3556,31,2,2,43,40034.29,0.02,0.06,'R','F','1993-01-18','1992-11-09','1993-02-04','NONE','FOB','quickly silent ideas poach special dec'), +(3556,87,8,3,28,27638.24,0.1,0.04,'A','F','1993-01-06','1992-11-27','1993-01-16','NONE','MAIL','carefully pending ideas mold. fin'); +INSERT INTO lineitem VALUES +(3557,175,3,1,41,44081.97,0.01,0.07,'R','F','1993-01-30','1992-12-31','1993-02-18','COLLECT COD','FOB','slyly regular platelets cajole after the '), +(3557,129,10,2,37,38077.44,0.03,0.05,'R','F','1993-02-16','1993-01-05','1993-03-15','DELIVER IN PERSON','RAIL','regular, silent reques'), +(3558,87,8,1,8,7896.64,0.01,0.03,'N','O','1996-05-31','1996-05-26','1996-06-25','COLLECT COD','AIR','express foxes use carefully eve'), +(3558,10,7,2,28,25480.28,0.02,0.08,'N','O','1996-06-02','1996-04-18','1996-06-24','COLLECT COD','TRUCK','final requests mold care'), +(3558,187,8,3,3,3261.54,0.03,0.06,'N','O','1996-05-19','1996-04-28','1996-05-26','DELIVER IN PERSON','RAIL','blithely iro'), +(3558,91,5,4,22,21803.98,0.06,0.03,'N','O','1996-04-27','1996-04-19','1996-04-30','DELIVER IN PERSON','SHIP','fluffily regular packages after the'), +(3558,29,8,5,38,35302.76,0.03,0.08,'N','O','1996-05-29','1996-05-02','1996-06-09','COLLECT COD','RAIL','carefully bold deposi'), +(3558,72,1,6,17,16525.19,0.07,0.07,'N','O','1996-03-14','1996-05-04','1996-04-05','NONE','RAIL','furiously bold deposits are '), +(3559,90,1,1,29,28712.61,0,0.07,'R','F','1992-12-10','1992-12-03','1992-12-20','COLLECT COD','REG AIR','blithely unusual theodolit'), +(3584,11,8,1,4,3644.04,0.04,0.08,'N','O','1997-08-16','1997-10-31','1997-08-28','DELIVER IN PERSON','TRUCK','slyly even packages'), +(3584,160,8,2,23,24383.68,0,0.03,'N','O','1997-09-10','1997-10-15','1997-09-30','COLLECT COD','TRUCK','slyly final accou'), +(3584,24,5,3,6,5544.12,0.03,0.06,'N','O','1997-10-28','1997-11-09','1997-11-24','TAKE BACK RETURN','MAIL','fluffily regul'), +(3584,146,5,4,11,11507.54,0.06,0.02,'N','O','1997-11-27','1997-10-15','1997-12-08','NONE','REG AIR','final instructions are carefully pending in'), +(3584,18,5,5,39,35802.39,0.09,0.07,'N','O','1997-09-20','1997-10-31','1997-10-06','COLLECT COD','AIR','slyly ironic theodolites use'), +(3585,122,1,1,21,21464.52,0.05,0.04,'A','F','1994-12-04','1994-12-25','1995-01-01','TAKE BACK RETURN','TRUCK','silent, pending dependencie'), +(3585,19,10,2,40,36760.4,0.03,0,'R','F','1995-01-22','1995-01-17','1995-02-07','TAKE BACK RETURN','RAIL','quickly regular accounts detect furi'), +(3585,112,2,3,11,11133.21,0.01,0.04,'R','F','1995-01-04','1995-02-14','1995-01-15','NONE','MAIL','slyly bold deposits bo'), +(3585,48,1,4,33,31285.32,0.08,0.08,'A','F','1994-12-14','1995-01-19','1994-12-22','NONE','RAIL','fluffily even theod'), +(3585,25,8,5,13,12025.26,0.06,0.07,'R','F','1995-03-15','1995-01-22','1995-03-17','DELIVER IN PERSON','AIR','quickly bold accounts wake slyly fluf'), +(3585,94,7,6,7,6958.63,0.1,0.02,'A','F','1994-12-13','1995-01-20','1995-01-05','TAKE BACK RETURN','TRUCK','carefully final theodolit'), +(3585,42,1,7,45,42391.8,0.03,0,'A','F','1995-01-20','1995-02-19','1995-02-11','DELIVER IN PERSON','MAIL','accounts dazzle. blithel'), +(3586,194,7,1,2,2188.38,0.03,0.08,'R','F','1994-02-10','1994-01-07','1994-03-03','DELIVER IN PERSON','RAIL','regular, even foxes alo'), +(3586,84,5,2,29,28538.32,0.04,0.07,'R','F','1994-03-06','1994-03-02','1994-03-13','DELIVER IN PERSON','RAIL','slyly final '), +(3586,58,3,3,2,1916.1,0.03,0.06,'R','F','1994-03-22','1994-02-20','1994-04-08','NONE','REG AIR','even asymptotes alongside of '), +(3586,84,5,4,33,32474.64,0.06,0.01,'R','F','1994-01-24','1994-02-09','1994-02-07','NONE','TRUCK','slyly express theodo'), +(3586,108,1,5,8,8064.8,0.06,0.02,'A','F','1994-03-29','1994-02-26','1994-04-02','NONE','FOB','even, ironic packages haggle fluf'), +(3586,99,1,6,8,7992.72,0.09,0.01,'A','F','1994-03-18','1994-01-17','1994-04-06','DELIVER IN PERSON','RAIL','regular packages among the s'), +(3586,123,4,7,33,33762.96,0.05,0.04,'A','F','1994-02-11','1994-01-15','1994-03-03','NONE','REG AIR','blithely ironic requ'), +(3587,197,10,1,5,5485.95,0.09,0.07,'N','O','1996-09-03','1996-07-05','1996-09-11','DELIVER IN PERSON','SHIP','furiously special accounts '), +(3587,132,8,2,48,49542.24,0,0.03,'N','O','1996-08-02','1996-07-02','1996-08-05','TAKE BACK RETURN','MAIL','carefully eve'); +INSERT INTO lineitem VALUES +(3587,151,3,3,36,37841.4,0.05,0.05,'N','O','1996-07-26','1996-06-16','1996-08-23','TAKE BACK RETURN','MAIL','furiously unusual epitaphs poach fl'), +(3587,124,9,4,31,31747.72,0.03,0.01,'N','O','1996-07-21','1996-07-01','1996-07-23','COLLECT COD','SHIP','ironic requests after the'), +(3587,70,7,5,12,11640.84,0.06,0.03,'N','O','1996-08-30','1996-07-04','1996-09-22','DELIVER IN PERSON','RAIL','slyly even dolphins cajole blithely pen'), +(3587,107,2,6,16,16113.6,0.01,0.03,'N','O','1996-05-11','1996-06-19','1996-06-04','COLLECT COD','FOB','carefully ironic dependencies wake sl'), +(3587,74,2,7,23,22403.61,0.07,0.05,'N','O','1996-08-30','1996-07-01','1996-09-10','COLLECT COD','FOB','ironic deposits grow '), +(3588,91,5,1,28,27750.52,0.04,0.08,'R','F','1995-05-03','1995-05-03','1995-05-14','DELIVER IN PERSON','TRUCK','final, ironic packages are blithely'), +(3588,88,9,2,6,5928.48,0.06,0.08,'A','F','1995-04-09','1995-05-30','1995-04-10','TAKE BACK RETURN','MAIL','furiously bold '), +(3588,159,10,3,45,47661.75,0.04,0.02,'R','F','1995-05-07','1995-05-04','1995-05-28','TAKE BACK RETURN','TRUCK','blithely ironic re'), +(3588,127,10,4,22,22596.64,0.05,0,'A','F','1995-04-08','1995-05-06','1995-04-27','NONE','RAIL','furiously ironic dinos sleep'), +(3588,55,3,5,28,26741.4,0.03,0.03,'A','F','1995-04-23','1995-05-25','1995-04-28','DELIVER IN PERSON','TRUCK','special, regular '), +(3588,110,3,6,37,37374.07,0.08,0.04,'N','F','1995-06-17','1995-05-25','1995-06-24','TAKE BACK RETURN','RAIL','blithely pending theodolites w'), +(3588,39,5,7,46,43195.38,0.08,0.07,'A','F','1995-06-06','1995-05-08','1995-06-08','NONE','AIR','packages are fluffily according to the d'), +(3589,37,3,1,42,39355.26,0.08,0.08,'R','F','1994-08-11','1994-07-17','1994-08-23','DELIVER IN PERSON','AIR','furiously final tithes sleep along the c'), +(3590,176,6,1,10,10761.7,0.08,0,'N','O','1995-07-17','1995-06-26','1995-08-12','TAKE BACK RETURN','SHIP','thin dependencies are slyly. blithel'), +(3590,95,6,2,19,18906.71,0.03,0.03,'N','O','1995-08-02','1995-06-20','1995-08-08','NONE','SHIP','carefully regular t'), +(3590,96,9,3,43,42831.87,0.07,0.06,'N','O','1995-07-12','1995-07-25','1995-07-16','DELIVER IN PERSON','SHIP','quickly regular '), +(3590,56,8,4,26,24857.3,0.01,0.03,'N','O','1995-07-08','1995-06-17','1995-08-02','DELIVER IN PERSON','SHIP','regular packages sleep according to the sl'), +(3590,191,2,5,37,40374.03,0,0.08,'N','O','1995-09-01','1995-06-29','1995-09-10','NONE','SHIP','slyly unusu'), +(3590,119,10,6,31,31592.41,0.03,0.01,'N','O','1995-06-24','1995-07-12','1995-06-25','DELIVER IN PERSON','REG AIR','furiously regu'), +(3590,194,7,7,44,48144.36,0.05,0.04,'N','F','1995-06-07','1995-06-15','1995-06-27','NONE','MAIL','slyly final accounts'), +(3591,29,8,1,21,19509.42,0.03,0.03,'A','F','1994-02-25','1994-02-02','1994-03-05','DELIVER IN PERSON','TRUCK','deposits are quickly.'), +(3591,69,6,2,24,23257.44,0.04,0.04,'R','F','1993-12-26','1994-01-07','1994-01-25','COLLECT COD','FOB','furiously fi'), +(3591,164,9,3,4,4256.64,0.01,0.03,'A','F','1994-04-04','1994-02-19','1994-05-02','DELIVER IN PERSON','RAIL','slyly bold packages are. fur'), +(3591,153,4,4,49,51604.35,0.01,0,'A','F','1994-03-21','1994-01-26','1994-03-28','COLLECT COD','AIR','carefully final req'), +(3616,197,9,1,30,32915.7,0.01,0,'A','F','1994-05-05','1994-04-24','1994-05-12','TAKE BACK RETURN','FOB','regular hoc'), +(3616,138,9,2,28,29067.64,0.08,0.06,'R','F','1994-02-20','1994-04-18','1994-03-05','DELIVER IN PERSON','REG AIR','carefully final asymptotes c'), +(3617,117,8,1,46,46787.06,0.03,0.02,'N','O','1996-05-19','1996-05-14','1996-06-11','NONE','RAIL','blithely final asymptote'), +(3617,98,9,2,16,15969.44,0.05,0.02,'N','O','1996-05-08','1996-06-03','1996-05-19','COLLECT COD','RAIL','furiously fina'), +(3617,98,2,3,32,31938.88,0,0.06,'N','O','1996-04-20','1996-06-07','1996-05-19','DELIVER IN PERSON','MAIL','fluffily final pains haggle. blit'), +(3617,41,10,4,22,20702.88,0.1,0.05,'N','O','1996-07-11','1996-05-02','1996-07-25','NONE','REG AIR','furiously pending deposits nag ca'); +INSERT INTO lineitem VALUES +(3617,137,8,5,11,11408.43,0.08,0.05,'N','O','1996-07-16','1996-04-23','1996-07-28','COLLECT COD','MAIL','regular package'), +(3618,140,1,1,38,39525.32,0.08,0,'N','O','1997-12-22','1998-02-23','1998-01-03','TAKE BACK RETURN','TRUCK','slyly enticing foxes kindle blithel'), +(3618,144,5,2,48,50118.72,0.04,0,'N','O','1998-03-12','1998-02-13','1998-03-29','DELIVER IN PERSON','TRUCK','slyly ironic theodolites '), +(3618,63,2,3,24,23113.44,0.01,0.04,'N','O','1998-01-26','1998-01-15','1998-02-17','TAKE BACK RETURN','AIR','carefully regu'), +(3618,161,2,4,26,27590.16,0.01,0.05,'N','O','1998-03-23','1998-01-24','1998-04-15','DELIVER IN PERSON','AIR','blithely thi'), +(3619,96,7,1,49,48808.41,0.01,0.08,'N','O','1997-01-22','1996-12-21','1997-02-17','TAKE BACK RETURN','MAIL','even asymptotes use blithe'), +(3619,116,10,2,27,27434.97,0.08,0.04,'N','O','1996-12-12','1997-01-18','1996-12-18','TAKE BACK RETURN','SHIP','quickly ironic dolphins wake slowly ironi'), +(3619,48,7,3,46,43609.84,0.08,0.03,'N','O','1997-01-31','1997-01-27','1997-02-11','NONE','SHIP','quickly unusual'), +(3619,93,6,4,18,17875.62,0.04,0.02,'N','O','1997-03-18','1996-12-24','1997-03-21','COLLECT COD','AIR','final packages '), +(3619,120,10,5,38,38764.56,0.05,0.08,'N','O','1996-12-08','1997-02-03','1997-01-07','NONE','RAIL','slyly regular pint'), +(3619,152,3,6,43,45242.45,0.01,0.01,'N','O','1997-01-25','1997-01-06','1997-02-07','COLLECT COD','RAIL','express the'), +(3620,59,7,1,41,39321.05,0.03,0.08,'N','O','1997-03-21','1997-04-20','1997-03-30','COLLECT COD','FOB','fluffily iron'), +(3620,167,4,2,16,17074.56,0,0.06,'N','O','1997-05-17','1997-05-08','1997-06-03','COLLECT COD','SHIP','even sentiments are. busy pin'), +(3621,17,8,1,29,26593.29,0.02,0.06,'A','F','1993-08-03','1993-07-08','1993-08-10','DELIVER IN PERSON','FOB','furiously regular multipliers sleep careful'), +(3621,93,5,2,13,12910.17,0.09,0.04,'R','F','1993-08-30','1993-06-30','1993-09-01','NONE','REG AIR','final attainments affi'), +(3621,164,9,3,45,47887.2,0.07,0.07,'R','F','1993-08-09','1993-06-18','1993-09-05','DELIVER IN PERSON','AIR','slow, final asymptotes haggle furi'), +(3621,44,3,4,20,18880.8,0.05,0.04,'R','F','1993-05-27','1993-07-04','1993-06-22','TAKE BACK RETURN','SHIP','ironic, qui'), +(3622,175,6,1,47,50532.99,0.09,0,'N','O','1996-02-24','1996-02-22','1996-03-12','TAKE BACK RETURN','TRUCK','quickly pending '), +(3622,89,10,2,4,3956.32,0.04,0.04,'N','O','1996-02-03','1996-02-19','1996-02-16','TAKE BACK RETURN','TRUCK','slyly unusual requests unwind bl'), +(3622,190,1,3,46,50148.74,0.07,0.07,'N','O','1995-12-18','1996-01-23','1996-01-12','TAKE BACK RETURN','AIR','regular instructions need to sleep slyly.'), +(3622,177,8,4,9,9694.53,0.08,0.05,'N','O','1995-12-12','1996-02-09','1995-12-13','TAKE BACK RETURN','SHIP','regular, bold foxes should are s'), +(3623,80,10,1,32,31362.56,0.05,0,'N','O','1997-04-18','1997-03-15','1997-05-09','COLLECT COD','SHIP','furiously unusual pinto be'), +(3623,117,4,2,33,33564.63,0.08,0.01,'N','O','1997-03-17','1997-02-13','1997-04-02','TAKE BACK RETURN','TRUCK','regular, express accounts across the'), +(3623,24,7,3,21,19404.42,0.02,0.02,'N','O','1997-01-19','1997-03-18','1997-01-24','NONE','FOB','pinto beans cajole blithely about the car'), +(3623,165,2,4,42,44736.72,0.05,0.06,'N','O','1997-01-11','1997-03-24','1997-01-21','COLLECT COD','RAIL','final, final theodolites cajole carefu'), +(3623,88,9,5,30,29642.4,0.1,0.04,'N','O','1997-04-04','1997-03-03','1997-05-01','NONE','RAIL','even, regular forges use. p'), +(3623,186,7,6,7,7603.26,0.01,0.02,'N','O','1997-01-05','1997-03-26','1997-01-26','NONE','TRUCK','bold plate'), +(3623,140,6,7,13,13521.82,0.03,0.08,'N','O','1997-01-02','1997-02-26','1997-01-26','DELIVER IN PERSON','SHIP','permanent pinto bean'), +(3648,144,5,1,16,16706.24,0.02,0.06,'A','F','1993-08-14','1993-08-14','1993-08-15','COLLECT COD','FOB','slyly ironic requests sublate ideas. f'), +(3648,105,2,2,30,30153,0,0.01,'R','F','1993-08-31','1993-09-06','1993-09-06','DELIVER IN PERSON','FOB','regular asymptotes are express dep'); +INSERT INTO lineitem VALUES +(3648,46,7,3,34,32165.36,0.1,0,'A','F','1993-08-21','1993-07-25','1993-09-15','DELIVER IN PERSON','FOB','carefully even deposits are across the i'), +(3648,13,10,4,16,14608.16,0.06,0.03,'R','F','1993-07-27','1993-08-26','1993-08-24','DELIVER IN PERSON','FOB','final foxes'), +(3648,117,7,5,25,25427.75,0.06,0.03,'R','F','1993-08-15','1993-08-25','1993-09-09','TAKE BACK RETURN','TRUCK','thinly pending theodolites de'), +(3648,169,10,6,14,14968.24,0.08,0.06,'R','F','1993-10-02','1993-08-26','1993-10-09','COLLECT COD','AIR','even packages boo'), +(3648,195,6,7,49,53664.31,0.09,0.03,'R','F','1993-06-27','1993-07-27','1993-07-24','TAKE BACK RETURN','FOB','unusual accounts nod blithely ironic th'), +(3649,5,6,1,25,22625,0.1,0.04,'A','F','1994-10-27','1994-08-23','1994-11-05','TAKE BACK RETURN','TRUCK','carefully silent dependencies nag quickly'), +(3649,89,10,2,23,22748.84,0.08,0,'R','F','1994-09-26','1994-10-01','1994-09-28','NONE','REG AIR','pending, ironi'), +(3649,70,7,3,14,13580.98,0.02,0.04,'A','F','1994-09-19','1994-08-17','1994-10-12','DELIVER IN PERSON','TRUCK','fluffily express the'), +(3649,76,4,4,40,39042.8,0,0.08,'R','F','1994-07-20','1994-08-30','1994-08-14','TAKE BACK RETURN','RAIL','express, pending dept'), +(3649,100,1,5,24,24002.4,0.05,0.03,'A','F','1994-07-07','1994-08-20','1994-07-27','TAKE BACK RETURN','FOB','bold requests believe slyly a'), +(3649,122,3,6,3,3066.36,0.1,0.04,'A','F','1994-07-17','1994-08-10','1994-08-03','NONE','FOB','quietly ironic packages against the s'), +(3650,136,2,1,30,31083.9,0.1,0,'A','F','1992-08-26','1992-07-05','1992-09-01','DELIVER IN PERSON','SHIP','quickly ironic theodolites x-ray pack'), +(3650,128,9,2,43,44209.16,0.05,0.05,'A','F','1992-09-07','1992-08-12','1992-09-10','COLLECT COD','TRUCK','unusual dependencies nag f'), +(3650,2,9,3,1,902,0.04,0.06,'A','F','1992-06-23','1992-07-18','1992-07-08','NONE','REG AIR','regular ideas s'), +(3650,63,2,4,31,29854.86,0.1,0.08,'R','F','1992-06-15','1992-07-01','1992-07-15','DELIVER IN PERSON','RAIL','even, special accounts cajole even deposi'), +(3650,187,8,5,19,20656.42,0.05,0.04,'R','F','1992-08-29','1992-08-09','1992-09-21','DELIVER IN PERSON','AIR','ironic, express dolphins lose fluff'), +(3650,94,8,6,27,26840.43,0.07,0.08,'A','F','1992-07-03','1992-07-23','1992-07-13','COLLECT COD','MAIL','notornis along the never dogged acc'), +(3650,70,7,7,43,41713.01,0.1,0.07,'A','F','1992-06-25','1992-07-09','1992-07-22','DELIVER IN PERSON','RAIL','slyly express foxes haggle evenly '), +(3651,19,9,1,20,18380.2,0.01,0.04,'N','O','1998-06-10','1998-06-06','1998-06-23','NONE','SHIP','pending ideas sleep ironic'), +(3651,155,7,2,24,25323.6,0.09,0.04,'N','O','1998-06-22','1998-07-17','1998-07-10','DELIVER IN PERSON','RAIL','stealthily regular requests thrash car'), +(3651,113,10,3,41,41537.51,0,0.05,'N','O','1998-05-10','1998-07-09','1998-05-13','NONE','RAIL','fluffily bold '), +(3651,110,5,4,27,27272.97,0.05,0.03,'N','O','1998-05-03','1998-06-30','1998-05-05','DELIVER IN PERSON','RAIL','quickly pendin'), +(3652,180,8,1,24,25924.32,0.05,0.03,'N','O','1997-06-07','1997-04-07','1997-06-12','COLLECT COD','MAIL','carefully silent deposits according'), +(3652,137,8,2,37,38373.81,0.02,0.05,'N','O','1997-05-11','1997-04-06','1997-06-05','COLLECT COD','MAIL','deposits use slyly '), +(3652,163,8,3,39,41463.24,0.01,0.02,'N','O','1997-03-10','1997-04-03','1997-03-21','NONE','REG AIR','blithely express theodolites '), +(3652,80,9,4,1,980.08,0.01,0.04,'N','O','1997-04-20','1997-05-03','1997-05-18','DELIVER IN PERSON','SHIP','carefully silent '), +(3653,145,4,1,38,39715.32,0.08,0.05,'A','F','1994-06-26','1994-05-13','1994-07-13','NONE','REG AIR','even accounts affix above the quickly'), +(3653,64,1,2,29,27957.74,0.07,0.01,'A','F','1994-04-11','1994-06-11','1994-04-29','COLLECT COD','RAIL','carefully even asymp'), +(3653,181,2,3,17,18380.06,0.09,0.03,'R','F','1994-06-24','1994-06-02','1994-07-17','DELIVER IN PERSON','RAIL','furiously final deposits wake furiousl'); +INSERT INTO lineitem VALUES +(3653,186,7,4,9,9775.62,0.1,0.07,'R','F','1994-04-03','1994-05-19','1994-04-10','COLLECT COD','FOB','slyly ironi'), +(3653,188,9,5,41,44615.38,0.08,0.01,'A','F','1994-06-18','1994-05-18','1994-06-20','COLLECT COD','RAIL','slyly quiet deposits u'), +(3653,43,4,6,9,8487.36,0.05,0.03,'A','F','1994-07-21','1994-05-31','1994-08-17','NONE','MAIL','regular package'), +(3653,49,6,7,2,1898.08,0.06,0.03,'R','F','1994-06-02','1994-05-31','1994-06-29','NONE','FOB','special excuses '), +(3654,165,2,1,46,48997.36,0.08,0.05,'A','F','1992-06-05','1992-08-19','1992-06-06','DELIVER IN PERSON','FOB','carefully special acco'), +(3654,93,4,2,29,28799.61,0.07,0.06,'A','F','1992-09-11','1992-07-20','1992-10-04','DELIVER IN PERSON','FOB','carefully ironic package'), +(3654,2,7,3,37,33374,0.07,0.05,'A','F','1992-09-22','1992-07-20','1992-10-19','TAKE BACK RETURN','RAIL','furiously express platelets a'), +(3654,168,9,4,11,11749.76,0.08,0,'A','F','1992-07-20','1992-07-30','1992-07-23','TAKE BACK RETURN','SHIP','blithely pending accou'), +(3654,94,5,5,34,33799.06,0.04,0,'R','F','1992-07-26','1992-08-26','1992-08-12','TAKE BACK RETURN','REG AIR','slyly ironic deposits'), +(3654,107,4,6,20,20142,0.03,0.02,'A','F','1992-07-30','1992-07-05','1992-08-05','COLLECT COD','SHIP','express requests det'), +(3654,173,1,7,45,48292.65,0.01,0.07,'A','F','1992-09-15','1992-07-04','1992-09-20','DELIVER IN PERSON','FOB','carefully bold deposits haggle quickly bo'), +(3655,184,5,1,5,5420.9,0.03,0.04,'R','F','1993-01-17','1992-12-31','1993-01-23','DELIVER IN PERSON','TRUCK','pending, silent foxes affix quickly a'), +(3655,97,10,2,1,997.09,0.1,0.06,'R','F','1992-10-24','1992-12-18','1992-11-07','DELIVER IN PERSON','AIR','regular, final theodolites detect f'), +(3655,30,5,3,35,32551.05,0.01,0.04,'R','F','1992-12-20','1992-11-16','1993-01-15','TAKE BACK RETURN','MAIL','quickly ironic patterns along the req'), +(3655,72,3,4,35,34022.45,0.04,0.07,'R','F','1992-10-17','1992-12-23','1992-10-28','COLLECT COD','MAIL','fluffily ironic deposits are furious'), +(3680,177,6,1,48,51704.16,0,0.06,'R','F','1993-01-16','1993-01-23','1993-01-19','COLLECT COD','FOB','ironic requests are. qui'), +(3680,5,8,2,41,37105,0,0.04,'A','F','1993-01-06','1993-03-02','1993-01-08','NONE','FOB','packages except '), +(3680,56,4,3,33,31549.65,0.09,0.08,'R','F','1993-03-16','1993-02-19','1993-04-05','NONE','FOB','bold, ironic requests hagg'), +(3681,106,9,1,35,35213.5,0.03,0.08,'R','F','1992-07-31','1992-05-18','1992-08-07','COLLECT COD','FOB','furiously unusual'), +(3682,61,10,1,6,5766.36,0.07,0.02,'N','O','1997-05-06','1997-04-04','1997-05-11','NONE','AIR','carefully quick packages ha'), +(3682,116,7,2,18,18289.98,0.06,0.06,'N','O','1997-04-30','1997-03-21','1997-05-10','NONE','FOB','blithely regular packages should have t'), +(3682,47,10,3,17,16099.68,0.03,0.05,'N','O','1997-02-12','1997-04-04','1997-02-22','COLLECT COD','FOB','carefully bold mult'), +(3682,57,5,4,30,28711.5,0.09,0.05,'N','O','1997-04-16','1997-04-16','1997-04-29','NONE','MAIL','quickly fluffy dependencies '), +(3683,101,4,1,35,35038.5,0.05,0.03,'A','F','1993-05-31','1993-04-17','1993-06-14','NONE','SHIP','fluffily special'), +(3683,49,8,2,41,38910.64,0.01,0.06,'A','F','1993-03-26','1993-05-06','1993-04-09','NONE','TRUCK','never regular patterns cajole unusua'), +(3683,100,3,3,23,23002.3,0,0.08,'R','F','1993-07-02','1993-05-16','1993-07-30','NONE','TRUCK','blithely ir'), +(3684,126,7,1,48,49253.76,0.04,0.06,'A','F','1993-08-20','1993-09-02','1993-09-10','DELIVER IN PERSON','REG AIR','fluffily pending deposits sleep '), +(3684,46,7,2,6,5676.24,0.06,0.08,'R','F','1993-08-09','1993-10-05','1993-09-06','DELIVER IN PERSON','FOB','even instructions '), +(3684,163,8,3,19,20200.04,0.04,0.02,'A','F','1993-10-19','1993-08-25','1993-11-02','COLLECT COD','FOB','unusual requests along'), +(3684,135,1,4,13,13456.69,0.02,0.05,'A','F','1993-07-23','1993-09-16','1993-08-06','NONE','TRUCK','ideas are furi'), +(3685,47,4,1,37,35040.48,0.02,0.03,'R','F','1992-03-11','1992-04-09','1992-04-05','DELIVER IN PERSON','TRUCK','slyly even warthogs da'); +INSERT INTO lineitem VALUES +(3685,58,6,2,7,6706.35,0.05,0,'R','F','1992-05-16','1992-02-23','1992-05-17','DELIVER IN PERSON','FOB','closely ironic packages '), +(3685,134,5,3,38,39296.94,0.08,0.03,'A','F','1992-05-17','1992-03-16','1992-06-06','TAKE BACK RETURN','TRUCK','platelets '), +(3685,192,5,4,39,42595.41,0.1,0.05,'R','F','1992-02-19','1992-04-06','1992-03-02','COLLECT COD','FOB','special request'), +(3685,56,7,5,37,35373.85,0,0.01,'A','F','1992-03-02','1992-04-10','1992-03-04','NONE','FOB','Tiresias haggle quickl'), +(3686,122,5,1,7,7154.84,0.02,0.04,'N','O','1998-07-15','1998-08-22','1998-07-30','DELIVER IN PERSON','TRUCK','furiously even requests against the b'), +(3686,200,2,2,38,41807.6,0.06,0.03,'N','O','1998-09-04','1998-08-11','1998-09-19','DELIVER IN PERSON','AIR','blithely ironic'), +(3686,45,6,3,31,29296.24,0.1,0.06,'N','O','1998-09-09','1998-08-28','1998-10-09','COLLECT COD','MAIL','theodolites integrate f'), +(3686,117,1,4,7,7119.77,0.1,0.01,'N','O','1998-07-16','1998-09-02','1998-07-22','NONE','FOB','final foxes '), +(3687,145,4,1,32,33444.48,0.03,0.06,'R','F','1993-05-07','1993-04-05','1993-05-25','DELIVER IN PERSON','AIR','blithely pending courts wake final'), +(3687,81,2,2,2,1962.16,0,0.08,'R','F','1993-02-23','1993-03-25','1993-03-11','NONE','TRUCK','final requests across the blithely s'), +(3687,174,4,3,10,10741.7,0.01,0.02,'A','F','1993-02-11','1993-03-22','1993-03-09','NONE','FOB','regular requests mold. blithely bold d'), +(3687,162,9,4,19,20181.04,0.02,0.05,'A','F','1993-05-14','1993-04-24','1993-06-01','DELIVER IN PERSON','MAIL','theodolites are after the fluf'), +(3687,119,9,5,31,31592.41,0.07,0.08,'A','F','1993-05-28','1993-03-20','1993-06-05','DELIVER IN PERSON','FOB','instructions impress: '), +(3712,141,4,1,27,28110.78,0.01,0.05,'R','F','1992-02-01','1992-02-26','1992-03-02','TAKE BACK RETURN','SHIP','slyly unus'), +(3712,185,6,2,13,14107.34,0.03,0.03,'R','F','1992-04-30','1992-02-11','1992-05-30','DELIVER IN PERSON','FOB','dependencies sleep even'), +(3712,64,1,3,44,42418.64,0.01,0.01,'A','F','1992-03-26','1992-02-19','1992-04-18','TAKE BACK RETURN','FOB','theodolites sleep.'), +(3712,148,7,4,38,39829.32,0.01,0.06,'A','F','1992-01-15','1992-03-24','1992-01-27','COLLECT COD','RAIL','furiously close accounts use s'), +(3713,112,6,1,41,41496.51,0.07,0.08,'N','O','1998-05-11','1998-07-17','1998-05-22','COLLECT COD','RAIL','excuses against the carefully ex'), +(3713,177,7,2,19,20466.23,0.04,0.04,'N','O','1998-06-25','1998-07-24','1998-07-08','DELIVER IN PERSON','AIR','even excuses cajole fur'), +(3713,180,1,3,19,20523.42,0.03,0.02,'N','O','1998-05-19','1998-07-06','1998-06-09','DELIVER IN PERSON','REG AIR','final requests wake furiously'), +(3713,169,10,4,45,48112.2,0.06,0.04,'N','O','1998-06-15','1998-07-30','1998-07-14','DELIVER IN PERSON','MAIL','ironic, regular accou'), +(3713,90,1,5,46,45544.14,0.1,0.04,'N','O','1998-08-22','1998-06-27','1998-08-31','NONE','MAIL','accounts are silent, blithe sh'), +(3713,182,3,6,29,31383.22,0.09,0.03,'N','O','1998-08-04','1998-06-13','1998-08-21','NONE','RAIL','blithely special sheaves cajo'), +(3713,130,1,7,14,14421.82,0.04,0,'N','O','1998-07-19','1998-07-02','1998-07-28','DELIVER IN PERSON','SHIP','ironic requests above the f'), +(3714,69,6,1,13,12597.78,0.07,0.03,'N','O','1998-06-26','1998-06-17','1998-07-07','TAKE BACK RETURN','REG AIR','furiously unusual fox'), +(3714,146,3,2,14,14645.96,0.02,0.05,'N','O','1998-05-30','1998-06-30','1998-05-31','DELIVER IN PERSON','RAIL','furiously final'), +(3714,159,10,3,16,16946.4,0,0.02,'N','O','1998-05-25','1998-07-07','1998-06-17','TAKE BACK RETURN','AIR','carefully pending deposits det'), +(3714,30,9,4,44,40921.32,0.04,0.02,'N','O','1998-07-18','1998-07-10','1998-07-22','DELIVER IN PERSON','AIR','slyly final deposits'), +(3715,97,1,1,13,12962.17,0,0.03,'N','O','1996-05-11','1996-04-25','1996-06-09','TAKE BACK RETURN','SHIP','slyly iron'), +(3715,169,6,2,16,17106.56,0.01,0.06,'N','O','1996-06-28','1996-04-22','1996-06-30','TAKE BACK RETURN','AIR','furiously even deposi'); +INSERT INTO lineitem VALUES +(3715,12,3,3,37,33744.37,0.05,0.02,'N','O','1996-05-03','1996-04-30','1996-05-17','NONE','SHIP','quickly furious deposits ca'), +(3716,32,8,1,10,9320.3,0.09,0.04,'N','O','1997-12-02','1997-11-09','1997-12-14','TAKE BACK RETURN','SHIP','quickly bold'), +(3716,194,5,2,39,42673.41,0.02,0.08,'N','O','1997-11-27','1997-10-23','1997-12-24','COLLECT COD','REG AIR','pinto beans cajole f'), +(3716,107,8,3,42,42298.2,0.02,0.08,'N','O','1997-12-03','1997-10-12','1997-12-15','NONE','TRUCK','furiously final requests'), +(3716,165,10,4,19,20238.04,0.05,0.08,'N','O','1997-09-25','1997-10-18','1997-10-12','NONE','TRUCK','slyly final deposits affix fur'), +(3716,182,3,5,25,27054.5,0.06,0.05,'N','O','1997-11-23','1997-10-24','1997-11-24','COLLECT COD','REG AIR','ideas haggle furiously requests. blithely r'), +(3717,153,8,1,45,47391.75,0.07,0.04,'N','O','1998-08-09','1998-08-18','1998-08-14','TAKE BACK RETURN','TRUCK','blithely express deposits snooze blithely a'), +(3717,53,5,2,3,2859.15,0.01,0.07,'N','O','1998-06-09','1998-07-31','1998-06-14','NONE','REG AIR','permanently even requests cajole furiou'), +(3717,196,7,3,45,49328.55,0.05,0.08,'N','O','1998-09-19','1998-07-22','1998-09-28','DELIVER IN PERSON','MAIL','slyly dogged asymptotes'), +(3717,69,6,4,5,4845.3,0.06,0.03,'N','O','1998-09-02','1998-08-20','1998-09-26','TAKE BACK RETURN','AIR','unusual, ironic '), +(3717,16,7,5,7,6412.07,0.09,0.02,'N','O','1998-09-08','1998-07-18','1998-09-10','DELIVER IN PERSON','RAIL','special instructions haggle slyl'), +(3717,64,1,6,38,36634.28,0.01,0.07,'N','O','1998-07-10','1998-07-08','1998-07-29','COLLECT COD','RAIL','blithely unusual instructions are qu'), +(3717,106,7,7,28,28170.8,0.03,0.01,'N','O','1998-07-25','1998-08-12','1998-08-16','COLLECT COD','RAIL','daring requests above the boldly regul'), +(3718,21,10,1,40,36840.8,0.01,0.04,'N','O','1996-11-20','1996-12-17','1996-12-03','DELIVER IN PERSON','MAIL','slyly special requests wake; '), +(3718,163,8,2,16,17010.56,0.02,0.06,'N','O','1996-11-11','1996-12-25','1996-11-12','COLLECT COD','TRUCK','furiously express pack'), +(3718,70,5,3,8,7760.56,0.05,0.03,'N','O','1996-12-06','1996-12-06','1996-12-15','TAKE BACK RETURN','AIR','final ideas might are bold'), +(3719,22,5,1,35,32270.7,0.06,0.08,'N','O','1997-06-11','1997-04-03','1997-06-15','TAKE BACK RETURN','TRUCK','slyly regular deposits about t'), +(3719,174,4,2,2,2148.34,0.02,0.08,'N','O','1997-02-17','1997-04-25','1997-03-03','NONE','REG AIR','carefully final deposits nag bol'), +(3719,182,3,3,12,12986.16,0.05,0.06,'N','O','1997-06-10','1997-05-04','1997-07-09','TAKE BACK RETURN','REG AIR','carefully stealthy foxes haggle bold'), +(3719,90,1,4,13,12871.17,0.02,0,'N','O','1997-05-03','1997-04-16','1997-05-27','TAKE BACK RETURN','SHIP','blithely bold excuses use furiously furiou'), +(3719,78,8,5,19,18583.33,0.06,0.08,'N','O','1997-05-22','1997-03-20','1997-06-12','COLLECT COD','TRUCK','requests wake ab'), +(3719,142,5,6,43,44812.02,0.03,0.08,'N','O','1997-05-08','1997-04-15','1997-06-06','COLLECT COD','RAIL','special warho'), +(3719,19,10,7,16,14704.16,0.1,0.01,'N','O','1997-03-02','1997-03-18','1997-03-28','TAKE BACK RETURN','RAIL','slyly regula'), +(3744,195,8,1,30,32855.7,0.05,0.06,'A','F','1992-05-07','1992-02-12','1992-05-17','TAKE BACK RETURN','FOB','accounts thrash along the fluffily'), +(3745,137,8,1,18,18668.34,0.01,0.05,'A','F','1993-10-17','1993-11-16','1993-11-13','DELIVER IN PERSON','SHIP','bold deposits wake furio'), +(3746,165,6,1,37,39410.92,0.07,0,'A','F','1994-12-29','1994-10-25','1995-01-03','COLLECT COD','FOB','blithely regula'), +(3746,144,7,2,28,29235.92,0.06,0.08,'R','F','1994-09-20','1994-10-21','1994-09-27','DELIVER IN PERSON','FOB','quickly ironi'), +(3746,188,9,3,3,3264.54,0.1,0.01,'R','F','1994-11-03','1994-12-10','1994-11-12','NONE','MAIL','slyly regular escapades across the '), +(3746,28,7,4,11,10208.22,0,0.05,'R','F','1994-10-02','1994-11-19','1994-10-10','COLLECT COD','SHIP','ironic requests acr'); +INSERT INTO lineitem VALUES +(3747,141,10,1,42,43727.88,0.05,0.05,'N','O','1996-11-10','1996-10-19','1996-11-19','TAKE BACK RETURN','REG AIR','blithely final accounts after the regula'), +(3747,170,1,2,33,35315.61,0.01,0.03,'N','O','1996-10-14','1996-11-12','1996-11-11','NONE','REG AIR','furiously bold deposits '), +(3747,139,10,3,30,31173.9,0,0.07,'N','O','1996-12-16','1996-11-15','1996-12-17','NONE','RAIL','carefully ironic accou'), +(3747,33,9,4,21,19593.63,0,0.06,'N','O','1996-11-18','1996-09-23','1996-11-26','TAKE BACK RETURN','AIR','fluffily unusual accounts wake according'), +(3747,126,5,5,32,32835.84,0.08,0.05,'N','O','1996-09-10','1996-11-04','1996-10-10','DELIVER IN PERSON','MAIL','final, ironic packages alon'), +(3747,154,5,6,14,14758.1,0.08,0.07,'N','O','1996-11-03','1996-10-29','1996-11-06','TAKE BACK RETURN','AIR','quickly bold multipliers are. caref'), +(3747,118,2,7,23,23416.53,0,0.04,'N','O','1996-11-08','1996-11-10','1996-12-03','NONE','REG AIR','furiously special deposits are arou'), +(3748,104,7,1,12,12049.2,0.06,0.01,'N','O','1998-04-17','1998-04-15','1998-05-12','NONE','AIR','quickly unu'), +(3748,165,4,2,24,25563.84,0.08,0.04,'N','O','1998-06-07','1998-05-02','1998-06-21','DELIVER IN PERSON','TRUCK','unusual, final accounts nag up the pinto b'), +(3748,197,1,3,19,20846.61,0.05,0.01,'N','O','1998-04-23','1998-05-17','1998-05-23','COLLECT COD','RAIL','final accounts haggl'), +(3748,187,8,4,5,5435.9,0,0.07,'N','O','1998-06-29','1998-05-06','1998-07-12','DELIVER IN PERSON','MAIL','fluffily bold di'), +(3748,147,4,5,21,21989.94,0.07,0.08,'N','O','1998-03-30','1998-04-07','1998-04-05','TAKE BACK RETURN','MAIL','blithely regular instructions wake. quic'), +(3749,173,3,1,11,11804.87,0.07,0.05,'N','O','1995-06-25','1995-05-23','1995-07-10','TAKE BACK RETURN','RAIL','regular, final packages '), +(3749,129,8,2,9,9262.08,0.08,0.05,'A','F','1995-04-23','1995-04-18','1995-04-26','NONE','REG AIR','slyly regular r'), +(3749,199,2,3,31,34074.89,0,0.05,'N','F','1995-06-11','1995-05-20','1995-06-27','COLLECT COD','REG AIR','express packages use about the fluffil'), +(3749,131,2,4,7,7217.91,0.07,0.06,'A','F','1995-03-31','1995-04-05','1995-04-11','NONE','TRUCK','furiously regular accounts impre'), +(3749,183,4,5,14,15164.52,0.02,0,'N','F','1995-06-11','1995-05-19','1995-07-11','DELIVER IN PERSON','SHIP','furiously final instructions maintain q'), +(3749,54,6,6,10,9540.5,0.1,0.03,'N','O','1995-06-24','1995-05-24','1995-07-18','COLLECT COD','SHIP','quickly close theodolites haggle '), +(3750,134,10,1,37,38262.81,0.04,0.03,'N','O','1995-07-08','1995-07-28','1995-07-28','DELIVER IN PERSON','REG AIR','slyly special accounts lose along the bli'), +(3750,152,3,2,33,34720.95,0.05,0.03,'N','O','1995-06-27','1995-06-20','1995-07-03','TAKE BACK RETURN','REG AIR','always special pac'), +(3750,80,10,3,20,19601.6,0.09,0.05,'N','F','1995-06-17','1995-06-06','1995-06-28','TAKE BACK RETURN','REG AIR','requests boost bli'), +(3750,166,1,4,33,35183.28,0.04,0.03,'N','F','1995-06-15','1995-06-04','1995-06-29','COLLECT COD','RAIL','furiously fluffy deposits sleep sl'), +(3750,83,4,5,1,983.08,0.05,0.01,'N','O','1995-07-24','1995-06-25','1995-08-21','DELIVER IN PERSON','REG AIR','blithely express platelets must impress sl'), +(3750,113,7,6,47,47616.17,0.01,0.08,'R','F','1995-05-11','1995-06-13','1995-06-02','TAKE BACK RETURN','FOB','slyly even theodolite'), +(3751,172,2,1,37,39670.29,0,0.04,'R','F','1994-04-30','1994-05-30','1994-05-30','NONE','REG AIR','furiously sp'), +(3751,141,8,2,32,33316.48,0.03,0.05,'R','F','1994-05-05','1994-07-02','1994-06-02','COLLECT COD','MAIL','slyly regular accounts cajole depos'), +(3751,65,2,3,45,43427.7,0.08,0.06,'R','F','1994-05-27','1994-06-19','1994-06-14','NONE','RAIL','special platelets for the slyly'), +(3751,14,4,4,39,35646.39,0.07,0.01,'A','F','1994-08-16','1994-07-11','1994-09-12','COLLECT COD','TRUCK','blithely regular wat'), +(3751,58,3,5,12,11496.6,0.02,0.03,'A','F','1994-08-09','1994-06-30','1994-08-12','TAKE BACK RETURN','TRUCK','carefully i'); +INSERT INTO lineitem VALUES +(3751,76,5,6,39,38066.73,0.02,0.08,'R','F','1994-08-01','1994-06-01','1994-08-26','COLLECT COD','SHIP','slyly special hockey players a'), +(3776,3,10,1,39,35217,0.05,0.01,'R','F','1993-01-03','1993-02-05','1993-01-08','COLLECT COD','FOB','final, pending sauternes snooz'), +(3776,159,4,2,14,14828.1,0.06,0.08,'R','F','1992-12-30','1993-02-12','1993-01-27','DELIVER IN PERSON','RAIL','dependencies are fluffily '), +(3776,141,8,3,49,51015.86,0.01,0.08,'R','F','1992-12-03','1993-02-16','1992-12-28','TAKE BACK RETURN','RAIL','furiously stealthy accounts sleep along th'), +(3776,92,6,4,49,48612.41,0.08,0.05,'A','F','1993-02-11','1993-01-06','1993-02-27','COLLECT COD','MAIL','even pinto beans sleep ca'), +(3777,100,4,1,11,11001.1,0.02,0.03,'A','F','1994-04-09','1994-06-05','1994-04-14','NONE','FOB','final instr'), +(3777,8,5,2,10,9080,0.03,0.01,'R','F','1994-05-22','1994-05-29','1994-06-13','COLLECT COD','RAIL','ironic deposits are blithely against the fi'), +(3777,166,7,3,18,19190.88,0.1,0.06,'R','F','1994-05-04','1994-05-23','1994-05-22','COLLECT COD','REG AIR','quickly unusual ideas sleep furiously.'), +(3777,18,9,4,35,32130.35,0.1,0.04,'A','F','1994-05-25','1994-05-26','1994-06-13','COLLECT COD','AIR','quickly express d'), +(3777,98,10,5,14,13973.26,0.04,0.05,'R','F','1994-05-06','1994-06-24','1994-05-31','NONE','TRUCK','carefully ironi'), +(3778,57,2,1,21,20098.05,0.01,0.06,'R','F','1993-05-27','1993-07-10','1993-06-03','COLLECT COD','REG AIR','furiously even packages are flu'), +(3778,29,10,2,32,29728.64,0.09,0,'A','F','1993-06-22','1993-08-18','1993-07-03','TAKE BACK RETURN','MAIL','carefully final accounts cajole '), +(3778,94,6,3,41,40757.69,0.05,0,'R','F','1993-06-21','1993-07-27','1993-07-15','COLLECT COD','FOB','final theodolites hinder about the slyly sp'), +(3778,169,4,4,28,29936.48,0.03,0.05,'R','F','1993-08-18','1993-07-10','1993-09-06','TAKE BACK RETURN','REG AIR','fluffily even reques'), +(3778,98,2,5,28,27946.52,0.01,0.06,'R','F','1993-09-02','1993-08-08','1993-10-02','DELIVER IN PERSON','FOB','blithely regular theodolites'), +(3778,20,7,6,26,23920.52,0,0.01,'A','F','1993-09-24','1993-07-06','1993-10-22','NONE','TRUCK','ironic, special ideas'), +(3778,105,6,7,49,49249.9,0.02,0.04,'A','F','1993-06-13','1993-08-08','1993-07-04','DELIVER IN PERSON','MAIL','blithely re'), +(3779,46,5,1,28,26489.12,0.04,0.05,'N','O','1997-05-06','1997-04-01','1997-05-18','TAKE BACK RETURN','AIR','quickly permanent packa'), +(3779,110,3,2,5,5050.55,0.07,0.03,'N','O','1997-01-07','1997-03-26','1997-02-05','DELIVER IN PERSON','AIR','carefully r'), +(3780,127,8,1,25,25678,0.08,0.04,'N','O','1996-06-27','1996-07-02','1996-07-22','NONE','AIR','blithely express packages about the r'), +(3780,190,1,2,40,43607.6,0.1,0.04,'N','O','1996-06-06','1996-05-29','1996-07-01','COLLECT COD','SHIP','ironic pinto b'), +(3781,14,5,1,48,43872.48,0.02,0.06,'N','O','1996-08-22','1996-08-13','1996-09-15','NONE','REG AIR','furiously ironic asymptotes behin'), +(3781,188,9,2,39,42439.02,0.1,0,'N','O','1996-08-20','1996-08-16','1996-09-01','DELIVER IN PERSON','REG AIR','furiously unusual escapades boost ca'), +(3781,30,1,3,17,15810.51,0.01,0.03,'N','O','1996-06-23','1996-09-04','1996-07-19','TAKE BACK RETURN','REG AIR','regular, final platelets play. plate'), +(3781,31,2,4,15,13965.45,0.05,0,'N','O','1996-08-23','1996-08-08','1996-09-06','TAKE BACK RETURN','AIR','ironic, even theodolites l'), +(3781,16,6,5,23,21068.23,0.09,0.08,'N','O','1996-09-05','1996-08-18','1996-09-27','DELIVER IN PERSON','SHIP','final, iron'), +(3782,27,10,1,29,26883.58,0.01,0.07,'N','O','1996-09-17','1996-10-03','1996-10-07','DELIVER IN PERSON','REG AIR','quickly final deposits hagg'), +(3782,153,1,2,10,10531.5,0.03,0.05,'N','O','1996-09-07','1996-11-19','1996-10-04','COLLECT COD','FOB','boldly bold instructions cajo'), +(3782,136,7,3,30,31083.9,0.06,0.06,'N','O','1996-12-19','1996-10-31','1997-01-14','TAKE BACK RETURN','MAIL','unusual courts about the idly ironic acc'); +INSERT INTO lineitem VALUES +(3782,117,7,4,34,34581.74,0.02,0.06,'N','O','1996-11-07','1996-10-22','1996-11-19','DELIVER IN PERSON','MAIL','quickly regular requests us'), +(3782,130,3,5,40,41205.2,0.09,0.04,'N','O','1996-12-16','1996-11-22','1997-01-01','COLLECT COD','AIR','carefully express orbits haggle ca'), +(3783,167,4,1,36,38417.76,0.04,0.08,'R','F','1993-12-17','1994-02-26','1994-01-03','DELIVER IN PERSON','SHIP','final, even th'), +(3783,73,3,2,36,35030.52,0.02,0.02,'R','F','1994-03-02','1994-02-09','1994-03-15','COLLECT COD','TRUCK','ironic requests affix carefully sly'), +(3783,85,6,3,50,49254,0.04,0.01,'R','F','1994-03-14','1994-01-09','1994-04-10','DELIVER IN PERSON','FOB','special asymptotes hang '), +(3783,27,6,4,37,34299.74,0.1,0.05,'R','F','1993-12-09','1994-02-17','1993-12-30','COLLECT COD','REG AIR','regular packages use slyly '), +(3808,43,10,1,28,26405.12,0.02,0.01,'R','F','1994-05-27','1994-06-18','1994-06-22','TAKE BACK RETURN','FOB','slyly ironic accounts kindle b'), +(3808,127,6,2,47,48274.64,0.04,0.08,'R','F','1994-06-12','1994-06-03','1994-07-02','COLLECT COD','TRUCK','even, special dolphins print slyly. careful'), +(3808,31,2,3,45,41896.35,0,0.03,'R','F','1994-07-03','1994-05-29','1994-07-14','TAKE BACK RETURN','REG AIR','slowly unusual requests sleep carefully.'), +(3808,100,1,4,34,34003.4,0.07,0.04,'R','F','1994-08-13','1994-07-22','1994-08-31','DELIVER IN PERSON','FOB','quickly final reques'), +(3808,155,7,5,29,30599.35,0.08,0.03,'A','F','1994-06-22','1994-05-26','1994-07-06','TAKE BACK RETURN','TRUCK','slyly ironic instructions '), +(3808,168,5,6,44,46999.04,0.06,0.06,'A','F','1994-06-07','1994-06-04','1994-06-25','NONE','REG AIR','even theodolites haggle about the f'), +(3809,191,3,1,17,18550.23,0.1,0.04,'N','O','1996-08-14','1996-07-05','1996-09-04','DELIVER IN PERSON','FOB','carefully thin foxes acros'), +(3809,133,4,2,32,33060.16,0.01,0.02,'N','O','1996-07-03','1996-06-01','1996-07-25','COLLECT COD','SHIP','slyly express theodolites nag ac'), +(3809,105,6,3,46,46234.6,0.1,0.06,'N','O','1996-08-20','1996-06-01','1996-08-24','TAKE BACK RETURN','TRUCK','blithely ironic packages des'), +(3809,178,9,4,43,46361.31,0,0.04,'N','O','1996-05-06','1996-06-22','1996-06-05','TAKE BACK RETURN','TRUCK','furiously iro'), +(3810,184,5,1,49,53124.82,0.05,0.01,'R','F','1992-11-27','1992-10-30','1992-12-16','COLLECT COD','AIR','special acc'), +(3810,169,8,2,18,19244.88,0.01,0.04,'A','F','1992-11-28','1992-11-15','1992-12-27','DELIVER IN PERSON','SHIP','carefully e'), +(3810,137,3,3,41,42522.33,0.08,0.08,'A','F','1992-10-26','1992-10-27','1992-11-05','COLLECT COD','SHIP','sheaves are careful'), +(3810,182,3,4,11,11903.98,0.06,0.04,'A','F','1992-12-18','1992-12-11','1993-01-15','DELIVER IN PERSON','MAIL','furiously '), +(3811,164,3,1,24,25539.84,0.04,0.02,'N','O','1998-07-13','1998-05-16','1998-08-12','TAKE BACK RETURN','TRUCK','furiously regul'), +(3811,166,5,2,2,2132.32,0.01,0.08,'N','O','1998-06-16','1998-06-16','1998-06-23','NONE','MAIL','bold, express'), +(3811,43,6,3,19,17917.76,0.02,0.06,'N','O','1998-07-20','1998-06-14','1998-07-29','NONE','MAIL','instructions cajole fluffil'), +(3811,171,1,4,50,53558.5,0.08,0.03,'N','O','1998-07-28','1998-07-06','1998-08-16','COLLECT COD','FOB','regularly fluffy theodolites'), +(3811,182,3,5,23,24890.14,0,0.04,'N','O','1998-08-13','1998-07-09','1998-08-29','COLLECT COD','AIR','carefully even packa'), +(3811,2,7,6,35,31570,0.04,0.07,'N','O','1998-04-17','1998-06-30','1998-04-25','NONE','REG AIR','regular notornis across the accounts af'), +(3812,145,4,1,33,34489.62,0,0.05,'N','O','1996-10-10','1996-10-05','1996-10-15','TAKE BACK RETURN','MAIL','furiously express theodolites use. '), +(3812,173,2,2,33,35414.61,0.06,0.03,'N','O','1996-10-05','1996-10-13','1996-10-22','TAKE BACK RETURN','MAIL','slyly regular theodol'), +(3813,176,7,1,37,39818.29,0.05,0.04,'N','O','1998-10-13','1998-09-19','1998-10-28','NONE','REG AIR','furiously final as'), +(3813,123,2,2,39,39901.68,0.05,0,'N','O','1998-08-30','1998-08-12','1998-09-29','COLLECT COD','FOB','furiously pending instructions use'); +INSERT INTO lineitem VALUES +(3814,131,7,1,7,7217.91,0.02,0.02,'R','F','1995-05-01','1995-05-09','1995-05-28','DELIVER IN PERSON','REG AIR','blithely bol'), +(3814,173,3,2,14,15024.38,0.01,0,'R','F','1995-03-17','1995-05-10','1995-04-16','DELIVER IN PERSON','AIR','regular packages sle'), +(3814,168,7,3,36,38453.76,0.06,0.02,'N','O','1995-06-19','1995-04-18','1995-06-28','COLLECT COD','SHIP','carefully '), +(3814,66,7,4,20,19321.2,0.04,0.07,'R','F','1995-02-23','1995-03-26','1995-03-04','DELIVER IN PERSON','SHIP','special epitaphs after the furious, '), +(3814,107,2,5,15,15106.5,0.03,0.04,'N','O','1995-06-23','1995-03-25','1995-07-09','COLLECT COD','SHIP','furiously regular dinos sle'), +(3814,83,4,6,47,46204.76,0.09,0.05,'A','F','1995-04-16','1995-04-03','1995-05-14','DELIVER IN PERSON','AIR','furiously even account'), +(3814,132,8,7,12,12385.56,0.1,0.01,'R','F','1995-03-18','1995-04-16','1995-03-20','TAKE BACK RETURN','REG AIR','silent, regul'), +(3815,77,7,1,3,2931.21,0.07,0,'N','O','1997-11-16','1997-11-15','1997-11-30','NONE','FOB','fluffily regular di'), +(3815,130,5,2,11,11331.43,0.02,0.04,'N','O','1997-11-01','1997-11-05','1997-11-27','COLLECT COD','TRUCK','slyly regular instructi'), +(3840,187,8,1,45,48923.1,0.02,0.08,'N','O','1998-10-31','1998-09-19','1998-11-30','DELIVER IN PERSON','TRUCK','even deposits c'), +(3840,46,9,2,12,11352.48,0.04,0.07,'N','O','1998-10-02','1998-08-19','1998-10-20','TAKE BACK RETURN','RAIL','requests are'), +(3840,73,4,3,45,43788.15,0.02,0.05,'N','O','1998-10-12','1998-10-12','1998-10-28','TAKE BACK RETURN','FOB','quickly thin foxes h'), +(3840,148,9,4,41,42973.74,0.07,0.02,'N','O','1998-07-21','1998-10-08','1998-08-01','TAKE BACK RETURN','MAIL','blithely ironic accoun'), +(3840,173,3,5,7,7512.19,0.09,0.08,'N','O','1998-09-17','1998-09-20','1998-10-14','DELIVER IN PERSON','MAIL','bold foxes affix busily abov'), +(3840,107,8,6,33,33234.3,0.1,0.02,'N','O','1998-07-29','1998-10-06','1998-08-04','DELIVER IN PERSON','SHIP','requests haggle. '), +(3841,157,5,1,1,1057.15,0.06,0.03,'A','F','1994-10-10','1994-11-12','1994-10-21','DELIVER IN PERSON','AIR','accounts integrate slyly regular request'), +(3841,21,10,2,31,28551.62,0.09,0.03,'A','F','1995-01-24','1994-11-25','1995-02-20','TAKE BACK RETURN','SHIP','regular, ironic deposits haggle care'), +(3841,152,10,3,40,42086,0.06,0.02,'A','F','1995-02-02','1994-11-30','1995-02-14','TAKE BACK RETURN','MAIL','pending, e'), +(3841,50,1,4,9,8550.45,0.1,0.07,'A','F','1994-11-21','1994-12-26','1994-11-26','NONE','FOB','even braids detec'), +(3841,176,7,5,3,3228.51,0.04,0.02,'R','F','1994-10-24','1994-12-07','1994-11-09','COLLECT COD','FOB','furiously bold dependencies accord'), +(3841,163,8,6,48,51031.68,0.03,0,'R','F','1994-11-23','1994-11-22','1994-12-01','DELIVER IN PERSON','FOB','slyly even deposi'), +(3842,162,7,1,28,29740.48,0.05,0.07,'A','F','1992-06-17','1992-06-03','1992-06-24','DELIVER IN PERSON','TRUCK','carefully final accounts sleep. th'), +(3842,122,1,2,21,21464.52,0.07,0.05,'R','F','1992-07-15','1992-06-02','1992-07-21','NONE','RAIL','instructions unwind fluffily throughout '), +(3842,194,7,3,28,30637.32,0,0,'A','F','1992-06-20','1992-05-22','1992-07-13','DELIVER IN PERSON','MAIL','regular, final '), +(3842,88,9,4,15,14821.2,0.07,0.01,'A','F','1992-06-26','1992-06-23','1992-07-09','COLLECT COD','MAIL','slyly bold deposits about the accounts po'), +(3842,68,3,5,13,12584.78,0.09,0.02,'R','F','1992-04-13','1992-06-22','1992-05-11','COLLECT COD','RAIL','pending requests above the courts use'), +(3842,107,4,6,24,24170.4,0.08,0.08,'R','F','1992-08-05','1992-06-29','1992-08-16','TAKE BACK RETURN','MAIL','regular, ruthless excuses sleep bli'), +(3843,15,6,1,7,6405.07,0.1,0.03,'N','O','1997-02-13','1997-02-21','1997-02-20','TAKE BACK RETURN','SHIP','blithely bold deposits haggl'), +(3843,1,4,2,30,27030,0.01,0.05,'N','O','1997-02-14','1997-03-25','1997-03-13','DELIVER IN PERSON','AIR','packages boost. pinto b'), +(3844,135,1,1,2,2070.26,0.03,0.07,'R','F','1995-02-24','1995-02-03','1995-03-18','TAKE BACK RETURN','AIR','regular, bold packages '); +INSERT INTO lineitem VALUES +(3844,102,7,2,5,5010.5,0.1,0.03,'R','F','1995-04-29','1995-02-24','1995-05-05','TAKE BACK RETURN','RAIL','blithely special accounts are furiously sly'), +(3845,34,5,1,44,41097.32,0.01,0.08,'A','F','1992-07-20','1992-07-15','1992-07-24','DELIVER IN PERSON','REG AIR','blithely pe'), +(3845,24,7,2,16,14784.32,0.09,0.05,'A','F','1992-08-08','1992-06-08','1992-08-26','DELIVER IN PERSON','SHIP','ironic instructions cajole blithe'), +(3845,59,1,3,17,16303.85,0.08,0.01,'A','F','1992-06-12','1992-07-05','1992-06-26','TAKE BACK RETURN','RAIL','carefully regular foxes haggle pe'), +(3845,46,9,4,1,946.04,0.04,0.05,'R','F','1992-05-21','1992-06-07','1992-06-17','COLLECT COD','REG AIR','bold requests nag ironi'), +(3845,196,7,5,27,29597.13,0,0.05,'R','F','1992-08-20','1992-07-17','1992-09-02','COLLECT COD','REG AIR','slyly ironic requests wake careful'), +(3845,105,8,6,30,30153,0.09,0.06,'R','F','1992-08-21','1992-07-07','1992-08-25','COLLECT COD','FOB','blithely pendi'), +(3846,61,10,1,15,14415.9,0.06,0.03,'N','O','1998-02-17','1998-04-27','1998-02-21','NONE','REG AIR','carefully iron'), +(3846,171,2,2,30,32135.1,0.08,0.07,'N','O','1998-05-01','1998-03-12','1998-05-20','TAKE BACK RETURN','FOB','unusual de'), +(3846,15,5,3,49,44835.49,0.08,0.07,'N','O','1998-02-14','1998-03-22','1998-02-17','DELIVER IN PERSON','RAIL','slyly even asymptotes maintain. slyly ir'), +(3846,165,10,4,33,35150.28,0.05,0,'N','O','1998-05-12','1998-03-14','1998-05-14','DELIVER IN PERSON','TRUCK','slyly pending accounts wake blithe'), +(3847,189,10,1,7,7624.26,0.08,0,'A','F','1993-05-06','1993-06-06','1993-05-22','COLLECT COD','MAIL','fluffily ironic platelet'), +(3872,181,2,1,28,30273.04,0.1,0.04,'N','O','1996-11-05','1996-11-10','1996-11-24','DELIVER IN PERSON','REG AIR','slyly ironic accounts affi'), +(3872,17,4,2,38,34846.38,0.04,0.05,'N','O','1996-10-18','1996-12-03','1996-11-15','TAKE BACK RETURN','AIR','express dependencies c'), +(3872,169,4,3,18,19244.88,0.07,0.07,'N','O','1996-12-25','1996-10-24','1997-01-08','TAKE BACK RETURN','SHIP','blithely express instructi'), +(3872,11,2,4,41,37351.41,0.07,0.03,'N','O','1996-11-23','1996-11-12','1996-12-03','COLLECT COD','REG AIR','carefully s'), +(3872,70,7,5,42,40742.94,0.03,0,'N','O','1997-01-03','1996-10-12','1997-01-16','COLLECT COD','MAIL','quickly unusual accounts cajole bl'), +(3872,140,6,6,40,41605.6,0.07,0.05,'N','O','1997-01-02','1996-10-29','1997-01-14','NONE','REG AIR','pearls use slyly quickly final fo'), +(3873,68,3,1,19,18393.14,0.04,0.04,'N','O','1998-05-15','1998-05-10','1998-05-17','NONE','FOB','finally special p'), +(3873,145,8,2,44,45986.16,0.05,0.05,'N','O','1998-07-23','1998-05-22','1998-08-14','COLLECT COD','AIR','carefully iro'), +(3873,140,6,3,29,30164.06,0.01,0.04,'N','O','1998-06-22','1998-05-20','1998-07-05','COLLECT COD','REG AIR','express, ironic excuses affix.'), +(3874,170,7,1,21,22473.57,0.09,0.08,'R','F','1993-06-19','1993-07-20','1993-07-08','DELIVER IN PERSON','SHIP','furiously final theodolites accord'), +(3874,19,6,2,48,44112.48,0.06,0.07,'R','F','1993-06-13','1993-07-20','1993-06-20','NONE','RAIL','carefully ironic excuses along the blithel'), +(3875,81,2,1,24,23545.92,0.02,0.08,'N','O','1997-10-15','1997-11-27','1997-11-09','COLLECT COD','AIR','blithely express foxes are furiously d'), +(3875,113,7,2,49,49642.39,0.04,0.04,'N','O','1997-10-18','1997-10-13','1997-10-19','NONE','MAIL','dolphins kin'), +(3876,141,8,1,12,12493.68,0.06,0.07,'N','O','1996-09-16','1996-10-23','1996-10-05','TAKE BACK RETURN','REG AIR','slyly pending request'), +(3876,140,6,2,37,38485.18,0,0.03,'N','O','1996-11-30','1996-10-18','1996-12-18','DELIVER IN PERSON','AIR','furiously special ideas eat idly i'), +(3876,127,8,3,41,42111.92,0.02,0.04,'N','O','1996-10-15','1996-10-17','1996-10-19','NONE','AIR','slyly final accounts wake sly'), +(3877,50,7,1,12,11400.6,0.06,0.01,'R','F','1993-05-30','1993-08-09','1993-06-24','TAKE BACK RETURN','FOB','requests across the quickly regul'), +(3877,145,4,2,47,49121.58,0.05,0,'A','F','1993-08-01','1993-08-16','1993-08-04','NONE','FOB','slyly regular theo'); +INSERT INTO lineitem VALUES +(3877,80,8,3,44,43123.52,0.09,0,'A','F','1993-06-07','1993-07-15','1993-07-06','DELIVER IN PERSON','REG AIR','carefully unusual ideas sleep. quickl'), +(3877,148,9,4,36,37733.04,0.06,0.01,'A','F','1993-07-27','1993-07-13','1993-08-11','DELIVER IN PERSON','AIR','furiously regular deposits h'), +(3877,5,6,5,41,37105,0.03,0.07,'A','F','1993-06-30','1993-07-20','1993-07-01','DELIVER IN PERSON','FOB','blithely regular grouche'), +(3877,123,4,6,7,7161.84,0.04,0.08,'R','F','1993-06-14','1993-07-09','1993-06-28','NONE','TRUCK','pending pinto beans '), +(3878,200,1,1,6,6601.2,0.07,0.04,'N','O','1997-06-21','1997-05-22','1997-07-01','COLLECT COD','FOB','regular, bold packages wake closel'), +(3878,88,9,2,13,12845.04,0.01,0.06,'N','O','1997-06-08','1997-06-03','1997-06-25','TAKE BACK RETURN','TRUCK','ironic foxes sleep carefully after the '), +(3878,41,8,3,20,18820.8,0.08,0.03,'N','O','1997-06-20','1997-05-24','1997-07-20','TAKE BACK RETURN','MAIL','boldly ironic instructions use ironically e'), +(3878,152,3,4,20,21043,0.01,0.07,'N','O','1997-07-13','1997-05-22','1997-07-20','NONE','FOB','slyly silent instructions alongsid'), +(3879,126,5,1,45,46175.4,0.1,0.08,'N','O','1996-03-18','1996-01-03','1996-04-03','COLLECT COD','RAIL','deposits cajole. special i'), +(3879,45,4,2,35,33076.4,0,0.07,'N','O','1995-12-08','1996-01-23','1995-12-28','TAKE BACK RETURN','MAIL','pending dolphins '), +(3904,38,4,1,22,20636.66,0.04,0.03,'N','O','1998-02-02','1998-02-09','1998-02-10','TAKE BACK RETURN','REG AIR','slyly pending package'), +(3904,184,5,2,19,20599.42,0.09,0.01,'N','O','1998-02-10','1998-02-13','1998-02-20','TAKE BACK RETURN','AIR','platelets use slyl'), +(3905,101,8,1,43,43047.3,0.07,0.08,'A','F','1994-03-30','1994-02-18','1994-04-09','DELIVER IN PERSON','REG AIR','carefully ironic instructions are. slyly b'), +(3905,116,10,2,7,7112.77,0.03,0,'R','F','1994-03-01','1994-02-19','1994-03-11','DELIVER IN PERSON','AIR','fluffily even platelets are. slowly fin'), +(3905,170,7,3,6,6421.02,0.07,0.02,'R','F','1994-04-07','1994-03-07','1994-04-21','DELIVER IN PERSON','RAIL','furiously even theodolites a'), +(3906,153,1,1,42,44232.3,0,0.04,'R','F','1992-09-03','1992-07-22','1992-09-04','COLLECT COD','RAIL','accounts wake. packages sle'), +(3906,40,1,2,50,47002,0.01,0.07,'R','F','1992-09-24','1992-08-24','1992-09-29','NONE','MAIL','courts after the fluffily i'), +(3906,180,9,3,15,16202.7,0.06,0.02,'R','F','1992-07-30','1992-08-26','1992-08-02','TAKE BACK RETURN','FOB','platelets among the slowly ironic dep'), +(3906,59,10,4,36,34525.8,0.08,0.08,'A','F','1992-08-07','1992-08-08','1992-08-24','NONE','SHIP','fluffily silent foxes cajole a'), +(3907,112,6,1,41,41496.51,0.06,0.02,'A','F','1992-09-13','1992-10-23','1992-09-29','COLLECT COD','MAIL','furiously ironic accounts a'), +(3907,145,4,2,41,42850.74,0.03,0,'A','F','1992-10-25','1992-10-17','1992-11-01','TAKE BACK RETURN','RAIL','silent excuses boos'), +(3907,52,4,3,45,42842.25,0.02,0.07,'R','F','1992-09-21','1992-09-19','1992-10-18','COLLECT COD','REG AIR','busily unusual foxes are quickly'), +(3907,176,5,4,48,51656.16,0.05,0.07,'A','F','1992-09-24','1992-10-16','1992-10-06','DELIVER IN PERSON','TRUCK','silent requests sleep above t'), +(3907,62,3,5,22,21165.32,0.09,0.01,'R','F','1992-09-20','1992-10-30','1992-09-29','TAKE BACK RETURN','TRUCK','carefully final deposits a'), +(3907,126,9,6,34,34888.08,0.02,0.02,'R','F','1992-09-06','1992-10-08','1992-09-12','COLLECT COD','FOB','furiously even requests '), +(3907,110,5,7,8,8080.88,0.1,0.01,'A','F','1992-09-18','1992-10-29','1992-09-27','NONE','REG AIR','pending, regular de'), +(3908,92,4,1,50,49604.5,0.05,0.04,'R','F','1993-06-19','1993-04-27','1993-07-05','DELIVER IN PERSON','MAIL','slyly regular dependencies wake quickly. f'), +(3908,148,9,2,8,8385.12,0.06,0.03,'A','F','1993-03-12','1993-04-13','1993-03-22','DELIVER IN PERSON','SHIP','carefully quiet packages '), +(3909,178,6,1,30,32345.1,0.03,0.07,'N','O','1998-10-17','1998-10-14','1998-10-28','COLLECT COD','TRUCK','express packages along the '); +INSERT INTO lineitem VALUES +(3909,191,4,2,46,50194.74,0.03,0.01,'N','O','1998-10-08','1998-10-15','1998-10-24','NONE','FOB','furiously unusual dept'), +(3910,139,10,1,10,10391.3,0,0.08,'N','O','1996-10-18','1996-10-31','1996-11-14','DELIVER IN PERSON','FOB','regular requests are-- quickly fin'), +(3910,71,10,2,31,30103.17,0.05,0.03,'N','O','1996-12-22','1996-11-14','1997-01-01','TAKE BACK RETURN','SHIP','regular instructio'), +(3910,20,7,3,6,5520.12,0.04,0.04,'N','O','1996-12-08','1996-10-30','1996-12-31','DELIVER IN PERSON','MAIL','fluffily eve'), +(3910,153,1,4,1,1053.15,0.03,0.06,'N','O','1996-09-12','1996-10-21','1996-09-19','DELIVER IN PERSON','FOB','deposits according to the '), +(3911,113,7,1,10,10131.1,0.07,0.06,'N','O','1995-06-22','1995-05-30','1995-06-28','COLLECT COD','FOB','furiously final platelets boost. fluffily'), +(3911,119,9,2,14,14267.54,0.08,0.05,'R','F','1995-04-28','1995-05-03','1995-05-22','NONE','RAIL','carefully slow account'), +(3911,92,5,3,12,11905.08,0.1,0.05,'R','F','1995-04-04','1995-04-16','1995-04-10','COLLECT COD','FOB','unusual, ironic request'), +(3936,137,8,1,25,25928.25,0.06,0.03,'N','O','1996-12-03','1996-12-27','1997-01-01','DELIVER IN PERSON','RAIL','furiously silent ide'), +(3936,188,9,2,24,26116.32,0.1,0.07,'N','O','1996-11-22','1997-01-01','1996-12-08','NONE','AIR','theodolites wake quickl'), +(3936,83,4,3,42,41289.36,0,0.07,'N','O','1997-01-03','1997-01-29','1997-01-14','COLLECT COD','AIR','final excuses are. carefully r'), +(3936,62,7,4,12,11544.72,0.06,0.05,'N','O','1996-11-25','1997-01-09','1996-12-06','DELIVER IN PERSON','SHIP','carefully even p'), +(3936,84,5,5,35,34442.8,0.02,0.08,'N','O','1996-12-04','1997-01-06','1996-12-22','NONE','SHIP','accounts use slyly ca'), +(3936,103,6,6,26,26080.6,0.01,0.02,'N','O','1997-02-27','1997-01-16','1997-03-22','NONE','RAIL','blithely even reques'), +(3937,70,7,1,48,46563.36,0.1,0.02,'N','O','1998-03-15','1998-02-22','1998-03-30','DELIVER IN PERSON','FOB','quickly final requests solve furiousl'), +(3937,48,1,2,30,28441.2,0.01,0.07,'N','O','1998-01-17','1998-01-03','1998-02-08','COLLECT COD','TRUCK','idly expres'), +(3937,115,5,3,27,27407.97,0.03,0,'N','O','1998-02-06','1998-01-12','1998-02-20','NONE','MAIL','final request'), +(3937,154,2,4,50,52707.5,0.01,0.02,'N','O','1998-01-15','1998-01-09','1998-02-04','DELIVER IN PERSON','AIR','quickly special theodoli'), +(3937,3,10,5,29,26187,0.03,0.07,'N','O','1998-03-06','1998-02-22','1998-03-14','NONE','TRUCK','asymptotes nag. bl'), +(3937,193,6,6,6,6559.14,0,0,'N','O','1998-01-24','1998-02-13','1998-01-27','DELIVER IN PERSON','FOB','regular do'), +(3937,164,9,7,1,1064.16,0.02,0.05,'N','O','1998-03-29','1998-01-08','1998-04-27','TAKE BACK RETURN','TRUCK','idly bold instructions haggl'), +(3938,159,4,1,46,48720.9,0.1,0.07,'R','F','1993-05-20','1993-05-04','1993-06-12','DELIVER IN PERSON','FOB','regular, ironic decoys maintain carefull'), +(3939,160,8,1,8,8481.28,0.03,0.06,'N','O','1996-01-29','1996-04-05','1996-02-26','COLLECT COD','REG AIR','carefully exp'), +(3940,178,7,1,33,35579.61,0.1,0.07,'N','O','1996-05-19','1996-04-19','1996-05-23','TAKE BACK RETURN','RAIL','regular packages use quickly blithely expr'), +(3940,69,4,2,40,38762.4,0.08,0.02,'N','O','1996-02-29','1996-03-22','1996-03-04','NONE','MAIL','furiously regular accounts abou'), +(3940,89,10,3,8,7912.64,0.07,0.08,'N','O','1996-04-04','1996-04-12','1996-04-18','DELIVER IN PERSON','RAIL','furiously bold multipliers above the ca'), +(3940,137,3,4,11,11408.43,0.09,0.05,'N','O','1996-03-09','1996-05-13','1996-03-17','COLLECT COD','REG AIR','slyly unusual requests cajole. '), +(3940,1,6,5,41,36941,0,0.07,'N','O','1996-05-08','1996-05-03','1996-06-03','COLLECT COD','MAIL','slyly regular orbits will ca'), +(3941,41,2,1,47,44228.88,0.05,0.07,'N','O','1996-11-24','1996-10-09','1996-12-22','DELIVER IN PERSON','RAIL','ironic requests wake blithely against the r'), +(3941,123,6,2,19,19439.28,0.05,0,'N','O','1996-11-10','1996-10-26','1996-12-05','COLLECT COD','RAIL','furiously brave'); +INSERT INTO lineitem VALUES +(3941,10,3,3,2,1820.02,0.01,0.03,'N','O','1996-12-04','1996-10-01','1996-12-25','NONE','REG AIR','deposits doubt fluffil'), +(3941,110,7,4,29,29293.19,0,0.03,'N','O','1996-09-14','1996-10-04','1996-09-19','NONE','MAIL','carefully final instructions use '), +(3942,183,4,1,6,6499.08,0.05,0.05,'A','F','1993-07-01','1993-09-14','1993-07-23','DELIVER IN PERSON','SHIP','slyly fluf'), +(3942,194,7,2,5,5470.95,0.06,0.02,'R','F','1993-09-27','1993-09-24','1993-10-07','DELIVER IN PERSON','MAIL','ironic sentiments above the carefully d'), +(3942,156,4,3,25,26403.75,0.04,0.06,'R','F','1993-09-13','1993-08-01','1993-09-29','COLLECT COD','RAIL','slyly regular platelets'), +(3943,198,2,1,15,16472.85,0.03,0.01,'N','O','1997-01-13','1996-12-17','1997-02-02','COLLECT COD','REG AIR','slyly pending accounts haggle carefully ac'), +(3943,96,7,2,9,8964.81,0,0.06,'N','O','1996-11-27','1997-01-03','1996-12-17','COLLECT COD','RAIL','furiously final instructions '), +(3943,17,4,3,32,29344.32,0,0.02,'N','O','1996-10-22','1996-12-17','1996-11-04','TAKE BACK RETURN','TRUCK','slyly final deposits w'), +(3943,50,1,4,5,4750.25,0.04,0.04,'N','O','1997-01-09','1996-11-10','1997-02-06','COLLECT COD','RAIL','thinly speci'), +(3968,54,2,1,27,25759.35,0.04,0.05,'N','O','1997-04-25','1997-04-17','1997-05-11','TAKE BACK RETURN','MAIL','special accounts could have to h'), +(3968,26,9,2,45,41670.9,0,0.07,'N','O','1997-06-18','1997-04-24','1997-06-25','DELIVER IN PERSON','FOB','fluffily express accounts across th'), +(3968,156,7,3,43,45414.45,0.07,0.06,'N','O','1997-04-30','1997-05-14','1997-05-18','TAKE BACK RETURN','SHIP','furiously reg'), +(3968,61,8,4,7,6727.42,0.07,0.02,'N','O','1997-03-30','1997-05-01','1997-04-12','DELIVER IN PERSON','SHIP','fluffily regular platelets nod'), +(3969,52,4,1,39,37129.95,0.04,0.04,'N','O','1997-06-12','1997-06-13','1997-07-05','NONE','MAIL','blithely regular requests wake slyly even'), +(3969,197,1,2,26,28526.94,0.05,0.03,'N','O','1997-07-08','1997-07-30','1997-07-10','TAKE BACK RETURN','AIR','ironic deposits cajole slyly about t'), +(3969,79,8,3,46,45037.22,0.04,0.02,'N','O','1997-05-29','1997-06-15','1997-06-10','TAKE BACK RETURN','SHIP','blithely special ideas along the br'), +(3969,151,9,4,21,22074.15,0.07,0.04,'N','O','1997-08-31','1997-07-16','1997-09-02','TAKE BACK RETURN','MAIL','deposits may sleep carefully bold idea'), +(3969,72,3,5,40,38882.8,0.09,0,'N','O','1997-05-19','1997-08-02','1997-06-05','COLLECT COD','TRUCK','furiously regular depo'), +(3969,105,8,6,4,4020.4,0.02,0.01,'N','O','1997-06-04','1997-07-31','1997-06-13','COLLECT COD','REG AIR','accounts detect pending accounts. blithely'), +(3970,88,9,1,2,1976.16,0.01,0.07,'R','F','1992-04-24','1992-06-03','1992-05-16','TAKE BACK RETURN','RAIL','instructions sleep above the '), +(3970,109,6,2,18,18163.8,0.03,0.08,'A','F','1992-06-06','1992-06-18','1992-07-05','DELIVER IN PERSON','TRUCK','even depths'), +(3970,154,6,3,10,10541.5,0.1,0.04,'A','F','1992-07-01','1992-05-31','1992-07-02','NONE','AIR','fluffily quiet accounts sleep'), +(3970,22,5,4,34,31348.68,0.05,0,'A','F','1992-06-25','1992-05-23','1992-07-12','COLLECT COD','SHIP','pending requests detect '), +(3970,30,3,5,23,21390.69,0.05,0.04,'A','F','1992-06-04','1992-06-14','1992-06-13','COLLECT COD','TRUCK','carefully special excuses cajol'), +(3970,9,6,6,46,41814,0.07,0.04,'R','F','1992-04-29','1992-05-14','1992-05-24','NONE','FOB','carefully regular foxes cajole b'), +(3970,5,8,7,46,41630,0.08,0.08,'R','F','1992-05-02','1992-05-12','1992-05-10','COLLECT COD','MAIL','furiously eve'), +(3971,96,8,1,47,46816.23,0.06,0.04,'N','O','1996-07-07','1996-08-08','1996-08-01','TAKE BACK RETURN','RAIL','slyly unusual instructions use car'), +(3971,191,5,2,2,2182.38,0.04,0.03,'N','O','1996-07-15','1996-08-12','1996-07-26','NONE','SHIP','even accounts above the '), +(3972,51,3,1,2,1902.1,0.05,0.03,'A','F','1994-07-24','1994-06-30','1994-08-13','TAKE BACK RETURN','SHIP','brave dependencies c'); +INSERT INTO lineitem VALUES +(3973,30,9,1,21,19530.63,0.02,0.06,'R','F','1992-06-18','1992-06-03','1992-07-02','COLLECT COD','REG AIR','furiously regular requests sleep iro'), +(3973,115,2,2,37,37559.07,0.07,0,'A','F','1992-05-29','1992-05-04','1992-06-23','TAKE BACK RETURN','SHIP','ironic, ruthless packages cajole'), +(3973,40,6,3,40,37601.6,0.08,0.05,'R','F','1992-05-03','1992-06-09','1992-05-21','COLLECT COD','RAIL','requests nag furiously'), +(3974,22,1,1,47,43334.94,0.1,0.03,'N','O','1996-06-03','1996-05-08','1996-06-28','NONE','TRUCK','blithely ir'), +(3974,61,8,2,17,16338.02,0.05,0.07,'N','O','1996-04-05','1996-05-21','1996-04-28','COLLECT COD','TRUCK','fluffily ironic foxes are slyly. blit'), +(3975,57,9,1,38,36367.9,0.01,0.05,'N','O','1995-08-02','1995-06-18','1995-08-19','COLLECT COD','TRUCK','ironic pinto beans snooze ironic accoun'), +(4000,196,7,1,41,44943.79,0.06,0.01,'A','F','1992-03-02','1992-03-14','1992-03-27','COLLECT COD','FOB','pending dugouts are blithely regular foxe'), +(4000,75,5,2,44,42903.08,0.09,0.06,'A','F','1992-03-27','1992-02-18','1992-03-31','COLLECT COD','AIR','special pack'), +(4001,106,1,1,26,26158.6,0,0.01,'N','O','1997-07-26','1997-06-18','1997-08-08','DELIVER IN PERSON','RAIL','deposits cajole. theodolites aff'), +(4001,41,10,2,19,17879.76,0.03,0.02,'N','O','1997-08-23','1997-06-15','1997-09-18','COLLECT COD','SHIP','furiously ir'), +(4001,94,5,3,18,17893.62,0.07,0,'N','O','1997-06-04','1997-06-22','1997-06-13','DELIVER IN PERSON','MAIL','furiously express foxes are fluffily '), +(4001,2,9,4,39,35178,0,0,'N','O','1997-06-13','1997-06-17','1997-06-25','NONE','SHIP','blithely regular accounts aff'), +(4002,111,5,1,35,35388.85,0.01,0.08,'N','O','1997-05-16','1997-06-15','1997-06-02','DELIVER IN PERSON','TRUCK','foxes nag slyly'), +(4002,198,9,2,20,21963.8,0,0.03,'N','O','1997-06-15','1997-05-20','1997-07-11','NONE','MAIL','blithely fin'), +(4002,40,1,3,6,5640.24,0.08,0.07,'N','O','1997-05-02','1997-07-07','1997-05-16','TAKE BACK RETURN','RAIL','carefully brave deposits again'), +(4002,199,3,4,6,6595.14,0.06,0.06,'N','O','1997-07-01','1997-05-15','1997-07-31','NONE','MAIL','carefully '), +(4002,99,1,5,4,3996.36,0.08,0.07,'N','O','1997-05-06','1997-06-15','1997-05-24','NONE','REG AIR','slyly bold frays sleep finally accord'), +(4003,52,4,1,18,17136.9,0.04,0.07,'R','F','1993-02-02','1993-04-15','1993-02-28','TAKE BACK RETURN','AIR','regular, dogged platelets are careful'), +(4004,121,2,1,23,23485.76,0.07,0.02,'A','F','1993-08-12','1993-07-13','1993-08-16','TAKE BACK RETURN','TRUCK','even theodolites cajole slyly '), +(4004,64,5,2,47,45310.82,0.07,0.04,'R','F','1993-06-25','1993-08-03','1993-07-12','NONE','SHIP','even, regular packages are slyly '), +(4004,114,5,3,39,39550.29,0.1,0.05,'R','F','1993-07-12','1993-07-27','1993-07-18','NONE','MAIL','carefully fina'), +(4004,74,4,4,46,44807.22,0.1,0.04,'R','F','1993-09-04','1993-07-13','1993-09-28','COLLECT COD','FOB','slyly final accounts cajole fluffily bl'), +(4004,155,3,5,9,9496.35,0.04,0.06,'A','F','1993-08-25','1993-06-10','1993-09-24','COLLECT COD','MAIL','slyly bold requests do wake. '), +(4004,161,10,6,44,46691.04,0.07,0.05,'R','F','1993-07-25','1993-07-23','1993-08-16','TAKE BACK RETURN','REG AIR','carefully special hockey players'), +(4004,126,9,7,20,20522.4,0.07,0.05,'A','F','1993-06-19','1993-06-14','1993-07-04','COLLECT COD','REG AIR','pinto beans are deposits. ir'), +(4005,4,1,1,26,23504,0.09,0.05,'N','O','1996-12-01','1997-02-03','1996-12-15','NONE','REG AIR','furiously special courts will'), +(4005,17,8,2,28,25676.28,0.02,0.06,'N','O','1996-12-11','1997-01-24','1996-12-17','DELIVER IN PERSON','REG AIR','fluffily express theodolites about '), +(4005,72,10,3,28,27217.96,0.03,0.01,'N','O','1996-12-08','1997-01-14','1996-12-30','TAKE BACK RETURN','MAIL','final requests wake q'), +(4005,15,9,4,49,44835.49,0.09,0,'N','O','1997-01-31','1996-12-24','1997-03-02','NONE','RAIL','dependencies '), +(4005,6,7,5,14,12684,0.09,0.08,'N','O','1996-11-27','1997-01-09','1996-12-25','NONE','TRUCK','slyly final deposits a'); +INSERT INTO lineitem VALUES +(4006,55,7,1,11,10505.55,0.05,0.08,'A','F','1995-04-29','1995-02-21','1995-05-20','TAKE BACK RETURN','RAIL','ironic warhorses use quickly after the car'), +(4006,159,4,2,18,19064.7,0.05,0.03,'A','F','1995-01-29','1995-03-08','1995-02-02','TAKE BACK RETURN','MAIL','sly, regular reques'), +(4006,24,5,3,15,13860.3,0.01,0.02,'R','F','1995-02-23','1995-04-02','1995-02-25','TAKE BACK RETURN','RAIL','regular accounts use blithely carefu'), +(4006,114,5,4,25,25352.75,0,0.07,'A','F','1995-02-23','1995-02-09','1995-02-24','DELIVER IN PERSON','SHIP','final deposits grow'), +(4007,57,2,1,32,30625.6,0,0.03,'R','F','1993-09-30','1993-08-16','1993-10-03','DELIVER IN PERSON','RAIL','special, express ideas boost around t'), +(4007,116,10,2,41,41660.51,0.04,0.06,'A','F','1993-10-11','1993-08-30','1993-11-04','DELIVER IN PERSON','TRUCK','blithely final depos'), +(4007,102,9,3,5,5010.5,0.09,0.06,'A','F','1993-09-17','1993-08-29','1993-10-12','TAKE BACK RETURN','FOB','carefully regular asymptotes sleep '), +(4007,138,4,4,15,15571.95,0.05,0.02,'A','F','1993-09-01','1993-07-19','1993-09-03','DELIVER IN PERSON','FOB','thinly ironic accounts abov'), +(4007,26,7,5,23,21298.46,0.02,0.07,'A','F','1993-10-08','1993-09-09','1993-10-23','COLLECT COD','MAIL','special excuses are. ironic deposits beli'), +(4032,102,3,1,8,8016.8,0.06,0,'N','O','1998-06-04','1998-05-17','1998-07-03','TAKE BACK RETURN','RAIL','blithely final deposits nag slyly across '), +(4032,2,9,2,27,24354,0.09,0,'N','O','1998-05-31','1998-04-19','1998-06-24','COLLECT COD','REG AIR','fluffily regular'), +(4032,154,2,3,23,24245.45,0.09,0.06,'N','O','1998-06-12','1998-05-11','1998-06-24','COLLECT COD','MAIL','slyly regular '), +(4032,85,6,4,10,9850.8,0.09,0.05,'N','O','1998-03-31','1998-04-22','1998-04-07','NONE','REG AIR','blithely bold requests s'), +(4033,110,1,1,27,27272.97,0.01,0.04,'R','F','1993-08-08','1993-08-14','1993-08-09','NONE','AIR','silent requests affix blit'), +(4033,38,4,2,34,31893.02,0.07,0,'R','F','1993-07-19','1993-08-05','1993-07-26','NONE','RAIL','quickly final pinto beans use furio'), +(4034,190,1,1,48,52329.12,0.03,0.03,'A','F','1994-03-01','1994-01-16','1994-03-16','NONE','RAIL','doggedly special platelets are '), +(4034,57,5,2,47,44981.35,0.07,0.05,'A','F','1994-01-27','1993-12-26','1994-02-04','NONE','TRUCK','blithely sly platelets boost. blithely ir'), +(4034,54,5,3,43,41024.15,0.1,0.03,'A','F','1993-11-29','1994-01-08','1993-12-10','DELIVER IN PERSON','FOB','final ideas are i'), +(4034,28,9,4,46,42688.92,0.06,0,'A','F','1994-02-22','1994-01-09','1994-03-04','DELIVER IN PERSON','AIR','fluffily sly de'), +(4034,196,10,5,7,7673.33,0.07,0.06,'R','F','1994-03-04','1994-01-22','1994-04-01','NONE','AIR','blithely qu'), +(4034,50,9,6,5,4750.25,0.01,0.06,'A','F','1994-02-12','1994-01-24','1994-02-13','COLLECT COD','AIR','carefully b'), +(4035,97,8,1,4,3988.36,0.08,0.03,'R','F','1992-04-21','1992-04-23','1992-04-25','COLLECT COD','AIR','slyly expre'), +(4035,136,7,2,4,4144.52,0.07,0,'A','F','1992-05-21','1992-04-24','1992-05-24','DELIVER IN PERSON','FOB','slyly bold courts boost fluffily '), +(4035,118,8,3,1,1018.11,0.03,0.01,'R','F','1992-06-18','1992-05-19','1992-07-02','COLLECT COD','FOB','regular packages sleep '), +(4035,182,3,4,13,14068.34,0,0.01,'R','F','1992-06-10','1992-05-16','1992-07-10','NONE','SHIP','regular platelets haggle around the bra'), +(4036,6,1,1,46,41676,0.09,0,'N','O','1997-06-21','1997-05-29','1997-07-18','NONE','REG AIR','slyly express re'), +(4036,53,1,2,21,20014.05,0.09,0.07,'N','O','1997-08-08','1997-06-28','1997-08-09','COLLECT COD','MAIL','final, silent packages sleep fu'), +(4036,142,3,3,6,6252.84,0.07,0.01,'N','O','1997-06-19','1997-06-16','1997-07-01','DELIVER IN PERSON','SHIP','fluffily regular packages cajole fluffi'), +(4036,127,10,4,20,20542.4,0.08,0.02,'N','O','1997-08-11','1997-07-11','1997-09-03','NONE','TRUCK','slyly pending'), +(4037,64,9,1,32,30849.92,0,0.06,'A','F','1993-05-06','1993-06-08','1993-05-31','DELIVER IN PERSON','AIR','slyly ironic deposits cajole f'); +INSERT INTO lineitem VALUES +(4037,47,8,2,4,3788.16,0.09,0.07,'A','F','1993-07-05','1993-06-12','1993-08-03','DELIVER IN PERSON','RAIL','quickly even instructions haggle after '), +(4038,196,10,1,40,43847.6,0.05,0.01,'N','O','1996-01-15','1996-03-13','1996-01-25','COLLECT COD','TRUCK','fluffily regular instructions sleep ca'), +(4038,12,9,2,37,33744.37,0.04,0.03,'N','O','1996-03-17','1996-03-19','1996-04-07','DELIVER IN PERSON','REG AIR','final instructions cajole '), +(4038,32,3,3,24,22368.72,0.1,0.04,'N','O','1996-04-06','1996-02-15','1996-04-18','TAKE BACK RETURN','RAIL','quickly regular dependencies '), +(4038,150,1,4,29,30454.35,0.07,0.06,'N','O','1996-01-07','1996-03-08','1996-01-13','NONE','FOB','blithely special requests'), +(4038,79,7,5,24,23497.68,0.07,0.06,'N','O','1996-04-01','1996-04-05','1996-04-28','DELIVER IN PERSON','TRUCK','special packages sleep'), +(4038,36,2,6,6,5616.18,0.07,0.05,'N','O','1996-02-09','1996-03-05','1996-03-10','COLLECT COD','SHIP','platelets wake fluffily regul'), +(4039,94,5,1,38,37775.42,0.03,0.06,'N','O','1998-03-09','1997-12-31','1998-03-21','DELIVER IN PERSON','REG AIR','furiously even pinto beans after '), +(4039,122,5,2,17,17376.04,0.1,0.04,'N','O','1998-01-15','1998-01-20','1998-01-28','TAKE BACK RETURN','MAIL','special requests solve slyly alongside of t'), +(4039,64,1,3,9,8676.54,0.1,0.01,'N','O','1998-03-08','1998-02-05','1998-04-05','TAKE BACK RETURN','FOB','carefully even excuses a'), +(4039,28,3,4,43,39904.86,0.01,0.02,'N','O','1998-01-02','1997-12-22','1998-01-15','NONE','FOB','quickly express requests was. furiously eve'), +(4039,134,5,5,43,44467.59,0.09,0,'N','O','1998-01-20','1998-01-11','1998-02-05','COLLECT COD','SHIP','furiously regular ideas mold quickly a'), +(4064,199,1,1,3,3297.57,0.1,0.04,'N','O','1997-01-04','1997-01-01','1997-01-23','NONE','SHIP','quickly express depos'), +(4064,40,6,2,15,14100.6,0.02,0.02,'N','O','1996-11-09','1996-12-04','1996-11-18','DELIVER IN PERSON','MAIL','even, regular excuses doze carefully a'), +(4064,197,10,3,32,35110.08,0.04,0.07,'N','O','1997-01-14','1997-01-01','1997-01-21','COLLECT COD','REG AIR','slyly ironic a'), +(4064,163,8,4,24,25515.84,0.02,0.02,'N','O','1997-01-01','1996-12-31','1997-01-23','DELIVER IN PERSON','SHIP','blithely pending requests must have t'), +(4064,21,2,5,12,11052.24,0.08,0.08,'N','O','1997-02-08','1996-12-18','1997-03-06','TAKE BACK RETURN','RAIL','express dependencies along'), +(4064,184,5,6,46,49872.28,0.03,0,'N','O','1996-10-13','1997-01-05','1996-11-06','DELIVER IN PERSON','REG AIR','carefully ironic'), +(4064,200,2,7,9,9901.8,0.01,0.06,'N','O','1996-12-17','1996-12-13','1997-01-12','NONE','AIR','express requests above the furiously regula'), +(4065,138,9,1,14,14533.82,0.04,0.02,'A','F','1994-08-22','1994-07-29','1994-09-19','DELIVER IN PERSON','TRUCK','asymptotes aff'), +(4065,15,6,2,46,42090.46,0.03,0.05,'A','F','1994-06-29','1994-08-01','1994-07-03','TAKE BACK RETURN','SHIP','slyly ironic instructions across the slyl'), +(4065,97,10,3,33,32903.97,0,0.03,'A','F','1994-09-03','1994-08-16','1994-09-13','DELIVER IN PERSON','AIR','even packages are blithely. daringl'), +(4065,107,2,4,8,8056.8,0,0.01,'R','F','1994-10-04','1994-08-05','1994-10-25','TAKE BACK RETURN','SHIP','carefully bold grouches sleep flu'), +(4065,123,4,5,29,29670.48,0.02,0.07,'A','F','1994-06-29','1994-08-19','1994-07-17','NONE','RAIL','regular requests sublate blit'), +(4065,110,5,6,16,16161.76,0.05,0,'R','F','1994-08-25','1994-08-06','1994-09-09','COLLECT COD','TRUCK','bold instructions '), +(4065,144,7,7,11,11485.54,0.1,0.04,'A','F','1994-07-25','1994-08-02','1994-07-30','NONE','RAIL','packages haggl'), +(4066,139,5,1,9,9352.17,0.01,0.05,'N','O','1997-05-06','1997-03-25','1997-05-27','COLLECT COD','FOB','regular exc'), +(4066,93,5,2,19,18868.71,0.05,0,'N','O','1997-05-13','1997-04-17','1997-06-08','NONE','TRUCK','bold, regular'), +(4066,76,5,3,8,7808.56,0.03,0.03,'N','O','1997-04-24','1997-03-11','1997-05-20','NONE','REG AIR','blithely bold instructions boost s'); +INSERT INTO lineitem VALUES +(4066,179,9,4,49,52879.33,0.01,0.01,'N','O','1997-02-17','1997-03-24','1997-02-19','NONE','TRUCK','deposits about the ironic requests cajole '), +(4066,171,2,5,43,46060.31,0.05,0.02,'N','O','1997-02-16','1997-04-14','1997-02-18','DELIVER IN PERSON','MAIL','blithely ironic requests affix furio'), +(4066,109,2,6,44,44400.4,0.01,0,'N','O','1997-03-01','1997-04-27','1997-03-29','DELIVER IN PERSON','MAIL','regular, pending packages wake furious'), +(4067,180,1,1,18,19443.24,0.03,0.08,'A','F','1993-01-24','1992-12-23','1993-02-20','TAKE BACK RETURN','FOB','furiously ironic sauternes affix car'), +(4067,96,10,2,14,13945.26,0,0,'R','F','1993-02-03','1992-12-02','1993-02-07','TAKE BACK RETURN','TRUCK','blithely ironic accounts on the packages '), +(4067,141,10,3,17,17699.38,0.03,0.05,'A','F','1993-01-26','1992-11-23','1993-01-27','NONE','REG AIR','furiously ironic deposits cajole quickly '), +(4067,90,1,4,40,39603.6,0.07,0.08,'R','F','1993-01-09','1992-11-21','1993-01-16','DELIVER IN PERSON','TRUCK','slyly final requests'), +(4067,85,6,5,17,16746.36,0.08,0.03,'A','F','1993-01-20','1992-12-29','1993-02-03','DELIVER IN PERSON','REG AIR','slyly express acc'), +(4067,96,8,6,12,11953.08,0.04,0.03,'A','F','1992-12-12','1992-11-28','1992-12-15','DELIVER IN PERSON','AIR','requests cajole slyly. bl'), +(4067,83,4,7,17,16712.36,0.01,0.01,'R','F','1992-12-12','1992-12-23','1992-12-30','NONE','AIR','carefully express deposits about '), +(4068,110,1,1,43,43434.73,0.05,0.06,'N','O','1996-11-28','1996-11-16','1996-12-22','NONE','AIR','slyly express theodo'), +(4068,57,5,2,31,29668.55,0.08,0.03,'N','O','1996-12-11','1996-12-07','1996-12-30','NONE','SHIP','silent, silent requests sl'), +(4069,129,2,1,39,40135.68,0.09,0.02,'R','F','1992-09-06','1992-07-22','1992-09-25','COLLECT COD','SHIP','final accounts are acco'), +(4069,43,4,2,32,30177.28,0.1,0.08,'A','F','1992-06-18','1992-07-20','1992-07-07','TAKE BACK RETURN','TRUCK','unusual packages cajole quickly du'), +(4069,186,7,3,3,3258.54,0.06,0.01,'R','F','1992-07-26','1992-07-07','1992-08-04','COLLECT COD','FOB','foxes according '), +(4069,79,8,4,22,21539.54,0.1,0.05,'A','F','1992-08-05','1992-08-04','1992-08-25','COLLECT COD','SHIP','silent instru'), +(4069,157,5,5,50,52857.5,0.09,0.06,'A','F','1992-07-26','1992-06-30','1992-08-01','TAKE BACK RETURN','REG AIR','quickly even foxes haggle carefully pac'), +(4069,125,8,6,3,3075.36,0.02,0.01,'A','F','1992-05-24','1992-06-18','1992-06-12','COLLECT COD','MAIL','carefully ironic accounts cajol'), +(4069,184,5,7,50,54209,0,0.01,'R','F','1992-09-03','1992-06-14','1992-10-01','NONE','REG AIR','idly ironi'), +(4070,183,4,1,2,2166.36,0.09,0.08,'N','O','1995-08-03','1995-09-10','1995-08-17','TAKE BACK RETURN','REG AIR','final ideas w'), +(4070,155,3,2,40,42206,0.07,0.07,'N','O','1995-07-13','1995-07-23','1995-08-06','COLLECT COD','MAIL','asymptotes are carefully slyly ironic'), +(4070,62,3,3,11,10582.66,0,0.08,'N','O','1995-08-23','1995-08-15','1995-08-31','TAKE BACK RETURN','MAIL','quickly even ideas affix.'), +(4070,29,4,4,46,42734.92,0.02,0.02,'N','O','1995-06-22','1995-07-14','1995-07-11','DELIVER IN PERSON','REG AIR','instructions across the carefu'), +(4071,112,2,1,22,22266.42,0.02,0.07,'N','O','1996-10-31','1996-12-14','1996-11-05','NONE','REG AIR','deposits ea'), +(4071,18,8,2,47,43146.47,0,0.03,'N','O','1996-11-04','1996-12-09','1996-11-16','NONE','TRUCK','bravely re'), +(4096,27,10,1,31,28737.62,0.1,0.02,'A','F','1992-07-14','1992-09-03','1992-07-31','COLLECT COD','TRUCK','bold packages wake blith'), +(4096,57,9,2,17,16269.85,0.07,0.03,'R','F','1992-09-30','1992-08-11','1992-10-11','TAKE BACK RETURN','REG AIR','regular packages'), +(4096,9,10,3,21,19089,0.08,0,'A','F','1992-08-24','1992-09-04','1992-09-11','DELIVER IN PERSON','MAIL','final foxes are blithely final '), +(4096,128,3,4,20,20562.4,0.02,0.07,'R','F','1992-08-24','1992-09-13','1992-08-28','DELIVER IN PERSON','TRUCK','pending accoun'), +(4097,74,5,1,50,48703.5,0.04,0.04,'N','O','1996-08-31','1996-08-14','1996-09-27','DELIVER IN PERSON','MAIL','ironic ideas'); +INSERT INTO lineitem VALUES +(4097,74,4,2,46,44807.22,0.1,0.01,'N','O','1996-07-29','1996-08-19','1996-08-25','COLLECT COD','AIR','regular theodolites unwind thinly qu'), +(4097,174,2,3,42,45115.14,0.06,0.06,'N','O','1996-08-11','1996-07-30','1996-08-15','NONE','FOB','daring warthogs among the slyly express pi'), +(4098,200,1,1,46,50609.2,0.07,0.03,'N','O','1997-01-26','1997-01-27','1997-02-13','TAKE BACK RETURN','SHIP','carefully '), +(4099,4,7,1,29,26216,0.09,0.07,'R','F','1992-11-21','1992-11-04','1992-11-30','NONE','FOB','final, bold dugou'), +(4099,137,3,2,3,3111.39,0.04,0.06,'A','F','1992-09-12','1992-10-18','1992-10-01','NONE','RAIL','furiously regular accounts nag f'), +(4099,51,3,3,36,34237.8,0.06,0.06,'R','F','1992-11-06','1992-09-28','1992-12-02','NONE','FOB','pending dinos sleep furi'), +(4099,139,5,4,7,7273.91,0.05,0.02,'A','F','1992-09-12','1992-11-13','1992-09-14','TAKE BACK RETURN','AIR','carefully final theodolites us'), +(4099,163,10,5,48,51031.68,0,0.02,'R','F','1992-10-18','1992-10-14','1992-11-01','NONE','REG AIR','slyly daring requests'), +(4099,59,10,6,39,37402.95,0.07,0.02,'R','F','1992-12-13','1992-11-13','1992-12-26','DELIVER IN PERSON','REG AIR','ironic, spe'), +(4099,180,8,7,46,49688.28,0.06,0.07,'R','F','1992-10-29','1992-11-03','1992-11-10','DELIVER IN PERSON','REG AIR','unusual, regular packages '), +(4100,74,5,1,4,3896.28,0.03,0.03,'N','O','1996-06-20','1996-04-29','1996-06-21','TAKE BACK RETURN','FOB','unusual, permanent requests according to'), +(4101,115,2,1,22,22332.42,0.05,0.02,'R','F','1994-02-02','1994-02-19','1994-02-12','COLLECT COD','AIR','carefully express theodoli'), +(4102,10,3,1,17,15470.17,0.02,0.02,'N','O','1996-06-03','1996-05-06','1996-07-02','COLLECT COD','AIR','blithely even packages against the b'), +(4102,69,8,2,5,4845.3,0.08,0.02,'N','O','1996-05-11','1996-05-11','1996-05-16','COLLECT COD','AIR','even requests snooze slyly'), +(4102,67,4,3,39,37715.34,0.08,0.01,'N','O','1996-04-14','1996-05-18','1996-04-20','DELIVER IN PERSON','AIR','blithely eve'), +(4102,140,6,4,39,40565.46,0.02,0,'N','O','1996-06-15','1996-06-06','1996-06-30','DELIVER IN PERSON','SHIP','quickly re'), +(4102,1,6,5,32,28832,0.08,0.01,'N','O','1996-05-14','1996-04-29','1996-05-29','NONE','RAIL','furiously unusual dep'), +(4102,137,8,6,7,7259.91,0.02,0.01,'N','O','1996-06-19','1996-05-21','1996-07-15','NONE','REG AIR','platelets are quickly against the furiously'), +(4103,75,4,1,40,39002.8,0.05,0.03,'R','F','1992-09-19','1992-08-14','1992-09-21','COLLECT COD','RAIL','idle, final pinto beans print furiously dar'), +(4128,196,8,1,5,5480.95,0.04,0.04,'N','O','1995-10-18','1995-11-28','1995-10-28','TAKE BACK RETURN','FOB','ironic, special platelet'), +(4129,56,8,1,32,30593.6,0.03,0.04,'A','F','1993-09-16','1993-08-25','1993-09-25','TAKE BACK RETURN','MAIL','ironic tithes'), +(4129,27,6,2,39,36153.78,0.06,0.07,'R','F','1993-10-21','1993-08-04','1993-10-29','COLLECT COD','MAIL','thin deposits wake. slyly regular pinto b'), +(4130,178,6,1,44,47439.48,0.07,0.04,'N','O','1996-05-14','1996-04-15','1996-05-15','COLLECT COD','TRUCK','blithely regular packages su'), +(4130,63,10,2,2,1926.12,0.05,0.06,'N','O','1996-05-19','1996-04-24','1996-06-17','TAKE BACK RETURN','RAIL','slyly ironic platelets breach quickly '), +(4131,50,7,1,6,5700.3,0.05,0.01,'N','O','1998-04-27','1998-04-18','1998-04-29','TAKE BACK RETURN','MAIL','quickly even deposit'), +(4131,178,8,2,32,34501.44,0.08,0.01,'N','O','1998-03-02','1998-03-21','1998-03-07','TAKE BACK RETURN','TRUCK','carefully unusual requests detect blithe'), +(4131,26,9,3,25,23150.5,0.02,0.07,'N','O','1998-02-24','1998-03-01','1998-02-27','TAKE BACK RETURN','FOB','slyly even packages use caref'), +(4131,36,7,4,8,7488.24,0.04,0.01,'N','O','1998-03-03','1998-03-15','1998-03-26','COLLECT COD','FOB','slyly pending platelets can bo'), +(4131,125,6,5,30,30753.6,0.01,0.01,'N','O','1998-04-01','1998-04-13','1998-04-08','TAKE BACK RETURN','FOB','slyly pending foxe'), +(4131,102,7,6,47,47098.7,0.02,0,'N','O','1998-03-09','1998-04-05','1998-03-13','TAKE BACK RETURN','RAIL','final, even deposits a'); +INSERT INTO lineitem VALUES +(4132,138,4,1,28,29067.64,0.07,0.03,'N','O','1995-08-16','1995-08-01','1995-08-29','TAKE BACK RETURN','SHIP','bold deposits haggle fluffily accordin'), +(4132,15,5,2,23,21045.23,0.07,0.07,'N','O','1995-06-27','1995-07-27','1995-07-13','TAKE BACK RETURN','FOB','furiously ironi'), +(4132,87,8,3,18,17767.44,0.09,0.04,'A','F','1995-06-01','1995-08-01','1995-06-02','TAKE BACK RETURN','RAIL','silent theodo'), +(4133,24,5,1,35,32340.7,0.02,0,'A','F','1992-11-25','1992-09-15','1992-12-25','NONE','AIR','carefully slow asymptotes wake afte'), +(4134,121,4,1,34,34718.08,0.02,0.05,'R','F','1995-04-29','1995-03-13','1995-05-11','DELIVER IN PERSON','FOB','regular account'), +(4134,96,10,2,34,33867.06,0.01,0.03,'A','F','1995-05-06','1995-03-28','1995-05-13','DELIVER IN PERSON','SHIP','furiously final somas sleep regular asy'), +(4134,171,9,3,12,12854.04,0.05,0.04,'A','F','1995-03-19','1995-03-27','1995-04-14','COLLECT COD','TRUCK','final foxes despite the blithely bold r'), +(4134,100,4,4,45,45004.5,0.08,0.02,'A','F','1995-04-11','1995-03-27','1995-04-17','TAKE BACK RETURN','MAIL','carefully ironic'), +(4135,2,3,1,23,20746,0.06,0.01,'N','O','1997-04-09','1997-05-12','1997-04-16','TAKE BACK RETURN','FOB','fluffily ironic accou'), +(4135,120,1,2,32,32643.84,0.07,0,'N','O','1997-03-14','1997-04-23','1997-04-12','TAKE BACK RETURN','TRUCK','accounts run s'), +(4135,160,5,3,33,34985.28,0.05,0.05,'N','O','1997-05-01','1997-05-23','1997-05-23','DELIVER IN PERSON','AIR','blithely final'), +(4135,195,6,4,13,14237.47,0.04,0.07,'N','O','1997-03-16','1997-05-19','1997-04-03','COLLECT COD','RAIL','express requests wake q'), +(4160,113,10,1,25,25327.75,0.1,0.04,'N','O','1996-09-22','1996-10-17','1996-09-24','NONE','SHIP','carefully bold deposits about the foxe'), +(4160,122,7,2,12,12265.44,0,0.03,'N','O','1996-11-22','1996-09-25','1996-12-10','DELIVER IN PERSON','REG AIR','furiously even deposits wake among t'), +(4160,63,4,3,48,46226.88,0.04,0.04,'N','O','1996-09-19','1996-11-02','1996-09-24','COLLECT COD','FOB','carefully regular r'), +(4161,122,7,1,12,12265.44,0.08,0.02,'R','F','1993-08-25','1993-10-04','1993-09-22','COLLECT COD','RAIL','even theodolites thrash furiously arou'), +(4161,28,3,2,47,43616.94,0.05,0,'A','F','1993-12-20','1993-10-29','1994-01-19','TAKE BACK RETURN','RAIL','pending courts boost slyly '), +(4161,138,4,3,42,43601.46,0.03,0.04,'R','F','1993-11-12','1993-10-04','1993-11-27','COLLECT COD','MAIL','carefully silent pinto beans haggle quickly'), +(4161,10,5,4,45,40950.45,0.02,0.06,'A','F','1993-10-22','1993-10-17','1993-10-30','COLLECT COD','REG AIR','express deposits '), +(4161,29,10,5,46,42734.92,0.05,0.01,'A','F','1993-11-09','1993-11-17','1993-11-17','TAKE BACK RETURN','TRUCK','pending, final requests above the ca'), +(4161,148,9,6,19,19914.66,0.07,0,'R','F','1993-08-22','1993-11-11','1993-09-01','TAKE BACK RETURN','REG AIR','pinto beans above the fluffil'), +(4162,74,3,1,45,43833.15,0.1,0.07,'A','F','1992-03-21','1992-05-02','1992-03-29','DELIVER IN PERSON','AIR','furiously regular platelets a'), +(4162,90,1,2,29,28712.61,0,0.05,'R','F','1992-02-25','1992-04-25','1992-03-17','NONE','REG AIR','final requests haggle stealthily.'), +(4163,33,4,1,13,12129.39,0.08,0.03,'A','F','1993-02-17','1993-03-13','1993-03-15','DELIVER IN PERSON','REG AIR','dependencies except the '), +(4164,120,7,1,9,9181.08,0.07,0.02,'N','O','1998-08-25','1998-08-13','1998-09-19','DELIVER IN PERSON','SHIP','blithely bold ideas cajole slyly '), +(4165,41,2,1,12,11292.48,0,0.01,'N','O','1997-09-20','1997-10-20','1997-10-12','TAKE BACK RETURN','REG AIR','fluffily idle dep'), +(4166,141,10,1,8,8329.12,0,0.08,'A','F','1993-06-05','1993-04-10','1993-07-05','COLLECT COD','MAIL','even pinto'), +(4166,93,5,2,8,7944.72,0.06,0.04,'A','F','1993-06-07','1993-04-17','1993-06-16','DELIVER IN PERSON','REG AIR','forges wake quickly? packages wake '), +(4166,7,10,3,17,15419,0.02,0.06,'R','F','1993-06-29','1993-05-15','1993-07-24','DELIVER IN PERSON','SHIP','quickly sp'); +INSERT INTO lineitem VALUES +(4166,86,7,4,36,35498.88,0.06,0.05,'R','F','1993-03-01','1993-05-25','1993-03-05','COLLECT COD','MAIL','regular theodolites nag. furiously final a'), +(4166,77,6,5,5,4885.35,0.08,0.01,'A','F','1993-06-19','1993-04-24','1993-06-27','NONE','REG AIR','pending pack'), +(4166,102,5,6,6,6012.6,0.04,0.08,'R','F','1993-04-30','1993-04-17','1993-05-08','DELIVER IN PERSON','MAIL','bold, ironic requests boost. final ac'), +(4166,24,5,7,26,24024.52,0.09,0.01,'R','F','1993-03-17','1993-05-09','1993-03-25','NONE','MAIL','requests are fluffily across'), +(4167,61,8,1,47,45169.82,0.04,0.02,'N','O','1998-08-02','1998-08-24','1998-08-28','DELIVER IN PERSON','REG AIR','daring packages cajole d'), +(4167,87,8,2,17,16780.36,0.06,0.07,'N','O','1998-09-18','1998-09-06','1998-10-07','COLLECT COD','REG AIR','stealthily even pinto beans haggle slyly al'), +(4167,73,3,3,1,973.07,0.03,0.06,'N','O','1998-10-11','1998-08-14','1998-10-13','COLLECT COD','TRUCK','somas use alongside of the blit'), +(4192,11,1,1,36,32796.36,0.06,0.08,'N','O','1998-04-25','1998-05-26','1998-05-03','COLLECT COD','TRUCK','forges nod. fluff'), +(4192,121,6,2,15,15316.8,0.04,0.08,'N','O','1998-06-26','1998-05-26','1998-07-16','COLLECT COD','AIR','packages slee'), +(4192,135,6,3,7,7245.91,0.06,0.03,'N','O','1998-05-19','1998-07-08','1998-05-31','COLLECT COD','FOB','carefully bold acc'), +(4192,24,3,4,32,29568.64,0.09,0.04,'N','O','1998-06-23','1998-06-25','1998-07-17','NONE','FOB','even packages after th'), +(4192,48,7,5,48,45505.92,0.08,0.01,'N','O','1998-08-17','1998-07-11','1998-09-03','NONE','AIR','carefully pending deposits might d'), +(4192,150,7,6,44,46206.6,0.1,0.02,'N','O','1998-08-06','1998-07-09','1998-08-20','NONE','FOB','furiously un'), +(4192,170,5,7,27,28894.59,0.02,0,'N','O','1998-07-03','1998-06-26','1998-07-13','TAKE BACK RETURN','AIR','ironic, regular requests haggle blithely'), +(4193,131,7,1,37,38151.81,0.09,0.06,'A','F','1994-04-25','1994-02-24','1994-05-08','NONE','AIR','furiously special accounts across the qu'), +(4193,117,7,2,3,3051.33,0.09,0.05,'R','F','1994-04-29','1994-03-20','1994-05-29','TAKE BACK RETURN','REG AIR','express requests according to the fluf'), +(4193,179,10,3,10,10791.7,0.06,0.03,'A','F','1994-02-10','1994-03-22','1994-03-09','COLLECT COD','RAIL','final epitaphs maintain caref'), +(4193,51,9,4,29,27580.45,0.09,0.05,'A','F','1994-02-11','1994-03-11','1994-03-13','TAKE BACK RETURN','RAIL','daring asymptotes eat blithely a'), +(4193,20,7,5,50,46001,0.01,0.01,'R','F','1994-04-28','1994-03-23','1994-05-09','NONE','FOB','slyly regular packages wake sly'), +(4193,66,1,6,21,20287.26,0.02,0.04,'R','F','1994-04-26','1994-03-22','1994-05-23','DELIVER IN PERSON','TRUCK','quickly unusual requests slee'), +(4194,197,1,1,43,47179.17,0.08,0.06,'A','F','1994-11-06','1994-12-09','1994-11-16','NONE','TRUCK','slyly final packages haggle fl'), +(4194,47,10,2,18,17046.72,0.07,0.07,'A','F','1995-02-14','1994-12-04','1995-03-11','TAKE BACK RETURN','TRUCK','express courts are carefully regul'), +(4195,6,9,1,14,12684,0.09,0.04,'R','F','1993-09-06','1993-07-21','1993-09-18','DELIVER IN PERSON','REG AIR','fluffily unusual dependencies slee'), +(4195,66,1,2,22,21253.32,0.1,0.08,'R','F','1993-07-01','1993-07-23','1993-07-28','COLLECT COD','RAIL','theodolites use.'), +(4195,194,8,3,19,20789.61,0.01,0.06,'R','F','1993-09-06','1993-08-13','1993-09-15','TAKE BACK RETURN','REG AIR','quickly regular ideas '), +(4196,156,4,1,30,31684.5,0.02,0.06,'N','O','1998-08-09','1998-06-30','1998-09-05','COLLECT COD','SHIP','slyly silent a'), +(4196,9,6,2,31,28179,0.09,0.08,'N','O','1998-06-12','1998-07-28','1998-07-11','NONE','MAIL','carefully even courts use blithely amo'), +(4196,178,9,3,46,49595.82,0.05,0,'N','O','1998-09-05','1998-06-28','1998-09-10','TAKE BACK RETURN','MAIL','regular pearls haggle blithely care'), +(4196,114,8,4,42,42592.62,0.04,0.06,'N','O','1998-08-13','1998-07-18','1998-09-07','TAKE BACK RETURN','AIR','furiously bold deposits are slyl'); +INSERT INTO lineitem VALUES +(4196,72,2,5,3,2916.21,0.01,0.03,'N','O','1998-05-17','1998-07-21','1998-05-18','DELIVER IN PERSON','TRUCK','quickly regular instructions affix quick'), +(4196,87,8,6,43,42444.44,0.01,0.06,'N','O','1998-08-12','1998-07-12','1998-08-22','DELIVER IN PERSON','FOB','quickly special platelets affix qu'), +(4196,4,1,7,3,2712,0,0.06,'N','O','1998-08-05','1998-07-28','1998-08-15','DELIVER IN PERSON','REG AIR','packages cajole slyly across the u'), +(4197,129,8,1,50,51456,0.06,0.03,'N','O','1996-11-15','1996-11-01','1996-11-20','NONE','FOB','final accounts sleep quickly s'), +(4197,70,9,2,39,37832.73,0.02,0.08,'N','O','1996-10-07','1996-10-11','1996-10-18','DELIVER IN PERSON','RAIL','slyly even requests agains'), +(4197,32,8,3,28,26096.84,0.06,0.02,'N','O','1996-10-05','1996-10-24','1996-10-22','TAKE BACK RETURN','AIR','even requests wake blithely. pending inst'), +(4197,96,7,4,23,22910.07,0,0.03,'N','O','1996-09-10','1996-10-10','1996-09-25','NONE','AIR','brave, regular ideas'), +(4197,121,6,5,37,37781.44,0.03,0.04,'N','O','1996-10-20','1996-10-10','1996-11-10','COLLECT COD','TRUCK','slyly ruth'), +(4197,31,7,6,48,44689.44,0.08,0,'N','O','1996-10-07','1996-10-25','1996-10-23','COLLECT COD','REG AIR','deposits a'), +(4198,146,9,1,48,50214.72,0.09,0.05,'N','O','1997-09-03','1997-07-18','1997-09-11','NONE','REG AIR','platelets along'), +(4198,143,6,2,46,47984.44,0.09,0.01,'N','O','1997-08-17','1997-09-08','1997-09-11','COLLECT COD','TRUCK','quickly special escapades sleep blithel'), +(4198,145,4,3,13,13586.82,0.03,0.04,'N','O','1997-07-18','1997-07-24','1997-08-10','NONE','REG AIR','furiously bold theodolites sublate stealthi'), +(4199,70,5,1,16,15521.12,0.1,0,'A','F','1992-06-11','1992-04-10','1992-07-10','COLLECT COD','TRUCK','blithely regular id'), +(4199,9,10,2,18,16362,0,0.01,'A','F','1992-06-01','1992-03-30','1992-06-28','DELIVER IN PERSON','RAIL','carefully even accounts c'), +(4224,199,10,1,27,29678.13,0.05,0.03,'N','O','1997-09-05','1997-08-19','1997-09-30','NONE','SHIP','regular pinto '), +(4224,37,3,2,20,18740.6,0.07,0.05,'N','O','1997-11-09','1997-08-23','1997-11-14','NONE','FOB','regular, final ideas across the furi'), +(4224,24,7,3,4,3696.08,0.08,0.05,'N','O','1997-09-07','1997-09-05','1997-09-25','TAKE BACK RETURN','FOB','fluffily careful'), +(4224,160,2,4,50,53008,0.1,0.06,'N','O','1997-07-30','1997-09-10','1997-08-19','COLLECT COD','RAIL','special, ironic requests are quickly. '), +(4224,85,6,5,48,47283.84,0,0.04,'N','O','1997-10-03','1997-08-31','1997-10-10','NONE','RAIL','slyly bold requests haggle carefully final'), +(4225,49,8,1,25,23726,0.08,0.04,'N','O','1997-07-10','1997-08-08','1997-07-31','TAKE BACK RETURN','TRUCK','pending pinto beans serve at'), +(4225,96,8,2,23,22910.07,0.02,0.04,'N','O','1997-09-18','1997-08-31','1997-10-11','TAKE BACK RETURN','RAIL','regular requests h'), +(4225,98,10,3,28,27946.52,0.08,0.03,'N','O','1997-07-11','1997-09-01','1997-08-03','DELIVER IN PERSON','FOB','blithely f'), +(4226,188,9,1,27,29380.86,0.06,0.08,'A','F','1993-05-03','1993-04-12','1993-05-16','COLLECT COD','AIR','even deposits sleep ruthlessly across t'), +(4227,158,6,1,19,20104.85,0.01,0.08,'A','F','1995-05-05','1995-05-03','1995-05-22','COLLECT COD','REG AIR','carefully dog'), +(4227,33,4,2,8,7464.24,0.09,0,'N','F','1995-06-11','1995-04-30','1995-06-28','COLLECT COD','REG AIR','quickly even epitaph'), +(4227,75,6,3,11,10725.77,0.1,0.04,'A','F','1995-03-30','1995-05-02','1995-04-26','DELIVER IN PERSON','SHIP','fluffily ironic depo'), +(4227,200,4,4,2,2200.4,0.02,0.05,'R','F','1995-04-24','1995-05-09','1995-05-21','DELIVER IN PERSON','AIR','carefully regular req'), +(4227,147,6,5,49,51309.86,0.05,0.06,'R','F','1995-05-19','1995-04-12','1995-06-12','TAKE BACK RETURN','REG AIR','carefully bold pinto beans hag'), +(4228,141,10,1,20,20822.8,0,0.06,'N','O','1997-04-24','1997-05-29','1997-05-17','NONE','RAIL','carefully regular requests across the '), +(4229,96,9,1,44,43827.96,0.02,0.05,'N','O','1998-05-29','1998-05-12','1998-06-16','DELIVER IN PERSON','AIR','carefully final requests across the permane'); +INSERT INTO lineitem VALUES +(4229,5,8,2,34,30770,0.07,0.05,'N','O','1998-05-26','1998-04-13','1998-06-08','DELIVER IN PERSON','MAIL','blithely ironic packages s'), +(4230,46,5,1,38,35949.52,0.1,0.03,'A','F','1992-04-28','1992-04-21','1992-05-28','TAKE BACK RETURN','FOB','express accounts cajole ca'), +(4230,199,3,2,43,47265.17,0.02,0.08,'R','F','1992-03-14','1992-05-13','1992-03-28','NONE','FOB','ironic instructions grow blith'), +(4230,196,9,3,10,10961.9,0.06,0.02,'A','F','1992-06-11','1992-04-11','1992-07-02','TAKE BACK RETURN','MAIL','carefully bold accounts c'), +(4230,75,6,4,28,27301.96,0.01,0.03,'R','F','1992-05-12','1992-05-10','1992-06-01','TAKE BACK RETURN','MAIL','pending accounts sub'), +(4230,125,10,5,50,51256,0,0.01,'A','F','1992-03-29','1992-05-19','1992-04-20','TAKE BACK RETURN','SHIP','even requests n'), +(4230,35,6,6,30,28050.9,0.05,0.07,'A','F','1992-03-11','1992-04-29','1992-03-30','NONE','AIR','regular, ironic hockey players integrate '), +(4230,152,3,7,18,18938.7,0.1,0.04,'R','F','1992-06-23','1992-05-10','1992-07-04','COLLECT COD','SHIP','carefully pending accounts ab'), +(4231,142,3,1,47,48980.58,0.09,0.03,'N','O','1997-11-27','1998-01-26','1997-12-17','NONE','REG AIR','special deposits alongsi'), +(4231,166,3,2,4,4264.64,0.06,0.02,'N','O','1997-11-28','1998-01-26','1997-12-12','TAKE BACK RETURN','MAIL','ideas haggle carefully regular accounts. '), +(4231,121,2,3,31,31654.72,0.07,0.08,'N','O','1998-02-14','1997-12-27','1998-03-01','DELIVER IN PERSON','FOB','pending, ironic depos'), +(4231,40,1,4,35,32901.4,0.1,0,'N','O','1998-02-21','1998-01-24','1998-03-18','DELIVER IN PERSON','FOB','ironic deposits haggle. accounts'), +(4256,151,9,1,22,23125.3,0.05,0.05,'R','F','1992-07-30','1992-05-14','1992-08-14','NONE','TRUCK','furiously final the'), +(4257,65,10,1,3,2895.18,0.1,0.03,'N','O','1995-06-18','1995-05-01','1995-07-12','DELIVER IN PERSON','MAIL','carefully exp'), +(4257,35,6,2,5,4675.15,0.01,0.04,'R','F','1995-04-29','1995-06-05','1995-05-13','TAKE BACK RETURN','TRUCK','daringly ironic packages h'), +(4257,128,9,3,33,33927.96,0.03,0.04,'A','F','1995-05-23','1995-05-03','1995-05-31','COLLECT COD','AIR','slyly final tit'), +(4258,166,7,1,36,38381.76,0.02,0.06,'N','O','1997-02-23','1997-01-25','1997-02-27','TAKE BACK RETURN','SHIP','carefully fina'), +(4258,162,1,2,19,20181.04,0.03,0.02,'N','O','1997-01-14','1996-12-12','1997-01-20','TAKE BACK RETURN','AIR','doggedly express pi'), +(4258,31,7,3,46,42827.38,0.04,0.07,'N','O','1997-01-02','1996-12-26','1997-01-12','DELIVER IN PERSON','AIR','final, silent ideas '), +(4258,35,6,4,22,20570.66,0.04,0.04,'N','O','1996-12-12','1996-12-06','1996-12-20','TAKE BACK RETURN','AIR','carefully specia'), +(4258,163,10,5,9,9568.44,0.04,0.03,'N','O','1996-12-04','1996-12-08','1996-12-20','DELIVER IN PERSON','TRUCK','carefully regular instr'), +(4259,43,6,1,14,13202.56,0.05,0.03,'N','O','1998-01-09','1997-11-21','1998-01-29','TAKE BACK RETURN','RAIL','packages nag. sometimes pending packages c'), +(4260,24,7,1,21,19404.42,0.08,0.04,'R','F','1992-08-06','1992-06-18','1992-08-22','NONE','AIR','quickly express requ'), +(4261,110,1,1,12,12121.32,0.05,0.01,'A','F','1992-11-01','1993-01-01','1992-11-12','NONE','FOB','special, brave instructions lose furious'), +(4261,82,3,2,4,3928.32,0.02,0.07,'R','F','1992-12-11','1992-12-18','1992-12-24','DELIVER IN PERSON','FOB','slyly furious depos'), +(4261,175,5,3,3,3225.51,0.07,0.02,'R','F','1992-11-10','1992-12-14','1992-11-17','COLLECT COD','RAIL','slyly special '), +(4261,174,3,4,36,38670.12,0.04,0.06,'R','F','1992-12-02','1992-12-18','1992-12-25','NONE','REG AIR','carefully r'), +(4261,24,7,5,28,25872.56,0.07,0.06,'A','F','1992-10-08','1992-12-23','1992-10-11','TAKE BACK RETURN','MAIL','blithely final deposits are. b'), +(4262,76,7,1,30,29282.1,0.01,0.03,'N','O','1996-08-11','1996-10-11','1996-09-09','TAKE BACK RETURN','RAIL','carefully final theodolites us'), +(4262,96,7,2,5,4980.45,0.02,0.05,'N','O','1996-09-27','1996-09-05','1996-10-25','COLLECT COD','SHIP','sly, ironic re'); +INSERT INTO lineitem VALUES +(4262,162,1,3,5,5310.8,0.08,0,'N','O','1996-10-02','1996-10-16','1996-10-05','NONE','REG AIR','regular deposits'), +(4262,74,2,4,45,43833.15,0.02,0.01,'N','O','1996-11-09','1996-09-09','1996-11-12','DELIVER IN PERSON','SHIP','carefully regular ideas sleep according'), +(4262,100,3,5,28,28002.8,0.06,0.02,'N','O','1996-10-22','1996-09-06','1996-11-13','DELIVER IN PERSON','FOB','quickly ex'), +(4262,17,7,6,26,23842.26,0.03,0.02,'N','O','1996-08-29','1996-09-25','1996-08-31','NONE','RAIL','furiously regular accounts are'), +(4262,160,5,7,41,43466.56,0.03,0.01,'N','O','1996-08-28','1996-09-14','1996-09-20','COLLECT COD','RAIL','quickly bold pinto beans hagg'), +(4263,18,9,1,9,8262.09,0.08,0.07,'N','O','1998-04-04','1998-04-29','1998-05-04','COLLECT COD','AIR','foxes sleep carefully quickly regul'), +(4263,196,10,2,28,30693.32,0.05,0.03,'N','O','1998-06-24','1998-06-08','1998-07-14','NONE','MAIL','regular package'), +(4263,11,1,3,38,34618.38,0.01,0.01,'N','O','1998-07-10','1998-05-08','1998-07-17','NONE','TRUCK','quickly regular frets cajole car'), +(4263,19,3,4,20,18380.2,0.02,0.07,'N','O','1998-04-09','1998-04-30','1998-05-04','NONE','RAIL','carefully i'), +(4263,198,2,5,14,15374.66,0.09,0.06,'N','O','1998-05-06','1998-04-17','1998-05-11','DELIVER IN PERSON','TRUCK','ironic accounts wake blithely; soma'), +(4263,113,10,6,47,47616.17,0.08,0.06,'N','O','1998-06-28','1998-05-09','1998-07-02','DELIVER IN PERSON','TRUCK','carefully even asy'), +(4263,29,4,7,6,5574.12,0.04,0.04,'N','O','1998-05-01','1998-06-02','1998-05-14','TAKE BACK RETURN','REG AIR','ruthlessly special accounts u'), +(4288,74,5,1,32,31170.24,0.1,0.07,'R','F','1993-03-19','1993-01-26','1993-04-18','TAKE BACK RETURN','AIR','carefully pending deposits are s'), +(4288,105,6,2,39,39198.9,0.05,0.02,'R','F','1993-03-25','1993-02-06','1993-03-28','DELIVER IN PERSON','AIR','carefully special accounts in'), +(4288,125,8,3,7,7175.84,0.03,0.01,'A','F','1993-01-15','1993-02-05','1993-01-26','NONE','TRUCK','enticingly final deposits against '), +(4289,196,7,1,19,20827.61,0.06,0.06,'R','F','1993-12-31','1993-11-06','1994-01-23','DELIVER IN PERSON','TRUCK','unusual requests s'), +(4290,137,3,1,23,23853.99,0.06,0.04,'R','F','1995-04-04','1995-02-16','1995-04-07','TAKE BACK RETURN','REG AIR','final, even ideas are slyly! b'), +(4290,99,2,2,3,2997.27,0.09,0.03,'A','F','1995-03-25','1995-03-07','1995-04-11','NONE','RAIL','quickly regula'), +(4291,192,6,1,3,3276.57,0.08,0.08,'A','F','1994-03-17','1994-02-21','1994-03-27','COLLECT COD','SHIP','deposits affix furiously even courts.'), +(4291,125,8,2,43,44080.16,0.01,0.06,'A','F','1994-02-01','1994-02-27','1994-02-06','DELIVER IN PERSON','REG AIR','carefully express dolphins'), +(4291,8,1,3,25,22700,0.09,0.08,'R','F','1994-02-14','1994-02-08','1994-03-15','COLLECT COD','AIR','final, ironic pinto beans cajole. u'), +(4292,44,3,1,22,20768.88,0.08,0.03,'R','F','1992-02-14','1992-02-16','1992-03-01','NONE','FOB','slyly ironic frays a'), +(4292,40,6,2,1,940.04,0.03,0.01,'A','F','1992-02-07','1992-03-16','1992-02-10','DELIVER IN PERSON','FOB','fluffily careful ideas use'), +(4292,120,10,3,35,35704.2,0.03,0.06,'A','F','1992-03-23','1992-04-04','1992-04-02','COLLECT COD','TRUCK','carefully final requests abou'), +(4292,163,10,4,40,42526.4,0.05,0.04,'A','F','1992-04-27','1992-03-07','1992-05-04','COLLECT COD','REG AIR','unusual requests above t'), +(4292,131,7,5,6,6186.78,0.07,0.08,'R','F','1992-03-03','1992-02-24','1992-03-25','COLLECT COD','FOB','pending, even ideas along the slyly th'), +(4292,4,1,6,47,42488,0.05,0,'R','F','1992-05-02','1992-03-21','1992-05-27','TAKE BACK RETURN','FOB','special deposits a'), +(4293,1,6,1,34,30634,0.03,0.08,'N','O','1996-11-05','1996-10-12','1996-12-04','NONE','FOB','furiously special deposits i'), +(4293,77,5,2,50,48853.5,0.01,0.05,'N','O','1996-11-27','1996-10-30','1996-12-22','COLLECT COD','MAIL','blithely regular excuses haggle bli'), +(4293,199,1,3,47,51661.93,0.08,0.02,'N','O','1996-09-07','1996-10-24','1996-09-15','NONE','RAIL','furiously ironi'); +INSERT INTO lineitem VALUES +(4293,88,9,4,25,24702,0.04,0.04,'N','O','1996-09-11','1996-11-14','1996-09-22','DELIVER IN PERSON','FOB','furiously brave depo'), +(4293,181,2,5,1,1081.18,0.06,0.05,'N','O','1996-11-15','1996-10-09','1996-11-26','COLLECT COD','AIR','blithely permanent accounts sleep carefully'), +(4293,79,7,6,45,44058.15,0.1,0.04,'N','O','1996-11-04','1996-11-06','1996-11-23','NONE','MAIL','carefully regular de'), +(4294,105,8,1,19,19096.9,0.03,0.04,'A','F','1992-10-16','1992-11-13','1992-10-26','DELIVER IN PERSON','AIR','furiously unusual requests cajole unu'), +(4294,27,2,2,16,14832.32,0.01,0.02,'R','F','1992-08-17','1992-09-24','1992-09-04','TAKE BACK RETURN','REG AIR','fluffily unusu'), +(4294,198,1,3,30,32945.7,0.01,0,'A','F','1992-09-12','1992-11-06','1992-09-25','NONE','MAIL','quickly pending depos'), +(4294,105,2,4,34,34173.4,0.02,0.01,'R','F','1992-09-09','1992-11-06','1992-10-04','TAKE BACK RETURN','REG AIR','pains wake bli'), +(4294,119,3,5,37,37707.07,0.05,0.01,'R','F','1992-09-07','1992-10-13','1992-09-08','NONE','REG AIR','carefully special realms beyond the furiou'), +(4294,87,8,6,42,41457.36,0.02,0.03,'A','F','1992-09-30','1992-11-13','1992-10-15','DELIVER IN PERSON','FOB','even, specia'), +(4294,175,3,7,47,50532.99,0.02,0.08,'R','F','1992-11-09','1992-11-03','1992-12-05','TAKE BACK RETURN','SHIP','furiously final asymptotes affi'), +(4295,29,2,1,49,45521.98,0.09,0.01,'N','O','1996-05-25','1996-03-17','1996-06-19','TAKE BACK RETURN','REG AIR','slyly ironic braids slee'), +(4295,71,9,2,4,3884.28,0.09,0.07,'N','O','1996-06-05','1996-04-26','1996-06-13','DELIVER IN PERSON','TRUCK','slyly unusual '), +(4295,193,4,3,3,3279.57,0.04,0,'N','O','1996-06-04','1996-04-24','1996-06-24','DELIVER IN PERSON','AIR','special, ironic deposits wake carefully '), +(4295,80,9,4,30,29402.4,0.07,0.06,'N','O','1996-03-22','1996-04-23','1996-04-20','NONE','SHIP','slyly even packag'), +(4320,46,5,1,28,26489.12,0.02,0.06,'N','O','1997-01-28','1997-02-07','1997-02-07','COLLECT COD','FOB','blithely ironic accounts hagg'), +(4320,140,6,2,6,6240.84,0.08,0.08,'N','O','1997-01-11','1997-01-26','1997-01-22','DELIVER IN PERSON','SHIP','requests serve busily sp'), +(4320,188,9,3,33,35909.94,0.09,0.02,'N','O','1996-12-11','1997-02-27','1997-01-08','TAKE BACK RETURN','SHIP','special deposits detect quickly; reg'), +(4321,147,6,1,33,34555.62,0.09,0.02,'A','F','1994-09-01','1994-08-17','1994-09-05','DELIVER IN PERSON','TRUCK','ideas cajole deposits. special, '), +(4321,54,2,2,45,42932.25,0,0.08,'R','F','1994-11-13','1994-09-15','1994-11-18','DELIVER IN PERSON','SHIP','bold requests wake furiously:'), +(4321,186,7,3,23,24982.14,0.01,0.05,'A','F','1994-11-03','1994-10-08','1994-11-06','DELIVER IN PERSON','SHIP','final foxes sleep blithely. pe'), +(4321,91,2,4,4,3964.36,0.02,0,'R','F','1994-09-10','1994-10-06','1994-09-11','NONE','FOB','ideas sublate. even ideas wake slyly'), +(4321,172,2,5,10,10721.7,0.04,0.03,'A','F','1994-09-07','1994-08-23','1994-09-17','TAKE BACK RETURN','SHIP','pending requ'), +(4322,69,4,1,39,37793.34,0.04,0.02,'N','O','1998-04-27','1998-06-03','1998-05-04','TAKE BACK RETURN','MAIL','even ideas nag slyly accord'), +(4322,140,1,2,9,9361.26,0.05,0.08,'N','O','1998-05-18','1998-04-27','1998-05-28','COLLECT COD','AIR','unusual Tir'), +(4322,8,9,3,12,10896,0.09,0.05,'N','O','1998-03-29','1998-06-05','1998-04-16','DELIVER IN PERSON','TRUCK','even theodolites above the req'), +(4322,46,7,4,17,16082.68,0.09,0.08,'N','O','1998-05-31','1998-05-31','1998-06-10','TAKE BACK RETURN','FOB','carefully regular instructions cajole ca'), +(4322,102,7,5,10,10021,0,0.05,'N','O','1998-05-31','1998-04-27','1998-06-25','TAKE BACK RETURN','REG AIR','quickly bold deposits after the final'), +(4322,60,8,6,39,37442.34,0.09,0.08,'N','O','1998-03-16','1998-05-21','1998-04-11','COLLECT COD','AIR','carefully pending dependencies us'), +(4322,14,4,7,34,31076.34,0.05,0,'N','O','1998-05-27','1998-04-12','1998-06-16','NONE','REG AIR','packages wake furiously. silent'); +INSERT INTO lineitem VALUES +(4323,1,2,1,33,29733,0.09,0.02,'A','F','1994-05-04','1994-03-06','1994-05-23','COLLECT COD','TRUCK','pinto beans haggle blithely. furiously regu'), +(4324,51,2,1,44,41846.2,0.05,0.04,'N','O','1995-10-15','1995-09-07','1995-11-07','DELIVER IN PERSON','AIR','slyly regul'), +(4324,48,7,2,12,11376.48,0.04,0.02,'N','O','1995-10-05','1995-09-07','1995-10-18','NONE','REG AIR','carefully regular'), +(4324,82,3,3,14,13749.12,0.07,0.06,'N','O','1995-11-12','1995-08-26','1995-11-21','COLLECT COD','AIR','excuses boost slyly. do'), +(4324,50,7,4,14,13300.7,0.02,0.04,'N','O','1995-09-20','1995-10-08','1995-10-06','COLLECT COD','RAIL','unusual instr'), +(4324,84,5,5,22,21649.76,0.07,0.03,'N','O','1995-09-13','1995-10-04','1995-09-23','DELIVER IN PERSON','SHIP','carefully fi'), +(4324,43,2,6,31,29234.24,0.08,0.04,'N','O','1995-10-23','1995-09-14','1995-11-09','COLLECT COD','RAIL','furiously regular pa'), +(4324,154,6,7,46,48490.9,0,0.03,'N','O','1995-11-03','1995-09-28','1995-11-22','NONE','SHIP','unusual, bold foxes haggle furiously. slyl'), +(4325,160,2,1,18,19082.88,0.01,0.07,'N','O','1996-10-07','1996-09-28','1996-10-31','DELIVER IN PERSON','RAIL','regular, sly instructions are caref'), +(4326,163,4,1,11,11694.76,0.01,0.01,'N','O','1997-02-02','1996-12-10','1997-02-20','DELIVER IN PERSON','TRUCK','furiously special foxes use carefully speci'), +(4326,167,6,2,27,28813.32,0.06,0.01,'N','O','1996-11-29','1997-01-20','1996-12-23','COLLECT COD','AIR','permanent braids wa'), +(4327,95,8,1,18,17911.62,0.08,0,'N','F','1995-06-16','1995-04-20','1995-07-12','COLLECT COD','RAIL','accounts hag'), +(4327,106,9,2,40,40244,0.07,0.01,'N','F','1995-05-26','1995-04-17','1995-06-18','NONE','AIR','carefully '), +(4327,145,2,3,11,11496.54,0.1,0.07,'R','F','1995-04-24','1995-05-27','1995-05-24','TAKE BACK RETURN','FOB','ironic requests wake '), +(4327,21,10,4,8,7368.16,0.04,0.08,'N','F','1995-05-26','1995-05-28','1995-06-19','DELIVER IN PERSON','AIR','blithely final accounts ha'), +(4327,190,1,5,39,42517.41,0.01,0,'N','O','1995-06-23','1995-04-18','1995-07-13','TAKE BACK RETURN','FOB','bold requests cajole silently '), +(4327,152,4,6,10,10521.5,0,0.06,'A','F','1995-04-28','1995-06-11','1995-05-07','TAKE BACK RETURN','TRUCK','instructions are among the furiously spec'), +(4352,106,9,1,18,18109.8,0,0.03,'N','O','1998-02-27','1998-02-02','1998-03-01','DELIVER IN PERSON','RAIL','slyly regular Tiresias'), +(4353,94,8,1,22,21869.98,0.05,0.05,'N','O','1998-01-19','1998-01-23','1998-02-10','COLLECT COD','FOB','ironic, final ideas unwind slyly spec'), +(4354,15,9,1,30,27450.3,0.08,0.07,'R','F','1995-01-27','1994-11-24','1995-02-25','TAKE BACK RETURN','REG AIR','accounts integrate alongside of '), +(4354,153,8,2,23,24222.45,0.01,0.08,'R','F','1994-11-20','1994-12-23','1994-11-27','TAKE BACK RETURN','AIR','requests haggle furiously acco'), +(4354,51,6,3,2,1902.1,0.1,0.04,'A','F','1995-01-09','1994-12-15','1995-01-24','TAKE BACK RETURN','REG AIR','blithely unusual fox'), +(4354,86,7,4,36,35498.88,0.05,0.05,'A','F','1994-11-20','1994-12-06','1994-12-06','DELIVER IN PERSON','AIR','fluffily silent excuses b'), +(4354,65,10,5,37,35707.22,0.06,0.02,'R','F','1995-01-13','1994-12-29','1995-01-31','DELIVER IN PERSON','FOB','slyly even theodolites haggle blithel'), +(4354,108,3,6,36,36291.6,0.03,0.04,'R','F','1994-12-03','1994-12-05','1995-01-02','TAKE BACK RETURN','TRUCK','blithely expr'), +(4354,139,5,7,18,18704.34,0.03,0.04,'A','F','1994-12-07','1994-12-11','1994-12-11','TAKE BACK RETURN','SHIP','instructions accord'), +(4355,195,7,1,32,35046.08,0.1,0.02,'N','O','1996-12-29','1997-02-08','1997-01-24','DELIVER IN PERSON','REG AIR','quickly bold instructions play. asymptot'), +(4355,17,1,2,4,3668.04,0.05,0.02,'N','O','1997-02-25','1997-01-29','1997-03-17','TAKE BACK RETURN','TRUCK','fluffily final packages a'), +(4355,1,2,3,13,11713,0.07,0.05,'N','O','1997-01-21','1996-12-22','1997-02-14','COLLECT COD','TRUCK','carefully regular requests'), +(4355,194,6,4,14,15318.66,0.04,0.02,'N','O','1997-03-08','1997-01-22','1997-03-26','NONE','RAIL','carefully even accounts'); +INSERT INTO lineitem VALUES +(4355,31,7,5,50,46551.5,0.1,0,'N','O','1996-11-25','1997-01-01','1996-12-06','DELIVER IN PERSON','REG AIR','furiously final ideas boost? furi'), +(4355,122,7,6,35,35774.2,0,0.08,'N','O','1997-01-28','1997-01-28','1997-02-20','NONE','FOB','silent, even theodolites wake furiously: sp'), +(4355,101,4,7,47,47051.7,0.09,0.02,'N','O','1996-12-28','1996-12-29','1997-01-09','NONE','RAIL','ironic dep'), +(4356,194,5,1,35,38296.65,0,0.04,'R','F','1994-05-30','1994-06-14','1994-06-08','COLLECT COD','MAIL','furiously ruthless dolphin'), +(4357,84,5,1,50,49204,0.04,0.07,'N','O','1997-11-25','1997-12-03','1997-12-17','DELIVER IN PERSON','RAIL','carefully even deposits across the qui'), +(4357,108,9,2,17,17137.7,0.1,0.07,'N','O','1998-02-01','1997-12-08','1998-02-09','DELIVER IN PERSON','MAIL','deposits are slyly'), +(4358,126,5,1,47,48227.64,0.04,0,'N','O','1997-10-15','1997-10-14','1997-11-04','DELIVER IN PERSON','SHIP','regular ideas among the furio'), +(4359,174,3,1,41,44040.97,0.03,0.07,'A','F','1993-04-06','1993-05-06','1993-04-14','COLLECT COD','RAIL','quickly bold inst'), +(4359,153,8,2,8,8425.2,0.03,0.08,'R','F','1993-06-27','1993-05-16','1993-07-04','DELIVER IN PERSON','MAIL','furiously daring packages'), +(4359,193,6,3,32,34982.08,0.1,0.03,'R','F','1993-06-18','1993-04-04','1993-07-18','COLLECT COD','MAIL','slyly unusu'), +(4359,78,8,4,1,978.07,0.05,0.03,'R','F','1993-04-27','1993-05-09','1993-05-08','NONE','MAIL','slyly silent request'), +(4359,33,4,5,22,20526.66,0.04,0.01,'A','F','1993-03-28','1993-06-01','1993-04-13','NONE','REG AIR','furiously bold sauternes poach above the p'), +(4384,136,7,1,5,5180.65,0.09,0.01,'A','F','1992-08-22','1992-08-24','1992-09-20','DELIVER IN PERSON','MAIL','special th'), +(4384,89,10,2,38,37585.04,0.07,0.06,'A','F','1992-10-18','1992-09-24','1992-11-04','NONE','FOB','pending, bold depe'), +(4384,89,10,3,11,10879.88,0.05,0.04,'R','F','1992-08-31','1992-10-04','1992-09-28','TAKE BACK RETURN','FOB','fluffily close requests wake. express'), +(4385,111,8,1,38,38422.18,0,0.02,'N','O','1996-11-22','1996-10-30','1996-12-21','DELIVER IN PERSON','TRUCK','bold accounts do sleep s'), +(4386,130,3,1,10,10301.3,0.05,0.07,'N','O','1998-06-03','1998-04-16','1998-06-28','TAKE BACK RETURN','MAIL','ironic, reg'), +(4386,118,2,2,28,28507.08,0.03,0.06,'N','O','1998-03-19','1998-05-01','1998-03-27','NONE','FOB','unusual pinto beans haggle along the even'), +(4386,140,1,3,4,4160.56,0.07,0.05,'N','O','1998-04-07','1998-03-25','1998-04-19','COLLECT COD','FOB','blithely pending asymptotes are '), +(4386,121,2,4,21,21443.52,0.09,0,'N','O','1998-05-05','1998-03-19','1998-05-13','NONE','RAIL','regular, special deposits around th'), +(4386,130,3,5,39,40175.07,0.09,0.06,'N','O','1998-03-05','1998-03-15','1998-03-16','NONE','RAIL','furiously express waters among the q'), +(4386,90,1,6,18,17821.62,0.02,0.05,'N','O','1998-04-12','1998-04-09','1998-05-12','TAKE BACK RETURN','SHIP','silently final asymptotes wake car'), +(4386,20,4,7,16,14720.32,0.07,0.02,'N','O','1998-05-05','1998-03-17','1998-06-03','COLLECT COD','AIR','quickly express dependencies are furious'), +(4387,122,5,1,3,3066.36,0.02,0.01,'N','O','1996-01-17','1996-01-14','1996-01-28','COLLECT COD','AIR','deposits are flu'), +(4387,177,5,2,48,51704.16,0.06,0.05,'N','O','1995-10-29','1995-12-11','1995-11-01','NONE','REG AIR','regular foxes above the furiousl'), +(4387,2,5,3,15,13530,0,0.03,'N','O','1996-01-11','1996-01-14','1996-01-30','TAKE BACK RETURN','REG AIR','packages unwind. carefully bold pack'), +(4387,47,8,4,9,8523.36,0,0.03,'N','O','1996-01-04','1995-12-26','1996-01-12','DELIVER IN PERSON','REG AIR','carefully regula'), +(4387,82,3,5,3,2946.24,0.05,0.08,'N','O','1995-11-17','1995-12-28','1995-11-25','COLLECT COD','SHIP','ironic ideas use quic'), +(4387,6,3,6,40,36240,0.02,0.04,'N','O','1995-11-29','1995-12-10','1995-12-20','NONE','REG AIR','accounts use carefully. f'), +(4388,65,10,1,30,28951.8,0.02,0.07,'N','O','1996-06-07','1996-05-07','1996-06-22','DELIVER IN PERSON','FOB','furiously expr'); +INSERT INTO lineitem VALUES +(4388,84,5,2,28,27554.24,0.05,0.04,'N','O','1996-05-08','1996-06-20','1996-05-12','TAKE BACK RETURN','RAIL','permanently permanent asymptote'), +(4388,52,4,3,13,12376.65,0.07,0.05,'N','O','1996-06-28','1996-05-23','1996-07-04','DELIVER IN PERSON','REG AIR','boldly silent requests'), +(4389,157,2,1,20,21143,0.08,0,'A','F','1994-06-06','1994-06-17','1994-06-17','DELIVER IN PERSON','SHIP','furiously regular frays pro'), +(4389,153,5,2,13,13690.95,0,0,'A','F','1994-08-18','1994-06-06','1994-08-20','NONE','RAIL','furiously bold pinto beans sleep after th'), +(4389,79,9,3,39,38183.73,0.04,0.07,'A','F','1994-06-08','1994-06-04','1994-06-10','TAKE BACK RETURN','TRUCK','regular excuses nag slyly against'), +(4389,160,2,4,5,5300.8,0.09,0,'A','F','1994-09-03','1994-06-23','1994-09-16','NONE','FOB','carefully i'), +(4389,11,5,5,22,20042.22,0.08,0,'R','F','1994-07-05','1994-06-12','1994-07-12','NONE','TRUCK','special deposits haggle blithely bold pin'), +(4389,2,3,6,22,19844,0.01,0.04,'R','F','1994-06-07','1994-06-29','1994-06-19','COLLECT COD','TRUCK','accounts was. carefully permane'), +(4389,185,6,7,4,4340.72,0.09,0.08,'R','F','1994-06-14','1994-06-30','1994-07-06','NONE','REG AIR','pinto beans play sl'), +(4390,152,10,1,35,36825.25,0.07,0.04,'R','F','1995-05-30','1995-07-02','1995-06-15','DELIVER IN PERSON','TRUCK','pending accounts'), +(4390,196,8,2,28,30693.32,0.03,0,'N','O','1995-09-07','1995-06-22','1995-10-05','COLLECT COD','SHIP','special theodol'), +(4390,101,8,3,42,42046.2,0.05,0.08,'A','F','1995-06-12','1995-07-16','1995-06-17','NONE','AIR','ironic foxes shall wake slyly. blithely fin'), +(4390,98,2,4,32,31938.88,0.07,0.08,'N','O','1995-09-15','1995-08-12','1995-10-05','TAKE BACK RETURN','TRUCK','ideas boost slyl'), +(4391,161,10,1,1,1061.16,0.09,0,'R','F','1992-06-18','1992-04-27','1992-06-20','COLLECT COD','TRUCK','quickly final pinto beans '), +(4391,187,8,2,45,48923.1,0.07,0.04,'R','F','1992-04-01','1992-05-01','1992-04-13','TAKE BACK RETURN','TRUCK','furiously special'), +(4416,94,7,1,37,36781.33,0.08,0.03,'A','F','1992-10-23','1992-08-23','1992-11-16','COLLECT COD','RAIL','slyly silent packag'), +(4416,89,10,2,3,2967.24,0.06,0.03,'R','F','1992-10-22','1992-08-06','1992-11-13','DELIVER IN PERSON','SHIP','slyly express deposits detect blithel'), +(4416,9,6,3,45,40905,0.09,0.03,'A','F','1992-10-16','1992-09-09','1992-10-28','COLLECT COD','AIR','ironic packages boost s'), +(4417,75,5,1,28,27301.96,0.08,0.02,'N','O','1998-09-04','1998-10-04','1998-09-19','TAKE BACK RETURN','REG AIR','stealthily fina'), +(4417,181,2,2,1,1081.18,0.06,0.08,'N','O','1998-10-23','1998-08-22','1998-10-24','NONE','REG AIR','blithely regular acco'), +(4417,98,2,3,35,34933.15,0.06,0.04,'N','O','1998-08-08','1998-09-23','1998-09-02','DELIVER IN PERSON','FOB','carefully pending excuses hag'), +(4418,35,1,1,32,29920.96,0.02,0.06,'A','F','1993-05-28','1993-06-02','1993-05-30','TAKE BACK RETURN','RAIL','carefully ironic requests wake. sly'), +(4418,22,5,2,14,12908.28,0.03,0.04,'A','F','1993-05-20','1993-06-18','1993-06-05','TAKE BACK RETURN','SHIP','carefully expres'), +(4418,79,7,3,3,2937.21,0,0.02,'R','F','1993-04-08','1993-06-04','1993-05-02','NONE','SHIP','ironic, final platelets according to the '), +(4419,108,9,1,45,45364.5,0.01,0.05,'N','O','1996-07-20','1996-09-07','1996-08-18','DELIVER IN PERSON','TRUCK','quickly express de'), +(4419,32,8,2,42,39145.26,0,0.03,'N','O','1996-09-18','1996-07-25','1996-09-21','COLLECT COD','RAIL','final somas are. blithely pending'), +(4419,132,3,3,6,6192.78,0.02,0.08,'N','O','1996-06-25','1996-09-04','1996-07-20','DELIVER IN PERSON','AIR','quickly ironic f'), +(4420,8,5,1,7,6356,0.07,0.03,'R','F','1994-08-30','1994-09-03','1994-09-25','NONE','FOB','deposits across t'), +(4421,98,2,1,37,36929.33,0.09,0.08,'N','O','1997-07-22','1997-06-27','1997-07-25','DELIVER IN PERSON','SHIP','furiously idle packages det'), +(4421,56,1,2,46,43978.3,0.04,0.04,'N','O','1997-04-21','1997-05-13','1997-05-15','DELIVER IN PERSON','FOB','ironic instructions serve. tithes boost ab'); +INSERT INTO lineitem VALUES +(4421,167,6,3,46,49089.36,0,0.06,'N','O','1997-05-25','1997-05-21','1997-06-23','COLLECT COD','TRUCK','furiously bold accounts nag slyly'), +(4421,191,4,4,32,34918.08,0.06,0.04,'N','O','1997-07-09','1997-06-03','1997-07-25','NONE','SHIP','furiously ironic de'), +(4421,190,1,5,32,34886.08,0.06,0.04,'N','O','1997-07-28','1997-06-14','1997-08-13','NONE','REG AIR','furiously bold accounts above the carefully'), +(4421,47,6,6,44,41669.76,0.09,0.06,'N','O','1997-06-17','1997-06-20','1997-06-29','NONE','TRUCK','carefully regular pinto'), +(4421,116,3,7,18,18289.98,0.01,0,'N','O','1997-06-07','1997-05-13','1997-06-10','DELIVER IN PERSON','FOB','even pinto beans print slyly a'), +(4422,135,1,1,5,5175.65,0.09,0.07,'N','O','1995-07-17','1995-08-13','1995-07-25','NONE','SHIP','blithely regul'), +(4422,48,5,2,41,38869.64,0.08,0.05,'N','F','1995-06-12','1995-07-09','1995-06-20','COLLECT COD','TRUCK','slyly pending packa'), +(4422,103,10,3,39,39120.9,0,0.05,'N','O','1995-09-02','1995-06-24','1995-09-14','NONE','TRUCK','requests haggle fluffily slyly s'), +(4422,153,4,4,4,4212.6,0.02,0.05,'N','O','1995-09-18','1995-08-12','1995-10-18','COLLECT COD','FOB','regular dependencies according to the fin'), +(4422,80,9,5,20,19601.6,0.07,0.05,'N','O','1995-08-17','1995-07-16','1995-09-13','DELIVER IN PERSON','RAIL','blithely ironic pack'), +(4423,150,9,1,3,3150.45,0.03,0,'A','F','1995-03-22','1995-04-06','1995-04-19','NONE','TRUCK','carefully thin '), +(4423,60,5,2,2,1920.12,0.07,0.04,'A','F','1995-03-04','1995-04-04','1995-03-08','TAKE BACK RETURN','REG AIR','slyly special platelets wake above the de'), +(4448,52,7,1,24,22849.2,0.1,0.07,'N','O','1998-09-09','1998-07-06','1998-09-27','DELIVER IN PERSON','SHIP','final, regular accounts cajole furiously.'), +(4448,189,10,2,13,14159.34,0,0.01,'N','O','1998-07-26','1998-07-03','1998-08-14','COLLECT COD','MAIL','carefully even in'), +(4448,41,4,3,35,32936.4,0.1,0.06,'N','O','1998-09-18','1998-07-27','1998-10-08','NONE','REG AIR','idly final asymptotes need to cajole fluff'), +(4448,141,2,4,3,3123.42,0.01,0.01,'N','O','1998-07-20','1998-07-10','1998-08-07','DELIVER IN PERSON','TRUCK','asymptotes boost carefully abov'), +(4448,91,2,5,41,40634.69,0,0.08,'N','O','1998-07-30','1998-08-09','1998-08-03','NONE','AIR','carefully ironic'), +(4448,172,3,6,12,12866.04,0.06,0.03,'N','O','1998-08-21','1998-06-30','1998-09-09','COLLECT COD','RAIL','quickly even'), +(4449,32,3,1,42,39145.26,0.1,0.07,'N','O','1998-03-22','1998-05-09','1998-04-03','NONE','FOB','quickly ironic'), +(4449,141,8,2,10,10411.4,0.02,0.03,'N','O','1998-05-09','1998-05-04','1998-05-15','NONE','SHIP','slyly ironic pains wake across th'), +(4450,174,5,1,44,47263.48,0.1,0,'N','O','1997-10-12','1997-10-13','1997-10-29','DELIVER IN PERSON','RAIL','blithely ironic'), +(4450,15,6,2,9,8235.09,0.03,0.03,'N','O','1997-08-13','1997-08-16','1997-08-15','NONE','FOB','even deposits sleep since the unu'), +(4450,96,8,3,45,44824.05,0.08,0.01,'N','O','1997-09-01','1997-10-06','1997-09-19','NONE','TRUCK','carefully regular requests'), +(4450,62,9,4,13,12506.78,0,0,'N','O','1997-08-26','1997-09-18','1997-09-20','COLLECT COD','MAIL','instructions print against'), +(4450,56,7,5,6,5736.3,0.09,0.01,'N','O','1997-09-02','1997-09-30','1997-09-09','NONE','FOB','quickly regular pinto beans'), +(4451,164,5,1,40,42566.4,0.03,0.03,'A','F','1994-11-18','1994-12-25','1994-11-26','DELIVER IN PERSON','RAIL','slyly unusual platele'), +(4451,63,4,2,34,32744.04,0.1,0.02,'A','F','1994-11-30','1994-12-04','1994-12-13','COLLECT COD','SHIP','slyly regular packag'), +(4451,159,10,3,19,20123.85,0.05,0.06,'R','F','1994-10-09','1994-11-26','1994-10-23','COLLECT COD','FOB','sometimes final deposits unwind--'), +(4452,114,8,1,21,21296.31,0.07,0.03,'R','F','1994-10-06','1994-08-23','1994-10-15','COLLECT COD','TRUCK','blithely regular packages dete'), +(4452,1,8,2,47,42347,0.01,0.06,'A','F','1994-10-08','1994-08-09','1994-10-09','TAKE BACK RETURN','TRUCK','regular, ironic cour'); +INSERT INTO lineitem VALUES +(4453,147,10,1,41,42932.74,0,0.08,'N','O','1997-07-17','1997-05-15','1997-07-31','NONE','REG AIR','slyly special realms haggle qu'), +(4453,133,4,2,16,16530.08,0.03,0,'N','O','1997-07-22','1997-05-05','1997-08-03','COLLECT COD','FOB','even, final requests across th'), +(4453,62,7,3,48,46178.88,0.02,0.07,'N','O','1997-05-29','1997-06-24','1997-06-03','NONE','SHIP','blithely sly frets use stealthily. '), +(4453,102,5,4,26,26054.6,0.06,0.07,'N','O','1997-05-07','1997-06-07','1997-05-22','NONE','TRUCK','blithely pending ideas use slyly. id'), +(4454,151,9,1,20,21023,0.1,0.08,'R','F','1994-05-06','1994-03-17','1994-05-20','COLLECT COD','SHIP','blithely ironic'), +(4454,152,10,2,22,23147.3,0.06,0.02,'A','F','1994-02-06','1994-04-11','1994-03-06','DELIVER IN PERSON','RAIL','express excuses wake sly'), +(4454,192,3,3,45,49148.55,0.07,0.04,'A','F','1994-03-29','1994-03-26','1994-04-04','TAKE BACK RETURN','RAIL','furiously ironic accounts are furiously. b'), +(4454,2,3,4,1,902,0.09,0.05,'A','F','1994-02-05','1994-04-19','1994-02-12','COLLECT COD','RAIL','blithely special requests detect blithely '), +(4454,52,4,5,48,45698.4,0,0.07,'R','F','1994-04-23','1994-04-03','1994-04-26','COLLECT COD','FOB','quickly pending deposits solve blithe'), +(4454,160,8,6,20,21203.2,0.1,0.03,'A','F','1994-04-08','1994-03-06','1994-04-26','DELIVER IN PERSON','TRUCK','carefully special packag'), +(4455,70,5,1,20,19401.4,0.01,0.05,'A','F','1994-01-31','1993-11-21','1994-03-02','DELIVER IN PERSON','MAIL','accounts cajole acc'), +(4455,153,4,2,47,49498.05,0.09,0.01,'R','F','1994-01-01','1993-12-25','1994-01-05','COLLECT COD','FOB','carefully final r'), +(4455,123,2,3,34,34786.08,0,0.06,'A','F','1993-10-24','1993-11-27','1993-11-04','TAKE BACK RETURN','AIR','slyly special pinto beans must sle'), +(4480,108,5,1,30,30243,0.08,0.03,'R','F','1994-07-29','1994-06-22','1994-08-01','NONE','FOB','deposits sleep s'), +(4481,24,9,1,50,46201,0.02,0.06,'N','O','1996-07-22','1996-05-13','1996-08-14','DELIVER IN PERSON','RAIL','carefully unusual accounts wake. slyly p'), +(4481,190,1,2,27,29435.13,0.02,0.03,'N','O','1996-04-06','1996-05-17','1996-04-12','TAKE BACK RETURN','AIR','quickly special requests alongside of the e'), +(4482,71,2,1,32,31074.24,0.06,0.03,'A','F','1995-05-16','1995-07-22','1995-06-07','NONE','RAIL','regularly regular '), +(4482,96,9,2,32,31874.88,0.01,0.06,'N','O','1995-08-16','1995-06-26','1995-09-10','DELIVER IN PERSON','AIR','furiously pending deposits sle'), +(4483,6,7,1,32,28992,0.07,0.07,'R','F','1992-04-05','1992-05-25','1992-04-08','DELIVER IN PERSON','MAIL','furiously final warh'), +(4483,62,1,2,50,48103,0.01,0.06,'A','F','1992-06-19','1992-05-12','1992-07-08','DELIVER IN PERSON','TRUCK','regular request'), +(4483,9,4,3,50,45450,0,0.04,'R','F','1992-06-10','1992-04-18','1992-06-17','DELIVER IN PERSON','MAIL','regular requests use furiously.'), +(4484,95,9,1,4,3980.36,0.06,0.03,'N','O','1997-04-09','1997-02-11','1997-04-12','TAKE BACK RETURN','TRUCK','furiously ironic exc'), +(4484,137,8,2,39,40448.07,0.05,0.02,'N','O','1997-04-01','1997-01-26','1997-04-21','NONE','RAIL','special, ironic dolphins wake stea'), +(4484,190,1,3,38,41427.22,0.06,0.07,'N','O','1997-03-07','1997-01-31','1997-04-01','COLLECT COD','REG AIR','requests are. carefully ironic idea'), +(4484,122,5,4,41,41906.92,0.06,0.03,'N','O','1997-01-25','1997-02-15','1997-01-29','TAKE BACK RETURN','REG AIR','even epitaphs use fluffily above the blith'), +(4484,3,4,5,42,37926,0.03,0.07,'N','O','1997-03-25','1997-02-21','1997-04-05','DELIVER IN PERSON','REG AIR','slyly even requests are after the '), +(4484,36,7,6,29,27144.87,0.09,0.06,'N','O','1996-12-27','1997-03-10','1997-01-13','NONE','FOB','regular th'), +(4484,103,8,7,50,50155,0.07,0.01,'N','O','1997-03-17','1997-03-16','1997-03-21','COLLECT COD','FOB','carefully '), +(4485,191,5,1,1,1091.19,0.03,0.05,'R','F','1994-12-04','1995-02-07','1994-12-09','NONE','AIR','quickly even requests affix furiousl'); +INSERT INTO lineitem VALUES +(4485,141,10,2,46,47892.44,0.04,0.06,'R','F','1995-03-09','1994-12-14','1995-03-23','DELIVER IN PERSON','AIR','even requests along'), +(4485,175,6,3,43,46232.31,0.01,0.05,'R','F','1995-01-17','1995-02-11','1995-02-07','DELIVER IN PERSON','TRUCK','special pinto beans doubt across the fur'), +(4485,144,5,4,43,44898.02,0.08,0.06,'R','F','1995-01-28','1995-01-26','1995-02-07','DELIVER IN PERSON','AIR','ironic accounts are blithely regular,'), +(4485,6,7,5,47,42582,0.08,0.04,'R','F','1995-03-11','1995-01-11','1995-03-21','TAKE BACK RETURN','RAIL','foxes detect'), +(4486,135,1,1,46,47615.98,0.08,0,'N','O','1998-05-02','1998-04-05','1998-05-08','COLLECT COD','MAIL','regular theodolites sleep blithely.'), +(4486,49,2,2,19,18031.76,0.1,0.01,'N','O','1998-06-07','1998-05-28','1998-07-02','NONE','MAIL','fluffily regular instructions amo'), +(4486,96,7,3,47,46816.23,0.02,0.07,'N','O','1998-04-09','1998-05-24','1998-05-07','DELIVER IN PERSON','MAIL','furiously p'), +(4486,91,4,4,28,27750.52,0.07,0.02,'N','O','1998-04-21','1998-04-19','1998-04-26','TAKE BACK RETURN','AIR','carefully final requests about the'), +(4487,138,4,1,37,38410.81,0.03,0.07,'R','F','1993-02-28','1993-04-18','1993-03-17','TAKE BACK RETURN','MAIL','carefully silent theodolit'), +(4487,113,10,2,49,49642.39,0.1,0,'R','F','1993-06-13','1993-05-08','1993-07-10','COLLECT COD','FOB','carefully express fox'), +(4487,190,1,3,1,1090.19,0.02,0.07,'A','F','1993-05-11','1993-05-23','1993-05-17','TAKE BACK RETURN','FOB','asymptotes cajole carefully ironic'), +(4487,93,4,4,25,24827.25,0.07,0.03,'A','F','1993-03-09','1993-04-27','1993-03-30','COLLECT COD','RAIL','blithely r'), +(4512,162,1,1,30,31864.8,0.07,0.07,'N','O','1996-01-28','1995-12-22','1996-02-22','TAKE BACK RETURN','TRUCK','ironic, idle deposits sublate s'), +(4512,41,4,2,24,22584.96,0.04,0.06,'N','O','1995-12-16','1996-01-16','1995-12-25','NONE','SHIP','quickly bold excuses nag ca'), +(4512,145,8,3,21,21947.94,0,0,'N','O','1995-10-31','1995-12-30','1995-11-15','NONE','REG AIR','pending, ironic requests haggle bli'), +(4512,141,2,4,32,33316.48,0.1,0.01,'N','O','1995-11-25','1995-12-28','1995-12-06','NONE','FOB','slyly ironic accounts detec'), +(4512,133,4,5,43,44424.59,0.06,0,'N','O','1995-12-20','1995-11-28','1996-01-14','NONE','AIR','ironic dependencies wake slyly ironic pint'), +(4513,170,1,1,29,31034.93,0.03,0.01,'N','O','1996-05-18','1996-05-23','1996-06-08','NONE','REG AIR','quickly ironic packages nag. regular, ir'), +(4513,70,9,2,39,37832.73,0.01,0.04,'N','O','1996-06-25','1996-05-14','1996-07-24','NONE','MAIL','express dugouts'), +(4513,138,4,3,34,35296.42,0,0.03,'N','O','1996-03-27','1996-06-12','1996-04-06','DELIVER IN PERSON','SHIP','permanent, eve'), +(4513,192,6,4,13,14198.47,0.08,0.08,'N','O','1996-04-12','1996-05-19','1996-04-25','DELIVER IN PERSON','AIR','requests use blithely ex'), +(4514,164,9,1,27,28732.32,0.06,0.06,'R','F','1994-07-01','1994-07-13','1994-07-26','COLLECT COD','AIR','ironic, regular requests among the fluf'), +(4514,46,3,2,15,14190.6,0.1,0.04,'R','F','1994-08-24','1994-07-11','1994-09-14','DELIVER IN PERSON','RAIL','express hockey players was blithely. care'), +(4514,78,8,3,10,9780.7,0.09,0.05,'A','F','1994-06-19','1994-06-25','1994-07-01','COLLECT COD','SHIP','carefully final accounts eat'), +(4514,81,2,4,9,8829.72,0.1,0.03,'A','F','1994-08-04','1994-07-01','1994-09-01','DELIVER IN PERSON','REG AIR','furiously regular asymptot'), +(4514,149,8,5,12,12589.68,0.02,0.03,'R','F','1994-08-20','1994-06-09','1994-09-15','TAKE BACK RETURN','FOB','silent packa'), +(4514,189,10,6,38,41388.84,0.03,0.05,'A','F','1994-07-28','1994-07-06','1994-08-25','NONE','AIR','bold packages alongside of '), +(4514,177,8,7,27,29083.59,0.04,0.06,'A','F','1994-06-24','1994-07-14','1994-06-30','TAKE BACK RETURN','TRUCK','quickly daring foxes according to the'), +(4515,39,10,1,15,14085.45,0.06,0.01,'R','F','1992-05-26','1992-05-25','1992-06-03','NONE','SHIP','slyly furious account'), +(4515,103,10,2,50,50155,0.06,0.03,'A','F','1992-03-28','1992-05-16','1992-04-20','NONE','AIR','requests was carefu'); +INSERT INTO lineitem VALUES +(4515,154,6,3,27,28462.05,0.09,0.01,'A','F','1992-06-06','1992-06-08','1992-06-07','DELIVER IN PERSON','REG AIR','closely even packages'), +(4515,54,5,4,32,30529.6,0.06,0.03,'R','F','1992-04-07','1992-05-11','1992-04-09','COLLECT COD','MAIL','slyly final accounts cajole b'), +(4515,45,8,5,22,20790.88,0.09,0.07,'A','F','1992-07-16','1992-05-07','1992-07-23','NONE','SHIP','blithely regular packages about the qu'), +(4515,180,8,6,23,24844.14,0.04,0,'R','F','1992-05-23','1992-06-15','1992-06-20','TAKE BACK RETURN','FOB','ironic, unusual dolphins cajole ideas. e'), +(4516,170,9,1,34,36385.78,0.05,0.04,'A','F','1994-05-16','1994-06-23','1994-06-12','NONE','SHIP','pinto beans thrash again'), +(4517,43,4,1,50,47152,0.01,0.02,'N','O','1998-06-08','1998-04-18','1998-06-20','DELIVER IN PERSON','MAIL','blithely permanent instructions acro'), +(4518,144,7,1,9,9397.26,0.09,0.04,'N','O','1997-06-26','1997-07-07','1997-07-10','NONE','RAIL','blithely ev'), +(4518,45,6,2,19,17955.76,0.1,0.05,'N','O','1997-08-09','1997-06-06','1997-08-27','COLLECT COD','RAIL','sauternes do sleep quickly '), +(4519,55,3,1,30,28651.5,0.09,0.07,'R','F','1993-04-11','1993-06-05','1993-04-22','DELIVER IN PERSON','REG AIR','carefully ironic packages boost blithel'), +(4519,191,3,2,37,40374.03,0.06,0.08,'R','F','1993-07-22','1993-06-16','1993-08-19','COLLECT COD','AIR','bold, busy instruc'), +(4544,131,7,1,40,41245.2,0.07,0.01,'N','O','1997-08-15','1997-10-16','1997-08-20','DELIVER IN PERSON','RAIL','excuses sleep furiously carefully'), +(4544,172,2,2,19,20371.23,0.08,0.01,'N','O','1997-08-14','1997-09-08','1997-08-25','NONE','SHIP','theodolites nag furiously after the r'), +(4544,71,9,3,20,19421.4,0.02,0.07,'N','O','1997-10-12','1997-10-11','1997-10-13','COLLECT COD','REG AIR','unusual, final deposits cajole a'), +(4544,51,6,4,39,37090.95,0.07,0.05,'N','O','1997-08-20','1997-09-07','1997-08-27','COLLECT COD','REG AIR','carefully final requests haggle quickl'), +(4544,133,4,5,31,32027.03,0.09,0.03,'N','O','1997-08-09','1997-09-29','1997-08-17','COLLECT COD','TRUCK','furiously exp'), +(4544,27,8,6,8,7416.16,0.1,0.03,'N','O','1997-10-13','1997-10-06','1997-10-25','COLLECT COD','AIR','quickly final requests integrate sly'), +(4545,173,1,1,38,40780.46,0.06,0.06,'R','F','1993-01-27','1993-03-01','1993-02-04','NONE','TRUCK','furiously ironic accounts '), +(4545,63,4,2,27,26002.62,0.01,0.06,'R','F','1993-02-07','1993-02-18','1993-02-18','NONE','FOB','quickly bold pac'), +(4545,87,8,3,9,8883.72,0.1,0.06,'R','F','1993-03-20','1993-02-23','1993-04-11','TAKE BACK RETURN','AIR','slyly furious packages sle'), +(4545,64,9,4,2,1928.12,0.1,0,'R','F','1993-04-16','1993-04-17','1993-05-03','NONE','REG AIR','slyly unusual'), +(4545,117,1,5,27,27461.97,0.08,0.05,'A','F','1993-03-18','1993-02-22','1993-03-23','NONE','RAIL','blithely unusual exc'), +(4545,109,2,6,8,8072.8,0.03,0.02,'A','F','1993-05-01','1993-03-12','1993-05-15','NONE','FOB','slyly regular hockey players cajole qui'), +(4545,9,2,7,36,32724,0.1,0.04,'R','F','1993-01-28','1993-03-30','1993-02-04','DELIVER IN PERSON','SHIP','furiously final packages'), +(4546,133,4,1,10,10331.3,0.09,0.02,'N','O','1995-09-23','1995-10-10','1995-10-23','COLLECT COD','TRUCK','final theodolites wake caref'), +(4546,171,10,2,15,16067.55,0.04,0.07,'N','O','1995-07-31','1995-10-17','1995-08-06','NONE','REG AIR','carefully bold deposits boost alo'), +(4546,77,8,3,4,3908.28,0.06,0.08,'N','O','1995-08-14','1995-10-07','1995-08-16','COLLECT COD','MAIL','slyly ruthless deposits boos'), +(4546,149,6,4,10,10491.4,0.08,0.02,'N','O','1995-09-02','1995-09-16','1995-09-10','DELIVER IN PERSON','FOB','theodolites should have to wake furiously'), +(4547,188,9,1,15,16322.7,0.1,0.04,'A','F','1993-12-08','1993-11-15','1993-12-22','NONE','REG AIR','requests cajole blithely. depos'), +(4547,116,10,2,7,7112.77,0.1,0.02,'A','F','1993-09-04','1993-09-29','1993-09-20','COLLECT COD','RAIL','final instructions ha'), +(4547,45,2,3,15,14175.6,0,0,'R','F','1993-11-18','1993-10-06','1993-12-13','NONE','TRUCK','special ideas impress around t'); +INSERT INTO lineitem VALUES +(4547,148,7,4,15,15722.1,0.05,0.08,'R','F','1993-11-29','1993-10-12','1993-12-29','COLLECT COD','REG AIR','ironic orbits cajole. ironic,'), +(4548,14,8,1,21,19194.21,0.1,0.05,'N','O','1996-07-11','1996-09-04','1996-07-30','COLLECT COD','REG AIR','slyly even pinto beans sleep slyly among '), +(4548,47,10,2,17,16099.68,0,0.08,'N','O','1996-07-23','1996-09-21','1996-07-26','DELIVER IN PERSON','REG AIR','furiously special req'), +(4548,123,2,3,47,48086.64,0.05,0.04,'N','O','1996-07-24','1996-09-12','1996-08-08','NONE','MAIL','pending, even dependencies ag'), +(4548,177,6,4,22,23697.74,0.07,0.01,'N','O','1996-07-06','1996-08-23','1996-07-15','DELIVER IN PERSON','RAIL','quickly bu'), +(4548,45,4,5,36,34021.44,0.04,0.06,'N','O','1996-08-19','1996-09-12','1996-09-08','COLLECT COD','FOB','slyly express pi'), +(4549,159,1,1,44,46602.6,0.08,0,'N','O','1998-03-13','1998-04-15','1998-03-27','TAKE BACK RETURN','TRUCK','ironic requests across the daring instr'), +(4549,89,10,2,1,989.08,0.05,0.08,'N','O','1998-05-04','1998-04-11','1998-05-14','TAKE BACK RETURN','AIR','furiously special deposits bo'), +(4550,150,7,1,9,9451.35,0.05,0.06,'R','F','1995-04-19','1995-02-07','1995-04-24','COLLECT COD','SHIP','ironic, regular accounts caj'), +(4550,66,5,2,19,18355.14,0.06,0.04,'A','F','1995-01-01','1995-02-13','1995-01-20','NONE','AIR','slyly regular packages cajole'), +(4551,11,1,1,6,5466.06,0.08,0.08,'N','O','1996-05-18','1996-04-23','1996-06-13','DELIVER IN PERSON','TRUCK','quickly ironic requ'), +(4551,179,8,2,26,28058.42,0.02,0.04,'N','O','1996-04-14','1996-04-26','1996-04-17','TAKE BACK RETURN','RAIL','special, pending hockey players use alongs'), +(4551,22,1,3,22,20284.44,0.08,0.01,'N','O','1996-05-12','1996-03-17','1996-05-29','TAKE BACK RETURN','REG AIR','special accounts '), +(4551,198,10,4,27,29651.13,0,0.01,'N','O','1996-04-28','1996-03-22','1996-05-22','TAKE BACK RETURN','RAIL','slyly express packages '), +(4576,90,1,1,5,4950.45,0.09,0.03,'N','O','1996-08-23','1996-11-08','1996-09-20','TAKE BACK RETURN','AIR','ironic instruction'), +(4576,58,9,2,43,41196.15,0.08,0.06,'N','O','1996-10-24','1996-09-23','1996-11-10','NONE','SHIP','asymptotes are furiously. careful pl'), +(4576,42,1,3,14,13188.56,0.09,0.01,'N','O','1996-09-12','1996-09-30','1996-09-24','COLLECT COD','MAIL','packages nag slyly bold packages. '), +(4577,185,6,1,43,46662.74,0.01,0.03,'N','O','1998-06-16','1998-07-09','1998-06-17','TAKE BACK RETURN','AIR','blithely bold theodolites are furiously. r'), +(4577,177,6,2,43,46318.31,0.05,0.03,'N','O','1998-08-24','1998-06-02','1998-09-14','TAKE BACK RETURN','RAIL','furiously s'), +(4577,69,6,3,12,11628.72,0.07,0.05,'N','O','1998-07-29','1998-06-17','1998-08-04','DELIVER IN PERSON','TRUCK','blithely unusual platelets are slyly. '), +(4578,74,2,1,10,9740.7,0.09,0.06,'R','F','1993-01-01','1992-11-19','1993-01-28','TAKE BACK RETURN','REG AIR','express, regular requests was aft'), +(4578,169,10,2,42,44904.72,0.06,0,'R','F','1993-01-05','1992-11-06','1993-01-13','DELIVER IN PERSON','FOB','final packages should hav'), +(4578,179,8,3,15,16187.55,0.01,0.01,'R','F','1992-10-23','1992-11-22','1992-11-09','DELIVER IN PERSON','REG AIR','ironic, regular'), +(4578,139,10,4,7,7273.91,0.09,0.08,'A','F','1992-12-07','1992-11-27','1993-01-05','TAKE BACK RETURN','SHIP','furiously final accounts according t'), +(4578,163,2,5,20,21263.2,0.04,0.02,'A','F','1993-01-11','1992-11-09','1993-01-23','TAKE BACK RETURN','RAIL','quickly ironic '), +(4579,175,4,1,14,15052.38,0.02,0.02,'N','O','1996-02-01','1996-01-08','1996-02-08','TAKE BACK RETURN','MAIL','ironic packages wake express dep'), +(4579,42,3,2,28,26377.12,0.02,0.05,'N','O','1996-01-22','1996-02-13','1996-02-03','DELIVER IN PERSON','RAIL','regular, ironic accounts cajo'), +(4579,178,9,3,34,36657.78,0.05,0.02,'N','O','1996-02-26','1996-02-22','1996-03-16','COLLECT COD','MAIL','evenly bold ideas sleep furious'), +(4579,120,1,4,8,8160.96,0.05,0.06,'N','O','1995-12-16','1996-01-15','1995-12-18','TAKE BACK RETURN','AIR','slyly bold dependencies cajole according to'); +INSERT INTO lineitem VALUES +(4580,92,5,1,22,21825.98,0.01,0.05,'A','F','1994-01-16','1994-01-26','1994-02-05','COLLECT COD','AIR','even accounts use carefully! '), +(4580,32,3,2,10,9320.3,0.05,0.04,'R','F','1993-12-20','1993-12-30','1994-01-17','COLLECT COD','RAIL','regular requests am'), +(4580,1,8,3,41,36941,0,0.07,'R','F','1993-12-13','1994-01-31','1994-01-06','NONE','SHIP','quickly final requests lose. fluf'), +(4580,178,8,4,5,5390.85,0.07,0,'A','F','1994-01-28','1993-12-17','1994-02-22','NONE','TRUCK','blithely bol'), +(4580,189,10,5,39,42478.02,0.03,0.02,'R','F','1993-12-28','1993-12-26','1994-01-23','NONE','RAIL','regular requests c'), +(4581,165,4,1,37,39410.92,0.01,0.04,'A','F','1992-10-17','1992-11-05','1992-11-04','DELIVER IN PERSON','MAIL','pending pin'), +(4581,50,3,2,7,6650.35,0.01,0.02,'A','F','1992-10-09','1992-10-20','1992-10-21','TAKE BACK RETURN','MAIL','furiously even requests sleep furi'), +(4581,21,10,3,46,42366.92,0.04,0.04,'A','F','1992-09-09','1992-11-27','1992-09-26','NONE','REG AIR','blithely ironic deposits after the'), +(4582,192,5,1,17,18567.23,0.09,0.08,'N','O','1996-08-17','1996-08-26','1996-08-20','COLLECT COD','REG AIR','slyly final requests boost about the'), +(4583,141,2,1,17,17699.38,0.01,0.05,'A','F','1994-11-08','1994-11-03','1994-11-29','COLLECT COD','MAIL','notornis cajole carefully quick'), +(4583,187,8,2,43,46748.74,0.04,0.04,'A','F','1994-10-30','1994-12-17','1994-11-16','COLLECT COD','RAIL','sly theodolites use carefully across the'), +(4583,196,10,3,28,30693.32,0,0.07,'A','F','1994-10-29','1994-11-21','1994-11-28','NONE','SHIP','final packages sleep furiously fi'), +(4583,173,4,4,27,28975.59,0.08,0.03,'R','F','1995-01-11','1994-12-24','1995-02-10','DELIVER IN PERSON','TRUCK','dugouts above the slyly final pearls are'), +(4583,184,5,5,36,39030.48,0.09,0.06,'A','F','1995-01-06','1994-11-25','1995-01-29','DELIVER IN PERSON','RAIL','slyly careful request'), +(4583,122,7,6,14,14309.68,0.09,0.01,'R','F','1994-11-17','1994-11-08','1994-11-21','DELIVER IN PERSON','AIR','slyly pending foxes slee'), +(4583,87,8,7,32,31586.56,0.04,0,'A','F','1995-01-13','1994-10-29','1995-02-08','TAKE BACK RETURN','RAIL','blithely regular instructions wa'), +(4608,173,1,1,30,32195.1,0.08,0.05,'R','F','1994-10-08','1994-07-18','1994-10-25','DELIVER IN PERSON','SHIP','regular ideas will unwind ironically acr'), +(4608,47,8,2,50,47352,0.06,0.01,'A','F','1994-07-25','1994-09-01','1994-08-10','NONE','FOB','furiously ironic requests are. bold instruc'), +(4608,79,9,3,50,48953.5,0.03,0.01,'A','F','1994-08-04','1994-09-10','1994-08-13','COLLECT COD','TRUCK','packages are carefully '), +(4608,31,2,4,36,33517.08,0.05,0.06,'R','F','1994-10-04','1994-08-02','1994-10-21','COLLECT COD','FOB','dependencies cajole along the'), +(4609,47,6,1,28,26517.12,0.1,0.05,'N','O','1997-02-02','1997-02-17','1997-03-02','DELIVER IN PERSON','REG AIR','ideas detect furiousl'), +(4609,185,6,2,3,3255.54,0.09,0.03,'N','O','1996-12-28','1997-02-06','1997-01-20','NONE','FOB','carefully stealthy orbits are.'), +(4609,23,4,3,46,42458.92,0.05,0.05,'N','O','1997-02-11','1997-01-16','1997-03-07','NONE','FOB','always express foxes hinder a'), +(4610,87,8,1,21,20728.68,0.07,0.07,'R','F','1993-08-10','1993-08-05','1993-08-27','NONE','REG AIR','regular, regular deposits sleep enticingly '), +(4610,175,5,2,14,15052.38,0,0.07,'R','F','1993-07-28','1993-07-25','1993-07-31','TAKE BACK RETURN','SHIP','quietly regular requests wake. slyly fina'), +(4610,159,1,3,44,46602.6,0.05,0.03,'A','F','1993-08-05','1993-07-20','1993-08-19','COLLECT COD','TRUCK','slyly final foxes '), +(4610,75,3,4,26,25351.82,0.06,0.03,'R','F','1993-07-01','1993-07-19','1993-07-19','NONE','MAIL','fluffily silent excuses sleep ca'), +(4610,147,8,5,29,30367.06,0.08,0.04,'R','F','1993-08-09','1993-07-27','1993-08-16','DELIVER IN PERSON','AIR','fluffily regular foxes alongside of th'), +(4611,52,7,1,47,44746.35,0.09,0.06,'A','F','1993-03-05','1993-03-01','1993-03-17','COLLECT COD','TRUCK','furiously regular instructio'); +INSERT INTO lineitem VALUES +(4611,35,6,2,31,28985.93,0.04,0.02,'A','F','1993-01-28','1993-02-14','1993-01-29','TAKE BACK RETURN','AIR','fluffily regular dependencies '), +(4611,82,3,3,50,49104,0.08,0.01,'R','F','1993-01-22','1993-03-30','1993-02-16','TAKE BACK RETURN','AIR','furiously even ideas '), +(4611,71,9,4,48,46611.36,0.02,0.08,'R','F','1993-02-28','1993-02-12','1993-03-01','COLLECT COD','AIR','slyly final requests sleep slyly'), +(4612,6,9,1,20,18120,0.02,0.03,'R','F','1993-09-24','1993-12-18','1993-10-22','NONE','AIR','blithely final ins'), +(4612,50,7,2,17,16150.85,0.1,0.06,'A','F','1994-01-09','1993-11-08','1994-02-06','TAKE BACK RETURN','REG AIR','furiously idle sheaves en'), +(4612,137,8,3,40,41485.2,0.08,0.01,'R','F','1993-10-08','1993-11-23','1993-10-24','DELIVER IN PERSON','RAIL','bold, regular theodolites'), +(4612,185,6,4,10,10851.8,0.1,0.06,'A','F','1993-11-11','1993-11-19','1993-11-13','TAKE BACK RETURN','SHIP','even requests along the blithel'), +(4613,38,9,1,17,15946.51,0.09,0.07,'N','O','1998-06-07','1998-05-11','1998-06-29','DELIVER IN PERSON','SHIP','requests snooze blithely final request'), +(4613,108,1,2,25,25202.5,0.05,0.04,'N','O','1998-05-22','1998-04-11','1998-05-27','TAKE BACK RETURN','SHIP','carefully specia'), +(4613,174,3,3,15,16112.55,0.1,0.02,'N','O','1998-05-31','1998-04-16','1998-06-25','DELIVER IN PERSON','MAIL','slyly bold packages haggle a'), +(4613,8,1,4,36,32688,0.04,0.01,'N','O','1998-04-22','1998-05-05','1998-05-04','DELIVER IN PERSON','AIR','blithely even Tiresias are.'), +(4613,111,8,5,35,35388.85,0.04,0.06,'N','O','1998-06-04','1998-04-17','1998-06-20','COLLECT COD','MAIL','furiously ironic ideas im'), +(4613,196,8,6,47,51520.93,0.04,0.04,'N','O','1998-07-03','1998-05-26','1998-07-09','NONE','FOB','pending, furious'), +(4613,119,3,7,39,39745.29,0.09,0.05,'N','O','1998-06-12','1998-06-01','1998-07-06','DELIVER IN PERSON','REG AIR','accounts detect'), +(4614,7,2,1,19,17233,0.09,0.08,'N','O','1996-05-17','1996-06-21','1996-06-08','TAKE BACK RETURN','AIR','furiously express requests w'), +(4614,65,6,2,3,2895.18,0.08,0.01,'N','O','1996-07-22','1996-07-21','1996-08-07','NONE','MAIL','ruthlessly'), +(4614,8,1,3,36,32688,0.1,0.04,'N','O','1996-07-05','1996-06-26','1996-07-07','NONE','REG AIR','silent, regular instruct'), +(4614,126,9,4,6,6156.72,0.09,0.01,'N','O','1996-06-11','1996-05-30','1996-07-03','COLLECT COD','REG AIR','slyly daring reque'), +(4614,73,3,5,24,23353.68,0.07,0.06,'N','O','1996-07-01','1996-06-24','1996-07-08','COLLECT COD','REG AIR','slyly express accounts cajole '), +(4614,34,5,6,32,29888.96,0.1,0.05,'N','O','1996-08-21','1996-05-28','1996-09-16','NONE','REG AIR','carefully pending requests above '), +(4614,128,1,7,41,42152.92,0.01,0.07,'N','O','1996-07-31','1996-07-12','1996-08-16','COLLECT COD','REG AIR','quick, bold accounts boost blithely '), +(4615,92,4,1,10,9920.9,0.02,0.08,'A','F','1993-11-20','1993-10-05','1993-12-08','DELIVER IN PERSON','AIR','instructions boos'), +(4640,88,9,1,5,4940.4,0.03,0.08,'N','O','1996-02-05','1996-02-14','1996-02-15','TAKE BACK RETURN','RAIL','slyly regular depo'), +(4640,88,9,2,9,8892.72,0.03,0.05,'N','O','1996-02-12','1996-02-14','1996-02-29','DELIVER IN PERSON','AIR','blithely unusual packages are fluffily'), +(4640,27,10,3,18,16686.36,0.02,0.07,'N','O','1996-02-28','1996-03-06','1996-03-28','DELIVER IN PERSON','RAIL','final requests unwind slyly '), +(4640,23,2,4,36,33228.72,0.06,0.08,'N','O','1996-01-03','1996-03-09','1996-01-11','DELIVER IN PERSON','RAIL','express, ironic requests wake '), +(4640,156,1,5,15,15842.25,0.03,0.02,'N','O','1996-03-19','1996-02-09','1996-04-11','TAKE BACK RETURN','FOB','pending pinto beans ea'), +(4641,190,1,1,45,49058.55,0.07,0.03,'R','F','1993-05-11','1993-04-19','1993-05-21','DELIVER IN PERSON','MAIL','furiously silent accounts hagg'), +(4641,95,7,2,39,38808.51,0.06,0,'R','F','1993-02-10','1993-03-06','1993-02-15','TAKE BACK RETURN','REG AIR','express braids at the carefull'), +(4641,36,7,3,15,14040.45,0.01,0.08,'R','F','1993-01-25','1993-04-09','1993-02-05','TAKE BACK RETURN','AIR','bold, regular theo'); +INSERT INTO lineitem VALUES +(4642,194,7,1,11,12036.09,0.04,0.07,'A','F','1995-05-23','1995-04-26','1995-06-04','COLLECT COD','TRUCK','carefully silent forges snooze furiously '), +(4642,180,10,2,34,36726.12,0.04,0.07,'R','F','1995-04-01','1995-05-11','1995-04-23','COLLECT COD','SHIP','fluffily fluffy deposits are quickly alongs'), +(4642,21,2,3,10,9210.2,0.04,0.02,'R','F','1995-04-16','1995-04-28','1995-04-24','COLLECT COD','RAIL','bold courts a'), +(4642,94,7,4,18,17893.62,0,0.04,'N','F','1995-06-16','1995-04-16','1995-06-21','NONE','TRUCK','final, ironic d'), +(4642,179,10,5,41,44245.97,0.1,0,'R','F','1995-04-08','1995-04-13','1995-05-01','DELIVER IN PERSON','MAIL','closely bold deposits are furiou'), +(4643,185,6,1,50,54259,0.08,0.05,'N','O','1995-09-11','1995-08-13','1995-09-30','DELIVER IN PERSON','SHIP','slyly ironic theodolites integrate f'), +(4644,177,7,1,4,4308.68,0.06,0.03,'N','O','1998-05-06','1998-03-19','1998-05-28','NONE','MAIL','blithely final pack'), +(4644,97,8,2,16,15953.44,0.03,0.04,'N','O','1998-03-13','1998-02-21','1998-04-03','COLLECT COD','SHIP','furiously pending i'), +(4644,115,9,3,10,10151.1,0.02,0.02,'N','O','1998-02-21','1998-02-28','1998-03-19','COLLECT COD','REG AIR','bold pinto beans detec'), +(4644,154,2,4,45,47436.75,0.1,0.07,'N','O','1998-02-02','1998-04-08','1998-02-15','COLLECT COD','SHIP','ideas breach bold'), +(4644,87,8,5,10,9870.8,0.08,0.08,'N','O','1998-03-12','1998-03-11','1998-03-19','TAKE BACK RETURN','REG AIR','regular acco'), +(4645,50,7,1,45,42752.25,0.09,0.05,'A','F','1994-12-27','1994-11-02','1994-12-31','DELIVER IN PERSON','AIR','accounts at the carefully re'), +(4645,66,7,2,32,30913.92,0.1,0.08,'A','F','1994-11-17','1994-10-30','1994-11-18','COLLECT COD','REG AIR','slyly pending packages '), +(4645,54,5,3,25,23851.25,0.03,0,'R','F','1994-10-25','1994-12-11','1994-11-14','NONE','REG AIR','carefully pending'), +(4645,37,8,4,42,39355.26,0.1,0.02,'R','F','1994-12-02','1994-12-18','1994-12-16','COLLECT COD','TRUCK','ironic, express packages detec'), +(4645,161,10,5,35,37140.6,0.03,0.07,'A','F','1994-12-08','1994-11-25','1994-12-09','TAKE BACK RETURN','FOB','requests are. ironic, ironic requests a'), +(4645,42,9,6,27,25435.08,0.09,0.08,'R','F','1994-11-26','1994-10-25','1994-12-04','NONE','SHIP','blithely regular theodolites against'), +(4645,31,2,7,42,39103.26,0.1,0.06,'A','F','1994-12-31','1994-10-22','1995-01-28','DELIVER IN PERSON','AIR','furiously final accounts d'), +(4646,191,3,1,24,26188.56,0.02,0.05,'N','O','1996-09-18','1996-08-09','1996-09-21','TAKE BACK RETURN','RAIL','doggedly fi'), +(4646,178,6,2,26,28032.42,0.07,0,'N','O','1996-10-02','1996-08-25','1996-10-27','DELIVER IN PERSON','MAIL','slyly special pac'), +(4646,34,10,3,18,16812.54,0.01,0,'N','O','1996-06-30','1996-08-10','1996-07-12','TAKE BACK RETURN','TRUCK','slyly final foxes grow slyly '), +(4646,40,1,4,38,35721.52,0.08,0.01,'N','O','1996-09-01','1996-08-23','1996-09-27','COLLECT COD','SHIP','carefully regular reques'), +(4646,26,1,5,22,20372.44,0.01,0.08,'N','O','1996-07-14','1996-08-06','1996-07-29','DELIVER IN PERSON','MAIL','quiet requ'), +(4647,93,6,1,16,15889.44,0.09,0.07,'R','F','1994-09-07','1994-07-15','1994-10-06','COLLECT COD','RAIL','final excuses'), +(4647,129,2,2,34,34990.08,0.01,0.02,'R','F','1994-05-20','1994-06-20','1994-05-29','COLLECT COD','TRUCK','special foxes boost about the slyly ir'), +(4647,147,8,3,27,28272.78,0.03,0.08,'R','F','1994-05-20','1994-06-26','1994-05-30','NONE','FOB','carefully express ideas above the bol'), +(4647,139,10,4,2,2078.26,0.04,0.07,'R','F','1994-07-03','1994-07-22','1994-07-22','TAKE BACK RETURN','RAIL','blithely silent accounts affix furi'), +(4647,187,8,5,2,2174.36,0.07,0.06,'A','F','1994-05-27','1994-08-05','1994-06-10','TAKE BACK RETURN','FOB','furiously ir'), +(4647,29,4,6,28,26012.56,0.02,0.03,'A','F','1994-08-25','1994-08-06','1994-09-18','DELIVER IN PERSON','FOB','ironic accounts kindle furiously alo'), +(4672,59,7,1,22,21099.1,0.01,0.07,'N','O','1995-12-03','1995-12-08','1995-12-17','COLLECT COD','AIR','regular packages thrash blithely. '); +INSERT INTO lineitem VALUES +(4672,61,10,2,41,39403.46,0,0,'N','O','1995-12-01','1995-12-15','1995-12-12','COLLECT COD','RAIL','express foxes cajole '), +(4672,163,10,3,24,25515.84,0.04,0.03,'N','O','1995-11-11','1995-12-28','1995-12-04','NONE','REG AIR','quickly final pac'), +(4672,57,2,4,13,12441.65,0.1,0.03,'N','O','1996-02-02','1995-12-13','1996-03-02','DELIVER IN PERSON','RAIL','even ideas across '), +(4672,55,10,5,45,42977.25,0.08,0.07,'N','O','1996-02-07','1996-01-16','1996-02-14','DELIVER IN PERSON','MAIL','furiously special realms integrate'), +(4672,141,8,6,20,20822.8,0.02,0.07,'N','O','1995-12-08','1996-01-25','1995-12-19','COLLECT COD','REG AIR','escapades aft'), +(4672,72,10,7,38,36938.66,0.01,0.01,'N','O','1995-11-28','1995-12-08','1995-12-13','COLLECT COD','SHIP','furiously regular '), +(4673,17,8,1,8,7336.08,0.08,0.01,'N','O','1996-10-12','1996-10-05','1996-11-04','TAKE BACK RETURN','FOB','carefully ironic requests wake. dolphins'), +(4673,101,2,2,44,44048.4,0.06,0.01,'N','O','1996-12-11','1996-10-31','1997-01-08','DELIVER IN PERSON','RAIL','quickly final ideas sleep slyly against th'), +(4673,123,2,3,9,9208.08,0.04,0.07,'N','O','1996-10-15','1996-09-30','1996-10-30','DELIVER IN PERSON','MAIL','final instructions cajol'), +(4674,150,7,1,50,52507.5,0.07,0.08,'A','F','1994-05-13','1994-06-15','1994-06-05','COLLECT COD','RAIL','final deposits ma'), +(4674,189,10,2,35,38121.3,0.02,0.05,'A','F','1994-08-02','1994-06-04','1994-08-21','COLLECT COD','FOB','regular excuses wake car'), +(4674,111,5,3,3,3033.33,0.01,0.05,'A','F','1994-07-19','1994-05-28','1994-07-23','TAKE BACK RETURN','RAIL','furiously final instructions cajole '), +(4674,13,7,4,21,19173.21,0.02,0.08,'R','F','1994-05-08','1994-07-02','1994-06-04','COLLECT COD','RAIL','blithely unusual requests'), +(4675,171,2,1,6,6427.02,0,0.05,'R','F','1994-01-22','1994-01-06','1994-02-12','TAKE BACK RETURN','TRUCK','carefully reg'), +(4675,144,7,2,12,12529.68,0,0.04,'A','F','1993-12-22','1994-01-12','1993-12-23','TAKE BACK RETURN','AIR','furiously '), +(4675,181,2,3,5,5405.9,0.05,0.05,'A','F','1994-01-16','1994-01-05','1994-01-18','DELIVER IN PERSON','RAIL','carefully unusual asymptotes among the expr'), +(4675,34,10,4,26,24284.78,0.03,0.01,'A','F','1993-12-16','1993-12-29','1993-12-23','DELIVER IN PERSON','SHIP','slyly bold accounts'), +(4675,81,2,5,18,17659.44,0.01,0.08,'R','F','1994-02-23','1994-01-18','1994-03-05','TAKE BACK RETURN','FOB','furiously regular do'), +(4675,119,10,6,1,1019.11,0.1,0.06,'R','F','1994-03-18','1994-02-14','1994-04-17','NONE','SHIP','slyly ironic Tiresias ought to cajole caref'), +(4676,165,2,1,47,50062.52,0.03,0.06,'N','O','1995-12-20','1995-10-04','1996-01-09','NONE','AIR','blithely final '), +(4676,6,1,2,33,29898,0.08,0.05,'N','O','1995-12-29','1995-10-01','1996-01-18','TAKE BACK RETURN','FOB','furiously special dolphins detec'), +(4676,146,3,3,4,4184.56,0.1,0.06,'N','O','1995-12-12','1995-10-22','1995-12-13','TAKE BACK RETURN','TRUCK','blithely final de'), +(4676,111,2,4,50,50555.5,0.07,0.01,'N','O','1995-09-20','1995-11-20','1995-10-18','TAKE BACK RETURN','AIR','unusual, stealthy '), +(4676,122,7,5,29,29641.48,0.01,0.02,'N','O','1995-12-29','1995-11-12','1996-01-06','TAKE BACK RETURN','RAIL','boldly even packages cajol'), +(4676,46,7,6,8,7568.32,0.08,0.08,'N','O','1995-12-05','1995-10-18','1996-01-02','COLLECT COD','AIR','pending packages '), +(4676,64,1,7,13,12532.78,0.05,0.07,'N','O','1995-11-18','1995-11-07','1995-12-10','TAKE BACK RETURN','TRUCK','even, regular ac'), +(4677,128,3,1,25,25703,0.04,0.04,'N','O','1998-04-11','1998-05-11','1998-04-18','TAKE BACK RETURN','REG AIR','furiously final foxes bo'), +(4678,58,6,1,35,33531.75,0.04,0.08,'N','O','1998-11-27','1998-10-02','1998-12-17','TAKE BACK RETURN','AIR','furiously ir'), +(4678,117,1,2,18,18307.98,0.03,0.06,'N','O','1998-10-30','1998-09-22','1998-11-25','TAKE BACK RETURN','SHIP','silent requests haggle carefully re'), +(4678,96,9,3,13,12949.17,0.1,0.07,'N','O','1998-11-03','1998-10-17','1998-11-06','TAKE BACK RETURN','SHIP','daring epitaphs maintain blithely quickl'); +INSERT INTO lineitem VALUES +(4678,22,1,4,23,21206.46,0.06,0.05,'N','O','1998-09-03','1998-09-20','1998-09-04','DELIVER IN PERSON','SHIP','quickly express deposits cajole'), +(4678,178,9,5,40,43126.8,0.03,0.07,'N','O','1998-11-11','1998-10-27','1998-11-24','TAKE BACK RETURN','AIR','slyly ironic requests haggle. furiously'), +(4679,190,1,1,7,7631.33,0.1,0.05,'R','F','1993-05-11','1993-04-11','1993-05-16','NONE','TRUCK','ironic packages according to the theo'), +(4704,78,6,1,14,13692.98,0.04,0.04,'N','O','1996-10-27','1996-11-02','1996-11-07','DELIVER IN PERSON','TRUCK','carefully bold ideas haggle carefully a'), +(4704,28,3,2,7,6496.14,0.03,0.04,'N','O','1996-12-04','1996-10-30','1996-12-23','DELIVER IN PERSON','SHIP','silent depe'), +(4704,64,5,3,44,42418.64,0.02,0.05,'N','O','1996-09-02','1996-10-07','1996-09-17','DELIVER IN PERSON','REG AIR','fluffily even depths doub'), +(4705,111,8,1,22,22244.42,0.04,0.04,'R','F','1992-07-05','1992-05-11','1992-07-29','DELIVER IN PERSON','SHIP','packages after the c'), +(4705,31,7,2,14,13034.42,0,0.08,'R','F','1992-07-14','1992-05-23','1992-07-25','DELIVER IN PERSON','TRUCK','even deposits wake carefully qui'), +(4705,56,1,3,16,15296.8,0.07,0.08,'R','F','1992-07-02','1992-06-06','1992-07-06','DELIVER IN PERSON','RAIL','silent orbits along the quickly reg'), +(4705,130,3,4,31,31934.03,0.03,0.03,'R','F','1992-04-03','1992-05-30','1992-04-05','COLLECT COD','TRUCK','furiously ironic ideas haggle fluf'), +(4705,163,10,5,28,29768.48,0.1,0.01,'A','F','1992-06-03','1992-06-07','1992-06-22','DELIVER IN PERSON','MAIL','final packages instead of the even'), +(4705,184,5,6,23,24936.14,0.06,0.03,'R','F','1992-06-22','1992-06-11','1992-07-18','DELIVER IN PERSON','MAIL','slyly express accounts about the idle pint'), +(4705,89,10,7,40,39563.2,0.08,0.06,'A','F','1992-04-19','1992-04-28','1992-05-07','COLLECT COD','TRUCK','quickly final packages b'), +(4706,182,3,1,37,40040.66,0.02,0.06,'A','F','1993-02-20','1993-03-05','1993-03-03','DELIVER IN PERSON','TRUCK','deposits slee'), +(4706,122,3,2,23,23508.76,0.03,0.01,'A','F','1993-04-01','1993-03-13','1993-05-01','COLLECT COD','FOB','furiously permanent dependen'), +(4706,68,5,3,6,5808.36,0.01,0.04,'R','F','1993-01-20','1993-03-18','1993-01-26','NONE','MAIL','final, unusual deposits haggle furiously b'), +(4706,116,10,4,5,5080.55,0.06,0.06,'R','F','1993-02-14','1993-01-31','1993-02-26','NONE','REG AIR','slyly ironic pinto beans print. depende'), +(4706,50,7,5,27,25651.35,0.06,0.08,'A','F','1993-04-04','1993-03-11','1993-04-09','COLLECT COD','REG AIR','slyly regular deposits sleep furio'), +(4707,34,5,1,7,6538.21,0.02,0.05,'R','F','1995-05-14','1995-04-06','1995-06-06','COLLECT COD','SHIP','bravely unusual accounts haggle. care'), +(4707,136,7,2,49,50770.37,0,0.07,'N','F','1995-06-17','1995-05-16','1995-06-25','COLLECT COD','FOB','special, even deposits according to th'), +(4708,191,4,1,18,19641.42,0.02,0.04,'A','F','1994-11-11','1994-11-15','1994-11-26','NONE','REG AIR','furiously special pinto bea'), +(4708,75,3,2,5,4875.35,0.05,0.05,'A','F','1994-10-15','1994-12-02','1994-11-12','COLLECT COD','MAIL','ironic, silent accounts maintain blithel'), +(4708,77,7,3,32,31266.24,0.04,0.07,'A','F','1994-11-12','1994-11-14','1994-11-23','TAKE BACK RETURN','MAIL','express dependencies lose slyly'), +(4709,25,6,1,25,23125.5,0.03,0.05,'N','O','1996-02-21','1996-02-11','1996-03-17','DELIVER IN PERSON','AIR','carefully unusua'), +(4709,177,5,2,25,26929.25,0.05,0.03,'N','O','1996-01-22','1996-03-03','1996-02-21','DELIVER IN PERSON','REG AIR','slyly special deposits are sly'), +(4710,183,4,1,40,43327.2,0.1,0.08,'A','F','1995-03-09','1995-02-25','1995-03-29','TAKE BACK RETURN','AIR','final, regular Tiresias wake a'), +(4710,128,3,2,47,48321.64,0.04,0.01,'R','F','1995-02-22','1995-01-12','1995-02-28','NONE','RAIL','fluffily even pinto beans b'), +(4711,133,4,1,7,7231.91,0.03,0.01,'N','O','1998-05-12','1998-06-24','1998-05-24','COLLECT COD','MAIL','permanent idea'); +INSERT INTO lineitem VALUES +(4711,145,6,2,15,15677.1,0.08,0.07,'N','O','1998-06-09','1998-07-30','1998-06-18','COLLECT COD','SHIP','slowly final excuses haggle. fluffily reg'), +(4711,150,1,3,22,23103.3,0.02,0.03,'N','O','1998-06-21','1998-06-18','1998-07-19','TAKE BACK RETURN','REG AIR','furiously '), +(4711,65,10,4,8,7720.48,0.07,0,'N','O','1998-06-17','1998-06-13','1998-06-27','TAKE BACK RETURN','SHIP','silently silent excuses'), +(4711,49,2,5,15,14235.6,0.05,0.01,'N','O','1998-09-03','1998-07-15','1998-09-13','TAKE BACK RETURN','SHIP','furiously i'), +(4711,116,7,6,45,45724.95,0.05,0.06,'N','O','1998-05-19','1998-07-14','1998-05-21','COLLECT COD','SHIP','deposits d'), +(4711,46,5,7,18,17028.72,0.05,0.04,'N','O','1998-07-03','1998-07-31','1998-07-23','DELIVER IN PERSON','RAIL','slyly fina'), +(4736,196,10,1,26,28500.94,0.03,0.03,'N','O','1996-02-02','1996-01-18','1996-02-09','DELIVER IN PERSON','AIR','furiously even s'), +(4736,4,1,2,43,38872,0.06,0.07,'N','O','1996-02-05','1995-12-21','1996-02-06','COLLECT COD','MAIL','never ironic requests'), +(4737,191,5,1,37,40374.03,0.03,0.04,'R','F','1993-05-17','1993-04-10','1993-05-30','DELIVER IN PERSON','TRUCK','furiously pending pinto beans cajole '), +(4737,69,8,2,22,21319.32,0.04,0.04,'A','F','1993-03-29','1993-05-22','1993-04-16','TAKE BACK RETURN','RAIL','blithely express pinto beans wake'), +(4738,187,8,1,9,9784.62,0.04,0.04,'A','F','1992-06-01','1992-06-26','1992-06-02','COLLECT COD','TRUCK','express platelets use accord'), +(4738,173,3,2,16,17170.72,0.07,0.08,'A','F','1992-06-17','1992-06-20','1992-06-21','NONE','MAIL','theodolites cajole'), +(4738,100,2,3,50,50005,0.04,0.02,'A','F','1992-06-18','1992-07-04','1992-07-07','TAKE BACK RETURN','TRUCK','final theodol'), +(4738,29,4,4,22,20438.44,0.02,0.08,'A','F','1992-05-25','1992-05-19','1992-06-12','COLLECT COD','SHIP','regular, bold foxes are blithely agains'), +(4738,187,8,5,13,14133.34,0.04,0.05,'R','F','1992-05-30','1992-06-11','1992-06-26','COLLECT COD','AIR','silent packages beneath the slyly bold '), +(4738,159,1,6,10,10591.5,0.1,0.01,'R','F','1992-07-10','1992-06-16','1992-07-25','TAKE BACK RETURN','SHIP','furiously regular deposits should hav'), +(4738,83,4,7,28,27526.24,0.05,0.07,'A','F','1992-06-09','1992-07-05','1992-06-25','NONE','AIR','furiously blithe theodolites above '), +(4739,168,9,1,8,8545.28,0.07,0.07,'R','F','1993-06-22','1993-05-10','1993-07-11','TAKE BACK RETURN','SHIP','final platelets are quickly. special,'), +(4739,185,6,2,31,33640.58,0.09,0.06,'R','F','1993-06-20','1993-05-18','1993-06-26','COLLECT COD','SHIP','even warhorses against the dol'), +(4739,100,4,3,30,30003,0.09,0,'A','F','1993-05-29','1993-04-12','1993-06-18','NONE','TRUCK','furiously permanent deposits use care'), +(4740,3,4,1,22,19866,0.06,0.01,'N','O','1996-10-04','1996-08-17','1996-10-05','TAKE BACK RETURN','RAIL','accounts alongside of the d'), +(4740,153,5,2,24,25275.6,0.08,0.02,'N','O','1996-09-10','1996-09-27','1996-10-07','TAKE BACK RETURN','TRUCK','pending, regular foxes cajole '), +(4741,73,2,1,24,23353.68,0,0.01,'A','F','1992-09-16','1992-09-19','1992-09-20','DELIVER IN PERSON','RAIL','platelets haggle furiously across the bl'), +(4741,113,4,2,16,16209.76,0.01,0.07,'R','F','1992-08-25','1992-08-10','1992-08-29','TAKE BACK RETURN','FOB','carefully special accounts doubt carefully '), +(4741,156,8,3,24,25347.6,0.05,0.08,'A','F','1992-11-04','1992-08-14','1992-11-06','TAKE BACK RETURN','MAIL','carefully specia'), +(4741,51,3,4,39,37090.95,0.09,0.06,'R','F','1992-10-28','1992-10-03','1992-11-11','COLLECT COD','SHIP','ironic, regul'), +(4741,179,10,5,40,43166.8,0.09,0.03,'R','F','1992-09-20','1992-09-23','1992-10-09','TAKE BACK RETURN','REG AIR','slyly quick theodolit'), +(4741,157,5,6,34,35943.1,0.02,0.07,'R','F','1992-08-25','1992-08-18','1992-09-20','DELIVER IN PERSON','RAIL','even, even deposits wak'), +(4742,156,4,1,32,33796.8,0.1,0.08,'R','F','1995-04-04','1995-06-12','1995-04-19','COLLECT COD','RAIL','carefully unusual reque'); +INSERT INTO lineitem VALUES +(4742,155,7,2,29,30599.35,0.02,0.03,'N','F','1995-06-15','1995-05-05','1995-06-24','COLLECT COD','REG AIR','slyly final in'), +(4742,72,10,3,15,14581.05,0.06,0.04,'N','O','1995-07-20','1995-05-26','1995-08-11','NONE','SHIP','slyly careful ex'), +(4742,188,9,4,31,33733.58,0.05,0.08,'N','F','1995-06-13','1995-05-08','1995-06-24','COLLECT COD','REG AIR','silent dolphins a'), +(4742,100,1,5,45,45004.5,0.05,0,'R','F','1995-05-12','1995-05-14','1995-06-07','TAKE BACK RETURN','RAIL','unusual requests sleep: carefully'), +(4743,60,5,1,19,18241.14,0.04,0.07,'A','F','1993-06-23','1993-05-03','1993-07-20','COLLECT COD','AIR','quickly regular pinto bean'), +(4743,159,4,2,3,3177.45,0.01,0.03,'R','F','1993-04-14','1993-06-08','1993-05-09','NONE','TRUCK','deposits de'), +(4743,73,2,3,21,20434.47,0.08,0.03,'A','F','1993-07-02','1993-06-15','1993-07-26','DELIVER IN PERSON','RAIL','quickly special deposits '), +(4743,34,5,4,27,25218.81,0.08,0.05,'R','F','1993-07-26','1993-05-27','1993-08-24','DELIVER IN PERSON','AIR','furiously regular packages across th'), +(4768,36,7,1,5,4680.15,0,0.03,'R','F','1993-12-27','1994-02-09','1994-01-11','NONE','MAIL','carefully bold theodolites cajole bl'), +(4769,35,1,1,16,14960.48,0.08,0.05,'N','O','1995-07-16','1995-07-05','1995-07-22','TAKE BACK RETURN','FOB','carefully unusual requests around the c'), +(4769,63,8,2,34,32744.04,0.06,0.07,'N','O','1995-07-26','1995-05-18','1995-08-03','COLLECT COD','REG AIR','pending accounts across the quick'), +(4769,47,10,3,36,34093.44,0.1,0.03,'N','O','1995-07-22','1995-06-16','1995-08-11','NONE','RAIL','blithely i'), +(4769,69,10,4,45,43607.7,0.08,0.06,'R','F','1995-06-01','1995-07-13','1995-06-04','TAKE BACK RETURN','RAIL','ruthlessly pending theodolites along t'), +(4769,112,6,5,15,15181.65,0.07,0.08,'N','F','1995-06-12','1995-07-07','1995-07-04','NONE','SHIP','express, regular foxes lose'), +(4770,32,8,1,41,38213.23,0,0.08,'N','O','1995-09-04','1995-08-08','1995-09-10','COLLECT COD','FOB','fluffily special instructions cajole.'), +(4770,157,5,2,30,31714.5,0.09,0.07,'N','O','1995-08-25','1995-08-27','1995-09-07','COLLECT COD','SHIP','even dependencies cajole carefully across t'), +(4771,49,10,1,9,8541.36,0.01,0,'R','F','1993-02-28','1993-02-19','1993-03-25','NONE','FOB','quickly regular'), +(4771,16,7,2,21,19236.21,0.09,0.01,'R','F','1993-01-19','1993-02-10','1993-02-01','NONE','FOB','regular, ironic accounts'), +(4771,12,3,3,5,4560.05,0.06,0.08,'R','F','1993-01-07','1993-01-19','1993-01-26','NONE','RAIL','bold instructions sleep fluffily alon'), +(4771,9,4,4,21,19089,0.05,0.04,'A','F','1992-12-20','1993-01-22','1992-12-26','TAKE BACK RETURN','SHIP','regular, unusual depos'), +(4772,87,8,1,1,987.08,0.1,0,'R','F','1994-11-13','1994-10-25','1994-11-15','DELIVER IN PERSON','AIR','carefully regular platelets inte'), +(4772,146,9,2,16,16738.24,0.07,0.06,'R','F','1994-10-27','1994-12-07','1994-10-29','TAKE BACK RETURN','MAIL','quickly regular'), +(4772,95,6,3,31,30847.79,0.02,0.04,'A','F','1994-10-02','1994-10-21','1994-10-13','TAKE BACK RETURN','FOB','fluffy, ironic deposits nag'), +(4772,71,10,4,15,14566.05,0.02,0.07,'R','F','1994-09-19','1994-10-22','1994-09-26','COLLECT COD','TRUCK','slyly ironic pa'), +(4773,144,5,1,23,24015.22,0,0.08,'N','O','1996-01-01','1996-03-19','1996-01-04','NONE','FOB','quickly fluffy courts haggle blithely slyl'), +(4773,197,9,2,36,39498.84,0.09,0.04,'N','O','1996-04-08','1996-03-03','1996-05-01','COLLECT COD','REG AIR','fluffily ironic decoys a'), +(4773,167,8,3,49,52290.84,0.05,0.02,'N','O','1996-01-26','1996-02-29','1996-01-27','TAKE BACK RETURN','FOB','always pending theodolites nag fur'), +(4773,20,10,4,49,45080.98,0.09,0.04,'N','O','1996-01-12','1996-02-17','1996-02-05','TAKE BACK RETURN','TRUCK','accounts wake '), +(4773,150,3,5,20,21003,0.02,0.07,'N','O','1995-12-28','1996-02-17','1996-01-15','COLLECT COD','TRUCK','ironic ideas '), +(4773,190,1,6,11,11992.09,0.1,0.06,'N','O','1996-01-02','1996-01-29','1996-01-24','DELIVER IN PERSON','REG AIR','quickly final '); +INSERT INTO lineitem VALUES +(4773,158,3,7,6,6348.9,0.07,0.01,'N','O','1996-03-09','1996-03-18','1996-03-27','NONE','AIR','final depen'), +(4774,84,5,1,45,44283.6,0.1,0,'R','F','1993-07-07','1993-06-08','1993-07-31','COLLECT COD','TRUCK','slyly final deposits wake. final depo'), +(4774,39,5,2,4,3756.12,0.02,0.03,'A','F','1993-08-03','1993-05-30','1993-08-19','COLLECT COD','FOB','express, even asym'), +(4774,173,4,3,47,50438.99,0.1,0.08,'R','F','1993-06-13','1993-07-04','1993-07-09','TAKE BACK RETURN','FOB','dolphins haggle caref'), +(4774,130,3,4,30,30903.9,0.05,0.08,'A','F','1993-08-18','1993-06-08','1993-08-21','DELIVER IN PERSON','REG AIR','even, ironic theodolites haggle s'), +(4775,74,4,1,1,974.07,0.1,0.02,'N','O','1995-09-06','1995-09-28','1995-09-29','DELIVER IN PERSON','MAIL','final requests sleep blithely regular a'), +(4775,153,1,2,37,38966.55,0.02,0.01,'N','O','1995-09-06','1995-09-28','1995-09-28','COLLECT COD','TRUCK','closely even wa'), +(4775,153,5,3,34,35807.1,0.09,0.06,'N','O','1995-09-14','1995-10-15','1995-09-21','DELIVER IN PERSON','MAIL','slyly express requests boost regular re'), +(4775,119,9,4,39,39745.29,0.07,0.04,'N','O','1995-08-30','1995-10-12','1995-09-20','NONE','AIR','regular theodolites along the blithely pe'), +(4800,97,10,1,11,10967.99,0.03,0.03,'R','F','1992-01-27','1992-03-16','1992-02-19','TAKE BACK RETURN','RAIL','packages boost blithely blithely i'), +(4800,26,5,2,1,926.02,0.06,0.06,'A','F','1992-02-23','1992-03-16','1992-03-20','TAKE BACK RETURN','MAIL','blithely ironic ideas haggle: quickly p'), +(4800,11,8,3,21,19131.21,0.09,0.05,'A','F','1992-02-14','1992-03-15','1992-02-26','NONE','SHIP','accounts are. fi'), +(4800,176,7,4,38,40894.46,0.1,0.08,'R','F','1992-02-01','1992-02-28','1992-02-21','NONE','TRUCK','carefully special '), +(4800,53,4,5,24,22873.2,0.08,0.04,'R','F','1992-01-14','1992-02-23','1992-01-25','NONE','TRUCK','deposits nag at the carefull'), +(4801,184,5,1,37,40114.66,0.1,0.02,'N','O','1996-03-09','1996-02-29','1996-03-25','TAKE BACK RETURN','FOB','blithely express dependencies slee'), +(4801,26,1,2,34,31484.68,0.03,0.02,'N','O','1996-02-05','1996-04-16','1996-02-23','NONE','SHIP','furiously eve'), +(4801,110,1,3,4,4040.44,0.04,0.04,'N','O','1996-03-23','1996-04-04','1996-03-25','COLLECT COD','RAIL','packages use carefully again'), +(4801,92,3,4,39,38691.51,0.07,0.01,'N','O','1996-03-19','1996-03-21','1996-04-17','TAKE BACK RETURN','REG AIR','quickly ironic pinto beans play slyly'), +(4802,40,1,1,6,5640.24,0,0.06,'N','O','1997-04-16','1997-03-25','1997-04-21','TAKE BACK RETURN','SHIP','express asymptotes sleep fu'), +(4803,132,3,1,2,2064.26,0.08,0.03,'N','O','1996-04-16','1996-03-20','1996-05-15','NONE','REG AIR','special, ironic requests boos'), +(4803,176,4,2,47,50579.99,0.1,0,'N','O','1996-03-14','1996-03-30','1996-03-15','DELIVER IN PERSON','FOB','busily ironic ideas wake careful'), +(4803,196,8,3,42,46039.98,0.04,0.08,'N','O','1996-04-27','1996-05-05','1996-05-17','NONE','TRUCK','regular, unusual foxes ac'), +(4803,22,1,4,24,22128.48,0.1,0.04,'N','O','1996-02-24','1996-04-02','1996-02-28','NONE','MAIL','fluffily even foxes engage fluff'), +(4803,189,10,5,21,22872.78,0.03,0.06,'N','O','1996-05-25','1996-03-15','1996-06-09','COLLECT COD','FOB','furiously regular accounts boo'), +(4803,194,5,6,19,20789.61,0.07,0,'N','O','1996-04-20','1996-03-25','1996-04-27','TAKE BACK RETURN','RAIL','regular foxes use along the '), +(4804,128,1,1,44,45237.28,0.06,0.08,'A','F','1992-05-02','1992-03-24','1992-05-28','TAKE BACK RETURN','AIR','slyly express'), +(4804,35,6,2,41,38336.23,0.1,0.02,'R','F','1992-04-06','1992-04-12','1992-05-03','COLLECT COD','MAIL','quickly even ac'), +(4804,65,2,3,33,31846.98,0.09,0.05,'A','F','1992-03-02','1992-04-14','1992-03-13','DELIVER IN PERSON','AIR','express instructions alongside of th'), +(4805,150,1,1,7,7351.05,0.09,0.03,'A','F','1992-05-01','1992-07-09','1992-05-09','NONE','FOB','slyly regular theodolites accordi'), +(4805,189,10,2,45,49013.1,0.02,0.03,'R','F','1992-06-16','1992-06-08','1992-07-03','NONE','TRUCK','blithely bold acco'); +INSERT INTO lineitem VALUES +(4805,154,6,3,44,46382.6,0.01,0.02,'R','F','1992-05-14','1992-06-23','1992-05-25','DELIVER IN PERSON','SHIP','carefully pendin'), +(4805,65,2,4,13,12545.78,0.04,0.04,'R','F','1992-07-16','1992-06-07','1992-08-10','COLLECT COD','AIR','unusual pinto beans unwind '), +(4805,9,10,5,42,38178,0.03,0.03,'R','F','1992-08-17','1992-07-03','1992-09-14','NONE','REG AIR','bold, express epitaphs are carefully'), +(4805,136,7,6,18,18650.34,0.06,0.04,'A','F','1992-06-07','1992-07-10','1992-06-12','COLLECT COD','TRUCK','blithely ironic accounts c'), +(4806,16,7,1,26,23816.26,0.1,0.05,'R','F','1993-05-28','1993-06-07','1993-05-29','DELIVER IN PERSON','SHIP','ironic ideas nag. requests play across the'), +(4806,72,10,2,6,5832.42,0.01,0.06,'A','F','1993-05-17','1993-07-19','1993-05-29','TAKE BACK RETURN','SHIP','quickly express accounts cajo'), +(4806,29,4,3,8,7432.16,0.09,0,'A','F','1993-05-08','1993-07-16','1993-05-28','NONE','TRUCK','quickly even Tir'), +(4807,122,1,1,9,9199.08,0.04,0.08,'N','O','1997-04-23','1997-03-01','1997-05-15','TAKE BACK RETURN','TRUCK','carefully final deposits a'), +(4807,10,1,2,41,37310.41,0.07,0.08,'N','O','1997-05-02','1997-03-31','1997-05-15','TAKE BACK RETURN','AIR','final instructions wa'), +(4807,145,6,3,34,35534.76,0.06,0.02,'N','O','1997-01-31','1997-03-13','1997-02-01','NONE','SHIP','final, ironic acc'), +(4807,190,1,4,32,34886.08,0.05,0,'N','O','1997-04-04','1997-03-21','1997-04-16','NONE','RAIL','final, unusual pinto beans cajole.'), +(4807,159,1,5,2,2118.3,0.02,0.05,'N','O','1997-05-09','1997-04-03','1997-06-05','TAKE BACK RETURN','RAIL','fluffily final accounts hag'), +(4807,160,1,6,22,23323.52,0.09,0.06,'N','O','1997-03-13','1997-02-23','1997-04-01','NONE','FOB','fluffily special requests nag stealthily si'), +(4832,15,6,1,23,21045.23,0.03,0.01,'N','O','1997-12-05','1998-01-05','1997-12-10','NONE','RAIL','furiously spe'), +(4832,152,4,2,10,10521.5,0,0.06,'N','O','1998-01-08','1998-02-01','1998-01-11','DELIVER IN PERSON','MAIL','silent deposits '), +(4832,149,6,3,4,4196.56,0.04,0.01,'N','O','1998-01-16','1998-02-12','1998-02-08','TAKE BACK RETURN','AIR','pending accounts sleep slyl'), +(4832,64,5,4,6,5784.36,0.02,0.01,'N','O','1997-12-08','1998-02-03','1997-12-10','COLLECT COD','TRUCK','slyly ironic accounts against the regular p'), +(4832,138,4,5,43,44639.59,0.1,0.08,'N','O','1997-12-31','1998-02-20','1998-01-26','COLLECT COD','RAIL','carefully even'), +(4833,107,10,1,31,31220.1,0.08,0.04,'N','O','1996-06-24','1996-07-15','1996-07-02','NONE','SHIP','deposits wake. accounts integrate furiousl'), +(4833,117,7,2,11,11188.21,0.03,0.01,'N','O','1996-08-24','1996-07-26','1996-09-19','NONE','REG AIR','express ideas cajole fluff'), +(4833,18,9,3,26,23868.26,0.08,0.04,'N','O','1996-05-13','1996-07-12','1996-05-31','NONE','SHIP','furiously final requests boo'), +(4833,36,7,4,19,17784.57,0.07,0.07,'N','O','1996-08-21','1996-07-09','1996-09-10','TAKE BACK RETURN','AIR','deposits boost furiously '), +(4833,35,1,5,4,3740.12,0.1,0.02,'N','O','1996-08-16','1996-06-29','1996-08-22','NONE','AIR','carefully pending requests '), +(4834,183,4,1,27,29245.86,0.06,0.02,'N','O','1997-01-09','1996-10-27','1997-01-27','DELIVER IN PERSON','RAIL','carefully bold p'), +(4834,71,1,2,26,25247.82,0.01,0,'N','O','1996-10-04','1996-10-21','1996-10-10','DELIVER IN PERSON','TRUCK','furiously fluffy excuses nag blithely dep'), +(4834,23,2,3,34,31382.68,0.03,0.01,'N','O','1996-12-09','1996-11-26','1996-12-10','NONE','MAIL','quick dependencies about '), +(4834,143,10,4,38,39639.32,0.03,0.06,'N','O','1997-01-10','1996-12-06','1997-01-22','COLLECT COD','FOB','blithely bold fr'), +(4835,179,10,1,18,19425.06,0,0.03,'R','F','1995-02-17','1994-12-14','1995-03-17','DELIVER IN PERSON','MAIL','blithely ex'), +(4835,91,3,2,3,2973.27,0.09,0.06,'R','F','1995-01-24','1995-01-12','1995-02-16','COLLECT COD','AIR','slyly silent t'), +(4835,86,7,3,27,26624.16,0.05,0,'A','F','1994-12-10','1994-12-13','1995-01-02','DELIVER IN PERSON','REG AIR','carefully special foxes sl'); +INSERT INTO lineitem VALUES +(4835,102,7,4,23,23048.3,0.08,0.07,'A','F','1995-02-05','1995-01-04','1995-02-28','NONE','SHIP','regular asymptotes cajole fluffily'), +(4836,162,1,1,22,23367.52,0.01,0.03,'N','O','1997-03-03','1997-02-23','1997-03-04','NONE','SHIP','blithely regular packages '), +(4836,48,5,2,16,15168.64,0.07,0.08,'N','O','1997-01-14','1997-03-05','1997-01-30','COLLECT COD','MAIL','furiously pending p'), +(4836,76,4,3,14,13664.98,0.03,0.08,'N','O','1997-02-21','1997-02-06','1997-03-08','COLLECT COD','MAIL','fluffily iro'), +(4836,106,1,4,15,15091.5,0.1,0,'N','O','1997-03-08','1997-03-14','1997-03-30','TAKE BACK RETURN','TRUCK','slyly final theodolites haggle caref'), +(4836,51,6,5,12,11412.6,0.01,0.04,'N','O','1997-02-02','1997-02-10','1997-02-03','COLLECT COD','TRUCK','quickly regular packages cajole slyly'), +(4837,42,1,1,16,15072.64,0.09,0.04,'N','O','1998-08-12','1998-06-06','1998-08-26','COLLECT COD','FOB','quickly slow asymptote'), +(4837,193,5,2,16,17491.04,0.01,0.02,'N','O','1998-08-19','1998-06-18','1998-08-26','NONE','RAIL','theodolites '), +(4837,68,5,3,42,40658.52,0.1,0,'N','O','1998-06-19','1998-07-06','1998-06-23','COLLECT COD','MAIL','bold platelets would '), +(4838,122,3,1,35,35774.2,0.01,0,'R','F','1992-10-30','1992-10-23','1992-11-21','TAKE BACK RETURN','RAIL','final patterns are carefull'), +(4838,148,5,2,2,2096.28,0.03,0.08,'R','F','1992-08-11','1992-09-16','1992-08-26','COLLECT COD','MAIL','final requests was along the '), +(4838,52,3,3,26,24753.3,0.06,0.04,'R','F','1992-09-03','1992-10-25','1992-09-11','TAKE BACK RETURN','FOB','permanently pending packages '), +(4839,60,2,1,5,4800.3,0.1,0.07,'A','F','1994-09-07','1994-07-15','1994-10-05','DELIVER IN PERSON','FOB','bold, unusual requests use a'), +(4839,10,1,2,25,22750.25,0.02,0.02,'R','F','1994-05-20','1994-07-08','1994-05-30','NONE','REG AIR','regular accounts cajole fluff'), +(4839,60,1,3,18,17281.08,0.06,0.01,'R','F','1994-05-18','1994-06-13','1994-06-09','TAKE BACK RETURN','FOB','even packages abov'), +(4839,100,1,4,19,19001.9,0.07,0.08,'R','F','1994-05-20','1994-07-14','1994-05-30','NONE','REG AIR','express, ironic grouches poach '), +(4839,71,10,5,9,8739.63,0.05,0.01,'R','F','1994-06-17','1994-06-18','1994-07-10','NONE','SHIP','furiously even pinto beans w'), +(4864,150,9,1,28,29404.2,0.06,0.08,'A','F','1993-02-06','1992-12-15','1993-02-10','COLLECT COD','REG AIR','requests print. '), +(4864,38,4,2,38,35645.14,0.1,0.02,'R','F','1992-12-20','1993-01-07','1993-01-06','TAKE BACK RETURN','SHIP','silent accounts cajole. regular, regular mu'), +(4864,133,4,3,45,46490.85,0.02,0.01,'A','F','1992-11-17','1993-01-02','1992-11-26','COLLECT COD','SHIP','express foxes after the slyly silent '), +(4864,31,2,4,46,42827.38,0.07,0.03,'A','F','1993-02-24','1993-01-02','1993-03-17','TAKE BACK RETURN','RAIL','dinos affix furiously alongside o'), +(4865,162,7,1,16,16994.56,0.07,0.05,'N','O','1997-10-02','1997-08-20','1997-10-04','COLLECT COD','TRUCK','slyly pending requests along the carefu'), +(4865,137,8,2,4,4148.52,0.07,0.01,'N','O','1997-07-24','1997-07-25','1997-08-07','TAKE BACK RETURN','FOB','furiously regular reques'), +(4865,68,3,3,44,42594.64,0.1,0.08,'N','O','1997-07-25','1997-08-20','1997-08-22','COLLECT COD','FOB','furiously bold pinto beans p'), +(4865,50,3,4,21,19951.05,0.04,0.02,'N','O','1997-07-17','1997-08-10','1997-07-21','NONE','RAIL','fluffily fluffy'), +(4865,54,9,5,33,31483.65,0,0.05,'N','O','1997-07-17','1997-08-16','1997-07-30','TAKE BACK RETURN','FOB','ironic idea'), +(4865,65,2,6,47,45357.82,0,0.05,'N','O','1997-08-26','1997-08-07','1997-08-31','NONE','RAIL','blithely final braids are fur'), +(4866,11,8,1,9,8199.09,0.01,0.05,'N','O','1997-08-30','1997-09-18','1997-09-24','TAKE BACK RETURN','MAIL','final courts about the slyly final t'), +(4866,102,3,2,1,1002.1,0.06,0,'N','O','1997-10-15','1997-10-01','1997-11-14','TAKE BACK RETURN','AIR','furiously express theodolites along '), +(4866,131,7,3,17,17529.21,0.07,0,'N','O','1997-11-26','1997-10-11','1997-12-12','COLLECT COD','TRUCK','ironic, pending orbits against the re'); +INSERT INTO lineitem VALUES +(4867,82,3,1,7,6874.56,0.09,0.03,'A','F','1992-07-17','1992-08-17','1992-07-22','COLLECT COD','FOB','furiously express grouches integrate slyly'), +(4867,160,8,2,3,3180.48,0.04,0.08,'R','F','1992-07-04','1992-07-15','1992-07-21','NONE','AIR','even, unusual platelets haggle'), +(4868,73,3,1,47,45734.29,0.03,0.03,'N','O','1997-04-29','1997-04-27','1997-05-11','DELIVER IN PERSON','SHIP','blithely even requests alongside of'), +(4868,180,1,2,8,8641.44,0.1,0.08,'N','O','1997-03-26','1997-05-09','1997-04-16','NONE','RAIL','accounts alongside of the quickly unu'), +(4868,191,2,3,49,53468.31,0.09,0.03,'N','O','1997-04-23','1997-05-07','1997-04-26','NONE','SHIP','regular dependencies along the regula'), +(4868,80,1,4,34,33322.72,0.04,0.02,'N','O','1997-05-19','1997-04-27','1997-06-15','NONE','RAIL','carefully final asymptotes use qui'), +(4868,122,3,5,22,22486.64,0.07,0.06,'N','O','1997-04-26','1997-05-16','1997-05-01','DELIVER IN PERSON','FOB','furiously ironic theodolites about'), +(4869,41,8,1,31,29172.24,0.1,0.01,'A','F','1995-01-17','1994-11-30','1995-02-02','NONE','SHIP','unusual dugouts around the special'), +(4869,58,3,2,24,22993.2,0.09,0.06,'A','F','1994-11-17','1994-11-07','1994-11-27','COLLECT COD','MAIL','pending acco'), +(4869,157,8,3,25,26428.75,0,0.05,'R','F','1994-11-25','1994-11-14','1994-12-19','DELIVER IN PERSON','AIR','quiet packages sleep slyly. quickly'), +(4869,103,8,4,24,24074.4,0.1,0.07,'R','F','1994-11-23','1994-11-18','1994-12-11','DELIVER IN PERSON','MAIL','carefully regular hockey players ca'), +(4869,173,2,5,42,45073.14,0.07,0.04,'R','F','1994-10-16','1994-12-10','1994-11-07','TAKE BACK RETURN','REG AIR','carefully even excuses wake sometimes. fl'), +(4869,122,5,6,30,30663.6,0,0.05,'A','F','1995-01-09','1994-11-20','1995-02-02','COLLECT COD','RAIL','slyly express packages believe regular'), +(4870,48,5,1,49,46453.96,0.05,0.05,'R','F','1994-11-14','1994-10-24','1994-12-12','TAKE BACK RETURN','SHIP','dependencie'), +(4870,127,10,2,6,6162.72,0.06,0.08,'A','F','1994-09-09','1994-10-16','1994-09-21','DELIVER IN PERSON','TRUCK','slyly final instr'), +(4870,31,2,3,5,4655.15,0.05,0,'R','F','1994-10-11','1994-10-07','1994-10-24','NONE','AIR','furiously ironic accounts in'), +(4870,6,9,4,4,3624,0.03,0.08,'A','F','1994-10-23','1994-09-16','1994-11-04','COLLECT COD','RAIL','regular accounts according '), +(4870,71,1,5,36,34958.52,0.09,0.06,'A','F','1994-09-06','1994-09-17','1994-10-01','COLLECT COD','REG AIR','slyly pending du'), +(4871,177,5,1,14,15080.38,0.07,0.03,'N','O','1995-09-30','1995-07-29','1995-10-18','TAKE BACK RETURN','REG AIR','even deposits outside the furiously silent'), +(4871,161,6,2,17,18039.72,0.07,0.03,'N','O','1995-09-09','1995-09-01','1995-10-02','DELIVER IN PERSON','AIR','even accounts around the idea'), +(4871,63,4,3,3,2889.18,0.03,0.06,'N','O','1995-10-03','1995-08-10','1995-10-06','DELIVER IN PERSON','TRUCK','blithely pend'), +(4871,149,8,4,35,36719.9,0.08,0.07,'N','O','1995-08-11','1995-07-18','1995-08-29','DELIVER IN PERSON','TRUCK','slyly final requests ac'), +(4871,152,3,5,10,10521.5,0.09,0.02,'N','O','1995-09-12','1995-09-02','1995-10-05','TAKE BACK RETURN','AIR','express foxes haggle blithely r'), +(4871,136,2,6,36,37300.68,0.02,0.08,'N','O','1995-09-18','1995-08-29','1995-10-05','TAKE BACK RETURN','AIR','blithely express requests according '), +(4871,140,6,7,10,10401.4,0.1,0.02,'N','O','1995-07-13','1995-08-19','1995-07-29','NONE','REG AIR','blithely regular accounts sleep i'), +(4896,41,2,1,19,17879.76,0.09,0.05,'A','F','1992-12-13','1992-11-13','1993-01-09','NONE','AIR','blithely bold frays cajole'), +(4896,140,1,2,44,45766.16,0.04,0.03,'A','F','1992-11-24','1992-11-15','1992-12-18','COLLECT COD','MAIL','furiously specia'), +(4896,58,10,3,6,5748.3,0.04,0.04,'A','F','1992-10-30','1992-11-12','1992-11-28','DELIVER IN PERSON','TRUCK','express instr'), +(4896,23,4,4,5,4615.1,0.08,0.02,'R','F','1992-12-02','1992-11-11','1992-12-19','COLLECT COD','SHIP','slyly regular req'); +INSERT INTO lineitem VALUES +(4896,86,7,5,21,20707.68,0.07,0.08,'R','F','1992-11-18','1992-11-18','1992-11-29','DELIVER IN PERSON','TRUCK','slyly ironic theo'), +(4897,55,6,1,26,24831.3,0.01,0.01,'R','F','1992-12-22','1992-10-25','1992-12-27','DELIVER IN PERSON','TRUCK','blithely regular pinto be'), +(4897,143,6,2,34,35466.76,0.02,0,'R','F','1992-12-31','1992-11-11','1993-01-30','COLLECT COD','AIR','ideas cajole boldly final theodolites.'), +(4897,55,7,3,42,40112.1,0.09,0.03,'A','F','1992-09-23','1992-10-28','1992-10-02','DELIVER IN PERSON','FOB','regular pinto beans according t'), +(4897,104,5,4,19,19077.9,0.03,0,'A','F','1992-11-08','1992-12-14','1992-12-03','DELIVER IN PERSON','FOB','express, f'), +(4898,72,1,1,44,42771.08,0.07,0.02,'A','F','1994-09-13','1994-08-18','1994-09-16','NONE','FOB','ironic, enticing instructions through the'), +(4899,34,10,1,14,13076.42,0.06,0,'R','F','1993-11-10','1994-01-10','1993-11-20','NONE','REG AIR','foxes sleep fluffily blithely unusu'), +(4900,116,3,1,40,40644.4,0.1,0.03,'A','F','1992-09-02','1992-09-25','1992-09-21','COLLECT COD','TRUCK','regular, regular plat'), +(4900,77,8,2,33,32243.31,0.06,0.06,'R','F','1992-08-18','1992-09-20','1992-08-19','COLLECT COD','MAIL','slyly ironic dependencie'), +(4900,103,8,3,48,48148.8,0.02,0,'R','F','1992-09-18','1992-08-14','1992-09-28','TAKE BACK RETURN','MAIL','slyly ironic '), +(4900,32,3,4,20,18640.6,0.05,0,'R','F','1992-09-22','1992-09-23','1992-09-27','TAKE BACK RETURN','MAIL','furiously ironic gifts about the '), +(4900,105,8,5,40,40204,0.03,0.02,'R','F','1992-07-14','1992-09-05','1992-07-20','NONE','REG AIR','quickly regular depos'), +(4900,103,6,6,46,46142.6,0.06,0.08,'R','F','1992-07-11','1992-09-19','1992-07-16','TAKE BACK RETURN','SHIP','dogged, ironic frays are fluffi'), +(4901,141,10,1,37,38522.18,0,0.04,'N','O','1998-01-26','1998-02-20','1998-01-31','DELIVER IN PERSON','TRUCK','special ac'), +(4901,165,4,2,12,12781.92,0,0.04,'N','O','1998-01-12','1998-02-06','1998-02-03','COLLECT COD','REG AIR','idly ironic '), +(4901,120,4,3,16,16321.92,0.05,0.08,'N','O','1998-04-19','1998-03-18','1998-04-21','NONE','AIR','requests wake quickly acro'), +(4901,36,7,4,41,38377.23,0.03,0,'N','O','1998-03-18','1998-02-18','1998-04-14','TAKE BACK RETURN','AIR','furiously final re'), +(4901,116,7,5,40,40644.4,0.06,0.02,'N','O','1998-01-08','1998-01-30','1998-01-15','DELIVER IN PERSON','MAIL','fluffily ironic deposits wak'), +(4902,196,10,1,22,24116.18,0,0.04,'N','O','1998-10-17','1998-08-10','1998-10-21','COLLECT COD','RAIL','slyly specia'), +(4902,83,4,2,1,983.08,0.09,0.04,'N','O','1998-10-12','1998-08-20','1998-11-08','NONE','RAIL','slyly regular excu'), +(4903,121,2,1,1,1021.12,0.06,0.03,'R','F','1992-04-23','1992-06-13','1992-05-03','NONE','SHIP','blithely even de'), +(4903,165,6,2,6,6390.96,0.09,0.07,'R','F','1992-04-01','1992-05-16','1992-04-11','DELIVER IN PERSON','SHIP','blithely iron'), +(4903,120,10,3,27,27543.24,0.07,0.06,'A','F','1992-06-29','1992-06-09','1992-07-08','COLLECT COD','RAIL','furiously final deposits affix. pla'), +(4928,100,1,1,4,4000.4,0.04,0.02,'R','F','1993-10-25','1993-12-24','1993-11-16','TAKE BACK RETURN','REG AIR','deposits thrash carefully. blithely even '), +(4928,93,4,2,20,19861.8,0.03,0.08,'A','F','1994-01-19','1993-11-29','1994-02-13','DELIVER IN PERSON','SHIP','ironic, ironic instructions af'), +(4928,149,8,3,34,35670.76,0.06,0.05,'A','F','1993-10-12','1993-12-31','1993-10-14','DELIVER IN PERSON','AIR','regular, bold accounts cajole '), +(4929,14,1,1,20,18280.2,0,0.04,'N','O','1996-03-12','1996-05-23','1996-03-20','COLLECT COD','REG AIR','patterns around the ironi'), +(4929,79,7,2,40,39162.8,0.08,0.03,'N','O','1996-05-30','1996-04-13','1996-06-22','TAKE BACK RETURN','AIR','always pending packag'), +(4929,77,7,3,32,31266.24,0.08,0.02,'N','O','1996-04-28','1996-05-23','1996-04-30','COLLECT COD','TRUCK','furiously ironic theodolites wake qui'), +(4929,109,4,4,26,26236.6,0,0.05,'N','O','1996-06-10','1996-05-29','1996-06-26','DELIVER IN PERSON','RAIL','quickly final a'); +INSERT INTO lineitem VALUES +(4929,67,8,5,24,23209.44,0.09,0.05,'N','O','1996-04-15','1996-04-30','1996-05-09','NONE','MAIL','packages can serve ac'), +(4930,187,8,1,35,38051.3,0.03,0.01,'A','F','1994-07-09','1994-07-30','1994-07-15','NONE','RAIL','regular, express '), +(4930,115,5,2,20,20302.2,0.02,0.04,'A','F','1994-08-21','1994-06-17','1994-08-24','COLLECT COD','FOB','bravely bold asymptotes at '), +(4930,168,7,3,28,29908.48,0,0.08,'R','F','1994-08-27','1994-06-27','1994-09-18','COLLECT COD','TRUCK','regular deposi'), +(4930,166,7,4,42,44778.72,0,0,'A','F','1994-06-18','1994-06-22','1994-07-10','COLLECT COD','AIR','final, express reques'), +(4930,190,1,5,38,41427.22,0.02,0.03,'A','F','1994-06-06','1994-06-18','1994-07-03','TAKE BACK RETURN','AIR','foxes sleep according to the slyly i'), +(4931,194,7,1,1,1094.19,0.08,0.06,'A','F','1995-01-24','1994-12-19','1995-02-07','DELIVER IN PERSON','SHIP','furiously bold pinto beans along'), +(4931,151,3,2,8,8409.2,0.06,0.02,'R','F','1994-12-15','1995-01-14','1995-01-06','NONE','SHIP','furiously bold '), +(4931,144,5,3,20,20882.8,0.09,0,'A','F','1995-01-25','1994-12-21','1995-02-06','DELIVER IN PERSON','MAIL','blithely regular dep'), +(4931,200,4,4,50,55010,0.04,0.01,'A','F','1994-12-15','1994-12-18','1994-12-23','COLLECT COD','REG AIR','furiously thin asymptotes'), +(4931,150,7,5,25,26253.75,0.05,0.05,'R','F','1994-12-19','1995-01-05','1994-12-21','COLLECT COD','FOB','fluffily express pinto b'), +(4931,103,6,6,8,8024.8,0.02,0.03,'A','F','1995-02-16','1994-12-30','1995-03-15','DELIVER IN PERSON','SHIP','regular excuses impress blit'), +(4932,51,3,1,13,12363.65,0.04,0.03,'A','F','1993-09-13','1993-10-16','1993-09-20','DELIVER IN PERSON','SHIP','fluffily pe'), +(4932,103,10,2,15,15046.5,0.01,0.02,'R','F','1993-11-15','1993-10-25','1993-11-29','NONE','REG AIR','even pinto beans nag careful'), +(4932,87,8,3,5,4935.4,0.06,0.06,'A','F','1993-10-01','1993-09-13','1993-10-04','NONE','MAIL','quickly regular ideas haggle along the even'), +(4932,98,1,4,11,10978.99,0.09,0.06,'A','F','1993-09-21','1993-09-30','1993-09-23','COLLECT COD','SHIP','foxes use slyly even ac'), +(4933,32,8,1,48,44737.44,0.08,0,'N','O','1995-10-10','1995-10-03','1995-11-04','COLLECT COD','SHIP','blithely ruthless requests hag'), +(4933,82,3,2,2,1964.16,0.09,0,'N','O','1995-10-01','1995-09-29','1995-10-19','DELIVER IN PERSON','MAIL','quickly silent packages are ab'), +(4934,97,10,1,48,47860.32,0,0.01,'N','O','1997-05-20','1997-04-22','1997-06-02','TAKE BACK RETURN','SHIP','even, unusual requests wake. quic'), +(4934,110,1,2,41,41414.51,0.06,0.06,'N','O','1997-06-04','1997-04-11','1997-06-25','TAKE BACK RETURN','FOB','slyly ironic forges '), +(4934,140,1,3,8,8321.12,0.03,0.06,'N','O','1997-05-20','1997-04-30','1997-05-27','TAKE BACK RETURN','MAIL','pending theodolites use. furiously fluffy '), +(4934,148,5,4,9,9433.26,0.06,0.08,'N','O','1997-06-10','1997-04-09','1997-06-12','TAKE BACK RETURN','REG AIR','regular deposits e'), +(4934,138,9,5,29,30105.77,0.09,0.03,'N','O','1997-04-10','1997-05-05','1997-05-04','DELIVER IN PERSON','AIR','fluffily unusual instructions are q'), +(4934,52,3,6,42,39986.1,0,0.07,'N','O','1997-03-19','1997-05-05','1997-03-25','NONE','MAIL','regular dolphins sleep by the fluffily '), +(4934,11,5,7,2,1822.02,0.1,0.06,'N','O','1997-06-05','1997-03-26','1997-06-09','COLLECT COD','MAIL','carefully unusual requests alongsi'), +(4935,161,2,1,13,13795.08,0.09,0.01,'A','F','1993-06-20','1993-08-13','1993-06-27','COLLECT COD','REG AIR','furiously ironic sauternes promi'), +(4935,40,6,2,37,34781.48,0.01,0.05,'R','F','1993-08-30','1993-07-23','1993-09-07','TAKE BACK RETURN','RAIL','carefully regular theodolites '), +(4935,11,8,3,24,21864.24,0.06,0.04,'A','F','1993-05-29','1993-08-17','1993-06-22','NONE','RAIL','furiously pending accounts according to t'), +(4935,45,6,4,49,46306.96,0.06,0.01,'A','F','1993-09-16','1993-08-21','1993-10-12','COLLECT COD','TRUCK','ironic courts sleep.'), +(4935,10,1,5,14,12740.14,0.08,0.08,'A','F','1993-05-30','1993-07-25','1993-05-31','COLLECT COD','FOB','deposits slee'); +INSERT INTO lineitem VALUES +(4935,188,9,6,36,39174.48,0.1,0,'R','F','1993-07-11','1993-07-04','1993-08-01','DELIVER IN PERSON','RAIL','quickly unusual pa'), +(4960,18,5,1,36,33048.36,0.01,0.05,'R','F','1995-03-06','1995-05-04','1995-04-05','TAKE BACK RETURN','RAIL','blithely unusual accounts cajole blith'), +(4960,45,8,2,6,5670.24,0.03,0.08,'R','F','1995-03-21','1995-05-13','1995-04-14','TAKE BACK RETURN','SHIP','furiously final theodolites sleep carefull'), +(4960,149,8,3,9,9442.26,0.01,0.03,'A','F','1995-03-20','1995-05-05','1995-04-17','COLLECT COD','RAIL','regular deposits'), +(4960,120,7,4,14,14281.68,0,0.06,'A','F','1995-04-03','1995-04-17','1995-04-07','NONE','RAIL','slyly final ideas '), +(4960,98,1,5,8,7984.72,0.07,0.04,'R','F','1995-03-14','1995-04-18','1995-04-09','NONE','FOB','slyly final pl'), +(4960,146,7,6,37,38707.18,0.1,0.04,'R','F','1995-05-23','1995-04-12','1995-06-01','DELIVER IN PERSON','MAIL','express, final account'), +(4960,170,1,7,42,44947.14,0.08,0.07,'A','F','1995-04-19','1995-04-11','1995-05-08','NONE','SHIP','regular as'), +(4961,44,7,1,38,35873.52,0.1,0.07,'N','O','1998-07-09','1998-06-03','1998-07-11','TAKE BACK RETURN','FOB','furiously even Tiresias dazzle about the '), +(4961,60,5,2,1,960.06,0.08,0.08,'N','O','1998-07-08','1998-05-25','1998-07-12','DELIVER IN PERSON','MAIL','even theodolites sleep! quickly final f'), +(4961,162,3,3,41,43548.56,0.02,0.02,'N','O','1998-07-15','1998-06-15','1998-08-05','TAKE BACK RETURN','REG AIR','even platelets sleep against the pendi'), +(4961,100,3,4,10,10001,0.02,0.04,'N','O','1998-04-15','1998-07-03','1998-04-18','DELIVER IN PERSON','MAIL','express instructions nag across the bl'), +(4962,19,6,1,46,42274.46,0.01,0.07,'R','F','1993-08-23','1993-09-04','1993-08-27','COLLECT COD','REG AIR','furiously special requests'), +(4963,168,5,1,38,40590.08,0.08,0.02,'N','O','1996-12-25','1996-12-12','1997-01-02','COLLECT COD','AIR','packages sleep fluffily. blithely ir'), +(4963,76,4,2,16,15617.12,0,0.03,'N','O','1996-11-20','1997-01-13','1996-12-06','COLLECT COD','MAIL','furiously special deposits aga'), +(4964,133,9,1,29,29960.77,0.04,0.01,'N','O','1997-10-18','1997-08-30','1997-11-01','NONE','AIR','slyly final requests are sly'), +(4964,148,5,2,46,48214.44,0.06,0.06,'N','O','1997-10-05','1997-09-12','1997-10-11','NONE','TRUCK','regular, unusual pinto beans about the r'), +(4964,143,4,3,18,18776.52,0,0.06,'N','O','1997-10-13','1997-09-01','1997-11-10','DELIVER IN PERSON','AIR','permanently sile'), +(4964,180,10,4,12,12962.16,0.08,0.01,'N','O','1997-09-03','1997-10-25','1997-09-15','NONE','TRUCK','ironic, ironic'), +(4964,41,10,5,42,39523.68,0.06,0.04,'N','O','1997-09-04','1997-08-28','1997-10-02','TAKE BACK RETURN','AIR','accounts are. fu'), +(4964,193,7,6,22,24050.18,0.04,0.08,'N','O','1997-09-11','1997-10-06','1997-09-29','NONE','AIR','ironically re'), +(4964,173,4,7,28,30048.76,0,0.05,'N','O','1997-08-30','1997-09-15','1997-09-18','COLLECT COD','RAIL','slow requests are fluffily packages. re'), +(4965,131,2,1,28,28871.64,0.05,0.03,'A','F','1994-01-02','1993-11-20','1994-01-04','TAKE BACK RETURN','REG AIR','regular requests cajole fl'), +(4965,13,10,2,25,22825.25,0.1,0.02,'R','F','1994-02-05','1993-12-15','1994-02-24','TAKE BACK RETURN','MAIL','blithely ironic dependencie'), +(4965,101,8,3,27,27029.7,0.05,0.06,'R','F','1993-11-06','1993-12-24','1993-11-30','TAKE BACK RETURN','SHIP','ironic, pending depos'), +(4965,138,9,4,33,34258.29,0.04,0.04,'A','F','1993-12-31','1993-11-29','1994-01-27','DELIVER IN PERSON','REG AIR','express, final packages wake'), +(4966,76,6,1,10,9760.7,0.06,0.03,'N','O','1996-09-23','1996-11-02','1996-10-07','TAKE BACK RETURN','SHIP','furiously ironi'), +(4966,194,6,2,6,6565.14,0.02,0.01,'N','O','1996-12-09','1996-11-29','1996-12-30','NONE','AIR','requests cajole. quickly permanent platel'), +(4966,165,6,3,7,7456.12,0,0.01,'N','O','1996-12-08','1996-10-09','1997-01-06','COLLECT COD','MAIL','carefully pending accounts cajol'), +(4966,16,6,4,26,23816.26,0.08,0.03,'N','O','1996-11-14','1996-11-29','1996-12-05','COLLECT COD','REG AIR','carefully ironic asympt'); +INSERT INTO lineitem VALUES +(4966,144,1,5,12,12529.68,0.02,0.07,'N','O','1996-12-07','1996-11-23','1996-12-20','DELIVER IN PERSON','RAIL','even pinto beans are furiously i'), +(4967,71,1,1,50,48553.5,0.07,0.01,'N','O','1997-05-27','1997-05-13','1997-06-12','NONE','REG AIR','fluffily unusual requests hang. slyly even '), +(4967,53,5,2,43,40981.15,0,0.07,'N','O','1997-05-28','1997-04-10','1997-06-09','NONE','TRUCK','ironic theodolites at the fu'), +(4967,50,1,3,15,14250.75,0.08,0.02,'N','O','1997-04-16','1997-04-12','1997-05-08','TAKE BACK RETURN','MAIL','carefully final depos'), +(4967,123,2,4,1,1023.12,0.1,0.07,'N','O','1997-06-04','1997-03-29','1997-06-23','NONE','FOB','slyly stealthy instructio'), +(4992,184,5,1,42,45535.56,0.07,0.01,'R','F','1992-07-19','1992-06-16','1992-08-17','TAKE BACK RETURN','RAIL','ironic deposits sleep furiousl'), +(4992,147,4,2,47,49215.58,0.1,0.08,'A','F','1992-09-04','1992-08-05','1992-09-21','COLLECT COD','MAIL','theodolite'), +(4992,144,7,3,17,17750.38,0.03,0.03,'A','F','1992-07-05','1992-07-19','1992-07-30','TAKE BACK RETURN','FOB','accounts detect. carefully'), +(4992,70,7,4,25,24251.75,0.04,0.06,'R','F','1992-08-06','1992-07-11','1992-08-20','NONE','SHIP','requests affix alongside of the '), +(4992,139,5,5,23,23899.99,0.01,0.08,'R','F','1992-06-28','1992-07-15','1992-07-12','DELIVER IN PERSON','MAIL','special, regular decoys nag. bo'), +(4992,163,8,6,44,46779.04,0.05,0.02,'A','F','1992-06-01','1992-07-22','1992-06-03','NONE','RAIL','ironic, regular req'), +(4993,38,4,1,34,31893.02,0.05,0,'R','F','1994-09-21','1994-10-31','1994-09-24','TAKE BACK RETURN','REG AIR','carefully special pa'), +(4993,129,4,2,39,40135.68,0.03,0.08,'R','F','1994-09-10','1994-09-04','1994-09-26','COLLECT COD','SHIP','regular requests cajole car'), +(4993,166,1,3,42,44778.72,0.06,0,'A','F','1994-08-27','1994-09-24','1994-09-05','NONE','MAIL','slyly bold forges dazzle '), +(4993,158,6,4,31,32802.65,0.1,0.06,'A','F','1994-10-02','1994-10-29','1994-10-15','NONE','AIR','regular requests boost sl'), +(4994,156,8,1,36,38021.4,0,0.06,'N','O','1996-09-29','1996-07-30','1996-10-03','TAKE BACK RETURN','TRUCK','quickly ironic request'), +(4994,80,9,2,47,46063.76,0.04,0.05,'N','O','1996-09-20','1996-08-04','1996-10-15','COLLECT COD','TRUCK','silent, ironic instructions are slyly ir'), +(4994,183,4,3,29,31412.22,0.08,0.01,'N','O','1996-08-26','1996-09-27','1996-09-25','DELIVER IN PERSON','RAIL','blithely even ideas cajole carefully acro'), +(4994,39,10,4,40,37561.2,0.01,0.06,'N','O','1996-08-25','1996-08-16','1996-09-07','TAKE BACK RETURN','REG AIR','slyly regular theodolites sleep final fo'), +(4994,42,9,5,24,22608.96,0.01,0.07,'N','O','1996-08-19','1996-09-24','1996-08-25','TAKE BACK RETURN','FOB','accounts integrate blithely again'), +(4994,73,4,6,6,5838.42,0.01,0.02,'N','O','1996-09-05','1996-08-04','1996-09-30','TAKE BACK RETURN','FOB','ironic acc'), +(4994,130,1,7,31,31934.03,0.07,0.04,'N','O','1996-10-14','1996-09-23','1996-11-08','TAKE BACK RETURN','RAIL','carefully daring requests haggle slyly sly'), +(4995,65,4,1,16,15440.96,0.02,0.05,'N','O','1996-02-27','1996-04-03','1996-02-29','DELIVER IN PERSON','MAIL','even accounts use quickly. blithely '), +(4995,81,2,2,43,42186.44,0,0.06,'N','O','1996-02-24','1996-02-20','1996-03-07','NONE','AIR','bold, sly packages w'), +(4995,156,7,3,22,23235.3,0.03,0.06,'N','O','1996-03-17','1996-03-12','1996-04-01','DELIVER IN PERSON','MAIL','final deposits play around'), +(4995,40,1,4,9,8460.36,0.07,0.07,'N','O','1996-03-07','1996-03-17','1996-03-11','DELIVER IN PERSON','FOB','silent, final somas across the slyly'), +(4995,148,7,5,48,50310.72,0.08,0.07,'N','O','1996-03-22','1996-04-01','1996-04-07','NONE','SHIP','special acc'), +(4995,110,5,6,48,48485.28,0.09,0.07,'N','O','1996-04-14','1996-04-04','1996-05-07','DELIVER IN PERSON','RAIL','slyly regular sheaves along the silent ide'), +(4996,56,1,1,35,33461.75,0.07,0.01,'A','F','1992-10-30','1992-10-27','1992-11-05','TAKE BACK RETURN','SHIP','ironic packages along th'); +INSERT INTO lineitem VALUES +(4996,156,7,2,39,41189.85,0.02,0.07,'A','F','1992-09-19','1992-10-19','1992-10-06','COLLECT COD','FOB','blithely ironic asymptotes haggle blithe'), +(4996,128,7,3,12,12337.44,0.04,0.06,'R','F','1993-01-09','1992-11-22','1993-02-04','DELIVER IN PERSON','SHIP','carefully ironic accounts boost. qui'), +(4996,144,3,4,13,13573.82,0,0,'A','F','1992-09-17','1992-12-02','1992-10-07','DELIVER IN PERSON','TRUCK','final accounts cajole'), +(4997,79,7,1,44,43079.08,0.02,0.05,'N','O','1998-06-09','1998-06-12','1998-07-07','NONE','RAIL','bold, quiet requests inte'), +(4997,17,7,2,5,4585.05,0.02,0.04,'N','O','1998-05-16','1998-06-05','1998-06-07','COLLECT COD','REG AIR','theodolites are '), +(4997,58,9,3,24,22993.2,0.04,0.06,'N','O','1998-04-20','1998-04-23','1998-05-16','NONE','AIR','furiously pending foxes according to t'), +(4997,40,6,4,5,4700.2,0.1,0.03,'N','O','1998-06-12','1998-04-24','1998-06-13','DELIVER IN PERSON','TRUCK','quickly express ideas '), +(4997,22,7,5,46,42412.92,0,0.04,'N','O','1998-04-28','1998-06-04','1998-05-08','TAKE BACK RETURN','SHIP','slyly silent pinto beans int'), +(4997,29,2,6,2,1858.04,0.07,0.01,'N','O','1998-07-09','1998-06-10','1998-07-21','TAKE BACK RETURN','REG AIR','blithely final accounts before th'), +(4998,154,2,1,12,12649.8,0.04,0.03,'A','F','1992-02-20','1992-03-06','1992-03-01','TAKE BACK RETURN','RAIL','quickly unusual deposits wake. slyly sil'), +(4998,183,4,2,15,16247.7,0.06,0,'R','F','1992-04-24','1992-03-21','1992-05-02','NONE','REG AIR','unusual deposits within the f'), +(4998,59,10,3,27,25894.35,0.06,0.02,'R','F','1992-03-17','1992-02-26','1992-04-05','DELIVER IN PERSON','MAIL','blithely ironic foxes are sl'), +(4998,63,10,4,47,45263.82,0.1,0.04,'A','F','1992-02-07','1992-03-07','1992-02-19','DELIVER IN PERSON','TRUCK','deposits at the fluffily even accounts ki'), +(4998,145,4,5,24,25083.36,0.01,0.04,'R','F','1992-01-25','1992-03-16','1992-01-27','COLLECT COD','REG AIR','pending somas nag ironically abou'), +(4998,99,1,6,8,7992.72,0.03,0.07,'A','F','1992-05-01','1992-03-03','1992-05-24','TAKE BACK RETURN','AIR','carefully regular packa'), +(4999,153,8,1,30,31594.5,0,0.02,'A','F','1993-08-20','1993-08-15','1993-08-30','NONE','AIR','furiously regular packages cajole careful'), +(4999,10,1,2,44,40040.44,0.03,0.01,'A','F','1993-08-01','1993-08-04','1993-08-17','COLLECT COD','REG AIR','always ironic platelets cajole furio'), +(4999,86,7,3,30,29582.4,0.09,0.01,'R','F','1993-07-21','1993-08-11','1993-08-20','DELIVER IN PERSON','RAIL','slyly ironic packages cajole fluffi'), +(5024,166,3,1,17,18124.72,0.1,0.02,'N','O','1996-11-24','1997-01-10','1996-12-04','NONE','AIR','carefully final instructions mo'), +(5024,58,6,2,41,39280.05,0.06,0.01,'N','O','1996-11-09','1996-12-03','1996-12-01','COLLECT COD','REG AIR','deposits are agai'), +(5024,112,6,3,18,18217.98,0.04,0.03,'N','O','1996-12-02','1997-01-16','1996-12-05','NONE','MAIL','even, regular excuses haggle slyly'), +(5024,123,8,4,42,42971.04,0.03,0.06,'N','O','1996-12-02','1996-12-08','1996-12-04','DELIVER IN PERSON','RAIL','slyly regular deposits sleep furiously regu'), +(5025,30,9,1,11,10230.33,0,0.04,'N','O','1997-02-21','1997-04-16','1997-03-14','COLLECT COD','SHIP','fluffily final not'), +(5025,78,7,2,10,9780.7,0.07,0.04,'N','O','1997-06-04','1997-04-29','1997-06-28','COLLECT COD','RAIL','regularly regul'), +(5026,96,8,1,13,12949.17,0.02,0.04,'N','O','1997-12-23','1997-11-02','1998-01-03','TAKE BACK RETURN','SHIP','furiously regula'), +(5027,98,2,1,6,5988.54,0.04,0.05,'N','O','1997-09-28','1997-11-24','1997-10-25','NONE','FOB','slyly silent foxes integrate blithely '), +(5027,62,3,2,39,37520.34,0.06,0.01,'N','O','1997-09-09','1997-11-13','1997-09-21','TAKE BACK RETURN','FOB','blithely unusual deposits'), +(5027,126,5,3,32,32835.84,0,0.01,'N','O','1997-11-13','1997-10-29','1997-11-18','TAKE BACK RETURN','RAIL','pending accounts above the sp'), +(5027,26,7,4,37,34262.74,0.02,0,'N','O','1997-10-05','1997-10-30','1997-10-26','NONE','REG AIR','dependencies haggle c'); +INSERT INTO lineitem VALUES +(5027,143,4,5,3,3129.42,0.03,0.06,'N','O','1997-09-30','1997-11-26','1997-10-05','DELIVER IN PERSON','AIR','carefully even packages engage. blithely'), +(5027,87,8,6,25,24677,0.06,0,'N','O','1997-09-16','1997-11-25','1997-10-08','TAKE BACK RETURN','RAIL','pending, blithe requests are permanen'), +(5027,81,2,7,50,49054,0.07,0.02,'N','O','1997-09-18','1997-11-07','1997-10-05','DELIVER IN PERSON','MAIL','slyly bold theodolites kindle slyly.'), +(5028,14,1,1,15,13710.15,0.07,0.07,'R','F','1992-07-17','1992-07-16','1992-08-05','COLLECT COD','REG AIR','regular, final theo'), +(5028,199,10,2,15,16487.85,0.03,0.07,'R','F','1992-08-02','1992-07-09','1992-08-30','NONE','REG AIR','even courts '), +(5029,154,5,1,17,17920.55,0.02,0.01,'A','F','1993-03-12','1992-12-18','1993-04-02','DELIVER IN PERSON','FOB','blithely regular pinto '), +(5029,97,9,2,2,1994.18,0,0.04,'A','F','1992-11-25','1993-01-04','1992-12-20','DELIVER IN PERSON','MAIL','express, expre'), +(5030,102,3,1,22,22046.2,0.04,0.06,'N','O','1998-09-01','1998-08-15','1998-09-30','TAKE BACK RETURN','TRUCK','blithely pending depos'), +(5030,80,9,2,50,49004,0.05,0.06,'N','O','1998-08-22','1998-07-25','1998-09-18','TAKE BACK RETURN','FOB','even, sile'), +(5031,50,1,1,15,14250.75,0.02,0.05,'R','F','1995-04-01','1995-02-24','1995-04-12','DELIVER IN PERSON','AIR','even requests sleep. ideas cajole'), +(5031,161,6,2,40,42446.4,0.1,0.04,'A','F','1994-12-04','1995-01-27','1995-01-01','NONE','TRUCK','slyly pending packages above the ideas caj'), +(5031,154,6,3,4,4216.6,0.01,0.07,'R','F','1994-12-26','1995-02-24','1995-01-11','NONE','RAIL','ironic, regular accounts '), +(5031,181,2,4,31,33516.58,0.1,0.08,'R','F','1995-01-15','1995-01-08','1995-02-09','COLLECT COD','MAIL','quickly even packages use according '), +(5056,48,7,1,7,6636.28,0.09,0.01,'N','O','1997-04-28','1997-04-07','1997-05-15','DELIVER IN PERSON','TRUCK','ironic sheaves ac'), +(5056,197,1,2,19,20846.61,0.04,0,'N','O','1997-03-24','1997-05-05','1997-04-23','DELIVER IN PERSON','AIR','final excuses cajole carefully ac'), +(5056,90,1,3,23,22772.07,0.02,0.05,'N','O','1997-05-12','1997-04-28','1997-05-25','NONE','SHIP','requests are fluf'), +(5056,87,8,4,14,13819.12,0.08,0,'N','O','1997-06-09','1997-04-13','1997-07-06','COLLECT COD','SHIP','final, regular requests doubt blithely c'), +(5057,37,3,1,38,35607.14,0.02,0.03,'N','O','1997-10-24','1997-09-07','1997-10-30','TAKE BACK RETURN','MAIL','ironic foxes sleep furiously careful'), +(5057,8,1,2,45,40860,0.08,0.07,'N','O','1997-09-20','1997-10-02','1997-10-20','NONE','FOB','furiously regular dependencies doubt ca'), +(5058,193,5,1,16,17491.04,0.09,0.07,'N','O','1998-07-12','1998-06-09','1998-07-15','DELIVER IN PERSON','SHIP','regular excuses wake fluffily'), +(5059,70,5,1,5,4850.35,0.03,0.08,'R','F','1993-12-23','1994-01-12','1993-12-24','TAKE BACK RETURN','FOB','carefully express requests are care'), +(5059,123,2,2,19,19439.28,0.06,0.04,'R','F','1994-03-02','1993-12-26','1994-03-14','TAKE BACK RETURN','MAIL','quickly bold deposits above '), +(5059,77,7,3,45,43968.15,0.02,0,'A','F','1994-01-28','1994-01-08','1994-02-18','DELIVER IN PERSON','MAIL','ironic platelets w'), +(5060,25,8,1,27,24975.54,0.1,0.07,'R','F','1992-07-23','1992-09-05','1992-08-07','COLLECT COD','SHIP','final dolphins wake. slyly regular the'), +(5060,32,8,2,28,26096.84,0.04,0.04,'R','F','1992-09-25','1992-08-11','1992-10-09','NONE','REG AIR','regular realms alongside of the sil'), +(5060,161,2,3,15,15917.4,0.06,0.01,'A','F','1992-08-28','1992-08-20','1992-09-01','DELIVER IN PERSON','AIR','daringly regular deposits'), +(5061,165,2,1,18,19172.88,0.03,0,'A','F','1993-10-20','1993-10-05','1993-10-28','TAKE BACK RETURN','SHIP','regular accounts af'), +(5061,198,1,2,8,8785.52,0.01,0.02,'R','F','1993-09-07','1993-10-31','1993-10-04','DELIVER IN PERSON','REG AIR','unusual senti'), +(5061,24,5,3,26,24024.52,0.02,0.05,'A','F','1993-11-07','1993-09-13','1993-11-13','NONE','REG AIR','final, regular instructions thr'); +INSERT INTO lineitem VALUES +(5062,101,4,1,9,9009.9,0.08,0,'R','F','1993-01-02','1992-12-01','1993-01-20','TAKE BACK RETURN','MAIL','blithely regular accounts'), +(5062,75,6,2,4,3900.28,0.02,0.02,'R','F','1993-02-06','1992-12-14','1993-03-03','DELIVER IN PERSON','AIR','accounts caj'), +(5062,159,10,3,50,52957.5,0.09,0.07,'A','F','1992-12-25','1992-12-13','1992-12-29','TAKE BACK RETURN','MAIL','requests against the quickly special fox'), +(5062,161,10,4,18,19100.88,0.03,0.07,'R','F','1992-11-04','1992-12-25','1992-11-05','NONE','SHIP','quickly even '), +(5062,194,8,5,25,27354.75,0.08,0.02,'R','F','1992-12-15','1992-11-17','1993-01-01','NONE','TRUCK','carefully express dependencie'), +(5063,129,10,1,31,31902.72,0.08,0.01,'N','O','1997-06-02','1997-06-20','1997-06-27','NONE','RAIL','quickly fin'), +(5063,174,2,2,43,46189.31,0.04,0.08,'N','O','1997-09-14','1997-07-05','1997-10-05','TAKE BACK RETURN','TRUCK','blithely unusual excuses haggle carefully. '), +(5063,167,4,3,2,2134.32,0.02,0.03,'N','O','1997-06-17','1997-07-27','1997-06-24','COLLECT COD','SHIP','furiously bold req'), +(5063,135,6,4,18,18632.34,0.08,0.05,'N','O','1997-06-02','1997-06-18','1997-06-06','TAKE BACK RETURN','RAIL','silent, regular ideas are fin'), +(5063,161,8,5,1,1061.16,0.06,0.07,'N','O','1997-09-03','1997-06-26','1997-10-03','NONE','FOB','slyly even platelets'), +(5088,78,6,1,23,22495.61,0.06,0.06,'R','F','1993-03-03','1993-03-07','1993-03-08','NONE','FOB','carefully regular epita'), +(5088,51,3,2,41,38993.05,0.09,0,'R','F','1993-01-22','1993-03-07','1993-02-09','TAKE BACK RETURN','TRUCK','even requests'), +(5088,86,7,3,36,35498.88,0.1,0.05,'A','F','1993-04-16','1993-04-03','1993-05-14','NONE','TRUCK','quickly final packages haggl'), +(5088,109,6,4,10,10091,0.04,0.05,'R','F','1993-04-07','1993-02-06','1993-04-26','NONE','FOB','pending accounts cajole'), +(5089,158,6,1,4,4232.6,0.05,0.06,'R','F','1992-09-18','1992-09-28','1992-10-13','DELIVER IN PERSON','TRUCK','carefully iron'), +(5089,162,3,2,20,21243.2,0,0.07,'R','F','1992-10-10','1992-10-07','1992-11-06','COLLECT COD','RAIL','carefully regular accounts co'), +(5089,124,7,3,46,47109.52,0.03,0.04,'A','F','1992-11-09','1992-10-13','1992-11-10','TAKE BACK RETURN','RAIL','furiously final accounts nag slyly iro'), +(5089,34,10,4,38,35493.14,0.05,0.03,'R','F','1992-11-23','1992-09-11','1992-12-22','TAKE BACK RETURN','SHIP','thin ideas haggle. pending, permanent pac'), +(5090,22,3,1,22,20284.44,0.07,0,'N','O','1997-05-10','1997-05-25','1997-05-24','TAKE BACK RETURN','TRUCK','blithely regular theodolite'), +(5090,129,10,2,46,47339.52,0.05,0,'N','O','1997-04-05','1997-04-14','1997-05-01','COLLECT COD','REG AIR','slyly bold d'), +(5090,2,9,3,22,19844,0.09,0.05,'N','O','1997-07-03','1997-04-12','1997-07-26','NONE','REG AIR','special, regular packag'), +(5090,114,8,4,2,2028.22,0.03,0.06,'N','O','1997-04-07','1997-04-23','1997-05-01','TAKE BACK RETURN','AIR','ironic dependencies '), +(5090,48,9,5,21,19908.84,0.1,0.02,'N','O','1997-03-29','1997-04-24','1997-04-25','TAKE BACK RETURN','FOB','bold, fina'), +(5090,80,9,6,30,29402.4,0.02,0.03,'N','O','1997-05-04','1997-04-14','1997-05-30','COLLECT COD','MAIL','quickly even foxes b'), +(5091,78,6,1,50,48903.5,0.05,0.03,'N','O','1998-07-21','1998-06-22','1998-07-26','COLLECT COD','REG AIR','furiously express pack'), +(5092,164,1,1,30,31924.8,0.06,0,'N','O','1995-12-27','1995-12-08','1996-01-09','DELIVER IN PERSON','MAIL','carefully bold excuses caj'), +(5092,45,4,2,34,32131.36,0.04,0.02,'N','O','1995-12-09','1995-12-26','1995-12-21','TAKE BACK RETURN','AIR','carefully special theodolites wa'), +(5092,140,6,3,13,13521.82,0.06,0.01,'N','O','1995-11-21','1996-01-05','1995-12-19','TAKE BACK RETURN','SHIP','quickly iro'), +(5092,180,1,4,14,15122.52,0.04,0,'N','O','1996-02-20','1995-11-30','1996-03-20','DELIVER IN PERSON','REG AIR','packages print slyly unusual idea'), +(5092,186,7,5,42,45619.56,0.01,0.02,'N','O','1995-11-06','1996-01-01','1995-12-06','DELIVER IN PERSON','AIR','regular dolphins sleep qui'); +INSERT INTO lineitem VALUES +(5092,178,6,6,11,11859.87,0.03,0.03,'N','O','1995-12-02','1995-12-27','1995-12-11','COLLECT COD','MAIL','slyly unusual instruct'), +(5092,159,10,7,50,52957.5,0.1,0.03,'N','O','1995-11-30','1996-01-14','1995-12-19','NONE','REG AIR','furiously regul'), +(5093,168,9,1,40,42726.4,0.05,0.01,'R','F','1993-09-16','1993-11-04','1993-10-05','TAKE BACK RETURN','REG AIR','slyly final requests nod acro'), +(5093,74,2,2,15,14611.05,0.01,0.04,'A','F','1993-12-02','1993-11-18','1994-01-01','DELIVER IN PERSON','FOB','final foxes are express, '), +(5093,151,9,3,31,32585.65,0,0.02,'R','F','1993-09-22','1993-11-14','1993-09-26','TAKE BACK RETURN','REG AIR','regular, pending packages cajole slyly e'), +(5093,156,1,4,37,39077.55,0.04,0,'A','F','1993-10-26','1993-12-02','1993-10-27','NONE','TRUCK','carefully eve'), +(5093,115,2,5,30,30453.3,0.06,0.05,'A','F','1993-11-22','1993-11-27','1993-12-14','DELIVER IN PERSON','TRUCK','quickly unusual ideas lose carefu'), +(5093,121,6,6,31,31654.72,0.01,0.08,'A','F','1993-12-17','1993-11-14','1994-01-02','NONE','SHIP','fluffily final f'), +(5094,143,10,1,19,19819.66,0.03,0.03,'R','F','1993-03-31','1993-06-12','1993-04-04','NONE','AIR','regular, ironic ideas are u'), +(5094,108,5,2,23,23186.3,0.05,0.07,'R','F','1993-06-13','1993-05-19','1993-07-06','NONE','MAIL','slyly special pinto b'), +(5094,92,6,3,11,10912.99,0.04,0.08,'A','F','1993-06-25','1993-06-24','1993-07-18','TAKE BACK RETURN','MAIL','carefully pending warthogs nag furiou'), +(5094,79,10,4,21,20560.47,0.09,0.08,'R','F','1993-07-26','1993-05-03','1993-08-16','NONE','MAIL','slyly brav'), +(5095,65,10,1,46,44392.76,0.07,0.01,'A','F','1992-06-26','1992-06-25','1992-07-05','COLLECT COD','RAIL','carefully regular platelets c'), +(5095,106,3,2,2,2012.2,0.07,0.08,'A','F','1992-07-09','1992-05-25','1992-07-21','DELIVER IN PERSON','REG AIR','slyly even '), +(5095,123,8,3,28,28647.36,0.01,0.04,'A','F','1992-06-20','1992-06-27','1992-06-22','DELIVER IN PERSON','AIR','quickly fluffy foxes cajole'), +(5095,178,7,4,42,45283.14,0.08,0.08,'R','F','1992-05-23','1992-06-01','1992-06-18','COLLECT COD','TRUCK','express pinto beans eat even, even foxes'), +(5095,166,7,5,9,9595.44,0.1,0.07,'R','F','1992-08-14','1992-06-23','1992-08-16','TAKE BACK RETURN','REG AIR','furiously final instruct'), +(5095,97,8,6,15,14956.35,0.01,0.06,'A','F','1992-07-11','1992-07-12','1992-08-09','COLLECT COD','AIR','ironic, even requests according '), +(5095,169,10,7,40,42766.4,0.05,0.02,'A','F','1992-07-11','1992-06-07','1992-07-26','DELIVER IN PERSON','MAIL','carefully quiet asymptotes wake. carefu'), +(5120,133,4,1,28,28927.64,0.06,0.03,'N','O','1996-07-20','1996-08-31','1996-08-06','NONE','RAIL','packages sleep furiously alongside of t'), +(5121,184,5,1,23,24936.14,0.06,0.01,'A','F','1992-05-18','1992-06-20','1992-06-02','TAKE BACK RETURN','REG AIR','even requests after the regular Tire'), +(5121,111,1,2,45,45499.95,0.08,0.04,'A','F','1992-08-13','1992-07-27','1992-09-12','NONE','TRUCK','special dependencies ar'), +(5121,97,10,3,27,26921.43,0.08,0.07,'R','F','1992-06-17','1992-06-11','1992-06-19','NONE','MAIL','furiously eve'), +(5121,68,7,4,10,9680.6,0.04,0.05,'R','F','1992-06-08','1992-07-10','1992-07-02','TAKE BACK RETURN','FOB','blithely silent dolph'), +(5121,89,10,5,46,45497.68,0.03,0.02,'R','F','1992-05-27','1992-07-19','1992-05-28','TAKE BACK RETURN','FOB','unusual warthogs wake'), +(5121,1,8,6,2,1802,0.04,0.07,'R','F','1992-08-10','1992-06-28','1992-08-11','NONE','FOB','stealthily express accounts wake furio'), +(5122,183,4,1,28,30329.04,0.03,0,'N','O','1996-04-20','1996-03-29','1996-04-29','DELIVER IN PERSON','FOB','carefully iro'), +(5122,82,3,2,43,42229.44,0.09,0.03,'N','O','1996-05-31','1996-04-12','1996-06-13','NONE','MAIL','blithely final excuses are with the iron'), +(5122,45,6,3,12,11340.48,0.07,0.03,'N','O','1996-04-02','1996-04-27','1996-04-10','DELIVER IN PERSON','AIR','quickly ironi'), +(5123,26,7,1,13,12038.26,0.08,0.07,'N','O','1998-05-17','1998-03-23','1998-06-02','COLLECT COD','MAIL','quickly ironic'); +INSERT INTO lineitem VALUES +(5124,55,7,1,43,41067.15,0,0.02,'N','O','1997-07-10','1997-05-13','1997-07-31','COLLECT COD','AIR','regular exc'), +(5124,6,3,2,41,37146,0.02,0.06,'N','O','1997-07-05','1997-06-29','1997-07-23','DELIVER IN PERSON','RAIL','even, regular pinto beans serve quickl'), +(5124,125,6,3,44,45105.28,0.03,0.03,'N','O','1997-07-13','1997-06-26','1997-08-01','DELIVER IN PERSON','RAIL','furiously permanent dep'), +(5124,70,9,4,36,34922.52,0.1,0.07,'N','O','1997-04-20','1997-07-03','1997-05-04','TAKE BACK RETURN','AIR','furious theodolites use '), +(5125,6,9,1,38,34428,0.09,0.05,'N','O','1998-03-20','1998-04-14','1998-03-22','COLLECT COD','MAIL','ironic, regular sen'), +(5125,160,1,2,5,5300.8,0.08,0.06,'N','O','1998-04-07','1998-04-14','1998-04-29','COLLECT COD','RAIL','requests alongside '), +(5126,24,3,1,33,30492.66,0.02,0.02,'R','F','1993-02-04','1992-12-23','1993-02-14','NONE','RAIL','blithely even packages use car'), +(5126,101,6,2,43,43047.3,0.09,0.04,'R','F','1993-01-07','1992-12-19','1993-01-16','COLLECT COD','MAIL','ironic, bold platelets cajole bravely. sl'), +(5126,78,8,3,23,22495.61,0.08,0.01,'R','F','1993-01-02','1993-01-02','1993-01-05','COLLECT COD','TRUCK','special accounts kin'), +(5127,19,3,1,33,30327.33,0.08,0.04,'N','O','1997-03-25','1997-03-02','1997-04-04','NONE','SHIP','fluffily final'), +(5127,32,8,2,20,18640.6,0.01,0.03,'N','O','1997-05-11','1997-02-26','1997-05-12','TAKE BACK RETURN','SHIP','deposits at th'), +(5152,105,2,1,9,9045.9,0.04,0.03,'N','O','1997-04-11','1997-02-11','1997-04-18','COLLECT COD','AIR','accounts sleep slyly '), +(5152,134,10,2,50,51706.5,0.04,0.04,'N','O','1997-03-10','1997-02-04','1997-03-15','COLLECT COD','FOB','regular, eve'), +(5153,35,1,1,42,39271.26,0.03,0.01,'N','O','1995-10-03','1995-11-09','1995-10-11','COLLECT COD','RAIL','final theodolites eat carefully ir'), +(5153,53,5,2,14,13342.7,0.05,0.05,'N','O','1995-11-29','1995-10-21','1995-12-08','TAKE BACK RETURN','TRUCK','final, unusual requests alongsi'), +(5153,68,7,3,30,29041.8,0.09,0.01,'N','O','1995-11-10','1995-11-14','1995-11-16','DELIVER IN PERSON','AIR','furiously express ideas '), +(5153,173,2,4,32,34341.44,0.1,0.08,'N','O','1995-12-05','1995-09-25','1996-01-03','DELIVER IN PERSON','MAIL','bold theodolites'), +(5153,112,2,5,36,36435.96,0.01,0.03,'N','O','1995-12-15','1995-11-08','1995-12-30','COLLECT COD','TRUCK','pending, even fox'), +(5153,136,2,6,42,43517.46,0,0.03,'N','O','1995-10-19','1995-11-23','1995-11-06','TAKE BACK RETURN','RAIL','furiously final d'), +(5154,190,1,1,11,11992.09,0.02,0.05,'N','O','1997-08-06','1997-06-30','1997-09-04','NONE','RAIL','furiously express '), +(5154,144,5,2,15,15662.1,0.07,0.08,'N','O','1997-06-23','1997-07-11','1997-07-11','NONE','AIR','slyly bold ideas are ironic theo'), +(5155,48,9,1,1,948.04,0,0,'A','F','1994-07-03','1994-08-11','1994-07-29','COLLECT COD','FOB','express deposits was blith'), +(5155,188,9,2,5,5440.9,0.08,0.02,'A','F','1994-06-30','1994-08-13','1994-07-15','TAKE BACK RETURN','AIR','slyly final requests integrate idly'), +(5155,106,3,3,28,28170.8,0.05,0.02,'R','F','1994-07-01','1994-07-19','1994-07-18','COLLECT COD','REG AIR','accounts cajole packag'), +(5155,79,7,4,39,38183.73,0.09,0.06,'A','F','1994-08-25','1994-09-01','1994-09-18','COLLECT COD','TRUCK','slyly regular deposits cajole slyly '), +(5156,117,4,1,21,21359.31,0.06,0.03,'N','O','1997-01-01','1997-01-30','1997-01-11','TAKE BACK RETURN','TRUCK','furiously express pinto bea'), +(5156,148,1,2,36,37733.04,0.04,0.07,'N','O','1997-02-12','1996-12-10','1997-03-13','TAKE BACK RETURN','REG AIR','packages detect carefully. pend'), +(5157,55,7,1,35,33426.75,0.06,0.08,'N','O','1997-07-28','1997-09-30','1997-08-15','TAKE BACK RETURN','REG AIR','final asymptotes caj'), +(5157,138,9,2,18,18686.34,0.1,0.04,'N','O','1997-09-06','1997-10-03','1997-09-19','COLLECT COD','MAIL','carefully final request'), +(5157,167,8,3,15,16007.4,0.09,0,'N','O','1997-07-27','1997-08-30','1997-08-08','DELIVER IN PERSON','RAIL','final ideas detect regular '); +INSERT INTO lineitem VALUES +(5157,59,7,4,25,23976.25,0,0.03,'N','O','1997-08-24','1997-09-23','1997-08-28','COLLECT COD','REG AIR','regular requests among the'), +(5157,149,8,5,40,41965.6,0.09,0.06,'N','O','1997-08-11','1997-08-28','1997-09-01','TAKE BACK RETURN','FOB','furiously final requests'), +(5157,150,9,6,26,27303.9,0.1,0.01,'N','O','1997-07-28','1997-08-22','1997-08-22','NONE','FOB','ironic ide'), +(5157,49,8,7,12,11388.48,0.1,0.08,'N','O','1997-10-19','1997-08-07','1997-10-26','NONE','FOB','blithely bold dependencies engage acco'), +(5158,45,4,1,43,40636.72,0.1,0.04,'N','O','1997-04-10','1997-03-06','1997-04-15','DELIVER IN PERSON','AIR','carefully even packages '), +(5158,85,6,2,18,17731.44,0.04,0.04,'N','O','1997-04-30','1997-03-28','1997-05-12','COLLECT COD','REG AIR','carefully ironic instructions haggle speci'), +(5158,142,9,3,41,42727.74,0.05,0.05,'N','O','1997-02-25','1997-03-19','1997-03-03','COLLECT COD','AIR','slyly regular packages unwi'), +(5158,131,7,4,49,50525.37,0.05,0.01,'N','O','1997-04-10','1997-03-21','1997-04-30','NONE','REG AIR','carefully pen'), +(5158,119,9,5,20,20382.2,0.01,0.04,'N','O','1997-02-03','1997-02-20','1997-02-08','TAKE BACK RETURN','AIR','ruthless requests'), +(5158,88,9,6,39,38535.12,0.08,0.04,'N','O','1997-05-15','1997-04-04','1997-06-02','DELIVER IN PERSON','FOB','final requests above the slyly final '), +(5158,91,5,7,38,37661.42,0.1,0.05,'N','O','1997-05-09','1997-03-03','1997-06-04','NONE','SHIP','blithely regular packages ca'), +(5159,124,7,1,39,39940.68,0.06,0.07,'N','O','1996-12-17','1996-12-08','1997-01-10','COLLECT COD','MAIL','silent courts after the brave, final pack'), +(5159,17,1,2,46,42182.46,0.01,0.01,'N','O','1996-12-15','1996-12-07','1996-12-30','DELIVER IN PERSON','SHIP','slyly pending fox'), +(5159,152,4,3,22,23147.3,0.01,0.02,'N','O','1996-11-06','1996-11-04','1996-11-15','TAKE BACK RETURN','SHIP','silent, regular requests are ironic'), +(5159,52,3,4,5,4760.25,0.1,0,'N','O','1996-11-25','1996-12-19','1996-12-25','TAKE BACK RETURN','FOB','foxes hang a'), +(5159,198,10,5,36,39534.84,0.06,0.01,'N','O','1997-01-24','1996-11-07','1997-02-08','NONE','REG AIR','carefully even deposits h'), +(5184,153,8,1,33,34753.95,0.07,0.04,'N','O','1998-08-17','1998-10-16','1998-08-24','TAKE BACK RETURN','AIR','silent, silent'), +(5184,16,6,2,47,43052.47,0.05,0.01,'N','O','1998-11-02','1998-08-19','1998-11-07','COLLECT COD','TRUCK','ironic, express'), +(5184,88,9,3,39,38535.12,0.03,0.06,'N','O','1998-10-27','1998-10-17','1998-11-19','DELIVER IN PERSON','FOB','carefully pending accoun'), +(5184,176,7,4,26,27980.42,0.05,0.08,'N','O','1998-11-11','1998-08-26','1998-12-01','TAKE BACK RETURN','TRUCK','fluffily re'), +(5184,124,9,5,19,19458.28,0.06,0.03,'N','O','1998-11-15','1998-10-12','1998-11-21','COLLECT COD','REG AIR','slyly regular deposits above the f'), +(5184,80,9,6,49,48023.92,0.02,0,'N','O','1998-09-18','1998-08-28','1998-10-14','COLLECT COD','FOB','final account'), +(5185,197,1,1,37,40596.03,0,0.04,'N','O','1997-08-08','1997-09-08','1997-08-14','COLLECT COD','SHIP','thinly regular sentiments among t'), +(5185,25,8,2,32,29600.64,0.06,0,'N','O','1997-08-17','1997-09-30','1997-08-24','TAKE BACK RETURN','REG AIR','slyly final requests'), +(5185,196,9,3,41,44943.79,0,0.05,'N','O','1997-10-15','1997-10-11','1997-11-02','COLLECT COD','REG AIR','slyly express requests wake. bli'), +(5185,96,7,4,30,29882.7,0.09,0.04,'N','O','1997-10-17','1997-09-16','1997-10-23','TAKE BACK RETURN','SHIP','ironic, regular tithes are th'), +(5185,128,9,5,8,8224.96,0.04,0,'N','O','1997-08-30','1997-09-02','1997-09-22','COLLECT COD','REG AIR','ironic, ironic co'), +(5185,146,9,6,50,52307,0.03,0.04,'N','O','1997-10-15','1997-10-19','1997-11-06','TAKE BACK RETURN','FOB','blithely bold requests haggle furiously '), +(5186,55,10,1,38,36291.9,0.06,0.02,'N','O','1996-11-23','1996-09-21','1996-12-11','DELIVER IN PERSON','MAIL','carefully unusual requests cajol'), +(5186,91,2,2,31,30723.79,0.09,0.03,'N','O','1996-10-19','1996-09-26','1996-10-25','TAKE BACK RETURN','REG AIR','blithely ir'); +INSERT INTO lineitem VALUES +(5186,89,10,3,26,25716.08,0.03,0.02,'N','O','1996-08-08','1996-10-05','1996-08-21','DELIVER IN PERSON','FOB','regular requ'), +(5186,90,1,4,8,7920.72,0.1,0.05,'N','O','1996-09-23','1996-09-29','1996-09-30','COLLECT COD','RAIL','slyly bold accounts sno'), +(5186,18,2,5,28,25704.28,0.09,0.03,'N','O','1996-10-05','1996-10-27','1996-10-19','TAKE BACK RETURN','RAIL','slyly regular pinto'), +(5186,82,3,6,35,34372.8,0,0.05,'N','O','1996-10-20','1996-10-12','1996-11-12','TAKE BACK RETURN','RAIL','carefully silent i'), +(5186,198,10,7,44,48320.36,0,0.08,'N','O','1996-09-23','1996-10-14','1996-10-01','NONE','TRUCK','carefully stealthy accounts along the'), +(5187,11,1,1,49,44639.49,0.04,0.06,'N','O','1997-10-20','1997-10-12','1997-10-26','DELIVER IN PERSON','AIR','bold, ironic req'), +(5187,83,4,2,1,983.08,0.1,0.08,'N','O','1997-08-08','1997-08-24','1997-08-22','DELIVER IN PERSON','REG AIR','even ideas affix carefully'), +(5188,118,2,1,18,18325.98,0.04,0.03,'N','O','1995-06-19','1995-05-19','1995-06-25','DELIVER IN PERSON','AIR','doggedly spec'), +(5188,194,8,2,36,39390.84,0.04,0.02,'A','F','1995-03-09','1995-05-16','1995-03-19','NONE','TRUCK','even deposits haggle quick'), +(5188,148,1,3,9,9433.26,0.06,0.08,'A','F','1995-05-09','1995-05-22','1995-05-19','TAKE BACK RETURN','REG AIR','bold, even accoun'), +(5189,138,9,1,44,45677.72,0.02,0.06,'A','F','1994-01-13','1994-02-07','1994-01-21','DELIVER IN PERSON','MAIL','bold foxes wake. blith'), +(5189,16,3,2,38,34808.38,0.06,0,'A','F','1994-03-26','1994-01-28','1994-04-20','DELIVER IN PERSON','REG AIR','quickly even courts sleep '), +(5189,110,5,3,4,4040.44,0.09,0.02,'A','F','1993-12-21','1994-02-23','1994-01-09','DELIVER IN PERSON','REG AIR','quickly express att'), +(5189,94,7,4,49,48710.41,0.05,0.01,'R','F','1994-01-22','1994-01-19','1994-02-04','TAKE BACK RETURN','SHIP','even deposits'), +(5189,123,2,5,14,14323.68,0.02,0.03,'A','F','1994-01-23','1994-01-05','1994-02-12','DELIVER IN PERSON','REG AIR','fluffily express requests integra'), +(5189,17,8,6,41,37597.41,0.02,0.06,'R','F','1993-12-12','1994-02-05','1994-01-09','DELIVER IN PERSON','RAIL','furiously ironic deposits about the pea'), +(5190,56,1,1,43,41110.15,0.09,0.06,'A','F','1992-08-19','1992-06-10','1992-09-01','DELIVER IN PERSON','FOB','bold pinto beans '), +(5190,132,3,2,6,6192.78,0.1,0.08,'A','F','1992-08-08','1992-07-14','1992-08-22','COLLECT COD','RAIL','final instructions along'), +(5190,89,10,3,45,44508.6,0.04,0.03,'A','F','1992-07-23','1992-06-16','1992-08-04','NONE','FOB','regular, express ideas s'), +(5191,115,6,1,41,41619.51,0,0.08,'A','F','1995-02-05','1995-02-27','1995-02-15','DELIVER IN PERSON','AIR','foxes haggle around the quickly special acc'), +(5191,168,7,2,40,42726.4,0.02,0.01,'A','F','1995-03-31','1995-02-21','1995-04-02','NONE','AIR','requests aft'), +(5191,43,4,3,27,25462.08,0.07,0.05,'A','F','1994-12-26','1995-01-24','1995-01-14','DELIVER IN PERSON','RAIL','furiously express asymp'), +(5191,183,4,4,7,7582.26,0.01,0.04,'A','F','1995-03-24','1995-01-30','1995-03-30','NONE','RAIL','excuses are fluffily! ideas nag always abo'), +(5216,69,10,1,17,16474.02,0.04,0.06,'N','O','1997-08-20','1997-11-07','1997-09-14','COLLECT COD','FOB','packages cajole fluffily across the furi'), +(5217,80,1,1,50,49004,0.05,0.02,'N','O','1995-12-26','1995-11-21','1996-01-24','DELIVER IN PERSON','MAIL','deposits cajo'), +(5217,16,7,2,23,21068.23,0.06,0.07,'N','O','1996-01-18','1995-12-24','1996-02-10','COLLECT COD','RAIL','blithely even dependencies '), +(5217,102,7,3,23,23048.3,0.03,0.02,'N','O','1995-11-15','1995-12-17','1995-11-27','DELIVER IN PERSON','FOB','furiously unusual accou'), +(5217,81,2,4,47,46110.76,0.04,0,'N','O','1995-11-24','1995-12-25','1995-11-25','COLLECT COD','AIR','ironic dolphins wake carefully c'), +(5218,83,4,1,43,42272.44,0.05,0.04,'A','F','1992-08-04','1992-09-12','1992-08-17','DELIVER IN PERSON','SHIP','slyly regular re'), +(5218,125,4,2,33,33828.96,0.06,0.01,'R','F','1992-09-16','1992-09-30','1992-09-27','NONE','TRUCK','regular pinto beans use blith'); +INSERT INTO lineitem VALUES +(5219,135,6,1,2,2070.26,0.08,0,'N','O','1997-06-26','1997-04-29','1997-07-08','TAKE BACK RETURN','FOB','carefully special requests wake. ca'), +(5219,119,9,2,20,20382.2,0.05,0,'N','O','1997-04-20','1997-05-26','1997-05-13','COLLECT COD','FOB','furiously ironic theodolites '), +(5220,83,4,1,27,26543.16,0.1,0.04,'R','F','1992-09-21','1992-08-29','1992-10-16','DELIVER IN PERSON','RAIL','ironic escapades nod slyly. '), +(5221,104,9,1,24,24098.4,0.07,0.03,'N','O','1995-10-04','1995-08-11','1995-10-30','COLLECT COD','REG AIR','blithely bold theodolites mold: fl'), +(5221,9,10,2,34,30906,0.01,0.05,'N','O','1995-09-11','1995-07-17','1995-10-10','COLLECT COD','SHIP','express accounts are slyly aga'), +(5221,180,10,3,16,17282.88,0.04,0.01,'N','O','1995-08-29','1995-09-06','1995-09-12','TAKE BACK RETURN','TRUCK','regular packages are qu'), +(5222,151,3,1,1,1051.15,0,0,'A','F','1994-08-19','1994-07-16','1994-09-08','TAKE BACK RETURN','FOB','carefully final reque'), +(5223,45,4,1,24,22680.96,0,0,'A','F','1994-10-03','1994-09-20','1994-10-11','TAKE BACK RETURN','TRUCK','carefully ironic accounts among the spec'), +(5223,124,9,2,25,25603,0.09,0.02,'R','F','1994-07-12','1994-08-13','1994-08-01','NONE','FOB','even, special dependenc'), +(5223,6,3,3,19,17214,0.04,0.01,'R','F','1994-10-28','1994-08-26','1994-10-31','COLLECT COD','REG AIR','enticingly un'), +(5223,130,9,4,40,41205.2,0.01,0.04,'R','F','1994-10-01','1994-09-18','1994-10-28','COLLECT COD','SHIP','bold pinto be'), +(5248,81,2,1,39,38262.12,0.05,0.03,'N','O','1995-08-10','1995-07-04','1995-09-09','TAKE BACK RETURN','MAIL','regular instructions '), +(5248,138,9,2,45,46715.85,0,0.06,'A','F','1995-05-09','1995-07-12','1995-05-27','DELIVER IN PERSON','FOB','furiously i'), +(5249,50,9,1,31,29451.55,0.07,0.03,'A','F','1994-11-21','1994-11-19','1994-12-08','NONE','REG AIR','platelets after the quickly ironic reque'), +(5249,31,7,2,44,40965.32,0.05,0,'A','F','1994-12-28','1994-11-29','1994-12-29','TAKE BACK RETURN','MAIL','furiously special requests e'), +(5249,32,8,3,13,12116.39,0.09,0,'R','F','1994-09-27','1994-10-20','1994-10-05','DELIVER IN PERSON','SHIP','carefully d'), +(5249,146,3,4,29,30338.06,0,0.05,'A','F','1994-09-16','1994-11-03','1994-10-06','NONE','TRUCK','carefully ironic courts are. '), +(5249,158,6,5,12,12697.8,0.01,0.08,'R','F','1994-12-28','1994-11-07','1995-01-15','COLLECT COD','MAIL','slowly final ideas hag'), +(5250,44,3,1,2,1888.08,0.08,0.04,'N','O','1995-08-09','1995-10-10','1995-08-13','COLLECT COD','AIR','silent deposits nag according '), +(5250,192,6,2,27,29489.13,0.1,0.05,'N','O','1995-10-24','1995-09-03','1995-11-18','COLLECT COD','TRUCK','bold deposits wake'), +(5251,139,10,1,36,37408.68,0.1,0.01,'N','O','1995-07-16','1995-07-05','1995-07-28','DELIVER IN PERSON','FOB','carefully ironic de'), +(5252,141,10,1,13,13534.82,0.02,0.01,'N','O','1996-03-02','1996-05-10','1996-03-11','NONE','FOB','furiously ironic depos'), +(5252,139,5,2,39,40526.07,0.06,0.05,'N','O','1996-05-17','1996-04-23','1996-05-23','COLLECT COD','AIR','even platelets boost furiously up t'), +(5252,195,9,3,9,9856.71,0.09,0.03,'N','O','1996-05-30','1996-05-03','1996-06-26','TAKE BACK RETURN','RAIL','bold, special pinto b'), +(5252,87,8,4,48,47379.84,0.01,0.06,'N','O','1996-04-17','1996-03-19','1996-05-03','COLLECT COD','AIR','orbits sleep carefully'), +(5252,68,5,5,24,23233.44,0.04,0.05,'N','O','1996-05-11','1996-04-17','1996-05-12','COLLECT COD','REG AIR','blithely unusual packages nag after th'), +(5252,3,10,6,41,37023,0.02,0.03,'N','O','1996-03-16','1996-04-18','1996-03-17','NONE','TRUCK','slyly final t'), +(5253,31,2,1,35,32586.05,0.02,0,'N','O','1995-07-23','1995-06-12','1995-08-03','DELIVER IN PERSON','AIR','quickly express '), +(5253,150,7,2,38,39905.7,0.02,0.06,'N','O','1995-08-03','1995-06-14','1995-08-27','DELIVER IN PERSON','REG AIR','asymptotes'), +(5253,14,5,3,9,8226.09,0.03,0.08,'N','F','1995-06-08','1995-05-12','1995-06-23','DELIVER IN PERSON','REG AIR','ironic excuses dazzle! blithely even pear'); +INSERT INTO lineitem VALUES +(5253,166,1,4,25,26654,0.04,0.03,'A','F','1995-05-21','1995-06-13','1995-06-09','COLLECT COD','TRUCK','express, even acc'), +(5254,111,2,1,35,35388.85,0.01,0.07,'A','F','1992-07-28','1992-09-05','1992-08-07','COLLECT COD','REG AIR','furiously regular pinto beans are. regular'), +(5254,135,6,2,10,10351.3,0.05,0.04,'A','F','1992-11-19','1992-10-20','1992-12-15','COLLECT COD','SHIP','fluffily bold accou'), +(5254,192,5,3,32,34950.08,0,0.08,'A','F','1992-08-10','1992-09-21','1992-08-16','NONE','RAIL','quickly final packages use qui'), +(5254,163,2,4,45,47842.2,0.05,0.06,'A','F','1992-11-11','1992-09-01','1992-12-07','COLLECT COD','REG AIR','pending theodolites af'), +(5254,29,8,5,23,21367.46,0.02,0.06,'A','F','1992-08-16','1992-09-05','1992-09-15','COLLECT COD','RAIL','carefully u'), +(5254,158,3,6,34,35977.1,0.09,0.02,'R','F','1992-08-29','1992-10-16','1992-09-20','TAKE BACK RETURN','RAIL','blithely final r'), +(5254,20,7,7,9,8280.18,0.09,0.03,'R','F','1992-07-29','1992-10-15','1992-08-20','TAKE BACK RETURN','REG AIR','carefully iro'), +(5255,131,7,1,2,2062.26,0.04,0.08,'N','O','1996-09-27','1996-10-04','1996-10-04','DELIVER IN PERSON','RAIL','regular platelets run furi'), +(5255,172,10,2,30,32165.1,0.04,0.08,'N','O','1996-09-20','1996-08-18','1996-10-09','TAKE BACK RETURN','AIR','furiously silent packages sleep'), +(5255,130,3,3,41,42235.33,0.09,0.03,'N','O','1996-08-21','1996-09-24','1996-09-05','COLLECT COD','FOB','even theodolites detect! unusu'), +(5280,97,9,1,16,15953.44,0.02,0.03,'N','O','1998-03-29','1998-01-28','1998-04-03','TAKE BACK RETURN','SHIP','blithely regular requests serve s'), +(5280,176,5,2,46,49503.82,0.01,0.06,'N','O','1998-01-04','1998-01-21','1998-02-03','TAKE BACK RETURN','FOB','fluffy requests haggle slyly. carefully s'), +(5281,114,1,1,37,37522.07,0.05,0.02,'N','O','1995-11-10','1996-01-31','1995-11-22','DELIVER IN PERSON','MAIL','bold packages above the blithely ironic dol'), +(5281,105,2,2,38,38193.8,0,0.05,'N','O','1996-02-17','1995-12-19','1996-02-29','NONE','RAIL','slyly final platelets use across'), +(5281,127,2,3,23,23623.76,0.08,0,'N','O','1995-12-30','1996-01-26','1996-01-23','COLLECT COD','REG AIR','packages use quickl'), +(5281,87,8,4,48,47379.84,0.03,0.05,'N','O','1996-01-31','1995-12-23','1996-02-08','TAKE BACK RETURN','REG AIR','slyly final accounts x-'), +(5281,43,10,5,33,31120.32,0.01,0.07,'N','O','1996-03-01','1995-12-28','1996-03-05','COLLECT COD','RAIL','carefully regular requests int'), +(5282,118,2,1,36,36651.96,0.05,0.02,'N','O','1998-05-20','1998-04-10','1998-06-14','DELIVER IN PERSON','TRUCK','fluffily ironic packages above the furio'), +(5282,52,10,2,32,30465.6,0.02,0.05,'N','O','1998-03-01','1998-03-31','1998-03-03','NONE','FOB','unusual, even theodolites wake? regular f'), +(5282,58,10,3,28,26825.4,0.03,0.06,'N','O','1998-05-06','1998-04-24','1998-05-30','COLLECT COD','SHIP','quickly blithe packages nag.'), +(5283,5,2,1,20,18100,0.05,0.02,'A','F','1994-09-16','1994-08-03','1994-10-15','TAKE BACK RETURN','TRUCK','stealthy packages cajol'), +(5283,186,7,2,1,1086.18,0.1,0.08,'R','F','1994-06-20','1994-08-03','1994-07-01','COLLECT COD','FOB','express deposits after the courts maint'), +(5284,173,1,1,16,17170.72,0.04,0.02,'N','O','1995-08-17','1995-08-23','1995-08-26','DELIVER IN PERSON','TRUCK','furiously final pinto beans caj'), +(5284,44,7,2,24,22656.96,0.03,0.08,'N','O','1995-10-21','1995-08-23','1995-10-27','COLLECT COD','AIR','even, ironic theodo'), +(5285,193,5,1,31,33888.89,0.08,0,'A','F','1994-04-17','1994-04-05','1994-05-09','NONE','RAIL','express, bold depths according to t'), +(5285,31,2,2,37,34448.11,0.09,0.02,'R','F','1994-02-26','1994-02-18','1994-03-27','NONE','SHIP','careful deposits cajole fur'), +(5285,34,10,3,24,22416.72,0.02,0.04,'A','F','1994-04-19','1994-04-03','1994-04-25','DELIVER IN PERSON','FOB','accounts sleep above the carefully '), +(5285,43,2,4,12,11316.48,0.05,0.06,'A','F','1994-04-22','1994-04-07','1994-05-19','NONE','AIR','furiously even'); +INSERT INTO lineitem VALUES +(5285,71,2,5,1,971.07,0.03,0.05,'R','F','1994-03-14','1994-02-20','1994-04-10','COLLECT COD','TRUCK','carefully un'), +(5285,146,7,6,1,1046.14,0.06,0.01,'R','F','1994-02-08','1994-04-02','1994-02-17','COLLECT COD','SHIP','furiously unusual courts sleep carefully'), +(5286,199,1,1,1,1099.19,0.01,0.07,'N','O','1997-11-25','1997-11-07','1997-12-17','COLLECT COD','REG AIR','ironic foxes doubt. requests across the fin'), +(5286,97,1,2,7,6979.63,0.06,0.05,'N','O','1997-10-23','1997-12-10','1997-11-20','TAKE BACK RETURN','RAIL','slyly even acc'), +(5286,16,10,3,3,2748.03,0.06,0.08,'N','O','1997-12-04','1997-11-06','1997-12-09','COLLECT COD','MAIL','requests cajole against the ide'), +(5286,40,6,4,6,5640.24,0.04,0.03,'N','O','1997-10-15','1997-12-05','1997-11-12','COLLECT COD','RAIL','fluffily bold a'), +(5286,186,7,5,38,41274.84,0.07,0.05,'N','O','1997-11-29','1997-11-26','1997-12-15','TAKE BACK RETURN','SHIP','slyly regular requests hinder fluf'), +(5286,138,9,6,24,24915.12,0.08,0,'N','O','1997-09-27','1997-12-21','1997-09-30','COLLECT COD','TRUCK','slyly regular foxes print '), +(5287,39,10,1,32,30048.96,0.01,0.01,'A','F','1994-01-29','1994-01-27','1994-02-08','NONE','RAIL','blithely fin'), +(5312,61,6,1,27,25948.62,0.04,0.08,'A','F','1995-04-20','1995-04-09','1995-04-25','COLLECT COD','SHIP','carefully ironic packages run a'), +(5312,2,5,2,43,38786,0.05,0.08,'A','F','1995-03-24','1995-05-07','1995-03-28','NONE','TRUCK','blithely bold accounts h'), +(5313,17,1,1,34,31178.34,0.1,0.02,'N','O','1997-08-07','1997-08-12','1997-08-24','DELIVER IN PERSON','FOB','ironic dependencies doze abov'), +(5313,13,10,2,17,15521.17,0,0.02,'N','O','1997-09-02','1997-08-20','1997-09-07','NONE','SHIP','slyly specia'), +(5313,112,9,3,47,47569.17,0.06,0.08,'N','O','1997-08-12','1997-08-18','1997-08-13','TAKE BACK RETURN','RAIL','slyly bold asymptotes alo'), +(5313,197,1,4,16,17555.04,0.08,0,'N','O','1997-10-04','1997-08-02','1997-10-25','COLLECT COD','REG AIR','blithely unusual theodolites after the quic'), +(5313,72,1,5,30,29162.1,0.06,0.08,'N','O','1997-06-27','1997-07-18','1997-06-30','NONE','SHIP','unusual pinto beans against the caref'), +(5313,120,7,6,21,21422.52,0.05,0.05,'N','O','1997-09-26','1997-09-02','1997-10-18','COLLECT COD','FOB','quickly pending packages along the b'), +(5314,118,9,1,10,10181.1,0.07,0.05,'N','O','1995-09-26','1995-07-24','1995-10-19','DELIVER IN PERSON','RAIL','furiously express dependencies cajole flu'), +(5314,125,6,2,16,16401.92,0,0.04,'N','O','1995-09-25','1995-07-08','1995-10-17','COLLECT COD','SHIP','slyly final depths doubt caref'), +(5315,35,1,1,12,11220.36,0.08,0.06,'R','F','1992-12-18','1993-01-16','1993-01-10','NONE','AIR','final, even requests are sl'), +(5315,179,10,2,39,42087.63,0,0.06,'R','F','1992-11-09','1992-12-29','1992-12-07','NONE','SHIP','carefully regular epitaphs sleep alon'), +(5316,108,1,1,29,29234.9,0.1,0.05,'R','F','1994-03-28','1994-04-29','1994-04-09','DELIVER IN PERSON','REG AIR','furiously ironic dolphins arou'), +(5316,136,7,2,31,32120.03,0,0.08,'A','F','1994-04-01','1994-04-21','1994-04-12','DELIVER IN PERSON','MAIL','ironic, unusual notornis sleep. furiousl'), +(5317,82,3,1,29,28480.32,0.02,0.06,'A','F','1994-11-28','1994-11-27','1994-12-16','COLLECT COD','FOB','carefully ironic requests exc'), +(5317,171,2,2,18,19281.06,0.06,0.06,'A','F','1995-01-02','1994-10-29','1995-01-16','NONE','RAIL','theodolite'), +(5317,120,4,3,37,37744.44,0.09,0,'R','F','1994-09-15','1994-10-24','1994-09-23','NONE','TRUCK','carefully ironic request'), +(5317,67,6,4,50,48353,0.09,0.01,'A','F','1994-10-17','1994-10-25','1994-11-03','NONE','REG AIR','even requests among the silent, even a'), +(5317,95,8,5,19,18906.71,0.07,0.07,'R','F','1994-12-15','1994-10-18','1994-12-27','NONE','MAIL','fluffily regular requests along th'), +(5317,115,9,6,48,48725.28,0.01,0.03,'A','F','1994-09-19','1994-11-25','1994-10-03','COLLECT COD','MAIL','quickly final '), +(5317,169,4,7,30,32074.8,0.07,0.07,'A','F','1994-10-13','1994-10-31','1994-10-28','NONE','AIR','regular, regul'); +INSERT INTO lineitem VALUES +(5318,61,6,1,13,12493.78,0.1,0.04,'R','F','1993-07-15','1993-06-25','1993-08-13','COLLECT COD','REG AIR','foxes boos'), +(5318,180,1,2,26,28084.68,0,0.04,'R','F','1993-07-07','1993-05-23','1993-07-28','COLLECT COD','SHIP','even deposits must '), +(5318,7,10,3,37,33559,0.07,0.05,'A','F','1993-07-09','1993-06-22','1993-07-21','COLLECT COD','SHIP','blithely final pinto bean'), +(5318,142,5,4,31,32306.34,0.01,0.04,'R','F','1993-07-28','1993-05-06','1993-08-06','DELIVER IN PERSON','REG AIR','furiously ex'), +(5319,150,9,1,31,32554.65,0.04,0.07,'N','O','1996-03-26','1996-03-07','1996-04-24','COLLECT COD','TRUCK','special, final epitaphs sleep qui'), +(5319,44,3,2,39,36817.56,0.09,0.05,'N','O','1996-05-17','1996-03-14','1996-06-11','NONE','TRUCK','carefully even pinto beans integrat'), +(5344,19,3,1,6,5514.06,0.07,0.01,'N','O','1998-08-04','1998-09-03','1998-08-11','TAKE BACK RETURN','REG AIR','slyly pending packages about the r'), +(5344,79,9,2,37,36225.59,0.03,0.07,'N','O','1998-10-09','1998-07-26','1998-11-08','NONE','TRUCK','brave packages wake. carefully bold pa'), +(5344,67,8,3,26,25143.56,0.02,0.06,'N','O','1998-08-27','1998-08-22','1998-09-24','NONE','AIR','quickly unusual re'), +(5344,39,10,4,21,19719.63,0.03,0.01,'N','O','1998-08-31','1998-09-06','1998-09-02','NONE','MAIL','accounts wake carefully quickly regular'), +(5345,83,4,1,3,2949.24,0.05,0.01,'N','O','1997-12-10','1997-10-03','1998-01-05','COLLECT COD','SHIP','silent dugouts '), +(5345,146,5,2,2,2092.28,0.1,0.02,'N','O','1997-11-18','1997-10-12','1997-12-08','NONE','MAIL','quickly bold id'), +(5345,192,5,3,46,50240.74,0.06,0.04,'N','O','1997-10-06','1997-09-27','1997-10-18','COLLECT COD','REG AIR','requests haggle never'), +(5345,114,4,4,37,37522.07,0.01,0.01,'N','O','1997-11-01','1997-10-09','1997-11-26','DELIVER IN PERSON','AIR','regular accounts bre'), +(5345,34,10,5,22,20548.66,0.02,0.02,'N','O','1997-08-27','1997-11-22','1997-09-10','TAKE BACK RETURN','MAIL','quickly even theodolites wake accor'), +(5346,149,8,1,21,22031.94,0.07,0.08,'R','F','1994-03-11','1994-03-07','1994-04-04','DELIVER IN PERSON','RAIL','furiously fina'), +(5346,192,5,2,13,14198.47,0.04,0.04,'A','F','1994-02-03','1994-02-05','1994-02-09','COLLECT COD','TRUCK','regular, pending accounts are '), +(5346,109,2,3,7,7063.7,0.08,0.05,'A','F','1994-01-30','1994-03-26','1994-01-31','DELIVER IN PERSON','SHIP','carefully ironic instructions cajole. fluff'), +(5346,162,3,4,35,37175.6,0.06,0.02,'A','F','1994-02-09','1994-03-01','1994-02-14','TAKE BACK RETURN','FOB','special packages lose according to th'), +(5346,121,2,5,25,25528,0.05,0.06,'R','F','1993-12-28','1994-03-19','1994-01-09','TAKE BACK RETURN','REG AIR','blithely i'), +(5346,33,9,6,6,5598.18,0.08,0.04,'R','F','1994-03-01','1994-02-04','1994-03-09','NONE','REG AIR','slyly express deposits across the '), +(5346,80,9,7,41,40183.28,0.05,0.04,'R','F','1994-01-10','1994-02-15','1994-01-26','TAKE BACK RETURN','REG AIR','brave foxes haggle according to the ideas! '), +(5347,83,4,1,48,47187.84,0.04,0.08,'A','F','1995-02-25','1995-04-26','1995-03-26','NONE','SHIP','pending accounts doze. '), +(5347,124,3,2,47,48133.64,0.02,0.01,'N','F','1995-06-05','1995-03-29','1995-06-28','COLLECT COD','AIR','blithely pending deposits '), +(5347,23,2,3,34,31382.68,0.06,0,'A','F','1995-05-18','1995-04-04','1995-06-02','DELIVER IN PERSON','SHIP','bold deposits sublate. furiously unusua'), +(5347,40,1,4,4,3760.16,0.06,0.03,'A','F','1995-03-24','1995-04-03','1995-04-01','NONE','SHIP','slyly regula'), +(5347,131,2,5,21,21653.73,0.08,0.04,'R','F','1995-04-01','1995-04-16','1995-04-23','NONE','SHIP','carefully specia'), +(5347,56,1,6,6,5736.3,0.06,0.02,'A','F','1995-04-11','1995-04-14','1995-05-02','NONE','TRUCK','blithely bold sheaves sleep carefully regu'), +(5347,50,7,7,18,17100.9,0.01,0.01,'N','F','1995-05-24','1995-05-07','1995-06-19','NONE','FOB','slow ideas acc'), +(5348,69,4,1,21,20350.26,0.1,0.04,'N','O','1997-12-11','1997-12-24','1997-12-28','NONE','REG AIR','carefully fi'); +INSERT INTO lineitem VALUES +(5348,156,1,2,31,32740.65,0.07,0.02,'N','O','1998-01-04','1997-12-09','1998-01-17','COLLECT COD','RAIL','furiously pending asymptotes after '), +(5348,17,8,3,16,14672.16,0.06,0.08,'N','O','1998-02-28','1997-12-25','1998-03-12','DELIVER IN PERSON','AIR','even courts use along the blith'), +(5348,20,4,4,7,6440.14,0.04,0,'N','O','1998-01-29','1997-12-20','1998-02-10','DELIVER IN PERSON','RAIL','slyly even req'), +(5348,2,5,5,37,33374,0.06,0.07,'N','O','1997-12-01','1998-02-02','1997-12-07','NONE','FOB','slyly bold'), +(5348,143,10,6,14,14603.96,0.06,0.05,'N','O','1997-12-16','1998-01-12','1997-12-24','COLLECT COD','FOB','express, special reques'), +(5349,156,7,1,19,20066.85,0.06,0.01,'N','O','1996-09-11','1996-11-18','1996-09-22','TAKE BACK RETURN','FOB','blithely ironic deposit'), +(5349,168,3,2,14,14954.24,0.06,0,'N','O','1996-11-07','1996-11-17','1996-11-20','TAKE BACK RETURN','TRUCK','express foxes wake besid'), +(5349,4,5,3,6,5424,0.1,0.01,'N','O','1996-12-30','1996-10-08','1997-01-01','DELIVER IN PERSON','MAIL','carefully idle waters slee'), +(5350,122,3,1,19,19420.28,0.02,0.06,'R','F','1993-10-20','1993-11-15','1993-11-17','DELIVER IN PERSON','RAIL','final asymptotes acc'), +(5350,191,4,2,44,48012.36,0.04,0.06,'R','F','1993-10-30','1993-11-23','1993-11-25','DELIVER IN PERSON','AIR','slyly unusual packages according to th'), +(5350,54,9,3,12,11448.6,0.1,0.04,'A','F','1994-01-30','1993-11-21','1994-02-15','COLLECT COD','REG AIR','blithely special dependen'), +(5350,155,10,4,7,7386.05,0.08,0,'R','F','1993-10-19','1993-12-28','1993-11-04','NONE','SHIP','theodolites nag about the regular instr'), +(5350,129,10,5,27,27786.24,0.07,0.04,'A','F','1993-11-25','1993-12-27','1993-12-08','COLLECT COD','TRUCK','pending, regular platelets haggle blithe'), +(5351,7,2,1,36,32652,0.06,0.05,'N','O','1998-07-27','1998-07-06','1998-08-25','NONE','MAIL','ironic, bold packages are special, '), +(5351,33,9,2,47,43852.41,0.04,0.01,'N','O','1998-05-30','1998-08-08','1998-06-23','DELIVER IN PERSON','REG AIR','blithely ironic theod'), +(5351,106,3,3,2,2012.2,0,0.02,'N','O','1998-05-12','1998-07-15','1998-05-24','NONE','TRUCK','furiously slow'), +(5376,61,6,1,42,40364.52,0.1,0.04,'A','F','1994-09-20','1994-08-30','1994-09-29','TAKE BACK RETURN','REG AIR','thinly regular instruction'), +(5376,91,4,2,44,43607.96,0.05,0.02,'R','F','1994-08-30','1994-08-05','1994-09-07','COLLECT COD','AIR','slyly unusual theo'), +(5376,65,6,3,18,17371.08,0.02,0.08,'A','F','1994-10-29','1994-09-13','1994-11-01','COLLECT COD','MAIL','blithely thin deposits haggle carefully'), +(5377,79,8,1,40,39162.8,0,0.04,'N','O','1997-05-21','1997-06-15','1997-05-26','DELIVER IN PERSON','AIR','carefully r'), +(5377,30,3,2,17,15810.51,0.09,0,'N','O','1997-07-05','1997-05-25','1997-07-22','COLLECT COD','RAIL','bravely special foxes detect fluff'), +(5377,103,8,3,23,23071.3,0.07,0.08,'N','O','1997-06-26','1997-07-13','1997-07-08','COLLECT COD','RAIL','slyly special accounts are'), +(5377,104,7,4,12,12049.2,0.05,0.07,'N','O','1997-05-08','1997-06-15','1997-05-15','DELIVER IN PERSON','MAIL','slyly ironic'), +(5377,173,3,5,27,28975.59,0.08,0.02,'N','O','1997-07-11','1997-06-12','1997-08-08','TAKE BACK RETURN','MAIL','final, unusual asymptotes abov'), +(5378,155,3,1,39,41150.85,0.07,0.04,'R','F','1992-11-25','1992-12-22','1992-12-02','COLLECT COD','AIR','closely silent pac'), +(5378,62,9,2,46,44254.76,0.01,0.04,'A','F','1993-02-17','1993-01-20','1993-02-26','COLLECT COD','REG AIR','blithely final excuses use s'), +(5378,10,7,3,18,16380.18,0.02,0.03,'R','F','1992-11-25','1992-12-21','1992-12-10','COLLECT COD','FOB','furious packages are'), +(5379,199,1,1,40,43967.6,0.01,0.08,'N','O','1995-10-01','1995-10-19','1995-10-30','COLLECT COD','MAIL','slyly regular dolphins are at the reque'), +(5380,182,3,1,14,15150.52,0.1,0.01,'N','O','1997-12-18','1997-12-03','1998-01-06','NONE','RAIL','carefully reg'), +(5380,147,6,2,10,10471.4,0.09,0.05,'N','O','1997-11-24','1998-01-10','1997-12-21','COLLECT COD','AIR','regular, ironic excuses hag'); +INSERT INTO lineitem VALUES +(5380,184,5,3,40,43367.2,0.02,0.08,'N','O','1997-12-30','1997-11-27','1998-01-09','DELIVER IN PERSON','SHIP','quickly sp'), +(5380,66,3,4,6,5796.36,0.09,0.05,'N','O','1997-11-15','1998-01-08','1997-12-11','COLLECT COD','MAIL','instructions x-ray quickly'), +(5380,107,8,5,48,48340.8,0.04,0.03,'N','O','1997-12-01','1997-12-28','1997-12-05','DELIVER IN PERSON','FOB','unusual req'), +(5381,188,9,1,37,40262.66,0.04,0.01,'A','F','1993-04-08','1993-04-07','1993-04-12','DELIVER IN PERSON','SHIP','furiously ironi'), +(5381,111,8,2,48,48533.28,0.04,0.03,'R','F','1993-04-22','1993-04-17','1993-05-14','TAKE BACK RETURN','FOB','slyly even ideas affix quickly p'), +(5381,192,3,3,13,14198.47,0.08,0.03,'R','F','1993-05-09','1993-04-26','1993-05-25','NONE','FOB','final, special account'), +(5381,168,3,4,17,18158.72,0.05,0.05,'R','F','1993-05-25','1993-04-14','1993-06-17','NONE','MAIL','blithe, regular pinto be'), +(5381,63,8,5,49,47189.94,0.06,0.02,'R','F','1993-05-08','1993-04-07','1993-06-03','NONE','FOB','brave packages haggle sly'), +(5381,132,3,6,33,34060.29,0.1,0,'A','F','1993-04-09','1993-04-03','1993-04-22','DELIVER IN PERSON','SHIP','boldly final ideas breach furiously'), +(5381,44,3,7,31,29265.24,0.04,0.05,'A','F','1993-04-10','1993-03-22','1993-04-13','TAKE BACK RETURN','MAIL','unusual, ironic instruc'), +(5382,153,8,1,34,35807.1,0.03,0.03,'R','F','1992-02-22','1992-02-18','1992-03-02','DELIVER IN PERSON','FOB','requests sublate slyly-- unusual p'), +(5382,55,3,2,13,12415.65,0.09,0.06,'A','F','1992-01-16','1992-03-12','1992-02-06','NONE','MAIL','fluffily final asymptote'), +(5382,149,10,3,3,3147.42,0.1,0.06,'A','F','1992-03-22','1992-03-06','1992-04-19','TAKE BACK RETURN','AIR','final courts breach re'), +(5382,62,9,4,20,19241.2,0.08,0.02,'A','F','1992-03-26','1992-02-17','1992-04-15','DELIVER IN PERSON','FOB','blithely bold requests haggle'), +(5382,177,8,5,14,15080.38,0.02,0.02,'A','F','1992-04-05','1992-04-05','1992-05-04','TAKE BACK RETURN','FOB','blithely regular dinos bo'), +(5382,180,9,6,6,6481.08,0.02,0.01,'A','F','1992-03-07','1992-04-02','1992-03-18','TAKE BACK RETURN','FOB','pending, ironic ideas was furio'), +(5382,105,2,7,48,48244.8,0.05,0.05,'A','F','1992-02-14','1992-03-19','1992-02-25','DELIVER IN PERSON','REG AIR','fluffily express foxes'), +(5383,96,7,1,12,11953.08,0.04,0,'N','O','1995-07-02','1995-08-16','1995-08-01','TAKE BACK RETURN','AIR','regular instructions after '), +(5408,102,7,1,2,2004.2,0.07,0.04,'R','F','1992-08-21','1992-10-03','1992-08-28','DELIVER IN PERSON','MAIL','carefully r'), +(5408,118,2,2,35,35633.85,0.04,0.05,'R','F','1992-10-02','1992-10-17','1992-10-13','TAKE BACK RETURN','AIR','slyly regular ideas '), +(5408,76,6,3,34,33186.38,0.1,0.02,'A','F','1992-10-22','1992-08-25','1992-11-16','DELIVER IN PERSON','TRUCK','deposits are. deposits before the slyly '), +(5408,54,2,4,48,45794.4,0.04,0.05,'R','F','1992-09-30','1992-08-27','1992-10-27','NONE','TRUCK','final foxes sublate even acc'), +(5408,183,4,5,8,8665.44,0.03,0.07,'A','F','1992-10-24','1992-09-06','1992-11-03','NONE','AIR','final platel'), +(5409,194,8,1,27,29543.13,0.01,0.02,'A','F','1992-02-14','1992-03-18','1992-02-23','DELIVER IN PERSON','AIR','carefully ste'), +(5409,104,5,2,38,38155.8,0.01,0.02,'A','F','1992-03-17','1992-03-29','1992-04-13','NONE','REG AIR','furiously regular foxes cajole '), +(5409,141,10,3,17,17699.38,0.07,0,'A','F','1992-01-13','1992-04-05','1992-01-20','DELIVER IN PERSON','AIR','furiously blithe deposits nag unusual pi'), +(5409,1,8,4,9,8109,0.07,0.03,'A','F','1992-02-15','1992-04-02','1992-02-28','DELIVER IN PERSON','AIR','final waters serve. accounts hinder never'), +(5409,159,10,5,37,39188.55,0.06,0.04,'R','F','1992-05-07','1992-02-10','1992-05-20','DELIVER IN PERSON','FOB','quickly final deposits sleep ideas. blithel'), +(5409,64,3,6,14,13496.84,0.03,0.08,'R','F','1992-02-14','1992-03-26','1992-02-29','DELIVER IN PERSON','AIR','quickly ironic gifts use a'), +(5410,117,8,1,48,48821.28,0.04,0.08,'N','O','1998-09-27','1998-09-11','1998-10-01','TAKE BACK RETURN','AIR','pending, silent dolphi'); +INSERT INTO lineitem VALUES +(5410,105,8,2,41,41209.1,0.01,0.07,'N','O','1998-08-25','1998-10-20','1998-09-01','DELIVER IN PERSON','REG AIR','express instructi'), +(5410,29,4,3,40,37160.8,0.07,0.08,'N','O','1998-11-17','1998-10-02','1998-11-27','COLLECT COD','TRUCK','furiously express pinto beans are f'), +(5410,50,7,4,8,7600.4,0.05,0.04,'N','O','1998-09-12','1998-10-22','1998-09-22','DELIVER IN PERSON','TRUCK','slyly final accounts cajole ruthles'), +(5411,96,9,1,17,16933.53,0.05,0.01,'N','O','1997-07-22','1997-07-14','1997-07-30','TAKE BACK RETURN','REG AIR','permanently express instru'), +(5411,113,7,2,10,10131.1,0.08,0.01,'N','O','1997-07-19','1997-08-04','1997-07-26','TAKE BACK RETURN','MAIL','quickly silent theodolites sleep quickly. c'), +(5411,56,7,3,5,4780.25,0.1,0.01,'N','O','1997-09-12','1997-08-03','1997-09-23','DELIVER IN PERSON','FOB','packages ac'), +(5411,129,8,4,15,15436.8,0.08,0.05,'N','O','1997-07-01','1997-07-15','1997-07-07','COLLECT COD','RAIL','even, final ac'), +(5411,4,5,5,19,17176,0.05,0.08,'N','O','1997-05-25','1997-07-30','1997-06-19','COLLECT COD','RAIL','furiously bold accounts use car'), +(5412,54,9,1,2,1908.1,0.03,0.07,'N','O','1998-04-14','1998-04-02','1998-04-19','TAKE BACK RETURN','REG AIR','platelets sleep blithely even platelets.'), +(5412,66,1,2,48,46370.88,0.01,0.08,'N','O','1998-02-22','1998-03-28','1998-03-18','TAKE BACK RETURN','TRUCK','slyly final accounts wake qui'), +(5412,74,2,3,31,30196.17,0.05,0.08,'N','O','1998-03-23','1998-04-17','1998-04-10','NONE','SHIP','carefully final instruct'), +(5412,97,10,4,26,25924.34,0.02,0.08,'N','O','1998-01-22','1998-04-19','1998-02-17','NONE','AIR','carefully pending deposits according to'), +(5413,126,7,1,48,49253.76,0.02,0.08,'N','O','1998-01-25','1997-11-20','1998-02-22','COLLECT COD','SHIP','carefully regular accounts grow never pen'), +(5413,142,9,2,37,38559.18,0.02,0.07,'N','O','1997-12-08','1998-01-01','1997-12-13','COLLECT COD','TRUCK','unusual ideas alongside of the slyly re'), +(5413,111,8,3,36,36399.96,0.02,0.07,'N','O','1997-12-12','1997-11-28','1997-12-25','NONE','TRUCK','accounts among the f'), +(5413,110,3,4,22,22222.42,0.02,0.08,'N','O','1997-11-10','1997-11-24','1997-11-22','DELIVER IN PERSON','FOB','regular requests are'), +(5413,189,10,5,5,5445.9,0.1,0.01,'N','O','1997-11-28','1997-11-24','1997-12-05','NONE','RAIL','stealthily regular plat'), +(5413,190,1,6,32,34886.08,0.02,0.03,'N','O','1997-10-28','1998-01-03','1997-11-10','NONE','TRUCK','regular, special ideas hagg'), +(5413,31,7,7,32,29792.96,0.06,0.07,'N','O','1997-10-23','1997-12-09','1997-11-17','NONE','TRUCK','furiously bold pa'), +(5414,68,9,1,40,38722.4,0.07,0.06,'R','F','1993-04-07','1993-05-18','1993-04-23','COLLECT COD','AIR','carefully ironic platel'), +(5414,123,8,2,48,49109.76,0.06,0.07,'R','F','1993-06-08','1993-05-14','1993-07-06','DELIVER IN PERSON','FOB','blithely ironic asymptotes cajole. final '), +(5414,35,1,3,23,21505.69,0.1,0,'A','F','1993-07-22','1993-05-26','1993-08-08','COLLECT COD','MAIL','requests are final'), +(5414,133,4,4,15,15496.95,0.06,0.08,'R','F','1993-05-18','1993-06-09','1993-05-27','DELIVER IN PERSON','REG AIR','slyly bold deposit'), +(5414,9,2,5,19,17271,0.01,0.05,'R','F','1993-04-06','1993-05-12','1993-05-02','DELIVER IN PERSON','RAIL','even asymptotes across the slyly '), +(5414,98,1,6,28,27946.52,0.1,0.05,'A','F','1993-03-27','1993-06-04','1993-04-07','TAKE BACK RETURN','SHIP','quiet theodolites doubt fluffily agains'), +(5415,102,5,1,44,44092.4,0,0.06,'A','F','1992-08-19','1992-10-26','1992-09-17','TAKE BACK RETURN','TRUCK','furiously ironic i'), +(5415,31,7,2,16,14896.48,0.08,0,'A','F','1992-09-29','1992-09-12','1992-10-10','NONE','AIR','dependencies across the quickly regu'), +(5415,102,7,3,6,6012.6,0.1,0.03,'A','F','1992-10-28','1992-09-09','1992-11-20','COLLECT COD','RAIL','blithely unusu'), +(5415,16,7,4,43,39388.43,0.01,0.02,'R','F','1992-11-17','1992-09-14','1992-12-14','DELIVER IN PERSON','SHIP','final packa'); +INSERT INTO lineitem VALUES +(5415,161,6,5,11,11672.76,0,0.01,'R','F','1992-11-22','1992-10-19','1992-12-10','DELIVER IN PERSON','SHIP','quickly bold accounts '), +(5415,144,1,6,46,48030.44,0.03,0.03,'R','F','1992-08-25','1992-09-10','1992-09-22','DELIVER IN PERSON','REG AIR','slowly bold'), +(5415,153,4,7,11,11584.65,0.08,0.06,'A','F','1992-08-21','1992-09-04','1992-08-23','NONE','TRUCK','instructions af'), +(5440,115,2,1,3,3045.33,0.02,0.08,'N','O','1997-02-18','1997-02-28','1997-03-15','NONE','SHIP','blithely regular dolphins cajole across'), +(5441,164,1,1,3,3192.48,0,0.02,'R','F','1994-08-12','1994-10-14','1994-09-01','TAKE BACK RETURN','REG AIR','quickly silent warhorses caj'), +(5441,131,2,2,49,50525.37,0.02,0.03,'A','F','1994-09-23','1994-09-22','1994-10-22','NONE','FOB','blithely express courts boost bl'), +(5441,144,3,3,33,34456.62,0.09,0.02,'R','F','1994-10-09','1994-10-06','1994-10-30','DELIVER IN PERSON','TRUCK','permanently final dependenci'), +(5441,67,4,4,47,45451.82,0.07,0.08,'R','F','1994-11-19','1994-10-16','1994-12-16','TAKE BACK RETURN','FOB','special accounts use fluffily. caref'), +(5442,42,5,1,16,15072.64,0,0,'N','O','1998-04-12','1998-03-03','1998-05-04','TAKE BACK RETURN','RAIL','furiously final ideas according to the'), +(5442,88,9,2,45,44463.6,0.08,0.01,'N','O','1998-03-30','1998-02-24','1998-04-18','TAKE BACK RETURN','AIR','accounts cajole across th'), +(5442,61,8,3,12,11532.72,0.01,0.08,'N','O','1998-04-15','1998-03-18','1998-05-05','DELIVER IN PERSON','TRUCK','packages are furiously. slowly bold request'), +(5442,158,9,4,21,22221.15,0.07,0.06,'N','O','1998-03-13','1998-02-19','1998-04-06','COLLECT COD','MAIL','slyly special accounts integrate q'), +(5442,16,7,5,25,22900.25,0.04,0,'N','O','1998-03-29','1998-02-13','1998-04-13','TAKE BACK RETURN','REG AIR','regular, express requests across the s'), +(5442,144,3,6,26,27147.64,0.08,0.07,'N','O','1998-03-21','1998-03-21','1998-03-25','TAKE BACK RETURN','AIR','ironic, dogged acc'), +(5443,178,9,1,14,15094.38,0.02,0,'N','O','1996-10-27','1996-11-11','1996-11-21','DELIVER IN PERSON','RAIL','blithely unusual'), +(5443,72,3,2,39,37910.73,0.03,0.07,'N','O','1996-11-01','1996-11-30','1996-11-19','NONE','RAIL','final instru'), +(5443,160,5,3,25,26504,0.05,0,'N','O','1996-12-07','1997-01-08','1997-01-05','NONE','FOB','quickly final accounts wake unus'), +(5443,191,4,4,6,6547.14,0.05,0.02,'N','O','1996-11-17','1996-12-03','1996-11-30','TAKE BACK RETURN','AIR','even asymptotes are slyly special '), +(5443,83,4,5,40,39323.2,0.03,0.03,'N','O','1997-01-28','1996-12-10','1997-02-13','NONE','FOB','pending excuses about the fluffil'), +(5444,186,7,1,21,22809.78,0.01,0.07,'A','F','1995-04-11','1995-04-25','1995-04-21','DELIVER IN PERSON','RAIL','quickly regular excuses are slyl'), +(5444,43,6,2,40,37721.6,0.05,0.08,'N','O','1995-07-09','1995-04-25','1995-07-19','COLLECT COD','TRUCK','carefully unusual excuses haggle idly'), +(5444,150,9,3,40,42006,0.08,0.01,'A','F','1995-04-06','1995-05-08','1995-05-06','DELIVER IN PERSON','AIR','furiously bold accounts about the blith'), +(5444,59,4,4,33,31648.65,0.05,0.04,'N','O','1995-06-24','1995-04-24','1995-07-13','DELIVER IN PERSON','SHIP','carefully final pinto beans gro'), +(5444,171,9,5,21,22494.57,0.04,0,'R','F','1995-05-05','1995-05-25','1995-05-29','TAKE BACK RETURN','REG AIR','carefully unusual deposits aff'), +(5444,20,7,6,21,19320.42,0.07,0.01,'A','F','1995-03-30','1995-05-01','1995-03-31','COLLECT COD','AIR','carefully regular dependencies'), +(5445,90,1,1,33,32672.97,0.08,0.07,'A','F','1993-10-21','1993-10-14','1993-10-28','DELIVER IN PERSON','REG AIR','slyly regular idea'), +(5445,131,2,2,12,12373.56,0.09,0.08,'R','F','1993-11-02','1993-09-05','1993-11-26','COLLECT COD','FOB','blithely regular theodolites boost entici'), +(5445,103,8,3,46,46142.6,0.04,0.07,'A','F','1993-10-06','1993-09-15','1993-10-28','DELIVER IN PERSON','RAIL','regular requests cajole'), +(5445,149,10,4,10,10491.4,0.08,0.06,'A','F','1993-09-16','1993-10-05','1993-10-01','NONE','TRUCK','final, even packages haggle. blithely pen'); +INSERT INTO lineitem VALUES +(5445,13,10,5,14,12782.14,0,0.02,'R','F','1993-11-19','1993-10-18','1993-12-07','NONE','RAIL','slyly ironic requests p'), +(5446,190,1,1,27,29435.13,0.05,0.07,'R','F','1994-07-21','1994-08-25','1994-08-17','TAKE BACK RETURN','RAIL','furiously even requests bo'), +(5447,99,1,1,31,30971.79,0.09,0.03,'N','O','1996-07-14','1996-05-07','1996-07-17','COLLECT COD','SHIP','carefully f'), +(5472,59,10,1,27,25894.35,0.09,0.06,'A','F','1993-08-04','1993-07-07','1993-09-03','COLLECT COD','TRUCK','express requests impress doggedly '), +(5472,68,3,2,28,27105.68,0,0.03,'A','F','1993-07-28','1993-05-28','1993-08-11','TAKE BACK RETURN','FOB','finally regu'), +(5472,178,7,3,45,48517.65,0.06,0.02,'R','F','1993-06-05','1993-05-14','1993-06-10','NONE','TRUCK','slyly special excus'), +(5472,184,5,4,37,40114.66,0.07,0.05,'R','F','1993-06-15','1993-07-03','1993-07-09','DELIVER IN PERSON','RAIL','special asymp'), +(5472,75,6,5,40,39002.8,0.02,0.05,'A','F','1993-04-13','1993-07-04','1993-05-04','NONE','REG AIR','slyly special theodolites wake '), +(5472,167,2,6,39,41619.24,0.02,0.03,'R','F','1993-04-18','1993-07-10','1993-05-12','TAKE BACK RETURN','MAIL','final forges acco'), +(5472,15,5,7,1,915.01,0.03,0.02,'A','F','1993-04-14','1993-06-28','1993-04-16','NONE','RAIL','idly even ideas cajole regularly c'), +(5473,48,5,1,9,8532.36,0.03,0.07,'R','F','1992-06-03','1992-05-30','1992-06-09','TAKE BACK RETURN','AIR','quickly regular dolphins use carefull'), +(5473,70,1,2,27,26191.89,0.01,0.03,'A','F','1992-04-06','1992-04-26','1992-04-29','TAKE BACK RETURN','MAIL','fluffily final courts c'), +(5473,15,5,3,33,30195.33,0.09,0,'R','F','1992-05-18','1992-06-10','1992-06-13','TAKE BACK RETURN','MAIL','unusual, pending packages try to '), +(5474,184,5,1,38,41198.84,0.01,0.08,'A','F','1992-07-15','1992-07-16','1992-07-20','NONE','REG AIR','ironic foxes are carefully. ironic, ironi'), +(5474,94,8,2,10,9940.9,0.06,0,'R','F','1992-08-08','1992-08-10','1992-08-24','TAKE BACK RETURN','TRUCK','express, final id'), +(5474,48,1,3,31,29389.24,0,0.08,'R','F','1992-08-02','1992-07-12','1992-08-04','NONE','TRUCK','packages boost carefully. requ'), +(5474,90,1,4,46,45544.14,0.03,0.04,'A','F','1992-06-07','1992-07-11','1992-06-22','NONE','TRUCK','carefully even theodolite'), +(5475,183,4,1,10,10831.8,0.09,0.08,'N','O','1996-07-19','1996-08-22','1996-07-23','COLLECT COD','AIR','special, special '), +(5476,48,1,1,13,12324.52,0.01,0.04,'N','O','1997-12-27','1997-12-08','1997-12-29','COLLECT COD','TRUCK','furiously unusual requests lose carefully '), +(5476,20,4,2,17,15640.34,0.1,0.01,'N','O','1998-02-02','1998-01-28','1998-02-14','COLLECT COD','FOB','requests haggle about the ste'), +(5477,80,8,1,20,19601.6,0.03,0.01,'N','O','1998-03-21','1998-02-09','1998-04-07','TAKE BACK RETURN','SHIP','blithely even asymptotes slee'), +(5477,77,7,2,21,20518.47,0.03,0,'N','O','1998-01-28','1998-02-15','1998-02-24','TAKE BACK RETURN','SHIP','carefully regular foxes haggle slyly unu'), +(5477,134,5,3,31,32058.03,0.04,0.01,'N','O','1998-01-11','1998-01-30','1998-02-04','DELIVER IN PERSON','MAIL','ideas sleep. regular, re'), +(5477,193,6,4,16,17491.04,0,0.01,'N','O','1998-03-07','1998-03-12','1998-04-06','COLLECT COD','RAIL','ideas boost. frays wake carefully. asym'), +(5477,96,9,5,23,22910.07,0,0.06,'N','O','1998-01-04','1998-02-23','1998-01-24','NONE','REG AIR','regular requests sleep bl'), +(5477,121,6,6,19,19401.28,0.1,0.03,'N','O','1998-02-03','1998-01-30','1998-03-04','TAKE BACK RETURN','MAIL','foxes cajole accordi'), +(5478,8,9,1,39,35412,0.09,0.06,'N','O','1996-08-19','1996-06-25','1996-09-08','DELIVER IN PERSON','SHIP','quietly final instructions are special pack'), +(5478,2,5,2,47,42394,0.1,0.01,'N','O','1996-08-15','1996-07-12','1996-08-31','NONE','RAIL','silent reque'), +(5478,119,3,3,25,25477.75,0.09,0.07,'N','O','1996-06-08','1996-07-12','1996-07-07','NONE','TRUCK','furiously pe'), +(5479,138,4,1,50,51906.5,0.02,0.02,'A','F','1993-12-24','1994-02-14','1994-01-18','DELIVER IN PERSON','MAIL','carefully bold foxe'); +INSERT INTO lineitem VALUES +(5479,104,5,2,19,19077.9,0.05,0.03,'A','F','1994-01-22','1994-03-07','1994-02-11','DELIVER IN PERSON','SHIP','furiously re'), +(5504,68,5,1,4,3872.24,0.1,0.07,'A','F','1993-04-30','1993-03-01','1993-05-22','DELIVER IN PERSON','AIR','frays are blithely. pending excuses '), +(5504,177,8,2,7,7540.19,0.03,0.05,'R','F','1993-04-25','1993-03-15','1993-05-06','NONE','TRUCK','slyly express deposits nag bl'), +(5504,160,2,3,29,30744.64,0.05,0.03,'A','F','1993-01-28','1993-02-13','1993-02-27','NONE','SHIP','stealthily express plate'), +(5505,25,8,1,43,39775.86,0.07,0.01,'N','O','1997-12-30','1997-11-28','1998-01-09','TAKE BACK RETURN','TRUCK','ironic, special '), +(5505,182,3,2,33,35711.94,0.05,0.08,'N','O','1998-01-11','1997-11-11','1998-01-30','TAKE BACK RETURN','AIR','furiously even '), +(5505,155,10,3,10,10551.5,0.06,0.01,'N','O','1997-10-28','1997-11-27','1997-10-29','DELIVER IN PERSON','AIR','furiously busy instructions thrash a'), +(5505,40,1,4,18,16920.72,0.04,0.04,'N','O','1997-10-25','1997-12-12','1997-10-30','TAKE BACK RETURN','RAIL','fluffily ironic'), +(5505,162,9,5,46,48859.36,0.05,0,'N','O','1998-01-06','1997-11-04','1998-02-04','TAKE BACK RETURN','SHIP','escapades wake. furiously final '), +(5506,140,1,1,2,2080.28,0,0.03,'R','F','1994-02-04','1994-01-13','1994-02-17','COLLECT COD','MAIL','unusual, unusual excuses are above t'), +(5506,160,1,2,6,6360.96,0.07,0.06,'R','F','1994-02-21','1994-01-30','1994-02-27','DELIVER IN PERSON','MAIL','asymptotes according to the slyly ironic d'), +(5507,10,5,1,23,20930.23,0.05,0.04,'N','O','1998-09-04','1998-07-04','1998-09-18','TAKE BACK RETURN','AIR','furiously bold ideas integrate blithely ab'), +(5507,138,9,2,48,49830.24,0.03,0.01,'N','O','1998-08-03','1998-08-10','1998-08-24','DELIVER IN PERSON','AIR','even pinto beans across the accounts do'), +(5507,45,2,3,4,3780.16,0.04,0.06,'N','O','1998-06-06','1998-07-02','1998-06-27','TAKE BACK RETURN','RAIL','furiously speci'), +(5507,67,6,4,22,21275.32,0.07,0.01,'N','O','1998-07-08','1998-08-10','1998-07-22','DELIVER IN PERSON','TRUCK','fluffily spec'), +(5507,132,3,5,48,49542.24,0.06,0.01,'N','O','1998-07-21','1998-07-15','1998-07-31','DELIVER IN PERSON','SHIP','furiously final packages integrate. dep'), +(5508,117,7,1,4,4068.44,0.1,0.04,'N','O','1996-09-01','1996-08-02','1996-09-17','COLLECT COD','AIR','slyly regu'), +(5509,197,10,1,3,3291.57,0.03,0.02,'A','F','1994-06-14','1994-05-11','1994-06-17','NONE','SHIP','final, bold dependencies according to the'), +(5509,99,3,2,17,16984.53,0.03,0.07,'R','F','1994-07-01','1994-06-30','1994-07-31','COLLECT COD','AIR','quickly bold theodolites cajole furiously.'), +(5509,93,7,3,30,29792.7,0.04,0.04,'A','F','1994-07-23','1994-06-01','1994-08-08','NONE','AIR','blithely even'), +(5509,100,3,4,45,45004.5,0,0.07,'A','F','1994-07-24','1994-05-28','1994-08-20','COLLECT COD','AIR','regular platelets grow slyly even p'), +(5509,156,8,5,35,36965.25,0.04,0.03,'A','F','1994-04-17','1994-06-29','1994-04-24','COLLECT COD','RAIL','fluffily unusual foxes use. fluff'), +(5510,16,6,1,8,7328.08,0.01,0.01,'A','F','1993-03-16','1993-03-29','1993-03-24','DELIVER IN PERSON','FOB','furiously unus'), +(5510,20,10,2,46,42320.92,0.02,0.07,'A','F','1993-03-12','1993-02-09','1993-03-19','NONE','TRUCK','special, unusual waters caj'), +(5510,162,3,3,47,49921.52,0.03,0.01,'A','F','1993-01-20','1993-03-25','1993-02-15','DELIVER IN PERSON','SHIP','fluffily bold accounts across the furious'), +(5510,24,7,4,29,26796.58,0.09,0.08,'A','F','1993-02-28','1993-03-28','1993-03-12','COLLECT COD','AIR','blithely expr'), +(5511,165,4,1,16,17042.56,0.1,0.05,'A','F','1995-02-02','1995-01-06','1995-02-19','TAKE BACK RETURN','RAIL','pending sent'), +(5511,165,10,2,31,33019.96,0.09,0.01,'A','F','1995-02-23','1995-01-21','1995-03-02','COLLECT COD','REG AIR','accounts snooze furiously '), +(5511,128,3,3,49,50377.88,0.05,0.05,'R','F','1994-12-21','1995-01-27','1994-12-26','NONE','REG AIR','ironic ideas about the blithely iron'); +INSERT INTO lineitem VALUES +(5511,122,7,4,4,4088.48,0.08,0.02,'R','F','1994-12-28','1995-01-16','1995-01-24','TAKE BACK RETURN','RAIL','furiously special instructions above th'), +(5511,9,2,5,23,20907,0.1,0.07,'A','F','1995-03-11','1995-01-21','1995-03-27','TAKE BACK RETURN','TRUCK','blithely final the'), +(5511,188,9,6,5,5440.9,0.08,0.05,'R','F','1994-12-29','1995-01-16','1995-01-24','DELIVER IN PERSON','MAIL','slyly express '), +(5511,143,2,7,23,23992.22,0.02,0.07,'R','F','1995-02-03','1995-01-05','1995-02-18','COLLECT COD','REG AIR','enticingly bold excuses are quickly slyly '), +(5536,90,1,1,14,13861.26,0.08,0.06,'N','O','1998-05-18','1998-05-08','1998-06-05','COLLECT COD','MAIL','bold, bold instructions cajo'), +(5536,62,1,2,20,19241.2,0.08,0.04,'N','O','1998-05-08','1998-05-10','1998-05-31','DELIVER IN PERSON','REG AIR','ruthlessly re'), +(5536,197,9,3,35,38401.65,0.07,0.02,'N','O','1998-05-19','1998-06-08','1998-06-05','NONE','MAIL','final, bold in'), +(5536,9,10,4,30,27270,0.05,0.07,'N','O','1998-04-15','1998-05-23','1998-05-03','NONE','FOB','slow escapades use carefully regul'), +(5536,141,2,5,11,11452.54,0.02,0.08,'N','O','1998-03-18','1998-05-12','1998-03-28','TAKE BACK RETURN','FOB','furiously final i'), +(5537,45,8,1,10,9450.4,0.05,0.08,'N','O','1997-01-13','1996-12-25','1997-01-28','TAKE BACK RETURN','AIR','blithely ironic asymptotes '), +(5537,150,9,2,15,15752.25,0.07,0.04,'N','O','1997-01-13','1996-12-25','1997-01-27','COLLECT COD','AIR','blithely i'), +(5537,151,6,3,39,40994.85,0.03,0,'N','O','1996-12-17','1996-11-08','1997-01-15','COLLECT COD','REG AIR','ironic attainments'), +(5537,97,1,4,38,37889.42,0.01,0,'N','O','1996-11-06','1996-11-23','1996-11-12','TAKE BACK RETURN','MAIL','carefully express courts wa'), +(5538,154,9,1,42,44274.3,0.05,0,'A','F','1994-04-08','1994-03-17','1994-05-05','DELIVER IN PERSON','REG AIR','bravely ironic instructions haggle'), +(5538,121,2,2,4,4084.48,0.02,0.03,'R','F','1994-03-21','1994-02-17','1994-04-11','TAKE BACK RETURN','REG AIR','furiously special'), +(5538,19,3,3,38,34922.38,0.03,0.06,'R','F','1994-03-17','1994-02-11','1994-04-10','TAKE BACK RETURN','FOB','slyly final '), +(5538,78,6,4,9,8802.63,0,0.01,'R','F','1993-12-26','1994-01-31','1994-01-03','TAKE BACK RETURN','REG AIR','carefully even f'), +(5539,65,10,1,42,40532.52,0.1,0.08,'A','F','1994-09-29','1994-09-17','1994-10-20','DELIVER IN PERSON','RAIL','special, even pinto beans a'), +(5540,181,2,1,42,45409.56,0.02,0.08,'N','O','1996-11-12','1996-12-18','1996-12-05','TAKE BACK RETURN','RAIL','furiously special accounts boost. iron'), +(5540,102,3,2,2,2004.2,0.06,0.02,'N','O','1996-12-12','1997-01-09','1996-12-25','DELIVER IN PERSON','MAIL','blithely unusual accounts'), +(5540,64,3,3,19,18317.14,0.01,0.03,'N','O','1997-02-06','1996-11-18','1997-02-20','DELIVER IN PERSON','SHIP','silent reques'), +(5540,72,10,4,24,23329.68,0.1,0.05,'N','O','1997-01-09','1996-12-02','1997-01-23','COLLECT COD','FOB','slyly even foxe'), +(5541,96,8,1,39,38847.51,0.08,0.05,'N','O','1997-11-17','1997-12-27','1997-12-11','TAKE BACK RETURN','RAIL','slyly final asymptotes along the'), +(5542,189,10,1,6,6535.08,0.03,0.01,'N','O','1996-06-14','1996-05-28','1996-07-11','DELIVER IN PERSON','TRUCK','furiously express pear'), +(5543,143,10,1,14,14603.96,0.02,0.03,'R','F','1993-10-09','1993-12-09','1993-10-21','NONE','SHIP','slow packages thrash furiously ab'), +(5543,162,7,2,22,23367.52,0.04,0,'A','F','1993-11-06','1993-11-02','1993-12-02','DELIVER IN PERSON','SHIP','regular, special request'), +(5543,67,6,3,3,2901.18,0.08,0.05,'R','F','1993-11-18','1993-11-05','1993-12-17','NONE','FOB','regular requests cajole; careful'), +(5543,147,10,4,8,8377.12,0.05,0.01,'R','F','1993-10-28','1993-11-18','1993-11-07','NONE','SHIP','furiously ironi'), +(5543,80,1,5,32,31362.56,0.03,0.03,'R','F','1993-10-04','1993-11-14','1993-11-03','DELIVER IN PERSON','AIR','slyly ironic asymp'), +(5543,184,5,6,1,1084.18,0.03,0.07,'A','F','1993-10-29','1993-11-11','1993-11-23','TAKE BACK RETURN','FOB','fluffily iron'); +INSERT INTO lineitem VALUES +(5543,129,8,7,39,40135.68,0.06,0,'R','F','1993-10-07','1993-11-15','1993-10-28','TAKE BACK RETURN','MAIL','idly regular deposits are.'), +(5568,166,5,1,50,53308,0.05,0.05,'N','O','1995-07-14','1995-09-04','1995-08-03','COLLECT COD','TRUCK','special, special '), +(5568,44,5,2,18,16992.72,0.01,0.08,'N','O','1995-08-19','1995-08-18','1995-08-24','DELIVER IN PERSON','SHIP','regular acc'), +(5568,89,10,3,35,34617.8,0.08,0.07,'N','O','1995-09-17','1995-09-04','1995-10-14','NONE','SHIP','carefully final water'), +(5569,29,4,1,25,23225.5,0.1,0.03,'R','F','1993-06-29','1993-07-18','1993-07-05','TAKE BACK RETURN','TRUCK','deposits cajole blithely above'), +(5569,58,10,2,26,24909.3,0.09,0.06,'A','F','1993-08-21','1993-07-22','1993-09-09','DELIVER IN PERSON','MAIL','special, final theodolites ag'), +(5569,55,3,3,48,45842.4,0.02,0.03,'R','F','1993-06-16','1993-06-15','1993-07-09','COLLECT COD','SHIP','furiously final ideas use furiousl'), +(5569,147,10,4,19,19895.66,0.1,0.08,'R','F','1993-07-30','1993-06-21','1993-08-13','TAKE BACK RETURN','FOB','foxes solve furiously. packa'), +(5569,59,1,5,15,14385.75,0.02,0.06,'A','F','1993-06-29','1993-07-06','1993-07-05','DELIVER IN PERSON','MAIL','ruthlessly ironic courts could cajole slyl'), +(5570,161,6,1,37,39262.92,0.08,0.02,'N','O','1996-08-29','1996-10-23','1996-09-11','NONE','RAIL','express platelets integrate'), +(5570,39,10,2,15,14085.45,0.09,0.02,'N','O','1996-10-04','1996-10-05','1996-10-28','TAKE BACK RETURN','REG AIR','pending requests are according to the blit'), +(5570,60,1,3,29,27841.74,0.02,0.05,'N','O','1996-10-12','1996-10-20','1996-11-08','TAKE BACK RETURN','SHIP','slyly unusual packages sleep quickly! q'), +(5571,154,2,1,32,33732.8,0.05,0.01,'R','F','1992-12-25','1993-03-01','1993-01-23','NONE','FOB','silent packages cajole slyly. ir'), +(5571,94,8,2,31,30816.79,0.09,0.07,'R','F','1993-01-05','1993-01-18','1993-02-04','DELIVER IN PERSON','SHIP','fluffily regular instru'), +(5571,92,6,3,18,17857.62,0.1,0.05,'R','F','1993-03-11','1993-02-28','1993-04-03','COLLECT COD','REG AIR','furiously even excuses do slee'), +(5572,22,1,1,24,22128.48,0.08,0.08,'R','F','1994-10-30','1994-10-02','1994-11-27','TAKE BACK RETURN','MAIL','slyly express d'), +(5572,172,10,2,27,28948.59,0.03,0.04,'A','F','1994-08-29','1994-09-10','1994-08-30','TAKE BACK RETURN','SHIP','pending dolphins'), +(5572,87,8,3,19,18754.52,0.1,0,'A','F','1994-08-12','1994-10-07','1994-09-01','DELIVER IN PERSON','RAIL','slyly regular accounts haggle quickly '), +(5572,135,1,4,46,47615.98,0.02,0.01,'R','F','1994-09-08','1994-10-14','1994-10-01','NONE','REG AIR','busy ideas haggle.'), +(5572,24,3,5,34,31416.68,0.1,0.08,'R','F','1994-10-22','1994-08-16','1994-11-08','NONE','TRUCK','slyly regular accounts wil'), +(5572,101,2,6,14,14015.4,0.04,0.05,'A','F','1994-11-02','1994-09-20','1994-11-03','COLLECT COD','RAIL','slyly even requests sleep s'), +(5572,26,1,7,24,22224.48,0.01,0.05,'R','F','1994-09-26','1994-09-04','1994-10-22','DELIVER IN PERSON','FOB','Tiresias haggle even excuses. sl'), +(5573,21,6,1,32,29472.64,0.05,0.07,'N','O','1996-09-30','1996-10-25','1996-10-15','DELIVER IN PERSON','RAIL','blithely ironic foxes about'), +(5573,50,3,2,2,1900.1,0.01,0.07,'N','O','1996-08-26','1996-09-29','1996-09-04','COLLECT COD','TRUCK','express deposits sleep furiously reg'), +(5573,11,8,3,46,41906.46,0.06,0.01,'N','O','1996-11-04','1996-10-02','1996-11-15','DELIVER IN PERSON','MAIL','carefully bold notornis wake. '), +(5573,169,4,4,43,45973.88,0.1,0.03,'N','O','1996-10-22','1996-11-03','1996-11-02','TAKE BACK RETURN','FOB','even accounts grow. bold deposits a'), +(5573,138,9,5,43,44639.59,0.05,0.04,'N','O','1996-09-09','1996-09-24','1996-09-28','COLLECT COD','AIR','even deposits across the'), +(5574,185,6,1,46,49918.28,0.02,0.07,'A','F','1992-06-20','1992-04-19','1992-07-11','NONE','FOB','hockey players are'), +(5574,33,4,2,21,19593.63,0.05,0.08,'A','F','1992-03-22','1992-04-26','1992-04-16','TAKE BACK RETURN','TRUCK','packages boost. silently ironic ideas'); +INSERT INTO lineitem VALUES +(5574,119,6,3,27,27515.97,0.1,0.06,'R','F','1992-05-08','1992-05-19','1992-06-05','TAKE BACK RETURN','REG AIR','slyly pending'), +(5574,94,6,4,14,13917.26,0.09,0.01,'R','F','1992-05-20','1992-04-09','1992-05-23','COLLECT COD','REG AIR','slowly final packages along the iro'), +(5574,85,6,5,19,18716.52,0.05,0.03,'A','F','1992-05-28','1992-04-24','1992-06-11','TAKE BACK RETURN','REG AIR','even packages about the '), +(5575,58,10,1,7,6706.35,0.01,0.07,'N','O','1995-10-01','1995-09-30','1995-10-06','NONE','FOB','fluffy, ironic Tiresias around the spe'), +(5575,31,7,2,23,21413.69,0.04,0.02,'N','O','1995-10-26','1995-10-09','1995-11-13','TAKE BACK RETURN','AIR','blithely quick requests integrate abo'), +(5575,63,8,3,16,15408.96,0,0.07,'N','O','1995-08-17','1995-10-14','1995-08-30','NONE','RAIL','quickly final ideas cajol'), +(5575,110,1,4,7,7070.77,0.01,0.04,'N','O','1995-10-15','1995-09-14','1995-10-18','DELIVER IN PERSON','RAIL','ideas will use'), +(5600,187,8,1,34,36964.12,0.02,0,'N','O','1997-03-22','1997-04-05','1997-04-09','TAKE BACK RETURN','MAIL','special ideas will have t'), +(5600,8,5,2,19,17252,0,0.01,'N','O','1997-04-10','1997-03-24','1997-04-16','TAKE BACK RETURN','TRUCK','regular, even platelet'), +(5601,38,4,1,29,27202.87,0.09,0.04,'A','F','1992-04-06','1992-02-24','1992-04-29','DELIVER IN PERSON','TRUCK','final deposits affix close, ironic '), +(5601,164,1,2,45,47887.2,0.1,0.07,'A','F','1992-03-25','1992-04-03','1992-04-04','TAKE BACK RETURN','MAIL','regular packages '), +(5601,73,4,3,38,36976.66,0.07,0,'A','F','1992-01-08','1992-03-01','1992-01-09','TAKE BACK RETURN','REG AIR','accounts mig'), +(5601,148,5,4,12,12577.68,0.03,0.01,'A','F','1992-02-27','1992-03-16','1992-03-27','COLLECT COD','TRUCK','slyly final ideas de'), +(5602,176,4,1,9,9685.53,0.08,0.03,'N','O','1997-10-14','1997-09-14','1997-11-11','COLLECT COD','FOB','final, final acc'), +(5602,62,7,2,31,29823.86,0.04,0.08,'N','O','1997-09-04','1997-10-24','1997-09-07','NONE','TRUCK','special packages are quickly regula'), +(5602,68,5,3,30,29041.8,0.04,0,'N','O','1997-09-20','1997-10-25','1997-10-12','DELIVER IN PERSON','FOB','regular requests alongside of t'), +(5603,98,2,1,50,49904.5,0.03,0.02,'A','F','1992-10-06','1992-08-20','1992-10-08','COLLECT COD','SHIP','foxes cajole '), +(5603,116,6,2,49,49789.39,0.06,0.05,'A','F','1992-06-24','1992-07-28','1992-07-01','DELIVER IN PERSON','FOB','express foxes might cajol'), +(5603,32,8,3,49,45669.47,0,0.02,'R','F','1992-10-07','1992-07-21','1992-10-10','DELIVER IN PERSON','TRUCK','furiously express ide'), +(5604,136,7,1,44,45589.72,0.05,0.01,'N','O','1998-08-06','1998-07-08','1998-09-04','NONE','RAIL','carefully express theodol'), +(5604,136,2,2,49,50770.37,0.1,0,'N','O','1998-05-02','1998-07-07','1998-05-20','NONE','FOB','furiously regular theodolites haggle b'), +(5604,78,8,3,10,9780.7,0.07,0.05,'N','O','1998-08-03','1998-06-23','1998-08-04','COLLECT COD','SHIP','carefully si'), +(5605,87,8,1,50,49354,0.08,0.05,'N','O','1996-08-26','1996-10-15','1996-09-04','TAKE BACK RETURN','RAIL','fluffily bold requests '), +(5605,151,2,2,7,7358.05,0.06,0.01,'N','O','1996-12-13','1996-10-13','1996-12-15','TAKE BACK RETURN','FOB','carefully bol'), +(5605,173,2,3,3,3219.51,0.01,0.02,'N','O','1996-09-01','1996-10-02','1996-09-20','TAKE BACK RETURN','AIR','quickly express pac'), +(5605,55,3,4,45,42977.25,0,0.01,'N','O','1996-09-05','1996-10-04','1996-09-13','COLLECT COD','FOB','carefully pending platelets print qui'), +(5605,70,7,5,39,37832.73,0,0.08,'N','O','1996-12-13','1996-11-03','1996-12-24','DELIVER IN PERSON','REG AIR','quickly final reques'), +(5605,166,7,6,29,30918.64,0.08,0.08,'N','O','1996-09-19','1996-10-22','1996-10-06','DELIVER IN PERSON','SHIP','pending accounts nag '), +(5606,174,5,1,47,50485.99,0.1,0.04,'N','O','1996-12-23','1997-01-31','1997-01-20','DELIVER IN PERSON','REG AIR','regular accounts sleep about '), +(5606,92,3,2,34,33731.06,0.09,0.06,'N','O','1997-02-23','1997-02-08','1997-03-09','TAKE BACK RETURN','REG AIR','blithely unusual '); +INSERT INTO lineitem VALUES +(5606,127,8,3,46,47247.52,0.04,0,'N','O','1997-03-11','1997-01-13','1997-03-23','DELIVER IN PERSON','REG AIR','special, express dependencies sleep blith'), +(5606,82,3,4,30,29462.4,0.08,0.04,'N','O','1997-02-06','1997-01-26','1997-02-16','DELIVER IN PERSON','REG AIR','final foxes detect carefully '), +(5606,7,2,5,25,22675,0.06,0,'N','O','1996-12-25','1997-01-12','1997-01-11','TAKE BACK RETURN','AIR','slyly regular dependencies cajole. '), +(5606,154,5,6,3,3162.45,0.04,0.06,'N','O','1997-01-11','1997-01-04','1997-02-08','COLLECT COD','AIR','express requests wake quickly across '), +(5606,74,5,7,46,44807.22,0.07,0.01,'N','O','1997-02-01','1997-01-31','1997-02-15','DELIVER IN PERSON','TRUCK','regular platelets use carefully after the f'), +(5607,132,8,1,23,23738.99,0.02,0.06,'R','F','1992-04-17','1992-02-12','1992-04-30','DELIVER IN PERSON','MAIL','final dependencies'), +(5632,10,3,1,48,43680.48,0.06,0.06,'N','O','1996-05-08','1996-03-24','1996-06-04','TAKE BACK RETURN','FOB','unusual realms'), +(5632,106,7,2,21,21128.1,0.02,0.08,'N','O','1996-03-22','1996-03-10','1996-04-10','NONE','AIR','ironic accounts against th'), +(5632,67,2,3,24,23209.44,0.04,0.06,'N','O','1996-03-23','1996-04-02','1996-03-30','TAKE BACK RETURN','MAIL','quickly bold courts boost '), +(5633,160,2,1,28,29684.48,0.02,0,'N','O','1998-08-14','1998-07-24','1998-08-26','TAKE BACK RETURN','SHIP','even accounts above the always'), +(5633,102,3,2,10,10021,0.09,0.04,'N','O','1998-07-15','1998-08-03','1998-08-03','COLLECT COD','AIR','furiously ironic deposits w'), +(5633,46,7,3,27,25543.08,0.03,0.02,'N','O','1998-09-28','1998-07-28','1998-10-12','DELIVER IN PERSON','AIR','deposits are furio'), +(5633,164,5,4,50,53208,0.02,0.05,'N','O','1998-07-23','1998-07-09','1998-08-21','DELIVER IN PERSON','TRUCK','regular accounts'), +(5633,100,2,5,48,48004.8,0.01,0.05,'N','O','1998-06-24','1998-07-22','1998-07-18','DELIVER IN PERSON','TRUCK','pinto beans wake. iron'), +(5633,107,2,6,1,1007.1,0.02,0.03,'N','O','1998-09-29','1998-08-28','1998-10-19','NONE','RAIL','final accounts use fluff'), +(5633,11,5,7,39,35529.39,0.02,0.08,'N','O','1998-07-12','1998-07-03','1998-07-13','COLLECT COD','TRUCK','ironic requests haggle after th'), +(5634,185,6,1,26,28214.68,0.1,0.08,'N','O','1996-10-29','1996-09-15','1996-11-24','COLLECT COD','REG AIR','finally blithe deposits wake fluffily fl'), +(5634,175,3,2,22,23653.74,0.02,0.05,'N','O','1996-09-01','1996-08-31','1996-09-05','DELIVER IN PERSON','MAIL','blithely unu'), +(5634,109,6,3,16,16145.6,0.08,0.02,'N','O','1996-11-15','1996-09-14','1996-12-04','NONE','AIR','furiously fina'), +(5634,182,3,4,29,31383.22,0,0.01,'N','O','1996-08-10','1996-10-29','1996-08-11','TAKE BACK RETURN','MAIL','blithely pending packages integrate furiou'), +(5634,1,2,5,1,901,0.04,0.02,'N','O','1996-10-02','1996-10-21','1996-10-27','COLLECT COD','MAIL','requests against the ironic, ruth'), +(5635,83,4,1,43,42272.44,0.03,0,'R','F','1992-10-12','1992-09-29','1992-11-01','TAKE BACK RETURN','TRUCK','ironic packages haggle'), +(5635,72,3,2,5,4860.35,0.05,0.08,'R','F','1992-10-02','1992-11-05','1992-10-26','TAKE BACK RETURN','REG AIR','excuses wake. slyly pending reque'), +(5635,72,1,3,12,11664.84,0.09,0.02,'A','F','1992-10-18','1992-09-24','1992-11-17','NONE','REG AIR','ironic deposits acros'), +(5635,8,5,4,40,36320,0.03,0.01,'A','F','1992-09-25','1992-11-05','1992-10-11','NONE','FOB','carefully ironic pinto beans affix quic'), +(5635,169,10,5,38,40628.08,0.05,0.06,'A','F','1992-10-09','1992-09-25','1992-10-18','NONE','MAIL','blithely ironic requests '), +(5635,162,9,6,23,24429.68,0.05,0.04,'A','F','1992-08-24','1992-11-10','1992-09-21','NONE','AIR','bravely pendin'), +(5635,137,3,7,32,33188.16,0.03,0.08,'R','F','1992-11-24','1992-09-20','1992-12-17','TAKE BACK RETURN','TRUCK','ironic requests wake furiously. slyly spe'), +(5636,70,9,1,18,17461.26,0.05,0.03,'R','F','1995-05-14','1995-05-17','1995-06-12','DELIVER IN PERSON','REG AIR','blithely permanent packages p'); +INSERT INTO lineitem VALUES +(5636,70,5,2,26,25221.82,0.03,0.06,'A','F','1995-03-05','1995-05-16','1995-03-23','TAKE BACK RETURN','AIR','pending, s'), +(5636,90,1,3,21,20791.89,0.03,0.03,'A','F','1995-03-13','1995-05-11','1995-03-24','COLLECT COD','AIR','carefully bold pinto beans do sleep furio'), +(5636,109,6,4,15,15136.5,0.03,0.04,'R','F','1995-04-21','1995-04-30','1995-05-05','DELIVER IN PERSON','REG AIR','slyly final depos'), +(5636,47,4,5,13,12311.52,0.1,0.03,'A','F','1995-05-11','1995-04-27','1995-05-26','COLLECT COD','AIR','bold ideas detect caref'), +(5636,12,3,6,33,30096.33,0.06,0.04,'A','F','1995-03-09','1995-04-05','1995-03-23','DELIVER IN PERSON','MAIL','furiously even accounts wake furi'), +(5636,134,10,7,24,24819.12,0.1,0.05,'R','F','1995-04-12','1995-03-27','1995-04-16','DELIVER IN PERSON','RAIL','fluffily ironic deposits cajo'), +(5637,47,4,1,14,13258.56,0.03,0.05,'N','O','1996-07-20','1996-07-26','1996-08-14','COLLECT COD','MAIL','carefully special instructions wake furi'), +(5637,172,3,2,35,37525.95,0.09,0.08,'N','O','1996-08-01','1996-08-04','1996-08-20','NONE','AIR','furiously final accounts'), +(5637,96,10,3,22,21913.98,0.01,0.07,'N','O','1996-08-28','1996-07-30','1996-09-17','COLLECT COD','REG AIR','final, fina'), +(5637,66,1,4,16,15456.96,0.03,0.03,'N','O','1996-09-08','1996-08-31','1996-09-29','TAKE BACK RETURN','TRUCK','even, sly pinto bean'), +(5637,196,7,5,10,10961.9,0.01,0,'N','O','1996-08-25','1996-08-11','1996-09-23','TAKE BACK RETURN','MAIL','ruthlessly regular courts kindle instruc'), +(5637,129,4,6,27,27786.24,0.01,0.05,'N','O','1996-06-27','1996-08-09','1996-07-27','DELIVER IN PERSON','REG AIR','depths slee'), +(5638,138,9,1,45,46715.85,0.09,0.07,'A','F','1994-05-17','1994-03-09','1994-06-15','NONE','TRUCK','fluffily even pinto beans'), +(5638,168,3,2,12,12817.92,0.02,0.05,'A','F','1994-02-05','1994-04-01','1994-02-25','COLLECT COD','TRUCK','unusual, unusual ideas wake re'), +(5638,162,9,3,21,22305.36,0.08,0,'A','F','1994-03-13','1994-03-27','1994-03-17','DELIVER IN PERSON','TRUCK','blithely regula'), +(5639,47,10,1,11,10417.44,0.09,0.02,'R','F','1994-09-18','1994-07-10','1994-10-12','TAKE BACK RETURN','SHIP','regular, ruthless d'), +(5664,122,1,1,25,25553,0,0.06,'N','O','1998-10-29','1998-09-23','1998-11-25','COLLECT COD','FOB','furiously ironic'), +(5664,173,2,2,9,9658.53,0.07,0.05,'N','O','1998-07-31','1998-08-26','1998-08-12','COLLECT COD','RAIL','quickly fluffy orbits wake by th'), +(5664,53,4,3,31,29544.55,0.01,0.03,'N','O','1998-11-10','1998-09-12','1998-12-07','TAKE BACK RETURN','FOB','quickly bold accounts a'), +(5664,138,9,4,33,34258.29,0.08,0.03,'N','O','1998-08-29','1998-09-17','1998-09-25','DELIVER IN PERSON','RAIL','blithely unusual packages '), +(5664,112,2,5,44,44532.84,0.01,0.06,'N','O','1998-09-24','1998-09-26','1998-10-23','NONE','TRUCK','deposits across the sl'), +(5664,68,5,6,34,32914.04,0.09,0.01,'N','O','1998-09-10','1998-10-05','1998-09-15','COLLECT COD','RAIL','furiously special theodolites s'), +(5664,182,3,7,9,9739.62,0.01,0.05,'N','O','1998-11-04','1998-10-15','1998-11-20','TAKE BACK RETURN','REG AIR','furiously pending ac'), +(5665,101,2,1,32,32035.2,0,0.02,'A','F','1993-08-11','1993-08-01','1993-09-07','NONE','AIR','slyly final accounts '), +(5665,5,8,2,14,12670,0.02,0,'R','F','1993-06-29','1993-09-16','1993-07-16','DELIVER IN PERSON','AIR','fluffily ir'), +(5665,158,9,3,41,43384.15,0.09,0.02,'A','F','1993-08-23','1993-09-22','1993-09-11','COLLECT COD','REG AIR','slyly pending foxes '), +(5665,46,9,4,47,44463.88,0.01,0.01,'A','F','1993-10-06','1993-09-19','1993-11-01','NONE','RAIL','furiously express accounts use carefully '), +(5666,122,5,1,7,7154.84,0.09,0.08,'R','F','1994-05-10','1994-04-06','1994-05-21','NONE','FOB','slyly sly requests was quickly acros'), +(5666,36,7,2,14,13104.42,0.08,0.01,'A','F','1994-02-27','1994-04-11','1994-03-06','DELIVER IN PERSON','TRUCK','blithely ironic pinto '), +(5666,193,6,3,39,42634.41,0,0.01,'A','F','1994-05-13','1994-04-02','1994-06-12','DELIVER IN PERSON','TRUCK','furiously pending packages alongside of '); +INSERT INTO lineitem VALUES +(5666,131,2,4,24,24747.12,0.07,0.01,'R','F','1994-02-14','1994-03-09','1994-03-06','DELIVER IN PERSON','FOB','ideas haggle closely re'), +(5666,109,10,5,36,36327.6,0.07,0.07,'R','F','1994-03-15','1994-03-16','1994-03-18','COLLECT COD','TRUCK','carefully final accounts a'), +(5667,145,4,1,37,38670.18,0.09,0.06,'N','O','1995-09-24','1995-09-17','1995-10-03','NONE','REG AIR','even packages poach aro'), +(5668,4,9,1,15,13560,0.03,0.04,'A','F','1995-04-06','1995-05-12','1995-04-17','COLLECT COD','FOB','quickly regular accounts sleep ironic pl'), +(5669,191,2,1,7,7638.33,0.06,0.06,'N','O','1996-06-19','1996-07-07','1996-07-11','COLLECT COD','SHIP','final, brave foxes sublate ca'), +(5669,156,8,2,2,2112.3,0.06,0.07,'N','O','1996-08-04','1996-06-15','1996-08-20','NONE','SHIP','depths promise furiously'), +(5669,158,9,3,40,42326,0,0.02,'N','O','1996-08-30','1996-06-15','1996-09-07','TAKE BACK RETURN','FOB','even foxes cajole slyly '), +(5669,90,1,4,31,30692.79,0.04,0.05,'N','O','1996-08-05','1996-06-10','1996-08-29','COLLECT COD','AIR','furiously special '), +(5669,140,6,5,30,31204.2,0.07,0.01,'N','O','1996-07-14','1996-07-28','1996-08-10','TAKE BACK RETURN','TRUCK','even notornis sleep. ironic, regular'), +(5670,90,1,1,27,26732.43,0.1,0.06,'R','F','1993-05-09','1993-05-30','1993-06-06','TAKE BACK RETURN','REG AIR','express, bold gifts sleep carefully blithel'), +(5670,186,7,2,43,46705.74,0.06,0,'A','F','1993-07-09','1993-06-03','1993-07-14','DELIVER IN PERSON','FOB','furiously un'), +(5670,7,8,3,24,21768,0.09,0.04,'A','F','1993-07-17','1993-07-01','1993-08-03','NONE','AIR','blithely unusual theodolit'), +(5670,142,9,4,11,11463.54,0.06,0.06,'R','F','1993-07-11','1993-06-26','1993-07-24','DELIVER IN PERSON','MAIL','furiously regular warhorses use ironic pint'), +(5671,120,7,1,25,25503,0,0.08,'N','O','1998-04-17','1998-03-28','1998-05-06','DELIVER IN PERSON','AIR','ruthlessly unusual excuses engage car'), +(5671,129,8,2,46,47339.52,0.05,0.08,'N','O','1998-03-28','1998-04-22','1998-04-19','TAKE BACK RETURN','MAIL','furiously regular packages'), +(5671,172,10,3,13,13938.21,0.1,0.06,'N','O','1998-03-02','1998-04-03','1998-03-08','TAKE BACK RETURN','TRUCK','furiously ironic requests slee'), +(5671,111,1,4,42,42466.62,0,0.07,'N','O','1998-02-17','1998-04-24','1998-03-17','TAKE BACK RETURN','SHIP','slyly regular foxes around the slyly re'), +(5671,129,4,5,13,13378.56,0.09,0,'N','O','1998-04-24','1998-03-26','1998-04-27','NONE','REG AIR','bold ideas haggle fluffily'), +(5671,114,1,6,30,30423.3,0.09,0.07,'N','O','1998-06-06','1998-04-15','1998-07-01','DELIVER IN PERSON','TRUCK','slyly special requests cajole. pains poa'), +(5696,137,3,1,28,29039.64,0.03,0.06,'N','O','1995-07-03','1995-06-14','1995-07-27','COLLECT COD','REG AIR','slyly even accounts cajole arou'), +(5696,59,1,2,46,44116.3,0.01,0,'N','O','1995-08-10','1995-07-08','1995-08-25','COLLECT COD','AIR','permanently ironic tithes mold quickly amon'), +(5696,167,2,3,42,44820.72,0.04,0.01,'N','F','1995-06-06','1995-06-11','1995-06-19','TAKE BACK RETURN','SHIP','packages boost slyly furio'), +(5696,98,10,4,20,19961.8,0.08,0,'N','O','1995-06-25','1995-07-18','1995-07-16','NONE','TRUCK','even theodolites engage carefully'), +(5696,124,9,5,19,19458.28,0.07,0.05,'N','O','1995-08-31','1995-06-13','1995-09-10','COLLECT COD','SHIP','carefully final plat'), +(5696,132,8,6,37,38188.81,0.04,0.05,'N','O','1995-07-21','1995-06-23','1995-08-19','NONE','RAIL','slyly bold platelets cajol'), +(5696,102,9,7,6,6012.6,0.07,0.05,'N','O','1995-08-03','1995-07-15','1995-09-01','DELIVER IN PERSON','REG AIR','slyly regular foxes use throughou'), +(5697,55,7,1,24,22921.2,0.1,0.07,'R','F','1992-10-27','1992-11-28','1992-11-20','NONE','RAIL','special, final deposits '), +(5697,16,10,2,43,39388.43,0.06,0.02,'R','F','1992-12-08','1992-12-03','1992-12-17','TAKE BACK RETURN','FOB','packages wake instead of the'), +(5697,56,8,3,42,40154.1,0.03,0.01,'A','F','1992-12-19','1992-12-08','1993-01-03','COLLECT COD','TRUCK','pending foxes'); +INSERT INTO lineitem VALUES +(5698,11,8,1,30,27330.3,0.01,0.05,'A','F','1994-05-26','1994-08-16','1994-06-19','COLLECT COD','AIR','fluffily final theodolites boost slyly. '), +(5698,163,4,2,25,26579,0.08,0.07,'R','F','1994-08-06','1994-06-21','1994-08-25','NONE','SHIP','final deposits cajole. sile'), +(5698,155,3,3,45,47481.75,0.03,0.01,'A','F','1994-06-23','1994-08-13','1994-07-02','NONE','FOB','even dolphins caj'), +(5698,58,6,4,15,14370.75,0.07,0.08,'R','F','1994-06-29','1994-07-03','1994-07-02','COLLECT COD','REG AIR','stealthily unusual excus'), +(5698,140,1,5,37,38485.18,0.06,0.06,'A','F','1994-06-30','1994-06-23','1994-07-22','TAKE BACK RETURN','SHIP','always final ideas alongsi'), +(5698,188,9,6,1,1088.18,0.06,0.04,'R','F','1994-05-31','1994-07-10','1994-06-03','DELIVER IN PERSON','MAIL','unusual, pending deposits use at th'), +(5699,2,7,1,24,21648,0.01,0.07,'A','F','1992-10-21','1992-09-04','1992-11-04','COLLECT COD','AIR','quickly silent idea'), +(5699,55,10,2,26,24831.3,0.06,0.06,'R','F','1992-08-11','1992-09-21','1992-08-14','COLLECT COD','MAIL','slyly even packages bo'), +(5699,18,2,3,48,44064.48,0.1,0.05,'R','F','1992-11-23','1992-10-20','1992-11-29','DELIVER IN PERSON','TRUCK','blithely ironic asym'), +(5699,55,3,4,46,43932.3,0.08,0.02,'A','F','1992-11-28','1992-09-23','1992-12-27','TAKE BACK RETURN','FOB','fluffy accounts according to the furiously '), +(5699,28,7,5,21,19488.42,0.02,0.02,'A','F','1992-10-13','1992-09-30','1992-10-19','NONE','MAIL','closely spe'), +(5699,191,5,6,30,32735.7,0.08,0.05,'R','F','1992-11-13','1992-10-01','1992-12-11','DELIVER IN PERSON','AIR','blithely quiet ideas are. fur'), +(5699,129,8,7,45,46310.4,0.09,0.06,'A','F','1992-09-23','1992-10-22','1992-10-04','DELIVER IN PERSON','SHIP','carefully sp'), +(5700,168,5,1,24,25635.84,0.09,0,'N','O','1997-12-26','1998-01-28','1998-01-18','DELIVER IN PERSON','REG AIR','ironic accounts breach. care'), +(5700,123,8,2,30,30693.6,0,0.06,'N','O','1998-04-19','1998-03-13','1998-04-27','COLLECT COD','MAIL','ironic, bold pearls cajole dolphins. regu'), +(5700,126,5,3,23,23600.76,0.03,0.05,'N','O','1998-01-30','1998-01-31','1998-01-31','NONE','REG AIR','furiously regu'), +(5701,54,2,1,17,16218.85,0.02,0.05,'N','O','1997-03-27','1997-04-08','1997-04-21','DELIVER IN PERSON','RAIL','evenly final frays may are furiously pendi'), +(5702,77,7,1,44,42991.08,0.06,0.02,'R','F','1994-01-04','1993-11-25','1994-01-22','NONE','RAIL','final, exp'), +(5702,86,7,2,37,36484.96,0.1,0.05,'R','F','1993-12-14','1993-10-21','1994-01-08','NONE','FOB','furiously ironic deposits solve quickl'), +(5702,131,7,3,44,45369.72,0,0.02,'R','F','1993-11-28','1993-12-02','1993-12-22','NONE','TRUCK','pending re'), +(5702,63,8,4,31,29854.86,0,0.04,'A','F','1994-01-04','1993-10-22','1994-01-26','DELIVER IN PERSON','TRUCK','even requests wake '), +(5703,88,9,1,2,1976.16,0.09,0.01,'R','F','1993-05-29','1993-07-26','1993-06-05','TAKE BACK RETURN','REG AIR','even, final packages nag slyly ironic, fin'), +(5728,44,1,1,47,44369.88,0.1,0.05,'A','F','1994-12-13','1995-01-25','1994-12-25','TAKE BACK RETURN','MAIL','slyly even ideas slee'), +(5728,159,1,2,40,42366,0.05,0.08,'A','F','1995-03-28','1995-01-17','1995-04-14','TAKE BACK RETURN','SHIP','requests wa'), +(5729,143,4,1,5,5215.7,0.07,0,'R','F','1994-11-27','1994-11-11','1994-12-23','TAKE BACK RETURN','MAIL','slyly ironic foxes after the fluff'), +(5729,107,10,2,39,39276.9,0.1,0,'A','F','1995-01-22','1994-11-21','1995-02-13','TAKE BACK RETURN','MAIL','platelets boost carefull'), +(5729,12,3,3,50,45600.5,0,0.05,'R','F','1994-12-09','1994-12-31','1994-12-24','TAKE BACK RETURN','AIR','carefully pending ideas must use carefu'), +(5730,151,2,1,2,2102.3,0.08,0,'N','O','1998-02-24','1998-03-15','1998-03-11','COLLECT COD','SHIP','final, express dependencies '), +(5730,200,1,2,9,9901.8,0.1,0.01,'N','O','1998-03-05','1998-02-02','1998-03-28','DELIVER IN PERSON','MAIL','carefully '), +(5731,192,6,1,13,14198.47,0.02,0.04,'N','O','1997-07-30','1997-06-23','1997-08-13','COLLECT COD','RAIL','furiously special'); +INSERT INTO lineitem VALUES +(5731,105,6,2,11,11056.1,0,0.08,'N','O','1997-06-06','1997-07-08','1997-06-25','NONE','MAIL','pending, regular packages wake blit'), +(5731,111,2,3,6,6066.66,0.01,0.04,'N','O','1997-07-02','1997-07-01','1997-07-08','COLLECT COD','SHIP','ironically sil'), +(5731,14,1,4,6,5484.06,0.03,0.06,'N','O','1997-09-07','1997-06-20','1997-09-20','TAKE BACK RETURN','RAIL','carefully exp'), +(5731,195,6,5,19,20808.61,0.08,0.02,'N','O','1997-06-29','1997-06-27','1997-07-15','NONE','REG AIR','final courts are. p'), +(5732,139,5,1,26,27017.38,0.02,0.07,'N','O','1997-08-18','1997-10-25','1997-09-12','TAKE BACK RETURN','TRUCK','furiously express decoys detect blithel'), +(5733,33,4,1,39,36388.17,0.01,0.07,'A','F','1993-03-22','1993-05-24','1993-04-04','DELIVER IN PERSON','FOB','bold, ironic packages haggle carefully aft'), +(5734,183,4,1,29,31412.22,0.05,0.01,'N','O','1997-12-01','1997-12-08','1997-12-23','NONE','RAIL','pinto beans acc'), +(5734,150,3,2,6,6300.9,0.07,0,'N','O','1997-10-27','1997-12-19','1997-11-02','COLLECT COD','RAIL','special warthogs wake furiou'), +(5734,67,8,3,10,9670.6,0.01,0.03,'N','O','1997-12-28','1997-12-24','1998-01-24','DELIVER IN PERSON','TRUCK','carefully regular pack'), +(5735,60,1,1,41,39362.46,0.01,0.01,'R','F','1994-12-23','1995-02-10','1995-01-22','COLLECT COD','MAIL','furiously final requests are furiously ac'), +(5760,1,8,1,6,5406,0.09,0.03,'R','F','1994-07-30','1994-07-31','1994-08-16','COLLECT COD','REG AIR','idly ironic ac'), +(5760,6,1,2,24,21744,0.04,0.05,'A','F','1994-07-15','1994-07-04','1994-08-08','NONE','MAIL','furiously final foxes'), +(5760,148,5,3,8,8385.12,0.07,0.04,'A','F','1994-09-06','1994-08-03','1994-10-06','NONE','AIR','blithely final accounts wake carefully a'), +(5760,123,4,4,19,19439.28,0.1,0.01,'R','F','1994-08-02','1994-08-02','1994-08-15','COLLECT COD','SHIP','blithely final the'), +(5760,166,1,5,6,6396.96,0.03,0.07,'R','F','1994-06-09','1994-07-06','1994-06-16','DELIVER IN PERSON','MAIL','regular, ironic foxes use '), +(5761,47,6,1,41,38828.64,0.08,0,'N','O','1998-07-31','1998-08-09','1998-08-08','TAKE BACK RETURN','TRUCK','regular pinto beans are. final foxe'), +(5761,108,9,2,36,36291.6,0,0.07,'N','O','1998-09-07','1998-09-21','1998-09-11','TAKE BACK RETURN','TRUCK','pending instructions detect fu'), +(5761,198,2,3,49,53811.31,0.04,0.08,'N','O','1998-07-14','1998-08-20','1998-07-25','NONE','SHIP','even accounts snooze quickly regular reques'), +(5762,175,6,1,6,6451.02,0.05,0.02,'N','O','1997-04-07','1997-03-25','1997-05-02','NONE','AIR','furiously unusual requests wa'), +(5762,102,9,2,27,27056.7,0.02,0.08,'N','O','1997-02-21','1997-05-08','1997-03-23','NONE','REG AIR','blithely pending deposits might serve'), +(5762,89,10,3,40,39563.2,0,0.08,'N','O','1997-04-30','1997-05-09','1997-05-08','COLLECT COD','SHIP','even instructions wake fluffily furio'), +(5762,133,4,4,47,48557.11,0.05,0.06,'N','O','1997-03-02','1997-03-23','1997-03-19','NONE','RAIL','final ideas use unusual, unu'), +(5762,25,6,5,28,25900.56,0.02,0.06,'N','O','1997-02-22','1997-03-25','1997-02-24','TAKE BACK RETURN','SHIP','accounts wake above the slyly even at'), +(5762,12,6,6,12,10944.12,0,0.06,'N','O','1997-04-18','1997-04-27','1997-05-11','DELIVER IN PERSON','REG AIR','carefully final excuses use finally r'), +(5763,131,2,1,32,32996.16,0.02,0.06,'N','O','1998-07-16','1998-09-13','1998-08-02','DELIVER IN PERSON','FOB','bold foxes doz'), +(5763,136,2,2,23,23830.99,0.09,0.04,'N','O','1998-07-25','1998-09-21','1998-08-15','DELIVER IN PERSON','SHIP','slyly pending re'), +(5763,13,3,3,25,22825.25,0.01,0.02,'N','O','1998-10-04','1998-08-16','1998-10-09','DELIVER IN PERSON','REG AIR','slyly final accounts'), +(5763,121,6,4,47,47992.64,0.09,0,'N','O','1998-08-22','1998-09-22','1998-09-04','NONE','REG AIR','regular foxes according to the cl'), +(5763,123,4,5,8,8184.96,0.06,0.05,'N','O','1998-09-23','1998-09-15','1998-09-27','DELIVER IN PERSON','TRUCK','slyly bold requests around t'), +(5763,190,1,6,9,9811.71,0.08,0.02,'N','O','1998-09-24','1998-09-01','1998-10-02','NONE','AIR','blithely express pinto beans ar'); +INSERT INTO lineitem VALUES +(5764,101,2,1,28,28030.8,0.04,0.04,'A','F','1993-12-07','1993-12-20','1993-12-26','TAKE BACK RETURN','RAIL','furiously ironic packages cajol'), +(5764,200,3,2,20,22004,0.1,0.05,'A','F','1993-10-17','1993-12-24','1993-10-18','TAKE BACK RETURN','FOB','escapades sleep fluffily final '), +(5764,188,9,3,4,4352.72,0.03,0.05,'A','F','1993-10-25','1993-12-23','1993-11-06','DELIVER IN PERSON','AIR','unusual, pend'), +(5765,162,7,1,31,32926.96,0,0.06,'A','F','1995-01-11','1995-02-13','1995-01-23','TAKE BACK RETURN','AIR','quickly ironic dolphins boos'), +(5765,124,9,2,29,29699.48,0.07,0.08,'A','F','1994-12-29','1995-02-01','1995-01-26','NONE','RAIL','final, fina'), +(5765,139,10,3,31,32213.03,0.05,0.01,'R','F','1995-03-01','1995-01-23','1995-03-31','TAKE BACK RETURN','REG AIR','bravely bold dependencies haggle fl'), +(5765,152,4,4,46,48398.9,0.07,0.07,'R','F','1995-03-13','1995-02-12','1995-03-20','DELIVER IN PERSON','MAIL','fluffily final requ'), +(5765,174,3,5,48,51560.16,0.09,0.02,'A','F','1995-03-30','1995-01-14','1995-04-09','DELIVER IN PERSON','SHIP','silent accounts are. bold pinto beans'), +(5765,83,4,6,41,40306.28,0.04,0,'A','F','1994-12-31','1995-02-11','1995-01-17','TAKE BACK RETURN','SHIP','dependencies sublate'), +(5765,42,5,7,21,19782.84,0.05,0.04,'R','F','1995-04-05','1995-02-12','1995-05-05','COLLECT COD','TRUCK','carefully sil'), +(5766,188,9,1,1,1088.18,0.1,0.01,'R','F','1994-01-16','1993-11-16','1994-01-23','NONE','MAIL','silent, even'), +(5766,149,8,2,39,40916.46,0.02,0.07,'A','F','1993-10-24','1993-12-07','1993-11-08','DELIVER IN PERSON','SHIP','pending, ironi'), +(5766,118,8,3,4,4072.44,0.08,0.08,'R','F','1993-11-10','1993-10-30','1993-12-01','COLLECT COD','TRUCK','blithely ironi'), +(5767,167,8,1,11,11738.76,0.08,0.01,'A','F','1992-06-02','1992-05-30','1992-06-08','NONE','TRUCK','carefully bold de'), +(5767,69,8,2,15,14535.9,0.07,0.05,'R','F','1992-06-05','1992-07-28','1992-06-08','DELIVER IN PERSON','MAIL','slyly pending foxes s'), +(5767,191,3,3,42,45829.98,0.06,0.01,'R','F','1992-07-31','1992-06-09','1992-08-09','COLLECT COD','TRUCK','furiously silent pint'), +(5767,153,4,4,34,35807.1,0.06,0.01,'R','F','1992-06-02','1992-06-23','1992-06-17','NONE','FOB','furiously special instructi'), +(5767,46,7,5,36,34057.44,0.03,0,'A','F','1992-07-17','1992-06-10','1992-07-19','COLLECT COD','AIR','slyly ironic foxes b'), +(5792,178,8,1,34,36657.78,0.08,0.07,'R','F','1993-05-23','1993-06-25','1993-06-12','NONE','RAIL','somas integrate slyly carefully bold accoun'), +(5792,157,5,2,47,49686.05,0.1,0,'A','F','1993-06-08','1993-05-10','1993-06-26','COLLECT COD','AIR','ironically regular accounts haggle bl'), +(5792,183,4,3,32,34661.76,0.05,0.08,'R','F','1993-06-26','1993-05-23','1993-07-07','COLLECT COD','RAIL','asymptotes '), +(5792,14,8,4,14,12796.14,0.09,0.02,'A','F','1993-07-28','1993-06-17','1993-08-27','DELIVER IN PERSON','RAIL','ironic pinto be'), +(5792,102,9,5,31,31065.1,0.02,0.01,'A','F','1993-06-17','1993-05-05','1993-07-01','COLLECT COD','TRUCK','unusual accounts grow fox'), +(5793,53,5,1,20,19061,0.05,0.03,'N','O','1997-10-05','1997-09-04','1997-10-30','COLLECT COD','AIR','quickly furious foxes c'), +(5793,170,5,2,41,43876.97,0.06,0.06,'N','O','1997-08-04','1997-10-10','1997-08-12','DELIVER IN PERSON','TRUCK','special instructions according t'), +(5793,43,4,3,8,7544.32,0.07,0.03,'N','O','1997-08-16','1997-09-08','1997-08-28','COLLECT COD','AIR','express, regular'), +(5793,148,7,4,48,50310.72,0.02,0.02,'N','O','1997-09-27','1997-08-23','1997-10-27','DELIVER IN PERSON','REG AIR','accounts are carefully express gift'), +(5794,158,9,1,42,44442.3,0.06,0.05,'R','F','1993-06-29','1993-05-30','1993-07-28','COLLECT COD','REG AIR','furiously pending ideas are f'), +(5794,115,2,2,14,14211.54,0.09,0.02,'R','F','1993-04-19','1993-07-02','1993-05-18','COLLECT COD','SHIP','furiously express '), +(5794,7,8,3,15,13605,0.09,0.06,'R','F','1993-06-25','1993-06-27','1993-07-09','NONE','MAIL','depths wake enticingly bold deposits. blith'); +INSERT INTO lineitem VALUES +(5794,137,3,4,47,48745.11,0,0.08,'A','F','1993-07-16','1993-06-21','1993-08-05','TAKE BACK RETURN','REG AIR','final, regular pa'), +(5795,193,6,1,34,37168.46,0.09,0.05,'A','F','1992-08-21','1992-07-30','1992-08-27','COLLECT COD','REG AIR','blithely reg'), +(5796,58,3,1,27,25867.35,0.1,0,'N','O','1996-04-06','1996-02-29','1996-04-20','DELIVER IN PERSON','RAIL','carefully regul'), +(5797,61,6,1,17,16338.02,0.09,0.03,'N','O','1997-12-13','1998-01-12','1997-12-23','NONE','REG AIR','slyly final accounts'), +(5798,127,8,1,2,2054.24,0.09,0,'N','O','1998-05-25','1998-06-22','1998-06-09','COLLECT COD','FOB','quickly final accounts'), +(5798,124,9,2,14,14337.68,0.06,0.05,'N','O','1998-04-01','1998-06-14','1998-04-27','NONE','RAIL','unusual pinto beans across the blithely'), +(5798,134,5,3,22,22750.86,0.02,0.01,'N','O','1998-06-24','1998-06-06','1998-07-20','COLLECT COD','TRUCK','furiously ironic asymptotes wake. slyly f'), +(5798,146,3,4,40,41845.6,0.08,0.06,'N','O','1998-07-09','1998-06-24','1998-07-16','NONE','TRUCK','furiously silent packages use regular, '), +(5798,149,8,5,7,7343.98,0.06,0.07,'N','O','1998-06-06','1998-05-10','1998-06-07','NONE','SHIP','regular foxes according t'), +(5798,38,4,6,9,8442.27,0.06,0.02,'N','O','1998-05-05','1998-05-25','1998-05-09','DELIVER IN PERSON','REG AIR','slyly special'), +(5798,115,9,7,32,32483.52,0.08,0.01,'N','O','1998-04-27','1998-05-03','1998-05-08','TAKE BACK RETURN','REG AIR','bold, silent ac'), +(5799,95,6,1,41,40798.69,0.04,0.02,'N','O','1995-11-13','1995-10-31','1995-11-16','COLLECT COD','TRUCK','slyly pending t'), +(5799,100,3,2,30,30003,0.03,0.08,'N','O','1995-09-12','1995-09-13','1995-09-19','NONE','RAIL','final theodolit'), +(5824,77,7,1,40,39082.8,0.06,0.06,'N','O','1997-01-14','1997-01-17','1997-02-02','NONE','REG AIR','furiously special deposits wak'), +(5824,182,3,2,42,45451.56,0.09,0,'N','O','1997-02-01','1997-02-20','1997-02-07','COLLECT COD','SHIP','carefully regular pinto beans'), +(5824,73,1,3,16,15569.12,0.03,0.02,'N','O','1997-02-13','1997-01-07','1997-02-17','TAKE BACK RETURN','TRUCK','carefully e'), +(5824,92,5,4,32,31746.88,0.03,0.02,'N','O','1997-02-16','1997-01-24','1997-02-20','DELIVER IN PERSON','RAIL','quickly silent theodolites ha'), +(5824,107,8,5,44,44312.4,0.08,0.03,'N','O','1997-01-24','1997-01-31','1997-02-11','COLLECT COD','TRUCK','ironic accounts believe. carefully fi'), +(5825,159,7,1,23,24360.45,0.1,0.05,'R','F','1995-05-10','1995-04-28','1995-05-13','DELIVER IN PERSON','TRUCK','slyly unusual requests ought t'), +(5826,144,1,1,4,4176.56,0.03,0.06,'N','O','1998-07-31','1998-09-10','1998-08-27','NONE','AIR','slyly express deposits slee'), +(5826,64,5,2,18,17353.08,0.04,0.01,'N','O','1998-07-17','1998-09-03','1998-07-22','NONE','SHIP','silent pinto beans haggle quickly af'), +(5827,187,8,1,30,32615.4,0.03,0.05,'N','O','1998-11-11','1998-09-27','1998-11-30','DELIVER IN PERSON','RAIL','blithely pen'), +(5827,103,6,2,23,23071.3,0.09,0.05,'N','O','1998-11-16','1998-09-14','1998-11-17','COLLECT COD','RAIL','bold accounts along the slyly final foxes'), +(5827,164,1,3,3,3192.48,0.03,0.06,'N','O','1998-10-17','1998-09-29','1998-10-28','DELIVER IN PERSON','MAIL','bold accounts along'), +(5827,200,1,4,26,28605.2,0.06,0,'N','O','1998-07-29','1998-09-24','1998-07-30','DELIVER IN PERSON','SHIP','stealthily pending de'), +(5827,112,9,5,38,38460.18,0.03,0.06,'N','O','1998-10-18','1998-08-27','1998-10-23','TAKE BACK RETURN','TRUCK','regular deposits '), +(5827,17,4,6,14,12838.14,0.05,0.01,'N','O','1998-08-31','1998-09-06','1998-09-13','TAKE BACK RETURN','RAIL','carefully express accounts integrate'), +(5828,2,9,1,28,25256,0.1,0.03,'A','F','1994-05-15','1994-05-20','1994-06-08','DELIVER IN PERSON','MAIL','accounts use quickly after the '), +(5828,158,3,2,37,39151.55,0.01,0,'R','F','1994-06-07','1994-05-30','1994-06-17','NONE','RAIL','pending accounts nag busil'), +(5829,40,1,1,4,3760.16,0.01,0.02,'N','O','1997-03-01','1997-02-17','1997-03-22','NONE','TRUCK','regular ideas are '); +INSERT INTO lineitem VALUES +(5829,107,10,2,40,40284,0.04,0.01,'N','O','1997-04-21','1997-02-12','1997-05-04','COLLECT COD','TRUCK','fluffily special dependen'), +(5829,129,8,3,6,6174.72,0.05,0.06,'N','O','1997-01-22','1997-03-12','1997-02-02','TAKE BACK RETURN','AIR','final, final dugouts are carefully '), +(5829,90,1,4,42,41583.78,0.02,0.07,'N','O','1997-03-26','1997-04-01','1997-03-30','COLLECT COD','REG AIR','doggedly final deposits thrash evenl'), +(5829,191,5,5,49,53468.31,0.05,0.01,'N','O','1997-01-31','1997-03-13','1997-02-18','NONE','MAIL','blithely permanent packages alo'), +(5829,18,5,6,17,15606.17,0.09,0.02,'N','O','1997-04-10','1997-03-29','1997-04-22','COLLECT COD','AIR','even, final accounts could cajole carefully'), +(5829,78,9,7,27,26407.89,0.08,0.04,'N','O','1997-02-25','1997-03-31','1997-03-03','DELIVER IN PERSON','AIR','slyly regular courts against the'), +(5830,160,2,1,29,30744.64,0.1,0.02,'R','F','1993-06-19','1993-05-10','1993-07-13','DELIVER IN PERSON','REG AIR','furiously '), +(5831,191,2,1,2,2182.38,0.1,0.01,'N','O','1997-02-09','1997-01-20','1997-03-07','TAKE BACK RETURN','TRUCK','even, bold dolphins wake slyly. ironi'), +(5831,74,3,2,33,32144.31,0.04,0.03,'N','O','1996-11-20','1997-01-18','1996-12-18','TAKE BACK RETURN','MAIL','even, quick deposits across'), +(5831,82,3,3,6,5892.48,0.05,0.07,'N','O','1997-01-29','1997-01-14','1997-02-09','NONE','MAIL','instructions toward the fi'), +(5831,13,10,4,46,41998.46,0.06,0.02,'N','O','1997-02-24','1997-01-18','1997-03-02','COLLECT COD','MAIL','express pinto beans sleep carefully even r'), +(5831,43,4,5,37,34892.48,0.05,0.01,'N','O','1997-01-17','1997-02-08','1997-02-01','NONE','FOB','dolphins are furiously alongside of the reg'), +(5856,4,1,1,1,904,0.03,0.02,'A','F','1994-12-29','1995-01-07','1995-01-10','TAKE BACK RETURN','MAIL','accounts gro'), +(5856,35,6,2,35,32726.05,0.09,0.02,'R','F','1994-11-24','1994-12-23','1994-11-30','COLLECT COD','AIR','furiously even foxes along the carefully'), +(5856,153,4,3,39,41072.85,0.05,0.03,'A','F','1995-01-18','1995-01-11','1995-01-19','DELIVER IN PERSON','TRUCK','slyly final p'), +(5857,58,9,1,25,23951.25,0.03,0.02,'N','O','1997-12-02','1997-12-17','1997-12-08','DELIVER IN PERSON','REG AIR','final, regular excuses u'), +(5857,195,9,2,50,54759.5,0.06,0.07,'N','O','1997-12-04','1997-12-16','1997-12-20','NONE','TRUCK','final requests'), +(5857,68,3,3,1,968.06,0.03,0.01,'N','O','1998-02-01','1997-12-09','1998-02-20','TAKE BACK RETURN','SHIP','blithely ironic'), +(5857,118,2,4,12,12217.32,0.03,0.08,'N','O','1998-01-24','1997-12-27','1998-02-10','TAKE BACK RETURN','AIR','unusual packages us'), +(5857,192,4,5,14,15290.66,0.07,0.07,'N','O','1997-12-10','1998-01-06','1998-01-04','TAKE BACK RETURN','TRUCK','furiously silent ideas against th'), +(5857,93,5,6,49,48661.41,0,0.04,'N','O','1998-01-23','1997-12-12','1998-01-28','DELIVER IN PERSON','REG AIR','slyly unusual somas are. ironic, bold reque'), +(5858,121,4,1,20,20422.4,0.02,0.06,'A','F','1992-07-23','1992-08-26','1992-07-24','COLLECT COD','SHIP','regular ideas are furiously alo'), +(5858,16,7,2,36,32976.36,0,0.05,'A','F','1992-09-25','1992-08-16','1992-10-11','NONE','SHIP','deposits around the car'), +(5858,148,5,3,7,7336.98,0.08,0.02,'A','F','1992-10-07','1992-08-16','1992-10-15','TAKE BACK RETURN','REG AIR','blithely ironic accounts abo'), +(5858,164,9,4,46,48951.36,0.07,0.06,'R','F','1992-09-07','1992-10-06','1992-10-06','DELIVER IN PERSON','MAIL','ironic pinto b'), +(5858,161,8,5,18,19100.88,0,0.07,'A','F','1992-11-05','1992-10-08','1992-12-03','NONE','TRUCK','furiously even deposits '), +(5858,154,9,6,7,7379.05,0.04,0,'A','F','1992-09-14','1992-10-01','1992-10-01','TAKE BACK RETURN','RAIL','dogged theodolites '), +(5858,11,5,7,50,45550.5,0.06,0,'R','F','1992-07-20','1992-10-07','1992-07-25','NONE','TRUCK','carefully fur'), +(5859,175,4,1,50,53758.5,0.07,0.01,'N','O','1997-07-08','1997-06-20','1997-07-27','COLLECT COD','MAIL','special depend'), +(5859,9,6,2,17,15453,0.03,0.03,'N','O','1997-05-15','1997-06-30','1997-05-26','DELIVER IN PERSON','AIR','slyly ironic d'); +INSERT INTO lineitem VALUES +(5859,46,3,3,33,31219.32,0.1,0.04,'N','O','1997-07-08','1997-06-22','1997-07-18','TAKE BACK RETURN','TRUCK','pending, sl'), +(5859,93,4,4,40,39723.6,0.09,0.02,'N','O','1997-08-05','1997-06-17','1997-08-20','NONE','REG AIR','even ideas cajole alongside o'), +(5859,153,8,5,35,36860.25,0,0.08,'N','O','1997-05-28','1997-07-14','1997-06-15','COLLECT COD','TRUCK','furiously pending th'), +(5859,44,5,6,9,8496.36,0.01,0.02,'N','O','1997-06-15','1997-06-06','1997-06-20','NONE','RAIL','unusual, ironic'), +(5859,191,5,7,27,29462.13,0.05,0.08,'N','O','1997-07-30','1997-07-08','1997-08-08','NONE','MAIL','final requests haggle carefull'), +(5860,51,3,1,10,9510.5,0.04,0.04,'A','F','1992-03-11','1992-03-30','1992-03-31','NONE','MAIL','slyly unusual accounts are slyl'), +(5861,191,5,1,32,34918.08,0,0.03,'N','O','1997-05-27','1997-05-29','1997-05-28','TAKE BACK RETURN','MAIL','slyly final '), +(5861,86,7,2,6,5916.48,0.1,0.03,'N','O','1997-07-28','1997-05-18','1997-08-24','TAKE BACK RETURN','TRUCK','unusual, bold packages wake blithely unu'), +(5862,113,7,1,4,4052.44,0.09,0.06,'N','O','1997-06-04','1997-04-26','1997-06-19','NONE','TRUCK','furiously ironic packages al'), +(5862,2,7,2,29,26158,0.03,0.05,'N','O','1997-04-02','1997-04-16','1997-04-04','NONE','FOB','asymptotes against the furiously bol'), +(5863,161,10,1,45,47752.2,0.07,0.06,'A','F','1993-12-19','1994-01-25','1994-01-05','NONE','REG AIR','even accounts haggle furiously sly'), +(5863,160,8,2,21,22263.36,0.09,0.03,'R','F','1994-01-13','1994-01-09','1994-01-28','DELIVER IN PERSON','FOB','regular, bold requests around the ironi'), +(5888,62,7,1,46,44254.76,0.02,0,'N','O','1996-11-18','1996-11-05','1996-12-08','TAKE BACK RETURN','FOB','regular packages sleep fur'), +(5888,112,3,2,24,24290.64,0.03,0.01,'N','O','1996-11-07','1996-11-30','1996-11-20','COLLECT COD','SHIP','busy, unusual packages print fluffil'), +(5889,77,7,1,17,16610.19,0.09,0.02,'N','O','1995-07-01','1995-08-12','1995-07-25','NONE','AIR','slyly final theodolites across th'), +(5890,113,4,1,38,38498.18,0.01,0.08,'A','F','1993-02-14','1992-12-09','1993-02-27','COLLECT COD','FOB','accounts wake carefully. slyly r'), +(5891,85,6,1,22,21671.76,0,0.06,'R','F','1993-01-01','1993-02-18','1993-01-14','DELIVER IN PERSON','TRUCK','furiously express Tiresias against'), +(5891,186,7,2,9,9775.62,0.03,0.07,'R','F','1993-01-20','1993-02-27','1993-02-10','COLLECT COD','REG AIR','evenly unu'), +(5891,30,9,3,10,9300.3,0.08,0.01,'A','F','1993-04-14','1993-02-07','1993-04-15','DELIVER IN PERSON','RAIL','carefully pending'), +(5892,148,9,1,7,7336.98,0.02,0.03,'N','O','1995-06-26','1995-07-18','1995-07-25','COLLECT COD','AIR','furiously regu'), +(5892,150,9,2,37,38855.55,0.09,0.06,'N','O','1995-08-12','1995-06-11','1995-09-05','NONE','REG AIR','slyly final packages are furiously fluffy'), +(5892,3,4,3,28,25284,0.03,0.06,'N','O','1995-08-16','1995-07-06','1995-08-22','DELIVER IN PERSON','MAIL','bold foxes wake furiously among t'), +(5892,75,6,4,23,22426.61,0.08,0.04,'R','F','1995-05-18','1995-07-06','1995-05-29','COLLECT COD','MAIL','express packages are above the f'), +(5893,134,10,1,43,44467.59,0.05,0.02,'R','F','1992-11-02','1992-09-27','1992-11-21','TAKE BACK RETURN','RAIL','furiously regular pl'), +(5893,2,9,2,2,1804,0.1,0.04,'R','F','1992-07-18','1992-09-10','1992-08-12','NONE','RAIL','regular account'), +(5894,8,5,1,23,20884,0.04,0.08,'A','F','1994-09-05','1994-10-27','1994-09-13','NONE','TRUCK','busily fina'), +(5894,79,8,2,48,46995.36,0.04,0.08,'A','F','1994-09-04','1994-11-03','1994-09-17','NONE','TRUCK','furiously '), +(5895,15,9,1,38,34770.38,0.05,0.08,'N','O','1997-04-05','1997-03-06','1997-05-03','DELIVER IN PERSON','RAIL','quickly regular dugouts sleep fluffily. f'), +(5895,122,3,2,47,48039.64,0.04,0.06,'N','O','1997-04-27','1997-03-17','1997-05-07','DELIVER IN PERSON','AIR','furiously bold a'), +(5895,84,5,3,49,48219.92,0.03,0.07,'N','O','1997-03-15','1997-02-17','1997-04-04','NONE','TRUCK','express frets sleep requests. quick'); +INSERT INTO lineitem VALUES +(5895,146,7,4,31,32430.34,0.03,0.01,'N','O','1997-03-03','1997-03-30','1997-03-08','TAKE BACK RETURN','TRUCK','slyly unusual requests dazzle regular dep'), +(5895,200,1,5,20,22004,0.07,0,'N','O','1997-04-30','1997-02-07','1997-05-08','DELIVER IN PERSON','AIR','slyly unusual theodoli'), +(5895,78,7,6,15,14671.05,0.08,0.08,'N','O','1997-04-19','1997-03-09','1997-05-13','TAKE BACK RETURN','RAIL','fluffily regular packages thr'), +(5920,187,8,1,50,54359,0.06,0,'A','F','1995-03-13','1995-01-03','1995-03-31','TAKE BACK RETURN','RAIL','furiously regular'), +(5920,58,9,2,24,22993.2,0.01,0.05,'A','F','1994-12-28','1995-01-21','1994-12-31','DELIVER IN PERSON','FOB','carefully even inst'), +(5920,117,1,3,2,2034.22,0.08,0.07,'A','F','1995-02-18','1995-01-13','1995-03-04','NONE','SHIP','furiously r'), +(5920,12,2,4,28,25536.28,0.06,0.02,'R','F','1994-12-17','1995-02-13','1994-12-31','NONE','SHIP','quickly express asymptotes about the warh'), +(5920,100,4,5,42,42004.2,0.09,0.08,'A','F','1994-12-18','1995-01-07','1995-01-14','COLLECT COD','AIR','final, express accounts kindle furious'), +(5921,99,3,1,44,43959.96,0.07,0.01,'R','F','1994-07-14','1994-06-30','1994-07-15','NONE','TRUCK','ironic packages nag furiously. '), +(5921,146,9,2,25,26153.5,0.06,0.01,'A','F','1994-05-19','1994-06-15','1994-06-17','COLLECT COD','TRUCK','final packages i'), +(5921,68,5,3,17,16457.02,0.06,0.01,'R','F','1994-05-20','1994-05-26','1994-05-23','NONE','FOB','blithely express theodolites use furious'), +(5921,28,7,4,26,24128.52,0.03,0.04,'A','F','1994-05-03','1994-07-06','1994-05-06','NONE','AIR','boldly busy requests affix iro'), +(5921,143,10,5,41,42768.74,0.04,0.02,'R','F','1994-04-13','1994-05-31','1994-04-26','DELIVER IN PERSON','AIR','courts cajole qui'), +(5921,115,6,6,5,5075.55,0.02,0,'R','F','1994-06-01','1994-05-07','1994-06-10','COLLECT COD','TRUCK','slyly furious deposits nag amo'), +(5922,196,10,1,9,9865.71,0.07,0,'N','O','1996-12-04','1997-01-20','1996-12-08','DELIVER IN PERSON','RAIL','requests use'), +(5922,157,2,2,37,39114.55,0.01,0.04,'N','O','1996-12-19','1996-12-16','1997-01-15','COLLECT COD','RAIL','furiously even pinto beans us'), +(5922,90,1,3,35,34653.15,0.08,0,'N','O','1996-12-12','1997-01-21','1997-01-01','DELIVER IN PERSON','SHIP','silent ideas boost. foxes cajole'), +(5922,66,7,4,13,12558.78,0.08,0.07,'N','O','1997-03-08','1996-12-26','1997-04-03','DELIVER IN PERSON','FOB','carefully ironic sentiments hag'), +(5922,57,5,5,39,37324.95,0.04,0.07,'N','O','1997-03-04','1997-01-17','1997-03-25','TAKE BACK RETURN','SHIP','unusual sheaves ha'), +(5922,179,9,6,10,10791.7,0.04,0.01,'N','O','1997-02-23','1996-12-26','1997-03-04','NONE','REG AIR','silent foxes cajole carefully'), +(5923,177,8,1,27,29083.59,0.08,0.03,'N','O','1997-08-16','1997-06-27','1997-08-29','DELIVER IN PERSON','RAIL','carefully '), +(5923,119,3,2,42,42802.62,0.01,0.08,'N','O','1997-09-16','1997-07-23','1997-09-27','COLLECT COD','REG AIR','final, express excuses'), +(5923,108,5,3,2,2016.2,0.06,0.05,'N','O','1997-06-19','1997-07-31','1997-06-28','TAKE BACK RETURN','TRUCK','ironic packages wake at the '), +(5923,174,4,4,46,49411.82,0.05,0.04,'N','O','1997-07-29','1997-07-23','1997-08-23','COLLECT COD','SHIP','furiously ironic instructions use'), +(5923,59,4,5,35,33566.75,0.04,0.05,'N','O','1997-07-21','1997-07-11','1997-08-01','DELIVER IN PERSON','AIR','slyly regular accounts wak'), +(5924,176,5,1,38,40894.46,0.06,0.05,'N','O','1995-12-17','1995-12-11','1996-01-06','TAKE BACK RETURN','AIR','quickly ironic depo'), +(5924,53,1,2,49,46699.45,0.04,0,'N','O','1995-10-25','1995-12-11','1995-11-08','NONE','MAIL','slyly unusual fox'), +(5924,17,8,3,24,22008.24,0.09,0.08,'N','O','1996-01-12','1995-12-13','1996-01-25','COLLECT COD','REG AIR','blithely bold pinto b'), +(5925,87,8,1,42,41457.36,0.05,0.02,'N','O','1996-03-05','1996-01-13','1996-03-10','COLLECT COD','SHIP','slyly ironic courts are. fluffi'), +(5925,125,4,2,31,31778.72,0.03,0.03,'N','O','1996-01-02','1995-12-14','1996-01-07','TAKE BACK RETURN','FOB','busily thin theodolites integrate blithe'); +INSERT INTO lineitem VALUES +(5925,89,10,3,50,49454,0.03,0.04,'N','O','1996-02-14','1996-01-10','1996-02-15','NONE','TRUCK','carefully regular grouches ha'), +(5925,54,9,4,30,28621.5,0.02,0.07,'N','O','1996-02-21','1996-02-11','1996-03-10','NONE','TRUCK','unusual instru'), +(5925,160,1,5,41,43466.56,0,0.06,'N','O','1996-02-03','1995-12-24','1996-02-20','NONE','SHIP','fluffily express theodolites a'), +(5925,50,9,6,48,45602.4,0.02,0,'N','O','1996-02-03','1996-01-19','1996-03-04','DELIVER IN PERSON','REG AIR','ironic plat'), +(5926,90,1,1,8,7920.72,0.02,0,'R','F','1994-07-17','1994-07-20','1994-08-11','COLLECT COD','MAIL','slyly final reque'), +(5926,50,9,2,27,25651.35,0.09,0.05,'A','F','1994-07-05','1994-08-11','1994-08-02','DELIVER IN PERSON','MAIL','carefully special instructions along t'), +(5926,127,8,3,46,47247.52,0.01,0.03,'R','F','1994-09-05','1994-08-12','1994-09-11','COLLECT COD','RAIL','express pinto beans cajole regul'), +(5926,190,1,4,23,25074.37,0.01,0.02,'A','F','1994-07-23','1994-08-10','1994-07-27','DELIVER IN PERSON','FOB','slyly regula'), +(5927,90,1,1,44,43563.96,0.04,0.05,'N','O','1997-11-29','1997-11-21','1997-12-13','DELIVER IN PERSON','TRUCK','quickly quiet pinto beans wake aro'), +(5927,115,2,2,8,8120.88,0.04,0.05,'N','O','1997-09-24','1997-11-15','1997-10-22','TAKE BACK RETURN','SHIP','deposits nod alongside of the blithel'), +(5927,167,6,3,32,34149.12,0.1,0.07,'N','O','1997-12-26','1997-10-27','1997-12-31','COLLECT COD','AIR','carefully pending deposits wake quickly '), +(5952,200,2,1,49,53909.8,0.1,0.02,'N','O','1997-06-30','1997-07-10','1997-07-02','COLLECT COD','AIR','carefully ironic requests along t'), +(5952,191,5,2,11,12003.09,0.1,0.05,'N','O','1997-05-13','1997-06-04','1997-05-27','DELIVER IN PERSON','FOB','even dependencies among the accounts '), +(5952,71,2,3,43,41756.01,0.01,0.01,'N','O','1997-06-29','1997-06-06','1997-07-15','COLLECT COD','MAIL','pending requests wake above the slyly reg'), +(5952,158,3,4,23,24337.45,0,0.07,'N','O','1997-05-13','1997-06-27','1997-05-20','NONE','TRUCK','blithely final ins'), +(5953,129,10,1,36,37048.32,0.03,0,'R','F','1992-05-28','1992-06-24','1992-05-29','DELIVER IN PERSON','FOB','ruthlessly regular ideas boos'), +(5953,13,7,2,34,31042.34,0.03,0.04,'A','F','1992-05-04','1992-06-12','1992-06-02','NONE','RAIL','quickly express accounts nag blithely f'), +(5953,162,9,3,5,5310.8,0.07,0.06,'A','F','1992-04-10','1992-04-27','1992-04-14','NONE','SHIP','final, final requests about the always exp'), +(5953,169,8,4,23,24590.68,0.09,0.02,'R','F','1992-06-05','1992-06-03','1992-06-29','TAKE BACK RETURN','FOB','even accounts at the daringly unusual depos'), +(5954,147,6,1,8,8377.12,0.03,0,'A','F','1993-03-27','1993-01-22','1993-04-04','TAKE BACK RETURN','AIR','fluffily even foxes na'), +(5954,81,2,2,40,39243.2,0.02,0.01,'A','F','1992-12-30','1993-01-16','1993-01-09','COLLECT COD','RAIL','foxes beside the pending accounts det'), +(5954,94,8,3,20,19881.8,0.09,0.07,'A','F','1992-12-25','1993-02-05','1992-12-31','COLLECT COD','REG AIR','ironic dependencies '), +(5954,145,4,4,20,20902.8,0,0.01,'R','F','1993-02-27','1993-01-04','1993-03-08','NONE','TRUCK','blithely speci'), +(5954,100,4,5,35,35003.5,0.04,0.06,'A','F','1993-03-17','1993-02-06','1993-04-10','NONE','SHIP','slyly pendi'), +(5954,193,5,6,39,42634.41,0.04,0.08,'A','F','1993-02-27','1993-02-25','1993-03-29','DELIVER IN PERSON','REG AIR','quickly ironic request'), +(5955,140,1,1,14,14561.96,0.08,0.08,'N','O','1995-06-22','1995-05-23','1995-06-24','DELIVER IN PERSON','TRUCK','fluffily even d'), +(5955,62,7,2,15,14430.9,0.08,0.07,'R','F','1995-04-22','1995-05-28','1995-04-27','NONE','FOB','even, regular accounts poach furi'), +(5955,112,9,3,40,40484.4,0.03,0,'R','F','1995-04-01','1995-06-11','1995-04-27','NONE','FOB','blithely final ideas cajole q'), +(5956,155,3,1,10,10551.5,0.04,0.05,'N','O','1998-07-27','1998-07-04','1998-08-21','NONE','MAIL','quickly pending accounts after the bli'); +INSERT INTO lineitem VALUES +(5956,55,7,2,23,21966.15,0.08,0.03,'N','O','1998-06-06','1998-07-10','1998-06-15','DELIVER IN PERSON','RAIL','fluffily unusual instructions cajole'), +(5956,175,5,3,47,50532.99,0.04,0.06,'N','O','1998-09-06','1998-06-29','1998-09-18','TAKE BACK RETURN','MAIL','final packages wake f'), +(5956,20,10,4,40,36800.8,0.09,0.05,'N','O','1998-06-11','1998-07-19','1998-06-21','NONE','MAIL','furiously quick pack'), +(5957,15,9,1,37,33855.37,0.07,0,'A','F','1994-04-18','1994-02-19','1994-05-11','NONE','AIR','special, regular requests sleep bes'), +(5957,59,4,2,46,44116.3,0.04,0.08,'A','F','1994-01-23','1994-01-30','1994-02-07','NONE','SHIP','fluffily bold dependencies affi'), +(5957,2,7,3,17,15334,0.01,0.01,'A','F','1994-01-24','1994-02-16','1994-02-08','TAKE BACK RETURN','SHIP','unusual, iro'), +(5957,132,3,4,29,29931.77,0.01,0.03,'R','F','1994-02-24','1994-03-04','1994-03-08','COLLECT COD','REG AIR','packages nag. regular, regular pac'), +(5957,88,9,5,40,39523.2,0.04,0.04,'R','F','1994-01-07','1994-02-05','1994-01-26','DELIVER IN PERSON','SHIP','deposits haggle slyly fi'), +(5957,6,1,6,41,37146,0.1,0.07,'R','F','1994-03-25','1994-02-20','1994-03-31','DELIVER IN PERSON','MAIL','express, bold requests sleep acro'), +(5957,159,1,7,32,33892.8,0.1,0.07,'A','F','1994-03-05','1994-02-20','1994-03-09','NONE','TRUCK','ironic, unusual foxes maintain? furi'), +(5958,149,8,1,33,34621.62,0.02,0.04,'N','O','1995-09-24','1995-12-12','1995-10-05','COLLECT COD','MAIL','realms cajol'), +(5958,43,6,2,23,21689.92,0.03,0.04,'N','O','1995-09-26','1995-10-19','1995-09-27','COLLECT COD','SHIP','quickly final ideas ca'), +(5958,153,8,3,42,44232.3,0.1,0,'N','O','1995-12-12','1995-10-19','1996-01-09','NONE','AIR','requests boost. pending requests af'), +(5958,39,10,4,18,16902.54,0.04,0.05,'N','O','1995-12-02','1995-10-17','1995-12-22','COLLECT COD','FOB','even, even requests wake care'), +(5958,132,8,5,32,33028.16,0.06,0,'N','O','1995-09-20','1995-12-10','1995-10-14','COLLECT COD','REG AIR','furiously regular instructions cajol'), +(5959,135,1,1,49,50721.37,0.07,0.03,'R','F','1992-07-16','1992-08-09','1992-08-14','DELIVER IN PERSON','SHIP','slyly bold r'), +(5959,147,8,2,17,17801.38,0.09,0.07,'R','F','1992-06-10','1992-07-06','1992-06-23','COLLECT COD','MAIL','quickly bold deposits use blith'), +(5959,5,6,3,4,3620,0.04,0.03,'R','F','1992-06-14','1992-07-05','1992-07-01','NONE','MAIL','furiously ironic foxes integrate acro'), +(5959,196,7,4,13,14250.47,0.03,0,'A','F','1992-07-29','1992-07-13','1992-08-20','COLLECT COD','SHIP','furiously regular courts cajole furi'), +(5959,40,6,5,37,34781.48,0.04,0.01,'R','F','1992-06-05','1992-07-18','1992-06-29','NONE','TRUCK','even dependencies cajole about the unus'), +(5959,119,3,6,35,35668.85,0.03,0,'A','F','1992-05-27','1992-06-19','1992-06-23','NONE','TRUCK','ironic packages alongside of the '), +(5959,43,10,7,47,44322.88,0.02,0.01,'R','F','1992-08-28','1992-07-24','1992-09-09','TAKE BACK RETURN','RAIL','ironic deposits '), +(5984,70,5,1,13,12610.91,0.06,0.07,'R','F','1994-10-16','1994-09-06','1994-11-11','NONE','MAIL','slyly speci'), +(5984,102,3,2,25,25052.5,0.05,0.08,'R','F','1994-10-06','1994-07-21','1994-10-28','COLLECT COD','RAIL','furiously pending accounts lo'), +(5984,1,4,3,8,7208,0.1,0,'R','F','1994-09-17','1994-08-28','1994-09-25','COLLECT COD','RAIL','furiously final instructions'), +(5984,190,1,4,35,38156.65,0,0.01,'A','F','1994-08-25','1994-08-05','1994-08-31','DELIVER IN PERSON','SHIP','furiously pending'), +(5985,86,7,1,4,3944.32,0.02,0.02,'A','F','1995-05-04','1995-04-01','1995-05-17','DELIVER IN PERSON','MAIL','regular pinto b'), +(5986,79,7,1,26,25455.82,0,0,'R','F','1992-08-10','1992-05-23','1992-08-24','TAKE BACK RETURN','SHIP','carefully fluffy excuses ought to cajole'), +(5986,196,8,2,25,27404.75,0.03,0.06,'A','F','1992-06-16','1992-07-17','1992-06-29','TAKE BACK RETURN','MAIL','carefully unusual foxe'), +(5986,30,5,3,1,930.03,0.07,0.06,'A','F','1992-05-21','1992-06-21','1992-05-24','DELIVER IN PERSON','REG AIR','blithely regular requests are despite the'); +INSERT INTO lineitem VALUES +(5986,90,1,4,31,30692.79,0,0.03,'A','F','1992-08-21','1992-06-29','1992-09-14','NONE','AIR','bold deposits cajole accounts. r'), +(5986,136,7,5,6,6216.78,0.05,0.02,'A','F','1992-07-16','1992-06-10','1992-07-29','DELIVER IN PERSON','RAIL','quickly final theodolit'), +(5987,23,2,1,1,923.02,0.01,0.04,'N','O','1996-09-13','1996-10-29','1996-09-21','DELIVER IN PERSON','REG AIR','furiously ironic foxes '), +(5987,176,5,2,20,21523.4,0.1,0.06,'N','O','1996-11-28','1996-09-17','1996-12-05','TAKE BACK RETURN','RAIL','pending, regular excuses kindle ab'), +(5987,92,3,3,43,42659.87,0.08,0.04,'N','O','1996-10-30','1996-10-13','1996-11-12','NONE','AIR','furiously s'), +(5987,97,1,4,37,36892.33,0.08,0.08,'N','O','1996-10-15','1996-10-27','1996-11-09','NONE','MAIL','ironically p'), +(5988,172,1,1,41,43958.97,0.08,0.03,'R','F','1994-01-20','1994-02-06','1994-02-10','COLLECT COD','AIR','accounts affix'); + +CREATE TABLE nation ( + n_nationkey int(11) NOT NULL, + n_name char(25) DEFAULT NULL, + n_regionkey int(11) DEFAULT NULL, + n_comment varchar(152) DEFAULT NULL, + PRIMARY KEY (n_nationkey), + KEY i_n_regionkey (n_regionkey) +); +INSERT INTO nation VALUES +(0,'ALGERIA',0,'final accounts wake quickly. special reques'), +(1,'ARGENTINA',1,'idly final instructions cajole stealthily. regular instructions wake carefully blithely express accounts. fluffi'), +(2,'BRAZIL',1,'always pending pinto beans sleep sil'), +(3,'CANADA',1,'foxes among the bold requests'), +(4,'EGYPT',4,'pending accounts haggle furiously. furiously bold accounts detect. platelets at the packages haggle caref'), +(5,'ETHIOPIA',0,'fluffily ruthless requests integrate fluffily. pending ideas wake blithely acco'), +(6,'FRANCE',3,'even requests detect near the pendin'), +(7,'GERMANY',3,'blithely ironic foxes grow. quickly pending accounts are b'), +(8,'INDIA',2,'ironic packages should have to are slyly around the special, ironic accounts. iron'), +(9,'INDONESIA',2,'unusual excuses are quickly requests. slyly ironic accounts haggle carefully above the pendin'), +(10,'IRAN',4,'blithely even accounts about the furiously regular foxes nag slyly final accounts. quickly final fo'), +(11,'IRAQ',4,'express, pending deposits boost quick'), +(12,'JAPAN',2,'blithely final packages cajole quickly even dependencies? blithely regular deposits haggle express, ironic re'), +(13,'JORDAN',4,'blithe, express deposits boost carefully busy accounts. furiously pending depos'), +(14,'KENYA',0,'ironic requests boost. quickly pending pinto beans cajole slyly slyly even deposits. ironic packages '), +(15,'MOROCCO',0,'ideas according to the fluffily final pinto beans sleep furiously'), +(16,'MOZAMBIQUE',0,'ironic courts wake fluffily even, bold deposi'), +(17,'PERU',1,'final, final accounts sleep slyly across the requests. '), +(18,'CHINA',2,'bold accounts are. slyly ironic escapades haggle acc'), +(19,'ROMANIA',3,'deposits boost against the brave id'), +(20,'SAUDI ARABIA',4,'fluffily final accounts wake slyly-- fi'), +(21,'VIETNAM',2,'doggedly ironic requests haggle furiously ironic, ironic packages. furiously final courts wake fur'), +(22,'RUSSIA',3,'slowly pending patterns x-ray quickly. ironic, even accounts haggle furiously. even, final deposits mold bl'), +(23,'UNITED KINGDOM',3,'fluffily regular pinto beans breach according to the ironic dolph'), +(24,'UNITED STATES',1,'blithely regular deposits serve furiously blithely regular warthogs! slyly fi'); + +CREATE TABLE orders ( + o_orderkey int(11) NOT NULL, + o_custkey int(11) DEFAULT NULL, + o_orderstatus char(1) DEFAULT NULL, + o_totalprice double DEFAULT NULL, + o_orderDATE date DEFAULT NULL, + o_orderpriority char(15) DEFAULT NULL, + o_clerk char(15) DEFAULT NULL, + o_shippriority int(11) DEFAULT NULL, + o_comment varchar(79) DEFAULT NULL, + PRIMARY KEY (o_orderkey), + KEY i_o_orderdate (o_orderDATE), + KEY i_o_custkey (o_custkey) +); +INSERT INTO orders VALUES +(1,37,'O',131251.81,'1996-01-02','5-LOW','Clerk#000000951',0,'blithely final dolphins solve-- blithely blithe packages nag blith'), +(2,79,'O',40183.29,'1996-12-01','1-URGENT','Clerk#000000880',0,'quickly regular depend'), +(3,124,'F',160882.76,'1993-10-14','5-LOW','Clerk#000000955',0,'deposits alongside of the dependencies are slowly about '), +(4,137,'O',31084.79,'1995-10-11','5-LOW','Clerk#000000124',0,'final requests detect slyly across the blithely bold pinto beans. eve'), +(5,46,'F',86615.25,'1994-07-30','5-LOW','Clerk#000000925',0,'even deposits cajole furiously. quickly spe'), +(6,56,'F',36468.55,'1992-02-21','4-NOT SPECIFIED','Clerk#000000058',0,'ironically bold asymptotes sleep blithely beyond the regular, clos'), +(7,40,'O',171488.73,'1996-01-10','2-HIGH','Clerk#000000470',0,'ironic, regular deposits are. ironic foxes sl'), +(32,131,'O',116923,'1995-07-16','2-HIGH','Clerk#000000616',0,'slyly final foxes are slyly. packag'), +(33,67,'F',99798.76,'1993-10-27','3-MEDIUM','Clerk#000000409',0,'packages maintain about the deposits; foxes hang after '), +(34,62,'O',41670.02,'1998-07-21','3-MEDIUM','Clerk#000000223',0,'quickly express asymptotes use. carefully final packages sleep f'), +(35,128,'O',148789.52,'1995-10-23','4-NOT SPECIFIED','Clerk#000000259',0,'fluffily regular pinto beans '), +(36,116,'O',38988.98,'1995-11-03','1-URGENT','Clerk#000000358',0,'carefully ironic accounts nag'), +(37,88,'F',113701.89,'1992-06-03','3-MEDIUM','Clerk#000000456',0,'express requests ar'), +(38,125,'O',46366.56,'1996-08-21','4-NOT SPECIFIED','Clerk#000000604',0,'slyly quick pinto beans detect flu'), +(39,82,'O',219707.84,'1996-09-20','3-MEDIUM','Clerk#000000659',0,'furiously unusual pinto beans above the furiously ironic asymptot'), +(64,34,'F',20065.73,'1994-07-16','3-MEDIUM','Clerk#000000661',0,'final deposits nag. blithely special deposits a'), +(65,17,'P',65883.92,'1995-03-18','1-URGENT','Clerk#000000632',0,'furiously even platelets boost ironic theodolites. even '), +(66,130,'F',79258.24,'1994-01-20','5-LOW','Clerk#000000743',0,'ironic requests are quickly about the carefully unusual a'), +(67,58,'O',116227.05,'1996-12-19','4-NOT SPECIFIED','Clerk#000000547',0,'regular, bold foxes across the even requests detect a'), +(68,29,'O',215135.72,'1998-04-18','3-MEDIUM','Clerk#000000440',0,'stealthy decoys nag; furiously'), +(69,85,'F',162176.23,'1994-06-04','4-NOT SPECIFIED','Clerk#000000330',0,'carefully regular theodolites exce'), +(70,65,'F',84651.8,'1993-12-18','5-LOW','Clerk#000000322',0,'blithely unusual pack'), +(71,4,'O',178821.73,'1998-01-24','4-NOT SPECIFIED','Clerk#000000271',0,'furiously ironic dolphins sleep slyly. carefully special notornis cajole c'), +(96,109,'F',55090.67,'1994-04-17','2-HIGH','Clerk#000000395',0,'carefully regular accounts '), +(97,22,'F',68908.31,'1993-01-29','3-MEDIUM','Clerk#000000547',0,'carefully even packages believe sly'), +(98,106,'F',51004.44,'1994-09-25','1-URGENT','Clerk#000000448',0,'carefully even dinos sleep blithely. regular, bold deposits'), +(99,89,'F',92326.79,'1994-03-13','4-NOT SPECIFIED','Clerk#000000973',0,'carefully regular theodolites may believe unu'), +(100,148,'O',141311.01,'1998-02-28','4-NOT SPECIFIED','Clerk#000000577',0,'regular deposits sleep closely regular, regular packages. carefully si'), +(101,28,'O',95591.4,'1996-03-17','3-MEDIUM','Clerk#000000419',0,'blithely ironic accounts lose slyly about the pending, regular accounts'), +(102,1,'O',113954.89,'1997-05-09','2-HIGH','Clerk#000000596',0,'unusual deposits dazzle furiously blithely regular pinto beans. pending foxes'), +(103,31,'O',95563.95,'1996-06-20','4-NOT SPECIFIED','Clerk#000000090',0,'carefully ironic deposits are quickly blithely even'), +(128,74,'F',36333.34,'1992-06-15','1-URGENT','Clerk#000000385',0,'carefully special e'), +(129,73,'F',188124.55,'1992-11-19','5-LOW','Clerk#000000859',0,'slyly bold dolphins cajole c'), +(130,37,'F',115717.37,'1992-05-08','2-HIGH','Clerk#000000036',0,'slyly final accounts among'); +INSERT INTO orders VALUES +(131,94,'F',96596.81,'1994-06-08','3-MEDIUM','Clerk#000000625',0,'special courts wake blithely accordin'), +(132,28,'F',118802.62,'1993-06-11','3-MEDIUM','Clerk#000000488',0,'ironic platelets according to the evenly regula'), +(133,44,'O',80437.72,'1997-11-29','1-URGENT','Clerk#000000738',0,'slyly silent deposits haggle carefully fluffi'), +(134,7,'F',154260.84,'1992-05-01','4-NOT SPECIFIED','Clerk#000000711',0,'silently even deposits wake about the fluff'), +(135,61,'O',174569.88,'1995-10-21','4-NOT SPECIFIED','Clerk#000000804',0,'accounts cajole. final, pending dependencies a'), +(160,83,'O',86076.86,'1996-12-19','4-NOT SPECIFIED','Clerk#000000342',0,'unusual dependencie'), +(161,17,'F',19056.99,'1994-08-31','2-HIGH','Clerk#000000322',0,'ironic, even attainments cajole closely'), +(162,16,'O',2158.13,'1995-05-08','3-MEDIUM','Clerk#000000378',0,'instructions nag slyly. fluffily ironic sau'), +(163,88,'O',125170.86,'1997-09-05','3-MEDIUM','Clerk#000000379',0,'carefully express pinto beans serve carefully final as'), +(164,1,'F',202660.52,'1992-10-21','5-LOW','Clerk#000000209',0,'fluffily unusual requests al'), +(165,28,'F',141824.23,'1993-01-30','4-NOT SPECIFIED','Clerk#000000292',0,'furiously enticing accounts cajole sometimes. slyly express plat'), +(166,109,'O',93335.6,'1995-09-12','2-HIGH','Clerk#000000440',0,'bold dependencies wake furiously regula'), +(167,121,'F',52982.23,'1993-01-04','4-NOT SPECIFIED','Clerk#000000731',0,'express warhorses wake carefully furiously ironic deposits. c'), +(192,83,'O',133002.55,'1997-11-25','5-LOW','Clerk#000000483',0,'silent requests above the furiously even pinto beans sleep bl'), +(193,80,'F',48053.18,'1993-08-08','1-URGENT','Clerk#000000025',0,'slyly blithe instructions cajole carefully ironic, fina'), +(194,62,'F',114097.63,'1992-04-05','3-MEDIUM','Clerk#000000352',0,'carefully dogged excuses use abou'), +(195,136,'F',120053.52,'1993-12-28','3-MEDIUM','Clerk#000000216',0,'ironic, final notornis are fluffily across the carefull'), +(196,65,'F',33248.04,'1993-03-17','2-HIGH','Clerk#000000988',0,'even deposits wake '), +(197,34,'P',100290.07,'1995-04-07','2-HIGH','Clerk#000000969',0,'theodolites above the furiously regular deposits sleep blithely abo'), +(198,112,'O',125792.83,'1998-01-02','4-NOT SPECIFIED','Clerk#000000331',0,'deposits haggle carefully after the furiously fi'), +(199,53,'O',80592.44,'1996-03-07','2-HIGH','Clerk#000000489',0,'unusual, regular requests c'), +(224,4,'F',155680.6,'1994-06-18','4-NOT SPECIFIED','Clerk#000000642',0,'quickly final accounts use even requests. ironic ac'), +(225,34,'P',165890.47,'1995-05-25','1-URGENT','Clerk#000000177',0,'blithely express cou'), +(226,128,'F',180119.22,'1993-03-10','2-HIGH','Clerk#000000756',0,'even, ironic theodolites detect fluffily final instructions-- fi'), +(227,10,'O',46076.46,'1995-11-10','5-LOW','Clerk#000000919',0,'asymptotes are special, special requests. spec'), +(228,46,'F',2638.98,'1993-02-25','1-URGENT','Clerk#000000562',0,'blithely ironic requests boost pending theodolites. even deposits affix fluf'), +(229,112,'F',142290.77,'1993-12-29','1-URGENT','Clerk#000000628',0,'blithely thin requests along the fluffily regular packages e'), +(230,103,'F',107231.6,'1993-10-27','1-URGENT','Clerk#000000520',0,'ironic, silent tithes wake carefully until the even theodolites. special'), +(231,91,'F',141554.06,'1994-09-29','2-HIGH','Clerk#000000446',0,'express requests use always at the unusual deposits. silently final acc'), +(256,125,'F',106315.25,'1993-10-19','4-NOT SPECIFIED','Clerk#000000834',0,'special dependencies boost furiously. pendin'), +(257,124,'O',7102.74,'1998-03-28','3-MEDIUM','Clerk#000000680',0,'final, regular packages nag furiously fluffily f'), +(258,43,'F',186669.1,'1993-12-29','1-URGENT','Clerk#000000167',0,'regularly ironic grouches against the quickly express p'), +(259,44,'F',75661.7,'1993-09-29','4-NOT SPECIFIED','Clerk#000000601',0,'ironic packages haggle among the furiously brave deposits. final, final d'); +INSERT INTO orders VALUES +(260,106,'O',179292.14,'1996-12-10','3-MEDIUM','Clerk#000000960',0,'quickly special ideas against the furiously final accounts affix deposits. sl'), +(261,47,'F',201003.12,'1993-06-29','3-MEDIUM','Clerk#000000310',0,'final accounts nag fluffily about'), +(262,31,'O',108443.84,'1995-11-25','4-NOT SPECIFIED','Clerk#000000551',0,'express, regular theodolites wake special instructions. slyly express '), +(263,118,'F',79782.56,'1994-05-17','2-HIGH','Clerk#000000088',0,'fluffily final ideas use quickly slyly final foxes? fluffily express dolphi'), +(288,8,'O',163794.53,'1997-02-21','1-URGENT','Clerk#000000109',0,'quickly ruthless instructions cajole '), +(289,104,'O',131092.67,'1997-02-10','3-MEDIUM','Clerk#000000103',0,'slyly express excuses d'), +(290,118,'F',62814.89,'1994-01-01','4-NOT SPECIFIED','Clerk#000000735',0,'pending instructions against the furiously express d'), +(291,142,'F',66817.05,'1994-03-13','1-URGENT','Clerk#000000923',0,'express requests according to the carefully regular deposits run'), +(292,23,'F',30783.05,'1992-01-13','2-HIGH','Clerk#000000193',0,'furiously special theodolites wake blith'), +(293,31,'F',37248.78,'1992-10-02','2-HIGH','Clerk#000000629',0,'regular instructions grow bold, u'), +(294,52,'F',30059.47,'1993-07-16','3-MEDIUM','Clerk#000000499',0,'idly ironic deposits must have to haggle deposits. blithel'), +(295,19,'F',89345.99,'1994-09-29','2-HIGH','Clerk#000000155',0,'doggedly final requests nag carefull'), +(320,1,'O',39835.54,'1997-11-21','2-HIGH','Clerk#000000573',0,'carefully silent ideas do solve final, express instructions. quickly final p'), +(321,124,'F',62251.15,'1993-03-21','3-MEDIUM','Clerk#000000289',0,'quickly silent requests affix sl'), +(322,134,'F',127068.89,'1992-03-19','1-URGENT','Clerk#000000158',0,'carefully unusual pinto beans lose carefully. even instructions ac'), +(323,40,'F',79683.42,'1994-03-26','1-URGENT','Clerk#000000959',0,'even, regular instructions'), +(324,106,'F',26868.85,'1992-03-20','1-URGENT','Clerk#000000352',0,'regular theodolites boost quickly along the ironic, quick realms.'), +(325,41,'F',71543.41,'1993-10-17','5-LOW','Clerk#000000844',0,'carefully fluffy forges about the express, ir'), +(326,76,'O',229165.17,'1995-06-04','2-HIGH','Clerk#000000466',0,'regular theodolites was car'), +(327,145,'P',24468.16,'1995-04-17','5-LOW','Clerk#000000992',0,'fluffily ironic deposits across the ironically regular ideas are '), +(352,107,'F',16003.86,'1994-03-08','2-HIGH','Clerk#000000932',0,'regular, regular pinto beans haggle sly'), +(353,2,'F',179984.42,'1993-12-31','5-LOW','Clerk#000000449',0,'even ideas haggle excuses? slyly ironic packages wake alongside of the qu'), +(354,139,'O',157062.7,'1996-03-14','2-HIGH','Clerk#000000511',0,'quickly special packages inside the slyly unusual pain'), +(355,71,'F',69447.25,'1994-06-14','5-LOW','Clerk#000000532',0,'carefully even instructio'), +(356,148,'F',162786.67,'1994-06-30','4-NOT SPECIFIED','Clerk#000000944',0,'fluffily pending theo'), +(357,61,'O',98723.11,'1996-10-09','2-HIGH','Clerk#000000301',0,'carefully bold theodolites cajole f'), +(358,4,'F',226806.66,'1993-09-20','2-HIGH','Clerk#000000392',0,'deposits sublate carefully at t'), +(359,79,'F',142891.22,'1994-12-19','3-MEDIUM','Clerk#000000934',0,'furiously final foxes are. regular,'), +(384,115,'F',122785.82,'1992-03-03','5-LOW','Clerk#000000206',0,'regular packages haggle furiously; idle requests wake carefu'), +(385,34,'O',50724.06,'1996-03-22','5-LOW','Clerk#000000600',0,'asymptotes wake silent, silent'), +(386,61,'F',90380.4,'1995-01-25','2-HIGH','Clerk#000000648',0,'quickly pending instructions unwind furiously theodolites. final package'), +(387,4,'O',130647.18,'1997-01-26','4-NOT SPECIFIED','Clerk#000000768',0,'blithely even accounts according to the even packag'), +(388,46,'F',120533.46,'1992-12-16','4-NOT SPECIFIED','Clerk#000000356',0,'accounts wake against the braids. silent accounts snooze slyly blithely ironi'), +(389,127,'F',1984.14,'1994-02-17','2-HIGH','Clerk#000000062',0,'pending, bold packages boost blithely final package'); +INSERT INTO orders VALUES +(390,103,'O',168562.27,'1998-04-07','5-LOW','Clerk#000000404',0,'blithely even pinto beans against the ironic packages boost qu'), +(391,112,'F',13282.23,'1994-11-17','2-HIGH','Clerk#000000256',0,'furiously special deposits wake blithely. qu'), +(416,41,'F',71362.5,'1993-09-27','5-LOW','Clerk#000000294',0,'excuses boost permanently around the carefully pe'), +(417,55,'F',91982.29,'1994-02-06','3-MEDIUM','Clerk#000000468',0,'pending, regular pinto beans after the final, express accounts boost'), +(418,95,'P',33124.96,'1995-04-13','4-NOT SPECIFIED','Clerk#000000643',0,'quiet, bold ideas a'), +(419,118,'O',111597.96,'1996-10-01','3-MEDIUM','Clerk#000000376',0,'accounts sleep quickly slyly bo'), +(420,91,'O',198039.23,'1995-10-31','4-NOT SPECIFIED','Clerk#000000756',0,'slyly final deposits sublate after the quickly pending deposits'), +(421,40,'F',1084.38,'1992-02-22','5-LOW','Clerk#000000405',0,'ironic, even account'), +(422,74,'O',106045.89,'1997-05-31','4-NOT SPECIFIED','Clerk#000000049',0,'carefully even packages use'), +(423,104,'O',26981.31,'1996-06-01','1-URGENT','Clerk#000000674',0,'blithely unusual dugouts play quickly along the blithely regular theo'), +(448,149,'O',114978.03,'1995-08-21','3-MEDIUM','Clerk#000000597',0,'furiously even requests nag carefully. '), +(449,97,'O',41605.63,'1995-07-20','2-HIGH','Clerk#000000841',0,'final, express requests sleep permanent requests. spe'), +(450,49,'P',153386.61,'1995-03-05','4-NOT SPECIFIED','Clerk#000000293',0,'deposits wake regular, ironic instructions. bli'), +(451,100,'O',104664.4,'1998-05-25','5-LOW','Clerk#000000048',0,'final foxes nag. regul'), +(452,61,'O',2007.48,'1997-10-14','1-URGENT','Clerk#000000498',0,'theodolites should n'), +(453,46,'O',216826.73,'1997-05-26','5-LOW','Clerk#000000504',0,'furiously even deposits use inside the excuses.'), +(454,49,'O',23198.24,'1995-12-27','5-LOW','Clerk#000000890',0,'fluffily final accounts after the special, ironic pinto '), +(455,13,'O',138010.76,'1996-12-04','1-URGENT','Clerk#000000796',0,'even instructions hagg'), +(480,73,'F',20530.97,'1993-05-08','5-LOW','Clerk#000000004',0,'final accounts poach carefully. quickly final platelets boost quickly even ide'), +(481,31,'F',117827.18,'1992-10-08','2-HIGH','Clerk#000000230',0,'ruthlessly ironic packages nag furiously across the slyly regula'), +(482,127,'O',136634.34,'1996-03-26','1-URGENT','Clerk#000000295',0,'blithely regular as'), +(483,35,'O',39793.05,'1995-07-11','2-HIGH','Clerk#000000025',0,'bold theodolites sl'), +(484,55,'O',219920.62,'1997-01-03','3-MEDIUM','Clerk#000000545',0,'fluffily even deposits run foxes; regular packages afte'), +(485,101,'O',110432.76,'1997-03-26','2-HIGH','Clerk#000000105',0,'regular, bold asymptotes sleep boldly. carefu'), +(486,52,'O',185968.15,'1996-03-11','4-NOT SPECIFIED','Clerk#000000803',0,'quickly final foxes across the expre'), +(487,109,'F',48502.79,'1992-08-18','1-URGENT','Clerk#000000086',0,'ironic, express pinto be'), +(512,64,'P',124661.48,'1995-05-20','5-LOW','Clerk#000000814',0,'quickly unusual foxes was fluffily slyly even accounts. pac'), +(513,61,'O',63703.92,'1995-05-01','2-HIGH','Clerk#000000522',0,'always final sentiments haggle furiously around the fluffily ruthles'), +(514,76,'O',104585.77,'1996-04-04','2-HIGH','Clerk#000000094',0,'enticingly quick escapades wake slyly. final acc'), +(515,142,'F',153720.22,'1993-08-29','4-NOT SPECIFIED','Clerk#000000700',0,'slyly unusual ideas subla'), +(516,44,'O',10677.86,'1998-04-21','2-HIGH','Clerk#000000305',0,'quickly final foxes accord'), +(517,10,'O',82197.79,'1997-04-07','5-LOW','Clerk#000000359',0,'deposits wake always slyly regular requests. blithely '), +(518,145,'O',223537.09,'1998-02-08','2-HIGH','Clerk#000000768',0,'slyly even ideas hang quickly. carefully final instructi'), +(519,64,'O',95731.5,'1997-10-31','1-URGENT','Clerk#000000985',0,'quick depths are! slyly express requests along the carefully ironic '), +(544,94,'F',47627.89,'1993-02-17','2-HIGH','Clerk#000000145',0,'slyly ironic attainments sleep blith'); +INSERT INTO orders VALUES +(545,64,'O',23476.12,'1995-11-07','2-HIGH','Clerk#000000537',0,'even, regular packa'), +(546,145,'O',14790.37,'1996-11-01','2-HIGH','Clerk#000000041',0,'final notornis detect slyly fluffily express deposits. brav'), +(547,100,'O',96855.29,'1996-06-22','3-MEDIUM','Clerk#000000976',0,'bold instructions print fluffily carefully id'), +(548,124,'F',99088.75,'1994-09-21','1-URGENT','Clerk#000000435',0,'quickly regular accounts daz'), +(549,110,'F',141679.41,'1992-07-13','1-URGENT','Clerk#000000196',0,'carefully regular foxes integrate ironic, fina'), +(550,25,'O',33123.28,'1995-08-02','1-URGENT','Clerk#000000204',0,'carefully even asymptotes sleep furiously sp'), +(551,91,'O',46355.83,'1995-05-30','1-URGENT','Clerk#000000179',0,'unusual, final accounts use above the special excuses. final depo'), +(576,31,'O',18307.45,'1997-05-13','3-MEDIUM','Clerk#000000955',0,'pending theodolites about the carefu'), +(577,56,'F',34768.68,'1994-12-19','5-LOW','Clerk#000000154',0,'blithely unusual packages sl'), +(578,94,'O',70392.02,'1997-01-10','5-LOW','Clerk#000000281',0,'blithely pending asymptotes wake quickly across the carefully final'), +(579,68,'O',120828.12,'1998-03-11','2-HIGH','Clerk#000000862',0,'slyly even requests cajole slyly. sil'), +(580,61,'O',88219.12,'1997-07-05','2-HIGH','Clerk#000000314',0,'final ideas must have to are carefully quickly furious requests'), +(581,70,'O',126066,'1997-02-23','4-NOT SPECIFIED','Clerk#000000239',0,'carefully regular dolphins cajole ruthlessl'), +(582,50,'O',129004.81,'1997-10-21','1-URGENT','Clerk#000000378',0,'quietly ironic pinto beans wake carefully. ironic accounts across the dol'), +(583,49,'O',127817.38,'1997-03-19','3-MEDIUM','Clerk#000000792',0,'blithely final accounts can use. even, final packages thrash '), +(608,26,'O',62567.99,'1996-02-28','3-MEDIUM','Clerk#000000995',0,'carefully ironic dinos'), +(609,127,'F',21088.59,'1994-06-01','3-MEDIUM','Clerk#000000348',0,'furiously final braids cajole quickly accounts. regul'), +(610,52,'O',175142.28,'1995-08-02','1-URGENT','Clerk#000000610',0,'slyly special instructions use slyly abo'), +(611,106,'F',73907.63,'1993-01-27','1-URGENT','Clerk#000000401',0,'instructions are furiously despite the slyly special pla'), +(612,82,'F',145695.42,'1992-10-21','3-MEDIUM','Clerk#000000759',0,'bold pinto beans wake furiously pinto beans. pending pinto beans poac'), +(613,139,'O',33396.35,'1995-06-18','2-HIGH','Clerk#000000172',0,'carefully pending packages are bravely am'), +(614,134,'F',218116.21,'1992-12-01','2-HIGH','Clerk#000000388',0,'final dolphins nod. slyly ironic fo'), +(615,67,'F',32890.89,'1992-05-09','5-LOW','Clerk#000000388',0,'slyly express instructions alongside of the q'), +(640,97,'F',145495.62,'1993-01-23','2-HIGH','Clerk#000000433',0,'theodolites cajole slyly among the even excuses. unusual theodolites '), +(641,133,'F',120626.49,'1993-08-30','5-LOW','Clerk#000000175',0,'final packages haggle carefully. brave foxes sleep blithel'), +(642,40,'F',22994.51,'1993-12-16','3-MEDIUM','Clerk#000000357',0,'quickly unusual theodolites sleep. regular pinto beans affix theodol'), +(643,58,'P',180396.95,'1995-03-25','2-HIGH','Clerk#000000354',0,'requests cajole. ruthlessly even frays sleep slyly pending ideas. careful'), +(644,8,'F',201268.06,'1992-05-01','1-URGENT','Clerk#000000550',0,'carefully regular dependencies lose quickl'), +(645,115,'F',234763.73,'1994-12-03','2-HIGH','Clerk#000000090',0,'fluffily express accounts cajole request'), +(646,52,'F',142070.65,'1994-11-22','2-HIGH','Clerk#000000203',0,'express, ironic packages are quickly. fluffi'), +(647,143,'O',56449.23,'1997-08-07','1-URGENT','Clerk#000000270',0,'regular packages could b'), +(672,109,'F',89877.09,'1994-04-14','5-LOW','Clerk#000000106',0,'thinly special deposits use s'), +(673,80,'F',21137.08,'1994-03-10','1-URGENT','Clerk#000000448',0,'blithely bold foxes should have to sleep quickly ca'), +(674,34,'F',27204.6,'1992-08-29','5-LOW','Clerk#000000448',0,'slyly ironic courts will na'); +INSERT INTO orders VALUES +(675,13,'O',125188.72,'1997-07-31','2-HIGH','Clerk#000000168',0,'fluffily special accounts sublate packages. furiously express package'), +(676,38,'O',163966.67,'1996-12-13','2-HIGH','Clerk#000000248',0,'ironic pinto beans above the'), +(677,124,'F',147915.68,'1993-11-24','3-MEDIUM','Clerk#000000824',0,'carefully furious packages after the furiously ironic requests x-ray bli'), +(678,131,'F',135761.05,'1993-02-27','5-LOW','Clerk#000000530',0,'furiously regular foxe'), +(679,49,'O',8945.03,'1995-12-15','2-HIGH','Clerk#000000853',0,'deposits nag. furiously regular ideas sleep alongside of the even requests. '), +(704,85,'O',56210.26,'1996-11-21','3-MEDIUM','Clerk#000000682',0,'furiously regular accounts integrate blithely. carefully unusual pinto beans '), +(705,43,'O',83773.49,'1997-02-13','4-NOT SPECIFIED','Clerk#000000294',0,'slyly ironic theodolites according t'), +(706,148,'O',23973.6,'1995-09-09','1-URGENT','Clerk#000000448',0,'regular, regular requests wak'), +(707,118,'F',58218.35,'1994-11-20','3-MEDIUM','Clerk#000000199',0,'instructions cajole qui'), +(708,32,'O',100445.59,'1998-07-03','3-MEDIUM','Clerk#000000101',0,'carefully ironic requests thrash'), +(709,37,'O',72055.87,'1998-04-21','1-URGENT','Clerk#000000461',0,'quickly final excuses sleep quickly. sly'), +(710,133,'F',208974.42,'1993-01-02','5-LOW','Clerk#000000026',0,'slyly ironic accounts haggle blithely according to the ideas. regular foxe'), +(711,64,'F',92484.7,'1993-09-23','4-NOT SPECIFIED','Clerk#000000856',0,'frays use carefully across the carefully express dugouts; slyly busy the'), +(736,47,'O',130204.17,'1998-06-21','5-LOW','Clerk#000000881',0,'carefully final pinto beans solve slyly '), +(737,121,'F',12984.85,'1992-04-26','5-LOW','Clerk#000000233',0,'blithely regular accounts sublate abou'), +(738,22,'F',114145.18,'1993-03-02','4-NOT SPECIFIED','Clerk#000000669',0,'ironic, even accounts are furiously final accounts. regular accounts'), +(739,1,'O',159171.69,'1998-05-31','5-LOW','Clerk#000000900',0,'carefully thin packages against the regular orbits haggle slyly fina'), +(740,44,'O',83490.99,'1995-07-16','3-MEDIUM','Clerk#000000583',0,'evenly unusual ideas doubt'), +(741,106,'O',47985.98,'1998-07-07','2-HIGH','Clerk#000000295',0,'blithely ironic requests'), +(742,103,'F',207632.55,'1994-12-23','5-LOW','Clerk#000000543',0,'furiously bold requests cajole. requests sleep qui'), +(743,79,'O',23614.89,'1996-10-04','4-NOT SPECIFIED','Clerk#000000933',0,'carefully express deposits against the slyly even dugou'), +(768,98,'O',220636.82,'1996-08-20','3-MEDIUM','Clerk#000000411',0,'furiously regular p'), +(769,80,'F',43092.76,'1993-06-02','3-MEDIUM','Clerk#000000172',0,'furiously express dependencies sl'), +(770,32,'O',64271.75,'1998-05-23','5-LOW','Clerk#000000572',0,'quickly bold deposits wake furiously against the'), +(771,46,'O',105302.05,'1995-06-17','1-URGENT','Clerk#000000105',0,'fluffily regular epitaphs cajole furious'), +(772,97,'F',128234.96,'1993-04-17','2-HIGH','Clerk#000000430',0,'regularly silent asymptotes wake'), +(773,133,'F',146862.27,'1993-09-26','3-MEDIUM','Clerk#000000307',0,'furiously ironic accounts are above the quickly regul'), +(774,80,'O',145857.6,'1995-12-04','1-URGENT','Clerk#000000883',0,'regular instructions nag carefully blithely even'), +(775,134,'F',59455.61,'1995-03-18','1-URGENT','Clerk#000000191',0,'carefully express deposits wake-- quickly even accounts cajol'), +(800,56,'O',87892.38,'1998-07-14','2-HIGH','Clerk#000000213',0,'slyly ironic gifts over the regular, express ideas cajole quickly among t'), +(801,118,'F',127717.72,'1992-02-18','1-URGENT','Clerk#000000186',0,'theodolites sleep above the careful'), +(802,137,'F',156381.95,'1995-01-05','1-URGENT','Clerk#000000516',0,'express pinto beans wake across the pending '), +(803,16,'O',27629.66,'1997-04-29','5-LOW','Clerk#000000260',0,'blithely pending gifts according to the busy, ironic re'), +(804,50,'F',94400.43,'1993-03-12','3-MEDIUM','Clerk#000000931',0,'furiously final pinto beans impress careful'); +INSERT INTO orders VALUES +(805,127,'O',90042.41,'1995-07-05','4-NOT SPECIFIED','Clerk#000000856',0,'busy, regular foxes '), +(806,131,'O',26839.16,'1996-06-20','2-HIGH','Clerk#000000240',0,'ironic pinto beans wake quickly acro'), +(807,145,'F',222392.53,'1993-11-24','3-MEDIUM','Clerk#000000012',0,'express packages according to the quickly special '), +(832,29,'F',68494.08,'1992-04-19','5-LOW','Clerk#000000495',0,'blithely even accounts cajole slyly dolphins; slyly bold requests i'), +(833,56,'F',49033.69,'1994-02-13','3-MEDIUM','Clerk#000000437',0,'blithely final foxes sleep quickly abo'), +(834,43,'F',46459.92,'1994-05-23','3-MEDIUM','Clerk#000000805',0,'furiously regular pinto beans are carefully. even'), +(835,65,'O',62430.67,'1995-10-08','4-NOT SPECIFIED','Clerk#000000416',0,'deposits mold slyly furiously even accounts? slyly ironic re'), +(836,70,'O',72843.48,'1996-11-25','4-NOT SPECIFIED','Clerk#000000729',0,'slyly unusual deposits affix'), +(837,116,'F',60918.41,'1994-06-15','4-NOT SPECIFIED','Clerk#000000563',0,'furiously final instructions use ironic foxes. even packages s'), +(838,17,'O',82918.36,'1998-01-29','5-LOW','Clerk#000000213',0,'slyly regular ideas cajole. blithely ruthless patterns snooze ag'), +(839,28,'O',70182.63,'1995-08-08','1-URGENT','Clerk#000000951',0,'blithely express deposits are slyly'), +(864,139,'O',74710.74,'1997-08-17','1-URGENT','Clerk#000000036',0,'carefully regular pinto beans wake fluffily. sly'), +(865,4,'F',70430.54,'1993-05-04','3-MEDIUM','Clerk#000000337',0,'requests are across the regular excuses. final, brave dependencies kindle aro'), +(866,40,'F',4766.19,'1992-11-28','3-MEDIUM','Clerk#000000718',0,'closely regular dependencies boost fluffily after the pending foxes. carefull'), +(867,26,'F',7471.75,'1993-11-16','3-MEDIUM','Clerk#000000877',0,'regular, unusual theodolites according to the daringly pending'), +(868,104,'F',127345.45,'1992-06-09','4-NOT SPECIFIED','Clerk#000000782',0,'doggedly final theodolites wake furiously qui'), +(869,136,'O',58932.19,'1997-01-12','2-HIGH','Clerk#000000245',0,'ironic, regular requests sleep alongside of the regularly regular p'), +(870,34,'F',40492.37,'1993-06-20','4-NOT SPECIFIED','Clerk#000000123',0,'special, ironic asymptotes'), +(871,16,'O',172861.58,'1995-11-15','5-LOW','Clerk#000000882',0,'regular deposits across the requests haggle quickly carefully regular somas. b'), +(896,2,'F',169847.63,'1993-03-09','1-URGENT','Clerk#000000187',0,'furiously ironic instructions lose quickly. ironic foxes cajole slyly. iron'), +(897,49,'P',57697.44,'1995-03-20','1-URGENT','Clerk#000000316',0,'evenly regular asymptotes above the slyly final packages haggle a'), +(898,55,'F',101020.75,'1993-06-03','2-HIGH','Clerk#000000611',0,'even packages integrate unusual requests. careful attainments sleep'), +(899,109,'O',125562.09,'1998-04-08','5-LOW','Clerk#000000575',0,'unusual, even pinto beans wake slyly along the'), +(900,46,'F',120073.51,'1994-10-01','4-NOT SPECIFIED','Clerk#000000060',0,'unusual, final depths cajole car'), +(901,13,'O',81826.12,'1998-07-21','4-NOT SPECIFIED','Clerk#000000929',0,'carefully even excuses cajole furiously blithely bold requests. blithely regul'), +(902,10,'F',37348.62,'1994-07-27','4-NOT SPECIFIED','Clerk#000000811',0,'ironic deposits print above the bold deposits. slow, ironic frays cajole. pe'), +(903,11,'O',109351.87,'1995-07-07','4-NOT SPECIFIED','Clerk#000000793',0,'ironic frays x-ray slyly alongside of the furiously regular platelet'), +(928,67,'F',228136.49,'1995-03-02','5-LOW','Clerk#000000450',0,'fluffily pending requests boo'), +(929,83,'F',109301.02,'1992-10-02','2-HIGH','Clerk#000000160',0,'deposits sleep furiously fluffily pending foxes. ironic, silent accounts'), +(930,131,'F',199102.23,'1994-12-17','1-URGENT','Clerk#000000004',0,'quickly regular foxes after the silent, pending pinto beans cajole blit'), +(931,103,'F',117909.23,'1992-12-07','1-URGENT','Clerk#000000881',0,'final deposits cajole slyly slyly ironic deposits. regu'); +INSERT INTO orders VALUES +(932,41,'O',40234.5,'1997-05-16','2-HIGH','Clerk#000000218',0,'dependencies detect even requests. regular dependencies s'), +(933,97,'F',71349.3,'1992-08-05','4-NOT SPECIFIED','Clerk#000000752',0,'fluffily ironic instructions cajole quickly along the fu'), +(934,52,'O',17213.59,'1996-07-03','1-URGENT','Clerk#000000229',0,'furious excuses across the fin'), +(935,50,'O',97733.87,'1997-09-24','5-LOW','Clerk#000000180',0,'ideas are. furiously ironic ideas are regularl'), +(960,35,'F',63537.13,'1994-09-21','3-MEDIUM','Clerk#000000120',0,'blithely final requests use. blithely dogged packages sleep across '), +(961,56,'P',158893.16,'1995-06-04','4-NOT SPECIFIED','Clerk#000000720',0,'fluffily unusual foxes cajole blithely spe'), +(962,37,'F',98258.73,'1994-05-06','5-LOW','Clerk#000000463',0,'bold, blithe requests grow. carefully silent pearls affix furiously'), +(963,26,'F',53287.25,'1994-05-26','3-MEDIUM','Clerk#000000497',0,'fluffily unusual accounts sleep. accounts engage. quickly final requ'), +(964,76,'O',131146.47,'1995-05-20','3-MEDIUM','Clerk#000000657',0,'blithely enticing courts'), +(965,70,'P',41758.44,'1995-05-15','5-LOW','Clerk#000000218',0,'unusual, even packages play besides the regular ideas. sl'), +(966,14,'O',120516.93,'1998-04-30','2-HIGH','Clerk#000000239',0,'carefully ironic the'), +(967,110,'F',179287.95,'1992-06-21','3-MEDIUM','Clerk#000000167',0,'fluffily pending platelets nag slyly after the carefully speci'), +(992,55,'O',133665.12,'1997-11-11','3-MEDIUM','Clerk#000000875',0,'quickly silent platelets sleep. depo'), +(993,80,'O',198238.65,'1995-09-10','3-MEDIUM','Clerk#000000894',0,'accounts are quickly. f'), +(994,2,'F',41433.48,'1994-04-20','5-LOW','Clerk#000000497',0,'ironic, dogged ideas haggle slyly ironic requests. requests sleep. unusual, bo'), +(995,116,'P',135157.92,'1995-05-31','3-MEDIUM','Clerk#000000439',0,'quietly regular depend'), +(996,71,'O',47447.63,'1997-12-29','1-URGENT','Clerk#000000497',0,'bold, final platelets haggle carefully. theodolites alongside of the ironi'), +(997,109,'O',27561.82,'1997-05-19','2-HIGH','Clerk#000000651',0,'furiously express deposits wake furiously against the express theodolit'), +(998,32,'F',65269.38,'1994-11-26','4-NOT SPECIFIED','Clerk#000000956',0,'slyly special deposits across the f'), +(999,61,'F',145249.13,'1993-09-05','5-LOW','Clerk#000000464',0,'furiously final theodolites sleep blithely above '), +(1024,4,'O',176084.63,'1997-12-23','5-LOW','Clerk#000000903',0,'carefully careful warhorses sleep slyly: carefull'), +(1025,103,'F',82034.03,'1995-05-05','2-HIGH','Clerk#000000376',0,'quickly final deposits are q'), +(1026,73,'O',36464.76,'1997-06-04','5-LOW','Clerk#000000223',0,'regular packages wake quickly final accounts. furiously '), +(1027,128,'F',112770.89,'1992-06-03','3-MEDIUM','Clerk#000000241',0,'fluffily silent instructions wake furiously '), +(1028,70,'F',153864.67,'1994-01-01','2-HIGH','Clerk#000000131',0,'unusual deposits after the deposits cajole furi'), +(1029,130,'F',47440.91,'1994-06-21','2-HIGH','Clerk#000000700',0,'quickly even platelets ought to ca'), +(1030,134,'F',16346.94,'1994-06-15','5-LOW','Clerk#000000422',0,'slyly regular deposits cajole theodolites'), +(1031,4,'F',128024.71,'1994-09-01','3-MEDIUM','Clerk#000000448',0,'furiously unusual accounts may cajole quickly among the e'), +(1056,28,'F',38446.39,'1995-02-11','1-URGENT','Clerk#000000125',0,'furiously ironic packages cajole qu'), +(1057,76,'F',108107.42,'1992-02-20','1-URGENT','Clerk#000000124',0,'furiously even packages about the bold, permanent accounts slee'), +(1058,53,'F',89359.11,'1993-04-26','3-MEDIUM','Clerk#000000373',0,'decoys are blithely slyly ironic requests. regular, regular foxes'), +(1059,127,'F',198360.22,'1994-02-27','1-URGENT','Clerk#000000104',0,'express deposits sublate regular warhorses. furiously even orbits haggle b'), +(1060,140,'F',121994.04,'1993-02-21','3-MEDIUM','Clerk#000000989',0,'carefully regular requests affix blithely. blithely ironic '); +INSERT INTO orders VALUES +(1061,103,'O',166947.75,'1998-05-15','5-LOW','Clerk#000000576',0,'pending accounts after the even, final d'), +(1062,106,'O',39805.04,'1997-01-15','1-URGENT','Clerk#000000152',0,'final, ironic packages wake sly'), +(1063,37,'F',41392.31,'1994-04-02','2-HIGH','Clerk#000000024',0,'even pinto beans are ruthless, special accounts. '), +(1088,148,'F',47120.41,'1992-05-21','5-LOW','Clerk#000000347',0,'silent ideas use blithely alongside of the carefully ironic requests. blith'), +(1089,49,'O',103192.74,'1996-05-04','4-NOT SPECIFIED','Clerk#000000226',0,'deposits thrash blithely. final theodolites according '), +(1090,19,'O',32929.3,'1997-11-15','2-HIGH','Clerk#000000300',0,'asymptotes impress furious'), +(1091,83,'O',35795.22,'1996-08-27','1-URGENT','Clerk#000000549',0,'ironic dependencies doze b'), +(1092,124,'P',85552.21,'1995-03-04','3-MEDIUM','Clerk#000000006',0,'regular ideas cajole bold accounts. furiously even notornis sl'), +(1093,101,'O',79189.58,'1997-07-31','4-NOT SPECIFIED','Clerk#000000159',0,'theodolites are slyly pending requests. slyly blithe packages ar'), +(1094,145,'O',9006.25,'1997-12-24','3-MEDIUM','Clerk#000000570',0,'bold requests above the deposits wake quickly accord'), +(1095,145,'O',178491.24,'1995-08-22','3-MEDIUM','Clerk#000000709',0,'blithely regular foxes h'), +(1120,140,'O',107958.62,'1997-11-07','3-MEDIUM','Clerk#000000319',0,'regular, final packages breach carefully. dogged'), +(1121,29,'O',241837.88,'1997-01-13','3-MEDIUM','Clerk#000000541',0,'slyly even ideas use against the slyly unusual dependencies: speci'), +(1122,121,'O',179747.47,'1997-01-10','1-URGENT','Clerk#000000083',0,'unusual dolphins use blithely against th'), +(1123,73,'O',93259.93,'1996-08-03','3-MEDIUM','Clerk#000000929',0,'furiously final instructions use furiously ironic req'), +(1124,80,'O',141858.97,'1998-07-30','5-LOW','Clerk#000000326',0,'fluffily regular deposits affi'), +(1125,25,'F',80438.38,'1994-10-27','2-HIGH','Clerk#000000510',0,'furiously final dependencies are about the regular, final pinto beans. even t'), +(1126,145,'O',59982.31,'1998-01-28','4-NOT SPECIFIED','Clerk#000000928',0,'carefully regular dependencies above t'), +(1127,58,'O',103320.91,'1995-09-19','4-NOT SPECIFIED','Clerk#000000397',0,'quickly ironic packages doubt furiousl'), +(1152,49,'F',51775.54,'1994-08-14','4-NOT SPECIFIED','Clerk#000000496',0,'accounts use furiously against the busily final deposits. '), +(1153,121,'O',220727.97,'1996-04-18','5-LOW','Clerk#000000059',0,'blithely even deposits sleep quickly. blithel'), +(1154,37,'F',192417.85,'1992-02-15','1-URGENT','Clerk#000000268',0,'silent, ironic dependencies wake carefully pending deposits. fur'), +(1155,149,'O',126902.81,'1997-10-06','2-HIGH','Clerk#000000164',0,'quickly unusual platelets are. ironi'), +(1156,133,'O',217682.81,'1996-10-19','1-URGENT','Clerk#000000200',0,'slyly sly deposits at the asymptotes kindle blithely th'), +(1157,97,'O',85394.06,'1998-01-14','4-NOT SPECIFIED','Clerk#000000207',0,'furiously idle pinto beans are slyly. carefully regular '), +(1158,142,'O',31075.51,'1996-06-30','2-HIGH','Clerk#000000549',0,'final ideas poach. final, ironic foxes sleep caref'), +(1159,70,'F',55553.68,'1992-09-18','3-MEDIUM','Clerk#000000992',0,'furiously regular ideas after the furiously regular sentiments do'), +(1184,89,'O',39700.29,'1997-10-26','5-LOW','Clerk#000000777',0,'furiously bold deposits cajole carefully dolphins. furiously'), +(1185,74,'F',47033.21,'1992-08-24','5-LOW','Clerk#000000344',0,'blithely unusual realms pr'), +(1186,59,'O',82026.18,'1996-08-15','4-NOT SPECIFIED','Clerk#000000798',0,'final, careful deposits cajole blithely? caref'), +(1187,134,'F',85948.02,'1992-11-20','3-MEDIUM','Clerk#000000047',0,'ironic instructions about the enticingly slow request'), +(1188,20,'O',54655.07,'1996-04-11','2-HIGH','Clerk#000000256',0,'slyly even ideas wake furiously furiously final foxes? blithely final i'), +(1189,46,'F',71017.99,'1994-04-09','1-URGENT','Clerk#000000243',0,'carefully even instructions'); +INSERT INTO orders VALUES +(1190,13,'O',31043.39,'1997-03-16','5-LOW','Clerk#000000575',0,'furiously bold requests boost carefully along the exp'), +(1191,112,'O',28623.04,'1995-11-07','3-MEDIUM','Clerk#000000011',0,'ideas after the depen'), +(1216,122,'F',68056.57,'1992-12-07','5-LOW','Clerk#000000918',0,'ironic theodolites '), +(1217,7,'F',40982.08,'1992-04-26','4-NOT SPECIFIED','Clerk#000000538',0,'regular, even courts need to boost:'), +(1218,10,'F',99834.47,'1994-06-20','4-NOT SPECIFIED','Clerk#000000994',0,'slyly even requests are slyly. blithely '), +(1219,28,'O',10163.56,'1995-10-05','3-MEDIUM','Clerk#000000800',0,'slyly bold deposits cajole pending foxes. bold, special requests about the exp'), +(1220,49,'O',122157.14,'1996-08-29','1-URGENT','Clerk#000000712',0,'regular deposits cajole carefully deposits. blithely'), +(1221,14,'F',117397.16,'1992-04-19','4-NOT SPECIFIED','Clerk#000000852',0,'bold requests maintain. final orbits among the blithely regular pinto beans '), +(1222,10,'F',47623.94,'1993-02-05','3-MEDIUM','Clerk#000000811',0,'regular, bold pinto beans are quickly pending waters. carefully regul'), +(1223,10,'O',26714.67,'1996-05-25','4-NOT SPECIFIED','Clerk#000000238',0,'requests boost slyly '), +(1248,49,'F',210713.88,'1992-01-02','1-URGENT','Clerk#000000890',0,'deposits are. slyly express asympt'), +(1249,149,'F',45889.09,'1994-01-05','1-URGENT','Clerk#000000095',0,'accounts nag blithely. furiously ironic ideas impress. requests ha'), +(1250,37,'F',12907.62,'1992-09-29','4-NOT SPECIFIED','Clerk#000000652',0,'quietly regular deposits wake fluffily. regular requests'), +(1251,38,'O',109536.55,'1997-10-30','1-URGENT','Clerk#000000276',0,'furiously regular deposits haggle according to the express '), +(1252,149,'O',93403.05,'1997-08-04','5-LOW','Clerk#000000348',0,'quickly ironic instructions cajole carefu'), +(1253,115,'F',92730.74,'1993-01-26','1-URGENT','Clerk#000000775',0,'requests haggle carefully along the carefu'), +(1254,70,'O',94649.25,'1995-12-22','1-URGENT','Clerk#000000607',0,'packages about the s'), +(1255,122,'F',62518.31,'1994-05-30','4-NOT SPECIFIED','Clerk#000000798',0,'carefully bold theodolites haggle against the special requ'), +(1280,97,'F',91664.85,'1993-01-11','5-LOW','Clerk#000000160',0,'silently express asymptotes cajole? quickly fin'), +(1281,62,'F',165454.51,'1994-12-11','1-URGENT','Clerk#000000430',0,'quickly final deposits sleep slyly pinto beans. furiously sil'), +(1282,116,'F',61297.42,'1992-02-29','4-NOT SPECIFIED','Clerk#000000168',0,'carefully final accounts sleep blithe'), +(1283,118,'O',202623.92,'1996-08-30','4-NOT SPECIFIED','Clerk#000000260',0,'final, final accounts affix furiously special accounts. blithely'), +(1284,134,'O',106122.38,'1996-01-07','2-HIGH','Clerk#000000492',0,'ironic dugouts breach carefully quickly unus'), +(1285,11,'F',139124.72,'1992-06-01','1-URGENT','Clerk#000000423',0,'final packages haggle permanently. accounts affix above the r'), +(1286,109,'F',207291.83,'1993-05-14','4-NOT SPECIFIED','Clerk#000000939',0,'slyly ironic deposits haggle'), +(1287,19,'F',131432.42,'1994-07-05','2-HIGH','Clerk#000000288',0,'furiously unusual dinos use furiously ca'), +(1312,112,'F',58111,'1994-05-19','3-MEDIUM','Clerk#000000538',0,'even notornis cajole. furiously ev'), +(1313,148,'F',46598.65,'1994-09-13','1-URGENT','Clerk#000000774',0,'furiously ruthless theodolites cajole slyly-- blithely final accounts sleep '), +(1314,143,'F',56207.66,'1994-05-13','3-MEDIUM','Clerk#000000485',0,'pinto beans boost furiously '), +(1315,22,'O',121935.23,'1998-03-22','5-LOW','Clerk#000000840',0,'final packages nag across the carefully ironic theodolites. carefully regular '), +(1316,16,'F',163746.47,'1993-12-03','1-URGENT','Clerk#000000857',0,'special, final depths above the platelets wake fluffily fur'), +(1317,100,'P',139714.71,'1995-05-19','2-HIGH','Clerk#000000373',0,'carefully enticing packages nag quickly inside the slyly ironic ideas. even'), +(1318,128,'O',81663.65,'1998-06-27','3-MEDIUM','Clerk#000000581',0,'carefully final packages affix slyly. carefully'); +INSERT INTO orders VALUES +(1319,32,'O',31103.83,'1996-09-27','2-HIGH','Clerk#000000257',0,'packages wake carefully before'), +(1344,17,'F',43809.37,'1992-04-16','5-LOW','Clerk#000000178',0,'slyly regular accounts affix furiously abov'), +(1345,95,'F',111207.93,'1992-10-28','5-LOW','Clerk#000000447',0,'regular deposits on the final depo'), +(1346,76,'F',171975.62,'1992-06-18','2-HIGH','Clerk#000000374',0,'ironic, final platelets cajole furiously dep'), +(1347,41,'O',173444.6,'1997-06-20','5-LOW','Clerk#000000977',0,'carefully bold deposits wake! bold requests sleep. furiously express t'), +(1348,19,'O',94135.77,'1998-04-18','5-LOW','Clerk#000000206',0,'special instructions haggle after the blithely specia'), +(1349,64,'O',46376.09,'1997-10-26','1-URGENT','Clerk#000000543',0,'carefully even deposits breach carefully. '), +(1350,52,'F',49305.98,'1993-08-24','1-URGENT','Clerk#000000635',0,'quiet, quick packages haggle deposits. r'), +(1351,106,'O',24637.96,'1998-04-20','1-URGENT','Clerk#000000012',0,'carefully final ideas haggle. ironic foxes around the regular, brave accoun'), +(1376,47,'O',23984.88,'1997-05-04','4-NOT SPECIFIED','Clerk#000000730',0,'ironic gifts are quickly furiously re'), +(1377,20,'O',108334.3,'1998-04-24','4-NOT SPECIFIED','Clerk#000000625',0,'pinto beans poach furiously sl'), +(1378,20,'O',118495.12,'1996-03-09','4-NOT SPECIFIED','Clerk#000000705',0,'quiet requests according to the slyly spec'), +(1379,65,'O',84627.76,'1998-05-25','5-LOW','Clerk#000000861',0,'platelets haggle ac'), +(1380,137,'O',94969.41,'1996-07-07','3-MEDIUM','Clerk#000000969',0,'quickly brave pinto beans above the idea'), +(1381,127,'O',58212.22,'1998-05-25','3-MEDIUM','Clerk#000000107',0,'special accounts along the even deposits sleep even ideas. quickly ironic wat'), +(1382,133,'F',173522.71,'1993-08-17','5-LOW','Clerk#000000241',0,'blithely express dependenci'), +(1383,121,'F',34797.72,'1993-04-27','2-HIGH','Clerk#000000785',0,'asymptotes after the even pinto beans cajole express accounts. slyly fina'), +(1408,55,'O',183965.61,'1997-12-26','4-NOT SPECIFIED','Clerk#000000942',0,'ironic deposits sleep slowly. blithely '), +(1409,143,'F',72440.52,'1992-12-31','4-NOT SPECIFIED','Clerk#000000065',0,'quickly special somas haggle requests. '), +(1410,113,'O',114879.19,'1997-04-12','5-LOW','Clerk#000000123',0,'instructions about the blithely express theodolites wake ironically'), +(1411,95,'F',164462.61,'1994-12-21','2-HIGH','Clerk#000000566',0,'slyly special packages sleep. furiously express deposits nod qui'), +(1412,53,'F',78676.54,'1993-03-13','4-NOT SPECIFIED','Clerk#000000083',0,'carefully even pains boost slyly against the eve'), +(1413,91,'O',75733.58,'1997-06-14','3-MEDIUM','Clerk#000000342',0,'quickly special deposits poach ironically about the quickly final pinto beans'), +(1414,77,'O',38057.81,'1995-08-16','1-URGENT','Clerk#000000883',0,'pending pinto beans against the sp'), +(1415,79,'F',24654.79,'1994-05-29','4-NOT SPECIFIED','Clerk#000000601',0,'quickly even asymptotes nag blithely. furiously spec'), +(1440,98,'O',50201.16,'1995-08-10','5-LOW','Clerk#000000956',0,'pending, silent deposits among the never even packages sleep slyly express dep'), +(1441,122,'O',156477.94,'1997-03-06','4-NOT SPECIFIED','Clerk#000000156',0,'special packages across the'), +(1442,112,'F',7108.12,'1994-07-05','4-NOT SPECIFIED','Clerk#000000935',0,'regular requests sleep fu'), +(1443,44,'O',44672.03,'1996-12-16','5-LOW','Clerk#000000185',0,'dinos are. slyly special realms kindle evenly'), +(1444,134,'F',207907.6,'1994-12-06','3-MEDIUM','Clerk#000000783',0,'pending packages cajole. slyly bold accounts atop the s'), +(1445,115,'F',154653.32,'1995-01-10','3-MEDIUM','Clerk#000000211',0,'ironic accounts haggle. quickly special ideas after the '), +(1446,41,'O',27663.16,'1998-02-16','5-LOW','Clerk#000000274',0,'deposits mold special deposits. furiously final frets integrate slyly regular'), +(1447,91,'F',108171.38,'1992-10-15','2-HIGH','Clerk#000000880',0,'bold, silent requests nag furiously above the fluffily final deposits.'); +INSERT INTO orders VALUES +(1472,149,'O',65331.05,'1996-10-06','5-LOW','Clerk#000000303',0,'accounts according to the ironic pinto beans lose carefully about the'), +(1473,94,'O',80624.38,'1997-03-17','3-MEDIUM','Clerk#000000960',0,'blithely bold accounts sleep furiously brav'), +(1474,70,'F',51697.18,'1995-01-09','1-URGENT','Clerk#000000438',0,'ironic deposits against the ironic packages are above the slyly unusua'), +(1475,5,'O',185496.66,'1997-11-12','2-HIGH','Clerk#000000972',0,'furiously final dolphin'), +(1476,145,'O',18795.62,'1996-06-27','2-HIGH','Clerk#000000673',0,'furiously pending requests affix slyly. expr'), +(1477,76,'O',231831.35,'1997-08-24','5-LOW','Clerk#000000612',0,'furiously pending requests boost furiously regular theodolites. slo'), +(1478,50,'O',20791.5,'1997-08-03','2-HIGH','Clerk#000000827',0,'carefully even asymptotes along the requests poach about the quickly fur'), +(1479,16,'O',31471.04,'1995-12-16','4-NOT SPECIFIED','Clerk#000000697',0,'accounts use after the final requests. furiously even foxes cajole furio'), +(1504,2,'F',89399.4,'1992-08-28','3-MEDIUM','Clerk#000000381',0,'slyly unusual ideas about the packages are'), +(1505,37,'F',55892.35,'1992-08-21','2-HIGH','Clerk#000000544',0,'thin pinto beans along the regular pinto beans nag carefully regul'), +(1506,148,'F',195844.84,'1992-09-21','3-MEDIUM','Clerk#000000620',0,'special deposits integrate slyly slyly pendin'), +(1507,121,'F',96166.92,'1993-10-14','3-MEDIUM','Clerk#000000305',0,'slyly final ideas wake carefully after th'), +(1508,103,'O',151282.65,'1998-04-10','5-LOW','Clerk#000000117',0,'quickly even deposits wake f'), +(1509,64,'F',180455.98,'1993-07-08','5-LOW','Clerk#000000770',0,'bold, express deposits wake. quickly pending pinto beans cajole car'), +(1510,53,'O',154590.05,'1996-09-17','5-LOW','Clerk#000000128',0,'quickly special packages might haggle. slyly ironic asympto'), +(1511,79,'O',59651.38,'1996-12-22','4-NOT SPECIFIED','Clerk#000000386',0,'slyly even instructions detect blithel'), +(1536,94,'O',5184.26,'1997-01-26','3-MEDIUM','Clerk#000000117',0,'express accounts print carefully '), +(1537,109,'F',108317.51,'1992-02-15','4-NOT SPECIFIED','Clerk#000000862',0,'furiously final accounts use! slyly regular req'), +(1538,29,'O',179554.41,'1995-06-18','4-NOT SPECIFIED','Clerk#000000258',0,'fluffily special dependencies grow. requests sleep '), +(1539,112,'F',39612.63,'1995-03-10','5-LOW','Clerk#000000840',0,'slyly final accounts alongside of the quickly regular accounts are at the r'), +(1540,16,'F',128014.15,'1992-08-05','2-HIGH','Clerk#000000927',0,'slyly regular dependencies alongside of'), +(1541,94,'P',47286.32,'1995-05-18','1-URGENT','Clerk#000000906',0,'blithely ironic dugouts according to the daring packages sleep daringly fin'), +(1542,143,'F',132972.24,'1993-09-15','3-MEDIUM','Clerk#000000435',0,'accounts use fluffi'), +(1543,52,'O',139047.22,'1997-02-20','1-URGENT','Clerk#000000398',0,'fluffily regular pinto bea'), +(1568,17,'O',76119.72,'1997-01-30','4-NOT SPECIFIED','Clerk#000000554',0,'slyly bold excuses detect care'), +(1569,104,'O',87803.55,'1998-04-02','5-LOW','Clerk#000000786',0,'slyly regular pinto beans sleep slyl'), +(1570,124,'O',35589.57,'1998-03-16','1-URGENT','Clerk#000000745',0,'ironic packages above the regular foxe'), +(1571,103,'F',151404.78,'1992-12-05','2-HIGH','Clerk#000000565',0,'carefully bold accounts haggle bli'), +(1572,11,'O',47232.79,'1996-02-24','2-HIGH','Clerk#000000994',0,'furiously even theodolites sleep regu'), +(1573,148,'F',86918.57,'1992-12-28','2-HIGH','Clerk#000000940',0,'quickly regular pinto beans cajole slyly fluffily fina'), +(1574,134,'O',179923.54,'1996-12-12','3-MEDIUM','Clerk#000000809',0,'slyly regular platelets are across the carefully pending dep'), +(1575,145,'O',197031.52,'1995-09-13','3-MEDIUM','Clerk#000000497',0,'blithely even accounts are slyly sly, final foxes. slyly sil'), +(1600,94,'F',130515.61,'1993-03-03','3-MEDIUM','Clerk#000000627',0,'blithely ironic packages among the blithely fin'); +INSERT INTO orders VALUES +(1601,53,'F',73962.95,'1994-08-27','5-LOW','Clerk#000000469',0,'packages dazzle deposits. final packages use sometimes regular foxes! q'), +(1602,1,'F',4225.26,'1993-08-05','5-LOW','Clerk#000000660',0,'final, regular account'), +(1603,2,'F',29305.47,'1993-07-31','4-NOT SPECIFIED','Clerk#000000869',0,'quickly final dolphins sleep fluffily silent idea'), +(1604,113,'F',107139.29,'1993-07-17','5-LOW','Clerk#000000512',0,'ironic, bold pinto beans are carefully pending p'), +(1605,58,'O',130687.64,'1998-04-24','4-NOT SPECIFIED','Clerk#000000616',0,'instructions sleep above the slyly special packages. bold requests across t'), +(1606,53,'O',115877.4,'1997-04-17','4-NOT SPECIFIED','Clerk#000000550',0,'furiously final packages serve slyly. express, '), +(1607,149,'O',166335.03,'1995-12-16','2-HIGH','Clerk#000000498',0,'carefully even instructions doze against the slyly final pinto beans. ironic'), +(1632,67,'O',183286.33,'1997-01-08','3-MEDIUM','Clerk#000000351',0,'foxes are slyly. th'), +(1633,16,'O',52359.51,'1995-10-14','2-HIGH','Clerk#000000666',0,'slyly express foxes cajole. carefully ironic accounts use carefully. quick'), +(1634,70,'O',145898.47,'1996-09-10','1-URGENT','Clerk#000000360',0,'final, unusual dependencies integrate slyly'), +(1635,4,'O',70232.26,'1997-02-13','3-MEDIUM','Clerk#000000958',0,'accounts nag silent '), +(1636,79,'O',172021.87,'1997-06-17','3-MEDIUM','Clerk#000000457',0,'blithely silent foxes wake furiously'), +(1637,73,'F',180912.15,'1995-02-08','4-NOT SPECIFIED','Clerk#000000189',0,'blithely regular deposits wake am'), +(1638,139,'O',172436.3,'1997-08-13','2-HIGH','Clerk#000000643',0,'pending asymptotes around the quickly '), +(1639,5,'O',104166.56,'1995-08-20','4-NOT SPECIFIED','Clerk#000000939',0,'fluffily silent packages use. ca'), +(1664,64,'O',178060.22,'1996-03-03','1-URGENT','Clerk#000000090',0,'slyly final platelets'), +(1665,76,'F',4819.91,'1994-05-08','2-HIGH','Clerk#000000920',0,'furiously bold frets against the blithely ironic accounts'), +(1666,95,'O',128367.97,'1995-10-18','1-URGENT','Clerk#000000849',0,'furiously ironic accounts are. slyly sly theodolites dou'), +(1667,5,'O',125030.37,'1997-10-10','2-HIGH','Clerk#000000103',0,'final theodolites affix furiously about the blithely final instr'), +(1668,142,'O',137576.19,'1997-07-12','4-NOT SPECIFIED','Clerk#000000148',0,'accounts sleep thinly. slyly regular ideas above the regular accounts cajole'), +(1669,2,'O',24362.39,'1997-06-09','3-MEDIUM','Clerk#000000663',0,'final courts alongside of the even, ironic pinto beans b'), +(1670,25,'O',89999.72,'1997-05-24','2-HIGH','Clerk#000000320',0,'even platelets impress regularly furiousl'), +(1671,35,'O',104391.11,'1996-07-27','4-NOT SPECIFIED','Clerk#000000275',0,'slyly regular courts sleep slyly slyly bold foxes.'), +(1696,4,'O',102665.03,'1998-01-08','4-NOT SPECIFIED','Clerk#000000041',0,'furiously silent deposits nag furiously. regular, ironic dep'), +(1697,76,'O',122621.31,'1996-10-07','1-URGENT','Clerk#000000815',0,'ironic ideas nag slyl'), +(1698,40,'O',141118.87,'1997-04-23','2-HIGH','Clerk#000000432',0,'busy ideas affix busily blithely b'), +(1699,85,'F',66408.29,'1993-12-30','1-URGENT','Clerk#000000125',0,'even theodolites sleep furiously quickly even deposits. pending pint'), +(1700,65,'O',89143.36,'1996-06-15','3-MEDIUM','Clerk#000000328',0,'carefully final ideas after the fluffily even requests haggle acr'), +(1701,130,'F',72835.95,'1992-05-19','2-HIGH','Clerk#000000395',0,'pinto beans grow furiously about the unusual warhor'), +(1702,67,'P',194119.31,'1995-05-07','2-HIGH','Clerk#000000300',0,'quickly unusual ideas engage'), +(1703,134,'F',121220.59,'1993-01-28','3-MEDIUM','Clerk#000000463',0,'bold accounts boost. furiously even pa'), +(1728,64,'O',131604.34,'1996-05-22','2-HIGH','Clerk#000000711',0,'slyly final deposits u'), +(1729,133,'F',12137.76,'1992-05-19','2-HIGH','Clerk#000000158',0,'blithely special accounts wake blithely '), +(1730,124,'O',150886.49,'1998-07-24','5-LOW','Clerk#000000794',0,'furiously regular theodolites cajole quickly furiously pend'); +INSERT INTO orders VALUES +(1731,128,'O',190490.78,'1996-01-06','1-URGENT','Clerk#000000268',0,'quickly regular requests sleep slyly '), +(1732,146,'F',179854.51,'1993-11-29','5-LOW','Clerk#000000903',0,'quickly special pearls haggle about the fu'), +(1733,148,'O',165489.52,'1996-05-12','2-HIGH','Clerk#000000789',0,'pending deposits boost quickly. '), +(1734,7,'F',44002.53,'1994-06-11','2-HIGH','Clerk#000000722',0,'pending dependencies detect slyly fluffily pendi'), +(1735,22,'F',98541.95,'1992-12-27','1-URGENT','Clerk#000000458',0,'carefully unusual dolphins wa'), +(1760,115,'O',82151.12,'1996-05-17','5-LOW','Clerk#000000917',0,'slyly ironic requests wake about the specia'), +(1761,106,'F',211925.95,'1993-12-24','2-HIGH','Clerk#000000817',0,'express ideas snooze alongside of the special, final'), +(1762,77,'F',202227.17,'1994-08-20','4-NOT SPECIFIED','Clerk#000000653',0,'express requests hag'), +(1763,121,'O',140685.01,'1996-10-29','2-HIGH','Clerk#000000321',0,'carefully even instructions haggle. blith'), +(1764,29,'F',47384.71,'1992-03-25','1-URGENT','Clerk#000000182',0,'blithely special pinto beans wake. '), +(1765,73,'O',36551.43,'1995-12-03','4-NOT SPECIFIED','Clerk#000000490',0,'carefully even deposits are fluffily even pl'), +(1766,139,'O',41032.81,'1996-10-12','2-HIGH','Clerk#000000983',0,'regular requests are. carefully careful theodol'), +(1767,25,'P',136582.6,'1995-03-14','2-HIGH','Clerk#000000327',0,'theodolites sleep enticingly theodolites.'), +(1792,49,'F',107919.86,'1993-11-09','5-LOW','Clerk#000000102',0,'fluffily unusual deposits are blithely packages. regular deposi'), +(1793,19,'F',82504.56,'1992-07-12','4-NOT SPECIFIED','Clerk#000000291',0,'slyly final pinto beans wake carefully. f'), +(1794,140,'O',179462.21,'1997-09-28','1-URGENT','Clerk#000000686',0,'quickly ironic foxes haggle quickly idly final requests. special pinto beans '), +(1795,94,'F',146849.33,'1994-03-19','2-HIGH','Clerk#000000815',0,'carefully regular dependen'), +(1796,47,'F',33755.47,'1992-11-21','2-HIGH','Clerk#000000245',0,'bold platelets wake blithely. ideas across the a'), +(1797,125,'O',51494.47,'1996-05-07','3-MEDIUM','Clerk#000000508',0,'bold accounts nag. furiously even packages boost quickly'), +(1798,52,'O',46393.97,'1997-07-28','1-URGENT','Clerk#000000741',0,'slyly regular requests are. blithely stealthy accounts wake carefully aroun'), +(1799,61,'F',46815.93,'1994-03-07','4-NOT SPECIFIED','Clerk#000000339',0,'ironic accounts haggle blithely about the blithe'), +(1824,49,'F',81351.53,'1994-05-05','1-URGENT','Clerk#000000972',0,'silent instructions detect. final'), +(1825,148,'F',150582.77,'1993-12-05','3-MEDIUM','Clerk#000000345',0,'slyly final packages affix carefully. fluffily unus'), +(1826,82,'F',124719.97,'1992-04-16','4-NOT SPECIFIED','Clerk#000000718',0,'carefully regular platelets are fluffily. packages sleep blithely. spec'), +(1827,106,'O',210113.88,'1996-06-22','4-NOT SPECIFIED','Clerk#000000369',0,'furiously even requests'), +(1828,32,'F',137369.5,'1994-04-18','3-MEDIUM','Clerk#000000840',0,'quietly regular ideas nag quickly. silent, fina'), +(1829,112,'F',127532.2,'1994-05-08','2-HIGH','Clerk#000000537',0,'furiously even dolphins breach above the slyly ironic packages. blithe'), +(1830,133,'F',85122.24,'1995-02-23','1-URGENT','Clerk#000000045',0,'pending asymptotes dazzle silently. requests wake slyly enticing depe'), +(1831,71,'F',58032.77,'1993-12-02','1-URGENT','Clerk#000000854',0,'quickly bold deposits grow unusual dolphins. regular theodolites nag ir'), +(1856,106,'F',189361.42,'1992-03-20','4-NOT SPECIFIED','Clerk#000000952',0,'carefully special pinto beans along'), +(1857,133,'F',102793.59,'1993-01-13','2-HIGH','Clerk#000000083',0,'carefully silent deposits haggle furiously. furi'), +(1858,143,'O',30457.91,'1997-12-13','1-URGENT','Clerk#000000389',0,'furiously final instructions are furi'), +(1859,61,'O',105094.09,'1997-04-11','4-NOT SPECIFIED','Clerk#000000949',0,'accounts wake slyly final '), +(1860,10,'O',9103.4,'1996-04-04','3-MEDIUM','Clerk#000000556',0,'carefully express requests agains'); +INSERT INTO orders VALUES +(1861,70,'F',95063.41,'1994-01-03','3-MEDIUM','Clerk#000000847',0,'slyly even platelets sleep along the carefully final deposits. pains use.'), +(1862,34,'O',97981.06,'1998-02-24','5-LOW','Clerk#000000348',0,'furiously final deposits haggle. blithely regular pac'), +(1863,74,'F',96359.65,'1993-09-23','4-NOT SPECIFIED','Clerk#000000658',0,'quickly bold ideas cajole boldly slyly idle requests. bold, final ideas '), +(1888,121,'F',224724.11,'1993-10-31','4-NOT SPECIFIED','Clerk#000000659',0,'slyly special packages along the regular accounts'), +(1889,25,'O',96431.77,'1997-03-16','1-URGENT','Clerk#000000854',0,'carefully daring ideas cajole deposits. carefully final reques'), +(1890,10,'O',202364.58,'1996-12-18','4-NOT SPECIFIED','Clerk#000000627',0,'blithely pending packages haggle blithely bold courts. s'), +(1891,61,'F',76848.96,'1994-12-15','5-LOW','Clerk#000000495',0,'slyly special theodolites wake around the blith'), +(1892,25,'F',133273.64,'1994-03-26','5-LOW','Clerk#000000733',0,'doggedly bold theodolites along the requests are carefully unusual, special de'), +(1893,125,'O',116792.13,'1997-10-30','2-HIGH','Clerk#000000111',0,'realms about the carefully special requests are blithely accounts. f'), +(1894,76,'F',44387.23,'1992-03-30','1-URGENT','Clerk#000000626',0,'blithely special pinto beans'), +(1895,7,'F',44429.81,'1994-05-30','3-MEDIUM','Clerk#000000878',0,'blithely ironic instructions sleep atop the always regular courts. bold, eve'), +(1920,110,'O',119605.91,'1998-06-24','5-LOW','Clerk#000000018',0,'carefully express asymptotes wake against the blith'), +(1921,88,'F',57584.12,'1994-01-18','3-MEDIUM','Clerk#000000293',0,'blithely final packages about the ironic pinto beans cajole slyly i'), +(1922,56,'O',11575.77,'1996-07-13','3-MEDIUM','Clerk#000000984',0,'quickly regular platelets sleep about the final platelets. fina'), +(1923,136,'O',171128.1,'1997-07-07','1-URGENT','Clerk#000000471',0,'pending, careful packages cajole af'), +(1924,76,'O',169756.19,'1996-09-07','4-NOT SPECIFIED','Clerk#000000823',0,'unusual, regular platelets are carefully'), +(1925,17,'F',146382.71,'1992-03-05','1-URGENT','Clerk#000000986',0,'special, final foxes sleep blithely ac'), +(1926,94,'O',100035.03,'1996-01-31','2-HIGH','Clerk#000000568',0,'furiously regular requests hinder across the deposi'), +(1927,140,'O',23327.88,'1995-09-30','3-MEDIUM','Clerk#000000616',0,'furiously ironic foxes w'), +(1952,67,'F',12896.25,'1994-03-16','2-HIGH','Clerk#000000254',0,'slyly permanent deposits cajole. theodolites boost furiously silent packages. '), +(1953,149,'F',57213.18,'1993-11-30','3-MEDIUM','Clerk#000000891',0,'regular, bold packages cajole furiously'), +(1954,56,'O',158853.63,'1997-05-31','4-NOT SPECIFIED','Clerk#000000104',0,'pending, express forg'), +(1955,13,'F',103085.13,'1992-04-20','1-URGENT','Clerk#000000792',0,'forges are carefully. pending re'), +(1956,127,'F',88704.26,'1992-09-20','4-NOT SPECIFIED','Clerk#000000600',0,'regular instructions cajole quickly pinto beans. accounts '), +(1957,31,'O',77482.87,'1998-07-21','2-HIGH','Clerk#000000639',0,'quick requests haggle. furiously bold asymptotes use above the slyly unusual t'), +(1958,53,'O',176294.34,'1995-09-22','5-LOW','Clerk#000000343',0,'busily ironic platelets integrate about the'), +(1959,43,'O',62277.18,'1997-01-13','4-NOT SPECIFIED','Clerk#000000631',0,'slyly final deposits haggle daringly. special deposits nag across the always'), +(1984,52,'O',79230.47,'1998-04-01','1-URGENT','Clerk#000000416',0,'carefully even requests wake alongsi'), +(1985,7,'F',171522.54,'1994-09-02','4-NOT SPECIFIED','Clerk#000000741',0,'fluffily even foxes dazzle blithely-- final packages'), +(1986,149,'F',34269.96,'1994-05-05','2-HIGH','Clerk#000000609',0,'packages thrash across the pending attainments'), +(1987,100,'F',6406.29,'1994-04-30','2-HIGH','Clerk#000000652',0,'carefully bold deposits against the furiously final packages boos'), +(1988,109,'O',117132.72,'1995-10-06','4-NOT SPECIFIED','Clerk#000000011',0,'regular packages affix furiously after the accounts. regular, iro'); +INSERT INTO orders VALUES +(1989,118,'F',39263.28,'1994-03-16','4-NOT SPECIFIED','Clerk#000000747',0,'blithely even instructions sleep blithely. slyly regu'), +(1990,119,'F',48781.39,'1994-12-16','2-HIGH','Clerk#000000114',0,'slyly busy dependencies above the blithely '), +(1991,19,'F',139854.41,'1992-09-07','4-NOT SPECIFIED','Clerk#000000854',0,'regular accounts against '), +(2016,8,'O',24347.36,'1996-08-16','3-MEDIUM','Clerk#000000641',0,'ideas integrate. furiously pending requests nag carefully. pend'), +(2017,101,'O',70529.27,'1998-05-13','3-MEDIUM','Clerk#000000427',0,'slyly regular depths haggle finally ironic pa'), +(2018,19,'P',25007.95,'1995-04-05','4-NOT SPECIFIED','Clerk#000000920',0,'special instructions cajole blithely special deposit'), +(2019,136,'F',43789.14,'1992-10-23','1-URGENT','Clerk#000000565',0,'furiously special pinto be'), +(2020,73,'F',136162.13,'1993-06-21','3-MEDIUM','Clerk#000000192',0,'furiously even foxes ca'), +(2021,70,'O',27016.74,'1995-07-15','1-URGENT','Clerk#000000155',0,'even, blithe excuses wake blithely. furious'), +(2022,62,'F',206742.11,'1992-03-15','1-URGENT','Clerk#000000268',0,'regular instructions sleep furiously: slyly special reque'), +(2023,118,'F',144123.37,'1992-05-06','5-LOW','Clerk#000000137',0,'bravely unusual requests wake asymptotes. unusual requ'), +(2048,17,'F',33401.77,'1993-11-15','1-URGENT','Clerk#000000934',0,'express accounts cajole blithel'), +(2049,31,'O',153048.74,'1995-12-07','2-HIGH','Clerk#000000859',0,'blithely final packages sleep fur'), +(2050,28,'F',208517.98,'1994-06-02','4-NOT SPECIFIED','Clerk#000000821',0,'slyly express pinto beans after '), +(2051,40,'O',87988.34,'1996-03-18','4-NOT SPECIFIED','Clerk#000000333',0,'depths haggle quickly. fluffily even requests across th'), +(2052,91,'F',141822.19,'1992-04-13','2-HIGH','Clerk#000000767',0,'blithely final packages wake blithely at the ironic, fin'), +(2053,142,'F',125125.57,'1995-02-07','1-URGENT','Clerk#000000717',0,'platelets after the quickl'), +(2054,41,'F',144335.16,'1992-06-08','4-NOT SPECIFIED','Clerk#000000103',0,'pinto beans ought to wake quickly. dependencies sleep i'), +(2055,97,'F',57092.26,'1993-09-04','1-URGENT','Clerk#000000067',0,'slyly silent excuses are enticingly. even, even p'), +(2080,95,'F',45767.69,'1993-06-18','5-LOW','Clerk#000000190',0,'carefully unusual warhorses wake quickly regular accounts. unusual, bold '), +(2081,121,'O',145654.97,'1997-07-05','2-HIGH','Clerk#000000136',0,'slyly even excuses haggle across the stealthily'), +(2082,49,'F',46753.63,'1995-01-10','2-HIGH','Clerk#000000354',0,'special, busy pinto beans wake ruthlessly. spec'), +(2083,101,'F',31795.52,'1993-07-14','3-MEDIUM','Clerk#000000361',0,'regular requests are quickly. never pending dependenci'), +(2084,80,'F',190652.53,'1993-03-17','2-HIGH','Clerk#000000048',0,'furiously final ideas according to the f'), +(2085,49,'F',45311.07,'1993-11-21','3-MEDIUM','Clerk#000000818',0,'ironic orbits wake fluffily blithel'), +(2086,142,'F',188985.18,'1994-10-19','1-URGENT','Clerk#000000046',0,'carefully express dependencies wake quickly. carefully ironic instruc'), +(2087,50,'O',53581.41,'1998-01-31','2-HIGH','Clerk#000000626',0,'regular platelets at the theodolites nag even requests. quickly pendin'), +(2112,64,'O',17986.15,'1997-02-05','2-HIGH','Clerk#000000351',0,'bold accounts sleep slyly after the slyly ironic theodolite'), +(2113,32,'O',65678.21,'1997-11-08','2-HIGH','Clerk#000000527',0,'regular deposits maintain furiously quickly ironic accounts'), +(2114,79,'F',106446.02,'1995-01-16','5-LOW','Clerk#000000751',0,'quickly regular pinto'), +(2115,106,'O',134814.65,'1998-05-23','4-NOT SPECIFIED','Clerk#000000101',0,'even, even notornis use alongside'), +(2116,23,'F',60887.9,'1994-08-26','1-URGENT','Clerk#000000197',0,'furiously express asymptotes breach carefully express, unusual requ'), +(2117,22,'O',145713.03,'1997-04-26','2-HIGH','Clerk#000000887',0,'regular dependencies are. furiously quiet requests snooze slyly above'), +(2118,134,'O',38974.67,'1996-10-09','1-URGENT','Clerk#000000196',0,'unusual accounts enga'); +INSERT INTO orders VALUES +(2119,64,'O',34632.57,'1996-08-20','2-HIGH','Clerk#000000434',0,'final, bold packages m'), +(2144,136,'F',119917.28,'1994-03-29','3-MEDIUM','Clerk#000000546',0,'slyly express requests along the regular, unusual theodolites print '), +(2145,134,'F',18885.35,'1992-10-03','1-URGENT','Clerk#000000886',0,'final, silent requests among the boldly regular dep'), +(2146,118,'F',179686.07,'1992-09-14','4-NOT SPECIFIED','Clerk#000000476',0,'carefully express instructions a'), +(2147,100,'F',91513.79,'1992-09-06','4-NOT SPECIFIED','Clerk#000000424',0,'special pinto beans use. final accounts believe regular foxes. f'), +(2148,130,'F',19612.03,'1995-04-19','4-NOT SPECIFIED','Clerk#000000517',0,'blithely final requests x-ray blithely about the blithely bo'), +(2149,101,'F',105145.4,'1993-03-13','5-LOW','Clerk#000000555',0,'slyly regular accounts was fur'), +(2150,82,'F',166961.06,'1994-06-03','3-MEDIUM','Clerk#000000154',0,'final packages engage blithely regular requests.'), +(2151,58,'O',124608.69,'1996-11-11','3-MEDIUM','Clerk#000000996',0,'final accounts sleep alongside of the carefully pending Tiresias. p'), +(2176,104,'F',87248.17,'1992-11-10','1-URGENT','Clerk#000000195',0,'furiously ironic sentiments past the permanently ironic theodolites unwind'), +(2177,136,'O',183493.42,'1997-01-20','3-MEDIUM','Clerk#000000161',0,'sly accounts sleep among '), +(2178,8,'O',79594.68,'1996-12-12','3-MEDIUM','Clerk#000000656',0,'carefully silent instructions wake according to the fluffil'), +(2179,41,'O',77487.09,'1996-09-07','2-HIGH','Clerk#000000935',0,'carefully ironic courts boost furiously. packages c'), +(2180,76,'O',208481.57,'1996-09-14','4-NOT SPECIFIED','Clerk#000000650',0,'blithe requests nag carefully: slyly silent excuses across the blithe'), +(2181,76,'O',100954.64,'1995-09-13','3-MEDIUM','Clerk#000000814',0,'furiously ironic ideas haggle blithely accordi'), +(2182,23,'F',116003.11,'1994-04-05','2-HIGH','Clerk#000000071',0,'regular pinto beans integrate among the furiousl'), +(2183,113,'O',49841.12,'1996-06-22','1-URGENT','Clerk#000000287',0,'quickly regular ideas wake ironic accounts. even, regul'), +(2208,68,'P',245388.06,'1995-05-01','4-NOT SPECIFIED','Clerk#000000900',0,'blithely express pinto '), +(2209,91,'F',129086.93,'1992-07-10','2-HIGH','Clerk#000000056',0,'slyly ruthless pinto beans inside th'), +(2210,32,'F',31689.46,'1992-01-16','2-HIGH','Clerk#000000941',0,'slyly ironic tithes cajole about the platelets. '), +(2211,92,'F',140031.23,'1994-06-30','2-HIGH','Clerk#000000464',0,'carefully ironic dolphins boost across the furiously reg'), +(2212,118,'F',17231.05,'1994-03-23','3-MEDIUM','Clerk#000000954',0,'slyly bold packages hang fluffily. unusual, regu'), +(2213,122,'F',146136.1,'1993-01-15','4-NOT SPECIFIED','Clerk#000000598',0,'regular, special theodolites sleep '), +(2214,115,'O',150345.63,'1998-05-05','3-MEDIUM','Clerk#000000253',0,'furiously final excuses dazzle. carefully b'), +(2215,40,'O',108239.46,'1996-06-16','4-NOT SPECIFIED','Clerk#000000817',0,'blithely regular theodolites cajole about the final, bold accou'), +(2240,56,'F',174090.3,'1992-03-06','4-NOT SPECIFIED','Clerk#000000622',0,'slyly regular requests among the busily unusual deposits caj'), +(2241,103,'F',165219.08,'1993-05-11','1-URGENT','Clerk#000000081',0,'blithely ruthless accounts dazzle; blithely specia'), +(2242,82,'O',15082.82,'1997-07-20','4-NOT SPECIFIED','Clerk#000000360',0,'carefully final requests wake furiously slyly final pinto beans. carefully'), +(2243,49,'O',10451.97,'1995-06-10','2-HIGH','Clerk#000000813',0,'carefully bold platelets boost around the furiously bold deposits. carefully'), +(2244,127,'F',21207.08,'1993-01-09','1-URGENT','Clerk#000001000',0,'quickly express pinto beans sleep furiously within the final notorni'), +(2245,58,'F',150585.73,'1993-04-28','3-MEDIUM','Clerk#000000528',0,'dependencies nag. quickly bold d'), +(2246,113,'O',85755.84,'1996-05-27','4-NOT SPECIFIED','Clerk#000000739',0,'furiously regular reque'); +INSERT INTO orders VALUES +(2247,95,'F',13491.31,'1992-08-02','4-NOT SPECIFIED','Clerk#000000947',0,'evenly express ideas around the blithely final soma'), +(2272,139,'F',127934.71,'1993-04-13','2-HIGH','Clerk#000000449',0,'slyly ironic packages are about the slyly'), +(2273,136,'O',142291.79,'1996-12-14','5-LOW','Clerk#000000155',0,'braids sleep carefully iro'), +(2274,104,'F',58273.89,'1993-09-04','4-NOT SPECIFIED','Clerk#000000258',0,'carefully pending accounts cajole slyly '), +(2275,149,'F',37398.9,'1992-10-22','4-NOT SPECIFIED','Clerk#000000206',0,'ruthless, ironic instructions affix blithely. bold, regular re'), +(2276,43,'O',141159.63,'1996-04-29','4-NOT SPECIFIED','Clerk#000000821',0,'blithely ironic accounts i'), +(2277,89,'F',79270.23,'1995-01-02','4-NOT SPECIFIED','Clerk#000000385',0,'fluffily regular requests wake quickly.'), +(2278,142,'O',101878.46,'1998-04-25','3-MEDIUM','Clerk#000000186',0,'fluffily regular requests are even requests. spec'), +(2279,80,'F',142322.33,'1993-02-23','3-MEDIUM','Clerk#000000898',0,'even asymptotes sleep silent, regular accounts. ironic ideas doubt along th'), +(2304,46,'F',93769.28,'1994-01-07','4-NOT SPECIFIED','Clerk#000000415',0,'ironic, silent accounts boost furiously final braids. c'), +(2305,43,'F',122964.66,'1993-01-26','2-HIGH','Clerk#000000440',0,'special, pending foxes use slyly against the slyly bold excuses.'), +(2306,28,'O',244704.23,'1995-07-26','2-HIGH','Clerk#000000975',0,'carefully regular accounts believe against the unu'), +(2307,106,'F',59417.76,'1993-06-29','5-LOW','Clerk#000000952',0,'requests ought to us'), +(2308,25,'F',58546.02,'1992-10-25','4-NOT SPECIFIED','Clerk#000000609',0,'even packages haggle blithely across the fluffily ir'), +(2309,100,'O',146933.07,'1995-09-04','5-LOW','Clerk#000000803',0,'bold, final instructions use slyly final, final foxes. final accounts'), +(2310,31,'O',82928.12,'1996-09-20','5-LOW','Clerk#000000917',0,'special, special deposits are after the '), +(2311,73,'P',153233.93,'1995-05-02','2-HIGH','Clerk#000000761',0,'excuses cajole around the furiou'), +(2336,142,'O',22294.51,'1996-01-07','4-NOT SPECIFIED','Clerk#000000902',0,'requests wake-- unusual realms cajole. special requ'), +(2337,142,'O',45704.96,'1997-06-18','4-NOT SPECIFIED','Clerk#000000754',0,'slyly special requests above the final, ironic accounts lose fluffily among '), +(2338,140,'O',28155.92,'1997-09-15','2-HIGH','Clerk#000000951',0,'carefully regular deposits are. boldly fluffy accoun'), +(2339,109,'F',63470.78,'1993-12-15','5-LOW','Clerk#000000847',0,'carefully final accounts across the express pinto beans cajole slyly ironic'), +(2340,65,'O',30778.78,'1996-01-12','1-URGENT','Clerk#000000964',0,'regular instructions use s'), +(2341,82,'F',55950.21,'1993-05-30','5-LOW','Clerk#000000443',0,'blithe packages after the furiously fi'), +(2342,37,'O',104038.78,'1996-06-09','1-URGENT','Clerk#000000615',0,'slyly express frays'), +(2343,73,'O',85381,'1995-08-21','3-MEDIUM','Clerk#000000170',0,'packages detect blithely about the slyly r'), +(2368,13,'F',101240.96,'1993-08-20','1-URGENT','Clerk#000000830',0,'special accounts against the blithely regular'), +(2369,110,'O',73517.91,'1996-12-24','2-HIGH','Clerk#000000752',0,'blithely regular ideas cajole quickly fluffily regular packages. regular, f'), +(2370,142,'F',73924.21,'1994-01-17','1-URGENT','Clerk#000000231',0,'evenly final requests'), +(2371,19,'O',193857.67,'1998-01-07','1-URGENT','Clerk#000000028',0,'regular requests ha'), +(2372,31,'O',104927.66,'1997-11-21','5-LOW','Clerk#000000342',0,'pinto beans eat enticingly excuses. blithely iron'), +(2373,28,'F',55211.04,'1994-03-12','4-NOT SPECIFIED','Clerk#000000306',0,'slyly bold pinto beans use furio'), +(2374,4,'F',115219.88,'1993-10-29','4-NOT SPECIFIED','Clerk#000000081',0,'final, final packages haggle quickly after the special '), +(2375,5,'O',106612.48,'1996-11-20','3-MEDIUM','Clerk#000000197',0,'carefully ironic deposits beyond the regular accounts slee'), +(2400,37,'O',92798.66,'1998-07-25','5-LOW','Clerk#000000782',0,'slyly pending foxes'); +INSERT INTO orders VALUES +(2401,148,'O',88448.24,'1997-07-29','4-NOT SPECIFIED','Clerk#000000531',0,'unusual accounts across the bold theodolites a'), +(2402,67,'O',70403.62,'1996-09-06','4-NOT SPECIFIED','Clerk#000000162',0,'quickly even dependencies above the bo'), +(2403,55,'O',111020.79,'1998-04-11','3-MEDIUM','Clerk#000000820',0,'ironic packages wake caref'), +(2404,77,'O',109077.69,'1997-03-13','4-NOT SPECIFIED','Clerk#000000409',0,'carefully regular requests nag furiously furiously reg'), +(2405,73,'O',115929.14,'1996-12-23','3-MEDIUM','Clerk#000000535',0,'furiously ironic packages are carefully. quickly silent depo'), +(2406,7,'O',182516.77,'1996-10-28','5-LOW','Clerk#000000561',0,'enticing accounts haggle f'), +(2407,55,'O',112843.52,'1998-06-19','2-HIGH','Clerk#000000068',0,'blithely even ideas are after th'), +(2432,103,'O',62661.93,'1996-07-13','1-URGENT','Clerk#000000115',0,'furiously final ideas among the slyly ironic packages cajole carefully sil'), +(2433,31,'F',147071.86,'1994-08-22','4-NOT SPECIFIED','Clerk#000000324',0,'furiously ironic packages wake carefully above the ru'), +(2434,25,'O',123956.25,'1997-04-27','3-MEDIUM','Clerk#000000190',0,'even excuses snooze carefully. slyly ironic foxes alo'), +(2435,73,'F',122490.66,'1993-02-21','5-LOW','Clerk#000000112',0,'final, regular foxes nag. carefully even platelets sleep fluffily! iro'), +(2436,125,'O',73990.08,'1995-09-11','4-NOT SPECIFIED','Clerk#000000549',0,'final foxes cajole after the'), +(2437,85,'F',143411.69,'1993-04-21','4-NOT SPECIFIED','Clerk#000000578',0,'pending deposits integrate fluffily along the regula'), +(2438,13,'F',214494.39,'1993-07-15','2-HIGH','Clerk#000000744',0,'carefully regular accounts cajole fluffily regular dep'), +(2439,55,'O',41811.12,'1997-03-15','2-HIGH','Clerk#000000819',0,'ruthlessly express ideas affix furiously. slyly ironi'), +(2464,145,'O',30495.65,'1997-11-23','5-LOW','Clerk#000000633',0,'carefully regular foxes cajo'), +(2465,34,'O',180737.75,'1995-06-24','1-URGENT','Clerk#000000078',0,'ironic, pending deposi'), +(2466,19,'F',161625.5,'1994-03-06','1-URGENT','Clerk#000000424',0,'slyly final deposits accordi'), +(2467,35,'O',7231.91,'1995-07-16','4-NOT SPECIFIED','Clerk#000000914',0,'pending frays haggle blithely slyly expr'), +(2468,112,'O',160627.01,'1997-06-09','4-NOT SPECIFIED','Clerk#000000260',0,'even dependencies wake: ironic, speci'), +(2469,124,'O',192074.23,'1996-11-26','5-LOW','Clerk#000000730',0,'idly bold accounts use'), +(2470,58,'O',104966.33,'1997-04-19','3-MEDIUM','Clerk#000000452',0,'even accounts cajole about the fina'), +(2471,89,'O',34936.31,'1998-03-12','4-NOT SPECIFIED','Clerk#000000860',0,'regular excuses are fluffily above the requests. fu'), +(2496,136,'F',140390.6,'1994-01-09','2-HIGH','Clerk#000000142',0,'slyly bold accounts un'), +(2497,47,'F',171326.48,'1992-08-27','1-URGENT','Clerk#000000977',0,'final ideas across the furiously pending accounts'), +(2498,97,'F',45514.27,'1993-11-08','5-LOW','Clerk#000000373',0,'carefully unusual packages detect slyly. blithely final requests are.'), +(2499,121,'O',147243.86,'1995-09-24','1-URGENT','Clerk#000000277',0,'ironic packages wake carefully about the blithely even requests. ironic'), +(2500,133,'F',131122.82,'1992-08-15','2-HIGH','Clerk#000000447',0,'daring frets boost slyly at the furiously daring foxes. furiously regular acc'), +(2501,67,'O',79380.51,'1997-05-25','5-LOW','Clerk#000000144',0,'slyly unusual tithes sleep furiously ruthless packages. even account'), +(2502,70,'F',33470.4,'1993-05-28','4-NOT SPECIFIED','Clerk#000000914',0,'furiously unusual pinto beans detect. quickly silent dugou'), +(2503,7,'F',183671.08,'1993-06-20','3-MEDIUM','Clerk#000000294',0,'final accounts above the'), +(2528,55,'F',92069.62,'1994-11-20','1-URGENT','Clerk#000000789',0,'blithely even asymptotes may cajole from the fu'), +(2529,136,'O',4104.3,'1996-08-20','2-HIGH','Clerk#000000511',0,'carefully unusual pinto beans cajole accounts. carefully'), +(2530,128,'F',58853.11,'1994-03-21','3-MEDIUM','Clerk#000000291',0,'requests cajole. quickly regular s'); +INSERT INTO orders VALUES +(2531,44,'O',143212.85,'1996-05-06','4-NOT SPECIFIED','Clerk#000000095',0,'silent deposits across the bold'), +(2532,94,'O',116093.49,'1995-10-11','2-HIGH','Clerk#000000498',0,'quiet, unusual warthogs'), +(2533,50,'O',168495.03,'1997-03-24','1-URGENT','Clerk#000000594',0,'finally regular depo'), +(2534,76,'O',202784.54,'1996-07-17','3-MEDIUM','Clerk#000000332',0,'bold, regular foxes around the ironic'), +(2535,121,'F',67018.3,'1993-05-25','5-LOW','Clerk#000000296',0,'carefully even requests along the carefully special foxes affix furio'), +(2560,131,'F',153426.79,'1992-09-05','1-URGENT','Clerk#000000538',0,'carefully ironic platelets a'), +(2561,58,'O',137473.58,'1997-11-14','1-URGENT','Clerk#000000861',0,'never even dependencies are against the ironic requests. ideas detect care'), +(2562,10,'F',136360.37,'1992-08-01','1-URGENT','Clerk#000000467',0,'fluffily final requests haggle quickly '), +(2563,62,'F',168952.1,'1993-11-19','4-NOT SPECIFIED','Clerk#000000150',0,'regular, ironic packages use. slyly even'), +(2564,77,'F',3967.47,'1994-09-09','2-HIGH','Clerk#000000718',0,'even platelets grow slyly aft'), +(2565,56,'O',204438.57,'1998-02-28','3-MEDIUM','Clerk#000000032',0,'quickly special pinto beans hang furiously. ideas affix fu'), +(2566,86,'F',89992.48,'1992-10-10','3-MEDIUM','Clerk#000000414',0,'express, even ideas nod after the even, iro'), +(2567,70,'O',263411.29,'1998-02-27','2-HIGH','Clerk#000000031',0,'furiously regular requests wake above the slyly ironic p'), +(2592,101,'F',8225.96,'1993-03-05','4-NOT SPECIFIED','Clerk#000000524',0,'blithely regular accounts about the final d'), +(2593,92,'F',134726.09,'1993-09-04','2-HIGH','Clerk#000000468',0,'slyly final deposits cajole carefully care'), +(2594,79,'F',94866.39,'1992-12-17','1-URGENT','Clerk#000000550',0,'special theodolites haggle qui'), +(2595,74,'O',173130.2,'1995-12-14','4-NOT SPECIFIED','Clerk#000000222',0,'blithely regular theodolites'), +(2596,43,'O',74940.13,'1996-08-17','1-URGENT','Clerk#000000242',0,'even dependencies haggle quickly foxes! furiously bold in'), +(2597,104,'F',21964.66,'1993-02-04','2-HIGH','Clerk#000000757',0,'furiously final accounts nag furiously carefully regular deposits. ironic f'), +(2598,112,'O',84871.5,'1996-03-05','3-MEDIUM','Clerk#000000391',0,'regular theodolites boost furiously. re'), +(2599,149,'O',62807.13,'1996-11-07','2-HIGH','Clerk#000000722',0,'closely regular accounts are. pending accounts print quickly. ir'), +(2624,52,'O',27148.63,'1996-11-28','5-LOW','Clerk#000000930',0,'furiously unusual ideas integrate slyly. sil'), +(2625,40,'F',39382.74,'1992-10-14','4-NOT SPECIFIED','Clerk#000000386',0,'quickly regular ideas nod carefully fluffily special packages'), +(2626,139,'O',84314.51,'1995-09-08','4-NOT SPECIFIED','Clerk#000000289',0,'furiously pending theodolites are above the c'), +(2627,149,'F',26798.65,'1992-03-24','3-MEDIUM','Clerk#000000181',0,'even dependencies use blithely regular platelets. furiously ironic deposit'), +(2628,56,'F',165655.99,'1993-10-22','5-LOW','Clerk#000000836',0,'accounts are. fluffy deposits cajole slyly '), +(2629,139,'O',96458.03,'1998-04-06','5-LOW','Clerk#000000680',0,'slyly express requests w'), +(2630,85,'F',127132.51,'1992-10-24','5-LOW','Clerk#000000712',0,'ironic packages nag slyly after the express, regular courts. ruthless, unusual'), +(2631,37,'F',63103.32,'1993-09-24','5-LOW','Clerk#000000833',0,'fluffily pending ideas are carefully special accounts. slyly silent request'), +(2656,77,'F',105492.37,'1993-05-04','1-URGENT','Clerk#000000307',0,'ironic, regular pinto beans at the ironic dependencie'), +(2657,25,'O',148176.06,'1995-10-17','2-HIGH','Clerk#000000160',0,'never express theodolites haggle closely. fluffily enticing req'), +(2658,14,'O',163834.46,'1995-09-23','3-MEDIUM','Clerk#000000400',0,'excuses maintain blithely about the furiously unusual'), +(2659,83,'F',79785.52,'1993-12-18','4-NOT SPECIFIED','Clerk#000000758',0,'carefully permanent accounts cajole carefully regularly special pinto be'); +INSERT INTO orders VALUES +(2660,127,'O',16922.51,'1995-08-05','5-LOW','Clerk#000000480',0,'theodolites against the blit'), +(2661,74,'O',106036.84,'1997-01-04','3-MEDIUM','Clerk#000000217',0,'fluffily regular package'), +(2662,37,'O',87689.88,'1996-08-21','3-MEDIUM','Clerk#000000589',0,'final excuses use. bold d'), +(2663,95,'O',35131.8,'1995-09-06','1-URGENT','Clerk#000000950',0,'carefully even packages use blithely. car'), +(2688,98,'F',181077.36,'1992-01-24','2-HIGH','Clerk#000000720',0,'never final packages across the slyly unusual p'), +(2689,103,'F',41552.78,'1992-04-09','4-NOT SPECIFIED','Clerk#000000698',0,'bold, special packages along the slyly'), +(2690,94,'O',224674.27,'1996-03-31','3-MEDIUM','Clerk#000000760',0,'foxes cajole furiously fluffily express theodolit'), +(2691,7,'F',30137.17,'1992-04-30','5-LOW','Clerk#000000439',0,'ironic requests dazzle fl'), +(2692,62,'O',24265.24,'1997-12-02','3-MEDIUM','Clerk#000000878',0,'blithely ruthless instructions nag blithely accordi'), +(2693,19,'O',66158.13,'1996-09-04','1-URGENT','Clerk#000000370',0,'even ideas cajole at the deposits. ideas about the bold platelets a'), +(2694,121,'O',102807.59,'1996-03-14','5-LOW','Clerk#000000722',0,'blithely regular ac'), +(2695,58,'O',138584.2,'1996-08-20','1-URGENT','Clerk#000000697',0,'regular deposits play according to the ironic packages. fi'), +(2720,31,'F',161307.05,'1993-06-08','1-URGENT','Clerk#000000948',0,'blithely silent theodolites haggle carefully. carefully ironic fo'), +(2721,79,'O',59180.25,'1996-01-27','2-HIGH','Clerk#000000401',0,'unusual, even theodolites ca'), +(2722,35,'F',50328.84,'1994-04-09','5-LOW','Clerk#000000638',0,'carefully bold attain'), +(2723,61,'O',104759.25,'1995-10-06','5-LOW','Clerk#000000836',0,'theodolites use slyly regular foxes. excuses against the final a'), +(2724,137,'F',116069.66,'1994-09-14','2-HIGH','Clerk#000000217',0,'blithely silent requests at the slowly final '), +(2725,89,'F',75144.68,'1994-05-21','4-NOT SPECIFIED','Clerk#000000835',0,'requests cajole fluffily. fluffily final packages ha'), +(2726,7,'F',47753,'1992-11-27','5-LOW','Clerk#000000470',0,'final, ironic foxes integr'), +(2727,74,'O',3089.42,'1998-04-19','4-NOT SPECIFIED','Clerk#000000879',0,'regular, bold packages nag furiously above the blithely spec'), +(2752,59,'F',187932.3,'1993-11-19','2-HIGH','Clerk#000000648',0,'furiously even packages along the ironi'), +(2753,16,'F',159720.39,'1993-11-30','2-HIGH','Clerk#000000380',0,'furiously special dugouts after the fur'), +(2754,145,'F',25985.52,'1994-04-03','2-HIGH','Clerk#000000960',0,'unusual, special packag'), +(2755,118,'F',101202.18,'1992-02-07','4-NOT SPECIFIED','Clerk#000000177',0,'furiously unusual instructions use carefully slyly stealthy fo'), +(2756,118,'F',142323.38,'1994-04-18','1-URGENT','Clerk#000000537',0,'express dolphins sleep. slyly ironic accounts sleep furiously regular pack'), +(2757,76,'O',89792.48,'1995-07-20','2-HIGH','Clerk#000000216',0,'furiously unusual foxes use regular, pendin'), +(2758,43,'O',36671.88,'1998-07-12','5-LOW','Clerk#000000863',0,'quickly regular requests nag carefully against the ironic asymptotes. '), +(2759,116,'F',89731.1,'1993-11-25','4-NOT SPECIFIED','Clerk#000000071',0,'pending, pending pinto beans are fluffily unusual d'), +(2784,95,'O',106635.21,'1998-01-07','1-URGENT','Clerk#000000540',0,'blithely pending platelets among the fluffily regular dolphins boost'), +(2785,148,'O',132854.79,'1995-07-21','2-HIGH','Clerk#000000098',0,'ironically express packages detect quickly. ironic, quiet requests haggle; ca'), +(2786,79,'F',178254.66,'1992-03-22','2-HIGH','Clerk#000000976',0,'pending requests use. theodolites alongside of the unusual requests '), +(2787,103,'O',3726.14,'1995-09-30','1-URGENT','Clerk#000000906',0,'theodolites are even, pending deposits-- blithely final asymptotes wake f'), +(2788,124,'F',17172.66,'1994-09-22','1-URGENT','Clerk#000000641',0,'ironic deposits sleep slyly among th'), +(2789,37,'O',219123.27,'1998-03-14','2-HIGH','Clerk#000000972',0,'carefully unusual senti'); +INSERT INTO orders VALUES +(2790,25,'F',177458.97,'1994-08-19','2-HIGH','Clerk#000000679',0,'regular instructions integrate ru'), +(2791,121,'F',156697.55,'1994-10-10','2-HIGH','Clerk#000000662',0,'even, express deposits a'), +(2816,58,'F',42225.53,'1994-09-20','2-HIGH','Clerk#000000289',0,'regular, regular requests across the deposits use blithely among the idly unu'), +(2817,40,'F',71453.85,'1994-04-19','3-MEDIUM','Clerk#000000982',0,'busily bold foxes haggle ev'), +(2818,49,'F',120086.84,'1994-12-12','3-MEDIUM','Clerk#000000413',0,'furiously unusual frets wake carefully'), +(2819,103,'F',66927.16,'1994-05-05','1-URGENT','Clerk#000000769',0,'carefully final foxes are fluffil'), +(2820,19,'F',143813.39,'1994-05-20','3-MEDIUM','Clerk#000000807',0,'slyly ironic foxes nag slyly. fin'), +(2821,118,'F',36592.48,'1993-08-09','3-MEDIUM','Clerk#000000323',0,'regular requests wake. blithely even requests cajole '), +(2822,79,'F',40142.15,'1993-07-26','2-HIGH','Clerk#000000510',0,'slyly final sheaves use car'), +(2823,79,'O',171894.45,'1995-09-09','2-HIGH','Clerk#000000567',0,'bold requests cajole regular packag'), +(2848,70,'F',116258.53,'1992-03-10','1-URGENT','Clerk#000000256',0,'foxes cajole carefully pending, fina'), +(2849,46,'O',180054.29,'1996-04-30','2-HIGH','Clerk#000000659',0,'slowly special theodolites according to the '), +(2850,100,'O',122969.79,'1996-10-02','2-HIGH','Clerk#000000392',0,'final asymptotes haggle slyly regular accoun'), +(2851,145,'O',7859.36,'1997-09-07','5-LOW','Clerk#000000566',0,'special, special accounts sleep. slyly ir'), +(2852,91,'F',99050.81,'1993-01-16','1-URGENT','Clerk#000000740',0,'slyly even ideas shall have to sleep. furiou'), +(2853,94,'F',103641.15,'1994-05-05','2-HIGH','Clerk#000000878',0,'regularly ironic dependencies wake carefully across the blithely express'), +(2854,139,'F',153568.02,'1994-06-27','1-URGENT','Clerk#000000010',0,'slyly ironic asymptotes along the carefully final id'), +(2855,49,'F',48419.58,'1993-04-04','4-NOT SPECIFIED','Clerk#000000973',0,'furiously ironic instru'), +(2880,8,'F',145761.99,'1992-03-15','2-HIGH','Clerk#000000756',0,'blithely silent packages a'), +(2881,100,'F',45695.84,'1992-05-10','5-LOW','Clerk#000000864',0,'blithely regular deposits are according to the silent requests. fu'), +(2882,121,'O',172872.37,'1995-08-22','2-HIGH','Clerk#000000891',0,'ironic dependencies cajole furiously furiously regular accounts? furiousl'), +(2883,121,'F',170360.27,'1995-01-23','5-LOW','Clerk#000000180',0,'blithely even excuses nag quickly. deposits after the blithe'), +(2884,92,'O',71683.84,'1997-10-12','3-MEDIUM','Clerk#000000780',0,'furiously bold theodolites among the ironic, pending accounts'), +(2885,7,'F',146896.72,'1992-09-19','4-NOT SPECIFIED','Clerk#000000280',0,'blithely bold deposits are. fluffily perman'), +(2886,109,'F',94527.23,'1994-11-13','4-NOT SPECIFIED','Clerk#000000619',0,'warhorses sleep blithely busi'), +(2887,109,'O',28571.39,'1997-05-26','5-LOW','Clerk#000000566',0,'requests are. pending, pending hockey players sleep against the dependencie'), +(2912,94,'F',27727.52,'1992-03-12','5-LOW','Clerk#000000186',0,'carefully regular foxes across the platelets '), +(2913,43,'O',130702.19,'1997-07-12','3-MEDIUM','Clerk#000000118',0,'express packages are. requests cajole. bo'), +(2914,109,'F',60867.14,'1993-03-03','3-MEDIUM','Clerk#000000543',0,'slyly final requests cajole slyly. stea'), +(2915,94,'F',96015.13,'1994-03-31','5-LOW','Clerk#000000410',0,'accounts use furiously'), +(2916,8,'O',20182.22,'1995-12-27','2-HIGH','Clerk#000000681',0,'regular dependencies use blithely. even, regular pinto be'), +(2917,91,'O',100714.13,'1997-12-09','4-NOT SPECIFIED','Clerk#000000061',0,'carefully regular frays behind '), +(2918,118,'O',21760.09,'1996-09-08','3-MEDIUM','Clerk#000000439',0,'blithely ironic escapades are furiously ac'), +(2919,53,'F',137223.14,'1993-12-10','2-HIGH','Clerk#000000209',0,'bold, final instructions haggle carefully. fluffily fina'); +INSERT INTO orders VALUES +(2944,14,'O',146581.14,'1997-09-24','4-NOT SPECIFIED','Clerk#000000740',0,'carefully pending dependencies wake quickly blithely furious asymptot'), +(2945,29,'O',223507.72,'1996-01-03','2-HIGH','Clerk#000000499',0,'ruthlessly even pinto bean'), +(2946,125,'O',102226.59,'1996-02-05','5-LOW','Clerk#000000329',0,'slyly special deposits maintain carefully bold accounts. express account'), +(2947,70,'P',43360.95,'1995-04-26','1-URGENT','Clerk#000000464',0,'even, regular excuses are slyly'), +(2948,44,'F',100758.71,'1994-08-23','5-LOW','Clerk#000000701',0,'even instructions us'), +(2949,137,'F',94231.71,'1994-04-12','2-HIGH','Clerk#000000184',0,'furiously express ideas use slyly blithely furious packages. slyly iro'), +(2950,136,'O',183620.33,'1997-07-06','1-URGENT','Clerk#000000833',0,'final, regular pack'), +(2951,74,'O',125509.17,'1996-02-06','2-HIGH','Clerk#000000680',0,'final pinto beans haggle carefully. slyly re'), +(2976,29,'F',145768.47,'1993-12-10','4-NOT SPECIFIED','Clerk#000000159',0,'furiously special accoun'), +(2977,73,'O',25170.88,'1996-08-27','3-MEDIUM','Clerk#000000252',0,'carefully bold pinto be'), +(2978,44,'P',139542.14,'1995-05-03','1-URGENT','Clerk#000000135',0,'even theodolites are furiously after the blithely bold accounts. ironic depe'), +(2979,133,'O',116789.98,'1996-03-23','3-MEDIUM','Clerk#000000820',0,'furiously special sentiments believe fluffily. regu'), +(2980,4,'O',187514.11,'1996-09-14','3-MEDIUM','Clerk#000000661',0,'unusual packages affix blithely. regular instructions acros'), +(2981,49,'O',37776.79,'1998-07-29','5-LOW','Clerk#000000299',0,'theodolites alongside of the furiously final'), +(2982,85,'F',55582.94,'1995-03-19','2-HIGH','Clerk#000000402',0,'slyly pending deposits sleep. ironic instructions detect a'), +(2983,62,'F',58168.07,'1992-01-07','1-URGENT','Clerk#000000278',0,'fluffily bold platelets integrate according to the instructions. pe'), +(3008,40,'O',156018.74,'1995-11-08','3-MEDIUM','Clerk#000000701',0,'express foxes for the unusual deposi'), +(3009,55,'O',108424.94,'1997-02-28','1-URGENT','Clerk#000000205',0,'carefully final accounts use quickly blithely ironic requests. blithely q'), +(3010,8,'O',141647.08,'1996-01-26','2-HIGH','Clerk#000000931',0,'ironic packages boost fluffily furiously regular requests.'), +(3011,91,'F',46418.85,'1992-01-14','5-LOW','Clerk#000000515',0,'slyly ironic pinto beans boost. blithely regular accounts haggle'), +(3012,32,'F',91678.66,'1993-05-05','1-URGENT','Clerk#000000414',0,'carefully ironic warthogs cajole quickly silen'), +(3013,143,'O',156407.4,'1997-02-05','5-LOW','Clerk#000000591',0,'ironic packages after the furi'), +(3014,29,'F',194159.59,'1992-10-30','4-NOT SPECIFIED','Clerk#000000476',0,'blithely final accounts after the ideas cajole carefully p'), +(3015,103,'F',110826.83,'1992-09-27','5-LOW','Clerk#000000013',0,'blithely ruthless deposits sleep quietly ideas. fluffily ironic theodolite'), +(3040,112,'F',119201.64,'1993-04-12','3-MEDIUM','Clerk#000000544',0,'regular accounts cajole. final waters against the fluffily regular foxe'), +(3041,113,'O',23039.46,'1997-06-03','5-LOW','Clerk#000000092',0,'quietly ironic packages will use according to the daring requests. carefully'), +(3042,20,'F',104523.03,'1994-11-21','3-MEDIUM','Clerk#000000573',0,'ironically ironic packages'), +(3043,44,'F',78221.69,'1992-04-25','5-LOW','Clerk#000000137',0,'blithely regular pinto beans abo'), +(3044,53,'O',52433.54,'1996-04-03','2-HIGH','Clerk#000000008',0,'silent, ironic accounts nag furiously blithely pending courts'), +(3045,50,'O',85822.67,'1995-09-27','1-URGENT','Clerk#000000405',0,'final, ironic ideas against the stealthily silent theodolites hag'), +(3046,32,'O',117817.52,'1995-11-30','2-HIGH','Clerk#000000522',0,'fluffily silent deposits haggle furiously a'), +(3047,25,'O',37881.31,'1997-03-21','1-URGENT','Clerk#000000962',0,'blithely ironic she'), +(3072,23,'F',87475.82,'1994-01-30','4-NOT SPECIFIED','Clerk#000000370',0,'final tithes sleep carefully regular, ironic packages. carefully pendi'); +INSERT INTO orders VALUES +(3073,136,'F',151419.5,'1994-01-08','3-MEDIUM','Clerk#000000404',0,'theodolites haggle blithely. slyly final instructions about the f'), +(3074,67,'F',85861.93,'1992-11-01','5-LOW','Clerk#000000546',0,'deposits sublate qu'), +(3075,127,'F',37696.7,'1994-05-07','3-MEDIUM','Clerk#000000433',0,'quietly final ideas must have to cajole furiously u'), +(3076,92,'F',93828.15,'1993-07-23','2-HIGH','Clerk#000000099',0,'accounts wake among the quickly final pinto beans'), +(3077,121,'O',99290.01,'1997-08-06','2-HIGH','Clerk#000000228',0,'slyly unusual tithes according to the ironic, ironic accounts c'), +(3078,49,'F',46310.83,'1993-02-12','2-HIGH','Clerk#000000110',0,'fluffily even excuses br'), +(3079,100,'O',148299.05,'1997-09-12','5-LOW','Clerk#000000505',0,'quickly pending dolphins across the blithely silent '), +(3104,70,'F',102693.61,'1993-09-16','3-MEDIUM','Clerk#000000871',0,'quickly slow packages along the furiously express pinto beans thrash slyly'), +(3105,137,'O',125396.8,'1996-11-13','4-NOT SPECIFIED','Clerk#000000772',0,'blithely bold sauternes haggle. warhorses wake alongside of the care'), +(3106,145,'O',132494.97,'1997-01-12','3-MEDIUM','Clerk#000000729',0,'deposits haggle slyly special accounts. regul'), +(3107,26,'O',107406.26,'1997-08-21','1-URGENT','Clerk#000000669',0,'slyly regular courts print. instructions s'), +(3108,85,'F',63278,'1993-08-05','1-URGENT','Clerk#000000574',0,'furiously unusual dependenci'), +(3109,124,'F',216104.85,'1993-07-24','5-LOW','Clerk#000000936',0,'carefully regular accounts eat furiously ironic, daring re'), +(3110,88,'F',115161.29,'1994-12-17','2-HIGH','Clerk#000000564',0,'regular dolphins nag blithely fluffily fin'), +(3111,133,'O',154383.37,'1995-08-25','5-LOW','Clerk#000000922',0,'evenly ironic packages lose quickly. slyly even requests solve. blithely reg'), +(3136,23,'F',145426.11,'1994-08-10','4-NOT SPECIFIED','Clerk#000000891',0,'special pinto beans are furiously final accounts-- ironic ac'), +(3137,136,'O',8958.65,'1995-07-26','3-MEDIUM','Clerk#000000063',0,'furiously ironic instructions affix abou'), +(3138,139,'F',139579.18,'1994-02-09','4-NOT SPECIFIED','Clerk#000000650',0,'slyly final excuses nag silent, bold platele'), +(3139,17,'F',40975.96,'1992-01-02','3-MEDIUM','Clerk#000000855',0,'slyly even pinto beans above the ca'), +(3140,145,'F',54356.1,'1992-04-09','1-URGENT','Clerk#000000670',0,'pending pinto beans about the furiously bold cou'), +(3141,26,'O',115959.96,'1995-11-10','1-URGENT','Clerk#000000475',0,'packages cajole carefully. slowly ruthless excuses boost furiousl'), +(3142,8,'F',16030.15,'1992-06-28','3-MEDIUM','Clerk#000000043',0,'even, permanent requests wake quickly among t'), +(3143,107,'F',135647.68,'1993-02-17','1-URGENT','Clerk#000000519',0,'regular, special sauternes a'), +(3168,136,'F',69412.71,'1992-01-30','5-LOW','Clerk#000000352',0,'bold, ironic excuses are slowly pending ideas. quickly bold platelets a'), +(3169,19,'F',126804.9,'1993-12-21','3-MEDIUM','Clerk#000000252',0,'quickly silent packages are blithely slyly even '), +(3170,5,'O',190142.17,'1997-11-09','1-URGENT','Clerk#000000288',0,'ironic, unusual multipliers after the packag'), +(3171,47,'F',84405.78,'1993-04-06','5-LOW','Clerk#000000940',0,'furiously special accounts along the '), +(3172,89,'F',121360.83,'1992-06-03','4-NOT SPECIFIED','Clerk#000000771',0,'bold accounts wake furiously ironic pinto beans.'), +(3173,148,'O',64892.73,'1996-08-10','5-LOW','Clerk#000000516',0,'furiously even asymptotes subla'), +(3174,127,'O',92856.91,'1995-11-15','5-LOW','Clerk#000000663',0,'furiously ironic deposits use qui'), +(3175,44,'F',205282.63,'1994-07-15','5-LOW','Clerk#000000629',0,'even, pending excuses wa'), +(3200,13,'O',131103.31,'1996-02-07','1-URGENT','Clerk#000000020',0,'slyly ironic foxes use alongside of the idly ironic deposits. carefully en'), +(3201,97,'F',90755.31,'1993-07-02','4-NOT SPECIFIED','Clerk#000000738',0,'furiously pending pinto beans against the quickly final accounts hinder '); +INSERT INTO orders VALUES +(3202,88,'F',50601.01,'1992-12-24','5-LOW','Clerk#000000067',0,'slyly regular asymptotes among the instructions nod furio'), +(3203,127,'O',49357.72,'1997-11-05','2-HIGH','Clerk#000000493',0,'slyly express requests are bold platelets. regular, specia'), +(3204,10,'F',41573.42,'1992-12-26','1-URGENT','Clerk#000000693',0,'even accounts across the final, pend'), +(3205,148,'F',153637.79,'1992-04-11','5-LOW','Clerk#000000803',0,'fluffily express platelets are according to the deposits. express pinto be'), +(3206,122,'O',64344.86,'1996-08-09','1-URGENT','Clerk#000000755',0,'slyly unusual instructions sleep car'), +(3207,22,'O',133038.59,'1998-02-16','1-URGENT','Clerk#000000695',0,'final instructions wake among'), +(3232,82,'F',55619.01,'1992-10-09','1-URGENT','Clerk#000000314',0,'blithely unusual accounts above the daringly bold tithes hagg'), +(3233,140,'F',54121.92,'1994-10-24','5-LOW','Clerk#000000470',0,'quickly ironic asymptotes affix quickly inside the ironic packages. b'), +(3234,14,'O',147343.68,'1996-04-05','4-NOT SPECIFIED','Clerk#000000367',0,'dependencies haggle along the even'), +(3235,46,'O',104695.09,'1995-11-15','5-LOW','Clerk#000000349',0,'unusual, regular platelets '), +(3236,142,'O',39470.39,'1996-11-06','4-NOT SPECIFIED','Clerk#000000553',0,'ironic requests mold slowly dep'), +(3237,19,'F',10508.12,'1992-06-03','1-URGENT','Clerk#000000606',0,'furiously even requests was furiously. regular'), +(3238,61,'F',41375.69,'1993-02-21','5-LOW','Clerk#000000818',0,'bold dependencies haggle sly'), +(3239,35,'O',156802.8,'1998-01-12','4-NOT SPECIFIED','Clerk#000000619',0,'dogged, silent deposits haggle around the slowly ironic c'), +(3264,94,'O',162634.53,'1996-11-02','5-LOW','Clerk#000000244',0,'carefully close accounts abo'), +(3265,53,'F',43315.15,'1992-06-27','1-URGENT','Clerk#000000265',0,'carefully silent ideas are. ironi'), +(3266,4,'P',68309.28,'1995-03-17','5-LOW','Clerk#000000545',0,'regularly even account'), +(3267,112,'O',33998.9,'1997-01-07','5-LOW','Clerk#000000484',0,'blithely brave somas det'), +(3268,142,'F',36024.96,'1994-06-25','5-LOW','Clerk#000000746',0,'ironic packages wake bl'), +(3269,17,'O',218697.85,'1996-03-01','3-MEDIUM','Clerk#000000378',0,'blithely express deposits boost request'), +(3270,38,'O',166669.86,'1997-05-28','1-URGENT','Clerk#000000375',0,'idly final foxes run dependencies. furiously'), +(3271,34,'F',86534.05,'1992-01-01','1-URGENT','Clerk#000000421',0,'blithely regular accounts sleep furiously after th'), +(3296,148,'F',187553.35,'1994-10-19','3-MEDIUM','Clerk#000000991',0,'blithely express packages across the furiou'), +(3297,139,'F',9679.45,'1992-11-03','2-HIGH','Clerk#000000220',0,'blithely regular deposits a'), +(3298,116,'O',62716.67,'1996-04-17','5-LOW','Clerk#000000241',0,'even, ironic accounts around the blithely express deposits s'), +(3299,91,'F',42867.92,'1993-12-26','3-MEDIUM','Clerk#000000853',0,'slyly idle packages according to the express requests use f'), +(3300,118,'O',27049.22,'1995-07-15','5-LOW','Clerk#000000198',0,'packages cajole carefully. quickly regular pinto beans sleep carefully.'), +(3301,133,'F',48497.09,'1994-09-04','4-NOT SPECIFIED','Clerk#000000325',0,'carefully ironic packages dazzle blithely along the fluffily fina'), +(3302,34,'O',38330.42,'1995-11-14','2-HIGH','Clerk#000000367',0,'furiously regular depths solve carefully quickly daring instruct'), +(3303,145,'O',97758.28,'1997-12-14','4-NOT SPECIFIED','Clerk#000000661',0,'furiously pending deposits wake blithely. ironic, bold theodolite'), +(3328,7,'F',139580.85,'1992-11-19','5-LOW','Clerk#000000384',0,'furiously quick deposits sleep according to the careful'), +(3329,4,'O',46107.7,'1995-07-03','2-HIGH','Clerk#000000236',0,'special platelets cajole careful'), +(3330,7,'F',43255.19,'1994-12-19','1-URGENT','Clerk#000000124',0,'carefully express requests snooze st'), +(3331,91,'F',65189.17,'1993-05-21','2-HIGH','Clerk#000000901',0,'final packages lose furiously. furiously unusual packages hinder blithely acc'); +INSERT INTO orders VALUES +(3332,143,'F',73739.06,'1994-11-05','1-URGENT','Clerk#000000840',0,'quickly regular deposits wake slyly across the ironic pac'), +(3333,92,'F',197973.22,'1992-09-16','4-NOT SPECIFIED','Clerk#000000157',0,'blithely regular asymptotes boost carefully across the unusual foxes.'), +(3334,76,'O',28930.68,'1996-02-18','5-LOW','Clerk#000000532',0,'carefully ironic requests grow. slyly pending instruction'), +(3335,49,'O',112603.34,'1995-10-15','3-MEDIUM','Clerk#000000694',0,'regular, pending tithes along the thin, unusual packages boo'), +(3360,103,'O',168750.48,'1998-01-23','5-LOW','Clerk#000000254',0,'bold, bold warthogs '), +(3361,49,'F',75026.51,'1992-08-23','4-NOT SPECIFIED','Clerk#000000577',0,'special requests above the instructions'), +(3362,140,'O',183176.6,'1995-07-29','5-LOW','Clerk#000000011',0,'ironic accounts sleep alongside of the furiously final foxes. quickly i'), +(3363,52,'O',91017.61,'1995-09-23','2-HIGH','Clerk#000000615',0,'regular, express requests integrate furiously'), +(3364,46,'O',108412.57,'1997-06-21','1-URGENT','Clerk#000000280',0,'pending, regular theod'), +(3365,82,'F',174634.12,'1994-11-09','2-HIGH','Clerk#000000126',0,'unusual deposits haggle about the sly'), +(3366,52,'O',13603.08,'1997-05-18','1-URGENT','Clerk#000000160',0,'instructions haggle furiously according to t'), +(3367,73,'F',101339.68,'1992-12-31','4-NOT SPECIFIED','Clerk#000000029',0,'quickly busy instruction'), +(3392,74,'O',96057.42,'1995-10-28','1-URGENT','Clerk#000000325',0,'fluffily express packages eng'), +(3393,98,'O',183104.71,'1995-07-04','2-HIGH','Clerk#000000076',0,'requests cajole. furiously regular fox'), +(3394,149,'O',162165.94,'1996-05-05','4-NOT SPECIFIED','Clerk#000000105',0,'somas nag carefully above the ironic, regular pint'), +(3395,149,'F',141486.77,'1994-10-30','4-NOT SPECIFIED','Clerk#000000682',0,'pending, silent accounts haggle blithely before the express deposits. slyl'), +(3396,149,'F',196443.16,'1994-05-21','3-MEDIUM','Clerk#000000868',0,'pending, even dolphins cajole furiously. '), +(3397,130,'F',80084.61,'1994-06-23','3-MEDIUM','Clerk#000000048',0,'special, final requests detect pinto bean'), +(3398,67,'O',1147.42,'1996-09-23','1-URGENT','Clerk#000000818',0,'blithely final ideas wake furiously across the th'), +(3399,122,'P',56938.16,'1995-02-28','4-NOT SPECIFIED','Clerk#000000575',0,'theodolites about the'), +(3424,103,'O',42410.57,'1996-08-21','1-URGENT','Clerk#000000190',0,'slyly ironic requests are braids. quickly regular platelets print fluff'), +(3425,115,'O',157040.57,'1996-03-31','4-NOT SPECIFIED','Clerk#000000188',0,'blithely even theodolites wake fu'), +(3426,53,'O',91929.93,'1996-10-16','3-MEDIUM','Clerk#000000283',0,'slyly regular excuses grow furiously blithely final theodolites. final, fi'), +(3427,4,'O',133451.14,'1997-05-29','4-NOT SPECIFIED','Clerk#000000404',0,'carefully final excuses above the ironic theodolites boost furiously expres'), +(3428,10,'O',88047.04,'1996-04-07','5-LOW','Clerk#000000953',0,'foxes are. slyly idle requests haggle furious'), +(3429,146,'O',141902.54,'1997-01-06','4-NOT SPECIFIED','Clerk#000000737',0,'blithely unusual requests serve slyl'), +(3430,113,'F',161066.22,'1994-12-12','4-NOT SPECIFIED','Clerk#000000664',0,'furiously idle courts nag. ironic, pending ideas slee'), +(3431,47,'F',45536.27,'1993-08-22','1-URGENT','Clerk#000000439',0,'even foxes wake care'), +(3456,46,'F',32796.35,'1993-06-01','5-LOW','Clerk#000000924',0,'special, bold deposits haggle. furiously '), +(3457,25,'P',174223.2,'1995-04-27','4-NOT SPECIFIED','Clerk#000000849',0,'permanently pending'), +(3458,95,'F',153069.14,'1994-12-22','2-HIGH','Clerk#000000392',0,'slyly final accounts ha'), +(3459,119,'F',127134.05,'1994-07-28','4-NOT SPECIFIED','Clerk#000000777',0,'blithely unusual orbits thrash slyly. ideas along the furiously '), +(3460,82,'O',245976.74,'1995-10-03','2-HIGH','Clerk#000000078',0,'ironic, bold accounts wake. furiously'), +(3461,100,'F',190960.69,'1993-01-31','1-URGENT','Clerk#000000504',0,'quickly ironic ideas sleep furiously carefully final ideas.'); +INSERT INTO orders VALUES +(3462,133,'O',63590.17,'1997-05-17','3-MEDIUM','Clerk#000000657',0,'requests boost quickly regula'), +(3463,89,'F',85255.56,'1993-08-18','1-URGENT','Clerk#000000545',0,'furiously even deposits solve above the instructions. final id'), +(3488,148,'F',92716.17,'1995-01-08','3-MEDIUM','Clerk#000000694',0,'express deposits across the regular courts are furi'), +(3489,109,'F',62453.97,'1993-07-29','3-MEDIUM','Clerk#000000307',0,'slyly express asymptotes are blithely special, express packages. furiously re'), +(3490,91,'O',100106.96,'1997-05-26','5-LOW','Clerk#000000703',0,'express, pending pinto bea'), +(3491,83,'O',50287.06,'1998-06-24','1-URGENT','Clerk#000000560',0,'even, fluffy ideas haggle slyly blithely pending deposits! special pin'), +(3492,103,'F',168721.45,'1994-11-24','5-LOW','Clerk#000000066',0,'furiously final accounts engage furiously furiously express pinto beans? u'), +(3493,82,'F',41686.1,'1993-08-24','2-HIGH','Clerk#000000887',0,'final, special dependencies are furiously carefully final th'), +(3494,49,'F',136058.7,'1993-04-04','5-LOW','Clerk#000000559',0,'express accounts dazzle after the s'), +(3495,31,'O',58666.79,'1996-02-26','2-HIGH','Clerk#000000441',0,'final packages haggle. pending dependencies detect. final exc'), +(3520,125,'O',151233.65,'1997-08-04','1-URGENT','Clerk#000000023',0,'final pinto beans wake carefully regular theodolites'), +(3521,7,'F',142029.67,'1992-10-26','5-LOW','Clerk#000000812',0,'regular dinos grow furiously regularly pending theodolites. furiously ex'), +(3522,26,'F',151515.08,'1994-09-26','5-LOW','Clerk#000000250',0,'daringly unusual packages wake furiously carefully bol'), +(3523,149,'O',129657.08,'1998-04-07','2-HIGH','Clerk#000000688',0,'pending ideas along the special requests are ironic'), +(3524,94,'F',22767.49,'1992-05-03','2-HIGH','Clerk#000000607',0,'pinto beans cajole after the blithely ironic requests. slyly special inst'), +(3525,109,'O',100749.6,'1995-12-22','4-NOT SPECIFIED','Clerk#000000084',0,'blithely regular accounts unwind about the even requests. i'), +(3526,56,'F',53827.34,'1995-03-16','5-LOW','Clerk#000000364',0,'even ideas haggle furiously furiously final escapades. stealthil'), +(3527,56,'O',145232.09,'1997-06-21','5-LOW','Clerk#000000874',0,'bravely regular deposits wake qui'), +(3552,35,'O',103656.44,'1997-04-23','2-HIGH','Clerk#000000973',0,'blithely bold courts wake slyly blithely regular dinos. even, reg'), +(3553,91,'F',119838.14,'1994-05-18','3-MEDIUM','Clerk#000000270',0,'regular, regular theodolites slee'), +(3554,44,'O',98335.61,'1995-06-17','5-LOW','Clerk#000000931',0,'quickly pending theodolites above the blithely regular '), +(3555,46,'O',134442.37,'1996-07-07','5-LOW','Clerk#000000585',0,'carefully ironic hockey players use quickly bold requests. packages slee'), +(3556,16,'F',114681.55,'1992-09-23','4-NOT SPECIFIED','Clerk#000000140',0,'fluffily unusual requests detect furiously. slyly regular theodolites'), +(3557,121,'F',85477.89,'1992-11-09','2-HIGH','Clerk#000000291',0,'ironic, regular accounts against the quickly regular requests detect along the'), +(3558,28,'O',112912,'1996-02-29','1-URGENT','Clerk#000000841',0,'quickly ironic packages sleep among'), +(3559,106,'F',30722.49,'1992-10-24','3-MEDIUM','Clerk#000000634',0,'furiously final deposits believe according to the pen'), +(3584,13,'O',80487.97,'1997-08-11','1-URGENT','Clerk#000000760',0,'unusual, even accounts after the ideas are above the blithe'), +(3585,139,'F',159015.39,'1994-11-23','2-HIGH','Clerk#000000988',0,'blithely final foxes nag slyly among the blithely regular pinto bean'), +(3586,121,'F',112845.04,'1993-12-05','2-HIGH','Clerk#000000438',0,'slyly ironic packages ac'), +(3587,79,'O',174798.97,'1996-05-10','4-NOT SPECIFIED','Clerk#000000443',0,'deposits snooze slyly among the ironic, ironic d'), +(3588,119,'F',207925.83,'1995-03-19','4-NOT SPECIFIED','Clerk#000000316',0,'furiously unusual platelets wake above the requests. blithely even requests '); +INSERT INTO orders VALUES +(3589,31,'F',39103.37,'1994-05-26','2-HIGH','Clerk#000000023',0,'blithely even packages sleep fluffily carefully even excuses. furiously unusua'), +(3590,149,'P',218482.7,'1995-05-13','5-LOW','Clerk#000000986',0,'final courts are furious'), +(3591,136,'F',98140.86,'1993-12-08','3-MEDIUM','Clerk#000000144',0,'thinly pending accounts boost quickly. blithely regular accoun'), +(3616,128,'F',60933.29,'1994-02-16','4-NOT SPECIFIED','Clerk#000000268',0,'blithely regular deposits among the carefully special requests cajole f'), +(3617,40,'O',126205.42,'1996-03-19','3-MEDIUM','Clerk#000000886',0,'furiously brave theodolites cajole furiously carefully iro'), +(3618,10,'O',136954.81,'1997-12-13','3-MEDIUM','Clerk#000000894',0,'sly packages sleep carefully furiously expr'), +(3619,149,'O',222274.54,'1996-11-20','2-HIGH','Clerk#000000211',0,'carefully ironic accounts use'), +(3620,44,'O',59291.75,'1997-03-07','5-LOW','Clerk#000000124',0,'slyly regular packages haggle quickly. bold asymptotes wake q'), +(3621,142,'F',106150.05,'1993-05-06','3-MEDIUM','Clerk#000000643',0,'regular, even foxes are furiously a'), +(3622,91,'O',109202.9,'1995-11-27','5-LOW','Clerk#000000012',0,'ironic foxes at the carefully final requests wake furiously '), +(3623,4,'O',175017.68,'1996-12-26','1-URGENT','Clerk#000000184',0,'furiously unusual packages haggle f'), +(3648,125,'F',180417.11,'1993-06-17','5-LOW','Clerk#000000717',0,'even platelets wake slyly! packages wake blithely: pending excuses haggl'), +(3649,40,'F',124470.32,'1994-07-06','5-LOW','Clerk#000000349',0,'express, even deposits are slyly s'), +(3650,46,'F',189547.57,'1992-05-28','4-NOT SPECIFIED','Clerk#000000454',0,'furiously pending request'), +(3651,100,'O',113191.45,'1998-04-27','1-URGENT','Clerk#000000222',0,'deposits sleep quickly. carefully unusual dolphins cajole against the even, bo'), +(3652,107,'O',107732.23,'1997-02-25','4-NOT SPECIFIED','Clerk#000000024',0,'carefully final decoys are slyly unusual accoun'), +(3653,40,'F',142866.39,'1994-03-27','1-URGENT','Clerk#000000402',0,'pending packages affix slyly final platelets. carefully express theodolites c'), +(3654,7,'F',222653.54,'1992-06-03','5-LOW','Clerk#000000475',0,'carefully bold accounts sleep furiously after the always bold p'), +(3655,49,'F',74882.22,'1992-10-06','1-URGENT','Clerk#000000815',0,'accounts sleep slyly fu'), +(3680,127,'F',124402.59,'1992-12-10','4-NOT SPECIFIED','Clerk#000000793',0,'quickly unusual requests above the quiet accounts'), +(3681,52,'F',36889.65,'1992-04-04','1-URGENT','Clerk#000000566',0,'final deposits cajole slyly even packages. even, ironic packages '), +(3682,32,'O',67525.43,'1997-01-22','2-HIGH','Clerk#000000001',0,'packages above the furiously final ideas '), +(3683,88,'F',99960.46,'1993-03-04','2-HIGH','Clerk#000000248',0,'slyly pending platele'), +(3684,23,'F',89509.91,'1993-07-20','2-HIGH','Clerk#000000835',0,'ironic, final theodolit'), +(3685,16,'F',154958.89,'1992-01-17','3-MEDIUM','Clerk#000000954',0,'carefully busy somas wake fluffily. carefully pending requests caj'), +(3686,40,'O',82190.77,'1998-07-07','2-HIGH','Clerk#000000175',0,'idle accounts integrate carefully fluffily pending idea'), +(3687,43,'F',99851.38,'1993-02-03','1-URGENT','Clerk#000000585',0,'carefully ironic ideas wake. regular, blithe foxes'), +(3712,64,'F',127527.05,'1992-01-02','2-HIGH','Clerk#000000032',0,'final pinto beans print whithout the packages. slyly even theodolites wake b'), +(3713,149,'O',215342.63,'1998-05-07','3-MEDIUM','Clerk#000000325',0,'slyly ironic requests wake '), +(3714,40,'O',84493.55,'1998-05-01','3-MEDIUM','Clerk#000000595',0,'slyly unusual accounts sleep fur'), +(3715,65,'O',64000.93,'1996-03-18','1-URGENT','Clerk#000000463',0,'furiously final deposits haggle slyly ironic dependencies. special deposi'), +(3716,43,'O',146221.66,'1997-08-19','4-NOT SPECIFIED','Clerk#000000748',0,'carefully bold asymptotes nag furiously ironic ideas! '), +(3717,28,'O',176525.53,'1998-06-03','4-NOT SPECIFIED','Clerk#000000974',0,'furiously regular deposits cajole slyly regular dolphins. bold wat'); +INSERT INTO orders VALUES +(3718,31,'O',63195.54,'1996-10-23','2-HIGH','Clerk#000000016',0,'express, ironic requests according to the even, final deposits haggle quic'), +(3719,118,'O',139902.71,'1997-02-16','2-HIGH','Clerk#000000034',0,'slyly pending courts haggle. ev'), +(3744,65,'F',33085.68,'1992-01-10','3-MEDIUM','Clerk#000000765',0,'final attainments could have to wake carefully after the slyly regul'), +(3745,112,'F',19405.73,'1993-09-29','5-LOW','Clerk#000000181',0,'carefully silent deposits against the idly silent dependencies cajo'), +(3746,74,'F',80018.54,'1994-09-11','4-NOT SPECIFIED','Clerk#000000188',0,'slyly unusual theodolites wake blithely after the regular requests. furiously'), +(3747,149,'O',204355.65,'1996-08-20','1-URGENT','Clerk#000000226',0,'carefully ironic requests alongside of the fluffily final pinto bea'), +(3748,53,'O',83804.38,'1998-02-28','1-URGENT','Clerk#000000156',0,'stealthily bold deposits haggle flu'), +(3749,38,'P',87073.89,'1995-02-24','3-MEDIUM','Clerk#000000639',0,'quickly ironic pains integrate furiously after the special excuses. carefully '), +(3750,97,'P',177181.67,'1995-04-30','3-MEDIUM','Clerk#000000885',0,'slyly express ideas boost. express theodolites wake about the blit'), +(3751,10,'F',202917.72,'1994-04-27','4-NOT SPECIFIED','Clerk#000000925',0,'final, even packages alongside of the unusual accounts in'), +(3776,85,'F',150349.92,'1992-11-20','2-HIGH','Clerk#000000698',0,'quickly unusual deposits haggle quickly after the blithely b'), +(3777,28,'F',82467.29,'1994-04-08','3-MEDIUM','Clerk#000000941',0,'blithely final deposits cajole slyly instructions. blithel'), +(3778,106,'F',221036.31,'1993-05-26','1-URGENT','Clerk#000000187',0,'slyly regular senti'), +(3779,74,'O',31538.94,'1997-01-05','4-NOT SPECIFIED','Clerk#000000670',0,'carefully express accou'), +(3780,41,'O',65385.42,'1996-04-13','5-LOW','Clerk#000000967',0,'blithely ironic packages cajole furiously'), +(3781,139,'O',133864.82,'1996-06-20','1-URGENT','Clerk#000000394',0,'dolphins wake slowly above the reque'), +(3782,65,'O',145096.17,'1996-08-24','1-URGENT','Clerk#000000121',0,'daringly final theodolites was idly s'), +(3783,44,'F',155017.92,'1993-12-06','4-NOT SPECIFIED','Clerk#000000614',0,'blithely regular acco'), +(3808,79,'F',228054.01,'1994-04-24','1-URGENT','Clerk#000000717',0,'ironic, ironic packages breach above the bold, unusual'), +(3809,148,'O',143070.7,'1996-05-01','5-LOW','Clerk#000000646',0,'furiously ironic deposits eat alongside'), +(3810,100,'F',124675.27,'1992-09-17','1-URGENT','Clerk#000000660',0,'furiously final instructions al'), +(3811,80,'O',154967.89,'1998-04-16','3-MEDIUM','Clerk#000000290',0,'regular requests sleep quickly-- carefully bold ideas around the slyly r'), +(3812,41,'O',70502.52,'1996-08-13','3-MEDIUM','Clerk#000000727',0,'furiously unusual theodolites run. dogged deposits sl'), +(3813,146,'O',77247.05,'1998-06-29','1-URGENT','Clerk#000000531',0,'even, bold ideas are according to the even foxes. quiet instructions'), +(3814,118,'P',149451.88,'1995-02-22','5-LOW','Clerk#000000669',0,'even excuses above the slyly sp'), +(3815,104,'O',14275.01,'1997-08-26','1-URGENT','Clerk#000000249',0,'unusual theodolites about the deposits haggle around t'), +(3840,100,'O',187156.38,'1998-07-17','4-NOT SPECIFIED','Clerk#000000713',0,'furiously even requests boost furiously. furiously final deposits wake against'), +(3841,58,'F',129033.13,'1994-10-05','4-NOT SPECIFIED','Clerk#000000018',0,'furiously silent dependencies cajole blithely? fluffily express shea'), +(3842,28,'F',131447.03,'1992-04-09','5-LOW','Clerk#000000418',0,'foxes promise express accounts. slyly ironic instructions haggle blithely exp'), +(3843,10,'O',34035.17,'1997-01-04','4-NOT SPECIFIED','Clerk#000000693',0,'pending decoys against the bl'), +(3844,79,'F',6793.45,'1994-12-29','1-URGENT','Clerk#000000686',0,'express instructions between the furiously even accounts cajole furiou'), +(3845,89,'F',134333.33,'1992-04-26','1-URGENT','Clerk#000000404',0,'even sentiments sleep. ruthless theodolites cajole quickly alongside of the '); +INSERT INTO orders VALUES +(3846,49,'O',123120.06,'1998-02-05','2-HIGH','Clerk#000000877',0,'even pinto beans against the deposits cajole furiously packages. final'), +(3847,34,'F',7014.31,'1993-03-12','5-LOW','Clerk#000000338',0,'doggedly even requests haggle furiously ex'), +(3872,134,'O',198538.68,'1996-09-06','5-LOW','Clerk#000000943',0,'quickly regular requests grow carefully among the furi'), +(3873,55,'O',95291.79,'1998-03-30','4-NOT SPECIFIED','Clerk#000000791',0,'furiously ironic accounts along the unusual pinto be'), +(3874,119,'F',66455.34,'1993-06-09','3-MEDIUM','Clerk#000000208',0,'blithely pending deposits affix. fluff'), +(3875,118,'O',74483.95,'1997-09-10','1-URGENT','Clerk#000000587',0,'thinly bold escapades'), +(3876,29,'O',95126.32,'1996-08-02','5-LOW','Clerk#000000708',0,'ironic, ironic theodolites above the foxes serve slyly according '), +(3877,17,'F',178492.01,'1993-05-21','5-LOW','Clerk#000000652',0,'fluffily express platelets nag alongside of the'), +(3878,88,'O',59989.66,'1997-03-23','1-URGENT','Clerk#000000314',0,'furiously express deposits wake furiously. blithely special dolphins s'), +(3879,142,'O',80274.22,'1995-11-23','1-URGENT','Clerk#000000231',0,'regular platelets believe carefully among the quickly unusual ideas; quickly s'), +(3904,149,'O',39338.44,'1997-11-15','4-NOT SPECIFIED','Clerk#000000883',0,'carefully final requests haggle quickly against the s'), +(3905,22,'F',56227.04,'1993-12-21','4-NOT SPECIFIED','Clerk#000000573',0,'quickly unusual requests integrate blithely about the fina'), +(3906,46,'F',145630.76,'1992-05-28','3-MEDIUM','Clerk#000000867',0,'quickly pending pinto beans are slyly above the carefully regular packages.'), +(3907,67,'F',240457.56,'1992-08-19','3-MEDIUM','Clerk#000000084',0,'carefully regular deposits sleep quickly bold accounts. even, '), +(3908,43,'F',57127.71,'1993-03-09','3-MEDIUM','Clerk#000000490',0,'fluffily regular platelets nag final, final deposits. quickly bold courts alo'), +(3909,22,'O',82746.74,'1998-07-27','1-URGENT','Clerk#000000980',0,'final deposits detect after the carefully ironic requests'), +(3910,64,'O',47272.67,'1996-08-26','3-MEDIUM','Clerk#000000270',0,'even packages sleep silently unusual requests. depo'), +(3911,10,'P',35019.95,'1995-03-17','4-NOT SPECIFIED','Clerk#000000818',0,'blithely unusual requests unwind blithely fl'), +(3936,32,'O',168618.39,'1996-11-07','2-HIGH','Clerk#000000200',0,'carefully even packages haggle care'), +(3937,94,'O',187516.29,'1997-11-30','4-NOT SPECIFIED','Clerk#000000189',0,'final pinto beans detect blithely special, even requests. pend'), +(3938,31,'F',46918.22,'1993-03-03','1-URGENT','Clerk#000000199',0,'regular, regular account'), +(3939,70,'O',8720.45,'1996-01-11','5-LOW','Clerk#000000647',0,'pending, ironic requests affix slyly even '), +(3940,149,'O',129012.84,'1996-02-14','5-LOW','Clerk#000000363',0,'blithely regular pinto beans according to the fi'), +(3941,136,'O',95453.8,'1996-08-29','2-HIGH','Clerk#000000503',0,'blithely unusual instructions int'), +(3942,76,'F',38596.81,'1993-06-28','4-NOT SPECIFIED','Clerk#000000608',0,'even theodolites boost slyly afte'), +(3943,40,'O',60314.97,'1996-10-09','5-LOW','Clerk#000000482',0,'furiously regular packages could have to integrate sl'), +(3968,25,'O',121704.45,'1997-02-17','4-NOT SPECIFIED','Clerk#000000431',0,'slyly express deposits ha'), +(3969,52,'O',169797.4,'1997-05-14','2-HIGH','Clerk#000000731',0,'blithely regular accounts across the fur'), +(3970,76,'F',163709.85,'1992-03-27','3-MEDIUM','Clerk#000000190',0,'carefully pending excuses are doggedly ironic dependencies. sly'), +(3971,104,'O',47925.47,'1996-06-28','5-LOW','Clerk#000000287',0,'regular, ironic pinto beans haggle quickl'), +(3972,124,'F',1861.19,'1994-04-21','3-MEDIUM','Clerk#000000049',0,'daringly even platelets boost along the '), +(3973,103,'F',91541.48,'1992-03-24','4-NOT SPECIFIED','Clerk#000000114',0,'fluffily final pinto beans cajole carefully. regular dependencies across t'); +INSERT INTO orders VALUES +(3974,94,'O',56779.06,'1996-03-05','4-NOT SPECIFIED','Clerk#000000938',0,'doggedly ironic pinto beans run ironic pinto beans! requests '), +(3975,118,'O',37804.43,'1995-04-11','3-MEDIUM','Clerk#000000016',0,'bold, silent platelets grow against the accounts. slyly ironic'), +(4000,70,'F',84053.93,'1992-01-04','5-LOW','Clerk#000000339',0,'regular dolphins boost '), +(4001,115,'O',95929.46,'1997-05-15','3-MEDIUM','Clerk#000000878',0,'ironic, ironic deposits hinder. final d'), +(4002,104,'O',76518.11,'1997-04-08','5-LOW','Clerk#000000097',0,'pending, close accounts about the furiously p'), +(4003,112,'F',17603.01,'1993-01-27','1-URGENT','Clerk#000000177',0,'slyly idle platelets are. care'), +(4004,70,'F',220715.14,'1993-05-07','3-MEDIUM','Clerk#000000273',0,'fluffily ironic packages integrat'), +(4005,140,'O',129062.13,'1996-11-20','2-HIGH','Clerk#000000341',0,'carefully bold packages nag across the regular i'), +(4006,35,'F',70557.05,'1995-01-04','3-MEDIUM','Clerk#000000765',0,'slyly final packages are blithely against the slyly'), +(4007,8,'F',116193.97,'1993-06-18','2-HIGH','Clerk#000000623',0,'pending accounts affix furiously regular requests: q'), +(4032,10,'O',62497.51,'1998-02-26','3-MEDIUM','Clerk#000000686',0,'quietly regular foxes boost. quickly unusu'), +(4033,83,'F',57740.74,'1993-06-02','5-LOW','Clerk#000000181',0,'express, even asymptotes maintain slyly by the carefully ironic i'), +(4034,94,'F',186912.51,'1993-11-14','4-NOT SPECIFIED','Clerk#000000548',0,'unusual, silent packages hang alongside of the furio'), +(4035,118,'F',22840.21,'1992-02-19','5-LOW','Clerk#000000097',0,'carefully regular hockey players affix slyly furiously bold courts. warhorses '), +(4036,47,'O',82563.1,'1997-04-26','3-MEDIUM','Clerk#000000398',0,'slyly special ideas use quickly special deposits. quickly e'), +(4037,121,'F',36389.43,'1993-03-24','2-HIGH','Clerk#000000384',0,'furiously express accounts cajole carefull'), +(4038,94,'O',155045.39,'1996-01-06','1-URGENT','Clerk#000000272',0,'carefully silent hockey players sleep pending, iro'), +(4039,29,'O',143753.01,'1997-11-16','1-URGENT','Clerk#000000358',0,'blithely bold requests wake quickly furiously fina'), +(4064,130,'O',148500.71,'1996-10-10','4-NOT SPECIFIED','Clerk#000000598',0,'furiously regular dependencies sleep care'), +(4065,80,'F',156345.64,'1994-06-09','1-URGENT','Clerk#000000131',0,'regular, special packa'), +(4066,32,'O',176911.21,'1997-01-27','4-NOT SPECIFIED','Clerk#000000286',0,'quickly ironic accounts grow. carefully even theodolites wake according to the'), +(4067,16,'F',136517.34,'1992-10-07','2-HIGH','Clerk#000000027',0,'slyly unusual pinto beans arou'), +(4068,125,'O',71852.67,'1996-09-18','3-MEDIUM','Clerk#000000203',0,'carefully regular deposits maintain above the regular dolphins. even ideas ar'), +(4069,73,'F',198816.13,'1992-05-13','3-MEDIUM','Clerk#000000359',0,'carefully even instructions use. fur'), +(4070,29,'O',98275.37,'1995-06-12','2-HIGH','Clerk#000000713',0,'even, pending accounts are blithely'), +(4071,148,'O',67789.42,'1996-09-15','4-NOT SPECIFIED','Clerk#000000486',0,'slow, stealthy packages about the regular asymptotes are pending pa'), +(4096,139,'F',81089.61,'1992-07-03','4-NOT SPECIFIED','Clerk#000000706',0,'carefully special courts wake. quickly exp'), +(4097,10,'O',134308.04,'1996-05-24','1-URGENT','Clerk#000000475',0,'regular pinto beans sleep blithely carefully pending forges. perman'), +(4098,23,'O',48478.54,'1996-11-05','4-NOT SPECIFIED','Clerk#000000491',0,'fluffily bold pinto beans solve above the quickly regular account'), +(4099,17,'F',207364.8,'1992-08-21','1-URGENT','Clerk#000000379',0,'carefully even theodolites along the quick, unusual '), +(4100,4,'O',3892.77,'1996-03-12','3-MEDIUM','Clerk#000000429',0,'final, express deposits detect slyly carefu'), +(4101,142,'F',21640.1,'1993-11-22','4-NOT SPECIFIED','Clerk#000000704',0,'furiously regular requests sleep at the '), +(4102,22,'O',128786.57,'1996-03-17','1-URGENT','Clerk#000000675',0,'slyly final gifts unwind. b'); +INSERT INTO orders VALUES +(4103,106,'F',38164.23,'1992-07-03','5-LOW','Clerk#000000679',0,'final, express instructions solve across the regular deposits. instruc'), +(4128,139,'O',5472.17,'1995-10-07','4-NOT SPECIFIED','Clerk#000000635',0,'express packages wake fina'), +(4129,32,'F',67226.28,'1993-06-26','3-MEDIUM','Clerk#000000541',0,'regular accounts wake above the blithely ironic epitaphs. '), +(4130,104,'O',47823.04,'1996-03-10','5-LOW','Clerk#000000609',0,'even deposits detect. busily express packages cajole among the carefully bold '), +(4131,44,'O',145971.6,'1998-01-30','1-URGENT','Clerk#000000612',0,'theodolites use despite the slyly bold instructions. blithely fluffy plate'), +(4132,19,'P',65601.08,'1995-05-29','4-NOT SPECIFIED','Clerk#000000158',0,'carefully final theodolites hinder fur'), +(4133,101,'F',31693.88,'1992-08-07','4-NOT SPECIFIED','Clerk#000000268',0,'quickly bold ideas are carefully. furiously bold requests are c'), +(4134,97,'F',125191.12,'1995-01-12','1-URGENT','Clerk#000000171',0,'deposits sleep carefully'), +(4135,37,'O',99577.55,'1997-03-10','3-MEDIUM','Clerk#000000627',0,'slow, ironic theodolites sleep furiously r'), +(4160,55,'O',82493.07,'1996-08-20','5-LOW','Clerk#000000283',0,'unusual packages haggle furiously according to the furiously regular the'), +(4161,118,'F',198995.21,'1993-08-21','5-LOW','Clerk#000000047',0,'carefully regular deposits haggle slyly slyly even requests. asymptotes'), +(4162,22,'F',72359.55,'1992-02-10','5-LOW','Clerk#000000179',0,'carefully express packages cajole carefully ironic requests. slyly spe'), +(4163,64,'F',11493.8,'1992-12-21','2-HIGH','Clerk#000000268',0,'furiously express asymptotes a'), +(4164,94,'O',8709.16,'1998-07-03','2-HIGH','Clerk#000000720',0,'blithely express theodolites alongside of the slyly bo'), +(4165,4,'O',11405.4,'1997-07-25','3-MEDIUM','Clerk#000000621',0,'theodolites sleep fluffily. unusual, regular deposits haggle slyly sp'), +(4166,43,'F',100671.06,'1993-02-28','5-LOW','Clerk#000000757',0,'slyly final accounts haggle carefully. blithe'), +(4167,28,'O',62108.45,'1998-06-17','1-URGENT','Clerk#000000917',0,'final, express requests wake! blithely regular '), +(4192,146,'O',197192.95,'1998-04-19','1-URGENT','Clerk#000000369',0,'furiously even instructions boost blithely across t'), +(4193,4,'F',143191.54,'1994-01-09','2-HIGH','Clerk#000000201',0,'furiously final excu'), +(4194,106,'F',62972.29,'1994-10-16','3-MEDIUM','Clerk#000000385',0,'carefully even platelets above the pendin'), +(4195,104,'F',54478.95,'1993-05-29','4-NOT SPECIFIED','Clerk#000000777',0,'quickly careful ideas try to haggle doggedly after the accounts. f'), +(4196,106,'O',201455.98,'1998-05-15','3-MEDIUM','Clerk#000000532',0,'regular requests eat even packages. deposits use fluffily above '), +(4197,92,'O',217709.03,'1996-08-13','4-NOT SPECIFIED','Clerk#000000264',0,'carefully enticing pinto beans alongside of the blithely da'), +(4198,143,'O',105789.01,'1997-06-16','3-MEDIUM','Clerk#000000583',0,'daringly express requests wake busy deposits. fluffily even d'), +(4199,5,'F',30494.62,'1992-02-13','1-URGENT','Clerk#000000309',0,'special excuses can are. stealthily regular request'), +(4224,70,'O',150655.44,'1997-07-14','1-URGENT','Clerk#000000034',0,'blithely regular packages use among the furi'), +(4225,128,'O',72533.07,'1997-06-03','3-MEDIUM','Clerk#000000992',0,'carefully silent tithes u'), +(4226,92,'F',29827.44,'1993-03-09','5-LOW','Clerk#000000203',0,'accounts nag daringly express, final accounts. slyly enticing deposits sub'), +(4227,133,'F',92261.08,'1995-02-24','1-URGENT','Clerk#000000063',0,'blithely ironic accounts after the pending instructions na'), +(4228,110,'O',22072.16,'1997-03-28','5-LOW','Clerk#000000309',0,'quickly sly requests cajole slyl'), +(4229,14,'O',75145.87,'1998-03-03','1-URGENT','Clerk#000000301',0,'regular foxes across the carefully even pac'), +(4230,140,'F',219709.6,'1992-03-04','1-URGENT','Clerk#000000364',0,'packages nag slyly alongside of the fluffily final packages. b'); +INSERT INTO orders VALUES +(4231,86,'O',111403.66,'1997-11-20','4-NOT SPECIFIED','Clerk#000000630',0,'asymptotes wake furiously from the carefully pending requ'), +(4256,118,'F',23067.48,'1992-04-05','4-NOT SPECIFIED','Clerk#000000043',0,'slyly unusual requests integra'), +(4257,17,'P',41723.86,'1995-03-25','3-MEDIUM','Clerk#000000682',0,'express asymptotes use along the slyly regular packages. regular, spec'), +(4258,92,'O',133829.35,'1996-10-27','4-NOT SPECIFIED','Clerk#000000364',0,'slyly special dependencies bo'), +(4259,104,'O',12918.7,'1997-10-09','5-LOW','Clerk#000000781',0,'accounts are slyly amon'), +(4260,142,'F',18566.14,'1992-05-16','4-NOT SPECIFIED','Clerk#000000919',0,'bold, even theodolites nag after the furiously '), +(4261,118,'F',83665.2,'1992-10-03','1-URGENT','Clerk#000000662',0,'even courts doze blithely. ironic depos'), +(4262,88,'O',176278.57,'1996-08-04','3-MEDIUM','Clerk#000000239',0,'ironic packages wake over the slyly silent theodolites.'), +(4263,4,'O',158885.83,'1998-03-16','1-URGENT','Clerk#000000265',0,'carefully final asymptotes x-ray blithely slyly ironic deposi'), +(4288,34,'F',75030.81,'1992-12-04','4-NOT SPECIFIED','Clerk#000000823',0,'bold warthogs boost. carefully ironic theodolites cajole final epitaphs. bli'), +(4289,125,'F',20752.62,'1993-10-07','3-MEDIUM','Clerk#000000912',0,'furiously even theodolites are. carefully ironic escapades solve carefully '), +(4290,41,'F',26128.99,'1995-01-15','3-MEDIUM','Clerk#000000688',0,'regular deposits are furiously even platelets. bold, ironi'), +(4291,89,'F',71822.86,'1993-11-29','3-MEDIUM','Clerk#000000655',0,'final accounts sleep among the furiously final excuses; quickly e'), +(4292,25,'F',145906.24,'1992-01-09','3-MEDIUM','Clerk#000000794',0,'courts haggle bold accounts; fluffily express'), +(4293,103,'O',198322.91,'1996-08-20','2-HIGH','Clerk#000000750',0,'quickly bold packages use quickly. blithely ir'), +(4294,49,'F',232194.74,'1992-08-15','3-MEDIUM','Clerk#000000407',0,'silent, pending accounts above the regular'), +(4295,5,'O',77754.62,'1996-02-10','3-MEDIUM','Clerk#000000023',0,'furiously regular de'), +(4320,115,'O',67049.37,'1996-12-08','4-NOT SPECIFIED','Clerk#000000223',0,'unusual tithes nag furiously regular dependencies. regularly silent packages'), +(4321,16,'F',118896.95,'1994-07-18','3-MEDIUM','Clerk#000000041',0,'slyly ironic dugouts '), +(4322,142,'O',149671.92,'1998-03-13','3-MEDIUM','Clerk#000000433',0,'express deposits according to the bold idea'), +(4323,104,'F',27598.17,'1994-01-23','2-HIGH','Clerk#000000282',0,'carefully final pinto beans wake furiously blithely ironic deposits. ironic pe'), +(4324,73,'O',178249.05,'1995-07-17','1-URGENT','Clerk#000000800',0,'pending foxes nag blithely. quick'), +(4325,130,'O',20214.49,'1996-07-18','2-HIGH','Clerk#000000591',0,'bold, even dinos are carefull'), +(4326,29,'O',39048.94,'1996-10-27','4-NOT SPECIFIED','Clerk#000000869',0,'quiet deposits among the fur'), +(4327,146,'P',126235.35,'1995-03-16','2-HIGH','Clerk#000000571',0,'platelets haggle after the slyly bold packages. ironic'), +(4352,14,'O',18653.09,'1997-11-26','2-HIGH','Clerk#000000620',0,'slyly thin foxes against the evenly permanent accounts are furiously '), +(4353,73,'O',21815.3,'1997-12-12','2-HIGH','Clerk#000000790',0,'final dependencies use furiously. final packages among the enticingly'), +(4354,145,'F',179827.12,'1994-09-30','4-NOT SPECIFIED','Clerk#000000046',0,'furiously bold packages'), +(4355,4,'O',186370.23,'1996-11-16','1-URGENT','Clerk#000000362',0,'foxes among the slyly final instructions snooze sometimes ironic,'), +(4356,97,'F',39828.51,'1994-04-11','5-LOW','Clerk#000000956',0,'final accounts use above the pending packages. boldly final instructions boos'), +(4357,47,'O',67045.94,'1997-10-23','4-NOT SPECIFIED','Clerk#000000031',0,'carefully pending ideas nag bravely '), +(4358,25,'O',46298.53,'1997-08-12','1-URGENT','Clerk#000000692',0,'furiously ruthless theo'), +(4359,16,'F',107824.4,'1993-03-03','1-URGENT','Clerk#000000393',0,'fluffily pending requests affix blithely. quickly even deposits caj'); +INSERT INTO orders VALUES +(4384,25,'F',52562.16,'1992-07-13','1-URGENT','Clerk#000000192',0,'bold pinto beans are accounts: unusual packages wake. quickly unusual pa'), +(4385,122,'O',39190.62,'1996-08-06','2-HIGH','Clerk#000000597',0,'regular, special requests nag'), +(4386,61,'O',134413.58,'1998-02-06','5-LOW','Clerk#000000070',0,'regular requests nag quickly. final deposi'), +(4387,110,'O',116740.67,'1995-10-23','1-URGENT','Clerk#000000025',0,'instructions wake slyly slyly ironic pinto beans; foxes us'), +(4388,10,'O',69668.22,'1996-03-28','2-HIGH','Clerk#000000715',0,'regular, ironic multipliers boost quickly against the packages'), +(4389,55,'F',120324.82,'1994-05-05','3-MEDIUM','Clerk#000000403',0,'furiously final foxes serve! fluffily even sautern'), +(4390,7,'P',140608.69,'1995-05-23','1-URGENT','Clerk#000000691',0,'deposits haggle furiously blithely regu'), +(4391,38,'F',48284.06,'1992-02-18','2-HIGH','Clerk#000000880',0,'unusual, unusual requests are blithely unusual '), +(4416,149,'F',76067.1,'1992-06-30','5-LOW','Clerk#000000391',0,'furiously ironic dolphins boost. regul'), +(4417,67,'O',60868.39,'1998-07-09','1-URGENT','Clerk#000000365',0,'regular, regular pinto beans among the even'), +(4418,61,'F',47099.71,'1993-03-25','3-MEDIUM','Clerk#000000731',0,'slyly even depths must x-ray ideas. carefully regular deposits cajole neve'), +(4419,104,'O',94030.43,'1996-06-12','4-NOT SPECIFIED','Clerk#000000410',0,'packages snooze enticingly '), +(4420,109,'F',6088.41,'1994-06-18','1-URGENT','Clerk#000000706',0,'slyly bold sentiments haggle instructions'), +(4421,10,'O',258779.02,'1997-04-04','3-MEDIUM','Clerk#000000246',0,'furiously even theodolites un'), +(4422,70,'P',107140.22,'1995-05-22','3-MEDIUM','Clerk#000000938',0,'ironic accounts sleep quietly express '), +(4423,64,'F',4913.06,'1995-02-17','5-LOW','Clerk#000000888',0,'furiously pending foxes affix alongside of th'), +(4448,70,'O',127191.47,'1998-05-21','2-HIGH','Clerk#000000428',0,'regular packages nag always. furiously even foxes poach slyly final braids. '), +(4449,10,'O',48206.14,'1998-02-08','5-LOW','Clerk#000000035',0,'requests impress up the boldly bold accounts! fur'), +(4450,106,'O',110194.31,'1997-07-15','1-URGENT','Clerk#000000867',0,'furiously unusual asymptotes about th'), +(4451,4,'F',92851.8,'1994-10-01','1-URGENT','Clerk#000000181',0,'carefully bold instructions in place of the furiously pending accounts are q'), +(4452,13,'F',64838.66,'1994-06-21','5-LOW','Clerk#000000985',0,'bold foxes wake blithely after the blithely fluffy dolphins. furiously'), +(4453,65,'O',137030.4,'1997-04-01','3-MEDIUM','Clerk#000000603',0,'special accounts about the slyly final deposits'), +(4454,142,'F',159578.94,'1994-02-02','5-LOW','Clerk#000000411',0,'slyly final packages thrash. blithely ironic pinto beans are '), +(4455,19,'F',102534.63,'1993-10-11','3-MEDIUM','Clerk#000000924',0,'pending, final requests boost furi'), +(4480,85,'F',28658.26,'1994-03-31','4-NOT SPECIFIED','Clerk#000000534',0,'carefully enticing depen'), +(4481,148,'O',77705.4,'1996-03-30','5-LOW','Clerk#000000443',0,'carefully pending dependen'), +(4482,82,'P',63535.56,'1995-05-15','4-NOT SPECIFIED','Clerk#000000534',0,'regular deposits haggle slyly furiously regular deposits. reque'), +(4483,52,'F',126597.21,'1992-03-07','3-MEDIUM','Clerk#000000615',0,'quickly ironic accounts sleep carefull'), +(4484,131,'O',237947.61,'1996-12-24','1-URGENT','Clerk#000000392',0,'carefully silent deposi'), +(4485,53,'F',182432.17,'1994-11-13','3-MEDIUM','Clerk#000000038',0,'instructions against the furiously'), +(4486,37,'O',135613.18,'1998-03-03','2-HIGH','Clerk#000000656',0,'furiously slow requests promise carefully. furiou'), +(4487,46,'F',109469.9,'1993-02-23','3-MEDIUM','Clerk#000000017',0,'slyly ironic epitaphs wake furiously. care'), +(4512,70,'O',148682.82,'1995-10-25','5-LOW','Clerk#000000393',0,'deposits wake slyly even pinto beans. special th'), +(4513,85,'O',119820.38,'1996-03-15','5-LOW','Clerk#000000154',0,'fluffily even deposits h'); +INSERT INTO orders VALUES +(4514,97,'F',143899.85,'1994-04-30','3-MEDIUM','Clerk#000000074',0,'slyly daring deposits cajole fu'), +(4515,140,'F',161745.44,'1992-03-17','1-URGENT','Clerk#000000191',0,'fluffily ironic ideas nag blithely special foxes. bli'), +(4516,130,'F',35949.14,'1994-03-29','3-MEDIUM','Clerk#000000739',0,'fluffily special theodolites detect. furiously careful ideas above t'), +(4517,113,'O',47614.08,'1998-03-07','4-NOT SPECIFIED','Clerk#000000231',0,'ironic instructions nag slyly. caref'), +(4518,125,'O',25861.74,'1997-05-01','3-MEDIUM','Clerk#000000187',0,'furiously even accounts dazzle. blithe'), +(4519,136,'F',68885.66,'1993-03-30','4-NOT SPECIFIED','Clerk#000000938',0,'quickly bold deposits hagg'), +(4544,112,'O',151148.81,'1997-08-07','3-MEDIUM','Clerk#000000435',0,'furiously regular courts nag '), +(4545,59,'F',143276.28,'1993-01-17','4-NOT SPECIFIED','Clerk#000000303',0,'blithely final asympt'), +(4546,43,'O',39906.87,'1995-07-29','5-LOW','Clerk#000000373',0,'express requests nod about the slyly express asymptotes. careful'), +(4547,109,'F',52114.01,'1993-08-23','3-MEDIUM','Clerk#000000519',0,'furiously ironic reques'), +(4548,127,'O',139915.23,'1996-06-28','5-LOW','Clerk#000000798',0,'silent hockey players detect slyly furiously pending packages. asy'), +(4549,64,'O',43889.17,'1998-03-05','4-NOT SPECIFIED','Clerk#000000965',0,'closely ironic depe'), +(4550,118,'F',27461.48,'1994-12-29','2-HIGH','Clerk#000000748',0,'accounts boost furiously. quickly pending pin'), +(4551,109,'O',82824.14,'1996-02-09','2-HIGH','Clerk#000000462',0,'carefully final deposits cajole express, special deposits.'), +(4576,139,'O',56936.1,'1996-08-14','5-LOW','Clerk#000000798',0,'ironic, regular packages nag slyly after the never fi'), +(4577,79,'O',104259.88,'1998-05-02','5-LOW','Clerk#000000409',0,'ironic, regular ide'), +(4578,91,'F',95761.93,'1992-09-13','5-LOW','Clerk#000000121',0,'slyly even epitaphs shall have to ca'), +(4579,106,'O',85927.85,'1995-12-01','2-HIGH','Clerk#000000951',0,'requests sleep furiously slyly regular ideas. si'), +(4580,82,'F',118464.65,'1993-11-15','4-NOT SPECIFIED','Clerk#000000086',0,'express, final packa'), +(4581,79,'F',89592.11,'1992-09-04','4-NOT SPECIFIED','Clerk#000000687',0,'deposits serve. express theodolites affix unusual, ironic accounts. b'), +(4582,19,'O',18247.86,'1996-07-04','1-URGENT','Clerk#000000638',0,'fluffily regular requests wake care'), +(4583,22,'F',206495.43,'1994-09-25','3-MEDIUM','Clerk#000000240',0,'final deposits nag permanently around the slyly pending '), +(4608,80,'F',157767.86,'1994-06-17','1-URGENT','Clerk#000000259',0,'furiously bold dependencies are about the slyly'), +(4609,133,'O',70462.84,'1996-12-05','3-MEDIUM','Clerk#000000239',0,'slyly final sauternes past the furiously special platele'), +(4610,26,'F',135934.6,'1993-06-18','5-LOW','Clerk#000000616',0,'express pinto beans detect carefully spe'), +(4611,29,'F',166506.22,'1993-01-10','2-HIGH','Clerk#000000152',0,'ruthless requests haggle furiously regular dinos. accounts use above '), +(4612,61,'F',82598.87,'1993-09-20','3-MEDIUM','Clerk#000000397',0,'fluffily ironic foxes sleep furiously about the blithely express'), +(4613,133,'O',212339.55,'1998-03-05','3-MEDIUM','Clerk#000000541',0,'never bold requests dazzle blithely according to the carefully ex'), +(4614,61,'O',151801.06,'1996-04-22','1-URGENT','Clerk#000000974',0,'slyly even dolphins according to th'), +(4615,29,'F',10500.27,'1993-08-27','3-MEDIUM','Clerk#000000982',0,'slyly final requests along the ironic, final instru'), +(4640,97,'O',81138.17,'1996-01-01','5-LOW','Clerk#000000902',0,'final deposits against the express, unusual pl'), +(4641,134,'F',98485.21,'1993-01-20','4-NOT SPECIFIED','Clerk#000000755',0,'regular, ironic excuses affix fluffily blithely ironic accounts?'), +(4642,148,'F',117537.87,'1995-02-27','1-URGENT','Clerk#000000295',0,'even packages sleep furiously forges-- regular request'), +(4643,67,'O',52414.19,'1995-06-30','2-HIGH','Clerk#000000292',0,'foxes after the foxes cajole furiously along the furiously final courts. f'); +INSERT INTO orders VALUES +(4644,94,'O',85901.7,'1998-01-17','5-LOW','Clerk#000000961',0,'furiously ironic accounts shall have to are alongside of the final requests'), +(4645,44,'F',231012.22,'1994-09-20','1-URGENT','Clerk#000000764',0,'ironic, final ideas across the regular, final requests eat ca'), +(4646,83,'O',124637.19,'1996-06-18','1-URGENT','Clerk#000000036',0,'bold pinto beans sleep slyly regular epitaphs. ironic platelets inte'), +(4647,28,'F',110958.36,'1994-05-14','3-MEDIUM','Clerk#000000626',0,'silent excuses cajole even'), +(4672,79,'O',199593.71,'1995-11-07','1-URGENT','Clerk#000000475',0,'fluffily final dependencies use expr'), +(4673,82,'O',58094.75,'1996-08-13','4-NOT SPECIFIED','Clerk#000000914',0,'doggedly special accounts detect. blithely unusual requests along the slyly'), +(4674,37,'F',115411.37,'1994-04-19','1-URGENT','Clerk#000000122',0,'finally final packages haggle carefully blithe'), +(4675,86,'F',68817.08,'1993-11-25','4-NOT SPECIFIED','Clerk#000000741',0,'bold packages serve across '), +(4676,14,'O',182025.95,'1995-09-01','2-HIGH','Clerk#000000407',0,'bold, quiet packages na'), +(4677,40,'O',25661.87,'1998-02-21','3-MEDIUM','Clerk#000000245',0,'packages cajole furiously. requests alongside of'), +(4678,88,'O',131752.07,'1998-08-02','4-NOT SPECIFIED','Clerk#000000175',0,'furiously even asymptotes cajole around the accounts. regular p'), +(4679,88,'F',7211.59,'1993-01-20','2-HIGH','Clerk#000000905',0,'silent, silent accounts according to the carefully final deposits sleep car'), +(4704,2,'O',63873.14,'1996-08-16','4-NOT SPECIFIED','Clerk#000000256',0,'final theodolites boost carefully by the slyly iron'), +(4705,98,'F',173340.09,'1992-03-22','4-NOT SPECIFIED','Clerk#000000522',0,'furiously ironic theodolites nag sly instructions. never regular asymptotes'), +(4706,25,'F',101709.52,'1992-12-29','4-NOT SPECIFIED','Clerk#000000722',0,'accounts are carefully slyly bold packages; s'), +(4707,91,'F',61052.1,'1995-02-27','2-HIGH','Clerk#000000943',0,'furiously regular realms cajole according to the carefully express p'), +(4708,85,'F',56998.36,'1994-10-01','1-URGENT','Clerk#000000383',0,'bravely ironic instructions sleep care'), +(4709,26,'O',49903.57,'1996-01-08','3-MEDIUM','Clerk#000000785',0,'quickly final accounts along the'), +(4710,100,'F',88966.68,'1994-12-08','4-NOT SPECIFIED','Clerk#000000734',0,'quickly unusual ide'), +(4711,142,'O',129546.56,'1998-05-06','1-URGENT','Clerk#000000818',0,'regular, regular dependencies are against'), +(4736,139,'O',67572.73,'1995-11-20','2-HIGH','Clerk#000000563',0,'deposits sleep carefully fur'), +(4737,79,'F',62014.51,'1993-03-11','4-NOT SPECIFIED','Clerk#000000275',0,'final packages wake. bold deposits was. sl'), +(4738,5,'F',149466.62,'1992-04-08','2-HIGH','Clerk#000000150',0,'quickly final packages'), +(4739,148,'F',68255.82,'1993-02-21','5-LOW','Clerk#000000872',0,'quickly regular theodolit'), +(4740,68,'O',42579.4,'1996-07-05','2-HIGH','Clerk#000000420',0,'slyly even accounts are slyly bold '), +(4741,127,'F',180692.9,'1992-07-07','4-NOT SPECIFIED','Clerk#000000983',0,'furiously bold accounts wake blithely after the slyly regular '), +(4742,64,'P',155356.8,'1995-03-23','3-MEDIUM','Clerk#000000058',0,'slyly final packages are. quickly bold pains ac'), +(4743,97,'F',65702.39,'1993-03-31','5-LOW','Clerk#000000048',0,'slyly even deposits sleep quickly according to the slyly ironic pin'), +(4768,136,'F',4820.55,'1993-11-22','2-HIGH','Clerk#000000875',0,'furiously bold foxes haggle. fluffily regular theo'), +(4769,121,'P',136765.03,'1995-04-14','4-NOT SPECIFIED','Clerk#000000116',0,'fluffily express dinos solve furiously deposits. furiously'), +(4770,59,'O',72150.68,'1995-06-20','2-HIGH','Clerk#000000461',0,'final warhorses wake never. th'), +(4771,95,'F',49625.21,'1992-12-14','1-URGENT','Clerk#000000571',0,'deposits haggle furiously even waters. even, bold accou'), +(4772,28,'F',64102.93,'1994-09-14','1-URGENT','Clerk#000000708',0,'pending accounts boost slyly'); +INSERT INTO orders VALUES +(4773,122,'O',196080.26,'1995-12-23','1-URGENT','Clerk#000000327',0,'courts haggle ironic foxes. slyly ironic instructions cajole after th'), +(4774,52,'F',124380.73,'1993-04-20','3-MEDIUM','Clerk#000000299',0,'carefully even theodolites sleep dogged ideas. slyly unusual request'), +(4775,128,'O',112444.42,'1995-08-13','4-NOT SPECIFIED','Clerk#000000609',0,'regular, regular requests are carefully forges. carefully ironi'), +(4800,37,'F',91795.13,'1992-01-06','5-LOW','Clerk#000000625',0,'unusual dinos sleep closely. slyly special dolphins integrate fluffily f'), +(4801,88,'O',108353.08,'1996-01-25','1-URGENT','Clerk#000000553',0,'slyly bold packages wake. blithely unusual ideas boost '), +(4802,130,'O',5978.65,'1997-01-23','3-MEDIUM','Clerk#000000400',0,'slyly ironic instruct'), +(4803,124,'O',158776.68,'1996-02-08','5-LOW','Clerk#000000892',0,'carefully silent asymptotes agai'), +(4804,37,'F',111547.31,'1992-01-28','2-HIGH','Clerk#000000614',0,'furious theodolites haggle quickly after the ironic depos'), +(4805,16,'F',172102.96,'1992-04-25','4-NOT SPECIFIED','Clerk#000000514',0,'furiously final accounts haggle slyly. carefully pending platelets cajole '), +(4806,7,'F',35390.15,'1993-04-21','5-LOW','Clerk#000000625',0,'instructions sleep. ironic acco'), +(4807,53,'O',138902.23,'1997-01-09','3-MEDIUM','Clerk#000000310',0,'carefully ironic pack'), +(4832,34,'O',84954.79,'1997-12-04','3-MEDIUM','Clerk#000000548',0,'carefully special accounts sleep sly'), +(4833,133,'O',84800.44,'1996-05-12','3-MEDIUM','Clerk#000000256',0,'accounts nag furiousl'), +(4834,19,'O',124539,'1996-09-12','2-HIGH','Clerk#000000284',0,'requests about the furiously final dependenci'), +(4835,146,'F',70857.51,'1994-10-25','1-URGENT','Clerk#000000250',0,'silent deposits breach blithely accounts. slyly even dolphins are fl'), +(4836,65,'O',78711.4,'1996-12-18','1-URGENT','Clerk#000000691',0,'furiously unusual accounts are slyly. furiously special packages n'), +(4837,130,'O',68519.84,'1998-04-24','4-NOT SPECIFIED','Clerk#000000517',0,'platelets boost furiously special sentiments. quickly even pac'), +(4838,44,'F',61811.33,'1992-08-02','1-URGENT','Clerk#000000569',0,'regular, express pinto b'), +(4839,25,'F',71241.63,'1994-05-10','1-URGENT','Clerk#000000925',0,'furiously express packages are quickly unusual account'), +(4864,88,'F',149614.34,'1992-11-11','5-LOW','Clerk#000000423',0,'quickly ironic accounts lose furiously regular request'), +(4865,85,'O',162113.46,'1997-06-07','3-MEDIUM','Clerk#000000418',0,'blithely final accounts wake blithely-- furiously f'), +(4866,53,'O',25767.07,'1997-08-07','2-HIGH','Clerk#000000663',0,'final packages wake blithely. blithely ironic instructions affix blithely '), +(4867,10,'F',9741.03,'1992-05-21','1-URGENT','Clerk#000000891',0,'final, even packages about the regular packa'), +(4868,76,'O',159005.35,'1997-03-02','5-LOW','Clerk#000000729',0,'slyly ruthless foxes cajole quickly blithely express sauternes. carefully spec'), +(4869,58,'F',175422.13,'1994-09-26','5-LOW','Clerk#000000802',0,'final requests are blithely above the quickl'), +(4870,103,'F',94534.07,'1994-08-06','3-MEDIUM','Clerk#000000911',0,'ideas nag slyly. regular deposits solve. carefully bold sentiments are f'), +(4871,46,'O',129636.99,'1995-06-12','1-URGENT','Clerk#000000531',0,'carefully regular accounts are slyly carefully un'), +(4896,85,'F',93206.35,'1992-08-22','1-URGENT','Clerk#000000622',0,'regular, even ideas caj'), +(4897,80,'F',115688.85,'1992-09-17','5-LOW','Clerk#000000184',0,'furiously even requests wake. blithely unusual packages are always even deposi'), +(4898,14,'F',40572.64,'1994-07-11','4-NOT SPECIFIED','Clerk#000000841',0,'fluffy, pending accounts bo'), +(4899,61,'F',12291.83,'1993-10-18','4-NOT SPECIFIED','Clerk#000000348',0,'unusual, ironic multipliers believe furiously furiously specia'), +(4900,137,'F',221320.76,'1992-06-30','4-NOT SPECIFIED','Clerk#000000878',0,'furiously final packages sl'), +(4901,79,'O',146298.28,'1997-12-31','4-NOT SPECIFIED','Clerk#000000980',0,'carefully final accou'); +INSERT INTO orders VALUES +(4902,139,'O',26011.2,'1998-07-04','3-MEDIUM','Clerk#000000874',0,'fluffily express foxes wake enticingly around'), +(4903,92,'F',34363.63,'1992-03-22','4-NOT SPECIFIED','Clerk#000000907',0,'fluffily special attainments wake carefully pending idea'), +(4928,4,'F',59931.42,'1993-10-04','4-NOT SPECIFIED','Clerk#000000952',0,'carefully ironic foxes cajole blithely fluffily bold d'), +(4929,149,'O',135187.33,'1996-02-29','3-MEDIUM','Clerk#000000109',0,'quickly ironic instructions boost after the packages. regular deposits a'), +(4930,149,'F',176867.34,'1994-05-06','5-LOW','Clerk#000000593',0,'blithely express platelets use pending deposits. ironic requests na'), +(4931,50,'F',115759.13,'1994-11-17','1-URGENT','Clerk#000000356',0,'ironic dolphins above the regular, final grouches use fluff'), +(4932,122,'F',42927.07,'1993-08-10','1-URGENT','Clerk#000000830',0,'furiously even instructions against the slyly ruthl'), +(4933,94,'O',42945.82,'1995-07-14','3-MEDIUM','Clerk#000000848',0,'slyly bold packages doubt fluffily ironic pinto beans. pending, pe'), +(4934,40,'O',180478.16,'1997-02-17','1-URGENT','Clerk#000000372',0,'ideas are blithely. furiously pending deposits da'), +(4935,40,'F',162088.3,'1993-05-25','4-NOT SPECIFIED','Clerk#000000601',0,'slyly special foxes sle'), +(4960,124,'F',153259.41,'1995-02-26','5-LOW','Clerk#000000229',0,'regular, ironic reque'), +(4961,58,'O',89224.24,'1998-04-06','3-MEDIUM','Clerk#000000731',0,'carefully even foxes boost quickly according to the ironic realms. b'), +(4962,104,'F',44781.32,'1993-07-28','3-MEDIUM','Clerk#000000008',0,'dependencies atop the q'), +(4963,34,'O',54175.35,'1996-11-07','3-MEDIUM','Clerk#000000754',0,'blithely regular accounts nag above the quickly ironic deposits. slyly unusual'), +(4964,101,'O',204163.1,'1997-07-28','4-NOT SPECIFIED','Clerk#000000144',0,'bravely silent packages use blithely. blithel'), +(4965,52,'F',110626.82,'1993-10-21','5-LOW','Clerk#000000638',0,'quickly regular deposits wake brave'), +(4966,70,'O',59186.02,'1996-09-07','2-HIGH','Clerk#000000243',0,'quiet, bold deposits boost fluffi'), +(4967,98,'O',103814.27,'1997-02-17','3-MEDIUM','Clerk#000000397',0,'final ideas promise slyly '), +(4992,62,'F',203904.8,'1992-05-10','1-URGENT','Clerk#000000166',0,'quietly express packages haggle carefully. doggedly ironic deposits boost'), +(4993,13,'F',145730.19,'1994-08-04','4-NOT SPECIFIED','Clerk#000000258',0,'slyly final asymptotes boost daringly after the blithely fluf'), +(4994,43,'O',216071.76,'1996-06-29','4-NOT SPECIFIED','Clerk#000000868',0,'slyly even requests wake care'), +(4995,40,'O',189651.76,'1996-01-06','4-NOT SPECIFIED','Clerk#000000748',0,'silent sauternes wake blithely carefully pendin'), +(4996,133,'F',100750.67,'1992-09-14','3-MEDIUM','Clerk#000000433',0,'regular ideas cajole. ruthless dept'), +(4997,47,'O',122611.05,'1998-03-18','5-LOW','Clerk#000000040',0,'carefully regular theodolites nag furiously. final requests abo'), +(4998,32,'F',129096.8,'1992-01-11','4-NOT SPECIFIED','Clerk#000000054',0,'foxes cajole quickly final deposits. even dependencies sleep'), +(4999,85,'F',98643.17,'1993-06-26','2-HIGH','Clerk#000000504',0,'carefully unusual ideas boost blit'), +(5024,124,'O',116127.69,'1996-10-25','3-MEDIUM','Clerk#000000659',0,'even orbits dazzle even accounts. blithely ironic depende'), +(5025,121,'O',20099.43,'1997-02-03','5-LOW','Clerk#000000805',0,'quickly silent multipliers sleep'), +(5026,28,'O',13197.78,'1997-09-06','1-URGENT','Clerk#000000955',0,'slyly special foxes haggle quickly. express platelets above the carefully '), +(5027,148,'O',181346.56,'1997-08-30','2-HIGH','Clerk#000000751',0,'furiously express pack'), +(5028,13,'F',30755.69,'1992-04-17','2-HIGH','Clerk#000000180',0,'even instructions along '), +(5029,11,'F',19811.69,'1992-11-14','3-MEDIUM','Clerk#000000469',0,'quickly pending accounts k'), +(5030,106,'O',71781.23,'1998-05-25','4-NOT SPECIFIED','Clerk#000000564',0,'unusual deposits x-ray carefully. carefully final request'); +INSERT INTO orders VALUES +(5031,139,'F',91438.59,'1994-12-02','3-MEDIUM','Clerk#000000788',0,'final, unusual accounts are blithely outside the silent packages. ins'), +(5056,52,'O',62258.18,'1997-02-15','5-LOW','Clerk#000000828',0,'slyly ironic packages after the blithe deposits detect f'), +(5057,64,'O',76164.41,'1997-08-03','1-URGENT','Clerk#000000955',0,'quickly final requests c'), +(5058,119,'O',17031.01,'1998-03-23','1-URGENT','Clerk#000000367',0,'furiously final deposits across the pe'), +(5059,43,'F',67173.82,'1993-11-10','2-HIGH','Clerk#000000058',0,'instructions integrate bravely. quickly even deposits affix '), +(5060,112,'F',65218.47,'1992-07-07','4-NOT SPECIFIED','Clerk#000000333',0,'unusual requests detect along the even, special reques'), +(5061,101,'F',52190.52,'1993-08-14','1-URGENT','Clerk#000000009',0,'bold foxes about the furiously furious deposits boost slyly careful platelet'), +(5062,61,'F',109247,'1992-10-08','3-MEDIUM','Clerk#000000012',0,'carefully pending deposits around the final as'), +(5063,23,'O',98753.57,'1997-05-17','2-HIGH','Clerk#000000745',0,'final packages cajole quickl'), +(5088,130,'F',101616.44,'1993-01-06','5-LOW','Clerk#000000930',0,'blithely unusual excuses nag. q'), +(5089,130,'F',109246.54,'1992-07-29','1-URGENT','Clerk#000000677',0,'blithely special ac'), +(5090,89,'O',132838.49,'1997-03-09','1-URGENT','Clerk#000000953',0,'unusual requests integrate.'), +(5091,148,'O',47852.06,'1998-05-21','3-MEDIUM','Clerk#000000311',0,'quickly even pains dazzle. car'), +(5092,22,'O',195834.96,'1995-10-30','5-LOW','Clerk#000000194',0,'furiously ironic asymptotes dazzle; thinly final pinto beans against the '), +(5093,79,'F',190693.92,'1993-09-03','3-MEDIUM','Clerk#000000802',0,'quickly ruthless asymptotes wake. regular, ironic platelets affi'), +(5094,106,'F',74892.08,'1993-03-29','4-NOT SPECIFIED','Clerk#000000406',0,'ironic excuses across the ideas cajole furi'), +(5095,97,'F',184583.99,'1992-04-22','2-HIGH','Clerk#000000964',0,'carefully unusual dependencies use quickly. expres'), +(5120,16,'O',28007.73,'1996-06-05','1-URGENT','Clerk#000000332',0,'express courts breach '), +(5121,133,'F',150334.57,'1992-05-11','4-NOT SPECIFIED','Clerk#000000736',0,'bold platelets cajole blithely ca'), +(5122,70,'O',79863.84,'1996-02-10','5-LOW','Clerk#000000780',0,'furiously final deposits haggle slyly about the ironic requ'), +(5123,10,'O',11850.45,'1998-02-10','1-URGENT','Clerk#000000776',0,'furiously express pinto beans x-ray regularly. regu'), +(5124,25,'O',159170.8,'1997-04-04','4-NOT SPECIFIED','Clerk#000000749',0,'even, ironic pinto bean'), +(5125,28,'O',38065.28,'1998-02-07','5-LOW','Clerk#000000834',0,'quickly regular packages sleep permanent'), +(5126,112,'F',92123.32,'1992-10-12','4-NOT SPECIFIED','Clerk#000000270',0,'ironic deposits are carefully blithel'), +(5127,73,'O',48024.99,'1997-01-15','5-LOW','Clerk#000000829',0,'blithely ironic asymptotes wake stealthily slyly regular foxes: slyly regu'), +(5152,44,'O',60568.34,'1997-01-04','3-MEDIUM','Clerk#000000963',0,'final, regular deposits after the carefully pending accounts cajo'), +(5153,113,'O',193832.28,'1995-08-26','1-URGENT','Clerk#000000954',0,'quickly pending packages around the ideas nag'), +(5154,8,'O',28070.86,'1997-04-13','3-MEDIUM','Clerk#000000316',0,'regular asymptotes are. pinto beans wake slyly regular pinto bea'), +(5155,77,'F',70183.29,'1994-06-12','2-HIGH','Clerk#000000108',0,'blithely regular requests against the furiou'), +(5156,125,'O',59439.44,'1996-11-04','5-LOW','Clerk#000000117',0,'ironic epitaphs wake around the courts. fina'), +(5157,142,'O',167056.34,'1997-07-06','4-NOT SPECIFIED','Clerk#000000689',0,'fluffily even deposits x-ray carefully '), +(5158,76,'O',240284.95,'1997-01-21','1-URGENT','Clerk#000000541',0,'quickly bold pearls use blithely bol'), +(5159,106,'O',147543.26,'1996-09-25','1-URGENT','Clerk#000000303',0,'regular, ironic dependencies wake furiously around the fluffily '), +(5184,85,'O',209155.48,'1998-07-20','5-LOW','Clerk#000000250',0,'carefully unusual pa'); +INSERT INTO orders VALUES +(5185,148,'O',206179.68,'1997-07-25','3-MEDIUM','Clerk#000000195',0,'fluffily pending packages cajole! final, even ideas serve doggedly acro'), +(5186,52,'O',208892.63,'1996-08-03','1-URGENT','Clerk#000000332',0,'carefully bold theodolites acr'), +(5187,55,'O',46380.69,'1997-07-16','3-MEDIUM','Clerk#000000682',0,'carefully unusual frays boost blithely. regular, final excuses haggle. blithe'), +(5188,140,'P',66268.86,'1995-03-02','4-NOT SPECIFIED','Clerk#000000029',0,'quickly busy ideas use furiously quickly bol'), +(5189,71,'F',184172.31,'1993-11-26','5-LOW','Clerk#000000940',0,'even foxes poach carefully slyly special ideas. brave'), +(5190,58,'F',89684.31,'1992-04-26','5-LOW','Clerk#000000888',0,'ideas haggle furiously among the instructions. slyly fin'), +(5191,77,'F',119910.04,'1994-12-11','4-NOT SPECIFIED','Clerk#000000318',0,'ironic, ironic pinto beans cajole carefully around the slyly exp'), +(5216,59,'O',16763.95,'1997-08-14','3-MEDIUM','Clerk#000000418',0,'final accounts across the furiously ironic accounts lose quickly al'), +(5217,35,'O',135745.58,'1995-10-13','2-HIGH','Clerk#000000873',0,'furiously express pinto beans nod slyly regular deposits. boldly even ins'), +(5218,82,'F',73882.37,'1992-07-30','4-NOT SPECIFIED','Clerk#000000683',0,'slyly regular excuses integrate quickly after the carefully ironic de'), +(5219,88,'O',21267.72,'1997-02-27','1-URGENT','Clerk#000000510',0,'stealthily special foxes boost slyly abo'), +(5220,10,'F',24844.39,'1992-07-30','2-HIGH','Clerk#000000051',0,'carefully unusual theodolites h'), +(5221,13,'O',71968.1,'1995-06-09','4-NOT SPECIFIED','Clerk#000000324',0,'carefully even idea'), +(5222,80,'F',1051.15,'1994-05-27','4-NOT SPECIFIED','Clerk#000000613',0,'regular requests affix against the dependencies! permanently sp'), +(5223,149,'F',105561.21,'1994-06-30','1-URGENT','Clerk#000000745',0,'ironic packages sleep s'), +(5248,70,'P',86958.28,'1995-04-15','2-HIGH','Clerk#000000737',0,'regular ideas cajole instructions. id'), +(5249,103,'F',123586.03,'1994-09-06','3-MEDIUM','Clerk#000000019',0,'quickly special instructions'), +(5250,97,'O',29673.73,'1995-07-16','2-HIGH','Clerk#000000307',0,'orbits nag slyly above the furiously'), +(5251,34,'O',34004.48,'1995-04-12','3-MEDIUM','Clerk#000000687',0,'furiously final accounts serve carefully quickly silent excuses. furiou'), +(5252,91,'O',173145.37,'1996-02-17','1-URGENT','Clerk#000000724',0,'platelets haggle in place of the blithely even requests. unus'), +(5253,148,'P',108361.46,'1995-04-11','2-HIGH','Clerk#000000275',0,'carefully bold deposits cajole across the ironic, ironic deposits. closel'), +(5254,112,'F',196989.09,'1992-07-26','4-NOT SPECIFIED','Clerk#000000527',0,'theodolites thrash special theod'), +(5255,64,'O',75074.07,'1996-07-12','5-LOW','Clerk#000000591',0,'carefully ironic orbits according to the foxes are carefully blithel'), +(5280,34,'O',68052.7,'1997-12-03','3-MEDIUM','Clerk#000000604',0,'slyly bold deposits behind th'), +(5281,124,'O',179418.31,'1995-11-02','2-HIGH','Clerk#000000158',0,'furiously ironic theodolites boost quic'), +(5282,50,'O',94446.69,'1998-01-30','1-URGENT','Clerk#000000030',0,'furiously regular ideas snooze agains'), +(5283,131,'F',18594.66,'1994-06-04','3-MEDIUM','Clerk#000000579',0,'ironic packages haggle furiously.'), +(5284,61,'O',40548.99,'1995-07-09','4-NOT SPECIFIED','Clerk#000000155',0,'furious, silent platelets according to the bold, ironic foxes use throughout '), +(5285,70,'F',99377.51,'1994-01-18','2-HIGH','Clerk#000000976',0,'fluffily unusual pains play blithely. packages sleep bravely. even theod'), +(5286,116,'O',79646.89,'1997-09-26','5-LOW','Clerk#000000606',0,'regular, regular deposits haggle blithely regular requests. car'), +(5287,25,'F',30045.95,'1993-12-22','5-LOW','Clerk#000000406',0,'pending packages boost. carefully express r'), +(5312,65,'F',66697.95,'1995-02-24','2-HIGH','Clerk#000000690',0,'furiously pending pinto beans integrate carefully after the'); +INSERT INTO orders VALUES +(5313,13,'O',159870.44,'1997-06-17','4-NOT SPECIFIED','Clerk#000000896',0,'regular, express sheaves boost above the'), +(5314,34,'O',26999.83,'1995-06-02','2-HIGH','Clerk#000000617',0,'carefully unusual deposits nag. packages maintain blithe'), +(5315,139,'F',55554.97,'1992-10-29','4-NOT SPECIFIED','Clerk#000000035',0,'furiously pending requests eat: fluffily even requests boost carefully '), +(5316,100,'F',62316.61,'1994-01-31','1-URGENT','Clerk#000000734',0,'final accounts about the packages sleep furious'), +(5317,37,'F',228002.51,'1994-09-09','5-LOW','Clerk#000000687',0,'carefully brave packages use carefully special theodolites. express, expr'), +(5318,59,'F',106935.19,'1993-04-04','2-HIGH','Clerk#000000663',0,'regular, regular requests cajole furiou'), +(5319,98,'O',68619.29,'1996-01-21','1-URGENT','Clerk#000000237',0,'fluffily unusual packages integrate carefully. even, pending courts subl'), +(5344,109,'O',88216.32,'1998-06-21','3-MEDIUM','Clerk#000000569',0,'final ideas boost. even sentiments wake furi'), +(5345,31,'O',111924.56,'1997-08-24','1-URGENT','Clerk#000000057',0,'deposits are slyly. final, final excuses promi'), +(5346,37,'F',149536.2,'1993-12-26','2-HIGH','Clerk#000000220',0,'ironic patterns haggle according to the fluffily regular pa'), +(5347,49,'F',173024.71,'1995-02-22','3-MEDIUM','Clerk#000000180',0,'slyly regular ideas cajole'), +(5348,53,'O',119164.96,'1997-11-08','5-LOW','Clerk#000000497',0,'quickly final accounts according to the fin'), +(5349,67,'O',38038.84,'1996-09-01','1-URGENT','Clerk#000000960',0,'quickly regular pinto beans at the carefully '), +(5350,76,'F',113417.03,'1993-10-10','5-LOW','Clerk#000000604',0,'slyly regular dolphins nod ca'), +(5351,122,'O',76799.25,'1998-05-11','1-URGENT','Clerk#000000443',0,'final, express requests cajole furiously according to th'), +(5376,149,'F',98422.83,'1994-07-04','5-LOW','Clerk#000000392',0,'carefully unusual requests are blithely above the deposi'), +(5377,64,'O',117728.37,'1997-04-24','2-HIGH','Clerk#000000917',0,'daringly final somas above the fluffily even foxes use slyly above the b'), +(5378,43,'F',101899.93,'1992-10-25','1-URGENT','Clerk#000000520',0,'blithely regular requests are about the even, regular pinto beans. even de'), +(5379,89,'O',47010.15,'1995-08-08','2-HIGH','Clerk#000000503',0,'regular deposits lose quickly after the s'), +(5380,148,'O',123014.83,'1997-10-12','1-URGENT','Clerk#000000481',0,'regular, quiet accoun'), +(5381,32,'F',223995.46,'1993-01-29','5-LOW','Clerk#000000531',0,'ironic packages about the foxes affix against the quickly express f'), +(5382,35,'F',138423.03,'1992-01-13','5-LOW','Clerk#000000809',0,'blithely express dependencies boost always. silent p'), +(5383,31,'O',11474.95,'1995-05-26','5-LOW','Clerk#000000409',0,'pinto beans along the slyly'), +(5408,23,'F',123477.05,'1992-07-21','5-LOW','Clerk#000000735',0,'carefully regular deposits among the deposits cajole quickly special instructi'), +(5409,13,'F',145040.38,'1992-01-09','5-LOW','Clerk#000000171',0,'carefully final accounts ac'), +(5410,22,'O',139104.17,'1998-07-28','4-NOT SPECIFIED','Clerk#000000117',0,'final theodolites haggle blithely daringly re'), +(5411,61,'O',62541.27,'1997-05-16','3-MEDIUM','Clerk#000000800',0,'quickly careful packages hinder carefully. slyly fi'), +(5412,142,'O',109979.71,'1998-01-20','2-HIGH','Clerk#000000151',0,'slyly permanent ideas affix furiously. regular packages cajole quickly. qui'), +(5413,94,'O',224382.57,'1997-10-17','1-URGENT','Clerk#000000066',0,'even requests among the '), +(5414,100,'F',167017.39,'1993-03-25','4-NOT SPECIFIED','Clerk#000000242',0,'blithely final deposits are s'), +(5415,23,'F',176864.83,'1992-08-05','3-MEDIUM','Clerk#000000998',0,'regular, furious excuses wake furiously bold asymptotes. carefully regu'), +(5440,130,'O',3223.17,'1997-01-12','1-URGENT','Clerk#000000154',0,'final pinto beans serve'), +(5441,41,'F',131891.05,'1994-07-21','4-NOT SPECIFIED','Clerk#000000257',0,'pinto beans cajole across the carefully bold theodolites. th'); +INSERT INTO orders VALUES +(5442,43,'O',139332.94,'1998-01-13','4-NOT SPECIFIED','Clerk#000000954',0,'special, unusual ideas about the furiously unusual fo'), +(5443,131,'O',124950.79,'1996-10-10','4-NOT SPECIFIED','Clerk#000000492',0,'furiously unusual theodolites haggle blithely against the '), +(5444,130,'P',172908.01,'1995-03-18','1-URGENT','Clerk#000000677',0,'pinto beans alongside of the carefully bold requests promise f'), +(5445,115,'F',114990.63,'1993-07-26','5-LOW','Clerk#000000623',0,'blithely bold requests wake quickly s'), +(5446,7,'F',29920.8,'1994-06-21','5-LOW','Clerk#000000304',0,'furiously even packages a'), +(5447,13,'O',29029.84,'1996-03-16','3-MEDIUM','Clerk#000000597',0,'slyly regular ideas cajole carefully. fluffily regular requ'), +(5472,70,'F',221636.83,'1993-04-11','5-LOW','Clerk#000000552',0,'fluffily bold orbits boost blithely. escapades sl'), +(5473,65,'F',63041.33,'1992-03-25','4-NOT SPECIFIED','Clerk#000000306',0,'pending dolphins wake enticingly under the quickly even theodol'), +(5474,55,'F',131079.52,'1992-06-01','4-NOT SPECIFIED','Clerk#000000487',0,'quickly ironic deposits sleep carefully along the the'), +(5475,139,'O',10645.48,'1996-07-07','5-LOW','Clerk#000000856',0,'even foxes eat blithely final'), +(5476,91,'O',26906.38,'1997-11-06','1-URGENT','Clerk#000000189',0,'blithely final theodolites are across the furiousl'), +(5477,107,'O',130125.64,'1997-12-30','5-LOW','Clerk#000000689',0,'ironic, idle gifts affix furio'), +(5478,116,'O',97502.23,'1996-05-17','1-URGENT','Clerk#000000272',0,'regular packages wake along the slyly final de'), +(5479,70,'F',70553.45,'1993-12-22','3-MEDIUM','Clerk#000000335',0,'slyly express packages use blithely. quickly eve'), +(5504,19,'F',41492.25,'1993-01-06','2-HIGH','Clerk#000000221',0,'theodolites across the caref'), +(5505,95,'O',147329.51,'1997-10-04','5-LOW','Clerk#000000719',0,'express, regular requests are caref'), +(5506,91,'F',8413.31,'1993-11-08','1-URGENT','Clerk#000000292',0,'carefully unusual braids haggle f'), +(5507,2,'O',140363.7,'1998-05-28','5-LOW','Clerk#000000692',0,'carefully regular deposits sleep carefully final instructions. blit'), +(5508,56,'O',3808.05,'1996-06-21','1-URGENT','Clerk#000000128',0,'slyly special frays above the s'), +(5509,80,'F',135335.96,'1994-04-08','5-LOW','Clerk#000000164',0,'unusual, ironic ideas nag blithely. regular, careful requests hang care'), +(5510,37,'F',126948.81,'1993-01-08','3-MEDIUM','Clerk#000000819',0,'blithely ironic foxes boost even, final ideas.'), +(5511,79,'F',151089.96,'1994-11-29','1-URGENT','Clerk#000000438',0,'requests after the packages are ironic, even deposits. caref'), +(5536,116,'O',108196.56,'1998-03-16','4-NOT SPECIFIED','Clerk#000000076',0,'quickly pending excuses detect ironic ideas. q'), +(5537,118,'O',102207.2,'1996-10-03','3-MEDIUM','Clerk#000000742',0,'carefully ironic accounts cajole across the spe'), +(5538,139,'F',90981.28,'1993-12-25','1-URGENT','Clerk#000000992',0,'carefully even instruc'), +(5539,119,'F',39397.6,'1994-07-31','5-LOW','Clerk#000000675',0,'unusual, even deposits haggle furiously. furiously regular fox'), +(5540,130,'O',90707.58,'1996-10-12','4-NOT SPECIFIED','Clerk#000000120',0,'even, even requests detect carefully. pending, final packages around the the'), +(5541,143,'O',37526.68,'1997-09-30','3-MEDIUM','Clerk#000000217',0,'furiously unusual instructio'), +(5542,49,'O',6402.41,'1996-04-20','4-NOT SPECIFIED','Clerk#000000100',0,'even, express pinto beans wake blithely up the quickly even pi'), +(5543,115,'F',118201.53,'1993-09-25','3-MEDIUM','Clerk#000000644',0,'slyly unusual packages above the bold, final '), +(5568,31,'O',105421.09,'1995-06-07','3-MEDIUM','Clerk#000000491',0,'ironic courts sleep even instructions. blithely express foxes by the regula'), +(5569,109,'F',126113.32,'1993-04-30','4-NOT SPECIFIED','Clerk#000000759',0,'carefully special requests dazzle fluffily fina'), +(5570,112,'O',78567.55,'1996-08-12','2-HIGH','Clerk#000000795',0,'regular platelets cajole quickly unusual courts. enticing ideas nag furious'); +INSERT INTO orders VALUES +(5571,103,'F',79248.35,'1992-12-19','4-NOT SPECIFIED','Clerk#000000184',0,'slyly regular ideas sleep slyly among the ca'), +(5572,8,'F',182966.39,'1994-07-17','2-HIGH','Clerk#000000163',0,'regular instructions wake quickly regular packag'), +(5573,37,'O',158479.37,'1996-08-15','3-MEDIUM','Clerk#000000055',0,'ironic theodolites sleep abou'), +(5574,28,'F',129803.03,'1992-03-10','4-NOT SPECIFIED','Clerk#000000002',0,'quickly bold accoun'), +(5575,103,'O',51839.94,'1995-07-24','5-LOW','Clerk#000000948',0,'carefully regular packages after the express dep'), +(5600,95,'O',53649.35,'1997-02-08','4-NOT SPECIFIED','Clerk#000000019',0,'furiously final warhorses run quickly after the final pin'), +(5601,11,'F',118570.79,'1992-01-06','2-HIGH','Clerk#000000827',0,'final, bold deposits x-ray blithely; sentiments sleep carefully bol'), +(5602,130,'O',67979.49,'1997-07-30','3-MEDIUM','Clerk#000000395',0,'furiously final packages along the bold, expres'), +(5603,71,'F',145100.47,'1992-06-20','4-NOT SPECIFIED','Clerk#000000535',0,'carefully special packages '), +(5604,46,'O',98987.51,'1998-04-14','4-NOT SPECIFIED','Clerk#000000123',0,'pinto beans sleep fluffily. slyly stealthy '), +(5605,35,'O',172899.84,'1996-08-22','2-HIGH','Clerk#000000538',0,'quickly thin deposits wake. carefully ironic somas r'), +(5606,149,'O',219959.08,'1996-11-12','5-LOW','Clerk#000000688',0,'slyly ironic asymptotes hinder behind the even requests. blithely even depen'), +(5607,92,'F',24660.06,'1992-01-01','4-NOT SPECIFIED','Clerk#000000137',0,'regular, ironic depths haggle furiously alo'), +(5632,79,'O',89503.11,'1996-02-05','1-URGENT','Clerk#000000508',0,'even asymptotes nag. ironic, bold deposits '), +(5633,79,'O',207119.83,'1998-05-31','3-MEDIUM','Clerk#000000841',0,'accounts about the slyly regular instructions are alongside of'), +(5634,68,'O',99494.67,'1996-07-31','3-MEDIUM','Clerk#000000915',0,'final accounts cajole carefully. slyly final accounts sleep. even, regul'), +(5635,70,'F',192217.86,'1992-08-16','3-MEDIUM','Clerk#000000734',0,'fluffily ironic instructions doubt furiously carefully s'), +(5636,122,'F',143350.75,'1995-02-16','3-MEDIUM','Clerk#000000916',0,'blithely ironic dolphins cajole blithely. bold requests along the special '), +(5637,103,'O',128776.9,'1996-06-17','3-MEDIUM','Clerk#000000183',0,'even, final theodolites around the blithely final asymptotes should wake'), +(5638,109,'F',79197.77,'1994-01-17','1-URGENT','Clerk#000000355',0,'carefully regular theodolites sleep fu'), +(5639,145,'F',9669.46,'1994-06-02','3-MEDIUM','Clerk#000000005',0,'unusual requests cajole quickly. regular '), +(5664,119,'O',186215.81,'1998-07-23','2-HIGH','Clerk#000000789',0,'furiously regular packages cajole bold pinto beans. carefully '), +(5665,100,'F',129821.09,'1993-06-28','4-NOT SPECIFIED','Clerk#000000513',0,'regular platelets are. blithely ironic packages within the f'), +(5666,14,'F',121663.68,'1994-02-02','2-HIGH','Clerk#000000396',0,'special ideas print fluffily qu'), +(5667,44,'O',37301.25,'1995-08-10','1-URGENT','Clerk#000000358',0,'furiously ironic deposits cajole carefully acro'), +(5668,109,'F',13679.32,'1995-03-22','4-NOT SPECIFIED','Clerk#000000047',0,'regular, final packages wake. final'), +(5669,74,'O',113156.3,'1996-05-06','1-URGENT','Clerk#000000336',0,'quietly regular accounts according to the blithely spec'), +(5670,7,'F',101429.61,'1993-04-21','5-LOW','Clerk#000000922',0,'pinto beans integrate fur'), +(5671,43,'O',176647.54,'1998-02-06','2-HIGH','Clerk#000000838',0,'pending instructions cajole instead of the patterns. ironic packag'), +(5696,142,'P',198723.3,'1995-05-04','1-URGENT','Clerk#000000447',0,'fluffily even accounts cajole quickly'), +(5697,55,'F',99177.69,'1992-10-05','1-URGENT','Clerk#000000112',0,'furiously unusual accounts wake'), +(5698,95,'F',154936.43,'1994-05-21','3-MEDIUM','Clerk#000000455',0,'final ideas along the final packages sleep furiousl'), +(5699,142,'F',226314.91,'1992-07-30','5-LOW','Clerk#000000311',0,'slyly ironic pinto beans are. special requests haggle a'); +INSERT INTO orders VALUES +(5700,143,'O',79901.18,'1997-12-25','1-URGENT','Clerk#000000618',0,'slyly bold ideas wake slyly. closely express'), +(5701,43,'O',16689.19,'1997-02-07','5-LOW','Clerk#000000798',0,'deposits snooze around the ir'), +(5702,97,'F',153024.28,'1993-09-07','4-NOT SPECIFIED','Clerk#000000743',0,'furiously final the'), +(5703,121,'F',1816.28,'1993-05-16','3-MEDIUM','Clerk#000000647',0,'quickly express asym'), +(5728,80,'F',85397.04,'1994-12-11','4-NOT SPECIFIED','Clerk#000000426',0,'slyly unusual theodolites among the slyly express platelets kindle careful'), +(5729,44,'F',88080.33,'1994-10-10','2-HIGH','Clerk#000000843',0,'ironic, pending waters integrate across the express deposits. '), +(5730,11,'O',10934.84,'1997-12-18','1-URGENT','Clerk#000000181',0,'slyly ironic ideas cajole. bold packages haggle among the carefull'), +(5731,8,'O',57823.37,'1997-05-17','5-LOW','Clerk#000000841',0,'bold requests about the even, even accounts cajole fluffily regular, even pat'), +(5732,37,'O',28330.42,'1997-08-03','1-URGENT','Clerk#000000910',0,'regular instructions cajole blithely outside the slyly bold deposi'), +(5733,101,'F',38545.97,'1993-03-17','2-HIGH','Clerk#000000873',0,'slyly ironic packages use blithely even deposits. un'), +(5734,94,'O',45860.94,'1997-10-12','3-MEDIUM','Clerk#000000084',0,'furiously even reques'), +(5735,40,'F',39358.51,'1994-12-11','3-MEDIUM','Clerk#000000600',0,'quickly even asympto'), +(5760,25,'F',59404.77,'1994-05-25','4-NOT SPECIFIED','Clerk#000000498',0,'regular, regular instructions nag across the quickly even packag'), +(5761,16,'O',130345.9,'1998-07-06','3-MEDIUM','Clerk#000000208',0,'ironic, unusual packages are final ideas! furiously bold dolphins aff'), +(5762,49,'O',165019.32,'1997-02-14','1-URGENT','Clerk#000000901',0,'quickly dogged packages ha'), +(5763,8,'O',140838.11,'1998-06-26','4-NOT SPECIFIED','Clerk#000000633',0,'quickly ironic multipliers about the bold deposits s'), +(5764,131,'F',53212.95,'1993-10-03','4-NOT SPECIFIED','Clerk#000000363',0,'blithely pending courts must have to haggle never toward the '), +(5765,52,'F',249900.42,'1994-12-15','5-LOW','Clerk#000000959',0,'furiously even instructions sleep quickly. slyly regular requests lose even d'), +(5766,49,'F',47940.51,'1993-09-27','5-LOW','Clerk#000000753',0,'slyly express accounts sleep furiously alongside of the instructions. slyly '), +(5767,118,'F',135643.87,'1992-04-29','2-HIGH','Clerk#000000225',0,'ironic, express instructions cajole'), +(5792,26,'F',158991.89,'1993-04-04','2-HIGH','Clerk#000000731',0,'unusual pinto beans are final requests. even packages haggle quickly. carefull'), +(5793,37,'O',119887.47,'1997-07-13','2-HIGH','Clerk#000000294',0,'blithely express theodolites wake cl'), +(5794,8,'F',122823.78,'1993-04-05','5-LOW','Clerk#000000855',0,'carefully slow pinto beans are slyly-- slyly spec'), +(5795,37,'F',35514.45,'1992-05-05','2-HIGH','Clerk#000000581',0,'deposits sleep across '), +(5796,149,'O',23280.61,'1996-01-23','3-MEDIUM','Clerk#000000326',0,'ruthlessly express pinto beans nod blithely slyly sp'), +(5797,122,'O',15313.61,'1997-10-15','4-NOT SPECIFIED','Clerk#000000381',0,'carefully unusual ideas according to the'), +(5798,106,'O',125011.92,'1998-03-30','5-LOW','Clerk#000000343',0,'foxes are furiously regula'), +(5799,26,'O',71381.21,'1995-08-03','1-URGENT','Clerk#000000238',0,'slyly regular depths sleep. slyl'), +(5824,56,'O',169107.85,'1996-12-03','2-HIGH','Clerk#000000171',0,'carefully pending depos'), +(5825,61,'F',23020.62,'1995-02-21','5-LOW','Clerk#000000494',0,'express, pending pinto bea'), +(5826,22,'O',21119.86,'1998-06-13','1-URGENT','Clerk#000000087',0,'packages wake quickly. blithely express requests c'), +(5827,31,'O',137297.71,'1998-07-23','3-MEDIUM','Clerk#000000660',0,'carefully final frays nag slyly across the blithely unus'), +(5828,127,'F',62172.34,'1994-03-06','5-LOW','Clerk#000000377',0,'furiously even instruction'), +(5829,125,'O',183734.56,'1997-01-11','1-URGENT','Clerk#000000196',0,'closely ironic reques'); +INSERT INTO orders VALUES +(5830,85,'F',28223.57,'1993-03-25','3-MEDIUM','Clerk#000000233',0,'blithely even dolphins thrash carefully. quickly bold accounts are carefully a'), +(5831,139,'O',113505.19,'1996-11-17','5-LOW','Clerk#000000585',0,'blithely regular frays cajole. bravely iro'), +(5856,37,'F',71460.49,'1994-11-06','2-HIGH','Clerk#000000634',0,'accounts boost fluffily accor'), +(5857,124,'O',158345.31,'1997-11-06','4-NOT SPECIFIED','Clerk#000000267',0,'quickly bold instructions haggle slyl'), +(5858,64,'F',181320.5,'1992-07-14','4-NOT SPECIFIED','Clerk#000000580',0,'bold instructions are slyl'), +(5859,5,'O',210643.96,'1997-04-23','1-URGENT','Clerk#000000993',0,'slyly unusual excuses han'), +(5860,13,'F',9495.28,'1992-02-20','4-NOT SPECIFIED','Clerk#000000079',0,'final requests boost about the express, final packages! slyly ironic d'), +(5861,139,'O',41450.19,'1997-04-10','3-MEDIUM','Clerk#000000094',0,'deposits breach enticingly slyly express excuses. furiously ironic pinto bean'), +(5862,64,'O',30550.9,'1997-02-20','1-URGENT','Clerk#000000039',0,'slyly regular requests across'), +(5863,65,'F',67941.54,'1993-11-22','3-MEDIUM','Clerk#000000774',0,'carefully even packages wake. unusual, '), +(5888,46,'O',67167.19,'1996-09-28','3-MEDIUM','Clerk#000000748',0,'thin, even instructions cajole carefully ironic instructions. '), +(5889,22,'O',15417.57,'1995-05-23','5-LOW','Clerk#000000690',0,'final epitaphs nag fluffily blithely pending '), +(5890,49,'F',41162.24,'1992-11-04','2-HIGH','Clerk#000000013',0,'furiously unusual deposits sleep furiously final packages. carefull'), +(5891,46,'F',41760,'1992-12-29','3-MEDIUM','Clerk#000000302',0,'pending, even packages to the unusual, ironic grouches wake carefully p'), +(5892,101,'P',92340.77,'1995-05-09','5-LOW','Clerk#000000639',0,'finally quick ideas integrate furiously even foxes. ironic packages haggl'), +(5893,2,'F',44777.63,'1992-07-08','4-NOT SPECIFIED','Clerk#000000560',0,'furiously even somas hang slyly. closely ironic deposits nag blit'), +(5894,71,'F',70377.31,'1994-08-13','2-HIGH','Clerk#000000776',0,'blithely pending instructions among the furiously even ideas sleep spec'), +(5895,64,'O',201419.83,'1997-01-01','4-NOT SPECIFIED','Clerk#000000747',0,'carefully even accounts detect. instructions after the courts use '), +(5920,119,'F',142767.26,'1994-11-20','2-HIGH','Clerk#000000081',0,'enticingly even accounts haggle pending ideas. carefully even '), +(5921,58,'F',152940,'1994-04-07','5-LOW','Clerk#000000125',0,'carefully regular foxes cajole final deposits. fluffily p'), +(5922,143,'O',142494.99,'1996-11-14','5-LOW','Clerk#000000625',0,'excuses detect carefully. final account'), +(5923,101,'O',157968.27,'1997-05-27','2-HIGH','Clerk#000000304',0,'quickly special deposits dazzle '), +(5924,31,'O',106823.97,'1995-10-10','3-MEDIUM','Clerk#000000433',0,'furiously regular accounts wake. blithely even i'), +(5925,146,'O',242588.87,'1995-11-13','5-LOW','Clerk#000000602',0,'ironic theodolites sleep carefully express requests. slyly ev'), +(5926,76,'F',105770.53,'1994-05-20','5-LOW','Clerk#000000071',0,'slyly ironic deposits use slyly along the fluffily spec'), +(5927,116,'O',84983.9,'1997-08-28','4-NOT SPECIFIED','Clerk#000000972',0,'ironic, silent accounts are blithely blithely bol'), +(5952,148,'O',128624.99,'1997-04-14','3-MEDIUM','Clerk#000000950',0,'carefully ironic deposits wake. blithely unusual theodolites nag'), +(5953,7,'F',95312.81,'1992-03-28','1-URGENT','Clerk#000000049',0,'packages at the blithely even'), +(5954,28,'F',167262.34,'1992-12-03','1-URGENT','Clerk#000000968',0,'bold deposits wake quickly alongside of the fluffily regular requests.'), +(5955,94,'P',67944.38,'1995-03-27','5-LOW','Clerk#000000340',0,'blithely final foxes are caref'), +(5956,22,'O',118036.54,'1998-05-18','1-URGENT','Clerk#000000587',0,'blithely careful pinto beans '), +(5957,89,'F',230949.45,'1993-12-27','2-HIGH','Clerk#000000020',0,'fluffily express platelets boost again'), +(5958,115,'O',145060.41,'1995-09-16','3-MEDIUM','Clerk#000000787',0,'silent, bold pinto beans detect above t'); +INSERT INTO orders VALUES +(5959,23,'F',195515.26,'1992-05-15','3-MEDIUM','Clerk#000000913',0,'silent packages wake after the quickly final accounts. ruthles'), +(5984,70,'F',83413.3,'1994-06-18','5-LOW','Clerk#000000023',0,'blithely even packages nag slyly'), +(5985,143,'F',3942.73,'1995-01-12','3-MEDIUM','Clerk#000000417',0,'quickly unusual deco'), +(5986,115,'F',92187.8,'1992-04-22','2-HIGH','Clerk#000000674',0,'unusual, regular accounts should '), +(5987,64,'O',98956.82,'1996-08-03','1-URGENT','Clerk#000000464',0,'furiously pending realms are'), +(5988,31,'F',41655.51,'1993-11-22','4-NOT SPECIFIED','Clerk#000000867',0,'regular deposits sleep. final theodol'); + +CREATE TABLE part ( + p_partkey int(11) NOT NULL, + p_name varchar(55) DEFAULT NULL, + p_mfgr char(25) DEFAULT NULL, + p_brand char(10) DEFAULT NULL, + p_type varchar(25) DEFAULT NULL, + p_size int(11) DEFAULT NULL, + p_container char(10) DEFAULT NULL, + p_retailprice double DEFAULT NULL, + p_comment varchar(23) DEFAULT NULL, + PRIMARY KEY (p_partkey) +); +INSERT INTO part VALUES +(1,'goldenrod lace spring peru powder','Manufacturer#1','Brand#13','PROMO BURNISHED COPPER',7,'JUMBO PKG',901,'final deposits s'), +(2,'blush rosy metallic lemon navajo','Manufacturer#1','Brand#13','LARGE BRUSHED BRASS',1,'LG CASE',902,'final platelets hang f'), +(3,'dark green antique puff wheat','Manufacturer#4','Brand#42','STANDARD POLISHED BRASS',21,'WRAP CASE',903,'unusual excuses ac'), +(4,'chocolate metallic smoke ghost drab','Manufacturer#3','Brand#34','SMALL PLATED BRASS',14,'MED DRUM',904,'ironi'), +(5,'forest blush chiffon thistle chocolate','Manufacturer#3','Brand#32','STANDARD POLISHED TIN',15,'SM PKG',905,'pending, spe'), +(6,'white ivory azure firebrick black','Manufacturer#2','Brand#24','PROMO PLATED STEEL',4,'MED BAG',906,'pending pinto be'), +(7,'blue blanched tan indian olive','Manufacturer#1','Brand#11','SMALL PLATED COPPER',45,'SM BAG',907,'blithely ironic'), +(8,'ivory khaki cream midnight rosy','Manufacturer#4','Brand#44','PROMO BURNISHED TIN',41,'LG DRUM',908,'furiously eve'), +(9,'thistle rose moccasin light floral','Manufacturer#4','Brand#43','SMALL BURNISHED STEEL',12,'WRAP CASE',909,'thinly even request'), +(10,'floral moccasin royal powder burnished','Manufacturer#5','Brand#54','LARGE BURNISHED STEEL',44,'LG CAN',910.01,'bold, ironic '), +(11,'chocolate turquoise sandy snow misty','Manufacturer#2','Brand#25','STANDARD BURNISHED NICKEL',43,'WRAP BOX',911.01,'furiousl'), +(12,'peru ivory olive powder frosted','Manufacturer#3','Brand#33','MEDIUM ANODIZED STEEL',25,'JUMBO CASE',912.01,'quietly even foxes '), +(13,'ghost blue olive sky gainsboro','Manufacturer#5','Brand#55','MEDIUM BURNISHED NICKEL',1,'JUMBO PACK',913.01,'platelets poach blith'), +(14,'linen seashell burnished blue gainsboro','Manufacturer#1','Brand#13','SMALL POLISHED STEEL',28,'JUMBO BOX',914.01,'special, regular'), +(15,'navajo dark sky turquoise royal','Manufacturer#1','Brand#15','LARGE ANODIZED BRASS',45,'LG CASE',915.01,'carefully fi'), +(16,'deep brown turquoise dim papaya','Manufacturer#3','Brand#32','PROMO PLATED TIN',2,'MED PACK',916.01,'slyly final de'), +(17,'burnished navy orange dodger cream','Manufacturer#4','Brand#43','ECONOMY BRUSHED STEEL',16,'LG BOX',917.01,'slyly regular do'), +(18,'spring indian forest khaki midnight','Manufacturer#1','Brand#11','SMALL BURNISHED STEEL',42,'JUMBO PACK',918.01,'ironic, iro'), +(19,'dodger forest floral cream black','Manufacturer#2','Brand#23','SMALL ANODIZED NICKEL',33,'WRAP BOX',919.01,'blithely pe'), +(20,'bisque salmon dark blanched linen','Manufacturer#1','Brand#12','LARGE POLISHED NICKEL',48,'MED BAG',920.02,'slyly ironi'), +(21,'lemon aquamarine firebrick floral almond','Manufacturer#3','Brand#33','SMALL BURNISHED TIN',31,'MED BAG',921.02,'furiously even co'), +(22,'medium floral beige cornsilk olive','Manufacturer#4','Brand#43','PROMO POLISHED BRASS',19,'LG DRUM',922.02,'ironic, '), +(23,'firebrick bisque slate rose blanched','Manufacturer#3','Brand#35','MEDIUM BURNISHED TIN',42,'JUMBO JAR',923.02,'slyly special inst'), +(24,'saddle dim white honeydew spring','Manufacturer#5','Brand#52','MEDIUM PLATED STEEL',20,'MED CASE',924.02,'express deposits'), +(25,'blush forest magenta metallic turquoise','Manufacturer#5','Brand#55','STANDARD BRUSHED COPPER',3,'JUMBO BAG',925.02,'slyly pending p'), +(26,'lawn forest misty chartreuse snow','Manufacturer#3','Brand#32','SMALL BRUSHED STEEL',32,'SM CASE',926.02,'fluffily ironic '), +(27,'plum drab cornflower brown dim','Manufacturer#1','Brand#14','LARGE ANODIZED TIN',20,'MED PKG',927.02,'unusua'), +(28,'green honeydew dim cyan bisque','Manufacturer#4','Brand#44','SMALL PLATED COPPER',19,'JUMBO PKG',928.02,'slyly unusua'), +(29,'aquamarine sky salmon rose burlywood','Manufacturer#3','Brand#33','PROMO PLATED COPPER',7,'LG DRUM',929.02,'furiously final pl'), +(30,'blush beige steel cyan navy','Manufacturer#4','Brand#42','PROMO ANODIZED TIN',17,'LG BOX',930.03,'furiously bold '), +(31,'grey ghost steel maroon moccasin','Manufacturer#5','Brand#53','STANDARD BRUSHED TIN',10,'LG BAG',931.03,'ironic'); +INSERT INTO part VALUES +(32,'yellow wheat midnight papaya blue','Manufacturer#4','Brand#42','ECONOMY PLATED BRASS',31,'LG CASE',932.03,'blithely unu'), +(33,'maroon beige mint cyan peru','Manufacturer#2','Brand#22','ECONOMY PLATED NICKEL',16,'LG PKG',933.03,'furiously pendin'), +(34,'bisque pink dodger cream goldenrod','Manufacturer#1','Brand#13','LARGE BRUSHED STEEL',8,'JUMBO BOX',934.03,'unusu'), +(35,'green blue coral antique sandy','Manufacturer#4','Brand#43','MEDIUM ANODIZED BRASS',14,'JUMBO PACK',935.03,'even, '), +(36,'chiffon smoke floral misty navy','Manufacturer#2','Brand#25','SMALL BURNISHED COPPER',3,'JUMBO CAN',936.03,'ironic courts gro'), +(37,'turquoise ivory orange sandy maroon','Manufacturer#4','Brand#45','LARGE POLISHED TIN',48,'JUMBO BOX',937.03,'blithely regular'), +(38,'seashell floral bisque midnight black','Manufacturer#4','Brand#43','ECONOMY ANODIZED BRASS',11,'SM JAR',938.03,'furiously pend'), +(39,'rose dodger lace peru floral','Manufacturer#5','Brand#53','SMALL POLISHED TIN',43,'JUMBO JAR',939.03,'quickly bo'), +(40,'rosy midnight floral misty green','Manufacturer#2','Brand#25','ECONOMY BURNISHED COPPER',27,'SM CASE',940.04,'quickly ironic dolphi'), +(41,'burlywood ghost antique metallic pale','Manufacturer#2','Brand#23','ECONOMY ANODIZED TIN',7,'WRAP JAR',941.04,'unusual, qui'), +(42,'midnight azure bisque turquoise lawn','Manufacturer#5','Brand#52','MEDIUM BURNISHED TIN',45,'LG BOX',942.04,'carefully final reques'), +(43,'medium khaki chocolate rosy blush','Manufacturer#4','Brand#44','PROMO POLISHED STEEL',5,'WRAP CASE',943.04,'carefully iro'), +(44,'medium maroon wheat lavender blush','Manufacturer#4','Brand#45','MEDIUM PLATED TIN',48,'SM PACK',944.04,'regular, regular theod'), +(45,'lemon medium frosted indian linen','Manufacturer#4','Brand#43','SMALL BRUSHED NICKEL',9,'WRAP BAG',945.04,'packa'), +(46,'antique peru lemon sandy steel','Manufacturer#1','Brand#11','STANDARD POLISHED TIN',45,'WRAP CASE',946.04,'stealt'), +(47,'sky firebrick red linen dim','Manufacturer#4','Brand#45','LARGE BURNISHED BRASS',14,'JUMBO PACK',947.04,'bold, unusual a'), +(48,'slate thistle indian lace drab','Manufacturer#5','Brand#53','STANDARD BRUSHED STEEL',27,'JUMBO CASE',948.04,'furiously '), +(49,'blue tan cornsilk burlywood beige','Manufacturer#2','Brand#24','SMALL BURNISHED TIN',31,'MED DRUM',949.04,'carefu'), +(50,'yellow cornflower royal blush almond','Manufacturer#3','Brand#33','LARGE ANODIZED TIN',25,'WRAP PKG',950.05,'regular dinos ar'), +(51,'lime forest puff deep firebrick','Manufacturer#4','Brand#45','ECONOMY BURNISHED NICKEL',34,'JUMBO PACK',951.05,'Tiresias haggle blith'), +(52,'lemon lace khaki powder blanched','Manufacturer#3','Brand#35','STANDARD BURNISHED TIN',25,'WRAP CASE',952.05,'furiously regula'), +(53,'grey black dodger sandy puff','Manufacturer#2','Brand#23','ECONOMY BURNISHED NICKEL',32,'MED BAG',953.05,'slyly silent'), +(54,'peach smoke yellow pale cornflower','Manufacturer#2','Brand#21','LARGE BURNISHED COPPER',19,'WRAP CASE',954.05,'regular'), +(55,'antique cream pale tomato rose','Manufacturer#2','Brand#23','ECONOMY BRUSHED COPPER',9,'MED BAG',955.05,'furiously'), +(56,'midnight goldenrod drab ivory blanched','Manufacturer#1','Brand#12','MEDIUM PLATED STEEL',20,'WRAP DRUM',956.05,'instruction'), +(57,'purple blue tan goldenrod medium','Manufacturer#3','Brand#32','MEDIUM BURNISHED BRASS',49,'MED PKG',957.05,'slyly bold'), +(58,'linen beige coral dim salmon','Manufacturer#5','Brand#53','STANDARD POLISHED TIN',44,'LG PACK',958.05,'ironically bold theo'), +(59,'misty blush metallic spring blanched','Manufacturer#5','Brand#53','MEDIUM POLISHED TIN',2,'LG BAG',959.05,'express ins'), +(60,'sky burnished salmon navajo hot','Manufacturer#1','Brand#11','LARGE POLISHED COPPER',27,'JUMBO CASE',960.06,'blithely bol'), +(61,'drab burnished lime navy slate','Manufacturer#5','Brand#54','SMALL BURNISHED NICKEL',18,'WRAP DRUM',961.06,'slyly spe'), +(62,'tan ivory aquamarine indian burlywood','Manufacturer#3','Brand#35','STANDARD BRUSHED BRASS',39,'JUMBO BOX',962.06,'carefully furious'); +INSERT INTO part VALUES +(63,'frosted puff hot rose coral','Manufacturer#3','Brand#32','STANDARD BURNISHED NICKEL',10,'JUMBO CAN',963.06,'fluffily unus'), +(64,'aquamarine puff papaya hot floral','Manufacturer#2','Brand#21','MEDIUM ANODIZED BRASS',1,'JUMBO CAN',964.06,'unusual, regula'), +(65,'slate lavender tomato black floral','Manufacturer#5','Brand#53','MEDIUM BRUSHED COPPER',3,'MED CAN',965.06,'careful'), +(66,'cornflower orchid chocolate lawn light','Manufacturer#3','Brand#35','PROMO ANODIZED NICKEL',46,'SM CASE',966.06,'express fox'), +(67,'slate cornsilk red orange plum','Manufacturer#2','Brand#21','SMALL BRUSHED TIN',31,'WRAP DRUM',967.06,'slyly regular packag'), +(68,'bisque frosted pale puff sandy','Manufacturer#1','Brand#11','PROMO ANODIZED STEEL',10,'WRAP BOX',968.06,'carefully '), +(69,'peru green linen blush olive','Manufacturer#5','Brand#52','MEDIUM POLISHED BRASS',2,'SM BOX',969.06,'deposits sublate fl'), +(70,'violet midnight dark cornsilk wheat','Manufacturer#1','Brand#11','STANDARD BRUSHED STEEL',42,'LG PACK',970.07,'fluffily express instr'), +(71,'sky green spring lavender white','Manufacturer#3','Brand#33','STANDARD PLATED BRASS',26,'WRAP DRUM',971.07,'slyly special acco'), +(72,'orange spring burlywood chocolate black','Manufacturer#2','Brand#23','STANDARD ANODIZED TIN',25,'JUMBO PACK',972.07,'furiously '), +(73,'cream misty tomato peach burlywood','Manufacturer#2','Brand#21','SMALL BRUSHED COPPER',35,'WRAP DRUM',973.07,'furio'), +(74,'dim linen frosted thistle pale','Manufacturer#5','Brand#55','ECONOMY ANODIZED BRASS',25,'JUMBO CASE',974.07,'quick'), +(75,'aquamarine lace wheat salmon blue','Manufacturer#3','Brand#35','SMALL BURNISHED NICKEL',39,'SM JAR',975.07,'quickly bo'), +(76,'bisque light yellow puff salmon','Manufacturer#3','Brand#34','MEDIUM BRUSHED COPPER',9,'SM PKG',976.07,'final '), +(77,'slate bisque burnished honeydew beige','Manufacturer#5','Brand#52','STANDARD BRUSHED COPPER',13,'MED PKG',977.07,'carefully special p'), +(78,'blush green slate bisque powder','Manufacturer#1','Brand#14','ECONOMY POLISHED STEEL',24,'LG JAR',978.07,'furio'), +(79,'puff pink floral steel forest','Manufacturer#4','Brand#45','PROMO ANODIZED BRASS',22,'JUMBO BAG',979.07,'regular deposit'), +(80,'tomato saddle brown bisque light','Manufacturer#4','Brand#44','PROMO PLATED BRASS',28,'MED CAN',980.08,'blithel'), +(81,'misty salmon cornflower dark frosted','Manufacturer#5','Brand#53','ECONOMY BRUSHED TIN',21,'MED BAG',981.08,'slyly '), +(82,'khaki tomato purple indian lemon','Manufacturer#1','Brand#15','ECONOMY POLISHED TIN',12,'WRAP BOX',982.08,'ideas'), +(83,'chocolate green deep lace aquamarine','Manufacturer#1','Brand#12','PROMO BURNISHED NICKEL',47,'SM CAN',983.08,'bold dependenci'), +(84,'salmon peru frosted red chiffon','Manufacturer#4','Brand#45','SMALL ANODIZED NICKEL',26,'JUMBO PACK',984.08,'pending, regular inst'), +(85,'aquamarine cornsilk floral misty light','Manufacturer#5','Brand#55','PROMO ANODIZED NICKEL',16,'LG BAG',985.08,'quickly even deposi'), +(86,'green blanched khaki steel deep','Manufacturer#4','Brand#44','STANDARD PLATED TIN',37,'LG CASE',986.08,'special, un'), +(87,'pale khaki sandy antique black','Manufacturer#4','Brand#41','LARGE PLATED STEEL',41,'WRAP PACK',987.08,'slyly even instruction'), +(88,'blue olive azure burlywood lavender','Manufacturer#4','Brand#44','PROMO PLATED COPPER',16,'SM CASE',988.08,'deposi'), +(89,'ghost khaki lawn pale dim','Manufacturer#5','Brand#53','STANDARD BURNISHED STEEL',7,'MED JAR',989.08,'quickly ironi'), +(90,'ghost goldenrod violet blue purple','Manufacturer#5','Brand#51','ECONOMY POLISHED STEEL',49,'JUMBO CAN',990.09,'regular courts de'), +(91,'dark beige metallic ivory burlywood','Manufacturer#2','Brand#21','STANDARD BRUSHED TIN',32,'JUMBO PKG',991.09,'final, final requests'), +(92,'chiffon dodger turquoise thistle red','Manufacturer#2','Brand#22','STANDARD ANODIZED TIN',35,'JUMBO PKG',992.09,'fluffily express a'), +(93,'blanched yellow cornflower khaki mint','Manufacturer#2','Brand#24','LARGE ANODIZED TIN',2,'WRAP DRUM',993.09,'instructio'); +INSERT INTO part VALUES +(94,'azure pink orange goldenrod grey','Manufacturer#3','Brand#35','STANDARD POLISHED BRASS',32,'SM BOX',994.09,'fluffily '), +(95,'coral chocolate wheat smoke magenta','Manufacturer#3','Brand#33','LARGE BRUSHED TIN',36,'WRAP DRUM',995.09,'regular packag'), +(96,'steel light drab chartreuse honeydew','Manufacturer#5','Brand#53','STANDARD BRUSHED STEEL',32,'SM CASE',996.09,'furiously bold p'), +(97,'metallic dodger aquamarine azure drab','Manufacturer#3','Brand#33','MEDIUM POLISHED BRASS',49,'WRAP CAN',997.09,'ironic t'), +(98,'frosted goldenrod chartreuse dark honeydew','Manufacturer#5','Brand#54','STANDARD ANODIZED BRASS',22,'MED JAR',998.09,'furiou'), +(99,'lemon peru chiffon sienna deep','Manufacturer#2','Brand#21','SMALL BURNISHED STEEL',11,'JUMBO PKG',999.09,'furiously silent pla'), +(100,'light orange khaki chiffon purple','Manufacturer#3','Brand#33','ECONOMY ANODIZED TIN',4,'LG BAG',1000.1,'instruction'), +(101,'hot yellow turquoise violet floral','Manufacturer#3','Brand#32','LARGE ANODIZED STEEL',26,'JUMBO JAR',1001.1,'slyly special '), +(102,'firebrick orchid blanched sienna grey','Manufacturer#3','Brand#31','MEDIUM BURNISHED BRASS',17,'SM DRUM',1002.1,'slyly ironic asympto'), +(103,'navy cream lime orange metallic','Manufacturer#2','Brand#25','MEDIUM PLATED BRASS',45,'WRAP DRUM',1003.1,'pending, i'), +(104,'dim cream chocolate cornflower orange','Manufacturer#1','Brand#13','MEDIUM ANODIZED STEEL',36,'JUMBO BAG',1004.1,'pending,'), +(105,'rose puff ivory blanched burnished','Manufacturer#1','Brand#15','SMALL POLISHED COPPER',27,'LG DRUM',1005.1,'express, bold reques'), +(106,'cornsilk beige deep lavender antique','Manufacturer#3','Brand#31','MEDIUM PLATED BRASS',28,'WRAP DRUM',1006.1,'blithely special th'), +(107,'cyan coral red slate orange','Manufacturer#5','Brand#53','SMALL BURNISHED TIN',12,'MED BOX',1007.1,'furiously '), +(108,'honeydew papaya gainsboro tomato puff','Manufacturer#1','Brand#12','PROMO PLATED NICKEL',41,'MED PKG',1008.1,'final '), +(109,'lemon indian blanched chiffon coral','Manufacturer#3','Brand#33','ECONOMY POLISHED TIN',11,'LG PACK',1009.1,'ironic accounts nag bl'), +(110,'cornflower azure beige floral black','Manufacturer#3','Brand#33','STANDARD BURNISHED COPPER',46,'LG DRUM',1010.11,'bold asy'), +(111,'sandy almond chocolate moccasin misty','Manufacturer#5','Brand#54','LARGE BRUSHED COPPER',28,'JUMBO JAR',1011.11,'fluff'), +(112,'hot burnished tomato chocolate peru','Manufacturer#4','Brand#43','PROMO BRUSHED STEEL',42,'JUMBO CAN',1012.11,'even theodoli'), +(113,'almond coral royal honeydew lawn','Manufacturer#3','Brand#31','PROMO POLISHED TIN',23,'LG CAN',1013.11,'carefully regula'), +(114,'pale bisque antique white royal','Manufacturer#5','Brand#51','MEDIUM POLISHED NICKEL',41,'MED PACK',1014.11,'carefully '), +(115,'spring hot sienna azure dark','Manufacturer#4','Brand#45','STANDARD POLISHED STEEL',24,'MED CAN',1015.11,'quickly unusu'), +(116,'thistle cornsilk pale firebrick black','Manufacturer#5','Brand#53','PROMO POLISHED NICKEL',33,'SM PACK',1016.11,'fluffily pending depos'), +(117,'tomato grey chiffon burlywood ghost','Manufacturer#1','Brand#14','SMALL BRUSHED TIN',25,'LG BAG',1017.11,'blithely pending '), +(118,'bisque plum royal burlywood brown','Manufacturer#2','Brand#25','PROMO ANODIZED TIN',31,'MED PACK',1018.11,'theodolites '), +(119,'olive black navajo burlywood ghost','Manufacturer#4','Brand#43','LARGE POLISHED STEEL',30,'WRAP CASE',1019.11,'blithely pendin'), +(120,'navy chocolate frosted burnished moccasin','Manufacturer#1','Brand#14','SMALL ANODIZED NICKEL',45,'WRAP JAR',1020.12,'ironic'), +(121,'smoke chiffon gainsboro magenta firebrick','Manufacturer#1','Brand#14','ECONOMY BRUSHED COPPER',13,'SM PKG',1021.12,'slyly ironic '), +(122,'ghost royal chocolate peach ivory','Manufacturer#2','Brand#21','MEDIUM ANODIZED TIN',8,'LG DRUM',1022.12,'pinto beans w'), +(123,'cream almond papaya salmon blanched','Manufacturer#1','Brand#12','SMALL BURNISHED TIN',31,'JUMBO PKG',1023.12,'carefu'); +INSERT INTO part VALUES +(124,'wheat azure khaki tan lime','Manufacturer#3','Brand#32','PROMO ANODIZED STEEL',1,'LG BOX',1024.12,'furiously'), +(125,'metallic indian magenta navy medium','Manufacturer#1','Brand#12','STANDARD BRUSHED BRASS',17,'WRAP BAG',1025.12,'carefully fina'), +(126,'burnished navy indian medium deep','Manufacturer#4','Brand#45','MEDIUM BRUSHED NICKEL',4,'LG BAG',1026.12,'slowly bold pin'), +(127,'moccasin green orchid blue blanched','Manufacturer#5','Brand#52','SMALL BURNISHED NICKEL',14,'LG JAR',1027.12,'slyly ironic packages '), +(128,'linen brown khaki snow gainsboro','Manufacturer#2','Brand#22','PROMO PLATED TIN',5,'SM BAG',1028.12,'furiously regul'), +(129,'turquoise spring sandy tan ivory','Manufacturer#1','Brand#15','LARGE POLISHED TIN',20,'SM JAR',1029.12,'ironic ide'), +(130,'gainsboro goldenrod chiffon orchid rose','Manufacturer#2','Brand#23','SMALL PLATED NICKEL',26,'LG BOX',1030.13,'always even pi'), +(131,'tomato moccasin sandy blue frosted','Manufacturer#5','Brand#52','STANDARD ANODIZED BRASS',43,'MED DRUM',1031.13,'blithely regul'), +(132,'seashell papaya thistle light powder','Manufacturer#4','Brand#45','STANDARD BURNISHED BRASS',2,'WRAP DRUM',1032.13,'furiously '), +(133,'navajo black dim peru deep','Manufacturer#1','Brand#13','SMALL BRUSHED NICKEL',19,'LG PKG',1033.13,'theodolites sublate f'), +(134,'turquoise goldenrod white moccasin spring','Manufacturer#4','Brand#42','SMALL POLISHED STEEL',35,'SM PKG',1034.13,'pinto beans use fluffi'), +(135,'metallic lime cyan forest burlywood','Manufacturer#2','Brand#21','MEDIUM BURNISHED STEEL',24,'JUMBO CASE',1035.13,'special hock'), +(136,'cornsilk blush powder tan rose','Manufacturer#2','Brand#22','SMALL PLATED STEEL',2,'WRAP BAG',1036.13,'requests against'), +(137,'saddle dodger purple salmon rosy','Manufacturer#3','Brand#31','ECONOMY PLATED STEEL',25,'MED PACK',1037.13,'careful '), +(138,'dark goldenrod ghost hot grey','Manufacturer#1','Brand#13','ECONOMY BURNISHED COPPER',42,'JUMBO DRUM',1038.13,'blithely final'), +(139,'floral chocolate purple deep coral','Manufacturer#3','Brand#32','MEDIUM BRUSHED STEEL',7,'SM BOX',1039.13,'furiou'), +(140,'frosted chiffon thistle sky grey','Manufacturer#5','Brand#53','STANDARD PLATED STEEL',45,'SM BOX',1040.14,'blithely final depen'), +(141,'peru sienna salmon snow gainsboro','Manufacturer#3','Brand#35','STANDARD ANODIZED STEEL',23,'SM PKG',1041.14,'quickly even'), +(142,'chartreuse sky deep slate thistle','Manufacturer#5','Brand#55','STANDARD ANODIZED BRASS',36,'MED JAR',1042.14,'quickly e'), +(143,'moccasin dim almond black misty','Manufacturer#3','Brand#34','ECONOMY PLATED TIN',44,'MED BAG',1043.14,'slyly express fo'), +(144,'wheat brown orange almond aquamarine','Manufacturer#1','Brand#14','SMALL ANODIZED TIN',26,'SM BOX',1044.14,'blithely bold r'), +(145,'indian rosy chartreuse orchid grey','Manufacturer#5','Brand#53','PROMO BRUSHED COPPER',24,'SM BAG',1045.14,'bold acc'), +(146,'azure medium midnight burlywood blue','Manufacturer#3','Brand#34','STANDARD BRUSHED COPPER',11,'WRAP PACK',1046.14,'slyly ironic '), +(147,'honeydew brown deep light chartreuse','Manufacturer#1','Brand#11','MEDIUM PLATED COPPER',29,'JUMBO PKG',1047.14,'quickly special co'), +(148,'yellow white tan khaki saddle','Manufacturer#3','Brand#31','STANDARD PLATED STEEL',20,'SM BOX',1048.14,'carefull'), +(149,'tan cyan forest ghost plum','Manufacturer#2','Brand#24','MEDIUM BURNISHED NICKEL',6,'MED PKG',1049.14,'slyly bold d'), +(150,'antique red moccasin green burlywood','Manufacturer#3','Brand#35','LARGE BRUSHED TIN',21,'SM BAG',1050.15,'bold a'), +(151,'chartreuse lime slate white thistle','Manufacturer#3','Brand#34','LARGE PLATED BRASS',45,'MED CAN',1051.15,'accounts wake c'), +(152,'light indian linen dodger blush','Manufacturer#5','Brand#53','MEDIUM POLISHED STEEL',48,'MED CASE',1052.15,'careful'), +(153,'powder firebrick chiffon purple khaki','Manufacturer#1','Brand#11','STANDARD PLATED TIN',20,'MED BAG',1053.15,'always f'); +INSERT INTO part VALUES +(154,'peru powder pink orchid lace','Manufacturer#1','Brand#11','ECONOMY ANODIZED TIN',1,'JUMBO BAG',1054.15,'furiously regular requ'), +(155,'beige saddle cornsilk mint sky','Manufacturer#2','Brand#21','SMALL BRUSHED NICKEL',28,'WRAP CASE',1055.15,'fluffily'), +(156,'steel gainsboro plum black cornsilk','Manufacturer#4','Brand#43','SMALL POLISHED NICKEL',2,'LG PKG',1056.15,'package'), +(157,'navajo lime cream ghost drab','Manufacturer#1','Brand#11','ECONOMY ANODIZED STEEL',26,'JUMBO PACK',1057.15,'ironic '), +(158,'magenta light rosy almond goldenrod','Manufacturer#4','Brand#45','MEDIUM BURNISHED COPPER',47,'LG JAR',1058.15,'carefully ironic'), +(159,'linen drab antique steel aquamarine','Manufacturer#4','Brand#43','SMALL ANODIZED BRASS',46,'SM BAG',1059.15,'ironic '), +(160,'lace coral cream saddle maroon','Manufacturer#5','Brand#55','STANDARD POLISHED COPPER',47,'JUMBO CAN',1060.16,'accounts affix '), +(161,'hot dodger rosy firebrick aquamarine','Manufacturer#2','Brand#22','STANDARD PLATED TIN',17,'SM PACK',1061.16,'daringly final de'), +(162,'aquamarine coral black ivory misty','Manufacturer#3','Brand#33','MEDIUM ANODIZED COPPER',35,'JUMBO PACK',1062.16,'ruthlessly iron'), +(163,'blush yellow frosted lace drab','Manufacturer#2','Brand#21','ECONOMY PLATED TIN',34,'WRAP DRUM',1063.16,'blithely even '), +(164,'brown cream linen frosted blue','Manufacturer#2','Brand#23','LARGE PLATED BRASS',35,'JUMBO BAG',1064.16,'ironically final idea'), +(165,'chiffon dim coral sienna seashell','Manufacturer#1','Brand#15','STANDARD PLATED STEEL',24,'SM CAN',1065.16,'silent '), +(166,'linen royal chiffon floral misty','Manufacturer#5','Brand#52','LARGE POLISHED COPPER',4,'MED BAG',1066.16,'enticingly pending r'), +(167,'almond lavender lawn pink ghost','Manufacturer#3','Brand#32','LARGE ANODIZED STEEL',46,'WRAP BOX',1067.16,'accounts sl'), +(168,'lace frosted brown slate lawn','Manufacturer#1','Brand#13','SMALL BRUSHED COPPER',20,'JUMBO DRUM',1068.16,'furiously close r'), +(169,'tan lime sky almond midnight','Manufacturer#5','Brand#55','STANDARD POLISHED BRASS',10,'JUMBO CASE',1069.16,'blithely'), +(170,'peru green hot medium thistle','Manufacturer#3','Brand#33','LARGE POLISHED COPPER',28,'LG DRUM',1070.17,'final, '), +(171,'beige seashell almond linen blush','Manufacturer#1','Brand#11','STANDARD BURNISHED COPPER',40,'LG JAR',1071.17,'unusual pack'), +(172,'medium goldenrod tan light brown','Manufacturer#5','Brand#53','PROMO PLATED NICKEL',28,'MED CASE',1072.17,'foxes wak'), +(173,'pale papaya tomato navajo coral','Manufacturer#1','Brand#12','ECONOMY BURNISHED TIN',17,'LG CASE',1073.17,'silent, special '), +(174,'plum pink medium saddle orchid','Manufacturer#1','Brand#15','ECONOMY BRUSHED COPPER',25,'LG CASE',1074.17,'carefully final reque'), +(175,'azure blanched chartreuse moccasin ghost','Manufacturer#1','Brand#11','PROMO ANODIZED TIN',45,'JUMBO JAR',1075.17,'realms solve even pin'), +(176,'lawn forest indian orchid peru','Manufacturer#2','Brand#24','SMALL ANODIZED STEEL',40,'MED CAN',1076.17,'furiously regula'), +(177,'indian deep sandy floral yellow','Manufacturer#2','Brand#21','MEDIUM BRUSHED STEEL',42,'LG BAG',1077.17,'silent requests '), +(178,'blue black cornflower white powder','Manufacturer#1','Brand#13','STANDARD POLISHED TIN',10,'LG JAR',1078.17,'pending pearls sleep'), +(179,'rose lime blush bisque ivory','Manufacturer#4','Brand#43','ECONOMY BRUSHED STEEL',20,'LG JAR',1079.17,'carefull'), +(180,'purple blanched khaki blush aquamarine','Manufacturer#3','Brand#33','STANDARD BURNISHED NICKEL',7,'WRAP BAG',1080.18,'furiously'), +(181,'almond burlywood smoke peru dark','Manufacturer#2','Brand#24','MEDIUM PLATED STEEL',19,'WRAP CAN',1081.18,'quickly ev'), +(182,'beige medium brown chartreuse purple','Manufacturer#3','Brand#31','MEDIUM ANODIZED COPPER',11,'JUMBO CAN',1082.18,'carefully unusual '), +(183,'ivory white wheat pale orange','Manufacturer#5','Brand#52','PROMO POLISHED STEEL',35,'LG PKG',1083.18,'regular packages d'); +INSERT INTO part VALUES +(184,'burlywood cream cornsilk chocolate purple','Manufacturer#5','Brand#53','SMALL POLISHED TIN',42,'LG BOX',1084.18,'quickly r'), +(185,'firebrick rose indian spring magenta','Manufacturer#4','Brand#44','ECONOMY POLISHED TIN',4,'WRAP BAG',1085.18,'pearls'), +(186,'papaya cream chartreuse spring blush','Manufacturer#2','Brand#23','ECONOMY BRUSHED TIN',15,'JUMBO PKG',1086.18,'ironic pinto '), +(187,'white brown cyan lavender orange','Manufacturer#4','Brand#45','PROMO ANODIZED BRASS',45,'MED CAN',1087.18,'blithely r'), +(188,'gainsboro steel rosy dim drab','Manufacturer#5','Brand#54','ECONOMY ANODIZED BRASS',9,'MED CAN',1088.18,'quick'), +(189,'dodger misty yellow brown grey','Manufacturer#2','Brand#22','MEDIUM BRUSHED BRASS',13,'WRAP DRUM',1089.18,'theodolites sl'), +(190,'chartreuse khaki ivory chiffon bisque','Manufacturer#5','Brand#53','LARGE BURNISHED NICKEL',23,'WRAP BAG',1090.19,'blithely regular reque'), +(191,'navajo metallic puff firebrick cornflower','Manufacturer#3','Brand#31','MEDIUM POLISHED BRASS',36,'WRAP BOX',1091.19,'ironic dep'), +(192,'light seashell firebrick cornflower green','Manufacturer#3','Brand#34','STANDARD BRUSHED COPPER',17,'MED BAG',1092.19,'grouches wake f'), +(193,'turquoise sienna rose rosy chocolate','Manufacturer#4','Brand#45','ECONOMY BURNISHED BRASS',31,'SM PKG',1093.19,'blithely i'), +(194,'powder bisque cornflower navajo pink','Manufacturer#5','Brand#51','ECONOMY POLISHED STEEL',7,'SM CAN',1094.19,'furiously specia'), +(195,'lace floral blush linen cornflower','Manufacturer#4','Brand#41','STANDARD BRUSHED NICKEL',40,'MED CASE',1095.19,'slyly ironic deposi'), +(196,'pale blush lime grey blue','Manufacturer#3','Brand#33','SMALL BURNISHED NICKEL',3,'JUMBO JAR',1096.19,'deposits are care'), +(197,'blue turquoise cornsilk rosy chartreuse','Manufacturer#5','Brand#52','SMALL ANODIZED COPPER',18,'SM JAR',1097.19,'quickly re'), +(198,'orange khaki papaya cyan navajo','Manufacturer#4','Brand#41','PROMO BRUSHED NICKEL',43,'SM PACK',1098.19,'carefully ironic '), +(199,'royal slate lace olive gainsboro','Manufacturer#3','Brand#31','ECONOMY PLATED STEEL',23,'JUMBO DRUM',1099.19,'furiously e'), +(200,'burnished mint navajo beige dark','Manufacturer#5','Brand#54','MEDIUM POLISHED BRASS',22,'LG PKG',1100.2,'blithely bo'); + +CREATE TABLE partsupp ( + ps_partkey int(11) NOT NULL DEFAULT '0', + ps_suppkey int(11) NOT NULL DEFAULT '0', + ps_availqty int(11) DEFAULT NULL, + ps_supplycost double DEFAULT NULL, + ps_comment varchar(199) DEFAULT NULL, + PRIMARY KEY (ps_partkey,ps_suppkey), + KEY i_ps_partkey (ps_partkey), + KEY i_ps_suppkey (ps_suppkey) +); +INSERT INTO partsupp VALUES +(1,2,3325,771.64,'requests after the carefully ironic ideas cajole alongside of the enticingly special accounts. fluffily regular deposits haggle about the blithely ironic deposits. regular requests sleep c'), +(1,4,8076,993.49,'careful pinto beans wake slyly furiously silent pinto beans. accounts wake pendi'), +(1,6,3956,337.09,'boldly silent requests detect. quickly regular courts are. instructions haggle ironic foxes. sometimes final orbits cajole fluffily around the unusual foxes. slyly silent theodolites cajole r'), +(1,8,4069,357.84,'regular deposits are. furiously even packages cajole furiously. even pinto beans boost furiously final dependencies. f'), +(2,3,8895,378.49,'furiously even asymptotes are furiously regular plate'), +(2,5,4969,915.27,'even accounts wake furiously. idle instructions sleep in '), +(2,7,8539,438.37,'furiously even pinto beans serve about the ironic idea'), +(2,9,3025,306.39,'deposits according to the final, special foxes detec'), +(3,4,4651,920.92,'ironic, pending theodolites sleep slyly at the slyly final foxes. slyly ironic accounts sleep express accounts. quickly fina'), +(3,6,4093,498.13,'furiously final requests nag after the even instructions. quickly pending accounts with the ironic packages sleep quickly blithely '), +(3,8,3917,645.4,'ideas along the fluffily special deposits detect furiously furiously quiet attainments. slyly special theodolites affix among the furiously bold dolphins. slyly final '), +(3,10,9942,191.92,'blithely silent accounts across the thinly ironic deposits are carefully ideas. always bold instructions dazzle carefully. fluffily pending dependencies boost! quickly express orbits nag. bra'), +(4,5,1339,113.97,'furiously even accounts sleep. slyly regular deposits hag'), +(4,7,6377,591.18,'sometimes silent accounts engage slyly with the unusual accounts. carefully s'), +(4,9,2694,51.37,'final deposits detect according to the blithely final packages. furiously unusual accounts engage carefully final reque'), +(4,1,2480,444.37,'carefully silent platelets haggle accounts? ironic ideas engage furiously along the regular, unusual deposits. carefully silent theodolites cajole quickly. even, regular t'), +(5,6,3735,255.88,'even, ironic requests snooze blithely throughout the carefully pending deposits. busy deposits mold blithely after the furiously final pinto beans. regular, unus'), +(5,8,9653,50.52,'even requests use quickly furiously pending foxes. regular gifts across the fluffily regular instructions haggle fluffily according to the careful realms. final packages along the fin'), +(5,10,1329,219.83,'fluffily final accounts against the slyly regular packages cajole special packages. blithe'), +(5,2,6925,537.98,'furiously regular dolphins wake furiously above the slyly unusual ideas. regular accounts among the packages wake blithely even packages. bold foxes above the furiously bold packages affix slyly t'), +(6,7,8851,130.72,'carefully regular asymptotes wake slyly according to the quickly re'), +(6,9,1627,424.25,'packages after the blithely ironic deposits engage quickly around the slyly unusual accounts. quickly pending theodolites boost. requests sleep speci'), +(6,1,3336,642.13,'ironic theodolites hang blithe, regular requests. final requests sleep furious'), +(6,3,6451,175.32,'regular, ironic accounts sleep ruthlessly around the deposits. slyly final deposits boost about the pending, bold grouches. silent, even theodolites along the final, even ideas cajole blithely '), +(7,8,7454,763.98,'carefully even ideas should wake. blithely final instructions are special foxes. pending, ironic requests wake blithely about the furiously regular foxes. ironic idea'), +(7,10,2770,149.66,'special, final foxes alongside of the furiously unusual excuses haggle carefully regular deposits. slyly regular courts about the ironic, final accounts cajole slyly across the fl'), +(7,2,3377,68.77,'regular platelets detect blithely? unusual requests along the express foxes haggle after the regular forges. furiously regular excuses haggle '); +INSERT INTO partsupp VALUES +(7,4,9460,299.58,'blithely regular deposits use. pending packages cajole special hockey players. s'), +(8,9,6834,249.63,'furiously unusual instructions use quickly. unusual deposits among the regular deposits doze unusual epitaph'), +(8,1,396,957.34,'furiously ruthless depths detect alongside of the express, final accounts. carefully '), +(8,3,9845,220.62,'slyly regular instructions unwind furiously. regular accounts hang furiously until the blithely pending decoys. deposits after the carefully regular instructions haggle furi'), +(8,5,8126,916.91,'final deposits wake slyly final, regular accounts. bold excuses haggle slyly about the pending theodolites. carefully final packages hang quickly above the slyly even frets. boldly ironic'), +(9,10,7054,84.2,'final ideas through the requests boost quickly about the furiously regular accounts. blithely silent foxes affix carefully ironic instructions. blithely bold foxe'), +(9,2,7542,811.84,'carefully unusual dependencies cajole fluffily beyond the quickly bold'), +(9,4,9583,381.31,'carefully ironic pinto beans nag against the quickly regular somas. regular, ironic deposits wake'), +(9,6,3063,291.84,'doggedly ironic waters are furiously. bold dependencie'), +(10,1,2952,996.12,'blithely even foxes nag furiously about the quickly ex'), +(10,3,3335,673.27,'final, regular foxes cajole carefully about the blithely express accounts. carefully regular platelets against the silent pinto beans sleep carefully among the blithely regular foxes. final r'), +(10,5,5691,164,'carefully express accounts wake ruthlessly. carefully ironic frets haggle furi'), +(10,7,841,374.02,'pending, pending requests may haggle sometimes. silent pinto beans are blithe'), +(11,2,4540,709.87,'final packages mold after the carefully unusual requests. quickly fi'), +(11,5,4729,894.9,'regular packages sleep carefully fluffily ironic ac'), +(11,8,3708,818.74,'slyly pending theodolites wake quickly unusual, express accounts. fluffily regular requests cajole furiously quickly even dugouts. slyly bold platelets '), +(11,1,3213,471.98,'ideas nag regular instructions. regular, thin pinto beans unwind furiously ironic accounts. quickly express platele'), +(12,3,3610,659.73,'unusual dolphins sleep slyly. ironic deposits use fluffily. carefully unusual platelets poach slyly. evenly pending deposits nag ironi'), +(12,6,7606,332.81,'slyly daring foxes nag slyly-- carefully special foxes integrate final accounts. accounts sleep slyly furiously special accounts. ironic, '), +(12,9,824,337.06,'quickly special pinto beans haggle quickly above the e'), +(12,2,5454,901.7,'regular ideas sleep about the ironic pinto beans. furious'), +(13,4,612,169.44,'blithely special theodolites serve quickly. regular deposits are alongside of the fluffily sl'), +(13,7,7268,862.7,'regular, regular packages integrate furiously across the quickly ironic deposits. furiously unusual foxes cajole bravely after the iron'), +(13,10,864,38.64,'furiously regular pinto beans wake quickly furiously regular dependencies. carefully silent requests cajole furiously final theodo'), +(13,3,9736,327.18,'slyly bold packages doubt slyly among the pending, regular instructions. instructions among the always final accounts mold thinly carefully bold foxes. blithely pending ideas integ'), +(14,5,5278,650.07,'quickly even deposits doze quickly pending, bold deposits. carefully regular packages sublate carefully'), +(14,8,5334,889.5,'express instructions affix quickly. slyly bold requests use. special, express foxes haggle fluffily express deposits. silently even pinto beans throughout the blithely iron'), +(14,1,3676,893.39,'carefully final orbits breach along the quickly ironic requests. evenly unusual instructions along the slyly final '), +(14,4,4947,310.13,'blithely final pinto beans wake special instructions. regular theodolites cajole slyly unusual foxes. fluff'), +(15,6,7047,835.7,'packages haggle across the carefully express ideas. slyly bold instructions promise even, express packages. furiously ironic acc'); +INSERT INTO partsupp VALUES +(15,9,3336,784.55,'unusual requests instead of the blithely stealthy excuses cajole'), +(15,2,3316,265.89,'carefully even foxes ought to cajole. carefully special deposits hang. quic'), +(15,5,5255,458.67,'carefully unusual requests above the fluffily unusual packages wake about the deposits. regular accounts use blithely slyly special packages? carefully final deposits are special platelets. fur'), +(16,7,5282,709.16,'final, final orbits hang slyly. blithely pending dolphins haggle. deposit'), +(16,10,9412,887.53,'express, special requests solve against the carefully regular packages-- slyly final excuses mold blithely across the blithely regular pinto beans. blithely iron'), +(16,3,854,781.91,'slow ideas use quickly asymptotes. quickly final pinto beans boost against the deposits-- final pinto beans sleep. carefully even dependencies sleep. quickly regular t'), +(16,6,1491,918.51,'blithely regular deposits across the furiously ironic packages integrate above the quickly express accounts. carefully final dolphins shall have to haggle blithely. carefully '), +(17,8,8555,995.35,'final deposits among the quickly unusual deposits detect unusual, final dependencies. theodolites cajole blithely. final, express depths wake blithely. slyly regular requests sleep. carefully regu'), +(17,1,7737,648.75,'deposits boost slyly. furiously dogged packages wake blithely even attainments. furiously ironic dolphins print bold, even instructions. courts detect. ironic requests accordin'), +(17,4,3123,555.04,'quickly final deposits are fluffily. brave packages use slyly. carefull'), +(17,7,3203,64.4,'fluffily sly instructions use slyly fluffily even excuses. furiously regular pinto beans among the quickly special'), +(18,9,1125,664.17,'furiously final packages wake furiously according to the furiously even packages. fluffily even deposits unwind carefully. instructions sleep furiously; '), +(18,2,8132,52.44,'instructions use quickly. slyly ironic theodolites sublate blithely along the carefully final platelets. asymptotes use requests. carefully pending instructions'), +(18,5,3133,568.61,'express dolphins cajole carefully along the ironic requests. quickly regular accounts haggle fluffily final packages. slyly final packages along the'), +(18,8,6475,386.29,'instructions are along the blithely special requests. dolphins'), +(19,10,1416,144.8,'silent packages impress fluffily slyly even theodolites. ironic deposits nag carefully excuses. express deposits wake slyly. '), +(19,3,5467,405.7,'regular packages cajole slyly unusual packages. even deposits detect regular deposits. ironic, special theodolit'), +(19,6,8800,635.66,'asymptotes cajole against the carefully pending Tiresias. stealthy, bold excuses according to the quickly final instruction'), +(19,9,1340,346.92,'slow deposits sleep blithely slyly final deposits. ironic deposits cajole furiously enticingly final packages! furiously bold asymptotes sleep along the quickly even ideas. quickly ironic '), +(20,1,2927,675.54,'slyly ironic deposits nag across the carefully regular somas. regular, even foxes cajole blithely ironic accounts. dolphins cajole carefully after the blithely express foxes. unusual '), +(20,4,2723,305.84,'fluffily even pinto beans ought to nag furiously above the slyly ironic pinto beans. carefully even courts mold. slyly special instructions among the fluffy, ruthless attainments a'), +(20,7,5905,546.66,'final instructions nag quickly around the unusual, thin pinto beans. final foxes nag among the thin, even foxes. furi'), +(20,10,4271,115.89,'blithely ironic deposits cajole ironic foxes. blithely unusual gifts alongside of the carefully ironic foxes integrate above the special pinto beans. furiously final dolphins use careful'), +(21,2,6571,944.44,'fluffily ironic depths wake slyly besides the packages. blithely unusual deposits boost about the regular pinto be'), +(21,6,1704,139.05,'carefully regular courts are. bold requests sleep. unusual deposits breach quickly. daringly regular pinto beans mold carefully. pending d'); +INSERT INTO partsupp VALUES +(21,10,7153,664.5,'blithely enticing dependencies affix slyly regular, unusual reque'), +(21,4,367,584.86,'blithely busy deposits wake. blithely final packages cajole blithely furiously unusual requests. d'), +(22,3,4410,786.18,'foxes solve blithely against the deposits. ironic, even accounts unwind requests. foxes might wake pending, even platelets. final braids '), +(22,7,9779,635.84,'slyly dogged accounts detect. regular frets boost'), +(22,1,7834,359.16,'blithely final platelets wake furiously. quickly even n'), +(22,5,1434,597.21,'requests are slyly accounts. theodolites above the carefully even requests boost furiously about the fluffily final pa'), +(23,4,2739,460.12,'ironic, regular foxes wake carefully. carefully final notornis according to the final requests nag furiously furiously brave dependencies. foxes wake about the ideas'), +(23,8,5739,103.13,'fluffily regular instructions use. blithely unusual requests believe blithely. pinto beans sleep carefully. regular ideas against the slyly r'), +(23,2,9898,233.94,'blithely ironic courts wake above the carefully unusual requests. ironic foxes nag fluffily at the accounts. platelets along the doggedly special asymptotes are even '), +(23,6,7035,51.75,'accounts sleep carefully unusual accounts. blithely ironic ideas above the quickly stealthy instructions sleep slyly after the carefully special requests. even pinto beans use blithely along'), +(24,5,5180,905.41,'fluffily bold packages cajole accounts. accounts nag fluffily slyly special deposits. furi'), +(24,9,2227,511.2,'carefully even instructions are fluffily at the regular requests. quickly final packages doubt blithely beside the slyly even accounts.'), +(24,3,7182,582.03,'bold, even pinto beans against the final pinto beans'), +(24,7,5318,62.15,'silent pinto beans at the slyly bold excuses boost blithely across the slyly regular courts. unusual, pending requests cajole re'), +(25,6,9029,832.74,'furiously express theodolites use. blithely ironic accounts cajole about the dependencies. ironic requests affix thinly blithely bold theodolit'), +(25,10,9062,928.96,'furiously silent dolphins dazzle slyly. unusual, bold orbits according to the pendi'), +(25,4,9946,694.35,'carefully fluffy asymptotes should have to wake. express, regular requests acr'), +(25,8,7340,746.59,'furiously regular deposits use carefully against the quickly unusual deposits. carefully special requests integrate carefully ironic accounts. busily ironic deposits alongside '), +(26,7,5020,683.96,'slyly final requests cajole furiously above the blithely pending accounts.'), +(26,1,6577,892.2,'slyly bold requests dazzle furiously about the regular requests. carefully furious ideas cajole alongside of the quickly bold accounts. ironic, even decoys are carefully ca'), +(26,5,3499,382.11,'special theodolites integrate quickly. special warthogs are carefully about the ironic ideas. carefully special hockey players use after the furiously permanent pinto beans. evenly bold acco'), +(26,9,9702,821.89,'ideas through the carefully ironic gifts use furiously against the even packages. furiously express deposits sleep furiously special ideas. fluffily express depos'), +(27,8,2111,444.01,'slyly unusual courts integrate blithely carefully '), +(27,2,9080,157.03,'furiously idle excuses sleep. final epitaphs use after the blithely final platelets. bold, regular deposits are regularly within the finally regular frets? bold, sile'), +(27,6,3407,151.34,'carefully bold braids serve carefully. enticingly final dependencies was. '), +(27,10,4283,348.61,'blithely even packages according to the slyly final instructions can nag across the silent foxes. unusual ideas behind the regular deposits boost quickly alongs'), +(28,9,6643,204.86,'ironic accounts wake? pending deposits at the pinto beans are after the blithely bold deposits. requests use regularly. slyly reg'), +(28,3,2452,744.57,'furiously bold packages sleep silent Tiresias. bold pinto beans sleep quickly. furiously express accounts impress ca'); +INSERT INTO partsupp VALUES +(28,7,302,690.3,'even packages cajole fluffily. bold, ironic theodolites run carefully final accounts. pinto beans nag blithely slyly regular dependencies! slyly express courts affix blithely agains'), +(28,1,9988,666.53,'carefully regular instructions eat blithely at the fluffily special req'), +(29,10,3506,799.27,'quickly unusual excuses nag final requests. slyly unusual deposits x-ray blithely. slyly unusual pinto beans maintain. fluf'), +(29,4,8106,981.33,'blithely regular accounts along the slyly regular instructi'), +(29,8,9193,734.44,'furiously regular theodolites across the carefully regular ideas use blit'), +(29,2,6252,186.21,'final, even deposits haggle slyly. furiously unusual deposits grow slyly. slyly regular theodolites cajole fluf'), +(30,1,4767,989.05,'regular packages across the furiously regular theodolites haggle quickl'), +(30,5,535,743.26,'carefully silent courts boost carefully carefully ironic deposits; special accounts haggle slyly final deposits. special excuses wake slyly quickly ironic requests. careful'), +(30,9,7756,568.86,'regular, regular pinto beans wake special packages? regular dependencies poach doggedly around the blithely express ideas. bold packages haggle. carefully iro'), +(30,3,7945,583.84,'slyly express asymptotes sleep slyly blithely silent courts. pending deposits haggle carefully according to the ironic, pending packages-- quickly quiet d'), +(31,2,9685,620.84,'blithely ironic dugouts unwind across the blithely ironic deposits. carefully regular pinto beans detect ideas. expr'), +(31,7,1951,120.99,'even deposits detect blithely sometimes ironic requests. even p'), +(32,3,2203,406.03,'express ideas according to the foxes nag slyly slyly even requests. final accounts use furiously furiousl'), +(32,8,467,109.34,'deposits haggle slyly unusual deposits; busily regular ideas wa'), +(33,4,4028,891.46,'regular theodolites at the ironic foxes wake blithely furiously regular depe'), +(33,9,4410,929.05,'express, regular requests maintain ironic, regular deposits. regula'), +(34,5,9934,848.75,'quickly blithe requests sleep slyly silent excuses. carefully ironic packages across the furiously express instructions haggle blithely blithely ironic notornis. quickly iro'), +(34,10,4749,265.31,'slyly regular deposits will solve slyly according to the always regular platelets. dugouts maintain furiously. furious accounts haggle furiously along the permanent foxes. slyly '), +(35,6,2500,451.58,'blithely even accounts are: carefully ironic accounts integrate slyly. final deposits wake c'), +(35,1,8875,537.72,'ironically express ideas about the furiously pending warhorses boost slyly ab'), +(36,7,3907,630.91,'regular, pending accounts lose furiously platelets. carefully silent sheaves about the slyly furious courts wake blithely after the bold foxes. final, unusual instruction'), +(36,2,174,434.47,'ironic, regular accounts are slyly. special, regular excuses wake blithely befo'), +(37,8,7171,824.96,'pending packages wake quietly. special, even accounts haggle unusual'), +(37,3,5542,126.59,'ironic, ironic packages are slyly. furiously regular excuses cajole blithely quickly ironic dependencies. regular packages use carefully furiously pending depths'), +(38,9,1226,570.11,'fluffily regular packages after the carefully final deposits are quickly ironic instructions. final req'), +(38,4,4237,662.75,'carefully ironic requests was quickly blithely pending frays-- requests thrash careful the'), +(39,10,3633,463.1,'slyly idle deposits at the slyly regular pinto beans wake furiously after the furiously ironic asymptotes. furiously ironic requests detect quickly! furiously even deposits wake sl'), +(39,5,3682,300.43,'slyly silent theodolites across the slyly ironic packages engage slyly deposits. final packages haggle quickly '), +(40,1,7690,776.13,'daringly special hockey players within the final packages are blithely about the instructions. carefully express dependencies boost f'), +(40,6,1704,565.82,'packages sleep carefully quietly regular accounts: special deposits are f'); +INSERT INTO partsupp VALUES +(41,2,9040,488.55,'slyly regular foxes run quickly. carefully even instructions w'), +(41,8,5946,391.81,'blithely silent accounts around the carefully regular instructions haggle carefully about the even, pending deposits. carefully ironic deposits wake alo'), +(41,4,1550,916.55,'quickly express requests are furiously even packages. fluffily final packages wake furiously fluffily even foxes. carefu'), +(41,10,560,37.59,'regular, bold packages wake after the fluffily express theodolites. carefully regular requests boost furiousl'), +(42,3,2893,716.81,'slyly ironic deposits after the slyly regular reque'), +(42,9,2927,709.06,'carefully express requests wake carefully. quickly ironic requests wake slyly. blithely even deposits snooze blithely after the express deposits.'), +(42,5,3500,200,'pending foxes nag slowly. slyly even requests are upon the re'), +(42,1,3662,29.46,'blithely regular pinto beans believe. carefully pending accounts across the furiously regular pinto beans are thinly above the express dependencies. ideas haggle ironic requests. quick'), +(43,4,3211,805.78,'final, express dependencies sleep according to the express requests. bold, regular accounts detect outside the slyly '), +(43,10,6770,493.19,'furiously special pinto beans cajole. ironic decoys across the '), +(43,6,9506,493.65,'carefully fluffy accounts across the blithely final accounts hang slyly according to the furiously special platelets. sil'), +(43,2,3232,307.12,'bold packages wake blithely above the furiously bold '), +(44,5,486,164.22,'requests around the packages integrate blithely a'), +(44,1,5310,114.37,'waters are blithely even deposits. daringly bold packages haggle daringly. special asymptotes are quickly about the enticing theodolites.'), +(44,7,3534,383.01,'pending, pending instructions are blithely furiously unusual requests.'), +(44,3,4798,833.15,'quickly enticing requests above the bold ideas nag along the blithely ironic foxes. regular, final foxes among the f'), +(45,6,1685,919.63,'tithes into the carefully final instructions wake qu'), +(45,2,5202,877.29,'slyly regular requests dazzle slyly pending requests. quietly regular packages after the regular, even dependencies cajo'), +(45,8,5669,532.7,'regular, unusual excuses wake doggedly until the pending requests. ruthlessly final asymptotes cajole furiously against the instructions; bold accounts use '), +(45,4,1872,155.32,'regular requests wake furiously. regular instructions haggle'), +(46,7,4171,244.65,'boldly even requests sleep carefully carefully busy requests. furiously regular ideas about the deposits are theodolites. carefully pending theodolites'), +(46,3,8518,106.8,'fluffily unusual accounts boost slyly about the ironic deposits: fluff'), +(46,9,7225,14.78,'silent theodolites affix. slyly busy pinto beans haggle unusual, silent packages. regular ideas h'), +(46,5,1381,985.88,'slyly pending accounts sleep slyly blithely regular mu'), +(47,8,6989,292.52,'slyly regular foxes are furiously. ironic accounts engage quickly ironic, close pinto beans. blithely ironic packages wake blithely ironic epitaphs. carefully even'), +(47,4,4458,539.47,'carefully ironic asymptotes against the permanently bold deposits boost furiously ruthless theodolites. carefully final requests are fluffily regula'), +(47,10,2896,74.54,'ironic requests across the always ironic pinto beans haggle furiously at the even frets. regular foxes along the unusual, final instructions sleep against the carefully fi'), +(47,6,5873,296.63,'express accounts haggle carefully. fluffily pending packages alongside of the fur'), +(48,9,5052,611.16,'silent pearls wake. carefully regular dependencies must use carefully against the slyly regular deposits. regular, ironic patterns detect furiously around the finally special foxes. fluf'), +(48,5,9451,191.36,'slyly final decoys will have to sleep alongside of the pending accounts. fur'), +(48,1,5564,668.19,'furiously even pinto beans poach blithely. carefully stealthy platelets wake slyly according to the bold requests. quiet, final deposit'); +INSERT INTO partsupp VALUES +(48,7,1719,606.16,'pending accounts sublate furiously. even deposits boost carefully after the final deposits'), +(49,10,9056,35.11,'carefully regular attainments wake fluffily blithely regular requests. slyly close ideas snooze. packages cajole final foxes. furiously final'), +(49,6,6646,908.15,'ironically final excuses integrate above the evenly even ideas? even, regular deposits cajole daringly special, express theodolites. blithely regular ideas are '), +(49,2,5336,713.25,'slyly even pinto beans boost fluffily final instructions. blithely unusual dependencies cajole slyly above the regular, ironic dependencies. unusual dug'), +(49,8,597,812.62,'forges against the final dolphins wake furiously according to the requests. regular depths wake above the quickly pending foxes. platelets nag furiously slyly ir'), +(50,1,1832,565.54,'quick deposits against the foxes affix carefully carefully special warthogs. regular deposits boost furiousl'), +(50,7,43,690.87,'slyly pending requests thrash fluffily boldly even dependencies. slyly regular ideas'), +(50,3,6160,301.06,'furiously pending dolphins sleep carefully regular, close requests. bold theodolites cajole furiously ironic accounts. theodolites cajole furio'), +(50,9,2104,107.17,'regular dependencies run. regular, special platelets cajole stealthily carefully ironic deposits. finally silent theodolites are against the quietly re'), +(51,2,837,310.74,'requests use slyly regular instructions. even foxes will sleep blithely against the dependen'), +(51,9,7318,85.03,'carefully final deposits use furiously final courts. slyly bold orbits wake among the furiously fluffy frets. quickly regular accounts nag furiously-- ideas wake about the pack'), +(51,6,138,728.95,'unusual requests haggle. fluffily ironic ideas above'), +(51,3,8062,901.04,'carefully brave packages detect permanently. blithely ironic acc'), +(52,3,6533,54.92,'ironic excuses according to the quickly ironic requests boost regular, express excuses. furiously bold deposits ar'), +(52,10,1937,210.44,'carefully special courts about the blithely ironic requests cajole bold '), +(52,7,4084,628.53,'carefully even deposits integrate around the ideas. carefully special accounts would promise furiously. express requests haggle s'), +(52,4,5524,424.93,'special accounts around the slyly regular foxes need to cajole furiously care'), +(53,4,6443,192.78,'ironic, even patterns wake. blithely ironic sentiments against the deposits haggle blit'), +(53,1,5319,563.44,'fluffily ironic requests boost furiously above the final foxes. even, unusual asymptotes are slyly according to the regular deposits. slyly ironic notornis sleep blithely again'), +(53,8,8200,388.08,'quickly regular foxes lose! furiously regular packages wake fluffily carefully final theodolites. carefully ironic accounts snooz'), +(53,5,6929,224.83,'ironic deposits are blithely final deposits. furiously express ideas sleep slyly according to the permanent foxes: blithely even braids boost slyly furiously bold excuses. furiously qu'), +(54,5,2515,686.51,'blithely unusual requests sleep carefully. slyly regular ideas maintain against the regular, express accounts. quickly unusual deposits bo'), +(54,2,7079,798.98,'carefully bold pinto beans among the even packages unwind quickly quickly final requests. quickly final deposits promise car'), +(54,9,2386,23.78,'stealthily regular sheaves are. furiously regular asymptotes among th'), +(54,6,536,259.24,'furiously regular pinto beans about the furiously regular instructions dazzle furiously foxes. unusual requests use alongside of the regular orbits.'), +(55,6,7874,611.04,'silent dolphins must haggle. regular, ironic theodolites affix unusual, regular fo'), +(55,3,8460,236.27,'asymptotes about the carefully special instructions use slyly quiet instructions. furiously final courts integrat'), +(55,10,8278,134.62,'regular theodolites affix slyly. blithely bold foxes wake above the requests. ironic, regular instructions sublate requests. bold accounts'); +INSERT INTO partsupp VALUES +(55,7,1289,130.33,'regular pinto beans haggle pinto beans. furiously even platelets doubt furiously se'), +(56,7,241,855.39,'carefully ironic requests by the daringly final frays'), +(56,4,9104,54.79,'final packages are across the furiously unusual requests. bold pinto beans nag quickly across t'), +(56,1,1330,52.29,'foxes boost fluffily slyly ironic accounts. carefully bold packages are. regular, express ideas wake. fluffily even tithes cajole. slyly careful pinto beans wake slyly slyly '), +(56,8,5799,926.25,'silent frets cajole. carefully pending excuses are furiously even excuses. carefully regular attainments along the quickly final packages sleep quietly on t'), +(57,8,2972,123.11,'blithely ironic ideas kindle furiously blithely silent theodolites. deposits wake. even accounts affix carefully. stealthily even pinto beans against the r'), +(57,5,4721,411.08,'dinos wake blithely slyly express asymptotes. requests are carefully. quickly bold package'), +(57,2,3788,211.66,'furiously final requests against the accounts haggle across the carefully silent ideas. silent excuses sleep special '), +(57,9,4583,137.68,'final, even pinto beans detect blithely; furiously bold packages haggle fluffily blithely f'), +(58,9,4328,542.52,'furiously furious accounts boost quickly after the evenly ironic deposits. pinto beans was according to the regular packages. silently regular excuses ou'), +(58,6,4307,448.31,'special excuses thrash slyly foxes. theodolites against the furiously even requests'), +(58,3,4136,512.24,'packages wake. furiously bold dinos after the excuses boost slyly quickly permanent'), +(58,10,9689,25.09,'blithely ironic ideas detect carefully slow accounts. carefully even requests sleep. slyly regular excuses are. blithely ironic ideas are furiously across the furiously unusual deposi'), +(59,10,8374,357.22,'furiously unusual platelets lose. requests cajole quickly. blithely unusual instructions use slyly among the furiously regular escapades. pending pinto beans ca'), +(59,7,4226,80.98,'slyly special instructions at the regular, unusual foxes eat against the carefully final dinos. regular packages kindle against the regular multipliers. furiously close dependen'), +(59,4,99,598.55,'furiously ironic accounts nag furiously regular dependenc'), +(59,1,8184,45.5,'bold, ironic instructions are blithely among the blithely enticing packages: carefully ironic theodolites are across the furiously pending dolphins. slyly regular instructions against the foxes s'), +(60,1,6642,800.72,'pending, regular accounts are fluffily. final courts are never regular packages. carefully final excuses use'), +(60,8,5017,314.81,'blithely regular packages are slyly past the even ideas. furiously final platelets '), +(60,5,148,504.1,'carefully special patterns affix. regular, ironic ideas across the final dependencies hinder '), +(60,2,5792,92.64,'blithely bold theodolites sleep about the accounts. carefully sly theodolites wake. furiously even requests dazzle carefully flu'), +(61,2,1540,858.64,'slyly ironic decoys detect blithely special packages. '), +(61,10,9170,771.26,'pending, final instructions kindle carefully quick requests. regula'), +(61,8,4762,633.74,'fluffily regular foxes haggle about the carefully express reques'), +(61,6,7312,153.74,'final packages wake blithely special pinto beans. dogged requests integrate above the final, final deposits. furiously final gifts wake carefully slyly unusual courts. furiously final ide'), +(62,3,1780,692.42,'even accounts are carefully against the regular accounts! blithely express platelets detect along the final, ironic decoys. carefully special requests boost blithely. slyly fluf'), +(62,1,5896,348.82,'silent platelets sleep. ironic theodolites wake. pending ideas haggle quickly busily special sentiments. quickly pending braids wake. furiously regular packages across the accounts nag fluffily ac'), +(62,9,9127,620.08,'furiously pending requests about the slyly even deposits integr'), +(62,7,9542,255.78,'silently ironic packages eat doggedly. packages br'); +INSERT INTO partsupp VALUES +(63,4,1804,498.84,'special escapades nag besides the packages. final foxes haggle furiously according to the carefully unusual deposits. slyly regular instructions detect furiously across the asymptotes. express excus'), +(63,2,1998,509.16,'ironic, bold dependencies sleep evenly special theodoli'), +(63,10,6839,274.15,'carefully fluffy platelets sleep carefully according to the quickly special requests. final foxes cajole across the slyly special theodolites. accounts cajole slyly. slyly even packag'), +(63,8,6325,463.69,'closely final requests according to the ironic theodolites affix carefully above the final requests. ironic asymp'), +(64,5,5567,228.61,'dependencies above the asymptotes wake carefully according to the permanently ironic deposits. express somas across the final excuses cajole blit'), +(64,3,4542,398.92,'bold, express asymptotes sleep blithely according to the carefully pending requests. blithely unusual deposits cajole'), +(64,1,9110,602.65,'slyly final pinto beans haggle even ideas. never even packages are carefully against the quickly regu'), +(64,9,2064,25.77,'quietly even courts cajole carefully. ironic pinto beans breach blithely. furiously regular foxes sleep carefully among the '), +(65,6,2918,846.26,'quickly regular dependencies sleep slyly bold excuses. unusual foxes cajole slyly. slyly unusual accounts grow. excuses maintain ca'), +(65,4,1779,393.63,'furiously final deposits haggle. express foxes serve furiously pinto beans. carefully final packages along the pending deposits are through the final, fina'), +(65,2,2054,503.1,'foxes after the express, final theodolites cajole quickly carefully blithe sheaves. regular pinto be'), +(65,10,2188,288.73,'blithely pending deposits affix fluffily against the quickly final accounts. carefully ironic '), +(66,7,3077,809.13,'evenly ironic frays are slyly dogged packages. even deposits sleep. ironic asymptotes are fluffily. carefully special accounts cajole regular theodolites'), +(66,5,1076,785.75,'furiously express requests hang closely. fluffily regular accounts above the '), +(66,3,2568,447.08,'silent, final dependencies cajole quickly above the ironic Tiresias. final, regular deposits sleep carefully '), +(66,1,296,797.27,'silent, pending patterns boost quickly throughout the fluffily even deposits. '), +(67,8,9923,306.37,'slyly ironic forges thrash slyly. carefully final courts after the blithely final requests wake about the even foxes.'), +(67,6,7908,546.75,'regular deposits use quickly quickly express pinto beans. furiously final dependencies haggle across the requests. carefully even instructions against the excuses us'), +(67,4,3368,625.62,'unusual dolphins use slyly. carefully special foxes use furiously ironic theodolites.'), +(67,2,5826,397.34,'fluffily regular accounts integrate carefully according to the theodolites-- slyly unusual instructions'), +(68,9,3444,31.37,'carefully even requests sleep; regular, ironic foxes hang pending, even sentiments. regular foxes haggle. dolphins integrate quickly pinto beans. s'), +(68,7,6762,5.16,'quickly regular accounts haggle daringly even, ironic requests. ideas wake slyly-- blithely regular ideas are quickly about the pending, express instructions; ironic packages affix blithel'), +(68,5,8300,80.86,'express accounts nag. furiously careful accounts among the quickly special deposits sleep ab'), +(68,3,5399,683.59,'express, ironic packages along the ironic, even accounts affix alongside of the excuses. platelets sleep furiously. carefully express foxes along the stealthy courts wake slyly across'), +(69,10,6197,694.24,'regularly unusual foxes cajole quickly. furiously regular packages'), +(69,8,8235,846.49,'furiously silent platelets wake carefully across the furiously even pinto beans. slyly bold accounts haggle above the special, final excuses. doggedly final pinto beans are carefully at the bli'), +(69,6,9294,386.96,'carefully final accounts above the busily close dependencies boost dogged deposits. fluffily pending dolphins sublate. ironic deposits a'); +INSERT INTO partsupp VALUES +(69,4,7017,344.28,'regular, final pinto beans cajole after the blithely silent dolphins. blithely regular requests wake. even ideas cajole blithely against the ironic pinto beans. idly special theodol'), +(70,1,4536,348.27,'carefully special instructions among the foxes haggle fluffily special platelets. blithely ironic deposits engage furiously carefully express foxes. ir'), +(70,9,8063,452.8,'ironic requests boost quickly carefully ruthless braids: blithely ironic sheaves are quickly bold foxes. regular, unusual theodolites mold slyly. bold ideas haggle ruth'), +(70,7,2990,940.81,'ideas integrate quickly. unusual, ruthless dependencies solve across the regular deposits. blithely unusual packages was carefully special requests. regular, regular requests boost bli'), +(70,5,9074,182.58,'silent requests among the express forges nag unusual theodolites. express realms impress b'), +(71,2,508,842.21,'special, even accounts cajole regular deposits. requests above the even requests use even deposits. carefully unusual deposits affix about the slyly unusual packages. care'), +(71,1,8329,239.57,'carefully pending accounts haggle regularly. ironic, regular theodolites cajole: blithely ironic notornis affix fluffily. slyly regular deposits hinder carefully. regular, ironic'), +(71,10,6768,744.67,'ironic theodolites integrate blithely about the bold ideas. sil'), +(71,9,5179,329.13,'daring accounts sleep carefully carefully ironic requests. slyly final requests integrate careful'), +(72,3,9855,497.26,'blithely regular frays use. blithely dogged packages af'), +(72,2,9346,41.04,'slow, bold asymptotes serve furiously alongside of the closely ironic requests. ironic, ironic instructions after the carefully even accounts unwind quickly deposits. quic'), +(72,1,2654,762.61,'carefully regular pinto beans integrate accounts. unusual requests upon the requests haggle blithely carefully thin theodolites. even, even packages along the asymptotes cajole quickly pendin'), +(72,10,4526,154.47,'furiously even patterns use carefully. ironic requests sleep. bold packages sleep alongside of the blithe, regular asymptotes: c'), +(73,4,9873,947.99,'slyly regular multipliers wake furiously across the silently ironic accounts. fluffily ironic instructions cajole slyly against '), +(73,3,7729,920.66,'furiously regular deposits are idly. carefully bold'), +(73,2,5327,108.96,'fluffily express ideas cajole quietly carefully sly instructions. express packages boost carefully about the blithely bold packages. ironic accounts cajole fluffy accounts?'), +(73,1,3928,309.57,'carefully bold accounts wake quickly blithely final packages. furiously special dependencies are. blithely ironic packages wake quickly about the regular deposits. bold ideas along the excuses'), +(74,5,3128,345.92,'ironic packages use slyly. blithely bold deposits affix. slyly even pinto beans nag. bold packages grow according to t'), +(74,4,2479,930.97,'carefully final foxes boost slyly across the ironic patterns. furiously ironic '), +(74,3,9473,496.36,'slyly permanent requests haggle. fluffily ironic instructions across the u'), +(74,2,6234,849.66,'carefully final foxes haggle doggedly final requests. express accounts sleep carefully pending pinto beans. furiously pending requests nag furiously. ironic pinto beans haggle furiously pending, spe'), +(75,6,7086,624.39,'express requests detect bravely. silently pending dependencies dete'), +(75,5,6308,759.36,'slyly final deposits haggle blithely. regular theodolites are carefully. furiously regular pinto beans nod with the fu'), +(75,4,9080,433.59,'carefully final deposits kindle about the foxes. blithely bold excus'), +(75,3,5439,884.01,'ironic packages nag blithely. ironic accounts wake carefully up the express, final pinto beans. furiously regular requests'), +(76,7,6754,494.83,'furiously ironic instructions dazzle blithely among the slyly slow pinto beans. furiously even platelets cajole. blithely un'), +(76,6,2009,108.97,'furiously final requests are. carefully express accounts are close'); +INSERT INTO partsupp VALUES +(76,5,6371,552.38,'daringly regular requests are carefully. carefully regular instructions nag unusual pinto beans. furiously final instructions according to the carefully unusual courts was da'), +(76,4,7986,252.03,'furiously regular packages against the quickly ironic packages cajole above the carefully silent instructions. carefully express ideas use express ideas. quickly regular id'), +(77,8,552,254.92,'permanently pending theodolites are blithely against the regular instructions. bold accounts wake furiously '), +(77,7,8170,875.83,'quickly special deposits among the unusual foxes wake pending asymptotes. slyly pending requests against the bl'), +(77,6,8541,936.13,'slyly even accounts wake. furiously regular foxes lose. enticingly regular dependencies are according to the blithely even accounts! blithely ironic requests sleep ironic '), +(77,5,1713,402.14,'slyly ironic courts across the furiously even requests are furiously among the carefully ironic packages. unusual accounts across the furiously express escapades boost furiously alongsi'), +(78,9,9915,729.94,'blithely special accounts against the blithely unusual a'), +(78,8,7246,577.23,'slyly bold instructions use slyly after the carefully unusual deposits. quickly regular foxes cajole blithely fi'), +(78,7,1801,434.34,'furiously bold foxes grow quickly deposits. carefully pending pains nag furiously final courts. regular, express hockey players wake carefully. ironic, silent pinto beans at the quickly sly'), +(78,6,9599,382.82,'final, regular theodolites sleep. blithely final packages x-ray. courts integrate slyly. pinto beans doubt carefully. unusual foxes are s'), +(79,10,4248,765.34,'slyly final instructions boost slyly. special, regular accounts about the final, unusual deposits doze carefully according to the regular, bold foxes. regular foxes nag alongside of th'), +(79,9,465,28.33,'express, bold accounts boost even deposits. even instructions affix special requests. silently regular somas use quickly bold requests. quiet deposits nag blithely even instructions. blithely '), +(79,8,3309,880.23,'quickly regular deposits for the ironic foxes hagg'), +(79,7,8627,891.18,'carefully ironic ideas about the regular, quiet packages cajole quickly around the ironic packages. ironic, even deposits against the close packages cajole above the quickly unusual accounts. sly'), +(80,1,8893,127.65,'carefully ironic accounts across the unusual attainments '), +(80,10,2243,775.79,'carefully unusual depths above the ironic, special fo'), +(80,9,5385,945.72,'furiously express dolphins cajole furiously accounts. carefully even pinto beans are furiously express instructions. quickly final foxes boost fluffily fluffily express packages. fin'), +(80,8,4034,797.05,'furiously special accounts after the quickly special deposits use quickly unusual platelets. ironic requests detect blithely within the enticing packages. silent accounts about the ironically ex'), +(81,2,1605,550.29,'ironic, ironic foxes cajole furiously across the carefully regular depo'), +(82,3,7793,697.31,'slyly regular foxes are furiously busy waters. even excuses cajole carefully. even packages boost. deposits nag furiously according'), +(83,4,3010,745.51,'ruthless requests sleep final multipliers! final excuses use furiously. slyly regular packages should have to ha'), +(84,5,5711,233.61,'blithely regular foxes engage slyly ironic requests. carefully pending foxes cajole quickly dependencies. furiously unusual dep'), +(85,6,2628,608.77,'quickly even accounts along the quickly pending depo'), +(86,7,806,65.98,'special requests use slyly carefully regular depos'), +(87,8,5679,688.33,'ironic, dogged instructions nag along the final deposits. final, ironic theodolites haggle furiously slyly pending epitaphs. silent pinto beans are quiet'), +(88,9,6116,334.58,'even excuses are fluffily across the final foxes. quickly regular accounts against the regular, final requests eat furiously regular packages. carefully unusu'); +INSERT INTO partsupp VALUES +(89,10,3430,744.87,'boldly silent theodolites grow carefully furiously special platelets. packages cajole fluffily foxes. slyly special ideas against the slyly unusual packages '), +(90,1,8037,409.38,'even, ironic theodolites wake quickly regular foxes: carefully ironic accounts wake fluffily alongside o'), +(91,2,7986,528.64,'ironic foxes according to the final, even accounts affix furiously ironic instructions. furi'), +(91,3,3257,906.2,'blithely express dependencies sleep. pinto beans about the blithely express depos'), +(91,4,483,823.21,'regular ideas serve quickly fluffily pending asymptotes. fluffily bold requests maintain slyly. fluffily unusual packages integrate above the slyly regular packages. carefully final pinto b'), +(91,5,1265,703.41,'ruthlessly ironic packages hang blithely final accounts. ironic accounts mold slyly packages. blithely regular excuses cajole'), +(92,3,9337,224.01,'blithely even deposits are quickly. pending, pend'), +(92,4,2246,985.03,'theodolites integrate furiously even accounts. unusual deposits except the blithely pending courts snooze furiously blithely ironic deposits. care'), +(92,5,3199,91.63,'silently even deposits wake carefully special ideas. express requests wake fluffily. accounts haggle regular, f'), +(92,6,1044,854.89,'furiously pending ideas haggle carefully along the unusual deposits. furiously regular foxes poach furiously'), +(93,4,3008,615.98,'pending requests are blithely near the carefully dogged packages. silen'), +(93,5,5275,376.47,'express, special deposits boost blithely across the slyly final ideas. fluffily special asymptote'), +(93,6,3869,868.81,'regular ideas use about the requests. bold theodolites wa'), +(93,7,7188,805.9,'pending, special packages boost. silent excuses after the blithely silent packages serve across the slyly quiet accounts. fluffily special reques'), +(94,5,5433,365.56,'blithely pending deposits kindle slyly: quick platelets affix ironically regular, dogged packages-- even courts wake. ironic accounts wake furiously. quickly final packag'), +(94,6,7784,358.08,'busily special packages wake furiously according to the final courts; furiously ironic waters wake blithely final pinto beans. blithely ex'), +(94,7,7232,478.94,'final instructions are slyly carefully even packages. even requests above the final deposits nag carefully across the furiously careful packages. accounts around the requests are alongside o'), +(94,8,3261,824.08,'regular theodolites are about the regular instructions. carefully regular deposits use blithely carefully fi'), +(95,6,5186,291.03,'furiously pending deposits cajole carefully; silent sauternes after the fluffily regular depths are slyly '), +(95,7,6552,456.36,'carefully unusual accounts sleep slyly about the bravely regular pinto beans. carefully ironic orbits would sublate furio'), +(95,8,367,987.22,'thin, brave instructions nag above the regular, regular requests. slyly re'), +(95,9,7379,973.74,'blithely special dependencies use. final excuses across the final packages wake across the carefully final instructions. pending instructions against the final deposits use blith'), +(96,7,5739,202.06,'even, ironic deposits haggle fluffily among the ironic packages. carefully even dependencies engage quickly ironic accounts. regular, regular theodol'), +(96,8,4942,571.3,'pending, special excuses detect; fluffily final account'), +(96,9,9985,672.29,'slyly even requests sleep against the blithely regular accounts. furiously ironic requests against the furiously unusual requests cajole to the final, final requests'), +(96,10,7250,587.08,'even foxes sleep fluffily after the regular packages; excuses are. furiously final deposits nag carefully idly regular pint'), +(97,8,6371,129.77,'pending, ironic theodolites are after the blithely regular foxes. bold packages among the ironic deposits integrate alongside of the'), +(97,9,2390,458.34,'slyly ironic deposits hinder blithely pending dependencies-- slyly ironic packages after the furiously unusual deposits sleep slyly after the '); +INSERT INTO partsupp VALUES +(97,10,2618,239.34,'fluffily unusual deposits detect quickly. final, regular pack'), +(97,1,4580,761.41,'carefully ironic ideas after the carefully even requests boost b'), +(98,9,9486,908.21,'deposits haggle busily express deposits. furiously blithe platelets '), +(98,10,8550,657.16,'express, final deposits haggle along the regular foxes. carefully regular excuses wake against the carefully even pinto beans. furiously express pinto beans'), +(98,1,3443,139,'express, express pinto beans wake blithely. silent, pending requests around the special packages cajole after the quietly regular accounts. somas sleep.'), +(98,2,3759,811.55,'blithely silent instructions promise furiously across the blithely regular dependencies. unusual packages print across the ironic pinto beans. orbits sleep blithely against t'), +(99,10,8487,438.38,'even foxes haggle furiously after the quiet theodolites; carefully bold dependencies sleep finally final ideas. furiously slow instructions sleep carefully. special deposits sleep fluffily. c'), +(99,1,7567,496.93,'regularly express accounts about the regular foxes wake ruthlessly even ideas. furiously final accounts are bravely. blithely final ideas are '), +(99,2,7970,365.83,'final accounts boost slyly according to the bold asymptotes. idly silent packages across the slyly ironic dependencies use fluffily among the slyly silent requests. requests boost q'), +(99,3,2789,843.88,'slyly unusual pearls wake blithely. slyly even packages across the carefully regular foxes haggle idly carefully bold requests. slyly even pinto beans sleep pack'), +(100,1,7885,490.61,'packages alongside of the quickly final deposits are against the fluffily bold packages. furiously expre'), +(100,2,2070,196.73,'final pinto beans cajole over the carefully even accounts. bold, bold dependencies above the ironic, express asymptotes use carefully fur'), +(100,3,4994,929.57,'carefully final pinto beans according to the fluffy instructions integrate about the furiously unusual accounts. pending deposits are carefully final packages. blithely bold requests eng'), +(100,4,9688,22,'carefully stealthy deposits nag furiously. bold dolphins dazzle carefully. slyly even excuses sleep carefully ironic theodolites. even, even ideas thrash furiously. furiously pending theodol'), +(101,2,5589,305.4,'instructions was blithely regular requests? carefully regular packages nag carefully ironic asymptotes. slyly ironic Tiresias about the blithely regular ideas play furiously across the fu'), +(101,4,8263,218.71,'requests haggle quickly. furiously regular requests are. expres'), +(101,6,6324,786.53,'carefully final requests according to the quickly bold platelets are about the ironic courts. furiously silent foxes sleep according to the furiously even pinto beans. carefull'), +(101,8,55,612.09,'carefully express packages across the slyly even '), +(102,3,1384,876.75,'quickly pending accounts hang permanently around the quickly ironic accounts. quickly even acc'), +(102,5,9137,332.71,'carefully express theodolites cajole furiously. slyly sly foxes are slyly carefully regular instructions. daring, exp'), +(102,7,9156,618,'pending dependencies about the furiously pending requests integrate furiously about the bold theo'), +(102,9,6942,231.02,'slyly unusual excuses affix ruthlessly silent pinto beans. unusual instructions are. packages poach furiousl'), +(103,4,5913,905.88,'requests among the furiously regular pinto beans haggle carefully furiously regular packages. blithely final accounts sleep '), +(103,6,7742,414.42,'blithely special accounts are. furiously ironic packages haggle slyly blithely dogged packages: quickly unusual deposits ha'), +(103,8,5164,361.48,'furiously unusual pinto beans haggle blithely unusual deposits. requests integrate according t'), +(103,10,429,605.2,'regular, ironic packages are deposits. excuses haggle alongside of the slyly even foxes. slyly regular requests are. regular, final requests sleep slyly? b'); +INSERT INTO partsupp VALUES +(104,5,2368,946.39,'ironic ideas haggle above the foxes. slyly slow pinto beans haggle blithely ironically ironic foxes. s'), +(104,7,6110,15.57,'blithely regular dolphins eat blithely carefully regular orbits. blithely regular requests wake about the quickly even theo'), +(104,9,6269,213.89,'fluffily regular asymptotes engage. dolphins are enticingly-- slyly express asymptotes sleep b'), +(104,1,3369,729.38,'slow, enticing deposits are quickly. requests cajole blithely above the fluffily regular pearls. c'), +(105,6,4602,27.75,'pending accounts haggle quickly. ironic packages detect quickly. final, silent deposits boost carefully ruthlessly unusual warth'), +(105,8,269,158.62,'quickly pending platelets against the pending, even packages use acc'), +(105,10,8855,810.86,'slyly even requests across the furiously special packages use idly regular, unusual courts. blithel'), +(105,2,8519,904.17,'regular dependencies cajole carefully special, unusual packages. special accounts haggle about the slyly even theo'), +(106,7,8649,732.15,'fluffily unusual ideas alongside of the special accounts was above the even, i'), +(106,9,3144,779.68,'furiously regular instructions boost alongside of the pending grouches. slyly ironic deposits integrate. foxes unwind furiously against the blithe instructions. accounts'), +(106,1,1411,310.4,'regular, pending excuses maintain about the forges. bold, express deposits cajole among the ironic instructions. furiously unusual pinto bea'), +(106,3,2297,281.98,'fluffily regular depths sleep carefully against the b'), +(107,8,7249,168.03,'carefully sly ideas nag above the ironic instructions'), +(107,10,4029,91.31,'fluffily ironic pinto beans cajole. carefully even accounts haggl'), +(107,2,4667,372.94,'even excuses are evenly. thin foxes according to the carefully regular instructions cajole along the pending, silent pinto beans. ironic, even ideas hag'), +(107,4,7912,474.77,'bravely bold requests are slyly. carefully special requests are acc'), +(108,9,4149,558.85,'carefully express deposits engage. slyly final instructions haggle fluffily ironic orbits. blithely quiet requests use carefully. platelets cajole furiously even packages. special,'), +(108,1,4898,241.47,'carefully pending accounts breach furiously. ironi'), +(108,3,5534,626.89,'special accounts cajole furiously across the ironic instructions. furiously bold accounts hang slyly to the furiou'), +(108,5,3142,922.27,'pending asymptotes alongside of the fluffily bold instructions boost slyly blithely stealthy multipliers. theodolites wake slyly. slyly bl'), +(109,10,524,275.19,'special requests cajole closely up the foxes. special, pending theodolites sleep slyly doggedly ironic requests. slyly regular accounts try to cajole fluffily.'), +(109,2,4470,992.21,'fluffily close accounts detect slyly! unusual ideas boost blith'), +(109,4,8176,936.6,'carefully ironic requests wake ironic ideas. unusual plat'), +(109,6,7524,374.49,'pending, even deposits use carefully. carefully pending accounts haggle blithely alongside of the furiously silent deposits. carefully even requests above the carefully'), +(110,1,2782,566.46,'blithely final requests above the pending depths sleep carefully instructions. slyly regular deposits are about the quickly even depende'), +(110,3,8914,183.47,'unusual foxes around the requests integrate across the fluffily regular dinos. quickly regular asymptotes cajole slyly. slyly even o'), +(110,5,1160,932.08,'blithely regular foxes wake across the warthogs. bold ideas wake quickly after the ironic, even platelets. blithely even deposits among the ironic Tiresias wake slyly carefully final'), +(110,7,4927,196.63,'furiously express pinto beans was carefully. carefully final pinto beans mold about the final accounts. even'), +(111,2,1890,321.97,'final instructions haggle. slyly permanent courts cajole quickly along the quickly express dependencies. acco'); +INSERT INTO partsupp VALUES +(111,5,9587,978.65,'furiously bold packages haggle blithely above the carefully special courts. slyly pending dolphins haggle at the carefully ironic accounts. quickly ironic theodolites sleep slyly slyly pe'), +(111,8,8069,745.33,'fluffily final theodolites wake according to the silent requests. special ideas boost above the final, special instructions. furiously even foxes cajole af'), +(111,1,2175,496.08,'furiously ironic dependencies sleep fluffily along the slyly pending accounts. ideas are slyly blithely bold deposits. carefully ironic foxes'), +(112,3,8509,111.42,'idly regular requests nod carefully alongside of the unusual, regular requests. unusual requests sleep asymptotes-- final theodolites sleep carefully slyly express instructions. slyly pending'), +(112,6,7652,783.52,'instructions should have to sleep finally dinos. final, ironic foxes sleep alongside of the quickly special accounts. final packages are furiously pending'), +(112,9,4835,913.75,'carefully ironic requests breach. ironic, unusual deposits wake carefully among the quickly ironic packages. blithely regular gifts affix slyly. slyly bold instructio'), +(112,2,1211,815.88,'furiously pending platelets along the furiously ironic packages are furiously blithely pending accounts. quickly ironic account'), +(113,4,9981,396.26,'furiously final sentiments are finally deposits. final dolphins around the carefully final platelets n'), +(113,7,3804,860.68,'blithely regular packages affix quickly. final requests after the quickly expre'), +(113,10,522,981.41,'instructions wake carefully. daringly final deposits above the ironically bold deposits h'), +(113,3,4692,141.48,'quickly silent asymptotes are slyly regular excuses. instructions wake furiou'), +(114,5,7146,447.24,'slyly final deposits cajole quickly slyly even deposits. express requests doze carefully according to the pending, idle excuses. special instructions sleep. ironic accounts use carefully abov'), +(114,8,3062,555.12,'slyly ironic dependencies about the blithely regular attainments wake furiously final accounts. even accounts are among the bravely '), +(114,1,4519,382.87,'quickly thin tithes would boost slyly. closely special dolphins wake furiously. furiously fi'), +(114,4,2113,570.79,'unusual pains use furiously quickly regular theodolites. furiously unusual packages according to the final, regular instructions sleep slyly above the slyly even instruc'), +(115,6,1817,82.84,'quickly final requests use fluffily across the regular, unusual deposits. regular deposits'), +(115,9,983,867.45,'carefully special instructions integrate furiously above the regular, ironic gifts. pending, express packages are. fluffily even accounts haggle carefully along the slyly bold re'), +(115,2,7781,861.93,'slyly final requests haggle furiously since the quickly even Tiresias. furiously final theodolites affix. final, final instructions haggle fluffily permanently special courts. carefully '), +(115,5,3002,81.52,'carefully even deposits wake carefully around the final deposits. quickly final dependencies wa'), +(116,7,6580,705.5,'furiously express requests engage theodolites; ironic requests are. fluffily silent a'), +(116,10,4975,413.86,'fluffily bold pinto beans are alongside of the quickly regular warthogs. even sheaves use blithely across the ironic theodolites. even grouches cajole deposits. bus'), +(116,3,8679,866.56,'blithe, regular requests across the quickly silent requests breach blithely unusual d'), +(116,6,5632,37.3,'fluffily final pinto beans wake furiously about the slyly final requests; '), +(117,8,5906,706.51,'blithely ironic packages cajole carefully. furiously final deposits wake carefully. unusual dependencies cajole furiously above the slyly unusual instructions. carefully ironic foxes'), +(117,1,1986,322.08,'express, unusual theodolites are slyly. furiously bold ideas wake carefully slyly ironic pinto beans. foxes nag. final foxes haggle f'); +INSERT INTO partsupp VALUES +(117,4,2577,761.86,'furiously ironic packages after the ironically express packages boost above the furiously final accounts. slyly silent requests can use f'), +(117,7,4762,552.88,'express theodolites are carefully blithely final requests. regular asymptotes sleep. furiously pending somas integrate quickly. sl'), +(118,9,694,744.73,'slyly ironic asymptotes cajole ruthlessly ironic excuses. carefully express de'), +(118,2,6326,325.61,'ruthless ideas nod furiously accounts; slow foxes use sl'), +(118,5,7806,283.27,'ironic ideas serve carefully. final foxes doze about the carefully express accounts. slyly pending theodolites sleep furiously. final, final platelets'), +(118,8,4951,976.55,'quickly bold deposits haggle slyly: blithely unusual deposits wake except the fluffily express deposits. furiously bold requests cajole alongside of the slyly final theodo'), +(119,10,2307,473.64,'final excuses use. fluffily regular pinto beans wake across the carefully even ideas. deposits cajole blithely blithely ironic deposits. silent asymp'), +(119,3,1452,676.92,'slyly dogged dependencies can detect furiously silent requests. pending, regular excuses wake quickly furiously silent ideas; ideas haggle careful'), +(119,6,4955,488.93,'deposits run against the ironic, ironic packages. thinly ironic deposits cajole fluffily carefully express foxes. final accounts according to th'), +(119,9,583,782.47,'regular deposits sleep carefully. fluffily ironic theodolites print furiously regular, even requests. sly braids play carefully slyly ironic requests. f'), +(120,1,4976,201.21,'bold accounts are. slyly unusual accounts wake blithely accounts. ironic'), +(120,4,7744,365.79,'carefully even dependencies along the furiously ironic instructions nag slyly ruthlessly ironic accounts. fi'), +(120,7,5329,249.61,'fluffily thin frets haggle after the furiously ironic instructions. pending, regular theodolites cajole according to the blithely ironic theodolites. s'), +(120,10,3102,566.34,'quiet, pending requests nag furiously around the permanent requests. regular, silent packages'), +(121,2,9741,147.45,'blithely final accounts sleep quickly. carefully even theodolites haggle. bold courts ought to boost about the qui'), +(121,6,4246,850.42,'slyly even excuses sleep slyly closely ironic packages; blithely regular deposits are furiously along '), +(121,10,7670,449.39,'carefully regular foxes above the slyly express packages ar'), +(121,4,8709,655.22,'finally regular packages sleep. carefully blithe deposits haggle blithely according to the permanently ironic deposits. packages wake carefully inside the regular package'), +(122,3,1019,451.29,'fluffily even Tiresias haggle. slyly fluffy foxes sublate among the even deposits. carefully even pinto beans wake furiously abo'), +(122,7,2490,637.28,'furiously special excuses alongside of the furiously regular accounts eat furiously among the express pinto beans'), +(122,1,4957,650.84,'furiously regular packages use carefully alongside of the fluffily bold excuses. blithely regular Tiresias haggle slyly after the final, ironic deposits. final notornis are slyly. furiousl'), +(122,5,2083,739.25,'furiously even platelets are furiously against the excuses. quickly express requests among the quickly regular pinto beans serve carefully thinly unusual pinto beans. quickly '), +(123,4,9881,107.03,'fluffily unusual dolphins are. blithely ironic waters about the deposits slee'), +(123,8,5638,818.19,'slyly bold instructions wake blithely around the fluffily fi'), +(123,2,2692,217.01,'foxes kindle furiously. blithely regular excuses cajole fluffily final dependencies. special, regular accounts cajole slyly. regular dependencies are about the regular foxes; regular, '), +(123,6,5311,149.65,'bold, ironic deposits detect carefully. furiously silent asymptotes integrate busily after the slyly dogged packages. slyly regular gifts cajole quickly after the qu'), +(124,5,7102,901.98,'packages maintain slyly ironic theodolites: furiously express deposits along'); +INSERT INTO partsupp VALUES +(124,9,3969,908.64,'carefully regular platelets cajole against the even packages. slowly unusual deposits are quickly pendin'), +(124,3,9295,882.54,'furiously final deposits haggle. packages along the carefully final packages nag blithely above the even theodolites. unusual accounts boost ironically regular'), +(124,7,9416,822.78,'carefully even requests are slyly against the furiously final requests. quickly regular accounts haggle silently above the unusual, regular packages. courts ac'), +(125,6,2263,358.45,'slyly pending requests use. quickly bold decoys among the special foxes cajole even, ironic accounts. even, dogged accounts cajole. ironic foxes cajole. unusual accounts haggle furiously. f'), +(125,10,8276,668.65,'stealthy foxes integrate after the special packages. even, permanent theodolites wake furiously regular packages. furiously regul'), +(125,4,2600,455.7,'furiously even requests wake quickly furious deposits. quickly final courts sleep pending accounts. blithely ironic requests detect blithely across the unusual, final'), +(125,8,5546,806.66,'ironic pinto beans are quickly furiously regular packages. carefully unusual foxes haggle among the enticingly unusual accounts. blithely unusual packages sleep about the quickly even deposi'), +(126,7,2647,221.89,'dogged, even grouches nag blithely. slyly regular sentiments wake idly among the unusual theodolites. blithely'), +(126,1,2373,194.38,'blithely special foxes detect regular instructions. silent packages lose carefu'), +(126,5,1532,451.61,'pinto beans above the sauternes sleep pending instructions. fluffily regular dolphins use furiously. i'), +(126,9,5458,929.43,'ironic ideas sleep carefully unusual accounts-- furiously bold packages affix c'), +(127,8,7658,712.33,'blithely ironic packages kindle furiously carefully unusual packages. regularly unu'), +(127,2,1467,237.98,'final sauternes play ironic requests. ideas engage after the blithely ev'), +(127,6,8281,3.14,'fluffily final requests according to the slyly final accounts integrate slyly special, '), +(127,10,8894,73.42,'even foxes sleep fluffily. furiously special requests dazzle quickly express packages. slyly even deposits are foxes. final, special requests despite the blithe'), +(128,9,6982,425.29,'ironic, pending ideas wake carefully along the slyly regular pinto beans. deposits haggle slyly instructions. final, regular pinto beans about the bold instruc'), +(128,3,7602,224.49,'carefully special courts above the blithely even theodolites wake slyly'), +(128,7,3766,947.16,'furiously final waters nag bold foxes. bold platelets use fluffily'), +(128,1,7023,875.78,'final foxes alongside of the ironic theodolites boost blithely across the warthogs. regular '), +(129,10,5721,129.69,'requests detect slyly according to the pinto beans. finally silent excuses are. slyly special pinto beans wake. final accounts above the slyly even accounts doubt alongside of the pending, si'), +(129,4,7242,200.26,'daringly unusual ideas was carefully ruthless ideas. quick pinto beans thrash a'), +(129,8,5299,330.59,'blithely express ideas nag blithely final accounts. carefully special requests use carefully after the special accounts. quickly final ideas use ac'), +(129,2,1968,27.22,'fluffily regular packages wake furiously furiously regular asymptotes. slyly idle ideas wake blithely. blithel'), +(130,1,4928,223.38,'regular packages use. quickly regular requests cajole furiously final requests. carefully unusual escapades haggle special asymptotes.'), +(130,5,6909,275.58,'carefully even pinto beans hinder carefully about the even, regular theodolites. unusual requests nag carefully. carefully bold deposits sleep ironically special, re'), +(130,9,4850,442.81,'slyly ruthless deposits are slyly packages. pending, final accounts '), +(130,3,7387,883.99,'furiously pending packages cajole across the even, bold fo'), +(131,2,3263,211.7,'express dolphins sleep ideas. requests cajole carefully above the carefully special requests. carefully even p'); +INSERT INTO partsupp VALUES +(131,7,125,861.84,'unusual packages haggle carefully. ironic instructions wake according to the quick'), +(132,3,3092,687.29,'quickly pending excuses at the furiously special dependencies haggle slyly even acc'), +(132,8,1904,925.73,'express theodolites wake carefully after the final accounts. requests wake carefully. carefully final pinto beans are quickly. platelets sleep. even accounts cajole fluffily along the ironic pa'), +(133,4,5727,49.17,'ironic, express deposits hinder furiously carefully final platelets. requests according to the carefully special deposits integrate about the sly'), +(133,9,404,478.18,'special requests grow. blithely unusual asymptotes ca'), +(134,5,8879,848.14,'slyly even requests across the closely bold accounts cajole quickly carefully enticing packages. deposits sleep. blithely unusual dependencies nag slyly; slyly bold depos'), +(134,10,9013,102.99,'slyly final requests wake carefully idle, even asymptotes. requests nag furiously among the packages. furiously regular packages sleep fluffily. '), +(135,6,6940,465.82,'bold requests nag. slyly regular asymptotes are boldly. theodolites cajole slyly above the stealthy accounts. blithely unusual ideas after the unusual req'), +(135,1,2443,9.83,'furiously ruthless requests wake about the fluffily bold instructions! quickly silent theodolites sleep against the tithes. ironic, regular requests integrate ironic d'), +(136,7,2237,548.19,'instructions sleep about the blithely even deposits. always even platelets poach'), +(136,2,6068,806.19,'bold pinto beans sleep blithely according to the even, final dependencies. furiously ev'), +(137,8,9057,302.26,'fluffily final pinto beans use quickly express accounts. ironic foxes use. theodolites hinder. final, express requests against the blithely final de'), +(137,3,4078,441.11,'blithely sly platelets alongside of the foxes nod furiously fluffy theodolites. thinly final foxes above the furiously regula'), +(138,9,133,576.96,'furiously final deposits haggle furiously. quickly final accounts boost carefully after the furiously special packages. requests affix. special deposits upon the requests use regularly iron'), +(138,4,2535,885.35,'final deposits wake carefully about the fluffily pending deposits. pinto beans sleep quickly furiously even excuses. final deposits impress sly'), +(139,10,2886,285.75,'slyly final courts sleep carefully even excuses-- final requests are carefully doggedly final platelets. notornis according to the accounts sleep beside the quietly ir'), +(139,5,9255,684.61,'furiously even accounts wake against the express packages. regular, unusual theodolites past t'), +(140,1,2379,501.05,'furiously unusual requests sublate permanently according to the brave, silent requests'), +(140,6,3533,781.45,'furiously bold foxes detect idly final, regular theodolites. regular, express deposits haggle. special requests are about the furiously regular foxes. ideas are. fi'), +(141,2,6776,293.63,'quickly express requests haggle ironic sauternes. final accounts haggle final accounts. carefully even'), +(141,8,1660,139.18,'blithely final theodolites above the brave platelets nag slyly final asymptotes; furiously special reque'), +(141,4,7628,838.08,'requests thrash. silent ideas haggle. final accounts ar'), +(141,10,90,810.68,'carefully bold packages wake blithely above the carefully regular dependencies! special '), +(142,3,9219,897.49,'never even packages sleep requests. furiously final platelets affix regular, '), +(142,9,13,334.33,'thinly regular packages run quickly according to the fluffily unusual ideas. r'), +(142,5,3076,860.55,'silent foxes alongside of the regular, express requests integrate furiously across the account'), +(142,1,3858,854.08,'theodolites impress according to the unusual, ironic instructions. bold, regular accounts must have to promise blithely regular deposits. furiously ironic asymptotes nod quickly a'), +(143,4,7326,960.64,'special deposits maintain fluffily boldly unusual theodolites. carefully bold pinto beans are permanent'); +INSERT INTO partsupp VALUES +(143,10,3923,741.01,'slyly final accounts cajole thinly pending, regular asymptotes. ironically special theodolites haggle. quickly pending requests sublate carefully. even theodolites integrate furiousl'), +(143,6,7152,772.24,'furiously unusual accounts are slyly carefully unusual requests. excuses along the carefully silent platelets wake slyly along the bold packages. foxes serve blithely pe'), +(143,2,1952,199.37,'carefully final foxes wake furiously pending deposits. slyly regular accounts across the quickly quiet foxes hinder against the quiet, regular deposits. furiously regular requests det'), +(144,5,6295,457.37,'carefully fluffy deposits wake slyly at the furiously final packages. regular instructions nag sometimes even dolphins. bold packages across the requests use unusual requests. qu'), +(144,1,494,849.96,'quickly silent accounts will detect quickly across the doggedly express deposits. quick p'), +(144,7,1799,713.88,'final, final accounts are slyly. special, bold accounts along the final tithes sleep slyly slyly special pac'), +(144,3,5427,361.83,'quickly silent pinto beans wake furiously carefully even dugouts! furiously special accounts boost according to the blithely special accounts. slyly regular requests inte'), +(145,6,11,641.67,'slyly final theodolites sleep ironically regular grouches. pains are after the slyly bold packages? blithely regular accounts are fluffily. carefully regular'), +(145,2,3838,568.91,'blithely final courts haggle carefully according to the furiously regular '), +(145,8,1344,422.6,'quickly even requests inside the close epitaphs sleep slyly ironically unusual ideas. requests according to the'), +(145,4,4332,894.57,'final packages use furiously above the deposits. pinto beans sleep furiously final packages. special, s'), +(146,7,2726,231.15,'packages detect quickly; slyly final excuses use blithely according to the fluffily express accounts. instructions across the furiously regul'), +(146,3,4628,123.91,'slyly even ideas nag ironic, special dugouts. furiously even '), +(146,9,5893,858.59,'even accounts boost furiously final forges. furiously final accounts are. slyly regular accounts haggle f'), +(146,5,9687,882.37,'blithely final requests cajole slyly carefully bold deposits. quickly special deposits wake decoys. bold excuses sleep slyly bold pinto bean'), +(147,8,7442,939.14,'quickly pending accounts haggle. blithely pending foxes after the bold accounts integrate furiously unusual '), +(147,4,7647,102.19,'regular accounts nag across the pending theodolites. blithely even requests cajole f'), +(147,10,1596,466.37,'silently regular packages across the regular asymptotes sleep carefully acro'), +(147,6,4235,235.91,'permanently regular excuses are along the quickly special accounts. furiously quiet excuses detect. final packages boost slyly. quickly ironic foxes cajole busily. final, regular instructions '), +(148,9,8007,177.4,'slyly unusual accounts was fluffily even, pending requests. fluffily special instructions haggle. slyly blithe platelets use furiously final asymptotes. bold theodolites integrate never whitho'), +(148,5,1904,774.56,'blithely even requests haggle along the packages. furiously ironic platelets are fluffily furious accounts. quickly ironic packages boost carefully along the blithely f'), +(148,1,5393,264.09,'slyly unusual deposits use carefully about the furiously pending deposits. carefully fluffy dolphins should wake furiously across the accounts. carefully express realms are quickly ironic theodo'), +(148,7,2957,250.98,'deposits serve quickly above the even instructions. regular packages haggle. fluffily express dependencies cajole blithely final deposits. blithely regular packages are care'), +(149,10,959,679.1,'fluffily ironic deposits do boost slyly across the furiously pending ideas. regular instructions are around the special pinto beans. quickly special platelets wake according to the regular reques'), +(149,6,7283,201.03,'blithely special deposits integrate final dependenc'); +INSERT INTO partsupp VALUES +(149,2,7392,266.53,'regular ideas believe carefully express theodolites. accounts play fluffily alongside of the even ideas. furiously final foxes boost f'), +(149,8,4104,312.37,'fluffily final multipliers lose final, unusual ideas. carefully unusual foxes hang above the carefully silent theodolites. carefully regular theodolites alongside of the stealthy, pe'), +(150,1,8091,524.71,'blithely pending packages believe slyly furiously regular f'), +(150,7,2721,814.79,'slyly ironic deposits nag blithely after the slyly bold packages. excuses use slyly alongside of the slyly ironic'), +(150,3,3172,33.71,'carefully sly pinto beans cajole blithely bold accounts. express foxes cajole. even platelets sleep furiously behind the blithely regular accounts. express, i'), +(150,9,1640,327.34,'quick dolphins affix thinly against the regular, stealthy accounts. regular ideas sleep in place of the pending, bold theodolites. bold, express request'), +(151,2,391,281.9,'furiously even foxes against the carefully regular platelets are furiously unusual asymptotes. slyly express theodolites boost after the slyly even packages. qu'), +(151,9,253,840.06,'carefully regular theodolites cajole blithely: special '), +(151,6,1484,71.68,'carefully regular instructions haggle slyly regular, final foxes. pending, even realms are. pending, special asymptotes sleep requests. car'), +(151,3,9417,244.06,'evenly special braids according to the slyly regular ideas haggle from the pinto beans. blithely pending theodolites hang. furiously express accounts de'), +(152,3,1396,164.6,'blithely special instructions are slyly blithely ironic requests-- quickly even pains wake car'), +(152,10,2653,432.12,'bold deposits according to the ironic theodolites cajole furiously carefully special accounts. quickly regular accounts haggle fluffily according to the carefully unusual theodolites. '), +(152,7,3599,77.38,'slyly bold ideas use across the special accounts. slyly unus'), +(152,4,1283,142.73,'furiously ironic packages detect across the express packages. theodolites sleep furiously. ironic instructions run along the express dependencies. instructions '), +(153,4,4695,539.86,'special deposits cajole carefully daring accounts. silent accounts kindle blithely carefully ironic instructions! slyly regular requests haggle furious'), +(153,1,8464,680.14,'ironic platelets are pending, regular dolphins. ironic accounts wake fluffily atop the excuses; entic'), +(153,8,2916,685.52,'quickly even pinto beans use slyly final asymptotes. slyly ironic ideas sleep ideas. fluffily final packages wake carefully above the blithely silent accounts. quickly '), +(153,5,6397,285.92,'blithely special theodolites use carefully alongside of the carefully thin escapades: accounts are furiously bold requests: quickly unusual dependencies use. ironic, regular platele'), +(154,5,3961,474.19,'furiously ironic accounts thrash. theodolites boost carefully carefully bold accounts. carefully pending requests nag slyly '), +(154,2,3231,829.29,'even, express accounts cajole against the bold requests. carefully ironic accounts sublate furiously about the slyly bold pearls! '), +(154,9,7315,960.19,'fluffily even sauternes do boost quickly final noto'), +(154,6,1682,160.31,'quickly unusual ideas above the final instructions kindle alongside of the '), +(155,6,2893,222.02,'even excuses use slyly. sometimes express pinto beans are bold, final courts. platelets alongside of the slyly regular pinto beans sleep according to the slyly '), +(155,3,7077,413.24,'always pending excuses about the regular excuses sleep carefully quickly ironic dugouts. furiously special instructions cajole enticingl'), +(155,10,3029,413.02,'carefully pending packages integrate. bold packages cajole carefully. accounts sleep slyly furiously even deposits. unusual, regular accounts '), +(155,7,977,751.45,'express pinto beans are furiously. fluffily express excuses haggle carefully. slyl'); +INSERT INTO partsupp VALUES +(156,7,4755,453.69,'special, final warhorses detect slyly along the quickly even accounts. fluffily special asymptotes are even, silent ideas. regular instruc'), +(156,4,7228,994.19,'carefully thin requests haggle blithely carefully express dinos. blithely express pinto beans after the slyly enticing accounts boost furiously slyly special frets. bold sauternes nag slyly ideas'), +(156,1,3043,252.66,'unusual foxes according to the blithely final requests poach carefully along the quickly final depos'), +(156,8,3191,9.87,'slyly regular sheaves to the fluffily special requests lose special packages. quickly bold courts haggle a'), +(157,8,5414,369.44,'never regular packages impress slyly. carefully regular deposits are slyly. fi'), +(157,5,763,568.46,'slyly ironic deposits haggle carefully carefully final forges. requests above t'), +(157,2,3718,901.53,'ironic multipliers sleep above the even, regular tithes. boldly unusual accounts haggle quickly according to the blithely silent r'), +(157,9,3400,288.41,'quickly bold packages nag carefully ironic accounts. final foxes are slyly along the daringl'), +(158,9,2845,408.72,'pending platelets use blithely. ironic accounts cajole. fluffily regular platelets use regularly '), +(158,6,8715,452.31,'carefully even excuses nag quickly. furiously furious platelets along the final requests cajole quickly even, regular theodol'), +(158,3,4465,837.16,'blithely express theodolites under the fluffily silent deposits integrate carefully around the bold excuses. ironic pinto beans haggle blithely ca'), +(158,10,4251,431.9,'slyly final deposits affix fluffily regular, bold courts. final platelets thrash slyly. dependencies nag slyly despite the quickly '), +(159,10,9200,356.66,'quickly ironic instructions according to the slyly ironic asymptotes cajole into the excuses. brave accounts will '), +(159,7,3585,629.29,'quickly unusual packages are carefully above the carefully ironic theodolites. carefully regular instructions sleep furiously bold, thin pa'), +(159,4,6085,171.4,'regular waters about the ironic, regular theodolites haggle carefully even requests-- blithely even excuses are quie'), +(159,1,3717,790.87,'blithely ironic packages use. final, even foxes sleep after the furiously bold in'), +(160,1,2434,525.73,'even, bold attainments was along the slyly enticing packages. blithely unu'), +(160,8,8324,999.93,'regular packages maintain regular pinto beans. ironic pinto beans wake against the ironic foxes. slyly special accounts wake. pending, ironic theod'), +(160,5,6034,733.59,'ruthlessly silent instructions sleep blithely. idle pinto beans shall use. quick'), +(160,2,6872,872.2,'unusual deposits are slyly: dependencies wake. stealthily pending accounts wake over the slyly r'), +(161,2,9365,790.03,'carefully bold requests use slyly according to the fluffily unusual packages. regular sentiments are according to the ironic, idle deposits. fluffily pending accounts are regular pinto beans. dolph'), +(161,10,8421,394.05,'quickly even asymptotes hang carefully fluffy packages: never express deposits af'), +(161,8,9679,688.47,'furiously pending requests are slyly regular requests. furiously even requests sleep carefully? deposits '), +(161,6,679,893.72,'slyly regular theodolites nag furiously. slyly special requests are according to the carefully '), +(162,3,315,923.04,'quickly bold dependencies wake. slyly special pinto beans sleep slyly ruthless, ruthless deposits. packages alongside of the final instructions haggl'), +(162,1,2604,104.2,'final foxes play furiously. carefully ironic pinto beans after the regular instructions poach above the fluffily final instructions. furiou'), +(162,9,7014,236.07,'blithely unusual excuses sleep slyly furiously unusual theodolites. slyly even instructions affix ca'), +(162,7,4381,824.36,'regular packages are blithely carefully even dependencies. ironic pinto beans among the furiously entici'), +(163,4,9241,955.81,'carefully special requests affix along the slyly final deposits. blithely pending'); +INSERT INTO partsupp VALUES +(163,2,3427,499.51,'permanent theodolites haggle carefully after the quickly regular instructions. accounts boost enticingly packages. final theodolites sleep carefully at the regular, permanen'), +(163,10,5323,920.75,'ruthlessly stealthy accounts cajole furiously. bold, regular requests sleep slyly silent dependencies. '), +(163,8,9676,573.48,'slyly bold packages are about the carefully special ideas. carefully bold requests detect. deposits lose. blithely quick deposits boost fluffily regular packages. blithely bold foxes sleep '), +(164,5,1295,341.95,'ironic, final sentiments cajole furiously slyly even theodolites. deposits sleep closely. furiously final requests cajole carefully slowly final instructions'), +(164,3,2134,84.02,'slyly final requests cajole-- regular, idle packages boost except the furiously unusual accounts. furiously final pains after the carefully pending accounts th'), +(164,1,3245,814.67,'carefully final instructions boost finally. special, final foxes sleep above the ironic ideas. furiously ironic packages solve furi'), +(164,9,3028,64.89,'ironically ironic pinto beans boost fluffily final, pending '), +(165,6,4424,943.82,'blithely unusual platelets according to the always stealthy pinto beans kindle final pinto beans. silent requests haggle fluffily. special dep'), +(165,4,5534,717.83,'slyly regular accounts nag. furiously final accounts are slyly across the packages. regular, regular asymptotes a'), +(165,2,3780,730.28,'furiously bold courts haggle. blithely regular excuses impress furiously regular, silent ideas. carefully ironic packages sleep slyly always furious deposits. quickly even ideas w'), +(165,10,6114,210.84,'regular accounts promise carefully across the furiously final packages. boldly even requests are slyly blithely ironic requests. furiously even accounts hinder furiously. slyly pending instructio'), +(166,7,6527,309,'bold packages about the accounts boost quickly regularly ironic package'), +(166,5,6508,714.49,'blithely special deposits boost instead of the special deposits; ironic packag'), +(166,3,9364,581.52,'pending, regular requests use slyly even dolphins. blithely silent foxes nag carefully. unusual ideas run carefully. blithely bold requests play slyly among the carefully ironic reque'), +(166,1,6713,631.58,'sly packages dazzle blithely. regularly regular ideas wake; slyly final depths before the regularly final accounts cajole deposits. dolphins boost. carefully regular pa'), +(167,8,4933,666.7,'furiously bold requests sleep express packages. quickly regular deposits wake. even packa'), +(167,6,5789,524.27,'idly final instructions cajole about the dependencies. bold theodolites wake furiously. quickly regular theodolites beneath the carefully unusual deposits haggle slyly even a'), +(167,4,4756,336.75,'silent depths cajole furiously blithely even dependencies. ironic accounts haggle furiously. sheaves use carefully. regular attai'), +(167,2,6748,704.97,'blithely bold accounts around the slyly bold asymptotes nag fluffily carefully final realms. '), +(168,9,347,394.83,'careful deposits alongside of the idle requests nag against the regular deposits. accounts wake slyly slyly ironic requests. slyly regular theodolites are slyly p'), +(168,7,1281,771.9,'slyly ironic theodolites according to the boldly silent asymptotes haggle furiously against the express '), +(168,5,9089,508.37,'furiously regular packages use carefully carefully regular orbits. furiously fluffy foxes cajole slyly. express platelets boost. ruthless'), +(168,3,7519,963.43,'slyly pending accounts wake fluffily among the sometimes bold ins'), +(169,10,6914,619.53,'accounts will boost quickly alongside of the blithely bold accounts. '), +(169,8,6589,947.03,'ruthlessly express dolphins boost across the silent pearls. escapades sleep carefully slyly ent'), +(169,6,6731,713.35,'ironic accounts cajole carefully fluffy accounts. regular instructions use across the slyly even requests! silent, regular pinto beans sleep carefully silent, express instructions. carefully steal'); +INSERT INTO partsupp VALUES +(169,4,7691,476.19,'quickly final dependencies wake blithely against the special instructions. regular, express pinto beans haggle according to the quickly silent requests. regular packages are d'), +(170,1,7516,581.65,'blithely pending deposits boost quickly among the furiously quiet deposits. silent requests lose quickly against th'), +(170,9,838,667.16,'special, final dolphins alongside of the blithely even packages affix slyly '), +(170,7,6498,251.19,'even foxes are blithely regular instructions. carefully ironic ideas use. slyly ironic pinto beans cajole sometimes from the even asymptotes. slyly regular requests wake al'), +(170,5,6593,202.07,'regular, express instructions sleep above the blithely final account'), +(171,2,8217,859.6,'permanent, final instructions wake carefully blithely pending accounts. quickly pending requests wake carefully alongside of the final foxes.'), +(171,1,2311,864.96,'ironic orbits cajole among the always pending accounts. dependencies breach boldly '), +(171,10,8561,22.69,'even, bold grouches haggle after the silent, regular ideas. ironic packages haggle blithely? regular accounts are quickly. ironic, s'), +(171,9,7589,935.29,'express accounts cajole fluffily. even, ironic ideas c'), +(172,3,9799,184.96,'furiously regular packages against the blithely final requests are slyly ru'), +(172,2,8333,920.74,'ironic foxes wake furiously slyly final courts. deposits along the furiously unusual in'), +(172,1,3589,437.86,'ironic asymptotes cajole carefully. bold, careful packages wi'), +(172,10,1661,687.13,'deposits are around the bold dependencies. dolphins against the slyly special requests sleep blithely carefully pending deposits. blithely regular foxes affix bravely. quickly ironic pinto b'), +(173,4,2536,353.84,'regular, enticing notornis wake. quickly pending pinto beans above the furiously ironic hockey players solve quickly along the furious'), +(173,3,8307,70.22,'packages among the fluffily ironic frays integrate alongside of the regular, pending deposits. ironic, bold requests cajole carefully furiously close foxes. furi'), +(173,2,6050,683.78,'furiously unusual instructions detect. quickly bold accounts above the unusual accounts wake fluffily after the carefully ironic dependencies. final, final ideas promise'), +(173,1,6162,877.84,'regular, unusual requests eat furiously about the slyly ironic accounts. ironic foxes according to the sometimes silent asympto'), +(174,5,2103,681.95,'fluffily final foxes cajole blithely alongside of the silent instructions. furiously even packages cajole carefully. blithely final deposit'), +(174,4,6795,143.48,'quickly ironic requests haggle slyly slyly final asymptotes. idle, express accounts unwind carefully final accounts'), +(174,3,111,135.46,'excuses haggle finally along the furiously even pin'), +(174,2,8404,126.2,'bold, even platelets wake carefully by the brave, ironic dolphins. express pinto beans nod sly'), +(175,6,5515,487.68,'slyly bold ideas are furiously alongside of the carefully special acco'), +(175,5,7522,784.93,'express asymptotes according to the slowly regular accounts mold quickly around the theodolites. fin'), +(175,4,8501,706.61,'slyly ironic instructions cajole carefully. slyly regular warthogs nag according to the fluffily final deposits. bold, bold theodolite'), +(175,3,9456,978.56,'quickly final requests boost fluffily. bold packages haggle regularly. furiously ironic pinto beans cajole slyly busy courts. bold packages across th'), +(176,7,7180,179.09,'ironic excuses about the carefully regular packages wake afte'), +(176,6,3589,157.38,'deposits sleep stealthy packages. pending courts use blithely final accounts. express, ironic deposits grow slyly furiously final pains. regular acco'), +(176,5,5407,947.51,'bold ideas cajole slyly fluffily final deposits. slyly pending theodolites are furiously. reg'), +(176,4,1783,861.63,'even accounts nag fluffily. daring packages wake along the bold req'), +(177,8,1239,44.75,'even deposits thrash. accounts wake: packages are quickly after the fur'); +INSERT INTO partsupp VALUES +(177,7,4349,63.36,'regular, final accounts haggle furiously above the quickly silent Tiresias. regular warthog'), +(177,6,9872,252.42,'quickly even ideas haggle blithely among the carefully bold courts. instructions cajole. pin'), +(177,5,4727,859.82,'slyly ironic theodolites boost enticingly against the doggedly regular courts. final platelets sleep along the furiously special ideas; care'), +(178,9,4231,558.56,'furiously final packages engage. slyly ironic excuses wake quickly sometimes ironic Tiresias. packages promise slyly. slyly final instruction'), +(178,8,1919,362.26,'ironic ideas are regular packages. slyly silent asymptote'), +(178,7,6836,864.93,'foxes are carefully courts. requests along the pending, final instructions wake furiously carefully ironic packages: carefully regular packages sleep after th'), +(178,6,6922,475.18,'pending foxes use at the accounts. ruthless, ironic deposits engage along the blithely ironic sauternes. carefully ironic deposits haggle express pinto beans; slyl'), +(179,10,6956,444.38,'regular foxes boost slyly special deposits. slyly pending warthogs are across the final pains. slyly special ideas are. quickly pending pinto beans amo'), +(179,9,1954,372.75,'regular, regular deposits use furiously packages. platelets cajole carefully above the slyly ironic platelets. silent platelets according to the final ideas are'), +(179,8,2710,277.15,'requests lose carefully furious instructions. final requests need to integrate blithely. slyly unusual theodolites after the asymptotes haggle silent attainments. quickly unus'), +(179,7,4776,8.39,'carefully regular requests across the blithely silent'), +(180,1,2467,440.25,'furiously even accounts cajole slyly among the even theodolites. furiously pending requests was blithely furiously final pinto beans. carefully regular foxes cajole slyly. slyly eve'), +(180,10,1108,934.59,'ironic, regular packages wake evenly according to the doggedly bold asymptotes. special excuses nag. final requests cajole slyly. furiously reg'), +(180,9,724,426.16,'platelets wake fluffily regular deposits. pending pinto b'), +(180,8,5899,864.83,'bold accounts haggle furiously deposits. carefully express p'), +(181,2,2416,844.44,'ironic, final ideas are. blithely special platelets cajole carefully-- unusual excuses integrate. enticingly ironic ideas along the slyly ironic accounts'), +(182,3,9699,535.27,'final accounts believe carefully bold deposits. instructions nag furiously blithe dependencies. ironic requests snooze slyly slyly regular instructions. furiously'), +(183,4,30,875.44,'slyly regular ideas wake slyly ironic instructions? slyly ironic requests e'), +(184,5,7069,449.45,'slyly regular excuses haggle carefully unusual, regular theodolites. pending, unusual waters wake fluffily furiously even platelets. furiously even instructions wake '), +(185,6,1475,538.58,'slyly ironic foxes detect blithely. bold, ironic instructions integrate carefully? even packages need to are carefully. boldly regular ideas breach furiously final, even reque'), +(186,7,1095,252.84,'slyly even ideas along the blithely ironic dependencies nag furiously carefully regular ideas. carefully even accounts are between the blithely even fox'), +(187,8,8656,238.66,'regular platelets boost furiously. blithely final requests affix. theodolites haggle blithely. blithely daring pinto beans engage fluffily above the carefully even packages. fina'), +(188,9,4835,771.95,'pinto beans boost furiously final ideas. slyly regular requests grow carefully even excuses. slyly bold foxes about the platelet'), +(189,10,1305,392.5,'slyly ironic ideas wake blithely quickly unusual theodolites. furiously pending ideas after the furiously permane'), +(190,1,535,621.53,'blithely regular packages use furiously about the slyly even accounts. final'), +(191,2,8310,521.06,'slyly quiet deposits are slyly express deposits. blithely ironic packages use. regular instructions wake quickl'); +INSERT INTO partsupp VALUES +(191,3,1693,464.46,'even, slow instructions kindle slyly regular deposits. slyly final instructions use furiously across the regular accounts. furiously pending accounts x-ray quic'), +(191,4,597,126.96,'blithely final realms believe furiously. quickly regular packages solve carefully final dolphins. blithely unu'), +(191,5,9673,119.41,'blithely even foxes cajole furiously. furiously final platelets about the blithely regular theodolites detect finally even accounts. instru'), +(192,3,606,198.69,'pending, final accounts are slyly. carefully express deposits are after the pending foxes. regular, idle accounts mold carefully furiously bold requests. regular, ironic packages breach'), +(192,4,2656,916.16,'furiously ironic pinto beans haggle carefully. req'), +(192,5,1811,359.59,'foxes are blithely blithely final packages. instruct'), +(192,6,8305,861.23,'regular, bold courts use regularly final, regular notornis. slyly final deposits integrate regular instructions. requests boost slyly against the slyly ironic deposits? furiously unusual pa'), +(193,4,6184,335.98,'foxes boost alongside of the slyly regular packages. ironic, regular courts haggle blithely. slyly regular packages cajole carefully by the sly'), +(193,5,4762,606.19,'furiously final instructions after the final foxes haggle slyly above the special instructions.'), +(193,6,385,571.71,'ironic instructions haggle slyly slyly even packages. blithely unusual escapades detect according to the quickly slow requests. furiously final packages nag sly'), +(193,7,9791,478.52,'unusual, pending asymptotes haggle carefully. fluffi'), +(194,5,4289,662.17,'carefully regular pains after the regular packages nag slyly according to the final, express accounts. express notornis haggle e'), +(194,6,377,430.21,'furiously pending accounts boost slyly. even, ironic pinto beans sleep carefully carefully unusual accounts. bold, silent instructions hinder carefully around the carefully'), +(194,7,5294,913.46,'accounts cajole. requests are slyly according to the '), +(194,8,7890,79.4,'regularly bold deposits according to the regular accounts could doubt fluffily ironic accounts. final, final dugouts try to cajole furiously b'), +(195,6,9985,20.39,'ironic, ironic deposits wake slyly around the deposits. blithely bold platelets above t'), +(195,7,2947,271.39,'carefully even theodolites haggle carefully according to the final reque'), +(195,8,319,102.58,'blithely unusual requests at the carefully unusual theodolites can solve furiously ironic packages-- blithely even accounts wake. blithely ironic accounts sleep regular courts. quickly bold packages'), +(195,9,2803,992.27,'slowly final theodolites sleep quickly about the unusual, ironic ideas. ironic foxes cajole'), +(196,7,3843,859.9,'final excuses maintain never quiet asymptotes. unusual realms eat slyly deposits. stealthily ironic deposits sleep-- slyly special dolphins na'), +(196,8,2515,966.01,'furiously regular requests are blithely according to the notornis. slow, ironic pinto beans boost blithely above the accounts. ruthless '), +(196,9,4778,37.61,'pending deposits sleep furiously furiously regular requests. blithely final foxes affix boldly after the slyly regular foxes. regular epitaphs above'), +(196,10,1068,928.25,'unusual accounts wake. express, even warhorses above the unusual, bold requests are carefully ironically even pack'), +(197,8,9678,753.88,'quickly regular tithes after the furiously final packages are slyly carefully ironic theodolites. carefully '), +(197,9,2631,279.05,'furiously express pinto beans are blithely behind the carefully stealthy dependencies. ideas against th'), +(197,10,7598,845.51,'blithely express depths sleep even, ironic packages. regularly final theodolites serve slyly above the quickly unusual platelets. furiously express dependencies are above the furio'), +(197,1,8950,897.33,'ironic accounts use above the special, blithe deposit'), +(198,9,6878,587.41,'blithely special deposits after the quickly ironic foxes boost car'); +INSERT INTO partsupp VALUES +(198,10,6493,673.99,'slyly ironic excuses about the quickly regular packages sleep furiously about the final packages. blithely final packages cajole blithely above the deposits. furiously regular exc'), +(198,1,8410,166.93,'final theodolites detect thinly carefully final ideas. slyly blithe depths are blithely toward the requests. furiously regul'), +(198,2,6190,697.1,'daring deposits along the fluffily silent requests wake furiously against the even, express courts. thinly pe'), +(199,10,9343,79.7,'blithely final instructions poach according to the fluffily bold dependencies. platelets cajole furiously according to the carefully special foxes? furiously ironic deposits boost quickly acc'), +(199,1,8199,46.52,'special foxes cajole fluffily against the instructions. ironic, final accounts despite the pending, unusual theodolites sleep slyly a'), +(199,2,2742,890.63,'special deposits among the final, express dolphins cajole furiously unusual inst'), +(199,3,7167,884.56,'furiously even theodolites integrate against the furiously brave pearls. silently pending accounts sleep blithely against the regular requests. doggedly unusual '), +(200,1,3120,776.41,'idle packages among the pending, regular asymptotes cajole furiously according to the furiously regular dependencies. furiously ironic packages sleep furi'), +(200,2,5392,242.52,'carefully regular asymptotes are. slyly express requests cajole carefully after the blithely bold instructions. thin packages b'), +(200,3,9408,307.79,'blithely pending theodolites sleep. ironic packages above the final packages cajole about the notornis. slyly even requests use fluffily '), +(200,4,331,466.07,'slyly silent deposits besides the fluffily regular ideas cajole furiously ideas. express ideas boost requests. silent accounts wake blithely around the furiously bold gifts. quickly even foxes are '); + +CREATE TABLE region ( + r_regionkey int(11) NOT NULL, + r_name char(25) DEFAULT NULL, + r_comment varchar(152) DEFAULT NULL, + PRIMARY KEY (r_regionkey) +); +INSERT INTO region VALUES +(0,'AFRICA','special Tiresias about the furiously even dolphins are furi'), +(1,'AMERICA','even, ironic theodolites according to the bold platelets wa'), +(2,'ASIA','silent, bold requests sleep slyly across the quickly sly dependencies. furiously silent instructions alongside '), +(3,'EUROPE','special, bold deposits haggle foxes. platelet'), +(4,'MIDDLE EAST','furiously unusual packages use carefully above the unusual, exp'); + +CREATE TABLE supplier ( + s_suppkey int(11) NOT NULL, + s_name char(25) DEFAULT NULL, + s_address varchar(40) DEFAULT NULL, + s_nationkey int(11) DEFAULT NULL, + s_phone char(15) DEFAULT NULL, + s_acctbal double DEFAULT NULL, + s_comment varchar(101) DEFAULT NULL, + PRIMARY KEY (s_suppkey), + KEY i_s_nationkey (s_nationkey) +); +INSERT INTO supplier VALUES +(1,'Supplier#000000001',' N kD4on9OM Ipw3,gf0JBoQDd7tgrzrddZ',17,'27-918-335-1736',5755.94,'requests haggle carefully. accounts sublate finally. carefully ironic pa'), +(2,'Supplier#000000002','89eJ5ksX3ImxJQBvxObC,',5,'15-679-861-2259',4032.68,'furiously stealthy frays thrash alongside of the slyly express deposits. blithely regular req'), +(3,'Supplier#000000003','q1,G3Pj6OjIuUYfUoH18BFTKP5aU9bEV3',1,'11-383-516-1199',4192.4,'furiously regular instructions impress slyly! carefu'), +(4,'Supplier#000000004','Bk7ah4CK8SYQTepEmvMkkgMwg',15,'25-843-787-7479',4641.08,'final ideas cajole. furiously close dep'), +(5,'Supplier#000000005','Gcdm2rJRzl5qlTVzc',11,'21-151-690-3663',-283.84,'carefully silent instructions are slyly according t'), +(6,'Supplier#000000006','tQxuVm7s7CnK',14,'24-696-997-4969',1365.79,'even requests wake carefully! fluffily final pinto beans run slyly among t'), +(7,'Supplier#000000007','s,4TicNGB4uO6PaSqNBUq',23,'33-990-965-2201',6820.35,'carefully express packages believe furiously after the fur'), +(8,'Supplier#000000008','9Sq4bBH2FQEmaFOocY45sRTxo6yuoG',17,'27-498-742-3860',7627.85,'carefully express escapades are slyly '), +(9,'Supplier#000000009','1KhUgZegwM3ua7dsYmekYBsK',10,'20-403-398-8662',5302.37,'slyly regular decoys mold slyly ironic dugouts. requests are carefully-- carefully'),(10,'Supplier#000000010','Saygah3gYWMp72i PY',24,'34-852-489-8585',3891.91,'ironic deposits poach quickly furiously final accounts. carefull'); + +CREATE TABLE time_statistics ( + task_name varchar(40) DEFAULT NULL, + s_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + e_time timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + int_time int(11) DEFAULT NULL +); diff --git a/mysql-test/include/ddl_i18n.check_events.inc b/mysql-test/include/ddl_i18n.check_events.inc new file mode 100644 index 00000000..8b0d70e3 --- /dev/null +++ b/mysql-test/include/ddl_i18n.check_events.inc @@ -0,0 +1,48 @@ +# - Check SHOW CREATE statement; + +--echo +--echo + +SHOW CREATE EVENT ev1| +--echo +SHOW CREATE EVENT ev2| +--echo +SHOW CREATE EVENT mysqltest2.ev3| +--echo +SHOW CREATE EVENT mysqltest2.ev3| + +# - Check SHOW statement; + +--echo +--echo + +SHOW EVENTS LIKE 'ev1'| + +--echo +SHOW EVENTS LIKE 'ev2'| + +--echo +SHOW EVENTS LIKE 'ev3'| + +--echo +SHOW EVENTS LIKE 'ev4'| + +# - Check INFORMATION_SCHEMA; + +--echo +--echo + +--replace_column 17 CREATED 18 LAST_ALTERED +SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev1'| + +--echo +--replace_column 17 CREATED 18 LAST_ALTERED +SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev2'| + +--echo +--replace_column 17 CREATED 18 LAST_ALTERED +SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev3'| + +--echo +--replace_column 17 CREATED 18 LAST_ALTERED +SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev4'| diff --git a/mysql-test/include/ddl_i18n.check_sp.inc b/mysql-test/include/ddl_i18n.check_sp.inc new file mode 100644 index 00000000..d88f4335 --- /dev/null +++ b/mysql-test/include/ddl_i18n.check_sp.inc @@ -0,0 +1,83 @@ +# - Check SHOW CREATE statement; + +--echo +--echo + +SHOW CREATE PROCEDURE p1| +--echo +SHOW CREATE PROCEDURE p2| +--echo +SHOW CREATE PROCEDURE mysqltest2.p3| +--echo +SHOW CREATE PROCEDURE mysqltest2.p4| + +# - Check SHOW statement; + +--echo +--echo + +--replace_column 5 MODIFIED 6 CREATED +SHOW PROCEDURE STATUS LIKE 'p1'| + +--echo +--replace_column 5 MODIFIED 6 CREATED +SHOW PROCEDURE STATUS LIKE 'p2'| + +--echo +--replace_column 5 MODIFIED 6 CREATED +SHOW PROCEDURE STATUS LIKE 'p3'| + +--echo +--replace_column 5 MODIFIED 6 CREATED +SHOW PROCEDURE STATUS LIKE 'p4'| + +# - Check INFORMATION_SCHEMA; + +--echo +--echo + +--replace_column 24 CREATED 25 ALTERED +SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p1'| + +--echo +--replace_column 24 CREATED 25 ALTERED +SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p2'| + +--echo +--replace_column 24 CREATED 25 ALTERED +SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p3'| + +--echo +--replace_column 24 CREATED 25 ALTERED +SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'p4'| + +# - Initialize the used variables (actual values don't matter); + +--echo +--echo + +SET @a = '1'| +SET @b = '2'| + +# - Execute the routines; + +--echo +--echo + +CALL p1(@a, @b)| +SELECT COLLATION(@a) AS ca, COLLATION(@b) cb| + +--echo + +CALL p2(@a, @b)| +SELECT COLLATION(@a) AS ca, COLLATION(@b) cb| + +--echo + +CALL mysqltest2.p3(@a, @b)| +SELECT COLLATION(@a) AS ca, COLLATION(@b) cb| + +--echo + +CALL mysqltest2.p4(@a, @b)| +SELECT COLLATION(@a) AS ca, COLLATION(@b) cb| diff --git a/mysql-test/include/ddl_i18n.check_triggers.inc b/mysql-test/include/ddl_i18n.check_triggers.inc new file mode 100644 index 00000000..2073021f --- /dev/null +++ b/mysql-test/include/ddl_i18n.check_triggers.inc @@ -0,0 +1,114 @@ +# - Check SHOW CREATE statement; + +--echo +--echo + +--replace_column 7 # +SHOW CREATE TRIGGER trg1| +--echo +--replace_column 7 # +SHOW CREATE TRIGGER trg2| +--echo +--replace_column 7 # +SHOW CREATE TRIGGER mysqltest2.trg3| +--echo +--replace_column 7 # +SHOW CREATE TRIGGER mysqltest2.trg4| + +# - Check SHOW statement; + +--echo +--echo + +--replace_column 6 # +SHOW TRIGGERS| + +--echo + +use mysqltest2| + +--echo + +--replace_column 6 # +SHOW TRIGGERS| + +use mysqltest1| + +# - Check INFORMATION_SCHEMA; + +--echo +--echo + +--replace_column 17 CREATED +SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg1'| + +--echo +--replace_column 17 CREATED +SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg2'| + +--echo +--replace_column 17 CREATED +SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg3'| + +--echo +--replace_column 17 CREATED +SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE trigger_name = 'trg4'| + +# - Initialize the used variables (actual values don't matter); + +--echo +--echo + +SET @a1 = '1'| +SET @a2 = '1'| +SET @a3 = '1'| + +SET @b1 = '2'| +SET @b2 = '2'| +SET @b3 = '2'| + +# - Execute the triggers; + +--echo +--echo + +INSERT INTO t1 VALUES(1)| + +--echo +--echo ---> Log: +--sorted_result +SELECT msg FROM log| + +--echo +SELECT + COLLATION(@a1) AS ca1, + COLLATION(@a2) AS ca2, + COLLATION(@a3) AS ca3, + COLLATION(@b1) AS cb1, + COLLATION(@b2) AS cb2, + COLLATION(@b3) AS cb3| + +--echo +DELETE FROM log| + +--echo +--echo + +INSERT INTO mysqltest2.t1 VALUES(1)| + +--echo +--echo ---> Log: +--sorted_result +SELECT msg FROM mysqltest2.log| + +--echo +SELECT + COLLATION(@a1) AS ca1, + COLLATION(@a2) AS ca2, + COLLATION(@a3) AS ca3, + COLLATION(@b1) AS cb1, + COLLATION(@b2) AS cb2, + COLLATION(@b3) AS cb3| + +--echo +DELETE FROM mysqltest2.log| diff --git a/mysql-test/include/ddl_i18n.check_views.inc b/mysql-test/include/ddl_i18n.check_views.inc new file mode 100644 index 00000000..db3ad02f --- /dev/null +++ b/mysql-test/include/ddl_i18n.check_views.inc @@ -0,0 +1,44 @@ +# - Check SHOW CREATE statement; + +--echo +--echo + +SHOW CREATE VIEW v1| + +--echo + +SHOW CREATE VIEW v2| + +--echo + +SHOW CREATE VIEW v3| + +# - Check INFORMATION_SCHEMA; + +--echo +--echo + +SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'| + +--echo + +SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'| + +--echo + +SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v3'| + +# - Execute the views; + +--echo +--echo + +SELECT COLLATION(c1), COLLATION(c2) FROM v1| + +--echo + +SELECT COLLATION(c1) FROM v2| + +--echo + +SELECT * FROM v3| diff --git a/mysql-test/include/deadlock.inc b/mysql-test/include/deadlock.inc new file mode 100644 index 00000000..abf217ae --- /dev/null +++ b/mysql-test/include/deadlock.inc @@ -0,0 +1,156 @@ +# include/deadlock.inc +# +# The variable +# $engine_type -- storage engine to be tested +# has to be set before sourcing this script. +# +# Last update: +# 2006-07-26 ML refactoring + print when connection is switched +# old name was t/innodb-deadlock.test +# main code went into include/deadlock.inc +# +--disable_service_connection +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); + +--disable_warnings +drop table if exists t1,t2; +--enable_warnings + +# +# Testing of FOR UPDATE +# +--disable_view_protocol +connection con1; +eval create table t1 (id integer, x integer) engine = $engine_type; +insert into t1 values(0, 0); +set autocommit=0; +SELECT * from t1 where id = 0 FOR UPDATE; + +connection con2; +set autocommit=0; + +# The following query should hang because con1 is locking the record +--send +update t1 set x=2 where id = 0; +--sleep 2 + +connection con1; +update t1 set x=1 where id = 0; +select * from t1; +commit; + +connection con2; +reap; +commit; + +connection con1; +select * from t1; +commit; + +drop table t1; +--enable_view_protocol +# +# Testing of FOR UPDATE +# +--disable_view_protocol +connection con1; +eval create table t1 (id integer, x integer) engine = $engine_type; +eval create table t2 (b integer, a integer) engine = $engine_type; +insert into t1 values(0, 0), (300, 300); +insert into t2 values(0, 10), (1, 20), (2, 30); +commit; +set autocommit=0; +select * from t2; +update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE); +select * from t2; +select * from t1; + +connection con2; +set autocommit=0; + +# The following query should hang because con1 is locking the record +--send +update t1 set x=2 where id = 0; +--sleep 2 + +connection con1; +update t1 set x=1 where id = 0; +select * from t1; +commit; + +connection con2; +reap; +commit; + +connection con1; +select * from t1; +commit; + +drop table t1, t2; +eval create table t1 (id integer, x integer) engine = $engine_type; +eval create table t2 (b integer, a integer) engine = $engine_type; +insert into t1 values(0, 0), (300, 300); +insert into t2 values(0, 0), (1, 20), (2, 30); +commit; + +connection con1; +select a,b from t2 UNION (SELECT id, x from t1 FOR UPDATE); +select * from t2; +select * from t1; + +connection con2; + +# The following query should hang because con1 is locking the record +update t2 set a=2 where b = 0; +select * from t2; +--send +update t1 set x=2 where id = 0; +--sleep 2 + +connection con1; +update t1 set x=1 where id = 0; +select * from t1; +commit; + +connection con2; +reap; +commit; + +connection con1; +select * from t1; +commit; + +# Cleanup +connection default; +disconnect con1; +disconnect con2; +drop table t1, t2; +--enable_view_protocol +--echo End of 4.1 tests + +# +# Bug#25164 create table `a` as select * from `A` hangs +# + +set default_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_TABLE_EXISTS_ERROR +create table a as select * from A; +drop table A; + +--disable_warnings +drop table if exists a; +--enable_warnings + +set default_storage_engine=default; + +--echo End of 5.0 tests. +--enable_service_connection diff --git a/mysql-test/include/default_charset.inc b/mysql-test/include/default_charset.inc new file mode 100644 index 00000000..e5c40100 --- /dev/null +++ b/mysql-test/include/default_charset.inc @@ -0,0 +1,15 @@ +# This file sets the default character set that most test expects. + +# In most cases the variables should match the community server defaults. +# The values should be changed if the default character set for the server +# changes and all tests have been updated to supported the new character set + +# The purpose if this file is to allow users to change these defaults +# without having to update all tests. + +--disable_query_log +SET @save_character_set_server= @@character_set_server; +SET @save_collation_server= @@collation_server; +set @@character_set_server="latin1"; +set @@collation_server="latin1_swedish_ci"; +--enable_query_log diff --git a/mysql-test/include/default_client.cnf b/mysql-test/include/default_client.cnf new file mode 100644 index 00000000..fc2fcf19 --- /dev/null +++ b/mysql-test/include/default_client.cnf @@ -0,0 +1,28 @@ +# +# We use default-character-set=latin1 to avoid character set auto-detection +# when running tests - not to depend on the current machine localization. +# + +[mysql] +default-character-set=latin1 + +[mysqlshow] +default-character-set=latin1 + +[mysqlimport] +default-character-set=latin1 + +[mysqlcheck] +default-character-set=latin1 + +[mysql_upgrade] +default-character-set=latin1 + +[mysqlslap] +loose-skip-ssl + +[mysqltest] +loose-ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem +loose-ssl-cert=@ENV.MYSQL_TEST_DIR/std_data/client-cert.pem +loose-ssl-key=@ENV.MYSQL_TEST_DIR/std_data/client-key.pem +loose-skip-ssl diff --git a/mysql-test/include/default_group_order.cnf b/mysql-test/include/default_group_order.cnf new file mode 100644 index 00000000..a4e84ec2 --- /dev/null +++ b/mysql-test/include/default_group_order.cnf @@ -0,0 +1,11 @@ +# Define the order that mtr will save groups in the generated my.cnf files +# The --debug-gdb option is just here to force mtr to remember the group order + +[mysqld] +#debug-gdb= +[mariadb] +#debug-gdb= +[embedded] +#debug-gdb= +[server] +#debug-gdb= diff --git a/mysql-test/include/default_my.cnf b/mysql-test/include/default_my.cnf new file mode 100644 index 00000000..a1c427fe --- /dev/null +++ b/mysql-test/include/default_my.cnf @@ -0,0 +1,36 @@ +# Copyright (c) 2007 MySQL AB, 2009, 2010 Sun Microsystems, Inc. +# Use is subject to license terms +# +# 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-1335 USA + +# Use default setting for mysqld processes +!include default_group_order.cnf +!include default_mysqld.cnf +!include default_client.cnf + +[mysqld.1] + +# Run the master.sh script before starting this process +#!run-master-sh + +# Run tests with the performance schema instrumentation +loose-enable-performance-schema + +[mysqlbinlog] +disable-force-if-open + +[ENV] +MASTER_MYPORT= @mysqld.1.port +MASTER_MYSOCK= @mysqld.1.socket +OPENSSL_ENABLE_SHA1_SIGNATURES= 1 diff --git a/mysql-test/include/default_mysqld.cnf b/mysql-test/include/default_mysqld.cnf new file mode 100644 index 00000000..89d0d779 --- /dev/null +++ b/mysql-test/include/default_mysqld.cnf @@ -0,0 +1,141 @@ +# Copyright (c) 2007, 2013, Oracle and/or its affiliates +# Copyright (c) 2010, 2021, MariaDB Corporation +# +# 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-1335 USA + +# Default values that applies to all MySQL Servers +[mysqld] +disable-getopt-prefix-matching +plugin-maturity=unknown +open-files-limit= 1024 +local-infile +character-set-server= latin1 + +# Increase default connect_timeout to avoid intermittent +# disconnects when test servers are put under load see BUG#28359 +connect-timeout= 60 + +secure-file-priv= @ENV.MYSQLTEST_VARDIR + +log-basename=mysqld +debug-no-sync + +# Retry bind as this may fail on busy server +port-open-timeout=10 + +log-bin-trust-function-creators=1 +key_buffer_size= 1M +sort_buffer_size= 256K +max_heap_table_size= 1M +loose-aria-pagecache-buffer-size=8M + +loose-feedback-user-info= mysql-test +loose-feedback-debug-startup-interval=20 +loose-feedback-debug-first-interval=60 +loose-feedback-debug-interval=60 + +loose-pam-debug + +loose-innodb_data_file_path= ibdata1:12M:autoextend +loose-innodb_buffer_pool_size= 8M +loose-innodb_lru_scan_depth= 100 +loose-innodb_write_io_threads= 2 +loose-innodb_read_io_threads= 2 +loose-innodb_log_buffer_size= 2M +loose-innodb_log_file_size= 10M + +slave-net-timeout=120 + +# MAINTAINER: +# the loose- syntax is to make sure the cnf file is also +# valid when building without the performance schema. + +# Run tests with the performance schema instrumentation +loose-enable-performance-schema +# Run tests with a small number of instrumented objects +# to limit memory consumption with MTR +loose-performance-schema-accounts-size=100 +loose-performance-schema-digests-size=200 +loose-performance-schema-hosts-size=100 +loose-performance-schema-users-size=100 +loose-performance-schema-max-mutex-instances=5000 +loose-performance-schema-max-rwlock-instances=5000 +loose-performance-schema-max-cond-instances=1000 +loose-performance-schema-max-file-instances=10000 +loose-performance-schema-max-socket-instances=1000 +loose-performance-schema-max-table-instances=500 +loose-performance-schema-max-table-lock-stat=500 +loose-performance-schema-max-index-stat=5000 +loose-performance-schema-max-table-handles=1000 +loose-performance-schema-max-prepared-statements-instances=100 +loose-performance-schema-max-program-instances=5000 +loose-performance-schema-setup-actors-size=100 +loose-performance-schema-setup-objects-size=100 + +loose-performance-schema-events-waits-history-size=10 +loose-performance-schema-events-waits-history-long-size=10000 +loose-performance-schema-events-stages-history-size=10 +loose-performance-schema-events-stages-history-long-size=1000 +loose-performance-schema-events-statements-history-size=10 +loose-performance-schema-events-statements-history-long-size=1000 +loose-performance-schema-events-transactions-history-size=10 +loose-performance-schema-events-transactions-history-long-size=1000 +loose-performance-schema-max-thread-instances=200 +loose-performance-schema-session-connect-attrs-size=2048 +loose-performance-schema-max-metadata-locks=10000 + +# Enable everything, for maximun code exposure during testing + +loose-performance-schema-instrument='%=ON' + +loose-performance-schema-consumer-events-stages-current=ON +loose-performance-schema-consumer-events-stages-history=ON +loose-performance-schema-consumer-events-stages-history-long=ON +loose-performance-schema-consumer-events-statements-current=ON +loose-performance-schema-consumer-events-statements-history=ON +loose-performance-schema-consumer-events-statements-history-long=ON +loose-performance-schema-consumer-events-transactions-current=ON +loose-performance-schema-consumer-events-transactions-history=ON +loose-performance-schema-consumer-events-transactions-history-long=ON +loose-performance-schema-consumer-events-waits-current=ON +loose-performance-schema-consumer-events-waits-history=ON +loose-performance-schema-consumer-events-waits-history-long=ON +loose-performance-schema-consumer-global-instrumentation=ON +loose-performance-schema-consumer-thread-instrumentation=ON + +binlog-direct-non-transactional-updates + +default-storage-engine=myisam +use_stat_tables=preferably +histogram_type=json_hb + +loose-ssl-ca=@ENV.MYSQL_TEST_DIR/std_data/cacert.pem +loose-ssl-cert=@ENV.MYSQL_TEST_DIR/std_data/server-cert.pem +loose-ssl-key=@ENV.MYSQL_TEST_DIR/std_data/server-key.pem + +# here, at the end of [mysqld] group mtr will automatically disable +# all optional plugins. + +[embedded] +# mtr automatically adds [embedded] group at the end and copies [mysqld] +# and [mysqld.1] groups into it. +# but we want [server] group to be after [mysqld] (and its copies). +# create a non-empty [embedded] group here, to force it before [server] +local-infile + +[server] +# Aria is optional, but it must be enabled if it's used for temporary +# tables. Let's enable it in the [server] group, because this group +# is read after [mysqld] and [embedded] +loose-aria diff --git a/mysql-test/include/default_optimizer_switch.inc b/mysql-test/include/default_optimizer_switch.inc new file mode 100644 index 00000000..8634c2ee --- /dev/null +++ b/mysql-test/include/default_optimizer_switch.inc @@ -0,0 +1,18 @@ +# This file sets the default optimizer flags and optimizer variables that +# most test expects. In most cases the variables should match the community +# server defaults. +# The purpose if this file is to allow users to change these defaults +# without having to update all tests. + +--disable_query_log +set @save_optimizer_switch=@@optimizer_switch; +set @save_join_cache_level=@@join_cache_level; + +set optimizer_switch="index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on"; + +set optimizer_use_condition_selectivity=4; +set optimizer_search_depth=62; +set join_buffer_space_limit=2097152; +set join_cache_level=2; +set join_buffer_size=262144; +--enable_query_log diff --git a/mysql-test/include/delete_anonymous_users.inc b/mysql-test/include/delete_anonymous_users.inc new file mode 100644 index 00000000..704e74ae --- /dev/null +++ b/mysql-test/include/delete_anonymous_users.inc @@ -0,0 +1,7 @@ +# Remove anonymous users added by add_anonymous_users.inc +disable_warnings; +disable_query_log; +DELETE FROM mysql.user where host='localhost' and user=''; +FLUSH PRIVILEGES; +enable_query_log; +enable_warnings; diff --git a/mysql-test/include/diff_servers.inc b/mysql-test/include/diff_servers.inc new file mode 100644 index 00000000..5ec7efc3 --- /dev/null +++ b/mysql-test/include/diff_servers.inc @@ -0,0 +1,67 @@ +# ==== Purpose ==== +# +# Check that two or more servers have identical databases; fail if not. +# +# ==== Usage ==== +# +# --let $diff_servers= 1 2 +# [--let $databases= db1 db2 ...] +# [--let $rpl_debug= 1] +# --source include/diff_servers.inc + +# pretty-print header +--let $_ds_info= servers=$diff_servers +if ($databases != '') +{ + --let $_ds_info= $_ds_info databases=$databases +} +--let $include_filename= diff_servers.inc [$_ds_info] +--source include/begin_include_file.inc + +# get databases +--let $_ds_databases= $diff_database +if ($_ds_databases == '') +{ + --let $_ds_databases= `SELECT GROUP_CONCAT(SCHEMA_NAME SEPARATOR ' ') FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME NOT IN ('information_schema', 'mtr', 'mysql', 'performance_schema')` +} + +# generate command line +--let $_ds_arg= --defaults-group-suffix=. +--let $_ds_number_pos= `SELECT LOCATE('$_ds_arg', '$MYSQL_DUMP') + LENGTH('$_ds_arg')` +--let $_ds_pre_command= `SELECT SUBSTR('$MYSQL_DUMP', 1, $_ds_number_pos - 1)` +--let $_ds_post_command= `SELECT SUBSTR('$MYSQL_DUMP', $_ds_number_pos + 1)` +--let $_ds_post_command= $_ds_post_command --compact --order-by-primary --skip-extended-insert --no-create-info --databases $_ds_databases +--let $_ds_prev_outfile= + +# iterate over servers +--let $_ds_servers= $diff_servers +while ($_ds_servers != '') +{ + --let $_ds_server_number= `SELECT SUBSTRING_INDEX('$_ds_servers', ' ', 1)` + --let $_ds_servers= `SELECT TRIM(SUBSTRING('$_ds_servers', 1 + LENGTH('_$ds_server_number')))` + --let $_ds_outfile= $MYSQLTEST_VARDIR/tmp/diff_servers_$_ds_server_number + + if ($rpl_debug) + { + --echo generating dump from server '$_ds_server_number' using command '$_ds_pre_command$_ds_server_number $_ds_post_command > $_ds_outfile' + --echo remaining servers: '$_ds_servers' + } + --exec $_ds_pre_command$_ds_server_number $_ds_post_command > $_ds_outfile + + if ($_ds_prev_outfile != '') + { + if ($rpl_debug) + { + --echo diffing files '$_ds_prev_outfile' and '$_ds_outfile' + } + --diff_files $_ds_prev_outfile $_ds_outfile + + --remove_file $_ds_prev_outfile + } + --let $_ds_prev_outfile= $_ds_outfile +} + +--remove_file $_ds_prev_outfile + +--let $include_filename= diff_servers.inc [servers=$_ds_info] +--source include/end_include_file.inc diff --git a/mysql-test/include/diff_tables.inc b/mysql-test/include/diff_tables.inc new file mode 100644 index 00000000..a566a4d7 --- /dev/null +++ b/mysql-test/include/diff_tables.inc @@ -0,0 +1,195 @@ +# ==== Purpose ==== +# +# Check if all tables in the given list are equal. The tables may have +# different names, exist in different connections, and/or reside in +# different databases. +# +# +# ==== Usage ==== +# +# --let $diff_tables= [con1:][db1.]t1, [con2:][db2.]t2, ... , [conN:][dbN.]tN +# [--let $rpl_debug= 1] +# --source include/diff_tables.inc +# +# Parameters: +# $diff_tables +# Comma-separated list of tables to compare. Each table has the form +# +# [CONNECTION:][DATABASE.]table +# +# If CONNECTION is given, then that connection is used. If +# CONNECTION is not given, then the connection of the previous +# table is used (or the current connection, if this is the first +# table). If DATABASE is given, the table is read in that +# database. If DATABASE is not given, the table is read in the +# connection's current database. +# +# $rpl_debug +# See include/rpl_init.inc +# +# +# ==== Side effects ==== +# +# - Prints "include/diff_tables.inc [$diff_tables]". +# +# - If the tables are different, prints the difference in a +# system-specific format (unified diff if supported) and generates +# an error. +# +# +# ==== Bugs ==== +# +# - It is currently not possible to use this for tables that are +# supposed to be different, because if the files are different: +# - 'diff' produces system-dependent output, +# - the output includes the absolute path of the compared files, +# - the output includes a timestamp. +# To fix that, we'd probably have to use SQL to compute the +# symmetric difference between the tables. I'm not sure how to do +# that efficiently. If we implement this, it would be nice to +# compare the table definitions too. +# +# - It actually compares the result of "SELECT * FROM table ORDER BY +# col1, col2, ..., colN INTO OUTFILE 'file'". Hence, it is assumed +# that the comparison orders for both tables are equal and that two +# rows that are equal in the comparison order cannot differ, e.g., +# by character case. + + +--let $include_filename= diff_tables.inc [$diff_tables] +--source include/begin_include_file.inc + + +if (!$rpl_debug) +{ + --disable_query_log +} + + +# Check sanity +if (`SELECT LOCATE(',', '$diff_tables') = 0`) +{ + --die ERROR IN TEST: $diff_tables must contain at least two tables (separated by comma) +} + + +# ==== Save both tables to file ==== + +# Trim off whitespace +--let $_dt_tables= `SELECT REPLACE('$diff_tables', ' ', '')` + +# Iterate over all tables +--let $_dt_outfile= +--let $_dt_prev_outfile= +while ($_dt_tables) +{ + --let $_dt_table= `SELECT SUBSTRING_INDEX('$_dt_tables', ',', 1)` + --let $_dt_tables= `SELECT SUBSTRING('$_dt_tables', LENGTH('$_dt_table') + 2)` + + # Parse connection, if any + --let $_dt_colon_index= `SELECT LOCATE(':', '$_dt_table')` + if ($_dt_colon_index) + { + --let $_dt_connection= `SELECT SUBSTRING('$_dt_table', 1, $_dt_colon_index - 1)` + --let $_dt_table= `SELECT SUBSTRING('$_dt_table', $_dt_colon_index + 1)` + --let $rpl_connection_name= $_dt_connection + --source include/rpl_connection.inc + } + + # Parse database name, if any + --let $_dt_database_index= `SELECT LOCATE('.', '$_dt_table')` + if ($_dt_database_index) + { + --let $_dt_database= `SELECT SUBSTRING('$_dt_table', 1, $_dt_database_index - 1)` + --let $_dt_table= `SELECT SUBSTRING('$_dt_table', $_dt_database_index + 1)` + } + if (!$_dt_database_index) + { + --let $_dt_database= `SELECT DATABASE()` + } + + if ($rpl_debug) + { + --echo con='$_dt_connection' db='$_dt_database' table='$_dt_table' + --echo rest of tables='$_dt_tables' + } + + # We need to sort the output files so that diff_files does not think + # the tables are different just because the rows are differently + # ordered. To this end, we first generate a string containing a + # comma-separated list of all column names. This is used in the + # ORDER BY clause of the following SELECT statement. We get the + # column names from INFORMATION_SCHEMA.COLUMNS, and we concatenate + # them with GROUP_CONCAT. Since GROUP_CONCAT is limited by the + # @@SESSION.group_concat_max_len, which is only 1024 by default, we + # first compute the total size of all columns and then increase this + # limit if needed. We restore the limit afterwards so as not to + # interfere with the test case. + + # Compute length of ORDER BY clause. + let $_dt_order_by_length= + `SELECT SUM(LENGTH(column_name) + 3) FROM information_schema.columns + WHERE table_schema = '$_dt_database' AND table_name = '$_dt_table'`; + if (!$_dt_order_by_length) + { + --echo ERROR IN TEST: table $_dt_database.$_dt_table not found in INFORMATION_SCHEMA.COLUMNS. Did you misspell it? + --die ERROR IN TEST: table not found in INFORMATION_SCHEMA. Did you misspell it? + } + --let $_dt_old_group_concat_max_len= + # Increase group_concat_max_len if needed. + if (`SELECT $_dt_order_by_length > @@SESSION.group_concat_max_len`) + { + --let $_dt_old_group_concat_max_len= `SELECT @@SESSION.group_concat_max_len` + --eval SET SESSION group_concat_max_len = $_dt_order_by_length; + if ($rpl_debug) + { + --echo # increasing group_concat_max_len from $_dt_old_group_concat_max_len to $_dt_order_by_length + } + } + # Generate ORDER BY clause. + # It would be better to do GROUP_CONCAT(CONCAT('`', column_name, '`')) but + # BUG#58087 prevents us from returning strings that begin with backticks. + let $_dt_column_list= + `SELECT GROUP_CONCAT(column_name ORDER BY ORDINAL_POSITION SEPARATOR '`,`') + FROM information_schema.columns + WHERE table_schema = '$_dt_database' AND table_name = '$_dt_table'`; + # Restore group_concat_max_len. + if ($_dt_old_group_concat_max_len) + { + --let $_dt_dummy= `SET SESSION group_concat_max_len = $_dt_old_group_concat_max_len + } + if ($rpl_debug) + { + --echo using ORDER BY clause '`$_dt_column_list`' + } + + # Now that we have the comma-separated list of columns, we can write + # the table to a file. + --disable_ps2_protocol + --let $_dt_outfile= `SELECT @@datadir` + --let $_dt_outfile= $_dt_outfile/diff_table-$_dt_connection-$_dt_database-$_dt_table + eval SELECT * INTO OUTFILE '$_dt_outfile' FROM $_dt_database.$_dt_table ORDER BY `$_dt_column_list`; + --enable_ps2_protocol + + # Compare files. + if ($_dt_prev_outfile) + { + if ($rpl_debug) + { + --echo # diffing $_dt_prev_outfile vs $_dt_outfile + } + --diff_files $_dt_prev_outfile $_dt_outfile + # Remove previous outfile. Keep current file for comparison with next table. + --disable_warnings + --remove_file $_dt_prev_outfile + --enable_warnings + } + --let $_dt_prev_outfile= $_dt_outfile +} + +--disable_warnings +--remove_file $_dt_prev_outfile +--enable_warnings + +--let $include_filename= diff_tables.inc [$diff_tables] +--source include/end_include_file.inc diff --git a/mysql-test/include/empty_string_literal.inc b/mysql-test/include/empty_string_literal.inc new file mode 100644 index 00000000..5857c26d --- /dev/null +++ b/mysql-test/include/empty_string_literal.inc @@ -0,0 +1,135 @@ +SET SESSION character_set_connection=latin2; +SET SESSION character_set_client=cp1250; + +--disable_service_connection + +--echo # +--echo # Test litteral +--echo # + +#enable view protocol after fix MDEV-27871 and +# it is necessary that the view protocol uses the same connection, +# not util connection +--disable_view_protocol + +SET sql_mode=@mode; +select @@sql_mode; +SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x'); +SELECT CHARSET(NULLIF('','')),NULLIF('',''); +SET sql_mode=default; +SELECT '',CHARSET(''), null, CHARSET(null), CAST(null as char(10)), CHARSET(CAST(null as char(10))), 'x', CHARSET('x'); +SELECT CHARSET(NULLIF('','')),NULLIF('',''); + + + +--echo # +--echo # Test NCHAR litteral +--echo # +SET sql_mode=@mode; +SELECT N'',CHARSET(N''), N'x', CHARSET(N'x'); +SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N''); +SET sql_mode=default; +SELECT N'',CHARSET(N''), N'x', CHARSET(N'x'); +SELECT CHARSET(NULLIF(N'',N'')),NULLIF(N'',N''); + + + +--echo # +--echo # Test CHARSET prefix litteral +--echo # +SET sql_mode=@mode; +SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x'); +SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 ''); +SET sql_mode=default; +SELECT _cp1250 '',CHARSET(_cp1250 ''), _cp1250 'x', CHARSET(_cp1250 'x'); +SELECT CHARSET(NULLIF(_cp1250 '',_cp1250 '')),NULLIF(_cp1250 '',_cp1250 ''); + + +SET sql_mode=@mode; + +--echo # +--echo # Test litteral concat +--echo # +SELECT 'a' 'b'; +SELECT 'a' ''; +SELECT '' 'b'; +SELECT '' ''; +SELECT '' 'b' 'c'; +SELECT '' '' 'c'; +SELECT 'a' '' 'c'; +SELECT 'a' '' ''; +SELECT '' '' ''; + +SELECT '' '' '',CHARSET('' '' ''); +SELECT _latin1'' '' '',CHARSET(_latin1'' '' ''); +SELECT N'' '' '',CHARSET(N'' '' ''); + +--enable_view_protocol + +--echo # +--echo # UNION - implicit group by +--echo # +SELECT 1, null +UNION +SELECT 1 , '' +ORDER BY 1; + +SELECT 1, null +UNION +SELECT 1 , N'' +ORDER BY 1; + +SELECT 1, null +UNION +SELECT 1 , _cp1250 '' +ORDER BY 1; + +# it is necessary that the view protocol uses the same connection, +# not util connection +--disable_view_protocol + +SELECT NULLIF(_cp1250 '',_cp1250 '') +UNION +SELECT NULLIF(N'',N''); + +--enable_view_protocol + +--error ER_CANT_AGGREGATE_2COLLATIONS +SELECT 1 , _latin2 '' +UNION +SELECT 1 , _cp1250 ''; + +SELECT 1, null +UNION +SELECT 1 , '' +UNION +SELECT 1 , N''; + +CREATE TABLE t1 (c1 INT,c2 VARCHAR(10)); +INSERT INTO t1 VALUES (1,'one'); +INSERT INTO t1 VALUES (1,''); +INSERT INTO t1 VALUES (1,null); + +--echo # +--echo # Test in a view +--echo # +CREATE VIEW v1 + AS SELECT c1, c2 + FROM t1 + UNION + SELECT c1 , '' + FROM t1 + ORDER BY 1,2; +SELECT * FROM v1; + +SHOW CREATE VIEW v1; + +DROP VIEW v1; +DROP TABLE t1; + +EXPLAIN EXTENDED SELECT ''; +EXPLAIN EXTENDED SELECT _latin1''; +EXPLAIN EXTENDED SELECT N''; +EXPLAIN EXTENDED SELECT '' ''; + +--enable_service_connection diff --git a/mysql-test/include/end_include_file.inc b/mysql-test/include/end_include_file.inc new file mode 100644 index 00000000..1e546c12 --- /dev/null +++ b/mysql-test/include/end_include_file.inc @@ -0,0 +1,79 @@ +# ==== Purpose ==== +# +# See include/begin_include_file.inc +# +# +# ==== Usage ==== +# +# # At the end of include/my_file.inc: +# --let $include_filename= my_file.inc +# [--let $skip_restore_connection= 1] +# [--let $rpl_debug= 1] +# --source include/begin_include_file.inc +# +# Parameters: +# $include_filename +# Name of file that sources this file. +# +# $skip_restore_connection +# By default, this script restores the connection that was active +# when begin_include_file.inc was sourced. If +# $skip_restore_connection is set, then this step is skipped and +# end_include_file.inc leaves the connection as it was before +# end_include_file.inc was sourced. + +--let $_tmp= `SELECT SUBSTRING('$_include_file_enabled_warnings', 1, 1)` +--let $_include_file_enabled_warnings= `SELECT SUBSTRING('$_include_file_enabled_warnings', 2)` +if ($_tmp) { + --enable_warnings +} +if (!$_tmp) { + --disable_warnings +} + +--let $_tmp= `SELECT SUBSTRING('$_include_file_enabled_query_log', 1, 1)` +--let $_include_file_enabled_query_log= `SELECT SUBSTRING('$_include_file_enabled_query_log', 2)` +if ($_tmp) { + --enable_query_log +} +if (!$_tmp) { + --disable_query_log +} + +--let $_tmp= `SELECT SUBSTRING('$_include_file_enabled_result_log', 1, 1)` +--let $_include_file_enabled_result_log= `SELECT SUBSTRING('$_include_file_enabled_result_log', 2)` +if ($_tmp) { + --enable_result_log +} +if (!$_tmp) { + --disable_result_log +} + +--let $_tmp= `SELECT SUBSTRING('$_include_file_enabled_abort_on_error', 1, 1)` +--let $_include_file_enabled_abort_on_error= `SELECT SUBSTRING('$_include_file_enabled_abort_on_error', 2)` +if ($_tmp) { + --enable_abort_on_error +} +if (!$_tmp) { + --disable_abort_on_error +} + +--let $_include_file_rpl_connection_name= `SELECT SUBSTRING_INDEX('$_include_file_connection', ',', 1)` +--let $_include_file_connection= `SELECT SUBSTRING('$_include_file_connection', LENGTH('$_include_file_rpl_connection_name') + 2)` +if (!$skip_restore_connection) +{ + --let $rpl_connection_name= $_include_file_rpl_connection_name + --source include/rpl_connection.inc +} +--let $skip_restore_connection= 0 + + +--dec $_include_file_depth +--let $_include_file_indent= `SELECT REPEAT('.', $_include_file_depth)` + +if ($rpl_debug) +{ + --echo $_include_file_indent==== END include/$include_filename ==== + --echo $_include_file_indent con='$CURRENT_CONNECTION' warn='$ENABLED_WARNINGS' qlog='$ENABLED_QUERY_LOG' rlog='$ENABLED_RESULT_LOG' aborterr='$ENABLED_ABORT_ON_ERROR' +} +--let $include_filename= diff --git a/mysql-test/include/endspace.inc b/mysql-test/include/endspace.inc new file mode 100644 index 00000000..1692a258 --- /dev/null +++ b/mysql-test/include/endspace.inc @@ -0,0 +1,7 @@ +select 'a' = 'a', 'a' = 'a ', 'a ' = 'a'; +select 'a\0' = 'a', 'a\0' < 'a', 'a\0' > 'a'; +select 'a' = 'a\0', 'a' < 'a\0', 'a' > 'a\0'; +select 'a\0' = 'a ', 'a\0' < 'a ', 'a\0' > 'a '; +select 'a ' = 'a\0', 'a ' < 'a\0', 'a ' > 'a\0'; +select 'a a' > 'a', 'a \0' < 'a'; +select binary 'a a' > 'a', binary 'a \0' > 'a', binary 'a\0' > 'a'; diff --git a/mysql-test/include/ensure_binlog_row_event_columns.inc b/mysql-test/include/ensure_binlog_row_event_columns.inc new file mode 100644 index 00000000..0dab9cc2 --- /dev/null +++ b/mysql-test/include/ensure_binlog_row_event_columns.inc @@ -0,0 +1,72 @@ +# +# Helper file to ensure that a binary log file properly writes the expected +# fields based on the binlog_row_image value. +# +# ==== Usage ==== +# +# --let $expected_columns= (COLUMN_IDS) +# --let $binlog_filename= FILENAME +# --source include/count_binlog_row_event_columns.inc +# +# Parameters: +# expected_columns (list<uint>, in) : A list of positive integers which +# correspond to the column numbers that should be output in a binary +# log's write_rows event +# binlog_filename (string, in) : Name of the binary log file to analyze +# + +if (!$expected_columns) +{ + --die expected_columns parameter is required but was not set +} + +if (!$binlog_filename) +{ + --die binlog_filename parameter is required but was not set +} + +--let $include_filename= ensure_binlog_row_event_columns.inc [$expected_columns] +--source include/begin_include_file.inc + +--let $assert_file=$MYSQLTEST_VARDIR/tmp/binlog_decoded.out +--let mysqld_datadir=`select @@datadir` + +--echo # MYSQL_BINLOG mysqld_datadir/binlog_filename -vv > assert_file +--exec $MYSQL_BINLOG $mysqld_datadir/$binlog_filename -vv > $assert_file + +--echo # Verifying all expected column ids appear in binlog event output.. +--let num_cols_found=0 +--let last_expected_col= `SELECT GREATEST $expected_columns` +--let i= 1 +while($i <= $last_expected_col) +{ + # By default, assume the column is not expected to be in the binary log. + # If the column id is set in expected_columns, then override assertion + # parameters. + --let assert_count= 0 + --let assert_text= Column @$i should not be in binary log + + if (`SELECT $i IN $expected_columns`) + { + --let assert_count= 1 + --let assert_text= Column @$i should be in binary log + + --inc $num_cols_found + } + + --let assert_select= @$i + --source include/assert_grep.inc + + --inc $i +} +--echo # ..success + +--echo # Verifying only expected column ids appear in binlog event output.. +--let assert_count= $num_cols_found +--let assert_text= The binlog event should only have $num_cols_found columns +--let assert_select= @[\d]+ +--source include/assert_grep.inc +--echo # ..success + +--let $include_filename= ensure_binlog_row_event_columns.inc [$expected_columns] +--source include/end_include_file.inc diff --git a/mysql-test/include/equal_fields_propagation_datetime.inc b/mysql-test/include/equal_fields_propagation_datetime.inc new file mode 100644 index 00000000..97a30a83 --- /dev/null +++ b/mysql-test/include/equal_fields_propagation_datetime.inc @@ -0,0 +1,64 @@ + +# Trailing garbage in string literals +--eval CREATE TABLE t1 (a $TYPE); +INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2001-01-01 00:00:01'); +SELECT * FROM t1 WHERE a='2001-01-01 00:00:00x'; +SELECT * FROM t1 WHERE LENGTH(a) != 20; +SELECT * FROM t1 WHERE LENGTH(a) != 20 AND a='2001-01-01 00:00:00x'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a) != 20 AND a='2001-01-01 00:00:00x'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)!=30+RAND() AND a='2001-01-01 00:00:00x'; +DROP TABLE t1; + +# Leading spaces in string literals +--eval CREATE TABLE t1 (a $TYPE); +INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2001-01-01 00:00:01'); +SELECT * FROM t1 WHERE LENGTH(a)=19; +SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=' 2001-01-01 00:00:00'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=' 2001-01-01 00:00:00'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)=19+RAND() AND a=' 2001-01-01 00:00:00'; +# This should not propagate +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)=30+RAND() AND a=' garbage '; +DROP TABLE t1; + +# Trailing fractional digits in temporal literals +--eval CREATE TABLE t1 (a $TYPE); +INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2001-01-01 00:00:01'); +SELECT * FROM t1 WHERE a=TIMESTAMP'2001-01-01 00:00:00.000000'; +SELECT * FROM t1 WHERE LENGTH(a)=19; +SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)=30+RAND() AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; +DROP TABLE t1; + +# Trailing fractional digits in temporal literals, the same precision +--eval CREATE TABLE t1 (a $TYPE(6)); +INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'),('2001-01-01 00:00:01.000000'); +SELECT * FROM t1 WHERE a=TIMESTAMP'2001-01-01 00:00:00.000000'; +SELECT * FROM t1 WHERE LENGTH(a)=26; +SELECT * FROM t1 WHERE LENGTH(a)=26 AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)=26 AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)=40+RAND() AND a=TIMESTAMP'2001-01-01 00:00:00.000000'; +DROP TABLE t1; + +# DATETIME/TIMESTAMP column vs TIME literal +SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30'); +--eval CREATE TABLE t1 (a $TYPE); +INSERT INTO t1 VALUES ('2001-01-01 00:00:00'),('2001-01-01 00:00:01'); +SELECT * FROM t1 WHERE a=TIME'00:00:00'; +SELECT * FROM t1 WHERE LENGTH(a)=19; +SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=TIME'00:00:00'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)=19 AND a=TIME'00:00:00'; +EXPLAIN EXTENDED +SELECT * FROM t1 WHERE LENGTH(a)=40+RAND() AND a=TIME'00:00:00'; +DROP TABLE t1; + diff --git a/mysql-test/include/execute_with_statistics.inc b/mysql-test/include/execute_with_statistics.inc new file mode 100644 index 00000000..c2305fe5 --- /dev/null +++ b/mysql-test/include/execute_with_statistics.inc @@ -0,0 +1,30 @@ +# include/execute_with_statistics.inc +# +# SUMMARY +# +# Explain and execute the select statment in $query. +# Then report 'Last_query_cost' estimate from the query +# optimizer and total number of 'Handler_read%' when the +# query was executed. +# Intended usage is to verify that there are not regressions +# in either calculated or actuall cost for $query. +# +# USAGE +# +# let $query= <select statement>; +# --source include/execute_with_statistics.inc +# +# EXAMPLE +# t/greedy_optimizer.test +# + +eval EXPLAIN $query; +SHOW STATUS LIKE 'Last_query_cost'; + +FLUSH STATUS; +eval $query; +--disable_warnings +SELECT SUM(variable_value) AS Total_handler_reads + FROM information_schema.session_status + WHERE variable_name LIKE 'Handler_read%'; +--enable_warnings diff --git a/mysql-test/include/expect_crash.inc b/mysql-test/include/expect_crash.inc new file mode 100644 index 00000000..b4bd9828 --- /dev/null +++ b/mysql-test/include/expect_crash.inc @@ -0,0 +1,5 @@ +--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect + +# There should be a debug crash after using this .inc file +--exec echo "wait" > $_expect_file_name diff --git a/mysql-test/include/expect_qep.inc b/mysql-test/include/expect_qep.inc new file mode 100644 index 00000000..f7ec6629 --- /dev/null +++ b/mysql-test/include/expect_qep.inc @@ -0,0 +1,47 @@ +# include/expect_qep.inc +# +# SUMMARY +# +# Designed to be used together with include/check_qep.inc +# +# $query should be assigned a select statement using +# straight_join to force the tables to be joined in most +# optimal order. +# +# expect_qep.inc will then store the estimated 'Last_query_cost' +# and total # 'Handler_read%' for this straight_joined query. +# +# We should then assign a non-straight_join'ed version of +# the same query to $query and execute it using +# 'include/check_qep.inc'. Its estimated cost and +# #handler_reads will then be verified against the +# previous straight_joined query. +# +# USAGE +# +# let $query= <select straight_join optimal statement>; +# --source include/expect_qep.inc +# let $query= <select statement>; +# --source include/check_qep.inc +# +# EXAMPLE +# t/greedy_optimizer.test +# + +flush status; +eval EXPLAIN $query; +--disable_ps2_protocol +eval $query; +--enable_ps2_protocol + +let $best_cost= + query_get_value(SHOW STATUS LIKE 'Last_query_cost', Value, 1); + +--disable_warnings +let $best_reads= +`select sum(variable_value) + from information_schema.session_status + where VARIABLE_NAME like 'Handler_read%'`; +--enable_warnings + +#echo Expect, cost: $best_cost, Handler_reads: $best_reads; diff --git a/mysql-test/include/explain_non_select.inc b/mysql-test/include/explain_non_select.inc new file mode 100644 index 00000000..bd0962d3 --- /dev/null +++ b/mysql-test/include/explain_non_select.inc @@ -0,0 +1,849 @@ +# This file is a collection of regression and coverage tests +# for WL#4897: Add EXPLAIN INSERT/UPDATE/DELETE. + +-- disable_query_log +-- disable_result_log +# SET GLOBAL innodb_stats_persistent=0; +-- enable_result_log +-- enable_query_log + +# set end_markers_in_json=on; + +--echo #1 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +--let $query = UPDATE t1 SET a = 10 WHERE a < 10 +--let $select = SELECT * FROM t1 WHERE a < 10 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #2 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +--let $query = DELETE FROM t1 WHERE a < 10 +--let $select = SELECT * FROM t1 WHERE a < 10 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #3 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +--let $query = DELETE FROM t1 USING t1 WHERE a = 1 +--let $select = SELECT * FROM t1 WHERE a = 1 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #4 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1, t2 SET t1.a = 10 WHERE t1.a = 1 +--let $select = SELECT * FROM t1, t2 WHERE t1.a = 1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #5 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1 t11, (SELECT * FROM t2) t12 SET t11.a = 10 WHERE t11.a = 1 +--let $select = SELECT * FROM t1 t11, (SELECT * FROM t2) t12 WHERE t11.a = 1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #6 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1 SET a = 10 WHERE 1 IN (SELECT 1 FROM t2 WHERE t2.b < 3) +--let $select = SELECT * FROM t1 WHERE 1 IN (SELECT 1 FROM t2 WHERE t2.b < 3) +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #7 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1 SET a = 10 WHERE a IN (SELECT b FROM t2 WHERE t1.a < 3) +--let $select = SELECT * FROM t1 WHERE a IN (SELECT b FROM t2 WHERE t1.a < 3) +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #7 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1, t2 SET a = 10 WHERE a IN (SELECT b FROM t2 WHERE t2.b < 3) +--let $select = SELECT * FROM t1, t2 WHERE a IN (SELECT b FROM t2 WHERE t2.b < 3) +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #8 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1 t11, (SELECT * FROM t2) t12 SET t11.a = t11.a + 10 +--let $select = SELECT * FROM t1 t11, (SELECT * FROM t2) t12 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #9 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1 t11, (SELECT 1 FROM DUAL) t12 SET t11.a = t11.a + 10 +--let $select = SELECT * FROM t1 t11, (SELECT 1 FROM DUAL) t12 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #10 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1 t11, (SELECT * FROM t2) t12 SET t11.a = 10 WHERE t11.a > 1 +--let $select = SELECT * FROM t1 t11, (SELECT * FROM t2) t12 WHERE t11.a > 1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #11 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +--let $query = DELETE FROM t1 WHERE a > 1 LIMIT 1 +--let $select = SELECT * FROM t1 WHERE a > 1 LIMIT 1 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #12 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +--let $query = DELETE FROM t1 WHERE 0 +--let $select = SELECT * FROM t1 WHERE 0 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #13 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +--let $query = DELETE FROM t1 USING t1 WHERE 0 +--let $select = SELECT * FROM t1 WHERE 0 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #14 +CREATE TABLE t1 (a INT, b INT, UNIQUE KEY (a), KEY (b)); +INSERT INTO t1 VALUES (3, 3), (7, 7); +--let $query = DELETE FROM t1 WHERE a = 3 +--let $select = SELECT * FROM t1 WHERE a = 3 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #15 +CREATE TABLE t1 (a INT, b INT, UNIQUE KEY (a), KEY (b)); +INSERT INTO t1 VALUES (3, 3), (7, 7); +--let $query = DELETE FROM t1 WHERE a < 3 +--let $select = SELECT * FROM t1 WHERE a < 3 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #16 +CREATE TABLE t1 ( a int PRIMARY KEY ); +--let $query = DELETE FROM t1 WHERE t1.a > 0 ORDER BY t1.a +--let $select = SELECT * FROM t1 WHERE t1.a > 0 ORDER BY t1.a +--source include/explain_utils.inc +INSERT INTO t1 VALUES (1), (2), (3), (-1), (-2), (-3); +--let $query = DELETE FROM t1 WHERE t1.a > 0 ORDER BY t1.a +--let $select = SELECT * FROM t1 WHERE t1.a > 0 ORDER BY t1.a +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #17 +CREATE TABLE t1(a INT PRIMARY KEY); +INSERT INTO t1 VALUES (4),(3),(1),(2); +--let $query = DELETE FROM t1 WHERE (@a:= a) ORDER BY a LIMIT 1 +--let $select = SELECT * FROM t1 WHERE (@a:= a) ORDER BY a LIMIT 1 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #18 +CREATE TABLE t1 (a DATE, b TIME, c INT, KEY c(c), KEY b(b), KEY a(a)); +INSERT INTO t1 VALUES (), (), (), (), (), (), (), (), (), (); +UPDATE t1 SET a = c, b = c; +--let $query = DELETE FROM t1 ORDER BY a ASC, b ASC LIMIT 1 +--let $select = SELECT * FROM t1 ORDER BY a ASC, b ASC LIMIT 1 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #19 +CREATE TABLE t1 (a1 INT NOT NULL, b1 INT NOT NULL); +CREATE TABLE t2 (a2 INT NOT NULL, b2 INT NOT NULL, PRIMARY KEY (a2,b2)); +CREATE TABLE t3 (a3 INT NOT NULL, b3 INT NOT NULL, PRIMARY KEY (a3,b3)); +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); +--let $query = DELETE t1,t2,t3 FROM t1,t2,t3 WHERE a1=a2 AND b2=a3 AND b1=b3 +--let $select = SELECT * FROM t1,t2,t3 WHERE a1=a2 AND b2=a3 AND b1=b3 +--source include/explain_utils.inc +DROP TABLE t1, t2, t3; + +--echo #20 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (a INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1 SET a = 10 WHERE a IN (SELECT a FROM t2) +--let $select = SELECT * FROM t1 WHERE a IN (SELECT a FROM t2) +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #21 +CREATE TABLE t1 (a1 INT); +INSERT INTO t1 VALUES (1), (2), (3), (4), (5); +CREATE TABLE t2 (a2 VARCHAR(10)); +INSERT INTO t2 VALUES (1), (2), (3), (4), (5); +SET @save_optimizer_switch= @@optimizer_switch; +--disable_query_log +if (`select locate('semijoin', @@optimizer_switch) > 0`) +{ + SET @@optimizer_switch= 'semijoin=off'; +} +--enable_query_log +--let $query = DELETE FROM t1 WHERE a1 IN (SELECT a2 FROM t2 WHERE a2 > 2) +--let $select = SELECT * FROM t1 WHERE a1 IN (SELECT a2 FROM t2 WHERE a2 > 2) +--source include/explain_utils.inc +SET @@optimizer_switch= @save_optimizer_switch; +TRUNCATE t1; +INSERT INTO t1 VALUES (1), (2), (3), (4), (5); +--let $query = DELETE FROM t1 WHERE a1 IN (SELECT a2 FROM t2 WHERE a2 > 2) +--let $select = SELECT * FROM t1 WHERE a1 IN (SELECT a2 FROM t2 WHERE a2 > 2) +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #22 +CREATE TABLE t1 (i INT, j INT); +INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); +--let $query = UPDATE t1 SET i = 10 +--let $select = SELECT * FROM t1 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #23 +CREATE TABLE t1 (i INT, j INT); +INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); +--let $query = DELETE FROM t1 +--let $select = SELECT * FROM t1 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #24 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2(a INT, b INT, c INT, d INT, INDEX(a, b, c)); +INSERT INTO t2 (a, b, c) SELECT i, i, i FROM t1; +INSERT INTO t2 (a, b, c) SELECT t1.i, t1.i, t1.i FROM t1, t1 x1, t1 x2; +--let $query = DELETE FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $select = SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $no_rows = 1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #25 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (i INT); +--let $query = INSERT INTO t2 SELECT * FROM t1 +--let $select = SELECT * FROM t1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #26 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (i INT); +--let $query = REPLACE INTO t2 SELECT * FROM t1 +--let $select = SELECT * FROM t1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #27 +CREATE TABLE t1 (i INT); +--let $query = INSERT INTO t1 SET i = 10 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #28 +CREATE TABLE t1 (i INT); +--let $query = REPLACE INTO t1 SET i = 10 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #29 +CREATE TABLE t1 (a INT, i INT PRIMARY KEY); +INSERT INTO t1 (i) VALUES (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); +--let $query = DELETE FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5 +--let $select = SELECT * FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #30 +CREATE TABLE t1(a INT, i CHAR(2), INDEX(i(1))); +INSERT INTO t1 (i) VALUES (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); +--let $query = DELETE FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5 +--let $select = SELECT * FROM t1 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #31 +CREATE TABLE t1 (i INT); +INSERT INTO t1 (i) VALUES (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); +CREATE TABLE t2(a INT, b INT, c INT, d INT, INDEX(a, b, c)); +INSERT INTO t2 (a, b, c) SELECT i, i, i FROM t1; +--let $query = DELETE FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $select = SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #32 +CREATE TABLE t1 (i INT); +INSERT INTO t1 (i) VALUES (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); +CREATE TABLE t2(a INT, b INT, c INT, d INT, INDEX(a, b, c)); +INSERT INTO t2 (a, b, c) SELECT i, i, i FROM t1; +INSERT INTO t2 (a, b, c) SELECT t1.i, t1.i, t1.i FROM t1, t1 x1, t1 x2; +--let $query = DELETE FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $select = SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $no_rows = 1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #33 +CREATE TABLE t1 (i INT); +INSERT INTO t1 (i) VALUES (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); +CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), d CHAR(2), INDEX (a,b(1),c)); +INSERT INTO t2 SELECT i, i, i, i FROM t1; +--let $query = DELETE FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $select = SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #34 +CREATE TABLE t1 (i INT); +INSERT INTO t1 (i) VALUES (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); +CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), d CHAR(2), INDEX (a,b,c)) + ENGINE=HEAP; +INSERT INTO t2 SELECT i, i, i, i FROM t1; +--let $query = DELETE FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $select = SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #35 +CREATE TABLE t1 (i INT); +INSERT INTO t1 (i) VALUES (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); +CREATE TABLE t2 (i INT, key1 INT, key2 INT, INDEX (key1), INDEX (key2)); +INSERT INTO t2 (key1, key2) SELECT i, i FROM t1; +--let $query = DELETE FROM t2 WHERE key1 < 13 or key2 < 14 ORDER BY key1 +--let $select = SELECT * FROM t2 WHERE key1 < 13 or key2 < 14 ORDER BY key1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #36 +CREATE TABLE t1 (i INT); +INSERT INTO t1 (i) VALUES (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); +CREATE TABLE t2(a INT, i INT PRIMARY KEY); +INSERT INTO t2 (i) SELECT i FROM t1; +--let $query = DELETE FROM t2 WHERE i > 10 AND i <= 18 ORDER BY i DESC LIMIT 5 +--let $select = SELECT * FROM t2 WHERE i > 10 AND i <= 18 ORDER BY i DESC LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #37 +CREATE TABLE t1 (i INT); +INSERT INTO t1 (i) VALUES (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); +CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), INDEX (a, b)); +INSERT INTO t2 SELECT i, i, i FROM t1; +--let $query = DELETE FROM t2 ORDER BY a, b DESC LIMIT 5 +--let $select = SELECT * FROM t2 ORDER BY a, b DESC LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #38 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2 (a CHAR(2), b CHAR(2), c INT, INDEX (a, b)); +INSERT INTO t2 (a, b) SELECT i, i FROM t1; +INSERT INTO t2 (a, b) SELECT t1.i, t1.i FROM t1, t1 x1, t1 x2; +--let $query = DELETE FROM t2 ORDER BY a DESC, b DESC LIMIT 5 +--let $select = SELECT * FROM t2 ORDER BY a DESC, b DESC LIMIT 5 +--let $no_rows = 1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #39 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2(a INT, i INT PRIMARY KEY); +INSERT INTO t2 (i) SELECT i FROM t1; +--let $query = UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5 +--let $select = SELECT * FROM t2 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5 +--let $no_rows = 1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #40 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2(a INT, i CHAR(2), INDEX(i(1))); +INSERT INTO t2 (i) SELECT i FROM t1; +--let $query = UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5 +--let $select = SELECT * FROM t2 WHERE i > 10 AND i <= 18 ORDER BY i LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #41 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2(a INT, b INT, c INT, d INT, INDEX(a, b, c)); +INSERT INTO t2 (a, b, c) SELECT i, i, i FROM t1; +--let $query = UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $select = SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #42 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2(a INT, b INT, c INT, d INT, INDEX(a, b, c)); +INSERT INTO t2 (a, b, c) SELECT i, i, i FROM t1; +INSERT INTO t2 (a, b, c) SELECT t1.i, t1.i, t1.i FROM t1, t1 x1, t1 x2; +--let $query = UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $select = SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $no_rows = 1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #43 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), d CHAR(2), INDEX (a,b(1),c)); +INSERT INTO t2 SELECT i, i, i, i FROM t1; +--let $query = UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $select = SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #44 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), d CHAR(2), INDEX (a,b,c)) + ENGINE=HEAP; +INSERT INTO t2 SELECT i, i, i, i FROM t1; +--let $query = UPDATE t2 SET d = 10 WHERE b = 10 ORDER BY a, c LIMIT 5 +--let $select = SELECT * FROM t2 WHERE b = 10 ORDER BY a, c LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #45 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2 (i INT, key1 INT, key2 INT, INDEX (key1), INDEX (key2)); +INSERT INTO t2 (key1, key2) SELECT i, i FROM t1; +--let $query = UPDATE t2 SET i = 123 WHERE key1 < 13 or key2 < 14 ORDER BY key1 +--let $select = SELECT * FROM t2 WHERE key1 < 13 or key2 < 14 ORDER BY key1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #46 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2(a INT, i INT PRIMARY KEY); +INSERT INTO t2 (i) SELECT i FROM t1; +--let $query = UPDATE t2 SET a = 10 WHERE i > 10 AND i <= 18 ORDER BY i DESC LIMIT 5 +--let $select = SELECT * FROM t2 WHERE i > 10 AND i <= 18 ORDER BY i DESC LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #47 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2 (a CHAR(2), b CHAR(2), c CHAR(2), INDEX (a, b)); +INSERT INTO t2 SELECT i, i, i FROM t1; +--let $query = UPDATE t2 SET c = 10 ORDER BY a, b DESC LIMIT 5 +--let $select = SELECT * FROM t2 ORDER BY a, b DESC LIMIT 5 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #48 +CREATE TABLE t1 (i INT); +INSERT INTO t1 VALUES (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); +CREATE TABLE t2 (a CHAR(2), b CHAR(2), c INT, INDEX (a, b)); +INSERT INTO t2 (a, b) SELECT i, i FROM t1; +INSERT INTO t2 (a, b) SELECT t1.i, t1.i FROM t1, t1 x1, t1 x2; +--let $query = UPDATE t2 SET c = 10 ORDER BY a DESC, b DESC LIMIT 5 +--let $select = SELECT * FROM t2 ORDER BY a DESC, b DESC LIMIT 5 +--let $no_rows = 1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #49 +CREATE TABLE t1 ( + pk INT NOT NULL AUTO_INCREMENT, + c1_idx CHAR(1) DEFAULT 'y', + c2 INT, + PRIMARY KEY (pk), + INDEX c1_idx (c1_idx) +); +INSERT INTO t1 VALUES (1,'y',1), (2,'n',2), (3,'y',3), (4,'n',4); +--let $query = UPDATE t1 SET c2 = 0 WHERE c1_idx = 'y' ORDER BY pk DESC LIMIT 2 +--let $select = SELECT * FROM t1 WHERE c1_idx = 'y' ORDER BY pk DESC LIMIT 2 +--source include/explain_utils.inc +--let $query = DELETE FROM t1 WHERE c1_idx = 'y' ORDER BY pk DESC LIMIT 2 +--let $select = SELECT * FROM t1 WHERE c1_idx = 'y' ORDER BY pk DESC LIMIT 2 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #50 +CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY); +INSERT INTO t1 VALUES (),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(),(); +--let $query = UPDATE t1 SET a=a+10 WHERE a > 34 +--let $select = SELECT * FROM t1 WHERE a > 34 +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #51 +CREATE TABLE t1 (c1 INT, c2 INT, c3 INT); +CREATE TABLE t2 (c1 INT, c2 INT); +INSERT INTO t1 VALUES (1, 1, 10), (2, 2, 20); +--let $query = UPDATE t1 LEFT JOIN t2 ON t1.c1 = t2.c1 SET t2.c2 = 10 +--let $select = SELECT * FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c1 +--source include/explain_utils.inc +--let $query = UPDATE t1 LEFT JOIN t2 ON t1.c1 = t2.c1 SET t2.c2 = 10 WHERE t1.c3 = 10 +--let $select = SELECT * FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c1 WHERE t1.c3 = 10 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #52 +CREATE TABLE t1(f1 INT, f2 INT); +CREATE TABLE t2(f3 INT, f4 INT); +CREATE INDEX IDX ON t2(f3); +INSERT INTO t1 VALUES(1,0),(2,0); +INSERT INTO t2 VALUES(1,1),(2,2); +--let $query = UPDATE t1 SET t1.f2=(SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1) +--let $select = SELECT (SELECT MAX(t2.f4) FROM t2 WHERE t2.f3=t1.f1) FROM t1 +--source include/explain_utils.inc +DROP TABLE t1, t2; + +--echo #55 +CREATE TABLE t1(a INT); +INSERT INTO t1 VALUES (1); +SET @a = NULL; +EXPLAIN DELETE FROM t1 WHERE (@a:= a); +if (`SELECT @a IS NOT NULL`) { + die Unexpectedly modified user variable; +} +DROP TABLE t1; + +--echo #56 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +--error ER_BAD_FIELD_ERROR + DELETE FROM t1 USING t1 WHERE uknown_column = 12345; +--error ER_BAD_FIELD_ERROR +EXPLAIN EXTENDED DELETE FROM t1 USING t1 WHERE uknown_column = 12345; +DROP TABLE t1; + +--echo #57 +CREATE TABLE t1(f1 INT); +--error ER_BAD_FIELD_ERROR +EXPLAIN EXTENDED UPDATE t1 SET f2=1 ORDER BY f2; +--error ER_BAD_FIELD_ERROR +UPDATE t1 SET f2=1 ORDER BY f2; +DROP TABLE t1; + +--disable_parsing +--echo #59 +CREATE TABLE t1 ( a INT, KEY( a ) ); +INSERT INTO t1 VALUES (0), (1); +CREATE VIEW v1 AS SELECT t11.a, t12.a AS b FROM t1 t11, t1 t12; +SET SESSION sql_safe_updates = 1; +--error ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE +EXPLAIN EXTENDED UPDATE IGNORE v1 SET a = 1; +--error ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE +UPDATE IGNORE v1 SET a = 1; +SET SESSION sql_safe_updates = DEFAULT; +DROP TABLE t1; +DROP VIEW v1; +--enable_parsing + +--echo #62 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (0), (1); +CREATE VIEW v1 AS SELECT t11.a, t12.a AS b FROM t1 t11, t1 t12; +--let $query = UPDATE v1 SET a = 1 WHERE a > 0 +--let $select = SELECT * FROM v1 WHERE a > 0 +--source include/explain_utils.inc +--let $query = UPDATE t1, v1 SET v1.a = 1 WHERE t1.a = v1.a +--let $select = SELECT * FROM t1, v1 WHERE t1.a = v1.a +--source include/explain_utils.inc +DROP TABLE t1; +DROP VIEW v1; + +--echo #63 +CREATE TABLE t1 (a INT, PRIMARY KEY(a)); +INSERT INTO t1 VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9); +CREATE VIEW v1 (a) AS SELECT a FROM t1; +--let $query = DELETE FROM v1 WHERE a < 4 +--let $select = SELECT * FROM v1 WHERE a < 4 +--source include/explain_utils.inc +DROP TABLE t1; +DROP VIEW v1; + +--echo #64 +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; +--let $query = DELETE v1 FROM t2, v1 WHERE t2.x = v1.a +--let $select = SELECT * FROM t2, v1 WHERE t2.x = v1.a +--source include/explain_utils.inc +DROP TABLE t1,t2; +DROP VIEW v1; + +--echo #65 +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; +--let $query = DELETE v1 FROM t2, v1 WHERE t2.x = v1.a +--let $select = SELECT * FROM t2, v1 WHERE t2.x = v1.a +--source include/explain_utils.inc +DROP TABLE t1,t2; +DROP VIEW v1; + +--echo #66 +CREATE TABLE t1 (a INT); +CREATE VIEW v1 (x) AS SELECT a FROM t1; +--let $query = INSERT INTO v1 VALUES (10) +--let $select = SELECT NULL +--source include/explain_utils.inc +DROP TABLE t1; +DROP VIEW v1; + +--echo #67 +CREATE TABLE t1 (a INT); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +CREATE VIEW v1 (x) AS SELECT b FROM t2; +--let $query = INSERT INTO v1 SELECT * FROM t1 +--let $select = SELECT * FROM t1 +--source include/explain_utils.inc +DROP TABLE t1, t2; +DROP VIEW v1; + +--echo #68 +CREATE TABLE t1 (i INT); +EXPLAIN INSERT DELAYED INTO t1 VALUES (1); +DROP TABLE t1; + +--echo #69 +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1), (2), (3); +CREATE TABLE t2 (b INT); +INSERT INTO t2 VALUES (1), (2), (3); +--let $query = UPDATE t1 SET a = 10 WHERE a IN (SELECT * FROM (SELECT b FROM t2 ORDER BY b LIMIT 2,2) x) +--let $select = SELECT * FROM t1 WHERE a IN (SELECT * FROM (SELECT b FROM t2 ORDER BY b LIMIT 2,2) x) +--source include/explain_utils.inc +--let $query = UPDATE t1, t2 SET a = 10 WHERE a IN (SELECT * FROM (SELECT b FROM t2 ORDER BY b LIMIT 2,2) x) +--let $select = SELECT * FROM t1, t2 WHERE a IN (SELECT * FROM (SELECT b FROM t2 ORDER BY b LIMIT 2,2) x) +--source include/explain_utils.inc +--let $query = UPDATE t1, (SELECT * FROM t2) y SET a = 10 WHERE a IN (SELECT * FROM (SELECT b FROM t2 ORDER BY b LIMIT 2,2) x) +--let $select = SELECT * FROM t1, (SELECT * FROM t2) y WHERE a IN (SELECT * FROM (SELECT b FROM t2 ORDER BY b LIMIT 2,2) x) +--source include/explain_utils.inc +DROP TABLE t1,t2; + +--echo #70 +CREATE TABLE t1 (c1 INT KEY); +CREATE TABLE t2 (c2 INT); +CREATE TABLE t3 (c3 INT); +EXPLAIN EXTENDED UPDATE t3 SET c3 = ( + SELECT COUNT(d1.c1) + FROM ( + SELECT a11.c1 FROM t1 AS a11 + STRAIGHT_JOIN t2 AS a21 ON a21.c2 = a11.c1 + JOIN t1 AS a12 ON a12.c1 = a11.c1 + ) d1 +); + +DROP TABLE t1, t2, t3; + +--disable_parsing +--echo #71 +# +# Bug: after EXPLAIN bulk INSERT...SELECT and bulk INSERT...SELECT +# to a # MyISAM table the SELECT query may fail with the +# "1030: Got error 124 from storage engine" error message. +# +CREATE TABLE t1 (c1 INT NOT NULL, c2 INT NOT NULL, INDEX i1(c1)); +INSERT INTO t1 VALUES (1,0),(2,0),(3,0),(4,0),(5,0),(6,0),(7,0),(8,0); +--disable_query_log +let $1=7; +SET @d=8; +while ($1) { + eval INSERT INTO t1 SELECT c1 + @d, c2 + @d FROM t1; + eval SET @d = @d*2; + dec $1; +} +--enable_query_log +CREATE TABLE t2 LIKE t1; + +# replace "rows" column for InnoDB +--replace_column 9 X +EXPLAIN INSERT INTO t2 SELECT * FROM t1; +INSERT INTO t2 SELECT * FROM t1; +--disable_result_log +SELECT * FROM t1 LEFT JOIN t2 ON t1.c1 = t2.c1; +--enable_result_log + +DROP TABLE t1, t2; +--enable_parsing + +--echo #73 + +CREATE TABLE t1 (id INT); +CREATE TABLE t2 (id INT); +INSERT INTO t1 VALUES (1), (2); + +EXPLAIN SELECT * FROM t1 LEFT JOIN t2 USING(id) GROUP BY t1.id; + +DROP TABLE t1,t2; + +--echo #74 + +CREATE TABLE t1(a INT PRIMARY KEY); +INSERT INTO t1 VALUES (1), (2), (3), (4), (5); + +--echo # used key is modified & Using temporary + +--let $query = UPDATE t1 SET a=a+1 WHERE a>10 +--let $select = SELECT a t1 FROM t1 WHERE a>10 +--source include/explain_utils.inc + +--echo # used key is modified & Using filesort + +--let $query = UPDATE t1 SET a=a+1 WHERE a>10 ORDER BY a+20 +--let $select = SELECT a t1 FROM t1 WHERE a>10 ORDER BY a+20 +--source include/explain_utils.inc + +DROP TABLE t1; + +--echo #75 + +CREATE TABLE t1 (id INT PRIMARY KEY, i INT); +--let $query = INSERT INTO t1 VALUES (3,10), (7,11), (3,11) ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id); +--source include/explain_utils.inc +DROP TABLE t1; + +--echo #76 + +CREATE TABLE t1 (id INT PRIMARY KEY, i INT); +CREATE TABLE t2 (a INT, b INT); +INSERT INTO t2 VALUES (1,10), (3,10), (7,11), (3,11); +--let $query = INSERT INTO t1 SELECT * FROM t2 ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id); +--source include/explain_utils.inc +DROP TABLE t1,t2; + +--echo # +--echo # Bug #12949629: CLIENT LOSES CONNECTION AFTER EXECUTING A PROCEDURE WITH +--echo # EXPLAIN UPDATE/DEL/INS +--echo # + +CREATE TABLE t1 (i INT); +CREATE TABLE t2 (i INT); + +--delimiter | +CREATE PROCEDURE p1() BEGIN EXPLAIN INSERT INTO t1 VALUES (1);END| +CREATE PROCEDURE p2() BEGIN INSERT INTO t1 VALUES (1);END| +CREATE PROCEDURE p3() BEGIN EXPLAIN INSERT INTO t1 SELECT 1;END| +CREATE PROCEDURE p4() BEGIN INSERT INTO t1 SELECT 1;END| +CREATE PROCEDURE p5() BEGIN EXPLAIN REPLACE INTO t1 VALUES (1);END| +CREATE PROCEDURE p6() BEGIN REPLACE INTO t1 VALUES (1);END| +CREATE PROCEDURE p7() BEGIN EXPLAIN REPLACE INTO t1 SELECT 1;END| +CREATE PROCEDURE p8() BEGIN REPLACE INTO t1 SELECT 1;END| +CREATE PROCEDURE p9() BEGIN EXPLAIN UPDATE t1 SET i = 10;END| +CREATE PROCEDURE p10() BEGIN UPDATE t1 SET i = 10;END| +CREATE PROCEDURE p11() BEGIN EXPLAIN UPDATE t1,t2 SET t1.i = 10 WHERE t1.i = t2.i ;END| +CREATE PROCEDURE p12() BEGIN UPDATE t1,t2 SET t1.i = 10 WHERE t1.i = t2.i ;END| +CREATE PROCEDURE p13() BEGIN EXPLAIN DELETE FROM t1;END| +CREATE PROCEDURE p14() BEGIN DELETE FROM t1;END| +CREATE PROCEDURE p15() BEGIN EXPLAIN DELETE FROM t1 USING t1;END| +CREATE PROCEDURE p16() BEGIN DELETE FROM t1 USING t1;END| +--delimiter ; + +let $i=16; +while($i) { + eval CALL p$i(); + eval DROP PROCEDURE p$i; + dec $i; +} + +DROP TABLE t1, t2; + +--echo # + +-- disable_query_log +-- disable_result_log +# SET GLOBAL innodb_stats_persistent=default; +-- enable_result_log +-- enable_query_log diff --git a/mysql-test/include/explain_utils.inc b/mysql-test/include/explain_utils.inc new file mode 100644 index 00000000..c85e0d4d --- /dev/null +++ b/mysql-test/include/explain_utils.inc @@ -0,0 +1,168 @@ +# This file is a collection of utility tests +# for WL#4897: Add EXPLAIN INSERT/UPDATE/DELETE. +# +# Since MTR doesn't have functions, we use this file instead +# including it many times. +# +# Parameters: +# +# $query: INSERT/REPLACE/UPDATE/DELETE query to explain +# NOTE: this file resets this variable +# +# $select: may be empty; the SELECT query similar to $query +# We use it to compare: +# 1) table data before and after EXPLAIN $query evaluation; +# 2) EXPLAIN $query and EXPLAIN $select output and +# handler/filesort statistics +# NOTE: this file resets this variable +# $innodb: take $no_rows parameter into account if not 0; +# $no_rows: filter out "rows" and "filtered" columns of EXPLAIN if not 0; +# it may be necessary for InnoDB tables since InnoDB's table row +# counter can't return precise and repeatable values; +# NOTE: ANALYZE TABLE doesn't help +# NOTE: this file resets this variable + +--echo # +--echo # query: $query +--echo # select: $select +--echo # +--disable_ps2_protocol +--disable_view_protocol +if ($select) { +--enable_prepare_warnings +--disable_query_log +--eval $select INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/before_explain.txt' +--enable_query_log +--disable_prepare_warnings +} + +if ($innodb) { + if ($no_rows) { +--replace_column 9 X + } +} +--eval EXPLAIN $query +if (`SELECT ROW_COUNT() > 0`) { +--echo # Erroneous query: EXPLAIN $query +--die Unexpected ROW_COUNT() <> 0 +} + +FLUSH STATUS; +FLUSH TABLES; +if ($innodb) { + if ($no_rows) { +--replace_column 9 X 10 X + } +} +--eval EXPLAIN EXTENDED $query +if (`SELECT ROW_COUNT() > 0`) { +--echo # Erroneous query: EXPLAIN EXTENDED $query +--die Unexpected ROW_COUNT() <> 0 +} +--echo # Status of EXPLAIN EXTENDED query +--disable_query_log +SHOW STATUS WHERE (Variable_name LIKE 'Sort%' OR + Variable_name LIKE 'Handler_read_%' OR + Variable_name = 'Handler_write' OR + Variable_name = 'Handler_update' OR + Variable_name = 'Handler_delete') AND Value <> 0; +--enable_query_log + +if ($json) { +if ($innodb) { + if ($no_rows) { +--replace_regex /"rows": [0-9]+/"rows": "X"/ /"filtered": [0-9.]+/"filtered": "X"/ + } +} +--eval EXPLAIN FORMAT=JSON $query; +if ($validation) { +--disable_query_log +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQL -S $MASTER_MYSOCK -u root -r test -e "EXPLAIN FORMAT=JSON $query;" > $MYSQLTEST_VARDIR/tmp/explain.json +--replace_regex /[-]*// /FILE.[\/\\:_\.0-9A-Za-z]*/Validation:/ +--exec python $MYSQL_TEST_DIR/suite/opt_trace/validate_json.py $MYSQLTEST_VARDIR/tmp/explain.json +--remove_file '$MYSQLTEST_VARDIR/tmp/explain.json' +--enable_query_log +} +} + +if ($select) { +FLUSH STATUS; +FLUSH TABLES; +if ($innodb) { + if ($no_rows) { +--replace_column 9 X 10 X + } +} +--eval EXPLAIN EXTENDED $select +--echo # Status of EXPLAIN EXTENDED "equivalent" SELECT query execution +--disable_query_log +SHOW STATUS WHERE (Variable_name LIKE 'Sort%' OR + Variable_name LIKE 'Handler_read_%' OR + Variable_name = 'Handler_write' OR + Variable_name = 'Handler_update' OR + Variable_name = 'Handler_delete') AND Value <> 0; +--enable_query_log +if ($json) { +if ($innodb) { + if ($no_rows) { +--replace_regex /"rows": [0-9]+/"rows": "X"/ /"filtered": [0-9.]+/"filtered": "X"/ + } +} +--eval EXPLAIN FORMAT=JSON $select; +if ($validation) { +--disable_query_log +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQL -S $MASTER_MYSOCK -u root -r test -e "EXPLAIN FORMAT=JSON $select;" > $MYSQLTEST_VARDIR/tmp/explain.json +--replace_regex /[-]*// /FILE.[\/\\:_\.0-9A-Za-z]*/Validation:/ +--exec python $MYSQL_TEST_DIR/suite/opt_trace/validate_json.py $MYSQLTEST_VARDIR/tmp/explain.json +--remove_file '$MYSQLTEST_VARDIR/tmp/explain.json' +--enable_query_log +} +} +} + +--disable_query_log + +if ($select) { +--enable_prepare_warnings +--eval $select INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/after_explain.txt' +--disable_prepare_warnings +--diff_files '$MYSQLTEST_VARDIR/tmp/before_explain.txt' '$MYSQLTEST_VARDIR/tmp/after_explain.txt' +--remove_file '$MYSQLTEST_VARDIR/tmp/before_explain.txt' +--remove_file '$MYSQLTEST_VARDIR/tmp/after_explain.txt' +} + +FLUSH STATUS; +FLUSH TABLES; +if ($select) { +--disable_result_log +--eval $select +--enable_result_log +--echo # Status of "equivalent" SELECT query execution: +SHOW STATUS WHERE (Variable_name LIKE 'Sort%' OR + Variable_name LIKE 'Handler_read_%' OR + Variable_name = 'Handler_write' OR + Variable_name = 'Handler_update' OR + Variable_name = 'Handler_delete') AND Value <> 0; +} + +FLUSH STATUS; +FLUSH TABLES; +--eval $query +--echo # Status of testing query execution: +SHOW STATUS WHERE (Variable_name LIKE 'Sort%' OR + Variable_name LIKE 'Handler_read_%' OR + Variable_name = 'Handler_write' OR + Variable_name = 'Handler_update' OR + Variable_name = 'Handler_delete') AND Value <> 0; + +--let $query= +--let $select= +--let $no_rows= + +--enable_query_log + +--echo +--enable_view_protocol +--enable_ps2_protocol diff --git a/mysql-test/include/file_does_not_exist.inc b/mysql-test/include/file_does_not_exist.inc new file mode 100644 index 00000000..0b02c63a --- /dev/null +++ b/mysql-test/include/file_does_not_exist.inc @@ -0,0 +1,17 @@ +# ==== Purpose ==== +# +# Checks that a given file does not exist. If the file exists, the +# test fails. +# +# ==== Usage ==== +# +# --let $file_does_not_exist= /path/to/file +# --source include/file_does_not_exist.inc + +# Will fail if file exists. +--write_file $file_does_not_exist +tmp +EOF + +# Remove file again. +--remove_file $file_does_not_exist diff --git a/mysql-test/include/filter_file.inc b/mysql-test/include/filter_file.inc new file mode 100644 index 00000000..708e917a --- /dev/null +++ b/mysql-test/include/filter_file.inc @@ -0,0 +1,160 @@ +# ==== Purpose ==== +# +# Read the contents of a file, filter it through a perl script, and +# write it back. +# +# This is useful in conjunction with include/write_result_to_file.inc +# and cat_file or include/read_file_to_var.inc. See +# e.g. include/show_events.inc for an example. +# +# ==== Usage ==== +# +# --let $input_file= <FILE_NAME> +# [--let $output_file= <FILE_NAME>] +# --let $script= <PERL_SCRIPT> +# [--let $select_columns= <LIST OF NUMBERS>] +# [--let $pre_script= <PERL_SCRIPT>] +# [--let $rpl_debug= 1] +# --source include/filter_file.inc +# +# Parameters: +# +# $input_file +# File to read from. +# +# $output_file +# File to write to. If omitted, writes to $input_file. +# +# $script +# This script will be executed once for each line in $input_file. +# +# When the script starts, the perl variable $_ will be set to the +# current row (including the terminating newline). The script can +# modify $_ in any way it likes, and the result will be appended +# to $output_file. It is even possible to remove a row by setting +# $_ to '', or to generate extra rows by appending "\n" to $_. +# +# Since mysqltest is incapable of properly escaping dollar +# characters, you have to replace any '$' in your script by +# 'DOLLAR' (otherwise mysqltest would try to interpolate parts of +# your script). filter_file.inc will replace 'DOLLAR' by '$' +# before evaluating your script. +# +# $select_columns +# For convenience, if you set this to a space-separated list of +# numbers, it will print only the numbered columns, in the given +# order. +# +# $pre_script +# This script will be evaluated before starting to iterate over +# the lines of $input_file. It can be useful if you need some +# sort of initialization; for example, you can define a subroutine +# here and call it from $script. +# +# $rpl_debug +# If set, verbose debug info is printed. +# +# $filter_script +# If set, rows matching this regexp will be filtered out +# +# $grep_script +# If set, only include rows matching this regexp + +--let $include_filename= filter_file.inc +--source include/begin_include_file.inc + +if ($rpl_debug) +{ + --echo pre_script='$pre_script' + --echo script='$script' + --echo select_columns='$select_columns' + --echo input_file='$input_file' output_file='$output_file' +} + +--let _FF_PRE_SCRIPT= $pre_script +--let _FF_SCRIPT= $script +--let _FF_FILTER_SCRIPT= $filter_script +--let _FF_GREP_SCRIPT= $grep_script +--let _FF_INPUT_FILE= $input_file +--let _FF_OUTPUT_FILE= $output_file +--let _FF_SELECT_COLUMNS= $select_columns +--let _FF_DEBUG= $rpl_debug + +if (!$output_file) +{ + --let _FF_OUTPUT_FILE= $input_file +} +perl; + my $pre_script = $ENV{'_FF_PRE_SCRIPT'}; + $pre_script =~ s/DOLLAR/\$/g; + my $script = $ENV{'_FF_SCRIPT'}; + my $filter_script = $ENV{'_FF_FILTER_SCRIPT'}; + my $grep_script = $ENV{'_FF_GREP_SCRIPT'}; + $script =~ s/DOLLAR/\$/g; + my $input_file = $ENV{'_FF_INPUT_FILE'}; + my $output_file = $ENV{'_FF_OUTPUT_FILE'}; + my $select_columns = $ENV{'_FF_SELECT_COLUMNS'}; + my $debug = $ENV{'_FF_DEBUG'}; + if ($select_columns) + { + chomp($select_columns); + $select_columns =~ s/[, ]+/,/g; + $script = ' + chomp; + my @cols = split(/\t/, $_); + $_ = join("\t", map { $cols[$_ - 1] } ('.$select_columns.'))."\n"; + ' . $script; + } + unless ($keep_quotes) + { + $pre_script = 'my %unquote = ("n"=>"\n","t"=>"\t","\\\\"=>"\\\\");' . $pre_script; + $script .= 's{\\\\(.)}{$unquote{$1}}ge;'; + } + if ($debug) + { + $script = 'print "BEFORE:\'$_\'";' . $script . 'print "AFTER:\'$_\'";' + } + # Generate a script (perl is faster if we avoid many calls to eval). + my $full_script = +' + open FILE, "< $input_file" or die "Error opening $input_file: $!"; + my $filtered_contents = ""; + my %column_names = (); + '.$pre_script.'; + while (<FILE>) + { + chomp; + s/\r//g; + if (!%column_names) + { + my $n = 1; + %column_names = map { $_ => $n++ } split(/\t/, $_); + } + else + { + ' . $script . ' + } + if ((!$filter_script || ! m/$filter_script/) && + (!$grep_script || m/$grep_script/)) + { + $filtered_contents .= $_."\n"; + } + } + close FILE or die "Error closing $input_file: $!"; + open FILE, "> $output_file" or die "Error opening $output_file: $!"; + binmode FILE; + print FILE $filtered_contents or die "Error writing filtered contents to $output_file: $!"; + close FILE or die "Error closing $output_file: $!"; + return 0; +'; + if ($debug) + { + print STDOUT "full_script=<<END_OF_SCRIPT\n${full_script}END_OF_SCRIPT\n" + } + my $eval_ret = eval($full_script); + defined($eval_ret) or die "Parse error or 'die' invoked when evaluating perl script '$full_script': $@"; + $eval_ret == 0 or die "Non-zero exit value $eval_ret from script '$script'"; +EOF + +--let $include_filename= filter_file.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/force_restart.inc b/mysql-test/include/force_restart.inc new file mode 100644 index 00000000..88c9249b --- /dev/null +++ b/mysql-test/include/force_restart.inc @@ -0,0 +1,14 @@ +# ==== Purpose ==== +# +# Tell mtr that all servers must be restarted after the test has +# finished. +# +# ==== Usage ==== +# +# --source include/force_restart.inc +# + +--let $_force_restart_datadir= `SELECT @@datadir` +--append_file $_force_restart_datadir/mtr/force_restart +1 +EOF diff --git a/mysql-test/include/func_hybrid_type.inc b/mysql-test/include/func_hybrid_type.inc new file mode 100644 index 00000000..f4da357a --- /dev/null +++ b/mysql-test/include/func_hybrid_type.inc @@ -0,0 +1,85 @@ +# "mtr --ps" returns different values in "Max length" +--disable_ps_protocol +# view protocol createincorrect table name +--disable_view_protocol +--enable_metadata +--vertical_results +SELECT + a AS ___________a, + CASE WHEN a IS NOT NULL THEN a END AS case_______a, + CASE WHEN a IS NOT NULL THEN a ELSE a END AS case_____a_a, + COALESCE(a) AS coalesce___a, + COALESCE(a, a) AS coalesce_a_a, + IF(a IS NULL, a, a) AS if_______a_a, + IFNULL(a, a) AS ifnull___a_a, + LEAST(a, a) AS least____a_a, + GREATEST(a, a) AS greatest_a_a, + b AS ___________b, + CASE WHEN a IS NOT NULL THEN b END AS case_______b, + CASE WHEN a IS NOT NULL THEN b ELSE b END AS case_____b_b, + COALESCE(b) AS coalesce___b, + COALESCE(b, b) AS coalesce_b_b, + IF(a IS NULL, b, b) AS if_______b_b, + IFNULL(b, b) AS ifnull___b_b, + LEAST(b, b) AS least____b_b, + GREATEST(b, b) AS greatest_b_b +FROM t1; +SELECT + CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, + CASE WHEN a IS NOT NULL THEN b ELSE a END AS case_____b_a, + COALESCE(a, b) AS coalesce_a_b, + COALESCE(b, a) AS coalesce_b_a, + IF(a IS NULL, a, b) AS if_______a_b, + IF(a IS NULL, b, a) AS if_______b_a, + IFNULL(a, b) AS ifnull___a_b, + IFNULL(b, a) AS ifnull___b_a, + LEAST(a, b) AS least____a_b, + LEAST(b, a) AS least____b_a, + GREATEST(a, b) AS greatest_a_b, + GREATEST(b, a) AS greatest_b_a +FROM t1; +--horizontal_results +--disable_metadata +--enable_ps_protocol +--enable_view_protocol +CREATE TABLE t2 AS +SELECT + a AS ___________a, + CASE WHEN a IS NOT NULL THEN a END AS case_______a, + CASE WHEN a IS NOT NULL THEN a ELSE a END AS case_____a_a, + COALESCE(a) AS coalesce___a, + COALESCE(a, a) AS coalesce_a_a, + IF(a IS NULL, a, a) AS if_______a_a, + IFNULL(a, a) AS ifnull___a_a, + LEAST(a, a) AS least____a_a, + GREATEST(a, a) AS greatest_a_a, + b AS ___________b, + CASE WHEN a IS NOT NULL THEN b END AS case_______b, + CASE WHEN a IS NOT NULL THEN b ELSE b END AS case_____b_b, + COALESCE(b) AS coalesce___b, + COALESCE(b, b) AS coalesce_b_b, + IF(a IS NULL, b, b) AS if_______b_b, + IFNULL(b, b) AS ifnull___b_b, + LEAST(b, b) AS least____b_b, + GREATEST(b, b) AS greatest_b_b +FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +CREATE TABLE t2 AS +SELECT + CASE WHEN a IS NOT NULL THEN a ELSE b END AS case_____a_b, + CASE WHEN a IS NOT NULL THEN b ELSE a END AS case_____b_a, + COALESCE(a, b) AS coalesce_a_b, + COALESCE(b, a) AS coalesce_b_a, + IF(a IS NULL, a, b) AS if_______a_b, + IF(a IS NULL, b, a) AS if_______b_a, + IFNULL(a, b) AS ifnull___a_b, + IFNULL(b, a) AS ifnull___b_a, + LEAST(a, b) AS least____a_b, + LEAST(b, a) AS least____b_a, + GREATEST(a, b) AS greatest_a_b, + GREATEST(b, a) AS greatest_b_a +FROM t1; +SHOW CREATE TABLE t2; +DROP TABLE t2; diff --git a/mysql-test/include/func_str_ascii_checksum.inc b/mysql-test/include/func_str_ascii_checksum.inc new file mode 100644 index 00000000..8e51c92c --- /dev/null +++ b/mysql-test/include/func_str_ascii_checksum.inc @@ -0,0 +1,24 @@ +--echo # Start of func_str_ascii_checksum.inc + +--echo # +--echo # MDEV-10850 Wrong result for WHERE .. (f2=TO_BASE64('test') OR f2=TO_BASE64('TEST')) +--echo # + +--eval CREATE TABLE t1 (f1 VARCHAR(4), f2 VARCHAR(255), UNIQUE KEY k1 (f1,f2)) +--eval INSERT INTO t1 VALUES ('test',$func('test')), ('TEST', $func('TEST')) +--eval SELECT * FROM t1 IGNORE INDEX(k1) WHERE f1='test' AND (f2= $func("test") OR f2= $func("TEST")) +--eval SELECT * FROM t1 WHERE f1='test' AND (f2= $func("test") OR f2= $func("TEST")) +--eval SELECT * FROM t1 WHERE f1='test' AND (f2= $func("TEST") OR f2= $func("test")) +DROP TABLE t1; + + +--echo # +--echo # MDEV-10425 Assertion `collation.derivation == DERIVATION_IMPLICIT' failed in Item_func_conv_charset::fix_length_and_dec() +--echo # + +--eval PREPARE stmt FROM "SELECT $func(CONVERT('foo' USING latin1))" +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + + +--echo # End of func_str_ascii_checksum.inc diff --git a/mysql-test/include/function_defaults.inc b/mysql-test/include/function_defaults.inc new file mode 100644 index 00000000..e8e1059f --- /dev/null +++ b/mysql-test/include/function_defaults.inc @@ -0,0 +1,1174 @@ +SET TIME_ZONE = "+00:00"; + +--echo # +--echo # Test of errors for column data types that don't support function +--echo # defaults. +--echo # + +eval CREATE OR REPLACE TABLE t1( a BIT DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a TINYINT DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a SMALLINT DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a MEDIUMINT DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a INT DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a BIGINT DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a FLOAT DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a DECIMAL DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a DATE DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a TIME DEFAULT $current_timestamp ); +eval CREATE OR REPLACE TABLE t1( a YEAR DEFAULT $current_timestamp ); + +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a BIT ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a TINYINT ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a SMALLINT ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a MEDIUMINT ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a INT ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a BIGINT ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a FLOAT ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a DECIMAL ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a DATE ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a TIME ON UPDATE $current_timestamp ); +--error ER_INVALID_ON_UPDATE +eval CREATE OR REPLACE TABLE t1( a YEAR ON UPDATE $current_timestamp ); + +drop table if exists t1; + +--echo # +--echo # Test that the default clause behaves like NOW() regarding time zones. +--echo # +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + b $timestamp NOT NULL DEFAULT $current_timestamp, + c $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + d $timestamp NULL, + e $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp, + f $datetime DEFAULT $current_timestamp, + g $datetime ON UPDATE $current_timestamp, + h $datetime +); + +--echo # 2011-09-27 14:11:08 UTC +SET TIMESTAMP = 1317132668.654321; +SET @old_time_zone = @@TIME_ZONE; +SET TIME_ZONE = "+05:00"; + +eval INSERT INTO t1( d, h ) VALUES ( $now, $now ); +SELECT * FROM t1; + +--echo # 1989-05-13 01:02:03 +SET TIMESTAMP = 611017323.543212; +eval UPDATE t1 SET d = $now, h = $now; +SELECT * FROM t1; + +SET TIME_ZONE = @old_time_zone; +DROP TABLE t1; + +--echo # +--echo # Test of several TIMESTAMP columns with different function defaults. +--echo # +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + c $timestamp NOT NULL DEFAULT $current_timestamp, + d $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + e $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + f INT +); + +--echo # 2011-04-19 07:22:02 UTC +SET TIMESTAMP = 1303197722.534231; + +INSERT INTO t1 ( f ) VALUES (1); +SELECT * FROM t1; + +--echo # 2011-04-19 07:23:18 UTC +SET TIMESTAMP = 1303197798.132435; + +UPDATE t1 SET f = 2; +SELECT * FROM t1; + +DROP TABLE t1; + +--echo # +--echo # Test of inserted values out of order. +--echo # +eval CREATE TABLE t1 ( + a INT, + b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + c $timestamp NOT NULL DEFAULT $current_timestamp, + d $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + e $timestamp NULL, + f $datetime, + g $datetime DEFAULT $current_timestamp, + h $datetime ON UPDATE $current_timestamp, + i $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp, + j INT +); + +--echo # 2011-04-19 07:22:02 UTC +SET TIMESTAMP = 1303197722.534231; + +INSERT INTO t1 ( j, a ) VALUES ( 1, 1 ); +SELECT * FROM t1; + +DROP TABLE t1; + +--echo # +--echo # Test of ON DUPLICATE KEY UPDATE +--echo # +eval CREATE TABLE t1 ( + a INT PRIMARY KEY, + b INT, + c $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + d $timestamp NOT NULL DEFAULT $current_timestamp, + e $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + f $timestamp NOT NULL DEFAULT '1986-09-27 03:00:00.098765', + g $timestamp NULL, + h $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp, + i $datetime DEFAULT $current_timestamp, + j $datetime ON UPDATE $current_timestamp, + k $datetime NULL, + l $datetime DEFAULT '1986-09-27 03:00:00.098765' +); + +--echo # 1977-12-21 23:00:00 UTC +SET TIMESTAMP = 251593200.192837; +INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2; +SELECT * FROM t1; + +--echo # 1975-05-21 23:00:00 UTC +SET TIMESTAMP = 169945200.918273; +INSERT INTO t1(a) VALUES (1) ON DUPLICATE KEY UPDATE b = 2; +SELECT * FROM t1; + +--echo # 1973-08-14 09:11:22 UTC +SET TIMESTAMP = 114167482.534231; +INSERT INTO t1(a) VALUES (2) ON DUPLICATE KEY UPDATE b = 2; +SELECT * FROM t1; + +DROP TABLE t1; + +eval CREATE TABLE t1 ( a INT PRIMARY KEY, b INT, c $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp ); + +--echo # 2011-04-19 07:23:18 UTC +SET TIMESTAMP = 1303197798.945156; + +INSERT INTO t1 VALUES + (1, 0, '2001-01-01 01:01:01.111111'), + (2, 0, '2002-02-02 02:02:02.222222'), + (3, 0, '2003-03-03 03:03:03.333333'); +SELECT * FROM t1; + +UPDATE t1 SET b = 2, c = c WHERE a = 2; +SELECT * FROM t1; + +INSERT INTO t1 (a) VALUES (4); +SELECT * FROM t1; + +UPDATE t1 SET c = '2004-04-04 04:04:04.444444' WHERE a = 4; +SELECT * FROM t1; + +INSERT INTO t1 ( a ) VALUES ( 3 ), ( 5 ) ON DUPLICATE KEY UPDATE b = 3, c = c; +SELECT * FROM t1; + +INSERT INTO t1 (a, c) VALUES + (4, '2004-04-04 00:00:00.444444'), + (6, '2006-06-06 06:06:06.666666') +ON DUPLICATE KEY UPDATE b = 4; + +SELECT * FROM t1; + +DROP TABLE t1; + + +--echo # +--echo # Test of REPLACE INTO executed as UPDATE. +--echo # +eval CREATE TABLE t1 ( + a INT PRIMARY KEY, + b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + c $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp, + d $timestamp NOT NULL DEFAULT $current_timestamp, + e $datetime DEFAULT $current_timestamp, + f $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + g $datetime ON UPDATE $current_timestamp, + h $timestamp NULL, + i $datetime +); + +--echo # 1970-09-21 09:11:12 UTC +SET TIMESTAMP = 22756272.163584; + +REPLACE INTO t1 ( a ) VALUES ( 1 ); +SELECT * FROM t1; + +--echo # 1970-11-10 14:16:17 UTC +SET TIMESTAMP = 27094577.852954; + + +REPLACE INTO t1 ( a ) VALUES ( 1 ); +SELECT * FROM t1; + +DROP TABLE t1; + + +--echo # +--echo # Test of insertion of NULL, DEFAULT and an empty row for DEFAULT +--echo # CURRENT_TIMESTAMP. +--echo # +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + b $datetime DEFAULT $current_timestamp, + c INT +); + +--echo # 2011-04-20 09:53:41 UTC +SET TIMESTAMP = 1303293221.163578; + +INSERT INTO t1 VALUES (NULL, NULL, 1), (DEFAULT, DEFAULT, 2); +INSERT INTO t1 ( a, b, c ) VALUES (NULL, NULL, 3), (DEFAULT, DEFAULT, 4); +SELECT * FROM t1; + +SET TIME_ZONE = "+03:00"; +SELECT * FROM t1; +SET TIME_ZONE = "+00:00"; + +DROP TABLE t1; + +--echo # 2011-04-20 07:05:39 UTC +SET TIMESTAMP = 1303283139.195624; +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT '2010-10-11 12:34:56' ON UPDATE $current_timestamp, + b $datetime DEFAULT '2010-10-11 12:34:56' +); + +INSERT INTO t1 VALUES (NULL, NULL), (DEFAULT, DEFAULT); +INSERT INTO t1 ( a, b ) VALUES (NULL, NULL), (DEFAULT, DEFAULT); +SELECT * FROM t1; + +DROP TABLE t1; + +--echo # 2011-04-20 09:53:41 UTC +SET TIMESTAMP = 1303293221.136952; + +eval CREATE TABLE t1 ( +a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, +b $timestamp NOT NULL DEFAULT $current_timestamp, +c $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, +d $timestamp NOT NULL DEFAULT '1986-09-27 03:00:00.098765', +e $timestamp NULL, +f $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp, +g $datetime DEFAULT $current_timestamp, +h $datetime ON UPDATE $current_timestamp, +i $datetime NULL, +j $datetime DEFAULT '1986-09-27 03:00:00.098765' +); + +INSERT INTO t1 VALUES (); + +INSERT INTO t1 SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL; + +SELECT * FROM t1; + +DROP TABLE t1; + +--echo # +--echo # Test of multiple-table UPDATE for DEFAULT CURRENT_TIMESTAMP +--echo # +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + b $datetime DEFAULT $current_timestamp, + c INT +); + +INSERT INTO t1 ( c ) VALUES (1); +SELECT * FROM t1; + +--echo # 2011-04-20 17:06:13 UTC +SET TIMESTAMP = 1303311973.163587; + +UPDATE t1 t11, t1 t12 SET t11.c = 1; +SELECT * FROM t1; + +UPDATE t1 t11, t1 t12 SET t11.c = 2; + +SELECT * FROM t1; + +DROP TABLE t1; + +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT $current_timestamp, + b $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + c $datetime DEFAULT $current_timestamp, + d $datetime ON UPDATE $current_timestamp, + e INT +); + +eval CREATE TABLE t2 ( + f INT, + g $datetime ON UPDATE $current_timestamp, + h $datetime DEFAULT $current_timestamp, + i $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + j $timestamp NOT NULL DEFAULT $current_timestamp +); + +--echo # 1995-03-11 00:02:03 UTC +SET TIMESTAMP = 794880123.195676; + +INSERT INTO t1 ( e ) VALUES ( 1 ), ( 2 ); + +INSERT INTO t2 ( f ) VALUES ( 1 ), ( 2 ); + +SELECT * FROM t1; +SELECT * FROM t2; + +--echo # 1980-12-13 02:02:01 UTC +SET TIMESTAMP = 345520921.196755; + +UPDATE t1, t2 SET t1.e = 3, t2.f = 4; + +SELECT * FROM t1; +SELECT * FROM t2; + +DROP TABLE t1, t2; + +--echo # +--echo # Test of multiple table update with temporary table and on the fly. +--echo # +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + b $datetime ON UPDATE $current_timestamp, + c INT, + d INT +); + +eval CREATE TABLE t2 ( + a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + b $datetime ON UPDATE $current_timestamp, + c INT KEY, + d INT +); + +INSERT INTO t1 ( c ) VALUES (1), (2); +INSERT INTO t2 ( c ) VALUES (1), (2); + +--echo # Test of multiple table update done on the fly +--echo # 2011-04-20 15:06:13 UTC +SET TIMESTAMP = 1303311973.194685; +UPDATE t1 JOIN t2 USING ( c ) SET t2.d = 1; +SELECT * FROM t1; +SELECT * FROM t2; + +--echo # Test of multiple table update done with temporary table. +--echo # 1979-01-15 03:02:01 +SET TIMESTAMP = 285213721.134679; +UPDATE t1 JOIN t2 USING ( c ) SET t1.d = 1; +SELECT * FROM t1; +SELECT * FROM t2; + +DROP TABLE t1, t2; + + +--echo # +--echo # Test of ON UPDATE CURRENT_TIMESTAMP. +--echo # +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + b $datetime ON UPDATE $current_timestamp, + c INT +); + +--echo # 2011-04-20 09:53:41 UTC +SET TIMESTAMP = 1303293221.794613; + +INSERT INTO t1 ( c ) VALUES ( 1 ); +SELECT * FROM t1; + +UPDATE t1 SET c = 1; +SELECT * FROM t1; + +UPDATE t1 SET c = 2; +SELECT * FROM t1; + +--echo # +--echo # Test that ON UPDATE CURRENT_TIMESTAMP works after non-changing UPDATE. +--echo # + +--echo # 2011-04-20 09:54:13 UTC +SET TIMESTAMP = 1303293253.794613; + +UPDATE t1 SET c = 2, b = '2011-04-20 09:53:41.794613'; +SELECT * FROM t1; + +UPDATE t1 SET c = 3; +SELECT * FROM t1; + +--echo # +--echo # Test of multiple-table UPDATE for ON UPDATE CURRENT_TIMESTAMP +--echo # +--echo # 2011-04-20 15:06:13 UTC +SET TIMESTAMP = 1303311973.534231; + +UPDATE t1 t11, t1 t12 SET t11.c = 3; +SELECT * FROM t1; + +UPDATE t1 t11, t1 t12 SET t11.c = 2; +SELECT * FROM t1; + +DROP TABLE t1; + +--echo # +--echo # Test of a multiple-table update where only one table is updated and +--echo # the updated table has a primary key. +--echo # +eval CREATE TABLE t1 ( a INT, b INT, PRIMARY KEY (a) ); +INSERT INTO t1 VALUES (1, 1),(2, 2),(3, 3),(4, 4); + +eval CREATE TABLE t2 ( a INT, b INT ); +INSERT INTO t2 VALUES (1, 1),(2, 2),(3, 3),(4, 4),(5, 5); + +UPDATE t1, t2 SET t1.b = 100 WHERE t1.a = t2.a; + +SELECT * FROM t1; +SELECT * FROM t2; + +DROP TABLE t1, t2; + +--echo # +--echo # Test of ALTER TABLE, reordering columns. +--echo # +eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, b INT );eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp AFTER b; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +eval CREATE TABLE t1 ( a INT, b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, c $timestamp NULL );eval ALTER TABLE t1 MODIFY b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp FIRST; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +eval CREATE TABLE t1 ( a INT, b $timestamp NULL );eval ALTER TABLE t1 MODIFY b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp FIRST; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, b $timestamp NULL );eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, b $timestamp NULL );eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER b; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $now, b INT, c $timestamp NULL ); +SHOW CREATE TABLE t1;eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp AFTER b; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $now, b INT, c $timestamp NULL );eval ALTER TABLE t1 MODIFY c $timestamp NULL FIRST; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $now ON UPDATE $current_timestamp, b INT, c $timestamp NULL ); +SHOW CREATE TABLE t1;eval ALTER TABLE t1 MODIFY a $timestamp NOT NULL DEFAULT $now ON UPDATE $current_timestamp AFTER b; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $now ON UPDATE $current_timestamp, b INT, c $timestamp NULL );eval ALTER TABLE t1 MODIFY c $timestamp NULL FIRST; +SHOW CREATE TABLE t1; +DROP TABLE t1; + + +--echo # +--echo # Test of ALTER TABLE, adding columns. +--echo # +eval CREATE TABLE t1 ( a INT ); +eval ALTER TABLE t1 ADD COLUMN b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +--echo # +--echo # Test of INSERT SELECT. +--echo # +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + c $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp, + d $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp +); + +eval CREATE TABLE t2 ( + placeholder1 INT, + placeholder2 INT, + placeholder3 INT, + placeholder4 INT, + a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + b $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + c $datetime, + d $datetime +); + +--echo # 1977-08-16 15:30:01 UTC +SET TIMESTAMP = 240589801.654312; + +INSERT INTO t2 (a, b, c, d) VALUES ( + '1977-08-16 15:30:01.123456', + '1977-08-16 15:30:01.234567', + '1977-08-16 15:30:01.345678', + '1977-08-16 15:30:01.456789' +); + +--echo # 1986-09-27 01:00:00 UTC +SET TIMESTAMP = 528166800.132435; + +INSERT INTO t1 ( a, c ) SELECT a, c FROM t2; + +SELECT * FROM t1; + +DROP TABLE t1, t2; + +--echo # +--echo # Test of CREATE TABLE SELECT. +--echo # +--echo # We test that the columns of the source table are not used to determine +--echo # function defaults for the receiving table. +--echo # + +--echo # 1970-04-11 20:13:57 UTC +SET TIMESTAMP = 8712837.657898; +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + b $timestamp NOT NULL DEFAULT $current_timestamp, + c $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + d $timestamp NOT NULL DEFAULT '1986-09-27 03:00:00.098765', + e $timestamp NULL, + f $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp, + g $datetime DEFAULT $current_timestamp, + h $datetime ON UPDATE $current_timestamp, + i $datetime NULL, + j $datetime DEFAULT '1986-09-27 03:00:00.098765' +); + +INSERT INTO t1 VALUES (); + +--echo # 1971-01-31 21:13:57 UTC +SET TIMESTAMP = 34200837.164937; + +eval CREATE TABLE t2 SELECT a FROM t1; SHOW CREATE TABLE t2; SELECT * FROM t2; +eval CREATE TABLE t3 SELECT b FROM t1; SHOW CREATE TABLE t3; SELECT * FROM t3; +eval CREATE TABLE t4 SELECT c FROM t1; SHOW CREATE TABLE t4; SELECT * FROM t4; +eval CREATE TABLE t5 SELECT d FROM t1; SHOW CREATE TABLE t5; SELECT * FROM t5; +eval CREATE TABLE t6 SELECT e FROM t1; SHOW CREATE TABLE t6; SELECT * FROM t6; +eval CREATE TABLE t7 SELECT f FROM t1; SHOW CREATE TABLE t7; SELECT * FROM t7; +eval CREATE TABLE t8 SELECT g FROM t1; SHOW CREATE TABLE t8; SELECT * FROM t8; +eval CREATE TABLE t9 SELECT h FROM t1; SHOW CREATE TABLE t9; SELECT * FROM t9; +eval CREATE TABLE t10 SELECT i FROM t1; SHOW CREATE TABLE t10; SELECT * FROM t10; +eval CREATE TABLE t11 SELECT j FROM t1; SHOW CREATE TABLE t11; SELECT * FROM t11; + +eval CREATE TABLE t12 ( + k $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + l $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + m $timestamp NOT NULL DEFAULT $current_timestamp, + n $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + o $timestamp NOT NULL DEFAULT '1986-09-27 03:00:00.098765', + p $timestamp NULL, + q $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp, + r $datetime DEFAULT $current_timestamp, + s $datetime ON UPDATE $current_timestamp, + t $datetime NULL, + u $datetime DEFAULT '1986-09-27 03:00:00.098765' +) +SELECT * FROM t1; + +SHOW CREATE TABLE t12; + +DROP TABLE t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12; + +--echo # 1970-04-11 20:13:57 UTC +SET TIMESTAMP = 8712837.164953; +eval CREATE TABLE t1 ( + a $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp, + b $datetime DEFAULT $current_timestamp, + c $datetime ON UPDATE $current_timestamp, + d $datetime NULL, + e $datetime DEFAULT '1986-09-27 03:00:00.098765' +); + +INSERT INTO t1 VALUES (); + +--echo # 1971-01-31 20:13:57 UTC +SET TIMESTAMP = 34200837.915736; + +eval CREATE TABLE t2 SELECT a FROM t1; +SHOW CREATE TABLE t2; +SELECT * FROM t2; + +eval CREATE TABLE t3 SELECT b FROM t1; +SHOW CREATE TABLE t3; +SELECT * FROM t3; + +eval CREATE TABLE t4 SELECT c FROM t1; +SHOW CREATE TABLE t4; +SELECT * FROM t4; + +eval CREATE TABLE t5 SELECT d FROM t1; +SHOW CREATE TABLE t5; +SELECT * FROM t5; + +eval CREATE TABLE t6 SELECT e FROM t1; +SHOW CREATE TABLE t6; +SELECT * FROM t6; + +DROP TABLE t1, t2, t3, t4, t5, t6; + +--echo # +--echo # Test of a CREATE TABLE SELECT that also declared columns. In this case +--echo # the function default should be de-activated during the execution of the +--echo # CREATE TABLE statement. +--echo # +--echo # 1970-01-01 03:16:40 +SET TIMESTAMP = 1000.987654; +eval CREATE TABLE t1 ( a INT ); +INSERT INTO t1 VALUES ( 1 ), ( 2 ); + +eval CREATE TABLE t2 ( b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp) SELECT a FROM t1; + +SHOW CREATE TABLE t2; +SET TIMESTAMP = 2000.876543; +INSERT INTO t2( a ) VALUES ( 3 ); +SELECT * FROM t2; + +DROP TABLE t1, t2; + +--echo # +--echo # Test of updating a view. +--echo # +eval CREATE TABLE t1 ( a INT, b $datetime DEFAULT $current_timestamp ); +eval CREATE TABLE t2 ( a INT, b $datetime ON UPDATE $current_timestamp ); + +eval CREATE VIEW v1 AS SELECT * FROM t1; +SHOW CREATE VIEW v1; + +eval CREATE VIEW v2 AS SELECT * FROM t2; +SHOW CREATE VIEW v2; + +--echo # 1971-01-31 21:13:57 UTC +SET TIMESTAMP = 34200837.348564; + +INSERT INTO v1 ( a ) VALUES ( 1 ); +INSERT INTO v2 ( a ) VALUES ( 1 ); + +SELECT * FROM t1; +SELECT * FROM v1; + +SELECT * FROM t2; +SELECT * FROM v2; + +--echo # 1970-04-11 20:13:57 UTC +SET TIMESTAMP = 8712837.567332; +UPDATE v1 SET a = 2; +UPDATE v2 SET a = 2; + +SELECT * FROM t1; +SELECT * FROM v1; + +SELECT * FROM t2; +SELECT * FROM v2; + +DROP VIEW v1, v2; +DROP TABLE t1, t2; + +--echo # +--echo # Test with stored procedures. +--echo # +eval CREATE TABLE t1 ( + a INT, + b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + c $timestamp NOT NULL DEFAULT $current_timestamp, + d $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + e $timestamp NULL, + f $datetime DEFAULT $current_timestamp, + g $datetime ON UPDATE $current_timestamp +); +CREATE PROCEDURE p1() INSERT INTO test.t1( a ) VALUES ( 1 ); +CREATE PROCEDURE p2() UPDATE t1 SET a = 2 WHERE a = 1; + +--echo # 1971-01-31 20:13:57 UTC +SET TIMESTAMP = 34200837.876544; +CALL p1(); +SELECT * FROM t1; + +--echo # 1970-04-11 21:13:57 UTC +SET TIMESTAMP = 8712837.143546; +CALL p2(); +SELECT * FROM t1; + +DROP PROCEDURE p1; +DROP PROCEDURE p2; +DROP TABLE t1; + +--echo # +--echo # Test with triggers. +--echo # +eval CREATE TABLE t1 ( + a INT, + b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + c $timestamp NOT NULL DEFAULT $current_timestamp, + d $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + e $timestamp NULL, + f $datetime, + g $datetime DEFAULT $current_timestamp, + h $datetime ON UPDATE $current_timestamp, + i $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp +); + +eval CREATE TABLE t2 ( a INT ); + +DELIMITER |; +eval CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW +BEGIN + INSERT INTO t1 ( a ) VALUES ( 1 ); +END| +DELIMITER ;| + +--echo # 1971-01-31 21:13:57 UTC +SET TIMESTAMP = 34200837.978675; + +INSERT INTO t2 ( a ) VALUES ( 1 ); +SELECT * FROM t1; + +DROP TRIGGER t2_trg; + +DELIMITER |; +eval CREATE TRIGGER t2_trg BEFORE INSERT ON t2 FOR EACH ROW +BEGIN + UPDATE t1 SET a = 2; +END| +DELIMITER ;| + +--echo # 1970-04-11 21:13:57 UTC +SET TIMESTAMP = 8712837.456789; + +INSERT INTO t2 ( a ) VALUES ( 1 ); +SELECT * FROM t1; + +DROP TABLE t1, t2; + +--echo # +--echo # Test where the assignment target is not a column. +--echo # +eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp ); +eval CREATE TABLE t2 ( a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp ); +eval CREATE TABLE t3 ( a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp ); +eval CREATE TABLE t4 ( a $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp ); + +eval CREATE VIEW v1 AS SELECT a COLLATE latin1_german1_ci AS b FROM t1; +eval CREATE VIEW v2 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t2; +eval CREATE VIEW v3 AS SELECT a COLLATE latin1_german1_ci AS b FROM t3; +eval CREATE VIEW v4 ( b ) AS SELECT a COLLATE latin1_german1_ci FROM t4; + +INSERT INTO v1 ( b ) VALUES ( '2007-10-24 00:03:34.010203' ); +SELECT a FROM t1; + +INSERT INTO v2 ( b ) VALUES ( '2007-10-24 00:03:34.010203' ); +SELECT a FROM t2; + +INSERT INTO t3 VALUES (); +UPDATE v3 SET b = '2007-10-24 00:03:34.010203'; +SELECT a FROM t3; + +INSERT INTO t4 VALUES (); +UPDATE v4 SET b = '2007-10-24 00:03:34.010203'; +SELECT a FROM t4; + +DROP VIEW v1, v2, v3, v4; +DROP TABLE t1, t2, t3, t4; + +--echo # +--echo # Test of LOAD DATA/XML INFILE +--echo # This tests behavior of function defaults for TIMESTAMP and DATETIME +--echo # columns. during LOAD ... INFILE. +--echo # As can be seen here, a TIMESTAMP column with only ON UPDATE +--echo # CURRENT_TIMESTAMP will still have CURRENT_TIMESTAMP inserted on LOAD +--echo # ... INFILE if the value is missing. For DATETIME columns a NULL value +--echo # is inserted instead. +--echo # + +eval CREATE TABLE t1 ( + a INT, + b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + c $timestamp NOT NULL DEFAULT $current_timestamp, + d $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + e $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + f $datetime, + g $datetime DEFAULT $current_timestamp, + h $datetime ON UPDATE $current_timestamp, + i $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp +); + +eval CREATE TABLE t2 ( + a $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + b $timestamp NOT NULL DEFAULT $current_timestamp, + c $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $current_timestamp, + d $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + e $datetime NOT NULL, + f $datetime NOT NULL DEFAULT '1977-01-02 12:13:14', + g $datetime DEFAULT $current_timestamp NOT NULL, + h $datetime ON UPDATE $current_timestamp NOT NULL, + i $datetime DEFAULT $current_timestamp ON UPDATE $current_timestamp NOT NULL +); + +--disable_ps2_protocol +SELECT 1 INTO OUTFILE 't3.dat' FROM dual; + +SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL +INTO OUTFILE 't4.dat' +FROM dual; + +SELECT 1, 2 INTO OUTFILE 't5.dat' FROM dual; +--enable_ps2_protocol + +--echo # Mon Aug 1 15:11:19 2011 UTC +SET TIMESTAMP = 1312211479.918273; + +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1; +--query_vertical SELECT * FROM t1 + +LOAD DATA INFILE 't4.dat' IGNORE INTO TABLE t2; +SELECT a FROM t2; +SELECT b FROM t2; +SELECT c FROM t2; +SELECT d FROM t2; +--echo # As shown here, supplying a NULL value to a non-nullable +--echo # column with no default value results in the zero date. +SELECT e FROM t2; +--echo # As shown here, supplying a NULL value to a non-nullable column with a +--echo # default value results in the zero date. +SELECT f FROM t2; +--echo # As shown here, supplying a NULL value to a non-nullable column with a +--echo # default function results in the zero date. +SELECT g FROM t2; +--echo # As shown here, supplying a NULL value to a non-nullable DATETIME ON +--echo # UPDATE CURRENT_TIMESTAMP column with no default value results in the +--echo # zero date. +SELECT h FROM t2; +SELECT i FROM t2; + +DELETE FROM t1; +DELETE FROM t2; + +--echo # Read t3 file into t1 +--echo # The syntax will cause a different code path to be taken +--echo # (read_fixed_length()) than under the LOAD ... INTO TABLE t1 command +--echo # above. The code in this path is copy-pasted code from the path taken +--echo # under the syntax used in the previous LOAD command. +LOAD DATA INFILE 't3.dat' IGNORE INTO TABLE t1 +FIELDS TERMINATED BY '' ENCLOSED BY ''; + +SELECT b FROM t1; +SELECT c FROM t1; +SELECT d FROM t1; +SELECT e FROM t1; +--echo # Yes, a missing field cannot be NULL using this syntax, so it will +--echo # zero date instead. Says a comment in read_fixed_length() : "No fields +--echo # specified in fields_vars list can be NULL in this format." +--echo # It appears to be by design. This is inconsistent with LOAD DATA INFILE +--echo # syntax in previous test. +SELECT f FROM t1; +SELECT g FROM t1; +--echo # See comment above "SELECT f FROM f1". +SELECT h FROM t1; +SELECT i FROM t1; +DELETE FROM t1; + +LOAD DATA INFILE 't5.dat' INTO TABLE t1 ( a, @dummy ); +SELECT * FROM t1; +SELECT @dummy; +DELETE FROM t1; + +LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET c = '2005-06-06 08:09:10'; +SELECT * FROM t1; +DELETE FROM t1; + +LOAD DATA INFILE 't3.dat' INTO TABLE t1 ( a ) SET g = '2005-06-06 08:09:10'; +SELECT * FROM t1; +DELETE FROM t1; + +--echo # Load a static XML file +LOAD XML INFILE '../../std_data/onerow.xml' INTO TABLE t1 +ROWS IDENTIFIED BY '<row>'; + +--echo Missing tags are treated as NULL +--query_vertical SELECT * FROM t1 + +DROP TABLE t1, t2; + +let $MYSQLD_DATADIR= `select @@datadir`; +remove_file $MYSQLD_DATADIR/test/t3.dat; +remove_file $MYSQLD_DATADIR/test/t4.dat; +remove_file $MYSQLD_DATADIR/test/t5.dat; + + +--echo # +--echo # Similar LOAD DATA tests in another form +--echo # +--echo # All of this test portion has been run on a pre-WL5874 trunk +--echo # (except that like_b and like_c didn't exist) and all result +--echo # differences are a bug. +--echo # Regarding like_b its definition is the same as b's except +--echo # that the constant default is replaced with a function +--echo # default. Our expectation is that like_b would behave +--echo # like b: if b is set to NULL, or set to 0000-00-00, or set to +--echo # its default, then the same should apply to like_b. Same for +--echo # like_c vs c. + +--echo # Mon Aug 1 15:11:19 2011 UTC +SET TIMESTAMP = 1312211479.089786; + +--disable_ps2_protocol +SELECT 1 INTO OUTFILE "file1.dat" FROM dual; +SELECT NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + INTO OUTFILE "file2.dat" FROM dual; +--enable_ps2_protocol + +--echo # Too short row + +eval +CREATE TABLE t1 ( + dummy INT, + a $datetime NULL DEFAULT NULL, + b $datetime NULL DEFAULT "2011-11-18", + like_b $datetime NULL DEFAULT $current_timestamp, + c $datetime NOT NULL DEFAULT "2011-11-18", + like_c $datetime NOT NULL DEFAULT $current_timestamp, + d $timestamp NULL DEFAULT "2011-05-03" ON UPDATE $current_timestamp, + e $timestamp NOT NULL DEFAULT "2011-05-03", + f $timestamp NOT NULL DEFAULT $current_timestamp, + g $timestamp NULL DEFAULT NULL, + h INT NULL, + i INT NOT NULL DEFAULT 42 +); + +--echo # There is no promotion +SHOW CREATE TABLE t1; + +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; + +--echo # It is strange that "like_b" gets NULL when "b" gets 0. But +--echo # this is consistent with how "a" gets NULL when "b" gets 0, +--echo # with how "g" gets NULL when "d" gets 0, and with how "h" gets +--echo # NULL when "i" gets 0. Looks like "DEFAULT +--echo # <non-NULL-constant>" is changed to 0, whereas DEFAULT NULL +--echo # and DEFAULT NOW are changed to NULL. +--query_vertical SELECT * FROM t1 +delete from t1; + +alter table t1 +modify f TIMESTAMP NULL default CURRENT_TIMESTAMP; + +--echo # There is no promotion +SHOW CREATE TABLE t1; + +LOAD DATA INFILE "file1.dat" IGNORE INTO table t1; + +--query_vertical SELECT * FROM t1 +delete from t1; + +drop table t1; + +--echo # Conclusion derived from trunk's results: +--echo # DATETIME DEFAULT <non-NULL-constant> (b,c) gets 0000-00-00, +--echo # DATETIME DEFAULT NULL (a) gets NULL, +--echo # TIMESTAMP NULL DEFAULT <non-NULL-constant> (d) gets 0000-00-00, +--echo # TIMESTAMP NULL DEFAULT NULL (g) gets NULL, +--echo # TIMESTAMP NULL DEFAULT NOW (f after ALTER) gets NULL, +--echo # TIMESTAMP NOT NULL (f before ALTER, e) gets NOW. + +--echo ### Loading NULL ### + +eval +CREATE TABLE t1 ( + dummy INT, + a $datetime NULL DEFAULT NULL, + b $datetime NULL DEFAULT "2011-11-18", + like_b $datetime NULL DEFAULT $current_timestamp, + c $datetime NOT NULL DEFAULT "2011-11-18", + like_c $datetime NOT NULL DEFAULT $current_timestamp, + d $timestamp NULL DEFAULT "2011-05-03" ON UPDATE $current_timestamp, + e $timestamp NOT NULL DEFAULT "2011-05-03", + f $timestamp NOT NULL DEFAULT $current_timestamp, + g $timestamp NULL DEFAULT NULL, + h INT NULL, + i INT NOT NULL DEFAULT 42 +); + +--echo # There is no promotion +SHOW CREATE TABLE t1; + +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; + +--query_vertical SELECT * FROM t1 +delete from t1; + +alter table t1 +modify f TIMESTAMP NULL default CURRENT_TIMESTAMP; + +--echo # There is no promotion +SHOW CREATE TABLE t1; + +LOAD DATA INFILE "file2.dat" IGNORE INTO table t1; + +--query_vertical SELECT * FROM t1 +delete from t1; + +--echo # Conclusion derived from trunk's results: +--echo # DATETIME NULL (a,b) gets NULL, +--echo # DATETIME NOT NULL (c) gets 0000-00-00, +--echo # TIMESTAMP NULL (d,f,g) gets NULL, +--echo # TIMESTAMP NOT NULL (e) gets NOW. + +drop table t1; +remove_file $MYSQLD_DATADIR/test/file1.dat; +remove_file $MYSQLD_DATADIR/test/file2.dat; + +--echo # +--echo # Test of updatable views with check options. The option can be violated +--echo # using ON UPDATE updates which is very strange as this offers a loophole +--echo # in this integrity check. +--echo # +SET TIME_ZONE = "+03:00"; +--echo # 1970-01-01 03:16:40 +SET TIMESTAMP = 1000.123456; + +eval CREATE TABLE t1 ( a INT, b $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp); + +SHOW CREATE TABLE t1; + +INSERT INTO t1 ( a ) VALUES ( 1 ); + +SELECT * FROM t1; + +eval CREATE VIEW v1 AS SELECT * FROM t1 WHERE b <= '1970-01-01 03:16:40.123456' +WITH CHECK OPTION; + +SELECT * FROM v1; + +--echo # 1970-01-01 03:33:20 +SET TIMESTAMP = 2000.000234; + +--error ER_VIEW_CHECK_FAILED +UPDATE v1 SET a = 2; +SELECT * FROM t1; + +DROP VIEW v1; +DROP TABLE t1; + +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT '1973-08-14 09:11:22.089786' ON UPDATE $current_timestamp, + c INT KEY +); +--echo # 1973-08-14 09:11:22 UTC +SET TIMESTAMP = 114167482.534231; +INSERT INTO t1 ( c ) VALUES ( 1 ); + +eval CREATE VIEW v1 AS +SELECT * +FROM t1 +WHERE a >= '1973-08-14 09:11:22' +WITH LOCAL CHECK OPTION; + +SELECT * FROM v1; + +SET TIMESTAMP = 1.126789; + +--error ER_VIEW_CHECK_FAILED +INSERT INTO v1 ( c ) VALUES ( 1 ) ON DUPLICATE KEY UPDATE c = 2; + +SELECT * FROM v1; + +DROP VIEW v1; +DROP TABLE t1; + +--echo # +--echo # Bug 13095459 - MULTI-TABLE UPDATE MODIFIES A ROW TWICE +--echo # +eval CREATE TABLE t1 ( + a INT, + b INT, + ts $timestamp NOT NULL DEFAULT $current_timestamp ON UPDATE $current_timestamp, + PRIMARY KEY ( a, ts ) +); +INSERT INTO t1( a, b, ts ) VALUES ( 1, 0, '2000-09-28 17:44:34' ); + +eval CREATE TABLE t2 ( a INT ); +INSERT INTO t2 VALUES ( 1 ); + +UPDATE t1 STRAIGHT_JOIN t2 +SET t1.b = t1.b + 1 +WHERE t1.a = 1 AND t1.ts >= '2000-09-28 00:00:00'; + +SELECT b FROM t1; + +DROP TABLE t1, t2; + +--echo # +--echo # Bug#11745578: 17392: ALTER TABLE ADD COLUMN TIMESTAMP DEFAULT +--echo # CURRENT_TIMESTAMP INSERTS ZERO +--echo # +SET timestamp = 1000; + +CREATE TABLE t1 ( b INT ); +INSERT INTO t1 VALUES (1); + +eval ALTER TABLE t1 ADD COLUMN a6 $datetime DEFAULT $now ON UPDATE $now FIRST; +eval ALTER TABLE t1 ADD COLUMN a5 $datetime DEFAULT $now FIRST; +eval ALTER TABLE t1 ADD COLUMN a4 $datetime ON UPDATE $now FIRST; + +eval ALTER TABLE t1 ADD COLUMN a3 $timestamp NOT NULL DEFAULT $now ON UPDATE $now FIRST; +eval ALTER TABLE t1 ADD COLUMN a2 $timestamp NOT NULL DEFAULT $now FIRST; +eval ALTER TABLE t1 ADD COLUMN a1 $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $now FIRST; + +eval ALTER TABLE t1 ADD COLUMN c1 $timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE $now AFTER b; +eval ALTER TABLE t1 ADD COLUMN c2 $timestamp NOT NULL DEFAULT $now AFTER c1; +eval ALTER TABLE t1 ADD COLUMN c3 $timestamp NOT NULL DEFAULT $now ON UPDATE $now AFTER c2; + +eval ALTER TABLE t1 ADD COLUMN c4 $datetime ON UPDATE $now AFTER c3; +eval ALTER TABLE t1 ADD COLUMN c5 $datetime DEFAULT $now AFTER c4; +eval ALTER TABLE t1 ADD COLUMN c6 $datetime DEFAULT $now ON UPDATE $now AFTER c5; + +query_vertical SELECT * FROM t1; +DROP TABLE t1; + + +eval CREATE TABLE t1 ( a $timestamp NOT NULL DEFAULT $now ON UPDATE $current_timestamp, b $datetime DEFAULT $now ); +INSERT INTO t1 VALUES (); + +SET timestamp = 1000000000; + +ALTER TABLE t1 MODIFY COLUMN a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(3); +ALTER TABLE t1 MODIFY COLUMN b DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3); + +SELECT * FROM t1; + +DROP TABLE t1; + + +eval CREATE TABLE t1 ( + a $timestamp NOT NULL DEFAULT '1999-12-01 11:22:33' ON UPDATE $current_timestamp, + b $datetime DEFAULT '1999-12-01 11:22:33' +); +INSERT INTO t1 VALUES (); + +eval ALTER TABLE t1 MODIFY COLUMN a $timestamp DEFAULT $now; +eval ALTER TABLE t1 MODIFY COLUMN b $datetime DEFAULT $now; +INSERT INTO t1 VALUES (); + +SELECT * FROM t1; + +DROP TABLE t1; diff --git a/mysql-test/include/function_defaults_notembedded.inc b/mysql-test/include/function_defaults_notembedded.inc new file mode 100644 index 00000000..07747012 --- /dev/null +++ b/mysql-test/include/function_defaults_notembedded.inc @@ -0,0 +1,95 @@ +SET TIME_ZONE = "+00:00"; + +--echo # +--echo # Test of INSERT DELAYED ... SET ... +--echo # + +--echo # 2011-04-19 08:02:40 UTC +SET TIMESTAMP = 1303200160.123456; + +eval CREATE TABLE t1 ( a INT, b $timestamp NOT NULL DEFAULT CURRENT_$timestamp ON UPDATE CURRENT_$timestamp); + +INSERT DELAYED INTO t1 SET a = 1; +FLUSH TABLE t1; + +SELECT * FROM t1; +SELECT * FROM t1 WHERE b = 0; + +INSERT DELAYED INTO t1 SET a = 2, b = '1980-01-02 10:20:30.405060'; +FLUSH TABLE t1; + +SELECT * FROM t1; + +DROP TABLE t1; + +--echo # +--echo # Test of INSERT DELAYED ... VALUES ... +--echo # + +--echo # 2011-04-19 08:04:01 UTC +SET TIMESTAMP = 1303200241.234567; + +eval CREATE TABLE t1 ( a INT, b $timestamp NOT NULL DEFAULT CURRENT_$timestamp ON UPDATE CURRENT_$timestamp); + +INSERT DELAYED INTO t1 ( a ) VALUES (1); +FLUSH TABLE t1; +SELECT * FROM t1; + +INSERT DELAYED INTO t1 VALUES (2, '1977-12-19 12:34:56.789123'); +FLUSH TABLE t1; +SELECT * FROM t1; + +DROP TABLE t1; + +--echo # +--echo # Test of a delayed insert handler servicing two insert operations +--echo # with different sets of active defaults. +--echo # +eval CREATE TABLE t1 ( a INT, b $timestamp NOT NULL DEFAULT CURRENT_$timestamp ON UPDATE CURRENT_$timestamp); + +--connect(con1, localhost, root,,) +--echo # 2011-04-19 08:04:01 UTC +SET TIMESTAMP = 1303200241.345678; +SET debug_sync = 'before_write_delayed SIGNAL parked WAIT_FOR go'; +--send INSERT DELAYED INTO t1 ( a ) VALUES (1), (2), (3) + +--connection default +SET debug_sync = 'now WAIT_FOR parked'; + +--connect(con2, localhost, root,,) +--echo # 2011-04-19 08:04:01 UTC +SET TIME_ZONE="+03:00"; +SET TIMESTAMP = 1303200241.456789; +--send INSERT DELAYED INTO t1 ( a, b ) VALUES (4, '1977-12-19 12:34:56.789123'), (5, '1977-12-19 12:34:57.891234'), (6, '1977-12-19 12:34:58.912345') + +--connection default +SET debug_sync = 'now SIGNAL go'; + +--let $wait_condition= SELECT COUNT(*) = 6 FROM t1 +--source include/wait_condition.inc + +--sorted_result +SELECT * FROM t1; + +--disconnect con1 +--disconnect con2 + +DROP TABLE t1; + +--echo # +--echo # Test of early activation of function defaults. +--echo # + +eval CREATE TABLE t1 ( a INT, b $timestamp NOT NULL DEFAULT CURRENT_$timestamp ON UPDATE CURRENT_$timestamp); + +SET TIMESTAMP = 1317235172.987654; # 2011-09-28 18:39:32 UTC +INSERT DELAYED INTO t1 ( a ) VALUES (1), (2), (3); + +SET TIMESTAMP = 385503754.876543; # 1982-03-20 20:22:34 UTC +INSERT DELAYED INTO t1 ( a ) VALUES (4), (5), (6); + +FLUSH TABLE t1; +SELECT * FROM t1; + +DROP TABLE t1; +SET debug_sync = 'RESET'; diff --git a/mysql-test/include/galera_clear_sync_point.inc b/mysql-test/include/galera_clear_sync_point.inc new file mode 100644 index 00000000..589522a5 --- /dev/null +++ b/mysql-test/include/galera_clear_sync_point.inc @@ -0,0 +1 @@ +SET GLOBAL wsrep_provider_options = 'dbug='; diff --git a/mysql-test/include/galera_cluster.inc b/mysql-test/include/galera_cluster.inc new file mode 100644 index 00000000..48b5bc63 --- /dev/null +++ b/mysql-test/include/galera_cluster.inc @@ -0,0 +1,31 @@ +# galera_cluster.inc +# ================== +# +# Description +# ----------- +# Configure galera cluster with $galera_cluster_size (default: 2) nodes. +# + +if (!$galera_cluster_size) +{ +# --die ERROR IN TEST: $galera_cluster_size variable must be set + --let $galera_cluster_size = 2 +} + +--source include/galera_init.inc +--source include/have_innodb.inc +--source include/galera_wait_ready.inc + + +--let $_galera_node= $galera_cluster_size + +while ($_galera_node != 1) +{ + --connection node_$_galera_node + --source include/galera_wait_ready.inc + --source include/have_innodb.inc + + --dec $_galera_node +} + +--connection node_1 diff --git a/mysql-test/include/galera_connect.inc b/mysql-test/include/galera_connect.inc new file mode 100644 index 00000000..5e72cf9e --- /dev/null +++ b/mysql-test/include/galera_connect.inc @@ -0,0 +1,59 @@ +# galera_connect.inc +# ================== +# +# Description +# ----------- +# Open a connection to the specified server number ($galera_server_number). +# The connection itself would be identified by $galera_connection_name. +# +# Parameters +# ---------- +# $galera_connection_name +# Name of the resulting connection. +# +# $galera_connection_address +# IP to connect to for galera (defaults to 127.0.0.1) +# +# $galera_server_number +# Sequence number of the node in the galera cluster. +# +# $galera_debug +# Print debug information. +# + +if (!$galera_connection_name) +{ + --die ERROR IN TEST: $galera_connection_name must be set before sourcing include/galera_connect.inc +} + +if (!$galera_server_number) +{ + --die ERROR IN TEST: $galera_server_number must be set before sourcing include/galera_connect.inc +} + +if (!$galera_connection_address) +{ + --let $galera_connection_address= 127.0.0.1 +} + +--let $_galera_port= \$NODE_MYPORT_$galera_server_number +if (!$_galera_port) +{ + --echo Bug in test case: '\$NODE_MYPORT_$galera_server_number' not initialized. Check the test's .cfg file. + --die Not all NODE_MYPORT_* environment variables are setup correctly. +} + +if ($galera_debug) +{ +--disable_query_log + --echo connect($galera_connection_name,$galera_connection_address,root,,test,$_galera_port,) +--enable_query_log +} + +# Temporal solution to avoid concurrent IST MDEV-7178 +--sleep 1 + +# Open a connection +--disable_query_log +--connect($galera_connection_name,$galera_connection_address,root,,test,$_galera_port,) +--enable_query_log diff --git a/mysql-test/include/galera_diff.inc b/mysql-test/include/galera_diff.inc new file mode 100644 index 00000000..6043b582 --- /dev/null +++ b/mysql-test/include/galera_diff.inc @@ -0,0 +1,100 @@ +# galera_diff.inc +# =============== +# +# Description +# ----------- +# Compare the output of the given statement on all the nodes of the cluster. +# +# Parameters +# ---------- +# $galera_diff_statement +# Statement for which the output would be compared. +# +# $galera_diff_database +# Database against which the above statement would be executed. +# (Default : test) +# +# $galera_diff_servers +# Comma separated list of servers to executed the diff statement on. If not +# set, a list of servers will be generated based on $galera_cluster_size. +# +# $galerra_debug +# Print debug information. +# + +if (!$galera_diff_statement) +{ + --die ERROR IN TEST: $galera_diff_statement must be set before sourcing include/galera_diff.inc +} + +--let $_galera_diff_database = $galera_diff_database +if (!$_galera_diff_database) +{ + --let $_galera_diff_database = test +} + +--let $_galera_diff_servers= $galera_diff_servers +if (!$_galera_diff_servers) +{ + --let $_i= $galera_cluster_size + --let $_galera_diff_servers= + while ($_i) + { + --let $_galera_diff_servers= $_i,$_galera_diff_servers + --dec $_i + } +} +if ($galera_debug) +{ + --echo \$galera_diff_servers= '$_galera_diff_servers' +} + +if (!$galera_debug) +{ + --disable_query_log +} + +# Generate file containing $galera_diff_statement. We don't pass the +# statement on the command line, because it would be subject to shell +# substitutions. +--let $write_to_file= GENERATE +--let $write_var= $galera_diff_statement +--source include/write_var_to_file.inc +--let $_galera_diff_statement_file= $write_to_file + +if (!$galera_debug) +{ + --enable_query_log +} + +# Compare all servers. +--let $_galera_diff_first= 1 +while ($_galera_diff_servers) +{ + # Set $_galera_diff_server_i to the first number in the list + --let $_galera_diff_server_i= `SELECT SUBSTRING_INDEX('$_galera_diff_servers', ',', 1)` + # Remove $_galera_diff_server_i from the list + --let $_galera_diff_servers= `SELECT SUBSTRING('$_galera_diff_servers', LENGTH('$_galera_diff_server_i') + 2)` + + # Execute statement + --let $_galera_diff_file= $MYSQLTEST_VARDIR/tmp/_galera_diff_server-$_galera_diff_server_i.tmp + --exec $MYSQL --defaults-group-suffix=.$_galera_diff_server_i $_galera_diff_database < $_galera_diff_statement_file > $_galera_diff_file + + # Compare + if (!$_galera_diff_first) + { + if ($galera_debug) + { + --echo diffing $_galera_diff_file and $_galera_diff_prev_file + } + --diff_files $_galera_diff_file $_galera_diff_prev_file + --remove_file $_galera_diff_prev_file + } + --let $_galera_diff_prev_file= $_galera_diff_file + --let $_galera_diff_first= 0 +} + +# Cleanup +--remove_file $_galera_diff_prev_file +--remove_file $_galera_diff_statement_file + diff --git a/mysql-test/include/galera_end.inc b/mysql-test/include/galera_end.inc new file mode 100644 index 00000000..0fb54798 --- /dev/null +++ b/mysql-test/include/galera_end.inc @@ -0,0 +1,25 @@ +# galera_end.inc +# ============== +# +# Description +# ----------- +# Closes the connections opened via include/galera_init.inc +# +# Parameters +# ---------- +# $galera_cluster_size +# Number of nodes in the cluster. +# + +--let $_galera_node= $galera_cluster_size + +while ($_galera_node) +{ + if ($galera_debug) + { + --echo Disconnecting node_$_galera_node + } + --disconnect node_$_galera_node + --dec $_galera_node +} + diff --git a/mysql-test/include/galera_have_debug_sync.inc b/mysql-test/include/galera_have_debug_sync.inc new file mode 100644 index 00000000..21e7b3c8 --- /dev/null +++ b/mysql-test/include/galera_have_debug_sync.inc @@ -0,0 +1,9 @@ +--disable_query_log + +--let $galera_have_debug_sync = `SELECT 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_debug_sync_waiters'` + +--if (!$galera_have_debug_sync) { + --skip Test requires Galera debug library with debug_sync functionality +} + +--enable_query_log diff --git a/mysql-test/include/galera_init.inc b/mysql-test/include/galera_init.inc new file mode 100644 index 00000000..79591973 --- /dev/null +++ b/mysql-test/include/galera_init.inc @@ -0,0 +1,26 @@ +# galera_init.inc +# =============== +# +# Description +# ----------- +# Set up a Galera cluster with $wsrep_cluster_size nodes. +# +# Parameters +# ---------- +# $galera_cluster_size +# Number of nodes in the cluster. +# + +--source include/have_wsrep_enabled.inc + +--let $_galera_node= $galera_cluster_size + +while ($_galera_node) +{ + --let $galera_connection_name= node_$_galera_node + --let $galera_server_number= $_galera_node + --source include/galera_connect.inc + + --dec $_galera_node +} + diff --git a/mysql-test/include/galera_no_debug_sync.inc b/mysql-test/include/galera_no_debug_sync.inc new file mode 100644 index 00000000..0819144c --- /dev/null +++ b/mysql-test/include/galera_no_debug_sync.inc @@ -0,0 +1,9 @@ +--disable_query_log + +--let $galera_have_debug_sync = `SELECT 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_debug_sync_waiters'` + +--if ($galera_have_debug_sync) { + --skip Test requires Galera debug library with no debug_sync functionality +} + +--enable_query_log diff --git a/mysql-test/include/galera_set_sync_point.inc b/mysql-test/include/galera_set_sync_point.inc new file mode 100644 index 00000000..5fe4e8c3 --- /dev/null +++ b/mysql-test/include/galera_set_sync_point.inc @@ -0,0 +1 @@ +--eval SET GLOBAL wsrep_provider_options = 'dbug=d,$galera_sync_point' diff --git a/mysql-test/include/galera_signal_sync_point.inc b/mysql-test/include/galera_signal_sync_point.inc new file mode 100644 index 00000000..eaa5cdd4 --- /dev/null +++ b/mysql-test/include/galera_signal_sync_point.inc @@ -0,0 +1 @@ +--eval SET GLOBAL wsrep_provider_options = 'signal=$galera_sync_point' diff --git a/mysql-test/include/galera_suspend.inc b/mysql-test/include/galera_suspend.inc new file mode 100644 index 00000000..d4037d89 --- /dev/null +++ b/mysql-test/include/galera_suspend.inc @@ -0,0 +1,14 @@ +# +# This macro suspends the current node +# + +--let _SUSPEND_NODE_PIDFILE = `SELECT @@pid_file` +--echo Suspending node ... + +--perl + my $pid_filename = $ENV{'_SUSPEND_NODE_PIDFILE'}; + my $mysqld_pid = `cat $pid_filename`; + chomp($mysqld_pid); + system("kill -SIGSTOP $mysqld_pid"); + exit(0); +EOF diff --git a/mysql-test/include/galera_variables_ok.inc b/mysql-test/include/galera_variables_ok.inc new file mode 100644 index 00000000..c9a54724 --- /dev/null +++ b/mysql-test/include/galera_variables_ok.inc @@ -0,0 +1,9 @@ +--disable_query_log + +--let $galera_variables_ok = `SELECT COUNT(*) = 50 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep%'` + +--if (!$galera_variables_ok) { + --skip Galera number of variables has changed! +} + +--enable_query_log diff --git a/mysql-test/include/galera_variables_ok_debug.inc b/mysql-test/include/galera_variables_ok_debug.inc new file mode 100644 index 00000000..e420b3af --- /dev/null +++ b/mysql-test/include/galera_variables_ok_debug.inc @@ -0,0 +1,9 @@ +--disable_query_log + +--let $galera_variables_ok = `SELECT COUNT(*) = 51 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME LIKE 'wsrep%'` + +--if (!$galera_variables_ok) { + --skip Galera number of variables has changed! +} + +--enable_query_log diff --git a/mysql-test/include/galera_wait_ready.inc b/mysql-test/include/galera_wait_ready.inc new file mode 100644 index 00000000..a726116f --- /dev/null +++ b/mysql-test/include/galera_wait_ready.inc @@ -0,0 +1,32 @@ +# include/galera_wait_ready.inc +# +# Waits for galera node to transition to READY state. +# + +--enable_reconnect +--disable_query_log +--disable_result_log +let $wait_counter = 600; +while ($wait_counter) +{ + --disable_abort_on_error + let $success = `SELECT VARIABLE_VALUE = 'ON' FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready'`; + --enable_abort_on_error + if ($success) + { + let $wait_counter = 0; + } + if (!$success) + { + real_sleep 0.1; + dec $wait_counter; + } +} + +if (!$success) +{ + die "Server did not transition to READY state"; +} +--disable_reconnect +--enable_query_log +--enable_result_log diff --git a/mysql-test/include/galera_wait_sync_point.inc b/mysql-test/include/galera_wait_sync_point.inc new file mode 100644 index 00000000..c0951b22 --- /dev/null +++ b/mysql-test/include/galera_wait_sync_point.inc @@ -0,0 +1,17 @@ +--let $wait_timeout = 10 +--let $wsrep_on_orig = `SELECT @@wsrep_on` +SET SESSION wsrep_on = 0; + +# +# following is only for debugging purposes +# should be commented out when test wporks as planned +# +#--sleep 1 +# SHOW PROCESSLIST; +#SHOW STATUS LIKE 'wsrep_%'; +#--echo $galera_sync_point + +--let $wait_condition = SELECT 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_debug_sync_waiters' AND VARIABLE_VALUE = '$galera_sync_point' +--source include/wait_condition.inc +--eval SET SESSION wsrep_on = $wsrep_on_orig + diff --git a/mysql-test/include/gap_lock_error_all.inc b/mysql-test/include/gap_lock_error_all.inc new file mode 100644 index 00000000..fc69dfb5 --- /dev/null +++ b/mysql-test/include/gap_lock_error_all.inc @@ -0,0 +1,27 @@ +--source include/have_partition.inc +--source include/gap_lock_error_init.inc + +let $select_lock=for update; +let $autocommit = 0; +--source include/gap_lock_error_select.inc +let $autocommit = 1; +--source include/gap_lock_error_select.inc + +let $select_lock=lock in share mode; +let $autocommit = 0; +--source include/gap_lock_error_select.inc +let $autocommit = 1; +--source include/gap_lock_error_select.inc + +let $select_lock=; +let $autocommit = 0; +--source include/gap_lock_error_select.inc +let $autocommit = 1; +--source include/gap_lock_error_select.inc + +let $autocommit = 0; +--source include/gap_lock_error_update.inc +let $autocommit = 1; +--source include/gap_lock_error_update.inc + +--source include/gap_lock_error_cleanup.inc diff --git a/mysql-test/include/gap_lock_error_cleanup.inc b/mysql-test/include/gap_lock_error_cleanup.inc new file mode 100644 index 00000000..8558b5a5 --- /dev/null +++ b/mysql-test/include/gap_lock_error_cleanup.inc @@ -0,0 +1 @@ +drop table gap1, gap2, gap3, gap4; diff --git a/mysql-test/include/gap_lock_error_init.inc b/mysql-test/include/gap_lock_error_init.inc new file mode 100644 index 00000000..26aa852a --- /dev/null +++ b/mysql-test/include/gap_lock_error_init.inc @@ -0,0 +1,24 @@ +eval CREATE TABLE gap1 (id1 INT, id2 INT, id3 INT, c1 INT, value INT, + PRIMARY KEY (id1, id2, id3), + INDEX i (c1)) ENGINE=$engine; +CREATE TABLE gap2 like gap1; +eval CREATE TABLE gap3 (id INT, value INT, + PRIMARY KEY (id), + UNIQUE KEY ui(value)) ENGINE=$engine; +eval CREATE TABLE gap4 (id INT, value INT, + PRIMARY KEY (id)) ENGINE=$engine + PARTITION BY HASH(id) PARTITIONS 2; +--disable_query_log +let $max = 1000; +let $i = 1; +while ($i <= $max) { + eval INSERT INTO gap1 (id1, id2, id3, c1, value) + VALUES ($i div 2, $i div 10, $i, $i, $i); + eval INSERT INTO gap2 (id1, id2, id3, c1, value) + VALUES ($i div 2, $i div 10, $i, $i, $i); + inc $i; +} +--enable_query_log + +insert into gap3 values (1,1), (2,2),(3,3),(4,4),(5,5); +insert into gap4 values (1,1), (2,2),(3,3),(4,4),(5,5); diff --git a/mysql-test/include/gap_lock_error_select.inc b/mysql-test/include/gap_lock_error_select.inc new file mode 100644 index 00000000..91db9bed --- /dev/null +++ b/mysql-test/include/gap_lock_error_select.inc @@ -0,0 +1,89 @@ +eval set session autocommit=$autocommit; +let $is_gaplock_target = `SELECT @@autocommit = 0 && '$select_lock' != '' && '$expect_gap_lock_errors' = 1`; + +if ($is_gaplock_target) +{ +# rnd_init +--error ER_UNKNOWN_ERROR +eval select * from gap1 limit 1 $select_lock; +--error ER_UNKNOWN_ERROR +eval select * from gap1 where value != 100 limit 1 $select_lock; +# index_read_map +--error ER_UNKNOWN_ERROR +eval select * from gap1 where id1=1 $select_lock; +--error ER_UNKNOWN_ERROR +eval select * from gap1 where id1=1 and id2= 1 $select_lock; +# read_range_first +--error ER_UNKNOWN_ERROR +eval select * from gap1 where id1=1 and id2= 1 and id3 != 1 $select_lock; +--error ER_UNKNOWN_ERROR +eval select * from gap1 where id1=1 and id2= 1 and id3 + between 1 and 3 $select_lock; +--error ER_UNKNOWN_ERROR +eval select * from gap1 where id1=1 and id2= 1 order by id3 asc + limit 1 $select_lock; +--error ER_UNKNOWN_ERROR +eval select * from gap1 where id1=1 and id2= 1 order by id3 desc + limit 1 $select_lock; +# index_first +--error ER_UNKNOWN_ERROR +eval select * from gap1 order by id1 asc limit 1 $select_lock; +--error ER_UNKNOWN_ERROR +eval select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 $select_lock; +# index_last +--error ER_UNKNOWN_ERROR +eval select * from gap1 order by id1 desc limit 1 $select_lock; +--error ER_UNKNOWN_ERROR +eval select * from gap1 order by id1 desc, id2 desc, id3 desc + limit 1 $select_lock; +# secondary index lookup +--error ER_UNKNOWN_ERROR +eval select * from gap1 force index(i) where c1=1 $select_lock; +# unique index lookup, ensure no gap lock errors as this is effectively a +# single point select that does not lock ranges or gaps of keys +eval select * from gap3 force index(ui) where value=1 $select_lock; +# primary key lookup, ensure no gap lock errors as these are effectively +# single point selects that do not lock ranges or gaps of keys +eval select * from gap1 where id1=1 and id2=1 and id3=1 $select_lock; +eval select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) $select_lock; +eval select * from gap1 where id1=1 and id2=1 and id3=1 and value=1 + order by c1 $select_lock; +eval select * from gap3 where id=1 $select_lock; +eval select * from gap4 where id=1 $select_lock; +eval select * from gap4 where id in (1, 2, 3) $select_lock; +--error ER_UNKNOWN_ERROR +eval select * from gap4 $select_lock; +--error ER_UNKNOWN_ERROR +eval select * from gap4 where id between 3 and 7 $select_lock; +} + +if (!$is_gaplock_target) +{ +eval select * from gap1 limit 1 $select_lock; +eval select * from gap1 where value != 100 limit 1 $select_lock; +eval select * from gap1 where id1=1 $select_lock; +eval select * from gap1 where id1=1 and id2= 1 $select_lock; +eval select * from gap1 where id1=1 and id2= 1 and id3 != 1 $select_lock; +eval select * from gap1 where id1=1 and id2= 1 and id3 + between 1 and 3 $select_lock; +eval select * from gap1 where id1=1 and id2= 1 order by id3 asc + limit 1 $select_lock; +eval select * from gap1 where id1=1 and id2= 1 order by id3 desc + limit 1 $select_lock; +eval select * from gap1 order by id1 asc limit 1 $select_lock; +eval select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 $select_lock; +eval select * from gap1 order by id1 desc limit 1 $select_lock; +eval select * from gap1 order by id1 desc, id2 desc, id3 desc + limit 1 $select_lock; +eval select * from gap1 force index(i) where c1=1 $select_lock; +eval select * from gap3 force index(ui) where value=1 $select_lock; +eval select * from gap1 where id1=1 and id2=1 and id3=1 $select_lock; +eval select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) $select_lock; +eval select * from gap1 where id1=1 and id2=1 and id3=1 and value=1 + order by c1 $select_lock; +eval select * from gap3 where id=1 $select_lock; +eval select * from gap4 where id=1 $select_lock; +eval select * from gap4 where id in (1, 2, 3) $select_lock; +eval select * from gap4 $select_lock; +eval select * from gap4 where id between 3 and 7 $select_lock; +} diff --git a/mysql-test/include/gap_lock_error_update.inc b/mysql-test/include/gap_lock_error_update.inc new file mode 100644 index 00000000..d456cf81 --- /dev/null +++ b/mysql-test/include/gap_lock_error_update.inc @@ -0,0 +1,91 @@ +eval set session autocommit=$autocommit; +let $is_gaplock_target = `SELECT @@autocommit = 0 && '$expect_gap_lock_errors' = 1`; + +if ($is_gaplock_target) +{ +## single-table insert,update,delete +insert into gap1 (id1, id2, id3) values (-1,-1,-1); +insert into gap1 (id1, id2, id3) values (-1,-1,-1) + on duplicate key update value=100; +--error ER_UNKNOWN_ERROR +update gap1 set value=100 where id1=1; +update gap1 set value=100 where id1=1 and id2=1 and id3=1; +--error ER_UNKNOWN_ERROR +delete from gap1 where id1=2; +delete from gap1 where id1=-1 and id2=-1 and id3=-1; +commit; + +## multi-table statements (preventing all gap locks with autocommit) +# insert into select +--error ER_UNKNOWN_ERROR +insert into gap2 select * from gap1; +--error ER_UNKNOWN_ERROR +insert into gap2 select * from gap1 where id1=1; +insert into gap2 select * from gap1 where id1=1 and id2=1 and id3=1; + +# create table select +create table t4 select * from gap1 where id1=1 and id2=1 and id3=1; +drop table t4; +--error ER_UNKNOWN_ERROR +create table t4 select * from gap1; +--error ER_UNKNOWN_ERROR +create table t4 select * from gap1 where id1=1; + +# update join +update gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 set gap1.value=100 where gap2.id1=3 + and gap2.id2=3 and gap2.id3=3; +--error ER_UNKNOWN_ERROR +update gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 set gap1.value=100 where gap2.id1=3; +--error ER_UNKNOWN_ERROR +update gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 join gap3 on gap1.id1=gap3.id + set gap1.value=100 where gap2.id1=3; +--error ER_UNKNOWN_ERROR +update gap1 set gap1.value= (select count(*) from gap2); + +# delete join +delete gap1 from gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 where gap2.id1=3 + and gap2.id2=3 and gap2.id3=3; +--error ER_UNKNOWN_ERROR +delete gap1 from gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 where gap2.id1=3; + +# select join / self join +--error ER_UNKNOWN_ERROR +select * from gap1, gap2 limit 1 for update; +--error ER_UNKNOWN_ERROR +select * from gap1 a, gap1 b limit 1 for update; + +# unique secondary key +create table u1( + c1 int, + c2 int, + c3 int, + c4 int, + primary key (c1, c2, c3), + unique key (c3, c1) +); +begin; +insert into u1 values (1,1,1,1); +commit; +begin; +insert into u1 values (1,2,1,1) on duplicate key update c4=10; +commit; +begin; +select * from u1 where c3=1 and c1 = 1 for update; +--error ER_UNKNOWN_ERROR +select * from u1 where c3=1 for update; +commit; +drop table u1; +} + +if (!$is_gaplock_target) +{ +# autocommit doesn't prevent single table operations +insert into gap1 (id1, id2, id3) values (-1,-1,-1); +insert into gap1 (id1, id2, id3) values (-1,-1,-1) + on duplicate key update value=100; +update gap1 set value=100 where id1=1; +update gap1 set value=100 where id1=1 and id2=1 and id3=1; +delete from gap1 where id1=2; +delete from gap1 where id1=-1 and id2=-1 and id3=-1; +commit; +} diff --git a/mysql-test/include/get_relay_log_pos.inc b/mysql-test/include/get_relay_log_pos.inc new file mode 100644 index 00000000..47a74c9b --- /dev/null +++ b/mysql-test/include/get_relay_log_pos.inc @@ -0,0 +1,70 @@ +# For a given event which is at position $master_log_pos in the the master's +# binary log, returns its position in the slave's relay log file +# $relay_log_file. +# The position is stored in the variable $relay_log_pos. + +# Usage: +# let $relay_log_file= 'relay-log-bin.000001'; +# let $master_log_pos= 106; +# source include/get_relay_log_pos.inc; +# # at this point, get_relay_log_pos.inc sets $relay_log_pos. echo position +# # in $relay_log_file: $relay_log_pos. + +if (!$relay_log_file) +{ + --die 'variable $relay_log_file is null' +} + +if (!$master_log_pos) +{ + --die 'variable $master_log_pos is null' +} + +let $MYSQLD_DATADIR= `select @@datadir`; +let $_suffix= `SELECT UUID()`; +let $_tmp_file= $MYSQLTEST_VARDIR/tmp/mysqlbinlog.$_suffix; +--exec $MYSQL_BINLOG $MYSQLD_DATADIR/$relay_log_file > $_tmp_file + +# All queries in this file should not be logged. +--disable_query_log + +--disable_warnings +DROP TEMPORARY TABLE IF EXISTS mysqlbinlog_events; +DROP TEMPORARY TABLE IF EXISTS events_at; +DROP TEMPORARY TABLE IF EXISTS events_pos; +CREATE TEMPORARY TABLE mysqlbinlog_events(c1 INT AUTO_INCREMENT KEY, c2 varchar(256)); + +# Event position is in the comments output by mysqlbinlog, we load this +# comments into the table +# '# at 106' +# '# .... end_log_pos 46' +eval LOAD DATA LOCAL INFILE '$_tmp_file' INTO TABLE mysqlbinlog_events + LINES STARTING BY '#' (c2) SET c1 = NULL; + +# Event pos in relay log file is inserted into table events_at +CREATE TEMPORARY TABLE events_at(c1 INT AUTO_INCREMENT KEY, c2 varchar(256)) + SELECT c2 FROM mysqlbinlog_events WHERE c2 LIKE ' at%' ORDER BY c1; + +# Event pos in master log file is inserted into table events_pos +CREATE TEMPORARY TABLE events_pos(c1 INT AUTO_INCREMENT KEY, c2 varchar(256)) + SELECT c2 FROM mysqlbinlog_events WHERE c2 LIKE '% end_log_pos %' ORDER BY c1; +--enable_warnings + +# events_at events_pos +# c1------c2-------------------------- c1------c2------------------------ +# 1 ev1's begin pos in relay log 1 ev1's end pos in master log +# 2 ev2's begin pos in relay log 2 ev2's end pos in master log +# 3 ev3's begin pos in relay log 3 ev3's end pos in master log +# events always keep the same sequence. +# Because event[N]'s end pos is equal to event[N+1]'s begin pos we want to +# find event's end pos in relay log, we can find the right relay_log_pos +# using the relationship that 'events_pos.c1 = events_at.c1 + 1' +# +# There is a fault that we can't get the relay log position of the last event, +# as it is not output by mysqlbinlog +let $relay_log_pos= `SELECT SUBSTRING(a.c2, 5) + FROM events_at a, events_pos b + WHERE a.c1=b.c1+1 and b.c2 LIKE '% $master_log_pos%'`; +DROP TEMPORARY TABLE mysqlbinlog_events, events_at, events_pos; +--remove_file $_tmp_file +--enable_query_log diff --git a/mysql-test/include/gis_debug.inc b/mysql-test/include/gis_debug.inc new file mode 100644 index 00000000..813ae252 --- /dev/null +++ b/mysql-test/include/gis_debug.inc @@ -0,0 +1,169 @@ +# +# This is a shared file included from t/gis-precise.test and t/gis-debug.test +# +# - gis-precise.test is executed both in debug and production builds +# and makes sure that the checked GIS functions return the expected results. +# +# - gis-debug.test is executed only in debug builds +# (and is skipped in production builds). +# gis-debug.test activates tracing of the internal GIS routines. +# The trace log is printed to the client side warnings. +# So gis-debug.test makes sure not only that the correct results are returned, +# but also check *how* these results were generated - makes sure that +# the internal GIS routines went through the expected data and code flow paths. +# + +--disable_warnings +DROP TABLE IF EXISTS p1; +--enable_warnings + +DELIMITER |; +CREATE PROCEDURE p1(dist DOUBLE, geom TEXT) +BEGIN + DECLARE g GEOMETRY; + SET g=GeomFromText(geom); + SELECT geom AS `-----`; + SELECT dist, GeometryType(@buf:=ST_Buffer(g, dist)) AS `buffer`, ROUND(ST_AREA(@buf),2) AS buf_area; +END| +DELIMITER ;| + +--disable_query_log + +--echo # +--echo # Testing ST_BUFFER with positive distance +--echo # + +CALL p1(1, 'POINT(0 0))'); +CALL p1(1, 'LineString(0 1, 1 1))'); +CALL p1(1, 'LineString(9 9,8 1,1 5,0 0)'); +CALL p1(1, 'Polygon((2 2,2 8,8 8,8 2,2 2))'); +CALL p1(1, 'Polygon((0 0,0 8,8 8,8 0,0 0),(2 2,6 2,6 6,2 6,2 2))'); +CALL p1(1, 'Polygon((0 0, 0 8, 8 8, 8 10, -10 10, -10 0, 0 0))'); +CALL p1(1, 'MultiPoint(9 9,8 1,1 5)'); +CALL p1(1, 'MultiLineString((0 0,2 2))'); +CALL p1(1, 'MultiLineString((0 0,2 2,0 4))'); +CALL p1(1, 'MultiLineString((0 0,2 2),(0 2,2 0))'); +CALL p1(1, 'MultiLineString((2 2,2 8,-2 8),(-6 -6, 6 6),(10 10, 14 14))'); +CALL p1(1, 'MultiPolygon(((2 2,2 8,8 8,8 2,2 2)), ((9 9,8 1,1 5,9 9)))'); +CALL p1(1, 'MultiPolygon(((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)),((9 9,8 1,1 5,9 9)))'); +CALL p1(1, 'GeometryCollection(Point(0 0))'); +CALL p1(1, 'GeometryCollection(LineString(0 0, 2 2)))'); +CALL p1(1, 'GeometryCollection(Polygon((2 2,2 8,8 8,8 2,2 2))))'); +CALL p1(1, 'GeometryCollection(MultiPoint(9 9,8 1,1 5))'); +CALL p1(1, 'GeometryCollection(MultiLineString((0 0,0 1),(3 0,3 1)))'); +CALL p1(1, 'GeometryCollection(MultiPolygon(((0 0, 3 0, 3 3, 0 3, 0 0)),((6 6,6 9,9 9,9 6,6 6))))'); +CALL p1(1, 'GeometryCollection(Point(9 9),LineString(1 5,0 0),Polygon((2 2,2 8,8 8,8 2,2 2)))'); + + +--echo # +--echo # Testing ST_BUFFER with zero distance +--echo # + +CALL p1(0, 'POINT(0 0))'); +CALL p1(0, 'LineString(0 1, 1 1))'); +CALL p1(0, 'LineString(9 9,8 1,1 5,0 0)'); +CALL p1(0, 'Polygon((2 2,2 8,8 8,8 2,2 2))'); +CALL p1(0, 'Polygon((0 0,0 8,8 8,8 0,0 0),(2 2,6 2,6 6,2 6,2 2))'); +CALL p1(0, 'Polygon((0 0, 0 8, 8 8, 8 10, -10 10, -10 0, 0 0))'); +CALL p1(0, 'MultiPoint(9 9,8 1,1 5)'); +CALL p1(0, 'MultiLineString((0 0,2 2))'); +CALL p1(0, 'MultiLineString((0 0,2 2,0 4))'); +CALL p1(0, 'MultiLineString((0 0,2 2),(0 2,2 0))'); +CALL p1(0, 'MultiLineString((2 2,2 8,-2 8),(-6 -6, 6 6),(10 10, 14 14))'); +CALL p1(0, 'MultiPolygon(((2 2,2 8,8 8,8 2,2 2)), ((9 9,8 1,1 5,9 9)))'); +CALL p1(0, 'MultiPolygon(((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)),((9 9,8 1,1 5,9 9)))'); +CALL p1(0, 'GeometryCollection(Point(0 0))'); +CALL p1(0, 'GeometryCollection(LineString(0 0, 2 2)))'); +CALL p1(0, 'GeometryCollection(Polygon((2 2,2 8,8 8,8 2,2 2))))'); +CALL p1(0, 'GeometryCollection(MultiPoint(9 9,8 1,1 5))'); +CALL p1(0, 'GeometryCollection(MultiLineString((0 0,0 1),(3 0,3 1)))'); +CALL p1(0, 'GeometryCollection(MultiPolygon(((0 0, 3 0, 3 3, 0 3, 0 0)),((6 6,6 9,9 9,9 6,6 6))))'); +CALL p1(0, 'GeometryCollection(Point(9 9),LineString(1 5,0 0),Polygon((2 2,2 8,8 8,8 2,2 2)))'); + + +--echo # +--echo # Testing ST_BUFFER with negative distance +--echo # + +CALL p1(-1, 'POINT(0 0))'); +CALL p1(-1, 'LineString(0 1, 1 1))'); +CALL p1(-1, 'LineString(9 9,8 1,1 5,0 0)'); +CALL p1(-1, 'Polygon((2 2,2 8,8 8,8 2,2 2))'); +# +# Wrong shape +# CALL p1(-1, 'Polygon((0 0,0 8,8 8,8 0,0 0),(2 2,6 2,6 6,2 6,2 2))'); +# Wrong shape +# CALL p1(-1, 'Polygon((0 0, 0 8, 8 8, 8 10, -10 10, -10 0, 0 0))'); +# +CALL p1(-1, 'MultiPoint(9 9,8 1,1 5)'); +CALL p1(-1, 'MultiLineString((0 0,2 2))'); +CALL p1(-1, 'MultiLineString((0 0,2 2,0 4))'); +CALL p1(-1, 'MultiLineString((0 0,2 2),(0 2,2 0))'); +CALL p1(-1, 'MultiLineString((2 2,2 8,-2 8),(-6 -6, 6 6),(10 10, 14 14))'); +# +# Wrong shape +#CALL p1(-1, 'MultiPolygon(((2 2,2 8,8 8,8 2,2 2)), ((9 9,8 1,1 5,9 9)))'); +#CALL p1(-1, 'MultiPolygon(((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)),((9 9,8 1,1 5,9 9)))'); +# +CALL p1(-1, 'GeometryCollection(Point(0 0))'); +CALL p1(-1, 'GeometryCollection(LineString(0 0, 2 2)))'); +CALL p1(-1, 'GeometryCollection(Polygon((2 2,2 8,8 8,8 2,2 2))))'); +CALL p1(-1, 'GeometryCollection(MultiPoint(9 9,8 1,1 5))'); +CALL p1(-1, 'GeometryCollection(MultiLineString((0 0,0 1),(3 0,3 1)))'); +# +# Wrong shape +# CALL p1(-1, 'GeometryCollection(MultiPolygon(((0 0, 3 0, 3 3, 0 3, 0 0)),((6 6,6 9,9 9,9 6,6 6))))'); +# +CALL p1(-1, 'GeometryCollection(Point(9 9),LineString(1 5,0 0),Polygon((2 2,2 8,8 8,8 2,2 2)))'); + + +--enable_query_log + +#enable after fix MDEV-27871 +--disable_view_protocol +SELECT ST_CONTAINS( + GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'), + GeomFromText('POINT(5 10)')); +SELECT AsText(ST_UNION( + GeomFromText('MULTIPOLYGON(((0 0, 0 5, 5 5, 5 0, 0 0)),((6 6, 6 11, 11 11, 11 6, 6 6)))'), + GeomFromText('POINT(5 10)'))); + +DROP PROCEDURE p1; + +--echo # +--echo # Bug #13833019 ASSERTION `T1->RESULT_RANGE' FAILED IN GCALC_OPERATION_REDUCER::END_COUPLE +--echo # +SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((0 0,9 4,3 3,0 0)),((2 2,2 2,8 8,2 3,2 2)))'), 3)); + +--echo # +--echo # Bug #13832749 HANDLE_FATAL_SIGNAL IN GCALC_FUNCTION::COUNT_INTERNAL +--echo # +SELECT GeometryType(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2), (4 4,4 6,6 6,6 4,4 4)), ((9 9,8 1,1 5,9 9)))'),1)); + +--enable_view_protocol + +--echo # +--echo # Bug#13358363 - ASSERTION: N > 0 && N < SINUSES_CALCULATED*2+1 | GET_N_SINCOS/ADD_EDGE_BUFFER +--echo # + +DO ST_BUFFER(ST_GEOMCOLLFROMTEXT('linestring(1 1,2 2)'),''); + +#enable after fix MDEV-27871 +--disable_view_protocol + +SELECT ST_WITHIN( + LINESTRINGFROMTEXT(' LINESTRING(3 8,9 2,3 8,3 3,7 6,4 7,4 7,8 1) '), + ST_BUFFER(MULTIPOLYGONFROMTEXT(' MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5)),((2 2,2 8,8 8,8 2,2 2),(4 4,4 6,6 6,6 4,4 4)),((0 5,3 5,3 2,1 2,1 1,3 1,3 0,0 0,0 3,2 3,2 4,0 4,0 5))) '), + ST_NUMINTERIORRINGS(POLYGONFROMTEXT('POLYGON((3 5,2 4,2 5,3 5)) ')))); + +SELECT ST_DIMENSION(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((3 5,2 5,2 4,3 4,3 5)) '), + ST_NUMINTERIORRINGS(POLYGONFROMTEXT(' POLYGON((0 0,9 3,4 2,0 0))')))); + +SELECT ST_NUMINTERIORRINGS( + ST_ENVELOPE(ST_BUFFER(MULTIPOLYGONFROMTEXT('MULTIPOLYGON(((3 5,2 5,2 4,3 4,3 5))) '), + SRID(MULTILINESTRINGFROMTEXT('MULTILINESTRING((2 2,4 2,1 2,2 4,2 2)) '))))); + +SELECT ASTEXT(ST_BUFFER(POLYGONFROMTEXT(' POLYGON((9 9,5 2,4 5,9 9))'), + SRID(GEOMETRYFROMTEXT(' MULTIPOINT(8 4,5 0,7 8,6 9,3 4,7 3,5 5) ')))); + +--enable_view_protocol diff --git a/mysql-test/include/gis_generic.inc b/mysql-test/include/gis_generic.inc new file mode 100644 index 00000000..c693b86b --- /dev/null +++ b/mysql-test/include/gis_generic.inc @@ -0,0 +1,263 @@ +--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 PRIMARY KEY AUTO_INCREMENT, g POINT); +CREATE TABLE gis_line (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g LINESTRING); +CREATE TABLE gis_polygon (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g POLYGON); +CREATE TABLE gis_multi_point (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTIPOINT); +CREATE TABLE gis_multi_line (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTILINESTRING); +CREATE TABLE gis_multi_polygon (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g MULTIPOLYGON); +CREATE TABLE gis_geometrycollection (fid INTEGER PRIMARY KEY AUTO_INCREMENT, g GEOMETRYCOLLECTION); +CREATE TABLE gis_geometry (fid INTEGER PRIMARY KEY AUTO_INCREMENT, 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; + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE gis_point; +ANALYZE TABLE gis_line; +ANALYZE TABLE gis_polygon; +ANALYZE TABLE gis_multi_point; +ANALYZE TABLE gis_multi_line; +ANALYZE TABLE gis_multi_polygon; +ANALYZE TABLE gis_geometrycollection; +ANALYZE TABLE gis_geometry; +-- enable_result_log +-- enable_query_log + +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 ( + a INTEGER PRIMARY KEY AUTO_INCREMENT, + 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 (pk integer primary key auto_increment, a geometry not null); +insert into t1 (a) values (GeomFromText('Point(1 2)')); +-- error 1416 +insert into t1 (a) values ('Garbage'); +-- error 1416 +insert IGNORE into t1 (a) values ('Garbage'); + +drop table t1; + +create table t1 (pk integer primary key auto_increment, fl geometry not null); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +insert into t1 (fl) values (1); +--error ER_ILLEGAL_PARAMETER_DATA_TYPES2_FOR_OPERATION +insert into t1 (fl) values (1.11); +--error 1416 +insert into t1 (fl) values ("qwerty"); +--error 1048 +insert into t1 (fl) 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 intersects 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 00000000..388c7b45 --- /dev/null +++ b/mysql-test/include/gis_keys.inc @@ -0,0 +1,63 @@ +--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(3 4)')); +INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(3 4)')); +EXPLAIN +SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)'); +SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)'); + +--replace_column 9 # +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 + + +--echo # +--echo # Test for bug #58650 "Failing assertion: primary_key_no == -1 || +--echo # primary_key_no == 0". +--echo # +--disable_warnings +drop table if exists t1; +--enable_warnings +--echo # The minimal test case. +create table t1 (a int not null, b linestring not null, unique key b (b(12)), unique key a (a)); +drop table t1; +--echo # The original test case. +create table t1 (a int not null, b linestring not null, unique key b (b(12))); +create unique index a on t1(a); +drop table t1; diff --git a/mysql-test/include/grant_cache.inc b/mysql-test/include/grant_cache.inc new file mode 100644 index 00000000..2d4e8345 --- /dev/null +++ b/mysql-test/include/grant_cache.inc @@ -0,0 +1,228 @@ +################### include/grant_cache.inc #################### +# +# Test grants with query cache +# +# Last update: +# 2007-05-03 ML - Move t/grant_cache.test to include/grant_cache.inc +# - Remove the disabling of the ps-protocol +# - minor improvements like error names instead of numbers +# - Create two toplevel tests sourcing this routine +# +# Running this test with and without "--ps-protocol" produces different +# Qcache_not_cached results because of the following reason: +# In normal protocol, a SELECT failing due to insufficient privileges +# increments Qcache_not_cached, while in ps-protocol, no. +# In detail: +# - In normal protocol, +# the "access denied" errors on SELECT are issued at (stack trace): +# mysql_parse/mysql_execute_command/execute_sqlcom_select/handle_select/ +# mysql_select/JOIN::prepare/setup_wild/insert_fields/ +# check_grant_all_columns/my_error/my_message_sql, which then calls +# push_warning/query_cache_abort: at this moment, +# query_cache_store_query() has been called, so query exists in cache, +# so thd->net.query_cache_query!=NULL, so query_cache_abort() removes +# the query from cache, which causes a query_cache.refused++ (thus, +# a Qcache_not_cached++). +# - In ps-protocol, +# the error is issued at prepare time; +# for this mysql_test_select() is called, not execute_sqlcom_select() +# (and that also leads to JOIN::prepare/etc). Thus, as +# query_cache_store_query() has not been called, +# thd->net.query_cache_query==NULL, so query_cache_abort() does nothing: +# Qcache_not_cached is not incremented. +# +# A run of this tests with sp/cursor/view protocol does not make sense +# because these protocols serve totally different purposes than this test. +# + +--source include/add_anonymous_users.inc + +set @save_query_cache_size=@@global.query_cache_size; +set @save_sql_mode=@@global.sql_mode; +set @save_query_cache_type=@@global.query_cache_type; + +set GLOBAL sql_mode=""; +set LOCAL sql_mode=""; + +# +--disable_warnings +drop table if exists test.t1,mysqltest.t1,mysqltest.t2; +drop database if exists mysqltest; +--enable_warnings + +set GLOBAL query_cache_type=ON; +set LOCAL query_cache_type=ON; +set GLOBAL query_cache_size=1355776; + +--disable_ps2_protocol + +reset query cache; +flush status; +connect (root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK); +connection root; +show grants for current_user; +show grants; +--disable_warnings +create database if not exists mysqltest; +--enable_warnings + +create table mysqltest.t1 (a int,b int,c int); +create table mysqltest.t2 (a int,b int,c int); +insert into mysqltest.t1 values (1,1,1),(2,2,2); +insert into mysqltest.t2 values (3,3,3); +create table test.t1 (a char (10)); +insert into test.t1 values ("test.t1"); +select * from t1; +connect (root2,localhost,root,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK); +connection root2; +# put queries in cache +select * from t1; +select a from t1; +select c from t1; +select * from t2; +select * from mysqltest.t1,test.t1; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits%"; + +# Create the test users +grant SELECT on mysqltest.* to mysqltest_1@localhost; +grant SELECT on test.t1 to mysqltest_1@localhost; +grant SELECT on mysqltest.t1 to mysqltest_2@localhost; +grant SELECT on test.t1 to mysqltest_2@localhost; +grant SELECT(a) on mysqltest.t1 to mysqltest_3@localhost; +grant SELECT(a) on test.t1 to mysqltest_3@localhost; + +# The following queries should be fetched from cache +connect (user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK); +connection user1; +show grants for current_user(); +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +show status like "Qcache_not_cached"; +select "user1"; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +show status like "Qcache_not_cached"; +select * from t1; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +show status like "Qcache_not_cached"; +# The pre and end space are intentional + select a from t1 ; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +show status like "Qcache_not_cached"; +select c from t1; +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,,"*NO-ONE*",$MASTER_MYPORT,$MASTER_MYSOCK); +connection unkuser; +show grants for current_user(); + +# The following queries should be fetched from cache +connect (user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK); +connection user2; +select "user2"; +select * from t1; +select a from t1; +select c from t1; +select * from mysqltest.t1,test.t1; +--replace_result 127.0.0.1 localhost +--error ER_TABLEACCESS_DENIED_ERROR +select * from t2; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +show status like "Qcache_not_cached"; + +# The following queries should not be fetched from cache +connect (user3,localhost,mysqltest_3,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK); +connection user3; +select "user3"; +--replace_result 127.0.0.1 localhost +--error ER_TABLEACCESS_DENIED_ERROR +select * from t1; +select a from t1; +--replace_result 127.0.0.1 localhost +--error ER_COLUMNACCESS_DENIED_ERROR +select c from t1; +--replace_result 127.0.0.1 localhost +--error ER_TABLEACCESS_DENIED_ERROR +select * from t2; +--replace_result 127.0.0.1 localhost +--error ER_COLUMNACCESS_DENIED_ERROR +select mysqltest.t1.c from test.t1,mysqltest.t1; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +show status like "Qcache_not_cached"; + +# Connect without a database +connect (user4,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,$MASTER_MYSOCK); +connection user4; +select "user4"; +show grants; +--error ER_NO_DB_ERROR +select a from t1; +# The following query is not cached before (different database) +select * from mysqltest.t1,test.t1; +# Cache a query with 'no database' +select a from mysqltest.t1; +select a from mysqltest.t1; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +show status like "Qcache_not_cached"; + +--enable_ps2_protocol + +# Cleanup + +connection root; +disconnect root; +--source include/wait_until_disconnected.inc +connection root2; +disconnect root2; +--source include/wait_until_disconnected.inc +connection user1; +disconnect user1; +--source include/wait_until_disconnected.inc +connection user2; +disconnect user2; +--source include/wait_until_disconnected.inc +connection user3; +disconnect user3; +--source include/wait_until_disconnected.inc +connection user4; +disconnect user4; +--source include/wait_until_disconnected.inc +connection unkuser; +disconnect unkuser; +--source include/wait_until_disconnected.inc +connection default; + +# +# A temporary 4.1 workaround to make this test pass if +# mysql was compiled with other than latin1 --with-charset=XXX. +# Without "set names binary" the below queries fail with +# "Illegal mix of collations" error. +# In 5.0 we will change grant tables to use NCHAR(N) instead +# of "CHAR(N) BINARY", and use cast-to-nchar: N'mysqltest_1'. +# +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"); +delete from mysql.tables_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3"); +delete from mysql.columns_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3"); +flush privileges; +drop table test.t1,mysqltest.t1,mysqltest.t2; +drop database mysqltest; + +set GLOBAL query_cache_type=ON; +set LOCAL query_cache_type=ON; + +--source include/delete_anonymous_users.inc +set GLOBAL query_cache_size=@save_query_cache_size; +set GLOBAL sql_mode=@save_sql_mode; +set GLOBAL query_cache_type=@save_query_cache_type; diff --git a/mysql-test/include/grep.inc b/mysql-test/include/grep.inc new file mode 100644 index 00000000..9ce7cddb --- /dev/null +++ b/mysql-test/include/grep.inc @@ -0,0 +1,16 @@ +# Grep file for regular expression and output to STDOUT +# +# Usage: +# --let $grep_file= /path/to/your/file +# --let $grep_regex= your_regex_string +# --source include/grep.inc + +--perl + open (my $fh, "<", "$ENV{grep_file}") or die $!; + while (<$fh>) + { + /$ENV{grep_regex}/ && + print; + } + close $fh; +EOF diff --git a/mysql-test/include/have_32bit.inc b/mysql-test/include/have_32bit.inc new file mode 100644 index 00000000..d62093d8 --- /dev/null +++ b/mysql-test/include/have_32bit.inc @@ -0,0 +1,9 @@ +disable_query_log; +disable_warnings; +let $VERSION_COMPILE_64BIT= + `SELECT IF(@@version_compile_machine like '%64%', 1, 0)`; +enable_warnings; +enable_query_log; +if ($VERSION_COMPILE_64BIT) { + skip Need a 32 bit machine/binary; +} diff --git a/mysql-test/include/have_64bit.inc b/mysql-test/include/have_64bit.inc new file mode 100644 index 00000000..38c11156 --- /dev/null +++ b/mysql-test/include/have_64bit.inc @@ -0,0 +1,9 @@ +disable_query_log; +disable_warnings; +let $VERSION_COMPILE_64BIT= + `SELECT IF(@@version_compile_machine like '%64%', 1, 0)`; +enable_warnings; +enable_query_log; +if (!$VERSION_COMPILE_64BIT) { + skip Need a 64 bit machine/binary; +} diff --git a/mysql-test/include/have_archive.inc b/mysql-test/include/have_archive.inc new file mode 100644 index 00000000..0fd85fa5 --- /dev/null +++ b/mysql-test/include/have_archive.inc @@ -0,0 +1,5 @@ +if (!`SELECT count(*) FROM information_schema.engines WHERE + (support = 'YES' OR support = 'DEFAULT') AND + engine = 'archive'`){ + skip Need archive engine; +} diff --git a/mysql-test/include/have_archive.opt b/mysql-test/include/have_archive.opt new file mode 100644 index 00000000..39da455d --- /dev/null +++ b/mysql-test/include/have_archive.opt @@ -0,0 +1,2 @@ +--loose-archive +--plugin-load-add=$HA_ARCHIVE_SO diff --git a/mysql-test/include/have_aria.inc b/mysql-test/include/have_aria.inc new file mode 100644 index 00000000..18f2b4b0 --- /dev/null +++ b/mysql-test/include/have_aria.inc @@ -0,0 +1,4 @@ +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'aria' AND support IN ('YES', 'DEFAULT', 'ENABLED')`) +{ + --skip Test requires Aria +} diff --git a/mysql-test/include/have_aria_used_for_temp_tables.inc b/mysql-test/include/have_aria_used_for_temp_tables.inc new file mode 100644 index 00000000..c921ba91 --- /dev/null +++ b/mysql-test/include/have_aria_used_for_temp_tables.inc @@ -0,0 +1,4 @@ +if (!`SELECT @@aria_used_for_temp_tables`) +{ + skip Need Aria to be used for temporary tables; +} diff --git a/mysql-test/include/have_auth_named_pipe.inc b/mysql-test/include/have_auth_named_pipe.inc new file mode 100644 index 00000000..4f4bf37f --- /dev/null +++ b/mysql-test/include/have_auth_named_pipe.inc @@ -0,0 +1,13 @@ +--source include/not_embedded.inc + +if (!$AUTH_NAMED_PIPE_SO) { + skip No auth_named_pipe plugin; +} + +if (!$USERNAME) { + skip USER variable is undefined; +} + +if (`SELECT count(*) <> 0 FROM mysql.user WHERE user = '$USERNAME'`) { + skip %USERNAME%=$USER which exists in mysql.user; +} diff --git a/mysql-test/include/have_big5.inc b/mysql-test/include/have_big5.inc new file mode 100644 index 00000000..d6ef1202 --- /dev/null +++ b/mysql-test/include/have_big5.inc @@ -0,0 +1,2 @@ +let collation=big5_chinese_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_binlog_checksum_off.inc b/mysql-test/include/have_binlog_checksum_off.inc new file mode 100644 index 00000000..c7c444c8 --- /dev/null +++ b/mysql-test/include/have_binlog_checksum_off.inc @@ -0,0 +1,4 @@ +if (`select variable_value not like 'NONE' from information_schema.GLOBAL_VARIABLES + where variable_name='binlog_checksum'`){ + skip Can not run the test when server activated checksumming; +} diff --git a/mysql-test/include/have_binlog_format_mixed.inc b/mysql-test/include/have_binlog_format_mixed.inc new file mode 100644 index 00000000..b061e055 --- /dev/null +++ b/mysql-test/include/have_binlog_format_mixed.inc @@ -0,0 +1,6 @@ +--source include/have_log_bin.inc + +if (`SELECT @@binlog_format != 'MIXED'`) +{ + --skip Not MIXED format +} diff --git a/mysql-test/include/have_binlog_format_mixed.opt b/mysql-test/include/have_binlog_format_mixed.opt new file mode 100644 index 00000000..01cf3e05 --- /dev/null +++ b/mysql-test/include/have_binlog_format_mixed.opt @@ -0,0 +1 @@ +--binlog-format=mixed diff --git a/mysql-test/include/have_binlog_format_mixed_or_row.inc b/mysql-test/include/have_binlog_format_mixed_or_row.inc new file mode 100644 index 00000000..c6c5284e --- /dev/null +++ b/mysql-test/include/have_binlog_format_mixed_or_row.inc @@ -0,0 +1,6 @@ +--source include/have_log_bin.inc + +if (`SELECT @@binlog_format = 'STATEMENT'`) +{ + --skip Neither MIXED nor ROW binlog format +} diff --git a/mysql-test/include/have_binlog_format_mixed_or_statement.inc b/mysql-test/include/have_binlog_format_mixed_or_statement.inc new file mode 100644 index 00000000..3888dd4b --- /dev/null +++ b/mysql-test/include/have_binlog_format_mixed_or_statement.inc @@ -0,0 +1,7 @@ +source include/have_log_bin.inc; + + +if (`SELECT @@binlog_format = 'ROW'`) +{ + --skip Neither MIXED nor STATEMENT binlog format +} diff --git a/mysql-test/include/have_binlog_format_row.inc b/mysql-test/include/have_binlog_format_row.inc new file mode 100644 index 00000000..a946ccd6 --- /dev/null +++ b/mysql-test/include/have_binlog_format_row.inc @@ -0,0 +1,6 @@ +--source include/have_log_bin.inc + +if (`SELECT @@binlog_format != 'ROW'`) +{ + --skip Not ROW format +} diff --git a/mysql-test/include/have_binlog_format_row.opt b/mysql-test/include/have_binlog_format_row.opt new file mode 100644 index 00000000..83ed8522 --- /dev/null +++ b/mysql-test/include/have_binlog_format_row.opt @@ -0,0 +1 @@ +--binlog-format=row diff --git a/mysql-test/include/have_binlog_format_row_or_statement.inc b/mysql-test/include/have_binlog_format_row_or_statement.inc new file mode 100644 index 00000000..6ea0ecd6 --- /dev/null +++ b/mysql-test/include/have_binlog_format_row_or_statement.inc @@ -0,0 +1,8 @@ +source include/have_log_bin.inc; + + +if (`SELECT @@binlog_format = 'MIXED'`) +{ + --skip Neither ROW nor STATEMENT binlog format +} + diff --git a/mysql-test/include/have_binlog_format_statement.inc b/mysql-test/include/have_binlog_format_statement.inc new file mode 100644 index 00000000..7253b0c7 --- /dev/null +++ b/mysql-test/include/have_binlog_format_statement.inc @@ -0,0 +1,6 @@ +--source include/have_log_bin.inc + +if (`SELECT @@binlog_format != 'STATEMENT'`) +{ + --skip Not STATEMENT format +} diff --git a/mysql-test/include/have_binlog_format_statement.opt b/mysql-test/include/have_binlog_format_statement.opt new file mode 100644 index 00000000..0dac5e9f --- /dev/null +++ b/mysql-test/include/have_binlog_format_statement.opt @@ -0,0 +1,2 @@ +--binlog-format=statement + diff --git a/mysql-test/include/have_blackhole.inc b/mysql-test/include/have_blackhole.inc new file mode 100644 index 00000000..146f5afb --- /dev/null +++ b/mysql-test/include/have_blackhole.inc @@ -0,0 +1,5 @@ +if (!`SELECT count(*) FROM information_schema.engines WHERE + (support = 'YES' OR support = 'DEFAULT') AND + engine = 'blackhole'`){ + skip Need blackhole engine; +} diff --git a/mysql-test/include/have_blackhole.opt b/mysql-test/include/have_blackhole.opt new file mode 100644 index 00000000..980dc27e --- /dev/null +++ b/mysql-test/include/have_blackhole.opt @@ -0,0 +1,2 @@ +--loose-blackhole +--plugin-load-add=$HA_BLACKHOLE_SO diff --git a/mysql-test/include/have_case_insensitive_file_system.inc b/mysql-test/include/have_case_insensitive_file_system.inc new file mode 100644 index 00000000..1d731ffd --- /dev/null +++ b/mysql-test/include/have_case_insensitive_file_system.inc @@ -0,0 +1,4 @@ +--require include/case_insensitive_file_system.require +--disable_query_log +show variables like "lower_case_file_system"; +--enable_query_log diff --git a/mysql-test/include/have_case_insensitive_fs.inc b/mysql-test/include/have_case_insensitive_fs.inc new file mode 100644 index 00000000..16474842 --- /dev/null +++ b/mysql-test/include/have_case_insensitive_fs.inc @@ -0,0 +1,4 @@ +--require include/case_insensitive_fs.require +--disable_query_log +show variables like 'lower_case_file_system'; +--enable_query_log diff --git a/mysql-test/include/have_case_sensitive_file_system.inc b/mysql-test/include/have_case_sensitive_file_system.inc new file mode 100644 index 00000000..c4df83d3 --- /dev/null +++ b/mysql-test/include/have_case_sensitive_file_system.inc @@ -0,0 +1,4 @@ +--require include/case_sensitive_file_system.require +--disable_query_log +show variables like 'lower_case_file_system'; +--enable_query_log diff --git a/mysql-test/include/have_collation.inc b/mysql-test/include/have_collation.inc new file mode 100644 index 00000000..99270fd4 --- /dev/null +++ b/mysql-test/include/have_collation.inc @@ -0,0 +1,3 @@ +if (!`SELECT count(*) AS 'true' FROM information_schema.collations WHERE collation_name LIKE '$collation'`) { + skip Test needs character set '$collation'; +} diff --git a/mysql-test/include/have_compress.inc b/mysql-test/include/have_compress.inc new file mode 100644 index 00000000..d99c1021 --- /dev/null +++ b/mysql-test/include/have_compress.inc @@ -0,0 +1,4 @@ +-- require include/have_compress.require +disable_query_log; +show variables like 'have_compress'; +enable_query_log; diff --git a/mysql-test/include/have_compress.require b/mysql-test/include/have_compress.require new file mode 100644 index 00000000..8bda2190 --- /dev/null +++ b/mysql-test/include/have_compress.require @@ -0,0 +1,2 @@ +Variable_name Value +have_compress YES diff --git a/mysql-test/include/have_cp1250_ch.inc b/mysql-test/include/have_cp1250_ch.inc new file mode 100644 index 00000000..93fde6e9 --- /dev/null +++ b/mysql-test/include/have_cp1250_ch.inc @@ -0,0 +1,2 @@ +let collation=cp1250_czech_cs; +--source include/have_collation.inc diff --git a/mysql-test/include/have_cp1251.inc b/mysql-test/include/have_cp1251.inc new file mode 100644 index 00000000..32e9e722 --- /dev/null +++ b/mysql-test/include/have_cp1251.inc @@ -0,0 +1,2 @@ +let collation=cp1251_general_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_cp866.inc b/mysql-test/include/have_cp866.inc new file mode 100644 index 00000000..549ea22a --- /dev/null +++ b/mysql-test/include/have_cp866.inc @@ -0,0 +1,2 @@ +let collation=cp866_general_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_cp932.inc b/mysql-test/include/have_cp932.inc new file mode 100644 index 00000000..6e436b8b --- /dev/null +++ b/mysql-test/include/have_cp932.inc @@ -0,0 +1,2 @@ +let collation=cp932_japanese_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_crypt.inc b/mysql-test/include/have_crypt.inc new file mode 100644 index 00000000..ae941219 --- /dev/null +++ b/mysql-test/include/have_crypt.inc @@ -0,0 +1,7 @@ +# MDEV-27964 The function ENCRYPT() causes SIGSEGV in WITH_MSAN builds +-- source include/not_msan.inc +# encrypt('a') is NULL if crypt(3) is not available +# encrypt('a') is "*0" in fips mode +if (`select length(encrypt('a')) > 3 IS NOT TRUE`) { + skip No crypt(3); +} diff --git a/mysql-test/include/have_csv.inc b/mysql-test/include/have_csv.inc new file mode 100644 index 00000000..fef2d6fa --- /dev/null +++ b/mysql-test/include/have_csv.inc @@ -0,0 +1,6 @@ +-- source include/no_view_protocol.inc + +disable_query_log; +--require include/true.require +select (support = 'YES' or support = 'DEFAULT') as `TRUE` from information_schema.engines where engine = 'csv'; +enable_query_log; diff --git a/mysql-test/include/have_dbi_dbd-mariadb.inc b/mysql-test/include/have_dbi_dbd-mariadb.inc new file mode 100644 index 00000000..1495d289 --- /dev/null +++ b/mysql-test/include/have_dbi_dbd-mariadb.inc @@ -0,0 +1,76 @@ +# +# Originally created by John Embretsen, 2011-01-26. +# +# Checks for the existence of Perl modules DBI and DBD::MariaDB as seen from the +# perl installation used by "external" executable perl scripts, i.e. scripts +# that are executed as standalone scripts interpreted by the perl installation +# specified by the "shebang" line in the top of these scripts. +# +# If either module is not found, the test will be skipped. +# +# For use in tests that call perl scripts that require these modules. +# +# This file is intended to work on Unix. Windows may need different treatment. +# Reasoning: +# - "shebangs" are not relevant on Windows, but need to be handled here. +# - Perl scripts cannot be made executable on Windows, interpreter must be +# specified. +# +# Note that if there are multiple perl installations and not all have the +# required modules, this check may fail even if the perl in path does have +# the modules available. This may happen if the perl specified by the script's +# shebang (e.g. #!/usr/bin/perl) does not have these modules, and script is +# called without specifying the perl interpreter. However, this will be +# a correct result in cases where a test calls a script with a similar shebang. +# +################################################################################ + +--source include/not_windows.inc + +# We jump through some hoops since there is no direct way to check if an +# external command went OK or not from a mysql-test file: +# +# - In theory, we could do as simple as "exec perl -MDBI -MDBD::MariaDB -e 1", +# however we cannot check the result (exit code) from within a test script. +# Also, this may not yield the same result as other uses of perl due to the +# shebang issue mentioned above. +# - Instead we use a separate helper perl script that checks for the modules. +# - If the modules are found, the perl script leaves a file which sets a +# variable that can be read by this file. +# If the modules are not found, the perl script does not set this variable, +# but leaves an empty file instead. +# +# This is done because there is apparently no direct way to transfer +# information from perl to the test script itself. + +--disable_query_log +--disable_result_log +--disable_warnings + +# We do not use embedded perl in this script because that would not have yielded +# correct results for a situation where an external Perl script is called like +# "scriptname" instead of "perl scriptname" and the shebang in the script points +# to a specific perl that may be different than the perl in PATH. +# +# Instead, we call a separate helper script which checks for the modules in its +# own environment. We call it without "perl" in front. + +--let $perlChecker= $MYSQLTEST_VARDIR/std_data/checkDBI_DBD-MariaDB.pl +--let $resultFile= $MYSQL_TMP_DIR/dbiDBD-MariaDB.txt + +--exec perl $perlChecker + +# Source the resulting temporary file and look for a variable being set. +--source $resultFile + +if (!$dbidbd) { + --skip Test needs Perl modules DBI and DBD::MariaDB +} + +# Clean up +--remove_file $resultFile + +--enable_query_log +--enable_result_log +--enable_warnings + diff --git a/mysql-test/include/have_debug.inc b/mysql-test/include/have_debug.inc new file mode 100644 index 00000000..a035031e --- /dev/null +++ b/mysql-test/include/have_debug.inc @@ -0,0 +1,4 @@ +# +# suite.pm will make sure that all tests including this file +# will be skipped unless this is a debug build. +# diff --git a/mysql-test/include/have_debug_sync.inc b/mysql-test/include/have_debug_sync.inc new file mode 100644 index 00000000..dbe6dfdd --- /dev/null +++ b/mysql-test/include/have_debug_sync.inc @@ -0,0 +1,4 @@ +if (`select count(*) = 0 from information_schema.session_variables where variable_name = 'debug_sync' and variable_value like 'on %'`) +{ + skip debug_sync is not available; +} diff --git a/mysql-test/include/have_des.inc b/mysql-test/include/have_des.inc new file mode 100644 index 00000000..5abdaf6e --- /dev/null +++ b/mysql-test/include/have_des.inc @@ -0,0 +1,6 @@ +# in the FIPS mode, OpenSSL disables DES and other weak algorithms +source include/have_ssl_crypto_functs.inc; + +if (`select des_encrypt("a", "b") IS NULL`) { + skip DES is disabled (fips mode?); +} diff --git a/mysql-test/include/have_eucjpms.inc b/mysql-test/include/have_eucjpms.inc new file mode 100644 index 00000000..c38af529 --- /dev/null +++ b/mysql-test/include/have_eucjpms.inc @@ -0,0 +1,2 @@ +let collation=eucjpms_japanese_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_euckr.inc b/mysql-test/include/have_euckr.inc new file mode 100644 index 00000000..4da1a836 --- /dev/null +++ b/mysql-test/include/have_euckr.inc @@ -0,0 +1,2 @@ +let collation=euckr_korean_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_example_plugin.inc b/mysql-test/include/have_example_plugin.inc new file mode 100644 index 00000000..c0da490d --- /dev/null +++ b/mysql-test/include/have_example_plugin.inc @@ -0,0 +1,4 @@ +# +# suite.pm will make sure that all tests including this file +# will be skipped unless dynamic ha_example plugin is available +# diff --git a/mysql-test/include/have_file_key_management.inc b/mysql-test/include/have_file_key_management.inc new file mode 100644 index 00000000..68ef49a4 --- /dev/null +++ b/mysql-test/include/have_file_key_management.inc @@ -0,0 +1,10 @@ +if (`SELECT COUNT(*)=0 FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'file_key_management' AND PLUGIN_STATUS='ACTIVE'`) +{ + --skip Test requires file_key_management plugin +} + +# +# This file is only included when using encryption. As all encryption test are +# very slow with valgrind, lets disable these if not run with --big +# +--source include/no_valgrind_without_big.inc diff --git a/mysql-test/include/have_gb2312.inc b/mysql-test/include/have_gb2312.inc new file mode 100644 index 00000000..6a9a0588 --- /dev/null +++ b/mysql-test/include/have_gb2312.inc @@ -0,0 +1,2 @@ +let collation=gb2312_chinese_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_gbk.inc b/mysql-test/include/have_gbk.inc new file mode 100644 index 00000000..b8177aa6 --- /dev/null +++ b/mysql-test/include/have_gbk.inc @@ -0,0 +1,2 @@ +let collation=gbk_chinese_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_geometry.inc b/mysql-test/include/have_geometry.inc new file mode 100644 index 00000000..ff07eaf3 --- /dev/null +++ b/mysql-test/include/have_geometry.inc @@ -0,0 +1,4 @@ +--require include/have_geometry.require +--disable_query_log +show variables like 'have_geometry'; +--enable_query_log diff --git a/mysql-test/include/have_geometry.require b/mysql-test/include/have_geometry.require new file mode 100644 index 00000000..ba515a4b --- /dev/null +++ b/mysql-test/include/have_geometry.require @@ -0,0 +1,2 @@ +Variable_name Value +have_geometry YES diff --git a/mysql-test/include/have_gzip.inc b/mysql-test/include/have_gzip.inc new file mode 100644 index 00000000..09f282b7 --- /dev/null +++ b/mysql-test/include/have_gzip.inc @@ -0,0 +1,6 @@ +--error 0,1,127 +--exec gzip --version > /dev/null 2> /dev/null +if ($sys_errno) +{ + --skip Requires gzip executable +} diff --git a/mysql-test/include/have_hostname_cache.inc b/mysql-test/include/have_hostname_cache.inc new file mode 100644 index 00000000..b6c7c6bd --- /dev/null +++ b/mysql-test/include/have_hostname_cache.inc @@ -0,0 +1,6 @@ +# Ensure that host_cache is enabled + +if (`SELECT @@skip_name_resolve != "OFF"`) +{ + skip No hostname_cache; +} diff --git a/mysql-test/include/have_innodb.combinations b/mysql-test/include/have_innodb.combinations new file mode 100644 index 00000000..f1131c44 --- /dev/null +++ b/mysql-test/include/have_innodb.combinations @@ -0,0 +1,39 @@ +[innodb_plugin] +ignore-builtin-innodb +plugin-load-add=$HA_INNODB_SO +innodb +innodb-cmpmem +innodb-cmp-per-index +innodb-trx +innodb-locks +innodb-lock-waits +innodb-buffer-pool-stats +innodb-buffer-page +innodb-buffer-page-lru +innodb-sys-columns +innodb-sys-fields +innodb-sys-foreign +innodb-sys-foreign-cols +innodb-sys-indexes +innodb-sys-tables +innodb-sys-virtual +innodb-metrics + +[innodb] +innodb +innodb-cmpmem +innodb-cmp-per-index +innodb-trx +innodb-locks +innodb-lock-waits +innodb-metrics +innodb-buffer-pool-stats +innodb-buffer-page +innodb-buffer-page-lru +innodb-sys-columns +innodb-sys-fields +innodb-sys-foreign +innodb-sys-foreign-cols +innodb-sys-indexes +innodb-sys-tables +innodb-sys-virtual diff --git a/mysql-test/include/have_innodb.inc b/mysql-test/include/have_innodb.inc new file mode 100644 index 00000000..8c9cdb54 --- /dev/null +++ b/mysql-test/include/have_innodb.inc @@ -0,0 +1,16 @@ +# +# suite.pm will make sure that all tests including this file +# will be skipped unless innodb is enabled +# +--disable_query_log +if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like 'MSAN%'`) +{ +SET STATEMENT sql_log_bin=0 FOR +call mtr.add_suppression("InnoDB: Trying to delete tablespace.*pending operations"); +} +if ($VALGRIND_TEST) +{ +SET STATEMENT sql_log_bin=0 FOR +call mtr.add_suppression("InnoDB: Trying to delete tablespace.*pending operations"); +} +--enable_query_log diff --git a/mysql-test/include/have_innodb_16k.inc b/mysql-test/include/have_innodb_16k.inc new file mode 100644 index 00000000..f0198ca5 --- /dev/null +++ b/mysql-test/include/have_innodb_16k.inc @@ -0,0 +1,4 @@ +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value = 16384`) +{ + --skip Test requires InnoDB with 16k Page size. +} diff --git a/mysql-test/include/have_innodb_16k.opt b/mysql-test/include/have_innodb_16k.opt new file mode 100644 index 00000000..2ece0f02 --- /dev/null +++ b/mysql-test/include/have_innodb_16k.opt @@ -0,0 +1 @@ +--innodb-page-size=16k diff --git a/mysql-test/include/have_innodb_32k.inc b/mysql-test/include/have_innodb_32k.inc new file mode 100644 index 00000000..4f7f5454 --- /dev/null +++ b/mysql-test/include/have_innodb_32k.inc @@ -0,0 +1,4 @@ +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value = 32768`) +{ + --skip Test requires InnoDB with 32k page size. +} diff --git a/mysql-test/include/have_innodb_32k.opt b/mysql-test/include/have_innodb_32k.opt new file mode 100644 index 00000000..cabc8fc7 --- /dev/null +++ b/mysql-test/include/have_innodb_32k.opt @@ -0,0 +1 @@ +--innodb-page-size=32k diff --git a/mysql-test/include/have_innodb_4k.inc b/mysql-test/include/have_innodb_4k.inc new file mode 100644 index 00000000..f51b8bf6 --- /dev/null +++ b/mysql-test/include/have_innodb_4k.inc @@ -0,0 +1,6 @@ +--disable_warnings +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value = 4096`) +{ + --skip Test requires InnoDB with 4k Page size. +} +--enable_warnings diff --git a/mysql-test/include/have_innodb_4k.opt b/mysql-test/include/have_innodb_4k.opt new file mode 100644 index 00000000..e5b58602 --- /dev/null +++ b/mysql-test/include/have_innodb_4k.opt @@ -0,0 +1 @@ +--innodb-page-size=4k diff --git a/mysql-test/include/have_innodb_64k.inc b/mysql-test/include/have_innodb_64k.inc new file mode 100644 index 00000000..6f0fadc2 --- /dev/null +++ b/mysql-test/include/have_innodb_64k.inc @@ -0,0 +1,4 @@ +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value = 65536`) +{ + --skip Test requires InnoDB with 64k page size. +} diff --git a/mysql-test/include/have_innodb_64k.opt b/mysql-test/include/have_innodb_64k.opt new file mode 100644 index 00000000..c7012380 --- /dev/null +++ b/mysql-test/include/have_innodb_64k.opt @@ -0,0 +1 @@ +--innodb-page-size=64k diff --git a/mysql-test/include/have_innodb_8k.inc b/mysql-test/include/have_innodb_8k.inc new file mode 100644 index 00000000..125a4e4d --- /dev/null +++ b/mysql-test/include/have_innodb_8k.inc @@ -0,0 +1,6 @@ +--disable_warnings +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value = 8192`) +{ + --skip Test requires InnoDB with 8k Page size. +} +--enable_warnings diff --git a/mysql-test/include/have_innodb_8k.opt b/mysql-test/include/have_innodb_8k.opt new file mode 100644 index 00000000..f75efe9a --- /dev/null +++ b/mysql-test/include/have_innodb_8k.opt @@ -0,0 +1 @@ +--innodb-page-size=8k diff --git a/mysql-test/include/have_innodb_max_16k.inc b/mysql-test/include/have_innodb_max_16k.inc new file mode 100644 index 00000000..f8346666 --- /dev/null +++ b/mysql-test/include/have_innodb_max_16k.inc @@ -0,0 +1,4 @@ +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE LOWER(variable_name) = 'innodb_page_size' AND variable_value <= 16384`) +{ + --skip Test requires InnoDB with page size not greater than 16k. +} diff --git a/mysql-test/include/have_ipv4_mapped.inc b/mysql-test/include/have_ipv4_mapped.inc new file mode 100644 index 00000000..d8558040 --- /dev/null +++ b/mysql-test/include/have_ipv4_mapped.inc @@ -0,0 +1,14 @@ +# Check if ipv4 mapped to ipv6 is available. +--disable_query_log +--disable_abort_on_error +connect (checkcon123456789,::FFFF:127.0.0.1,root,,test); +if($mysql_errno) +{ +skip wrong IP; +} +connection default; +disconnect checkcon123456789; +--enable_abort_on_error +--enable_query_log +# end check + diff --git a/mysql-test/include/have_koi8r.inc b/mysql-test/include/have_koi8r.inc new file mode 100644 index 00000000..02647f45 --- /dev/null +++ b/mysql-test/include/have_koi8r.inc @@ -0,0 +1,2 @@ +let collation=koi8r_general_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_latin2_ch.inc b/mysql-test/include/have_latin2_ch.inc new file mode 100644 index 00000000..f1e0d4e2 --- /dev/null +++ b/mysql-test/include/have_latin2_ch.inc @@ -0,0 +1,2 @@ +let collation=latin2_czech_cs; +--source include/have_collation.inc diff --git a/mysql-test/include/have_local_infile.inc b/mysql-test/include/have_local_infile.inc new file mode 100644 index 00000000..e42343e6 --- /dev/null +++ b/mysql-test/include/have_local_infile.inc @@ -0,0 +1,4 @@ +--require include/have_local_infile.require +disable_query_log; +show variables like 'local_infile'; +enable_query_log; diff --git a/mysql-test/include/have_local_infile.require b/mysql-test/include/have_local_infile.require new file mode 100644 index 00000000..124540f7 --- /dev/null +++ b/mysql-test/include/have_local_infile.require @@ -0,0 +1,2 @@ +Variable_name Value +local_infile ON diff --git a/mysql-test/include/have_log_bin-master.opt b/mysql-test/include/have_log_bin-master.opt new file mode 100644 index 00000000..9ce5d80d --- /dev/null +++ b/mysql-test/include/have_log_bin-master.opt @@ -0,0 +1 @@ +--log-bin=master-bin diff --git a/mysql-test/include/have_log_bin-slave.opt b/mysql-test/include/have_log_bin-slave.opt new file mode 100644 index 00000000..92012982 --- /dev/null +++ b/mysql-test/include/have_log_bin-slave.opt @@ -0,0 +1 @@ +--log-bin=slave-bin diff --git a/mysql-test/include/have_log_bin.inc b/mysql-test/include/have_log_bin.inc new file mode 100644 index 00000000..f8733aa7 --- /dev/null +++ b/mysql-test/include/have_log_bin.inc @@ -0,0 +1,14 @@ +# ==== Purpose ==== +# +# Ensure that the server is running with binlogging on +# +# ==== Usage ==== +# +# source include/have_log_bin.inc; + +source include/not_embedded.inc; +-- source include/no_view_protocol.inc + +if (`select not @@log_bin`) { + skip Test requires: 'have_log_bin'; +} diff --git a/mysql-test/include/have_lowercase0.inc b/mysql-test/include/have_lowercase0.inc new file mode 100644 index 00000000..850e3a4c --- /dev/null +++ b/mysql-test/include/have_lowercase0.inc @@ -0,0 +1,4 @@ +--require include/lowercase0.require +--disable_query_log +show variables like "lower_case_table_names"; +--enable_query_log diff --git a/mysql-test/include/have_lowercase1.inc b/mysql-test/include/have_lowercase1.inc new file mode 100644 index 00000000..5be06cf4 --- /dev/null +++ b/mysql-test/include/have_lowercase1.inc @@ -0,0 +1,4 @@ +--require include/lowercase1.require +--disable_query_log +show variables like 'lower_case_table_names'; +--enable_query_log diff --git a/mysql-test/include/have_lowercase2.inc b/mysql-test/include/have_lowercase2.inc new file mode 100644 index 00000000..1816cd89 --- /dev/null +++ b/mysql-test/include/have_lowercase2.inc @@ -0,0 +1,4 @@ +--require include/lowercase2.require +--disable_query_log +show variables like 'lower_case_table_names'; +--enable_query_log diff --git a/mysql-test/include/have_maria.inc b/mysql-test/include/have_maria.inc new file mode 100644 index 00000000..82725beb --- /dev/null +++ b/mysql-test/include/have_maria.inc @@ -0,0 +1,5 @@ +if (!`SELECT count(*) FROM information_schema.engines WHERE + (support = 'YES' OR support = 'DEFAULT') AND + engine = 'aria'`){ + skip Need Aria engine; +} diff --git a/mysql-test/include/have_mariabackup.inc b/mysql-test/include/have_mariabackup.inc new file mode 100644 index 00000000..6c4ad240 --- /dev/null +++ b/mysql-test/include/have_mariabackup.inc @@ -0,0 +1,7 @@ +if (!$XTRABACKUP) { + skip Needs mariabackup; +} + +if (!$MTR_GALERA_TFMT) { + skip Needs socat or nc; +} diff --git a/mysql-test/include/have_max_indexes_128.inc b/mysql-test/include/have_max_indexes_128.inc new file mode 100644 index 00000000..0cb58afc --- /dev/null +++ b/mysql-test/include/have_max_indexes_128.inc @@ -0,0 +1,5 @@ +--source include/max_indexes.inc + +if (`SELECT "$max_indexes" NOT REGEXP "^128U?\$"`) { + --skip Test needs mysqld built with --with-max-indexes=128 +} diff --git a/mysql-test/include/have_max_indexes_64.inc b/mysql-test/include/have_max_indexes_64.inc new file mode 100644 index 00000000..dda2c263 --- /dev/null +++ b/mysql-test/include/have_max_indexes_64.inc @@ -0,0 +1,5 @@ +--source include/max_indexes.inc + +if (`SELECT "$max_indexes" NOT REGEXP "^64U?\$"`) { + --skip Test needs mysqld built with --with-max-indexes=64U +} diff --git a/mysql-test/include/have_met_timezone.require b/mysql-test/include/have_met_timezone.require new file mode 100644 index 00000000..b3fde075 --- /dev/null +++ b/mysql-test/include/have_met_timezone.require @@ -0,0 +1,2 @@ +FROM_UNIXTIME(24*3600) +1970-01-02 01:00:00 diff --git a/mysql-test/include/have_metadata_lock_info.inc b/mysql-test/include/have_metadata_lock_info.inc new file mode 100644 index 00000000..51fae1c6 --- /dev/null +++ b/mysql-test/include/have_metadata_lock_info.inc @@ -0,0 +1,4 @@ +if (!`SELECT count(*) FROM information_schema.plugins WHERE + (PLUGIN_STATUS = 'ACTIVE') AND PLUGIN_NAME = 'METADATA_LOCK_INFO'`){ + skip Need archive METADATA_LOCK_INFO plugin; +} diff --git a/mysql-test/include/have_metadata_lock_info.opt b/mysql-test/include/have_metadata_lock_info.opt new file mode 100644 index 00000000..677c4ec0 --- /dev/null +++ b/mysql-test/include/have_metadata_lock_info.opt @@ -0,0 +1,2 @@ +--loose-metadata-lock-info +--plugin-load-add=$METADATA_LOCK_INFO_SO diff --git a/mysql-test/include/have_moscow_leap_timezone.require b/mysql-test/include/have_moscow_leap_timezone.require new file mode 100644 index 00000000..f27452d7 --- /dev/null +++ b/mysql-test/include/have_moscow_leap_timezone.require @@ -0,0 +1,2 @@ +from_unixtime(1072904422) +2004-01-01 00:00:00 diff --git a/mysql-test/include/have_mutex_deadlock_detector.inc b/mysql-test/include/have_mutex_deadlock_detector.inc new file mode 100644 index 00000000..88a7484a --- /dev/null +++ b/mysql-test/include/have_mutex_deadlock_detector.inc @@ -0,0 +1,3 @@ +if (`select count(*)=0 from information_schema.global_variables where variable_name = "debug_mutex_deadlock_detector"`) { + skip needs safemutex deadlock detector; +} diff --git a/mysql-test/include/have_normal_bzip.inc b/mysql-test/include/have_normal_bzip.inc new file mode 100644 index 00000000..36c06274 --- /dev/null +++ b/mysql-test/include/have_normal_bzip.inc @@ -0,0 +1,9 @@ +--source include/have_compress.inc + +# Test that the system is using the default/standard bzip library. +# If not, we have to skip the test as the compression lengths displayed +# in the test will not match the results from used compression library. + +if (`select length(COMPRESS(space(5000))) != 33`) { + skip Test skipped as standard bzip is needed; +} diff --git a/mysql-test/include/have_numa.inc b/mysql-test/include/have_numa.inc new file mode 100644 index 00000000..18bca99e --- /dev/null +++ b/mysql-test/include/have_numa.inc @@ -0,0 +1,9 @@ +let $numa_support = `SELECT COUNT(VARIABLE_VALUE) = 1 FROM + INFORMATION_SCHEMA.GLOBAL_VARIABLES + WHERE VARIABLE_NAME='innodb_numa_interleave'`; + +if ( $numa_support == 0 ) +{ + --skip Test requires: Binary must be built with NUMA support. +} + diff --git a/mysql-test/include/have_openssl.inc b/mysql-test/include/have_openssl.inc new file mode 100644 index 00000000..ee51ee45 --- /dev/null +++ b/mysql-test/include/have_openssl.inc @@ -0,0 +1,4 @@ +if (`SELECT count(*) = 0 FROM information_schema.GLOBAL_VARIABLES WHERE + VARIABLE_NAME = 'have_openssl' AND VARIABLE_VALUE = 'YES'`){ + skip Needs OpenSSL; +} diff --git a/mysql-test/include/have_outfile.inc b/mysql-test/include/have_outfile.inc new file mode 100644 index 00000000..705d394b --- /dev/null +++ b/mysql-test/include/have_outfile.inc @@ -0,0 +1,5 @@ +-- require include/have_outfile.require +disable_query_log; +select load_file(concat(@tmpdir,'/outfile.test')); +--remove_file $MYSQLTEST_VARDIR/tmp/outfile.test +enable_query_log; diff --git a/mysql-test/include/have_outfile.require b/mysql-test/include/have_outfile.require new file mode 100644 index 00000000..71137a69 --- /dev/null +++ b/mysql-test/include/have_outfile.require @@ -0,0 +1,3 @@ +load_file(concat(@tmpdir,'/outfile.test')) +Outfile OK + diff --git a/mysql-test/include/have_partition.inc b/mysql-test/include/have_partition.inc new file mode 100644 index 00000000..50dc98ac --- /dev/null +++ b/mysql-test/include/have_partition.inc @@ -0,0 +1,4 @@ +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'partition' AND PLUGIN_STATUS='ACTIVE'`) +{ + --skip Test requires partitioning +} diff --git a/mysql-test/include/have_partition.opt b/mysql-test/include/have_partition.opt new file mode 100644 index 00000000..9c511d27 --- /dev/null +++ b/mysql-test/include/have_partition.opt @@ -0,0 +1 @@ +--loose-enable-partition diff --git a/mysql-test/include/have_perfschema.inc b/mysql-test/include/have_perfschema.inc new file mode 100644 index 00000000..6b68d717 --- /dev/null +++ b/mysql-test/include/have_perfschema.inc @@ -0,0 +1,21 @@ +# Copyright (C) 2010 Sun Microsystems, Inc. +# Use is subject to license terms +# +# 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 Street, Fifth Floor, Boston, MA 02110-1335 USA + +if (!`SELECT count(*) FROM information_schema.engines WHERE + (support = 'YES' OR support = 'DEFAULT') AND + engine = 'PERFORMANCE_SCHEMA'`){ + skip Need performance schema compiled in; +} diff --git a/mysql-test/include/have_perror.require b/mysql-test/include/have_perror.require new file mode 100644 index 00000000..260687c8 --- /dev/null +++ b/mysql-test/include/have_perror.require @@ -0,0 +1,2 @@ +have_perror +1 diff --git a/mysql-test/include/have_plugin_auth.inc b/mysql-test/include/have_plugin_auth.inc new file mode 100644 index 00000000..daa5f511 --- /dev/null +++ b/mysql-test/include/have_plugin_auth.inc @@ -0,0 +1,4 @@ +if (`select count(*) = 0 from information_schema.plugins where plugin_name = 'test_plugin_server' and plugin_status='active'`) +{ + --skip Needs auth_test_plugin +} diff --git a/mysql-test/include/have_plugin_auth.opt b/mysql-test/include/have_plugin_auth.opt new file mode 100644 index 00000000..0204e148 --- /dev/null +++ b/mysql-test/include/have_plugin_auth.opt @@ -0,0 +1 @@ +--plugin-load-add=$AUTH_TEST_PLUGIN_SO diff --git a/mysql-test/include/have_plugin_interface.inc b/mysql-test/include/have_plugin_interface.inc new file mode 100644 index 00000000..203fb807 --- /dev/null +++ b/mysql-test/include/have_plugin_interface.inc @@ -0,0 +1,5 @@ +--disable_query_log +--require include/true.require +select (PLUGIN_LIBRARY LIKE 'qa_auth_interface%') as `TRUE` FROM INFORMATION_SCHEMA.PLUGINS + WHERE PLUGIN_NAME='qa_auth_interface'; +--enable_query_log diff --git a/mysql-test/include/have_plugin_server.inc b/mysql-test/include/have_plugin_server.inc new file mode 100644 index 00000000..8d85bec8 --- /dev/null +++ b/mysql-test/include/have_plugin_server.inc @@ -0,0 +1,5 @@ +--disable_query_log +--require include/true.require +select (PLUGIN_LIBRARY LIKE 'qa_auth_server%') as `TRUE` FROM INFORMATION_SCHEMA.PLUGINS + WHERE PLUGIN_NAME='qa_auth_server'; +--enable_query_log diff --git a/mysql-test/include/have_pool_of_threads.inc b/mysql-test/include/have_pool_of_threads.inc new file mode 100644 index 00000000..62460127 --- /dev/null +++ b/mysql-test/include/have_pool_of_threads.inc @@ -0,0 +1,5 @@ +--source include/not_aix.inc +--require include/have_pool_of_threads.require +disable_query_log; +show variables like 'thread_handling'; +enable_query_log; diff --git a/mysql-test/include/have_pool_of_threads.require b/mysql-test/include/have_pool_of_threads.require new file mode 100644 index 00000000..04e46a71 --- /dev/null +++ b/mysql-test/include/have_pool_of_threads.require @@ -0,0 +1,2 @@ +Variable_name Value +thread_handling pool-of-threads diff --git a/mysql-test/include/have_profiling.inc b/mysql-test/include/have_profiling.inc new file mode 100644 index 00000000..4048555d --- /dev/null +++ b/mysql-test/include/have_profiling.inc @@ -0,0 +1,4 @@ +--require include/have_profiling.require +--disable_query_log +show variables like 'have_profiling'; +--enable_query_log diff --git a/mysql-test/include/have_profiling.require b/mysql-test/include/have_profiling.require new file mode 100644 index 00000000..54caeba1 --- /dev/null +++ b/mysql-test/include/have_profiling.require @@ -0,0 +1,2 @@ +Variable_name Value +have_profiling YES diff --git a/mysql-test/include/have_query_cache.inc b/mysql-test/include/have_query_cache.inc new file mode 100644 index 00000000..d9066973 --- /dev/null +++ b/mysql-test/include/have_query_cache.inc @@ -0,0 +1,4 @@ +-- require include/have_query_cache.require +disable_query_log; +show variables like 'have_query_cache'; +enable_query_log; diff --git a/mysql-test/include/have_query_cache.require b/mysql-test/include/have_query_cache.require new file mode 100644 index 00000000..312d837f --- /dev/null +++ b/mysql-test/include/have_query_cache.require @@ -0,0 +1,2 @@ +Variable_name Value +have_query_cache YES diff --git a/mysql-test/include/have_query_cache_disabled.inc b/mysql-test/include/have_query_cache_disabled.inc new file mode 100644 index 00000000..9087fa39 --- /dev/null +++ b/mysql-test/include/have_query_cache_disabled.inc @@ -0,0 +1,36 @@ +# Skip the test if 'query cache' is disabled. +# Note : There are 2 techniques to disable query cache : +# (1) Set query_cache_type to 0 or OFF +# (2) Set query_cache_size to 0 + +disable_query_log; + +let $do_skip=0; + +let $qc_var_1= query_get_value("SELECT COUNT(*) AS var1 FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME = 'have_query_cache' AND variable_value = 'YES'", var1, 1); +if ($qc_var_1 == 1) +{ + let $do_skip=1; +} + +# Check if 'query_cache_type' is OFF +let $qc_var_2= query_get_value("SELECT COUNT(*) AS var2 FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME = 'query_cache_type' AND VARIABLE_VALUE = 'OFF'", var2, 1); +if ($qc_var_2 == 1) +{ + let $do_skip=0; +} + +# Check if 'query_cache_size' is 0 +let $qc_var_3= query_get_value("SELECT COUNT(*) AS var3 FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME = 'query_cache_size' AND VARIABLE_VALUE = 0", var3, 1); + +if ($qc_var_3 == 1) +{ + let $do_skip=0; +} + +if ($do_skip) +{ + skip Query Cache enabled, skipping test; +} + +enable_query_log; diff --git a/mysql-test/include/have_rocksdb.inc b/mysql-test/include/have_rocksdb.inc new file mode 100644 index 00000000..bc6ec648 --- /dev/null +++ b/mysql-test/include/have_rocksdb.inc @@ -0,0 +1,4 @@ +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'ROCKSDB' AND support IN ('YES', 'DEFAULT', 'ENABLED')`) +{ + --skip Test requires MyRocks engine +} diff --git a/mysql-test/include/have_rocksdb.opt b/mysql-test/include/have_rocksdb.opt new file mode 100644 index 00000000..df675545 --- /dev/null +++ b/mysql-test/include/have_rocksdb.opt @@ -0,0 +1 @@ +--plugin-load=$HA_ROCKSDB_SO diff --git a/mysql-test/include/have_s3.inc b/mysql-test/include/have_s3.inc new file mode 100644 index 00000000..d81778cd --- /dev/null +++ b/mysql-test/include/have_s3.inc @@ -0,0 +1,10 @@ +if (!`SELECT count(*) FROM information_schema.engines WHERE + (support = 'YES' OR support = 'DEFAULT') AND + engine = 's3'`) +{ + skip Need s3 engine; +} +if (`select @@global.s3_secret_key = "" or @@global.s3_access_key = ""`) +{ + skip S3 engine not configured; +} diff --git a/mysql-test/include/have_sequence.inc b/mysql-test/include/have_sequence.inc new file mode 100644 index 00000000..b509d605 --- /dev/null +++ b/mysql-test/include/have_sequence.inc @@ -0,0 +1,4 @@ +if (`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.ENGINES WHERE engine = 'sequence' AND support IN ('YES', 'DEFAULT', 'ENABLED')`) +{ + --skip Test requires Sequence engine +} diff --git a/mysql-test/include/have_sequence.opt b/mysql-test/include/have_sequence.opt new file mode 100644 index 00000000..d08d8f11 --- /dev/null +++ b/mysql-test/include/have_sequence.opt @@ -0,0 +1 @@ +--loose-sequence diff --git a/mysql-test/include/have_simple_parser.inc b/mysql-test/include/have_simple_parser.inc new file mode 100644 index 00000000..0c20c43e --- /dev/null +++ b/mysql-test/include/have_simple_parser.inc @@ -0,0 +1,14 @@ +# +# Check if server has support for loading plugins +# +if (`SELECT @@have_dynamic_loading != 'YES'`) { + --skip simple parser requires dynamic loading +} + +# +# Check if the variable SIMPLE_PARSER is set +# +if (!$MYPLUGLIB_SO) { + --skip simple parser is not built (no mypluglib.so) +} + diff --git a/mysql-test/include/have_sjis.inc b/mysql-test/include/have_sjis.inc new file mode 100644 index 00000000..a25dc51d --- /dev/null +++ b/mysql-test/include/have_sjis.inc @@ -0,0 +1,2 @@ +let collation=sjis_japanese_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_ssl_communication.inc b/mysql-test/include/have_ssl_communication.inc new file mode 100644 index 00000000..84278e72 --- /dev/null +++ b/mysql-test/include/have_ssl_communication.inc @@ -0,0 +1,4 @@ +if (`SELECT count(*) = 0 FROM information_schema.GLOBAL_VARIABLES WHERE + VARIABLE_NAME = 'have_ssl' AND VARIABLE_VALUE = 'YES'`){ + skip Needs SSL; +} diff --git a/mysql-test/include/have_ssl_crypto_functs.inc b/mysql-test/include/have_ssl_crypto_functs.inc new file mode 100644 index 00000000..2204c81d --- /dev/null +++ b/mysql-test/include/have_ssl_crypto_functs.inc @@ -0,0 +1,4 @@ +if (`SELECT count(*) = 0 FROM information_schema.GLOBAL_VARIABLES WHERE + VARIABLE_NAME = 'have_ssl' AND VARIABLE_VALUE <> 'NO'`){ + skip Needs SSL; +} diff --git a/mysql-test/include/have_stat_tables.inc b/mysql-test/include/have_stat_tables.inc new file mode 100644 index 00000000..a52a4d5c --- /dev/null +++ b/mysql-test/include/have_stat_tables.inc @@ -0,0 +1,5 @@ +if (`select count(*) < 3 from information_schema.tables + where table_schema = 'mysql' and table_name in ('table_stats','column_stats','index_stats')`) +{ + --skip Needs stat tables +} diff --git a/mysql-test/include/have_stat_tables.opt b/mysql-test/include/have_stat_tables.opt new file mode 100644 index 00000000..addda716 --- /dev/null +++ b/mysql-test/include/have_stat_tables.opt @@ -0,0 +1 @@ +--use-stat-tables='complementary' diff --git a/mysql-test/include/have_static_innodb.inc b/mysql-test/include/have_static_innodb.inc new file mode 100644 index 00000000..0d7bb856 --- /dev/null +++ b/mysql-test/include/have_static_innodb.inc @@ -0,0 +1,7 @@ +source include/have_innodb.inc; + +if (!`select count(*) from information_schema.plugins + where plugin_name = 'innodb' and plugin_status = 'active' and + plugin_library is null`) { + skip Need compiled-in InnoDB; +} diff --git a/mysql-test/include/have_symlink.inc b/mysql-test/include/have_symlink.inc new file mode 100644 index 00000000..945fc96f --- /dev/null +++ b/mysql-test/include/have_symlink.inc @@ -0,0 +1,10 @@ +# Several partition-related tests include this file, because Valgrind/Purify +# builds disable symlink support; some partition functionality depends on +# symlink support, and so does not test correctly under valgrind. See the +# comment in mysqld.cc for the --symbolic-links option. + +-- require include/have_symlink.require + +disable_query_log; +show variables like 'have_symlink'; +enable_query_log; diff --git a/mysql-test/include/have_symlink.require b/mysql-test/include/have_symlink.require new file mode 100644 index 00000000..55ad9437 --- /dev/null +++ b/mysql-test/include/have_symlink.require @@ -0,0 +1,2 @@ +Variable_name Value +have_symlink YES diff --git a/mysql-test/include/have_tis620.inc b/mysql-test/include/have_tis620.inc new file mode 100644 index 00000000..d385ff2c --- /dev/null +++ b/mysql-test/include/have_tis620.inc @@ -0,0 +1,2 @@ +let collation=tis620_thai_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_type_mysql_json.inc b/mysql-test/include/have_type_mysql_json.inc new file mode 100644 index 00000000..bea1f52c --- /dev/null +++ b/mysql-test/include/have_type_mysql_json.inc @@ -0,0 +1,3 @@ +if (!$TYPE_MYSQL_JSON_SO) { + skip Need MYSQL_JSON plugin; +} diff --git a/mysql-test/include/have_type_mysql_json.opt b/mysql-test/include/have_type_mysql_json.opt new file mode 100644 index 00000000..0676b783 --- /dev/null +++ b/mysql-test/include/have_type_mysql_json.opt @@ -0,0 +1,2 @@ +--loose-type_mysql_json +--plugin-load-add=$TYPE_MYSQL_JSON_SO diff --git a/mysql-test/include/have_ucs2.inc b/mysql-test/include/have_ucs2.inc new file mode 100644 index 00000000..885e2029 --- /dev/null +++ b/mysql-test/include/have_ucs2.inc @@ -0,0 +1,2 @@ +let collation=ucs2_general_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_udf.inc b/mysql-test/include/have_udf.inc new file mode 100644 index 00000000..be7390f8 --- /dev/null +++ b/mysql-test/include/have_udf.inc @@ -0,0 +1,14 @@ +# +# Check if server has support for loading plugins +# +if (`SELECT @@have_dynamic_loading != 'YES'`) { + --skip UDF requires dynamic loading +} + +# +# Check if the variable UDF_EXAMPLE_LIB is set +# +if (!$UDF_EXAMPLE_SO) { + --skip Need udf example +} + diff --git a/mysql-test/include/have_ujis.inc b/mysql-test/include/have_ujis.inc new file mode 100644 index 00000000..222c027c --- /dev/null +++ b/mysql-test/include/have_ujis.inc @@ -0,0 +1,2 @@ +let collation=ujis_japanese_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_unix_socket.inc b/mysql-test/include/have_unix_socket.inc new file mode 100644 index 00000000..7be828ac --- /dev/null +++ b/mysql-test/include/have_unix_socket.inc @@ -0,0 +1,14 @@ +--source include/not_embedded.inc + +if (`select count(*) = 0 from information_schema.plugins where plugin_name = 'unix_socket' and plugin_status='active'`) +{ + --skip Needs unix_socket plugin +} + +if (!$USER) { + skip USER variable is undefined; +} + +if (`SELECT count(*) <> 0 FROM mysql.user WHERE user = '$USER'`) { + skip \$USER=$USER which exists in mysql.user; +} diff --git a/mysql-test/include/have_unix_socket.opt b/mysql-test/include/have_unix_socket.opt new file mode 100644 index 00000000..460e3a26 --- /dev/null +++ b/mysql-test/include/have_unix_socket.opt @@ -0,0 +1 @@ +--plugin-load-add=$AUTH_SOCKET_SO --loose-enable-unix-socket diff --git a/mysql-test/include/have_utf16.inc b/mysql-test/include/have_utf16.inc new file mode 100644 index 00000000..0dfe8e9c --- /dev/null +++ b/mysql-test/include/have_utf16.inc @@ -0,0 +1,4 @@ +-- require include/have_utf16.require +disable_query_log; +show collation like 'utf16_general_ci'; +enable_query_log; diff --git a/mysql-test/include/have_utf16.require b/mysql-test/include/have_utf16.require new file mode 100644 index 00000000..a1b5469c --- /dev/null +++ b/mysql-test/include/have_utf16.require @@ -0,0 +1,2 @@ +Collation Charset Id Default Compiled Sortlen +utf16_general_ci utf16 54 Yes Yes 1 diff --git a/mysql-test/include/have_utf32.inc b/mysql-test/include/have_utf32.inc new file mode 100644 index 00000000..7d3b2b69 --- /dev/null +++ b/mysql-test/include/have_utf32.inc @@ -0,0 +1,4 @@ +-- require include/have_utf32.require +disable_query_log; +show collation like 'utf32_general_ci'; +enable_query_log; diff --git a/mysql-test/include/have_utf32.require b/mysql-test/include/have_utf32.require new file mode 100644 index 00000000..710ddb80 --- /dev/null +++ b/mysql-test/include/have_utf32.require @@ -0,0 +1,2 @@ +Collation Charset Id Default Compiled Sortlen +utf32_general_ci utf32 60 Yes Yes 1 diff --git a/mysql-test/include/have_utf8.inc b/mysql-test/include/have_utf8.inc new file mode 100644 index 00000000..0c82ad57 --- /dev/null +++ b/mysql-test/include/have_utf8.inc @@ -0,0 +1,2 @@ +let collation=utf8mb3_general_ci; +--source include/have_collation.inc diff --git a/mysql-test/include/have_utf8mb4.inc b/mysql-test/include/have_utf8mb4.inc new file mode 100644 index 00000000..42e7d32a --- /dev/null +++ b/mysql-test/include/have_utf8mb4.inc @@ -0,0 +1,7 @@ +--require include/have_utf8mb4.require + +--disable_query_log + +SHOW COLLATION LIKE 'utf8mb4_general_ci'; + +--enable_query_log diff --git a/mysql-test/include/have_utf8mb4.require b/mysql-test/include/have_utf8mb4.require new file mode 100644 index 00000000..1669b332 --- /dev/null +++ b/mysql-test/include/have_utf8mb4.require @@ -0,0 +1,2 @@ +Collation Charset Id Default Compiled Sortlen +utf8mb4_general_ci utf8mb4 45 Yes Yes 1 diff --git a/mysql-test/include/have_view_protocol.inc b/mysql-test/include/have_view_protocol.inc new file mode 100644 index 00000000..6b1436a7 --- /dev/null +++ b/mysql-test/include/have_view_protocol.inc @@ -0,0 +1,6 @@ +# The file with expected results fits only to a run with +# view-protocol. +if (`SELECT $VIEW_PROTOCOL = 0`) +{ + --skip Test requires view-protocol +}
\ No newline at end of file diff --git a/mysql-test/include/have_working_dns.inc b/mysql-test/include/have_working_dns.inc new file mode 100644 index 00000000..6118d489 --- /dev/null +++ b/mysql-test/include/have_working_dns.inc @@ -0,0 +1,11 @@ +# +# Check if we have a working DNS. +# Some 'wildcard dns' return some address even for non-existing hosts. This +# makes it hard to test connections to such host names. +# The actual check for working DNS is done in Perl, and the result available +# in an environment variable. +# +--require include/have_working_dns.require +disable_query_log; +eval SELECT LENGTH('$HAVE_BROKEN_DNS') = 0 AS 'have_working_dns'; +enable_query_log; diff --git a/mysql-test/include/have_working_dns.require b/mysql-test/include/have_working_dns.require new file mode 100644 index 00000000..67b5a22c --- /dev/null +++ b/mysql-test/include/have_working_dns.require @@ -0,0 +1,2 @@ +have_working_dns +1 diff --git a/mysql-test/include/have_wsrep.inc b/mysql-test/include/have_wsrep.inc new file mode 100644 index 00000000..52220edf --- /dev/null +++ b/mysql-test/include/have_wsrep.inc @@ -0,0 +1,8 @@ +# To be used in a test which requires server to be compiled with wsrep support +# (-DWITH_WSREP=ON) and wsrep plugin is ACTIVE. + +if (`SELECT COUNT(*)=0 FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'wsrep' AND PLUGIN_STATUS='ACTIVE'`) +{ + --skip Test requires wsrep plugin. +} + diff --git a/mysql-test/include/have_wsrep_enabled.inc b/mysql-test/include/have_wsrep_enabled.inc new file mode 100644 index 00000000..7eb8b437 --- /dev/null +++ b/mysql-test/include/have_wsrep_enabled.inc @@ -0,0 +1,11 @@ +# To be used in a test which requires wsrep plugin to be ACTIVE and enabled +# (i.e. wsrep_on=ON). It includes have_wsrep.inc. + +--source include/have_innodb.inc + +if (`SELECT COUNT(*)=0 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME = 'wsrep_on' AND VARIABLE_VALUE='ON'`) +{ + --skip Test requires wsrep_on=ON +} +--source include/wait_until_ready.inc + diff --git a/mysql-test/include/have_wsrep_provider.inc b/mysql-test/include/have_wsrep_provider.inc new file mode 100644 index 00000000..818abdd4 --- /dev/null +++ b/mysql-test/include/have_wsrep_provider.inc @@ -0,0 +1,6 @@ +if (`SELECT COUNT(*)=0 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE + VARIABLE_NAME LIKE 'wsrep_provider' AND VARIABLE_VALUE NOT LIKE 'none'`) +{ + --skip Test requires wsrep provider library (libgalera_smm.so) +} + diff --git a/mysql-test/include/have_xtrabackup.inc b/mysql-test/include/have_xtrabackup.inc new file mode 100644 index 00000000..0dd693f2 --- /dev/null +++ b/mysql-test/include/have_xtrabackup.inc @@ -0,0 +1,4 @@ +# +# suite.pm will make sure that all tests including this file +# will be skipped as needed +# diff --git a/mysql-test/include/histogram_replaces.inc b/mysql-test/include/histogram_replaces.inc new file mode 100644 index 00000000..4cea1b05 --- /dev/null +++ b/mysql-test/include/histogram_replaces.inc @@ -0,0 +1 @@ +--source include/json_hb_histogram.inc diff --git a/mysql-test/include/icp_debug_kill.inc b/mysql-test/include/icp_debug_kill.inc new file mode 100644 index 00000000..d0ecc842 --- /dev/null +++ b/mysql-test/include/icp_debug_kill.inc @@ -0,0 +1,50 @@ +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/count_sessions.inc + +--disable_warnings +drop table if exists t0,t1,t2; +--enable_warnings + +create table t0(a int primary key); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1(a int primary key); +insert into t1 select A.a + B.a* 10 + C.a * 100 from t0 A, t0 B, t0 C; + +create table t2 ( + kp1 int, + kp2 int, + col char(100), + key(kp1, kp2) +); +insert into t2 select a, a, a from t1; + +select engine from information_schema.tables +where table_schema=database() and table_name='t2'; + +explain +select * from t2 where kp1 between 10 and 20 and kp2 +1 >100; + +let $target_id= `select connection_id()`; + +set debug_sync='handler_index_cond_check SIGNAL at_icp_check WAIT_FOR go'; +send +select * from t2 where kp1 between 10 and 20 and kp2 +1 >100; + +connect (con1, localhost, root,,); +connection con1; +set debug_sync='now WAIT_FOR at_icp_check'; +evalp kill query $target_id; +set debug_sync='now SIGNAL go'; + +connection default; + +--error ER_QUERY_INTERRUPTED +reap; +set debug_sync='RESET'; + +disconnect con1; +drop table t0,t1,t2; +--source include/wait_until_count_sessions.inc + diff --git a/mysql-test/include/icp_tests.inc b/mysql-test/include/icp_tests.inc new file mode 100644 index 00000000..d7fa6b5d --- /dev/null +++ b/mysql-test/include/icp_tests.inc @@ -0,0 +1,943 @@ +--source include/have_sequence.inc + +--echo # +--echo # Bug#36981 - "innodb crash when selecting for update" +--echo # + +# +# Test 1: Test based on the reproduction test case for this bug. +# This query resulted in a crash in InnoDB due to +# InnoDB changing from using the index which the push condition +# where for to use the clustered index due to "SELECT ... FOR UPDATE". +# + +CREATE TABLE t1 ( + c1 CHAR(1), + c2 CHAR(10), + KEY (c1) +); + +INSERT INTO t1 VALUES ('3', null); + +SELECT * FROM t1 WHERE c1='3' FOR UPDATE; + +DROP TABLE t1; + +# +# Test 2: Extended test case to test that the correct rows are returned. +# This test is for ensuring that if InnoDB refuses to accept +# the pushed index condition it is still evaluated. +# + +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +CREATE TABLE t2 (a INT); +INSERT INTO t2 SELECT A.a + 10*(B.a + 10*C.a) FROM t1 A, t1 B, t1 C; + +CREATE TABLE t3 ( + c1 CHAR(10) NOT NULL, + c2 CHAR(10) NOT NULL, + c3 CHAR(200) NOT NULL, + KEY (c1) +); + +INSERT INTO t3 + SELECT CONCAT('c-',1000+t2.a,'=w'), CONCAT('c-',1000+ t2.a,'=w'), 'filler' + FROM t2; + +INSERT INTO t3 + SELECT CONCAT('c-',1000+t2.a,'=w'), CONCAT('c-',2000+t2.a,'=w'), 'filler-1' + FROM t2; + +INSERT INTO t3 + SELECT CONCAT('c-',1000+t2.a,'=w'), CONCAT('c-',3000+t2.a,'=w'), 'filler-2' + FROM t2; + +--sorted_result +SELECT c1,c3 FROM t3 WHERE c1 >= 'c-1994=w' and c1 != 'c-1996=w' FOR UPDATE; + +DROP TABLE t1,t2,t3; + +--echo # +--echo # Bug#42580 - Innodb's ORDER BY ..LIMIT returns no rows for +--echo # null-safe operator <=> NULL +--echo # + +CREATE TABLE t1( + c1 DATE NOT NULL, + c2 DATE NULL, + c3 DATETIME, + c4 TIMESTAMP, + PRIMARY KEY(c1), + UNIQUE(c2) +); + +--echo +INSERT INTO t1 VALUES('0000-00-00', '0000-00-00', '2008-01-04', '2008-01-05'); +INSERT INTO t1 VALUES('2007-05-25', '2007-05-25', '2007-05-26', '2007-05-26'); +INSERT INTO t1 VALUES('2008-01-01', NULL , '2008-01-02', '2008-01-03'); +INSERT INTO t1 VALUES('2008-01-17', NULL , NULL , '2009-01-29'); +INSERT INTO t1 VALUES('2009-01-29', '2009-01-29', '2009-01-29', '2009-01-29'); + +--echo +SELECT * FROM t1 WHERE c2 <=> NULL ORDER BY c1,c2; +--echo +SELECT * FROM t1 WHERE c2 <=> NULL ORDER BY c1,c2 LIMIT 2; + +--echo +DROP TABLE t1; + +--echo # +--echo # Bug#43617 - Innodb returns wrong results with timestamp's range value +--echo # in IN clause +--echo # (Note: Fixed by patch for BUG#42580) +--echo # + +CREATE TABLE t1( + c1 TIMESTAMP NOT NULL, + c2 TIMESTAMP NULL, + c3 DATE, + c4 DATETIME, + PRIMARY KEY(c1), + UNIQUE INDEX(c2) +); + +INSERT INTO t1 VALUES + ('0000-00-00 00:00:00','0000-00-00 00:00:00','2008-01-04','2008-01-05 00:00:00'), + ('1971-01-01 00:00:01','1980-01-01 00:00:01','2009-01-01','2009-01-02 00:00:00'), + ('1999-01-01 00:00:00','1999-01-01 00:00:00', NULL, NULL), + ('2007-05-23 09:15:28','2007-05-23 09:15:28','2007-05-24','2007-05-24 09:15:28'), + ('2007-05-27 00:00:00','2007-05-25 00:00:00','2007-05-26','2007-05-26 00:00:00'), + ('2008-01-01 00:00:00', NULL, '2008-01-02','2008-01-03 00:00:00'), + ('2009-01-29 11:11:27','2009-01-29 11:11:27','2009-01-29','2009-01-29 11:11:27'), + ('2038-01-09 03:14:07','2038-01-09 03:14:07','2009-01-05','2009-01-06 00:00:00'); + +--echo +SELECT * +FROM t1 +WHERE c2 IN ('1971-01-01 00:00:01','2038-01-09 03:14:07') +ORDER BY c2; + +--echo +SELECT * +FROM t1 +WHERE c2 IN ('1971-01-01 00:00:01','2038-01-09 03:14:07') +ORDER BY c2 LIMIT 2; + +--echo +SELECT * +FROM t1 +WHERE c2 IN ('1971-01-01 00:00:01','2038-01-09 03:14:07') +ORDER BY c2 DESC; + +--echo +SELECT * +FROM t1 +WHERE c2 IN ('1971-01-01 00:00:01','2038-01-09 03:14:07') +ORDER BY c2 DESC LIMIT 2; + +--echo +DROP TABLE t1; + +--echo # +--echo # BUG#43618: MyISAM&Maria returns wrong results with 'between' +--echo # on timestamp +--echo # + +CREATE TABLE t1( + ts TIMESTAMP NOT NULL, + c char NULL, + PRIMARY KEY(ts) +); + +INSERT INTO t1 VALUES + ('1971-01-01','a'), + ('2007-05-25','b'), + ('2008-01-01','c'), + ('2038-01-09','d'); + +--disable_warnings + +--echo +--echo # Execute select with invalid timestamp, desc ordering +SELECT * +FROM t1 FORCE INDEX(PRIMARY) +WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00' +ORDER BY ts DESC +LIMIT 2; + +--echo +--echo # Should use index condition +EXPLAIN +SELECT * +FROM t1 FORCE INDEX(PRIMARY) +WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00' +ORDER BY ts DESC +LIMIT 2; +--echo + +--enable_warnings + +DROP TABLE t1; + +--echo # +--echo # BUG#49906: Assertion failed - Field_varstring::val_str in field.cc +--echo # (Note: Fixed by patch for LP BUG#625841) +--echo # + +CREATE TABLE t1 ( + f1 VARCHAR(1024), + f2 VARCHAR(10), + INDEX test_idx USING BTREE (f2,f1(5)) +); + +INSERT INTO t1 VALUES ('a','c'), ('b','d'); + +SELECT f1 +FROM t1 +WHERE f2 LIKE 'd' +ORDER BY f1; + +DROP TABLE t1; + +--echo # +--echo # Bug#52660 - "Perf. regr. using ICP for MyISAM on range queries on +--echo # an index containing TEXT" +--echo # + +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +CREATE TABLE t2 (a INT); +INSERT INTO t2 SELECT A.a + 10*(B.a) FROM t1 A, t1 B; + +CREATE TABLE t3 ( + c1 TINYTEXT NOT NULL, + i1 INT NOT NULL, + KEY (c1(6),i1) +); + +INSERT INTO t3 SELECT CONCAT('c-',1000+t2.a,'=w'), 1 FROM t2; + +EXPLAIN +SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w'; +SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w'; + +EXPLAIN +SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2; +SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2; + +--replace_column 9 100 +EXPLAIN +SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2; +SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2; + +DROP TABLE t1, t2, t3; + +--echo # +--echo # Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on +--echo # + +CREATE TABLE t ( + dummy INT PRIMARY KEY, + a INT UNIQUE, + b INT +); + +INSERT INTO t VALUES (1,1,1),(3,3,3),(5,5,5); + +SELECT * FROM t WHERE a > 2 FOR UPDATE; + +DROP TABLE t; + + +--echo # +--echo # Bug#35080 - Innodb crash at mem_block_get_len line 72 +--echo # + +CREATE TABLE t1 ( + t1_autoinc INT(11) NOT NULL AUTO_INCREMENT, + uuid VARCHAR(36) DEFAULT NULL, + PRIMARY KEY (t1_autoinc), + KEY k (uuid) +); + +CREATE TABLE t2 ( + t2_autoinc INT(11) NOT NULL AUTO_INCREMENT, + uuid VARCHAR(36) DEFAULT NULL, + date DATETIME DEFAULT NULL, + PRIMARY KEY (t2_autoinc), + KEY k (uuid) +); + +CREATE VIEW v1 AS + SELECT t1_autoinc, uuid + FROM t1 + WHERE (ISNULL(uuid) OR (uuid like '%-%')); + +CREATE VIEW v2 AS + SELECT t2_autoinc, uuid, date + FROM t2 + WHERE (ISNULL(uuid) OR (LENGTH(uuid) = 36)); + +CREATE PROCEDURE delete_multi (IN uuid CHAR(36)) + DELETE v1, v2 FROM v1 INNER JOIN v2 + ON v1.uuid = v2.uuid + WHERE v1.uuid = @uuid; + +SET @uuid = UUID(); + +INSERT INTO v1 (uuid) VALUES (@uuid); +INSERT INTO v2 (uuid, date) VALUES (@uuid, '2009-09-09'); + +CALL delete_multi(@uuid); + +DROP procedure delete_multi; +DROP table t1,t2; +DROP view v1,v2; + +--echo # +--echo # Bug#41996 - multi-table delete crashes server (InnoDB table) +--echo # + +CREATE TABLE t1 ( + b BIGINT, + i INT, + KEY (b) +); + +INSERT INTO t1 VALUES (2, 2); + +DELETE t1 FROM t1 a, t1 WHERE a.i=t1.b; + +DROP TABLE t1; + +--echo # +--echo # Bug#43448 - Server crashes on multi table delete with Innodb +--echo # + +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) +); + +delimiter |; + +CREATE PROCEDURE insert_data () +BEGIN + DECLARE i1 INT DEFAULT 20; + DECLARE i2 INT; + DECLARE i3 INT; + + WHILE (i1 > 0) DO + INSERT INTO t1(t) VALUES (i1); + SET i2 = 2; + WHILE (i2 > 0) DO + INSERT INTO t2(id2, t) VALUES (i1, i2); + SET i3 = 2; + WHILE (i3 > 0) DO + INSERT INTO t3(id3, t) VALUES (i1, i2); + SET i3 = i3 -1; + END WHILE; + SET i2 = i2 -1; + END WHILE; + SET i1 = i1 - 1; + END WHILE; +END | + +delimiter ;| + +CALL insert_data(); + +SELECT COUNT(*) FROM t1 WHERE id1 > 10; +SELECT COUNT(*) FROM t2 WHERE id2 > 10; +SELECT COUNT(*) FROM t3 WHERE id3 > 10; + +DELETE t1, t2, t3 +FROM t1, t2, t3 +WHERE t1.id1 = t2.id2 AND t2.id2 = t3.id3 AND t1.id1 > 3; + +SELECT COUNT(*) FROM t1; +SELECT COUNT(*) FROM t2; +SELECT COUNT(*) FROM t3; + +DROP PROCEDURE insert_data; +DROP TABLE t1, t2, t3; + +--echo # +--echo # Bug#57372 "Multi-table updates and deletes fail when running with ICP +--echo # against InnoDB" +--echo # + +CREATE TABLE t1 ( + a INT KEY, + b INT +); + +CREATE TABLE t2 ( + a INT KEY, + b INT +); + +INSERT INTO t1 VALUES (1, 101), (2, 102), (3, 103), (4, 104), (5, 105); +INSERT INTO t2 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5); + +UPDATE t1, t2 +SET t1.a = t1.a + 100, t2.b = t1.a + 10 +WHERE t1.a BETWEEN 2 AND 4 AND t2.a = t1.b - 100; + +--sorted_result +SELECT * FROM t1; +--sorted_result +SELECT * FROM t2; + +DROP TABLE t1, t2; + +--echo # +--echo # Bug#52605 - "Adding LIMIT 1 clause to query with complex range +--echo # predicate causes wrong results" +--echo # + +CREATE TABLE t1 ( + pk INT NOT NULL, + c1 INT, + PRIMARY KEY (pk), + KEY k1 (c1) +); + +INSERT INTO t1 VALUES (1,NULL); +INSERT INTO t1 VALUES (2,6); +INSERT INTO t1 VALUES (3,NULL); +INSERT INTO t1 VALUES (4,6); +INSERT INTO t1 VALUES (5,NULL); +INSERT INTO t1 VALUES (6,NULL); +INSERT INTO t1 VALUES (7,9); +INSERT INTO t1 VALUES (8,0); + +SELECT pk, c1 +FROM t1 +WHERE (pk BETWEEN 4 AND 5 OR pk < 2) AND c1 < 240 +ORDER BY c1 +LIMIT 1; + +EXPLAIN SELECT pk, c1 +FROM t1 +WHERE (pk BETWEEN 4 AND 5 OR pk < 2) AND c1 < 240 +ORDER BY c1 +LIMIT 1; + +DROP TABLE t1; + +--echo # +--echo # +--echo # Bug#59259 "Incorrect rows returned for a correlated subquery +--echo # when ICP is on" +--echo # + +CREATE TABLE t1 (pk INTEGER PRIMARY KEY, i INTEGER NOT NULL); + +INSERT INTO t1 VALUES (11,0); +INSERT INTO t1 VALUES (12,5); +INSERT INTO t1 VALUES (15,0); + +CREATE TABLE t2 (pk INTEGER PRIMARY KEY, i INTEGER NOT NULL); + +INSERT INTO t2 VALUES (11,1); +INSERT INTO t2 VALUES (12,2); +INSERT INTO t2 VALUES (15,4); + +analyze table t1,t2 persistent for all; +set @save_optimizer_switch= @@optimizer_switch; +set optimizer_switch='semijoin=off'; + +--replace_column 9 # +EXPLAIN +SELECT * FROM t1 +WHERE pk IN (SELECT it.pk FROM t2 JOIN t2 AS it ON it.i=it.i WHERE it.pk-t1.i<10); +SELECT * FROM t1 +WHERE pk IN (SELECT it.pk FROM t2 JOIN t2 AS it ON it.i=it.i WHERE it.pk-t1.i<10); + +set optimizer_switch=@save_optimizer_switch; + +DROP TABLE t1, t2; + +--echo # +--echo # Bug #58816 "Extra temporary duplicate rows in result set when +--echo # switching ICP off" +--echo # + +set @save_optimizer_switch= @@optimizer_switch; + +CREATE TABLE t1 ( + pk INT NOT NULL, + c1 INT NOT NULL, + PRIMARY KEY (pk) +); + +INSERT INTO t1 VALUES (1,9),(2,7),(3,6),(4,3),(5,1); + +EXPLAIN SELECT pk, c1 FROM t1 WHERE (pk<3 or pk>3); + +SET SESSION optimizer_switch='index_condition_pushdown=off'; + +SELECT pk, c1 FROM t1 WHERE (pk<3 or pk>3); + +DROP TABLE t1; + +set optimizer_switch= @save_optimizer_switch; + +--echo # +--echo # Bug#58837: ICP crash or valgrind error due to uninitialized +--echo # value in innobase_index_cond +--echo # + +CREATE TABLE t1 ( + t1_int INT, + t1_time TIME +); + +CREATE TABLE t2 ( + t2_int int PRIMARY KEY, + t2_int2 INT +); + +--disable_warnings +INSERT IGNORE INTO t2 VALUES (); +INSERT INTO t1 VALUES (); +--enable_warnings + +SELECT * FROM t1 AS t1a + WHERE NOT EXISTS (SELECT * FROM t1 AS t1b + WHERE t1b.t1_int NOT IN + (SELECT t2.t2_int FROM t2 + WHERE t1b.t1_time LIKE t1b.t1_int + OR t1b.t1_time <> t2.t2_int2 + AND 6=7)); + +DROP TABLE t1,t2; + +--echo # +--echo # Bug#59186: Wrong results of join when ICP is enabled +--echo # (fixed by the patch for LP bug #694092) +--echo # + +CREATE TABLE t1 ( + pk INTEGER NOT NULL, + c1 VARCHAR(3) NOT NULL, + PRIMARY KEY (pk) +); +INSERT INTO t1 VALUES (1,'y'),(0,'or'); + +CREATE TABLE t2 ( + pk INTEGER NOT NULL, + c1 VARCHAR(3) NOT NULL, + c2 VARCHAR(6) NOT NULL, + PRIMARY KEY (pk) +); +INSERT INTO t2 VALUES (6,'y','RPOYT'),(10,'m','JINQE'); + +EXPLAIN +SELECT c2 FROM t1 JOIN t2 ON t1.c1 = t2.c1 +WHERE (t2.pk <= 4 AND t1.pk IN (2,1)) OR + (t1.pk > 1 AND t2.pk BETWEEN 6 AND 6); +SELECT c2 FROM t1 JOIN t2 ON t1.c1 = t2.c1 +WHERE (t2.pk <= 4 AND t1.pk IN (2,1)) OR + (t1.pk > 1 AND t2.pk BETWEEN 6 AND 6); + +DROP TABLE t1, t2; + +--echo # +--echo # Bug#58838: "Wrong results with HAVING + LIMIT without GROUP BY when +--echo # ICP is enabled". +--echo # (Fixed by the patches for LP bugs #668644, #702322) +--echo # + +CREATE TABLE t1 ( + pk INT NOT NULL, + c1 INT, + PRIMARY KEY (pk), + KEY col_int_key (c1) +); + +INSERT INTO t1 VALUES (1,37),(2,8),(3,-25),(4,NULL),(5,55); + +SELECT pk FROM t1 WHERE c1 <> 1 HAVING pk = 3 ORDER BY pk LIMIT 0; +SELECT pk FROM t1 WHERE c1 <> 1 HAVING pk = 3 ORDER BY pk LIMIT 1; +SELECT pk FROM t1 WHERE c1 <> 1 HAVING pk = 3 ORDER BY pk LIMIT 2; +SELECT pk FROM t1 WHERE c1 <> 1 HAVING pk = 3 ORDER BY pk LIMIT 5; + +DROP TABLE t1; + +--echo # +--echo # Bug#59483 "Crash on INSERT/REPLACE in +--echo # rec_convert_dtuple_to_rec_comp with ICP on" +--echo # + +CREATE TABLE t1 ( + pk INTEGER AUTO_INCREMENT PRIMARY KEY, + i1 INTEGER, + c1 CHAR(6), + i2 INTEGER NOT NULL, + KEY (i2) +); + +INSERT INTO t1 VALUES + (NULL, 4, 'that', 8), + (NULL, 1, 'she', 6), + (NULL, 6, 'tell', 2); + +SELECT * FROM t1 WHERE i2 IN (3, 6) LIMIT 2 FOR UPDATE; +INSERT INTO t1 (i2) VALUES (1); + +DROP TABLE t1; + +--echo # +--echo # Bug #11766678 - 59843: +--echo # USING UNINITIALISED VALUE IN USES_INDEX_FIELDS_ONLY +--echo # + +CREATE TABLE t1 ( + col999 FLOAT NOT NULL, + COL1000 VARBINARY(179) NOT NULL, + col1003 DATE DEFAULT NULL, + KEY idx4267 (col1000, col1003) +); + +INSERT IGNORE INTO t1 VALUES (),(); +SELECT col999 FROM t1 WHERE col1000 = "3" AND col1003 <=> sysdate(); + +DROP TABLE t1; + +--echo # +--echo # BUG#12822678 - ICP WITH STRAIGHT_JOIN +--echo # + +CREATE TABLE t1 ( + i1 INTEGER NOT NULL, + d1 DOUBLE, + KEY k1 (d1) +); +INSERT INTO t1 VALUES (10,1), (17,NULL), (22,NULL); + +CREATE TABLE t2 ( + pk INTEGER NOT NULL, + i1 INTEGER NOT NULL, + PRIMARY KEY (pk) +); +INSERT INTO t2 VALUES (4,1); + +ANALYZE TABLE t1,t2; + +EXPLAIN +SELECT t1.d1, t2.pk, t2.i1 FROM t1 STRAIGHT_JOIN t2 ON t2.i1 + WHERE t2.pk <> t1.d1 AND t2.pk = 4; +SELECT t1.d1, t2.pk, t2.i1 FROM t1 STRAIGHT_JOIN t2 ON t2.i1 + WHERE t2.pk <> t1.d1 AND t2.pk = 4; + +# MDEV-8189 field<>const and const<>field are not symmetric +# Do the same EXPLAIN and SELECT +# with "t1.d1 <> t2.pk" instead of "t2.pk <> t1.d1" + +EXPLAIN +SELECT t1.d1, t2.pk, t2.i1 FROM t1 STRAIGHT_JOIN t2 ON t2.i1 + WHERE t1.d1 <> t2.pk AND t2.pk = 4; +SELECT t1.d1, t2.pk, t2.i1 FROM t1 STRAIGHT_JOIN t2 ON t2.i1 + WHERE t1.d1 <> t2.pk AND t2.pk = 4; + +DROP TABLE t1, t2; + +--echo # +--echo # BUG#778434 Wrong result with in_to_exists=on in maria-5.3-mwl89 +--echo # +CREATE TABLE t1 ( f11 int) ; +INSERT IGNORE INTO t1 VALUES (0); + +CREATE TABLE t2 ( f10 int) ; +INSERT IGNORE INTO t2 VALUES (0); + +CREATE TABLE t3 ( f1 int NOT NULL , f10 int, PRIMARY KEY (f1)) ; +INSERT IGNORE INTO t3 VALUES (6,0),(10,0); + +CREATE TABLE t4 ( f11 int) ; +INSERT IGNORE INTO t4 VALUES +(0),(0),(0),(0),(0),(0),(0),(0),(0),(0),(NULL), +(0),(0),(0),(0),(0),(0),(0),(0),(0),(0); + +set @tmp_778434=@@optimizer_switch; +SET optimizer_switch='materialization=off,in_to_exists=on,subquery_cache=off,semijoin=off'; + +SELECT * FROM t1 INNER JOIN t2 ON t2.f10 = t1.f11 +WHERE (6, 234) IN ( + SELECT t3.f1, t3.f1 + FROM t3 JOIN t4 ON t4.f11 = t3.f10 +); + +DROP TABLE t1,t2,t3,t4; +set optimizer_switch= @tmp_778434; + +--echo # +--echo # Bug#885168: ICP for one index + potential ORDER BY for another +--echo # + +CREATE TABLE t1 (a varchar(64), b varchar(10), INDEX(a), INDEX(b)) ; +INSERT INTO t1 VALUES + ('Ohio','Iowa'), ('k','d'), ('bdkpj','mbdkpjdanp'), ('d','xdmbdkpjda'), + ('fkxdmbdkpjdanpje','o'), ('f','Pennsylvan'), ('Virginia','ei'); + +SET SESSION optimizer_switch='index_condition_pushdown=off'; +--replace_column 9 # +EXPLAIN +SELECT * FROM t1 + WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania' + ORDER BY a; +SELECT * FROM t1 + WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania' + ORDER BY a; + +SET SESSION optimizer_switch='index_condition_pushdown=on'; +--replace_column 9 # +EXPLAIN +SELECT * FROM t1 + WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania' + ORDER BY a; +SELECT * FROM t1 + WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania' + ORDER BY a; + +DROP TABLE t1; + +--echo # +--echo # Bug#886145: join with ICP + ORDER BY +--echo # + +CREATE TABLE t1 (b int NOT NULL, c int, a varchar(1024), PRIMARY KEY (b)); +INSERT INTO t1 VALUES (1,4,'Ill'); +insert into t1 select seq+100,5,seq from seq_1_to_100; + +CREATE TABLE t2 (a varchar(1024), KEY (a(512))); +INSERT INTO t2 VALUES + ('Ill'), ('eckqzsflbzaffti'), ('w'), ('she'), ('gxbwypqtjzwywwer'), ('w'); +insert into t2 select seq from seq_1_to_100; + +analyze table t1,t2 persistent for all; +SET SESSION optimizer_switch='index_condition_pushdown=off'; +--replace_column 9 # +EXPLAIN +SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND (t1.b<0 OR t1.b>0) + HAVING t1.c != 5 ORDER BY t1.c; +SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND (t1.b<0 OR t1.b>0) + HAVING t1.c != 5 ORDER BY t1.c; + +SET SESSION optimizer_switch='index_condition_pushdown=on'; +--replace_column 9 # +EXPLAIN +SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND (t1.b<0 OR t1.b>0) + HAVING t1.c != 5 ORDER BY t1.c; +SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND (t1.b<0 OR t1.b>0) + HAVING t1.c != 5 ORDER BY t1.c; + +DROP TABLE t1,t2; + +--echo # +--echo # Bug#879871: InnoDB: possible ICP + GROUP BY primary index +--echo # + +CREATE TABLE t1 ( + a int NOT NULL, b int, c varchar(1), d varchar(1), + PRIMARY KEY (a), KEY c (c,b) +); +INSERT INTO t1 VALUES (10,8,'g','g'); + +SET SESSION optimizer_switch='index_condition_pushdown=off'; +SELECT a FROM t1 WHERE c IS NULL AND d IS NOT NULL GROUP BY 1; + +SET SESSION optimizer_switch='index_condition_pushdown=on'; +SELECT a FROM t1 WHERE c IS NULL AND d IS NOT NULL GROUP BY 1; + +DROP TABLE t1; + + +--echo # +--echo # Bug#904832: an attempt to perform an index condition pushdown +--echo # of a condition containing a subquery +--echo # + +CREATE TABLE t1 ( + a INT PRIMARY KEY NOT NULL AUTO_INCREMENT, + b INT, c INT, d DATE NOT NULL, e VARCHAR(1), + KEY (c), KEY (d), KEY k2(b), KEY k3(b), KEY k4(b) +); + +INSERT INTO t1 (b,c,d,e) VALUES +(6,5,'2006-05-25','y'),(1,5,'2008-01-23','t'), +(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'), +(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'), +(4,5,'2001-06-05','x'),(1,5,'2008-01-23','t'), +(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'), +(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'), +(4,5,'2001-06-05','x'),(1,5,'2008-01-23','t'), +(4,5,'1900-01-01','r'),(8,5,'1900-01-01','m'), +(4,5,'2006-03-09','b'),(4,5,'2001-06-05','x'), +(1,5,'2008-01-23','t'),(6,5,'2007-06-18','d'), +(4,5,'1900-01-01','r'),(8,5,'1900-01-01','m'), +(4,5,'2006-03-09','b'),(4,5,'2001-06-05','f'), +(4,5,'2001-06-05','x'),(8,5,'1900-01-01','m'), +(4,5,'2006-03-09','b'),(4,5,'2001-06-05','x'), +(1,5,'2008-01-23','t'),(6,5,'2007-06-18','d'), +(4,5,'1900-01-01','r'),(8,5,'1900-01-01','m'), +(4,5,'2006-03-09','b'),(6,5,'2007-06-18','d'), +(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'), +(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'), +(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'), +(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'), +(4,5,'2006-03-09','b'),(4,5,'2001-06-05','x'), +(1,5,'2008-01-23','t'),(6,5,'2007-06-18','d'), +(4,5,'1900-01-01','r'),(8,5,'1900-01-01','m'), +(4,5,'2006-03-09','b'),(4,5,'2001-06-05','x'), +(4,5,'2001-06-05','x'),(1,5,'2008-01-23','t'), +(6,5,'2007-06-18','d'),(4,5,'1900-01-01','r'), +(8,5,'1900-01-01','m'),(4,5,'2006-03-09','b'), +(4,5,'2001-06-05','x'),(1,5,'2008-01-23','t'), +(6,5,'2007-06-18','d'),(4,1,'1900-01-01','r'), +(8,8,'1900-01-01','m'),(4,1,'2006-03-09','b'), +(4,1,'2001-06-05','x'),(7,1,'2006-05-28','g'); + +CREATE TABLE t2 ( + f INT PRIMARY KEY NOT NULL AUTO_INCREMENT, + g INT, + h VARCHAR(1), + KEY (g) +); + +INSERT INTO t2 (g,h) VALUES +(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'), +(5,'l'),(8,'y'),(0,'p'),(0,'f'),(0,'p'),(7,'d'), +(7,'f'),(5,'j'),(3,'e'),(1,'u'),(4,'v'),(9,'u'), +(6,'i'),(1,'x'),(5,'l'),(8,'y'),(0,'p'),(0,'f'), +(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'), +(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'), +(7,'d'),(7,'f'),(5,'j'),(3,'e'),(1,'u'),(4,'v'), +(9,'u'),(6,'i'),(1,'x'),(5,'l'),(8,'y'),(0,'p'), +(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'),(3,'e'), +(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),(5,'l'), +(6,'q'),(2,'n'),(4,'r'),(4,'b'),(8,'y'),(0,'p'), +(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'),(3,'e'), +(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),(5,'l'), +(8,'y'),(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'), +(5,'j'),(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'), +(1,'x'),(5,'l'),(8,'y'),(0,'p'),(0,'f'),(0,'p'), +(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'),(3,'e'), +(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'),(7,'d'), +(7,'f'),(5,'j'),(3,'e'),(1,'u'),(0,'f'),(0,'p'), +(7,'d'),(7,'f'),(5,'j'),(3,'e'),(1,'u'),(4,'v'), +(9,'u'),(6,'i'),(1,'x'),(5,'l'),(8,'y'),(0,'p'), +(0,'f'),(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'), +(5,'j'),(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'), +(1,'x'),(7,'d'),(7,'f'),(5,'j'),(3,'e'),(1,'u'), +(4,'v'),(9,'u'),(6,'i'),(1,'x'),(5,'l'),(8,'y'), +(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'), +(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'), +(5,'l'),(6,'q'),(2,'n'),(4,'r'),(4,'b'),(8,'y'), +(0,'p'),(0,'f'),(0,'p'),(7,'d'),(7,'f'),(5,'j'), +(3,'e'),(1,'u'),(4,'v'),(9,'u'),(6,'i'),(1,'x'), +(7,'f'),(5,'j'),(3,'e'),(1,'u'),(4,'v'),(9,'u'); + +ANALYZE TABLE t1,t2; + +SET @save_optimize_switch=@@optimizer_switch; +SET optimizer_switch='materialization=on'; + +EXPLAIN +SELECT COUNT(*) FROM t1 AS t, t2 +WHERE c = g + AND (EXISTS (SELECT * FROM t1, t2 WHERE a = f AND h <= t.e AND a > t.b) + OR a = 0 AND h < 'z' ); + +SELECT COUNT(*) FROM t1 AS t, t2 +WHERE c = g + AND (EXISTS (SELECT * FROM t1, t2 WHERE a = f AND h <= t.e AND a > t.b) + OR a = 0 AND h < 'z' ); +SELECT COUNT(*) FROM t1 AS t, t2 +WHERE c = g + AND (EXISTS (SELECT * FROM t1, t2 WHERE a = f AND h <= t.e AND a > t.b) + OR a = 0 AND h < 'z' ); + +SET optimizer_switch=@save_optimizer_switch; + +DROP TABLE t1,t2; + +--disable_ps2_protocol +--echo # check "Handler_pushed" status varuiables +CREATE TABLE t1 ( + c1 CHAR(1), + c2 CHAR(1), + KEY (c1) +); + +INSERT INTO t1 VALUES ('3', '3'),('4','4'),('5','5'); + +flush status; +show status like "Handler_icp%"; + +SELECT * FROM t1 FORCE INDEX(c1) WHERE (c1='3' or c1='4') and c1 % 2 = 0 ; + +show status like "Handler_icp%"; + +SELECT * FROM t1 WHERE (c2='3' or c2='4') and c2 % 2 = 0 ; + +show status like "Handler_icp%"; + +DROP TABLE t1; +--enable_ps2_protocol + +# +# MDEV-308 lp:1008516 - Failing assertion: templ->mysql_col_len == len +# +create table t1 (a int,b char(5),primary key (a), key (b(1))); +insert ignore into t1 values ('a','b'); +select 1 from t1 where a and b >= 'aa'; +drop table t1; + +--echo # +--echo # Bug#58015 "Assert in row_sel_field_store_in_mysql_format +--echo # when running innodb_mrr_icp test" +--echo # + +create table t1 (a char(2) charset utf8,b double, primary key (a(1)),key (b)); +insert into t1 values ('',1); +select 1 from t1 where b <= 1 and a <> ''; +drop table t1; + +--echo # +--echo # MDEV-4778: Incorrect results from Aria/MyISAM SELECT using index with prefix length on TEXT column +--echo # +CREATE TABLE t1 ( + c1 TEXT , + c2 VARCHAR(2) , + INDEX idx1 (c2,c1(2)), + INDEX idx2 (c2,c1(1)) +); + +INSERT INTO t1 (c1,c2) VALUES ('aa','x'), ('a' ,'y'); + +SELECT * FROM t1 IGNORE INDEX(idx1,idx2) WHERE (c1='aa' AND c2='x') OR (c1='a' AND c2='y'); + +EXPLAIN +SELECT * FROM t1 FORCE INDEX(idx1) WHERE (c1='aa' AND c2='x') OR (c1='a' AND c2='y'); +SELECT * FROM t1 FORCE INDEX(idx1) WHERE (c1='aa' AND c2='x') OR (c1='a' AND c2='y'); + +SELECT * FROM t1 FORCE INDEX(idx2) WHERE (c1='aa' AND c2='x') OR (c1='a' AND c2='y'); + +DROP TABLE t1; diff --git a/mysql-test/include/implicit_commit_helper.inc b/mysql-test/include/implicit_commit_helper.inc new file mode 100644 index 00000000..5e87b2db --- /dev/null +++ b/mysql-test/include/implicit_commit_helper.inc @@ -0,0 +1,5 @@ +INSERT INTO db1.trans (a) VALUES (1); +--disable_result_log +eval $statement; +--enable_result_log +CALL db1.test_if_commit(); diff --git a/mysql-test/include/index_merge1.inc b/mysql-test/include/index_merge1.inc new file mode 100644 index 00000000..91609f62 --- /dev/null +++ b/mysql-test/include/index_merge1.inc @@ -0,0 +1,557 @@ +# include/index_merge1.inc +# +# Index merge tests +# +# The variable +# $merge_table_support -- 1 storage engine supports merge tables +# -- 0 storage engine does not support merge tables +# has to be set before sourcing this script. +# +# Note: The comments/expectations refer to MyISAM. +# They might be not valid for other storage engines. +# +# Last update: +# 2006-08-02 ML test refactored +# old name was t/index_merge.test +# main code went into include/index_merge1.inc +# +--source include/have_sequence.inc + +--echo #---------------- Index merge test 1 ------------------------------------------- + +# Create and fill a table with simple keys +create table t0 +( + key1 int not null, + INDEX i1(key1) +); + +insert into t0(key1) select seq from seq_1_to_1024; + +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 > 920 and key1 < 924; + +# 2. Simple cases +explain +select * from t0 where key1 < 3 or key2 > 920 and key2 < 924; +select * from t0 where key1 < 3 or key2 > 920 and key2 < 924; + +select * from t0 where key1=1022; # MDEV-13535 no-key-read select after keyread + +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); +# Bug#21277: InnoDB, wrong result set, index_merge strategy, second index not evaluated +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>). +select count(*) 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 + ((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 < 4 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 < 4 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)); + +explain select * from t0 force index(i1, i2, i3, i4, i5, i6 ) where + ((key3 < 10 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 < 600 or key2 < 600; + +# 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 seq,seq,seq div 10, seq % 10, seq % 10, seq from seq_1_to_1024; + +# 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 +set @tmp_optimizer_switch=@@optimizer_switch; +set optimizer_switch='derived_merge=off,derived_with_keys=off'; +explain select * from (select * from t1 where key1 = 3 or key2 =3) as Z where key8 >5; +set optimizer_switch=@tmp_optimizer_switch; + +# 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; +# Bug#21277: InnoDB, wrong result set, index_merge strategy, second index not evaluated +select * from t0 where key1 < 3 or key2 < 4; + +update t0 set key8=123 where key1 < 3 or key2 < 4; +# Bug#21277: InnoDB, wrong result set, index_merge strategy, second index not evaluated +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 + +# enable view-protocol after fix MDEV-27871 +--disable_view_protocol + +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= 4096; +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 straight_join 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 straight_join 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; + +--enable_view_protocol + +# 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; +begin; +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; +} +commit; + +--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; + +if ($merge_table_support) +{ +# +# BUG#17314: Index_merge/intersection not chosen by the optimizer for MERGE tables +# +create table t1 ( + a int, b int, + filler1 char(200), filler2 char(200), + key(a),key(b) +); +insert into t1 select @v:= seq % 10, @v, 't1', 'filler2' from seq_1_to_1000; + +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 t1, t2, t3; +} + +# +# BUG#20256 - LOCK WRITE - MyISAM +# +--disable_service_connection +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; +--enable_service_connection + +# +# 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=2 or b=2; +--sorted_result +select * from t2 where a=2 or b=2; + +drop table t1, t2; + +# +# Bug #37943: Reproducible mysqld crash/sigsegv in sel_trees_can_be_ored +# + +CREATE TABLE t1 (a varchar(8), b set('a','b','c','d','e','f','g','h'), + KEY b(b), KEY a(a)); +INSERT INTO t1 VALUES ('y',''), ('z',''); + +#should not crash +SELECT b,a from t1 WHERE (b!='c' AND b!='f' && b!='h') OR + (a='pure-S') OR (a='DE80337a') OR (a='DE80799'); + +DROP TABLE t1; + +--echo # +--echo # BUG#40974: Incorrect query results when using clause evaluated using range check +--echo # +create table t1 (a int); +insert into t1 values (1),(2); +create table t2(a int, b int); +insert into t2 values (1,1), (2, 1000); +create table t3 (a int, b int, filler char(100), key(a), key(b)); + +insert into t3 select 1000, 1000,'filler' from seq_1_to_1000; +insert into t3 values (1,1,'data'); +insert into t3 values (1,1,'data'); +-- echo The plan should be ALL/ALL/ALL(Range checked for each record (index map: 0x3) +explain select * from t1 +where exists (select 1 from t2, t3 + where t2.a=t1.a and (t3.a=t2.b or t3.b=t2.b or t3.b=t2.b+1)); + +select * from t1 +where exists (select 1 from t2, t3 + where t2.a=t1.a and (t3.a=t2.b or t3.b=t2.b or t3.b=t2.b+1)); + +drop table t1, t2, t3; + +--echo # +--echo # BUG#44810: index merge and order by with low sort_buffer_size +--echo # crashes server! +--echo # +CREATE TABLE t1(a VARCHAR(128),b VARCHAR(128),KEY(A),KEY(B)); +INSERT INTO t1 SELECT REPEAT('a',128),REPEAT('b',128) FROM seq_1_to_64; +SET SESSION sort_buffer_size=1024*8; +EXPLAIN +SELECT * FROM t1 FORCE INDEX(a,b) WHERE a LIKE 'a%' OR b LIKE 'b%' + ORDER BY a,b; +# we don't actually care about the result : we're checking if it crashes +--disable_result_log +SELECT * FROM t1 FORCE INDEX(a,b) WHERE a LIKE 'a%' OR b LIKE 'b%' + ORDER BY a,b; +--enable_result_log + +SET SESSION sort_buffer_size=DEFAULT; +DROP TABLE t1; + + +--echo End of 5.0 tests diff --git a/mysql-test/include/index_merge2.inc b/mysql-test/include/index_merge2.inc new file mode 100644 index 00000000..ecb16f54 --- /dev/null +++ b/mysql-test/include/index_merge2.inc @@ -0,0 +1,433 @@ +# include/index_merge2.inc +# +# Index merge tests +# +# Note: The comments/expectations refer to InnoDB. +# They might be not valid for other storage engines. +# +# Last update: +# 2006-08-02 ML test refactored +# old name was t/index_merge_innodb.test +# main code went into include/index_merge2.inc +# +--source include/have_sequence.inc + +--echo #---------------- Index merge test 2 ------------------------------------------- + +create table t1 +( + key1 int not null, + key2 int not null, + + INDEX i1(key1), + INDEX i2(key2) +); + +INSERT INTO t1 SELECT seq,200-seq FROM seq_0_to_200; + +# 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) +); +show warnings; +INSERT INTO t1 (key1, key2, filler) +SELECT seq/4, seq/8, 'filler-data' FROM seq_30_to_0; +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) +); + +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; + +--replace_column 9 REF +--replace_result i2,i1 i1,i2 +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; + +--replace_column 9 REF +--replace_result i3,i1 i1,i3 +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) +); +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`) +) 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) +); + +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) +) 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; + +# BUG#21277: Index Merge/sort_union: wrong query results +create table t1 +( + key1 int not null, + key2 int not null default 0, + key3 int not null default 0 +); + +insert into t1(key1) select seq from seq_1_to_1024; +alter table t1 add index i2(key2); +alter table t1 add index i3(key3); +update t1 set key2=key1,key3=key1; + +insert into t1 select 10000+key1, 10000+key2,10000+key3 from t1; +analyze table t1; + +# to test the bug, the following must use "sort_union": +--replace_column 9 REF +explain select * from t1 where (key3 > 30 and key3<35) or (key2 >32 and key2 < 40); +select * from t1 where (key3 > 30 and key3<35) or (key2 >32 and key2 < 40); +drop table t1; + +--echo # +--echo # Bug#56423: Different count with SELECT and CREATE SELECT queries +--echo # + +CREATE TABLE t1 ( + a INT, + b INT, + c INT, + d INT, + PRIMARY KEY (a), + KEY (c), + KEY bd (b,d) +); + +INSERT INTO t1 VALUES +(1, 0, 1, 0), +(2, 1, 1, 1), +(3, 1, 1, 1), +(4, 0, 1, 1); + +EXPLAIN +SELECT a +FROM t1 +WHERE c = 1 AND b = 1 AND d = 1; + +CREATE TABLE t2 ( a INT ) +SELECT a +FROM t1 +WHERE c = 1 AND b = 1 AND d = 1; + +SELECT * FROM t2; + +DROP TABLE t1, t2; + +CREATE TABLE t1( a INT, b INT, KEY(a), KEY(b) ); +INSERT INTO t1 VALUES (1, 2), (1, 2), (1, 2), (1, 2); +SELECT * FROM t1 FORCE INDEX(a, b) WHERE a = 1 AND b = 2; + +DROP TABLE t1; + +--echo # Code coverage of fix. +CREATE TABLE t1 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b INT); +INSERT INTO t1 (b) VALUES (1); +UPDATE t1 SET b = 2 WHERE a = 1; +SELECT * FROM t1; + +CREATE TABLE t2 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(1) ); +INSERT INTO t2 (b) VALUES ('a'); +UPDATE t2 SET b = 'b' WHERE a = 1; +SELECT * FROM t2; + +DROP TABLE t1, t2; + +# The test was inactive for InnoDB at the time of pushing. The following is +# expected result for the Bug#56423 test. It can be uncommented and pasted +# into result file when reactivating the test. + +## +## Bug#56423: Different count with SELECT and CREATE SELECT queries +## +#CREATE TABLE t1 ( +#a INT, +#b INT, +#c INT, +#d INT, +#PRIMARY KEY (a), +#KEY (c), +#KEY bd (b,d) +#); +#INSERT INTO t1 VALUES +#(1, 0, 1, 0), +#(2, 1, 1, 1), +#(3, 1, 1, 1), +#(4, 0, 1, 1); +#EXPLAIN +#SELECT a +#FROM t1 +#WHERE c = 1 AND b = 1 AND d = 1; +#id select_type table type possible_keys key key_len ref rows Extra +#1 SIMPLE t1 ref c,bd bd 10 const,const 2 Using where +#CREATE TABLE t2 ( a INT ) +#SELECT a +#FROM t1 +#WHERE c = 1 AND b = 1 AND d = 1; +#SELECT * FROM t2; +#a +#2 +#3 +#DROP TABLE t1, t2; +#CREATE TABLE t1( a INT, b INT, KEY(a), KEY(b) ); +#INSERT INTO t1 VALUES (1, 2), (1, 2), (1, 2), (1, 2); +#SELECT * FROM t1 FORCE INDEX(a, b) WHERE a = 1 AND b = 2; +#a b +#1 2 +#1 2 +#1 2 +#1 2 +#DROP TABLE t1; +## Code coverage of fix. +#CREATE TABLE t1 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b INT); +#INSERT INTO t1 (b) VALUES (1); +#UPDATE t1 SET b = 2 WHERE a = 1; +#SELECT * FROM t1; +#a b +#1 2 +#CREATE TABLE t2 ( a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, b VARCHAR(1) ); +#INSERT INTO t2 (b) VALUES ('a'); +#UPDATE t2 SET b = 'b' WHERE a = 1; +#SELECT * FROM t2; +#a b +#1 b +#DROP TABLE t1, t2; diff --git a/mysql-test/include/index_merge_2sweeps.inc b/mysql-test/include/index_merge_2sweeps.inc new file mode 100644 index 00000000..836f8379 --- /dev/null +++ b/mysql-test/include/index_merge_2sweeps.inc @@ -0,0 +1,49 @@ +# include/index_merge_2sweeps.inc +# +# 2-sweeps read Index_merge test +# +# Last update: +# 2006-08-02 ML test refactored +# old name was index_merge_innodb2.test +# main code went into include/index_merge_2sweeps.inc +# +--source include/have_sequence.inc + +--echo #---------------- 2-sweeps read Index merge test 2 ------------------------------- + +create table t1 ( + pk int primary key, + key1 int, + key2 int, + filler char(200), + filler2 char(200), + index(key1), + index(key2) +); + +insert into t1 select seq, seq, seq, 'filler-data', 'filler-data-2' +from seq_1000_to_1; + +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/include/index_merge_ror.inc b/mysql-test/include/index_merge_ror.inc new file mode 100644 index 00000000..8a55ef1a --- /dev/null +++ b/mysql-test/include/index_merge_ror.inc @@ -0,0 +1,291 @@ +# include/index_merge_ror.inc +# +# ROR-index_merge tests. +# +# The variable +# $engine_type -- storage engine to be tested +# has to be set before sourcing this script. +# +# Note: The comments/expectations refer to MyISAM. +# They might be not valid for other storage engines. +# +# Last update: +# 2006-08-02 ML test refactored +# old name was t/index_merge_ror.test +# main code went into include/index_merge_ror.inc +# + +--echo #---------------- ROR-index_merge tests ----------------------- + +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; +--disable_query_log +--echo # Printing of many insert into t0 values (....) disabled. +begin; +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; +} +commit; +--enable_query_log + +alter table t1 disable keys; +--disable_query_log +--echo # Printing of many insert into t1 select .... from t0 disabled. +let $1=4; +begin; +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; +} +commit; + +--echo # Printing of many insert into t1 (...) values (....) disabled. +# 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; +begin; +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; +} +commit; +--enable_query_log +alter table t1 enable keys; +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; +begin; +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; +commit; +--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/include/index_merge_ror_cpk.inc b/mysql-test/include/index_merge_ror_cpk.inc new file mode 100644 index 00000000..9ebca3cd --- /dev/null +++ b/mysql-test/include/index_merge_ror_cpk.inc @@ -0,0 +1,139 @@ +# include/index_merge_ror_cpk.inc +# +# Clustered PK ROR-index_merge tests +# +# Note: The comments/expectations refer to InnoDB. +# They might be not valid for other storage engines. +# +# Last update: +# 2006-08-02 ML test refactored +# old name was t/index_merge_ror_cpk.test +# main code went into include/index_merge_ror_cpk.inc +# + +--source include/have_sequence.inc + +--echo #---------------- Clustered PK ROR-index_merge tests ----------------------------- + +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) +); + +--disable_query_log +begin; +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; +} +commit; +--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; +set @tmp_index_merge_ror_cpk=@@optimizer_switch; +set optimizer_switch='extended_keys=off'; +--replace_column 9 ROWS +explain select * from t1 where pk1 < 7500 and key1 = 10; +set optimizer_switch=@tmp_index_merge_ror_cpk; + +# 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; + +# Note: The following is actually a deficiency, it uses sort_union currently. +# This comment refers to InnoDB and is probably not valid for other engines. +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) +) 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; + +--echo # +--echo # Bug#50402 Optimizer producing wrong results when using Index Merge on InnoDB +--echo # +CREATE TABLE t1 (f1 INT, PRIMARY KEY (f1)); +INSERT INTO t1 VALUES (2); +CREATE TABLE t2 (f1 INT, f2 INT, f3 char(1), + PRIMARY KEY (f1), KEY (f2), KEY (f3) ); +INSERT INTO t2 VALUES (1, 1, 'h'), (2, 3, 'h'), (3, 2, ''), (4, 2, ''); + +SELECT t1.f1 FROM t1 +WHERE (SELECT COUNT(*) FROM t2 WHERE t2.f3 = 'h' AND t2.f2 = t1.f1) = 0 AND t1.f1 = 2; + +EXPLAIN SELECT t1.f1 FROM t1 +WHERE (SELECT COUNT(*) FROM t2 WHERE t2.f3 = 'h' AND t2.f2 = t1.f1) = 0 AND t1.f1 = 2; + +DROP TABLE t1,t2; diff --git a/mysql-test/include/innodb-index.inc b/mysql-test/include/innodb-index.inc new file mode 100644 index 00000000..37de3162 --- /dev/null +++ b/mysql-test/include/innodb-index.inc @@ -0,0 +1,26 @@ +--eval create table t1(a int not null, b int, c char(10), d varchar(20), primary key (a)) engine = innodb default charset=$charset +insert into t1 values (1,1,'ab','ab'),(2,2,'ac','ac'),(3,2,'ad','ad'),(4,4,'afe','afe'); +commit; +--error ER_DUP_ENTRY +alter table t1 add unique index (b); +insert into t1 values(8,9,'fff','fff'); +select * from t1; +show create table t1; +alter table t1 add index (b); +insert into t1 values(10,10,'kkk','iii'); +select * from t1; +select * from t1 force index(b) order by b; +explain select * from t1 force index(b) order by b; +show create table t1; +alter table t1 add unique index (c), add index (d); +insert into t1 values(11,11,'aaa','mmm'); +select * from t1; +select * from t1 force index(b) order by b; +select * from t1 force index(c) order by c; +select * from t1 force index(d) order by d; +explain select * from t1 force index(b) order by b; +explain select * from t1 force index(c) order by c; +explain select * from t1 force index(d) order by d; +show create table t1; +check table t1; +drop table t1; diff --git a/mysql-test/include/innodb_checksum_algorithm.combinations b/mysql-test/include/innodb_checksum_algorithm.combinations new file mode 100644 index 00000000..4bdd89ae --- /dev/null +++ b/mysql-test/include/innodb_checksum_algorithm.combinations @@ -0,0 +1,6 @@ +[strict_crc32] +--innodb-checksum-algorithm=strict_crc32 +--innodb-flush-sync=OFF + +[strict_full_crc32] +--innodb-checksum-algorithm=strict_full_crc32 diff --git a/mysql-test/include/innodb_checksum_algorithm.inc b/mysql-test/include/innodb_checksum_algorithm.inc new file mode 100644 index 00000000..c841fece --- /dev/null +++ b/mysql-test/include/innodb_checksum_algorithm.inc @@ -0,0 +1 @@ +--source include/have_innodb.inc diff --git a/mysql-test/include/innodb_encrypt_log.combinations b/mysql-test/include/innodb_encrypt_log.combinations new file mode 100644 index 00000000..fd21a57c --- /dev/null +++ b/mysql-test/include/innodb_encrypt_log.combinations @@ -0,0 +1,7 @@ +[crypt] +innodb_encrypt_log=ON +innodb_encryption_rotate_key_age=1 +plugin_load_add=$DEBUG_KEY_MANAGEMENT_SO + +[clear] +skip_innodb_encrypt_log diff --git a/mysql-test/include/innodb_encrypt_log.inc b/mysql-test/include/innodb_encrypt_log.inc new file mode 100644 index 00000000..5beebeae --- /dev/null +++ b/mysql-test/include/innodb_encrypt_log.inc @@ -0,0 +1,4 @@ +# The goal of including this file is to enable innodb_encrypt_log combinations +# (see include/innodb_encrypt_log.combinations) + +--source include/have_innodb.inc diff --git a/mysql-test/include/innodb_encrypt_tables.combinations b/mysql-test/include/innodb_encrypt_tables.combinations new file mode 100644 index 00000000..4ca9b672 --- /dev/null +++ b/mysql-test/include/innodb_encrypt_tables.combinations @@ -0,0 +1,14 @@ +[crypt] +innodb_encrypt_tables=ON +plugin-load-add=$FILE_KEY_MANAGEMENT_SO +loose-file-key-management +loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys.txt +file-key-management-encryption-algorithm=aes_cbc + +[clear] +innodb_encrypt_tables=OFF +plugin-load-add=$FILE_KEY_MANAGEMENT_SO +loose-file-key-management +loose-file-key-management-filename=$MYSQL_TEST_DIR/std_data/keys.txt +file-key-management-encryption-algorithm=aes_cbc + diff --git a/mysql-test/include/innodb_encrypt_tables.inc b/mysql-test/include/innodb_encrypt_tables.inc new file mode 100644 index 00000000..31ab7999 --- /dev/null +++ b/mysql-test/include/innodb_encrypt_tables.inc @@ -0,0 +1,4 @@ +# The goal of including this file is to enable innodb_encrypt_tables combinations +# (see include/innodb_encrypt_tables.combinations) + +--source include/have_innodb.inc diff --git a/mysql-test/include/innodb_page_size.combinations b/mysql-test/include/innodb_page_size.combinations new file mode 100644 index 00000000..e009b9ef --- /dev/null +++ b/mysql-test/include/innodb_page_size.combinations @@ -0,0 +1,19 @@ +[64k] +innodb-page-size=64K +innodb-buffer-pool-size=24M + +[32k] +innodb-page-size=32K +innodb-buffer-pool-size=24M + +[16k] +innodb-page-size=16K +--skip-innodb-read-only-compressed + +[8k] +innodb-page-size=8K +--skip-innodb-read-only-compressed + +[4k] +innodb-page-size=4K +--skip-innodb-read-only-compressed diff --git a/mysql-test/include/innodb_page_size.inc b/mysql-test/include/innodb_page_size.inc new file mode 100644 index 00000000..754b640d --- /dev/null +++ b/mysql-test/include/innodb_page_size.inc @@ -0,0 +1,4 @@ +# The goal of including this file is to enable innodb_page_size combinations +# (see include/innodb_page_size.combinations) + +--source include/have_innodb.inc diff --git a/mysql-test/include/innodb_page_size_small.combinations b/mysql-test/include/innodb_page_size_small.combinations new file mode 100644 index 00000000..f1818636 --- /dev/null +++ b/mysql-test/include/innodb_page_size_small.combinations @@ -0,0 +1,11 @@ +[16k] +innodb-page-size=16K +skip-innodb-read-only-compressed + +[8k] +innodb-page-size=8K +skip-innodb-read-only-compressed + +[4k] +innodb-page-size=4K +skip-innodb-read-only-compressed diff --git a/mysql-test/include/innodb_page_size_small.inc b/mysql-test/include/innodb_page_size_small.inc new file mode 100644 index 00000000..754b640d --- /dev/null +++ b/mysql-test/include/innodb_page_size_small.inc @@ -0,0 +1,4 @@ +# The goal of including this file is to enable innodb_page_size combinations +# (see include/innodb_page_size.combinations) + +--source include/have_innodb.inc diff --git a/mysql-test/include/innodb_prefix_index_cluster_optimization.combinations b/mysql-test/include/innodb_prefix_index_cluster_optimization.combinations new file mode 100644 index 00000000..ad82f82a --- /dev/null +++ b/mysql-test/include/innodb_prefix_index_cluster_optimization.combinations @@ -0,0 +1,5 @@ +[covering] +innodb_prefix_index_cluster_optimization=on + +[unoptimized] +innodb_prefix_index_cluster_optimization=off diff --git a/mysql-test/include/innodb_prefix_index_cluster_optimization.inc b/mysql-test/include/innodb_prefix_index_cluster_optimization.inc new file mode 100644 index 00000000..c841fece --- /dev/null +++ b/mysql-test/include/innodb_prefix_index_cluster_optimization.inc @@ -0,0 +1 @@ +--source include/have_innodb.inc 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 00000000..274bbe12 --- /dev/null +++ b/mysql-test/include/innodb_rollback_on_timeout.inc @@ -0,0 +1,42 @@ +--source include/have_innodb.inc +# +# Bug #24200: Provide backwards compatibility mode for 4.x "rollback on +# transaction timeout" +# +--disable_warnings +drop table if exists t1; +--enable_warnings + +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/innodb_row_format.combinations b/mysql-test/include/innodb_row_format.combinations new file mode 100644 index 00000000..fb94d61d --- /dev/null +++ b/mysql-test/include/innodb_row_format.combinations @@ -0,0 +1,8 @@ +[redundant] +innodb_default_row_format=redundant + +[compact] +innodb_default_row_format=compact + +[dynamic] +innodb_default_row_format=dynamic diff --git a/mysql-test/include/innodb_row_format.inc b/mysql-test/include/innodb_row_format.inc new file mode 100644 index 00000000..8c6357e5 --- /dev/null +++ b/mysql-test/include/innodb_row_format.inc @@ -0,0 +1,4 @@ +# The goal of including this file is to enable innodb_default_row_format +# combinations (see include/innodb_row_format.combinations) + +--source include/have_innodb.inc diff --git a/mysql-test/include/innodb_trx_weight.inc b/mysql-test/include/innodb_trx_weight.inc new file mode 100644 index 00000000..a1e64276 --- /dev/null +++ b/mysql-test/include/innodb_trx_weight.inc @@ -0,0 +1,55 @@ +-- connect (con1,localhost,root,,) +-- connect (con2,localhost,root,,) + +-- connection con1 +# Enable MDEV-515 table-level undo logging for insert into empty table +SET foreign_key_checks=0, unique_checks=0; +SET autocommit=0; +SELECT * FROM t1 FOR UPDATE; +-- if ($con1_extra_sql_present) { + -- eval $con1_extra_sql +-- } + +-- connection con2 +# Enable MDEV-515 table-level undo logging for insert into empty table +SET foreign_key_checks=0, unique_checks=0; +SET autocommit=0; +SELECT * FROM t2 FOR UPDATE; +-- if ($con2_extra_sql_present) { + -- eval $con2_extra_sql +-- } + +-- if ($con1_should_be_rolledback) { + -- connection con1 + -- send + INSERT INTO t2 VALUES (0); + + -- connection con2 + INSERT INTO t1 VALUES (0); + ROLLBACK; + + -- connection con1 + -- error ER_LOCK_DEADLOCK + -- reap +-- } +# else +-- if (!$con1_should_be_rolledback) { + -- connection con2 + -- send + INSERT INTO t1 VALUES (0); + + -- connection con1 + INSERT INTO t2 VALUES (0); + ROLLBACK; + + -- connection con2 + -- error ER_LOCK_DEADLOCK + -- reap +-- } + +-- connection default + +DELETE FROM t5_nontrans; + +-- disconnect con1 +-- disconnect con2 diff --git a/mysql-test/include/innodb_undo_tablespaces.combinations b/mysql-test/include/innodb_undo_tablespaces.combinations new file mode 100644 index 00000000..0ac7a6e2 --- /dev/null +++ b/mysql-test/include/innodb_undo_tablespaces.combinations @@ -0,0 +1,5 @@ +[undo0] +innodb-undo-tablespaces=0 + +[undo3] +innodb-undo-tablespaces=3 diff --git a/mysql-test/include/innodb_undo_tablespaces.inc b/mysql-test/include/innodb_undo_tablespaces.inc new file mode 100644 index 00000000..b109fcc4 --- /dev/null +++ b/mysql-test/include/innodb_undo_tablespaces.inc @@ -0,0 +1,3 @@ +# The goal of including this file is to enable innodb_undo_tablespaces combinations +# (see include/innodb_undo_tablespaces.combinations) + diff --git a/mysql-test/include/install_plugin_if_exists.inc b/mysql-test/include/install_plugin_if_exists.inc new file mode 100644 index 00000000..c641f020 --- /dev/null +++ b/mysql-test/include/install_plugin_if_exists.inc @@ -0,0 +1,45 @@ +--echo # +--echo # MDEV-16294: INSTALL PLUGIN IF NOT EXISTS / UNINSTALL PLUGIN IF EXISTS +--echo # +--echo # INSTALL IF NOT EXISTS PLUGIN name SONAME library / +--echo # UNINSTALL IF EXISTS PLUGIN|SONAME name +--echo # + +if (!$HA_EXAMPLE_SO) { + skip Needs ha_example plugin; +} + +select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%'; +INSTALL PLUGIN IF NOT EXISTS example SONAME 'ha_example'; +select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%'; + +--replace_regex /\.dll/.so/ +--error ER_PLUGIN_INSTALLED +INSTALL PLUGIN example SONAME 'ha_example'; + +INSTALL PLUGIN IF NOT EXISTS example SONAME 'ha_example'; +SHOW WARNINGS; + +UNINSTALL PLUGIN IF EXISTS example; +select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%'; + +UNINSTALL PLUGIN IF EXISTS example; +SHOW WARNINGS; + +--error ER_SP_DOES_NOT_EXIST +UNINSTALL PLUGIN example; + +INSTALL SONAME 'ha_example'; +select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%'; + +UNINSTALL SONAME IF EXISTS 'ha_example'; + +--replace_regex /\.dll/.so/ +UNINSTALL SONAME IF EXISTS 'ha_example'; +--replace_regex /\.dll/.so/ +SHOW WARNINGS; +select PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE from information_schema.plugins where plugin_library like 'ha_example%'; + +--replace_regex /\.dll/.so/ +--error ER_SP_DOES_NOT_EXIST +UNINSTALL SONAME 'ha_example'; diff --git a/mysql-test/include/io_thd_fault_injection.inc b/mysql-test/include/io_thd_fault_injection.inc new file mode 100644 index 00000000..67b41371 --- /dev/null +++ b/mysql-test/include/io_thd_fault_injection.inc @@ -0,0 +1,20 @@ +# +# Takes the flag as an argument: +# -- let $io_thd_injection_fault_flag=d,fault_injection_new_file_rotate_event +# -- source include/io_thd_fault_injection.inc +# + +SET @saved_debug=@@global.debug_dbug; +-- disable_warnings +-- source include/stop_slave.inc +-- enable_warnings +-- eval SET @@global.debug_dbug="d,$io_thd_injection_fault_flag" + +START SLAVE io_thread; +-- source include/wait_for_slave_io_error.inc + +SET @@global.debug_dbug=@saved_debug; + +# restart because slave is in bad shape +--let $rpl_server_number= 2 +--source include/rpl_restart_server.inc diff --git a/mysql-test/include/ipv6.inc b/mysql-test/include/ipv6.inc new file mode 100644 index 00000000..05c65d78 --- /dev/null +++ b/mysql-test/include/ipv6.inc @@ -0,0 +1,24 @@ +eval CREATE USER testuser@'$IPv6' identified by '1234'; +eval GRANT ALL ON test.* TO testuser@'$IPv6'; +eval SHOW GRANTS FOR testuser@'$IPv6'; +# deliver NULL instead of a valid number, see bug#34037 +eval SET @nip= inet_aton('$IPv6'); +SELECT @nip; +SELECT inet_ntoa(@nip); +# delivers a wrong value, see bug#34037 +--replace_result ::1 localhost +SELECT USER(); +--replace_result ::1 localhost +SELECT current_user(); +--disable_result_log +SHOW PROCESSLIST; +--enable_result_log +connect (con1, $IPv6, root, , test, $MASTER_MYPORT); +connection default; +disconnect con1; +eval REVOKE ALL ON test.* FROM testuser@'$IPv6'; +eval RENAME USER testuser@'$IPv6' to testuser1@'$IPv6'; +eval SET PASSWORD FOR testuser1@'$IPv6' = PASSWORD ('9876'); +--replace_result ::1 localhost +SELECT USER(); +eval DROP USER testuser1@'$IPv6'; diff --git a/mysql-test/include/ipv6_clients.inc b/mysql-test/include/ipv6_clients.inc new file mode 100644 index 00000000..e723e28d --- /dev/null +++ b/mysql-test/include/ipv6_clients.inc @@ -0,0 +1,7 @@ +--exec $MYSQLADMIN --default-character-set=latin1 -h $IPv6 -P $MASTER_MYPORT -u root ping +--disable_result_log +--exec $MYSQL_CHECK -h $IPv6 -P $MASTER_MYPORT -u root test +--exec $MYSQL_DUMP -h $IPv6 -P $MASTER_MYPORT -u root test +--exec $MYSQL_SHOW -h $IPv6 -P $MASTER_MYPORT -u root +--exec $MYSQL --host=$IPv6 --port=$MASTER_MYPORT --user=root test -e "SELECT current_user();SELECT user();" +--enable_result_log diff --git a/mysql-test/include/is_embedded.inc b/mysql-test/include/is_embedded.inc new file mode 100644 index 00000000..a440406e --- /dev/null +++ b/mysql-test/include/is_embedded.inc @@ -0,0 +1,7 @@ +# +# Check if the current used server is an embedded server# +# +if (`SELECT VERSION() NOT LIKE '%embedded%'`) +{ + --skip Test requires: embedded server +} diff --git a/mysql-test/include/is_embedded_no_privileges.inc b/mysql-test/include/is_embedded_no_privileges.inc new file mode 100644 index 00000000..364c697c --- /dev/null +++ b/mysql-test/include/is_embedded_no_privileges.inc @@ -0,0 +1,16 @@ +# +# Test that we do not have an embedded server compiled with privileges. +# This is not a regular setup, but we are running this in buildbot for +# testing of embedded + privileges. +# Some funcs_1 test cannot handle this combination, which is why we have this +# file to disable them +# + +--source include/is_embedded.inc + +let priv=`SELECT privileges FROM information_schema.columns limit 1`; + +if (`SELECT "$priv" <> ""`) +{ + --skip Embedded server is compiled with privileges; Test disabled. +} diff --git a/mysql-test/include/json_hb_histogram.inc b/mysql-test/include/json_hb_histogram.inc new file mode 100644 index 00000000..0820fb5f --- /dev/null +++ b/mysql-test/include/json_hb_histogram.inc @@ -0,0 +1,3 @@ +# Remove non-deterministic parts of JSON_HB histogram + +--replace_regex /("(collected_at|collected_by)": )"[^"]*"/\1"REPLACED"/ diff --git a/mysql-test/include/kill_and_restart_mysqld.inc b/mysql-test/include/kill_and_restart_mysqld.inc new file mode 100644 index 00000000..b67fb735 --- /dev/null +++ b/mysql-test/include/kill_and_restart_mysqld.inc @@ -0,0 +1,15 @@ +if (!$restart_parameters) +{ + let $restart_parameters = restart; +} + +--let $_server_id= `SELECT @@server_id` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect + +--echo # Kill and $restart_parameters +--exec echo "$restart_parameters" > $_expect_file_name +--shutdown_server 0 +--source include/wait_until_disconnected.inc +--enable_reconnect +--source include/wait_until_connected_again.inc +--disable_reconnect diff --git a/mysql-test/include/kill_binlog_dump_threads.inc b/mysql-test/include/kill_binlog_dump_threads.inc new file mode 100644 index 00000000..38e3e2a7 --- /dev/null +++ b/mysql-test/include/kill_binlog_dump_threads.inc @@ -0,0 +1,62 @@ +# ==== Purpose ==== +# +# Terminate all binlog dump threads on a master. +# +# This is sometimes useful, as normally such dump threads can hang +# around for some time before they notice that the slave has disconnected. +# +# Note that if there are active slave connections, they might try to +# reconnect as their dump threads are killed, which may not lead to the +# desired results. +# +# +# ==== Usage ==== +# +# [--let $kill_timeout= NUMBER] +# --source include/stop_slavekill_binlog_dump_threads.inc +# +# Parameters: +# $kill_timeout +# Maximum number of seconds to wait for dump threads to disappear. + + +--let $include_filename= kill_binlog_dump_threads.inc +--source include/begin_include_file.inc + +--disable_query_log + +let $wait_counter= 300; +if ($kill_timeout) +{ + let $wait_counter= `SELECT $kill_timeout * 10`; +} + +let $success= 0; +while ($wait_counter) +{ + dec $wait_counter; + let $_tid= `SELECT id FROM information_schema.processlist WHERE command = 'Binlog Dump' LIMIT 1`; + if ($_tid) + { + eval KILL QUERY $_tid; + } + if (!$_tid) + { + let $wait_counter= 0; + let $success= 1; + } + if (!$success) + { + real_sleep 0.1; + } +} +if (!$success) +{ + SHOW FULL PROCESSLIST; + --die Timeout while waiting for binlog dump threads to disappear. +} + +--enable_query_log + +--let $include_filename= kill_binlog_dump_threads.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/kill_galera.inc b/mysql-test/include/kill_galera.inc new file mode 100644 index 00000000..aba672d8 --- /dev/null +++ b/mysql-test/include/kill_galera.inc @@ -0,0 +1,20 @@ +--echo Killing server ... + +# Write file to make mysql-test-run.pl expect the crash, but don't start it +--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect +--exec echo "wait" > $_expect_file_name + +# Kill the connected server +--disable_reconnect +--let KILL_NODE_PIDFILE = `SELECT @@pid_file` + +--perl + my $pid_filename = $ENV{'KILL_NODE_PIDFILE'}; + my $mysqld_pid = `cat $pid_filename`; + chomp($mysqld_pid); + system("kill -9 $mysqld_pid"); + exit(0); +EOF + +--source include/wait_until_disconnected.inc diff --git a/mysql-test/include/kill_mysqld.inc b/mysql-test/include/kill_mysqld.inc new file mode 100644 index 00000000..01ee7f82 --- /dev/null +++ b/mysql-test/include/kill_mysqld.inc @@ -0,0 +1,7 @@ +--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect + +--echo # Kill the server +--exec echo "wait" > $_expect_file_name +--shutdown_server 0 +--source include/wait_until_disconnected.inc diff --git a/mysql-test/include/kill_query.inc b/mysql-test/include/kill_query.inc new file mode 100644 index 00000000..1c949d3c --- /dev/null +++ b/mysql-test/include/kill_query.inc @@ -0,0 +1,68 @@ +# ==== Purpose ==== +# +# Kill a query in the master connection, and then try to reap the +# result of the killed query. +# +# ==== Usage ==== +# +# The following variables should be set before sourcing this file. +# +# $debug_lock: name of the debug user lock, if set, will release/lock +# the specified debug lock accordingly, and before +# sourcing this, connection 'master' should get the user +# lock and run a query in another thread, which will +# block before creating statement event. +# +# $connection_name: name of the connection that is waiting for the +# lock, this can not be 'master' +# +# $connection_id: id of the connection that is waiting for the lock +# +# Example: +# let $debug_lock=; +# connection master1; +# let $connection_name= master1; +# let $connection_id= `SELECT CONNECTION_ID()`; +# send CREATE TABLE t1; +# source kill_query.inc; +# +# let $debug_lock= "debug_lock.before_query_log_event"; +# connection master; +# eval SELECT GET_LOCK($debug_lock, 10); +# connection master1; +# let $connection_name= master1; +# let $connection_id= `SELECT CONNECTION_ID()`; +# send CREATE TABLE t1; +# source kill_query.inc; + + +--echo source include/kill_query.inc; +disable_query_log; +disable_result_log; +connection master; + +# kill the query that is waiting +eval kill query $connection_id; + +if ($debug_lock) +{ + # release the lock to allow binlog continue + eval SELECT RELEASE_LOCK($debug_lock); +} + +# reap the result of the waiting query +connection $connection_name; +error 0, 1317, 1307, 1306, 1334, 1305, 1034; +reap; + +connection master; + +if ($debug_lock) +{ + # get lock again to make the next query wait + eval SELECT GET_LOCK($debug_lock, 10); +} + +connection $connection_name; +enable_query_log; +enable_result_log; diff --git a/mysql-test/include/kill_query_and_diff_master_slave.inc b/mysql-test/include/kill_query_and_diff_master_slave.inc new file mode 100644 index 00000000..59588551 --- /dev/null +++ b/mysql-test/include/kill_query_and_diff_master_slave.inc @@ -0,0 +1,43 @@ +# ==== Purpose ==== +# +# Kill a query, sync master with slave, and diff the output of a +# statement on master and slave to check if statement is correctly +# replicated. +# +# ==== Usage ==== +# +# connection <CONNECTION>; +# let $connection_name=<CONNECTION> +# let $connection_id=`SELECT CONNECTION_ID()`; +# let $rpl_diff_statement=<SQL COMMAND>; +# send <SQL COMMAND>; +# source include/kill_query_and_diff_master_slave.inc; +# +# Note: <CONNECTION> must not be 'master'. +# +# See also kill_query.inc and rpl_diff.inc for more +# information + +source include/kill_query.inc; + +# Release the debug lock if used, so that the statements in +# rpl_diff.inc will not be blocked. +connection master; +disable_query_log; +disable_result_log; +if ($debug_lock) +{ + eval SELECT RELEASE_LOCK($debug_lock); +} +enable_result_log; +enable_query_log; + +--source include/rpl_diff.inc + +# Acquire the debug lock again if used +connection master; +disable_query_log; disable_result_log; +if ($debug_lock) { eval SELECT GET_LOCK($debug_lock, 10); } +enable_result_log; enable_query_log; + +connection $connection_name; diff --git a/mysql-test/include/lcase_names.combinations b/mysql-test/include/lcase_names.combinations new file mode 100644 index 00000000..7fd344ea --- /dev/null +++ b/mysql-test/include/lcase_names.combinations @@ -0,0 +1,5 @@ +[lcase_def] +[lcase1] +lower_case_table_names=1 +[lcase2] +lower_case_table_names=2 diff --git a/mysql-test/include/lcase_names.inc b/mysql-test/include/lcase_names.inc new file mode 100644 index 00000000..983e2678 --- /dev/null +++ b/mysql-test/include/lcase_names.inc @@ -0,0 +1,2 @@ +# The goal of including this file is to test with different +# lower_case_table_names modes (see include/lcase_name.combinations) diff --git a/mysql-test/include/libdaemon_example.ini b/mysql-test/include/libdaemon_example.ini new file mode 100644 index 00000000..7e7df5bd --- /dev/null +++ b/mysql-test/include/libdaemon_example.ini @@ -0,0 +1,9 @@ +# +# Plugin configuration file. Place the following on a separate line: +# +# library binary file name (without .so or .dll) +# component_name +# [component_name] - additional components in plugin +# +liblibdaemon_example +daemon_example diff --git a/mysql-test/include/linux.inc b/mysql-test/include/linux.inc new file mode 100644 index 00000000..cc126ff1 --- /dev/null +++ b/mysql-test/include/linux.inc @@ -0,0 +1,5 @@ +if (`select @@version_compile_os not LIKE 'Linux%'`) +{ + skip Need Linux; +} + diff --git a/mysql-test/include/linux_sys_vars.inc b/mysql-test/include/linux_sys_vars.inc new file mode 100644 index 00000000..85d7c6df --- /dev/null +++ b/mysql-test/include/linux_sys_vars.inc @@ -0,0 +1,33 @@ +# +# This file contains default,min and max values for sys variables for redhat linux +# + +--disable_query_log + +SET @default_flush_time = 0; +SET @min_flush_time = 0; +#SET @max_flush_time = 0; + +SET @default_key_buffer_size = 131072; + +#SET @default_join_buffer_size = 131072; +#SET @min_join_buffer_size = 8200; +#SET @max_join_buffer_size = 4294967295; + +SET @default_max_join_size = 4294967295; +SET @min_max_join_size = 1; +SET @max_max_join_size = 4294967295; + +SET @default_sql_max_join_size = 4294967295; +SET @min_sql_max_join_size = 1; +SET @max_sql_max_join_size = 4294967295; + +SET @default_sql_select_limit = 4294967295; +SET @min_sql_select_limit = 0; +SET @max_sql_select_limit = 4294967295; + +SET @default_wait_timeout= 28800; +SET @min_wait_timeout= 1; +SET @max_wait_timeout= 31536000; + +--enable_query_log diff --git a/mysql-test/include/load_dump_and_upgrade.inc b/mysql-test/include/load_dump_and_upgrade.inc new file mode 100644 index 00000000..52351ea4 --- /dev/null +++ b/mysql-test/include/load_dump_and_upgrade.inc @@ -0,0 +1,49 @@ +--source include/have_innodb.inc + +# ==== Usage ==== +# +# [--let $old_version= 10.2] +# --source include/load_dump_and_upgrade.inc + +# Dumps stored in std_data as mysql_database_<old_version>.dump +# were pre-created by running mysqldump for `mysql` database +# on a freshly boostrapped instance of the corresponding version. +# On 10.4 the local root was additionally given an empty password, +# to avoid using unix_socket. + +# Backup the existing mysql schema, to restore it later +--exec $MYSQL_DUMP mysql > $MYSQL_TMP_DIR/mysql_database_backup + +--echo # +--echo # Upgrade from version $old_version +--echo # + +# Workaround for MDEV-22127 (can't import database dump created before 10.4) +# The most universal workaround suggested in the item is running +# DROP TABLE IF EXISTS `mysql`.`global_priv`; +# DROP VIEW IF EXISTS `mysql`.`user`; +# before the upgrade. For this test, it is better than creating the dumps +# with --add-drop-database, because +# a) it won't require re-creating the dump when the bug is fixed; +# b) it won't hide possible unrelated problems; +# c) add-drop-database doesn't work with logging into tables enabled (MDEV-4875 and more) + +--exec $MYSQL -e "DROP TABLE IF EXISTS mysql.global_priv; DROP VIEW IF EXISTS mysql.user" + +--echo # Loading dump of $old_version mysql schema +--exec $MYSQL mysql < $MYSQLTEST_VARDIR/std_data/mysql_database_$old_version.dump + +--echo # Running mysql_upgrade +--exec $MYSQL_UPGRADE --verbose > $MYSQL_TMP_DIR/upgrade.log + +--echo # Checking that mysql.user is accessible and returns some data +SELECT COUNT(*) > 0 AS `mysql.user has data` FROM mysql.user; + +# Restore the backup of mysql schema +--exec $MYSQL mysql < $MYSQL_TMP_DIR/mysql_database_backup + +--let $ddir= `select @@datadir` + +# It will fail if the file doesn't exist, which is good, +# which is an extra check that it was written +--remove_file $ddir/mysql_upgrade_info diff --git a/mysql-test/include/load_sysvars.inc b/mysql-test/include/load_sysvars.inc new file mode 100644 index 00000000..bcae9fa8 --- /dev/null +++ b/mysql-test/include/load_sysvars.inc @@ -0,0 +1,15 @@ +# +# This script is included by tests of system variables to include system +# dependant values for the variables: default, minimum and maximum values +# + +if (`SELECT convert(@@version_compile_os using latin1) + IN ('Win32','Win64','Windows')`) +{ + --source include/windows_sys_vars.inc +} +if (!`SELECT convert(@@version_compile_os using latin1) + IN ('Win32','Win64','Windows')`) +{ + --source include/linux_sys_vars.inc +} diff --git a/mysql-test/include/loaddata_autocom.inc b/mysql-test/include/loaddata_autocom.inc new file mode 100644 index 00000000..8c38965f --- /dev/null +++ b/mysql-test/include/loaddata_autocom.inc @@ -0,0 +1,24 @@ +# Test if the engine does autocommit in LOAD DATA INFILE, or not + +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + +--disable_warnings +drop table if exists t1; +--enable_warnings + +let $load_file= $MYSQLTEST_VARDIR/std_data/loaddata2.dat; + +create table t1 (id int unsigned not null auto_increment primary key, a text, b text); +start transaction; +--replace_result $load_file LOAD_FILE +eval load data infile '$load_file' ignore into table t1 fields terminated by ',' enclosed by '''' (a, b); +commit; +select count(*) from t1; +truncate table t1; +start transaction; +--replace_result $load_file LOAD_FILE +eval load data infile '$load_file' ignore into table t1 fields terminated by ',' enclosed by '''' (a, b); +rollback; +select count(*) from t1; + +drop table t1; diff --git a/mysql-test/include/log_grep.inc b/mysql-test/include/log_grep.inc new file mode 100644 index 00000000..a2b0c383 --- /dev/null +++ b/mysql-test/include/log_grep.inc @@ -0,0 +1,85 @@ +if ($log_expected_matches) { + --echo [log_grep.inc] file: $log_file pattern: $grep_pattern expected_matches: $log_expected_matches +} +if (!$log_expected_matches) { + --echo [log_grep.inc] file: $log_file pattern: $grep_pattern +} +--let LOG_GREP_PERL_RESULT=$MYSQL_TMP_DIR/log_grep_perl_result.test +perl; + + open my $command_file, ">", "$ENV{'LOG_GREP_PERL_RESULT'}" or die "Cannot create file"; + + $log_file= $ENV{'log_file'}; + $log_file_full_path= $ENV{'log_file_full_path'}; + $log_slow_rate_test= $ENV{'log_slow_rate_test'}; + open(FILE, "$log_file_full_path") + or die("Cannot open file $log_file_full_path: $!\n"); + + if ($log_slow_rate_test) { + $one= 0; + $two= 0; + $three= 0; + while(<FILE>) { + $one++ if(/'connection_one'/); + $two++ if(/'connection_two'/); + $three++ if(/'connection_three'/); + } + $sum= $one + $two + $three; + $zero= 0; + if ($one == 0) { + $zero++; + } + if ($two == 0) { + $zero++; + } + if ($three == 0) { + $zero++; + } + print "[log_grep.inc] sum: $sum\n"; + print "[log_grep.inc] zero: $zero\n"; + } + else { + $grep_pattern= $ENV{'grep_pattern'}; + $lines= 0; + while(<FILE>) { + $lines++ if (/$grep_pattern/); + } + $log_expected_matches= $ENV{'log_expected_matches'}; + if ($log_expected_matches) { + if ($log_expected_matches != $lines) { + print "[log_grep.inc] ERROR: expected matches: $log_expected_matches, actual matches: $lines\n"; + print "[log_grep.inc] log file at $log_file_full_path\n"; + close(FILE); + open(FILE, "$log_file_full_path") + or die("Cannot open file $log_file_full_path: $!\n"); + while (<FILE>) { + print ; + } + print $command_file "--let \$log_grep_failed= 1;\n"; + } else { + print "[log_grep.inc] found expected match count: $log_expected_matches\n"; + } + } else { + print "[log_grep.inc] lines: $lines\n"; + } + } + close(FILE); + close($command_file); +EOF +--source $LOG_GREP_PERL_RESULT +--remove_file $LOG_GREP_PERL_RESULT +if ($log_grep_failed) +{ + SHOW SESSION STATUS LIKE 'Slow_queries'; + SHOW GLOBAL VARIABLES LIKE 'log%'; + SHOW GLOBAL VARIABLES LIKE 'long_query_time'; + SHOW GLOBAL VARIABLES LIKE 'min_examined_row_limit'; + SHOW GLOBAL VARIABLES LIKE 'query_cache%'; + SHOW GLOBAL VARIABLES LIKE 'slow_query%'; + SHOW SESSION VARIABLES LIKE 'log%'; + SHOW SESSION VARIABLES LIKE 'long_query_time'; + SHOW SESSION VARIABLES LIKE 'min_examined_row_limit'; + SHOW SESSION VARIABLES LIKE 'query_cache%'; + SHOW SESSION VARIABLES LIKE 'slow_query%'; + --die Testcase failed! +} diff --git a/mysql-test/include/log_slow_cleanup.inc b/mysql-test/include/log_slow_cleanup.inc new file mode 100644 index 00000000..f3d87275 --- /dev/null +++ b/mysql-test/include/log_slow_cleanup.inc @@ -0,0 +1,6 @@ +--remove_files_wildcard $MYSQLTEST_VARDIR/tmp $log_slow_prefix-*.slog +--disable_query_log +EVAL SET GLOBAL log_output= $log_output_old; +EVAL SET GLOBAL slow_query_log_file= "$slow_query_log_file_old"; +EVAL SET GLOBAL slow_query_log= $slow_query_log_old; +--enable_query_log diff --git a/mysql-test/include/log_slow_debug_common.inc b/mysql-test/include/log_slow_debug_common.inc new file mode 100644 index 00000000..f8c9075e --- /dev/null +++ b/mysql-test/include/log_slow_debug_common.inc @@ -0,0 +1,20 @@ +CREATE TABLE t1 (a INT); +CREATE INDEX t1a ON t1 (a); +DROP INDEX t1a ON t1; +DROP TABLE t1; +CREATE TABLE t2 (a INT); +ALTER TABLE t2 RENAME t2; +RENAME TABLE t2 TO t3; +DROP TABLE t3; +CREATE TABLE t4 (a INT); +PREPARE stmt FROM 'ALTER TABLE t4 MODIFY a INT DEFAULT 1'; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +DROP TABLE t4; + +CREATE SEQUENCE s4; +ALTER SEQUENCE s4 MAXVALUE 100; +PREPARE stmt FROM 'ALTER SEQUENCE s4 MAXVALUE=101'; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; +DROP SEQUENCE s4; diff --git a/mysql-test/include/log_slow_grep.inc b/mysql-test/include/log_slow_grep.inc new file mode 100644 index 00000000..004c8cce --- /dev/null +++ b/mysql-test/include/log_slow_grep.inc @@ -0,0 +1,25 @@ +# Common extensions to the slow query log +--let grep_pattern = ^# Thread_id: .+ Schema: .+ QC_hit: (Yes|No)\$ +--let log_expected_matches = $log_slow_verbosity_expected_matches +--source include/log_grep.inc +--let grep_pattern = ^# Query_time: \d+\.\d+ Lock_time: \d+\.\d+ Rows_sent: \d+ Rows_examined: \d+\$ +--source include/log_grep.inc + --let grep_pattern = ^# Rows_affected: \d+ Bytes_sent: \d+\$ +--source include/log_grep.inc + +# Query plan +--let log_expected_matches = $log_slow_verbosity_queryplan_expected_matches +--let grep_pattern = ^# Full_scan: (Yes|No) Full_join: (Yes|No) Tmp_table: (Yes|No) Tmp_table_on_disk: (Yes|No)\$ +--source include/log_grep.inc +--let grep_pattern = ^# Filesort: (Yes|No) Filesort_on_disk: (Yes|No) Merge_passes: \d+\ Priority_queue: (Yes|No)\$ +--source include/log_grep.inc + +# Temp tables +--let log_expected_matches = $log_slow_verbosity_tmptable_expected_matches +--source include/log_grep.inc +--let grep_pattern = ^# Tmp_tables: \d+ Tmp_disk_tables: \d+\$ +--source include/log_grep.inc + +# InnoDB/Engines +--let log_expected_matches = $log_slow_innodb_expected_matches +--let grep_pattern = ^# Pages_accessed: \d+ Pages_read: \d+ Pages_updated: \d+ Old_rows_read: \d+\n# Pages_read_time: \d+\.\d+ Engine_time: \d+\.\d+\$ diff --git a/mysql-test/include/log_slow_prepare.inc b/mysql-test/include/log_slow_prepare.inc new file mode 100644 index 00000000..7abc56b7 --- /dev/null +++ b/mysql-test/include/log_slow_prepare.inc @@ -0,0 +1,8 @@ +--disable_query_log +--let slow_query_log_old= `select @@slow_query_log` +--let slow_query_log_file_old= `select @@slow_query_log_file` +--let log_output_old= `select @@log_output` + +SET GLOBAL slow_query_log=0; +SET GLOBAL log_output=FILE; +--enable_query_log diff --git a/mysql-test/include/log_slow_start.inc b/mysql-test/include/log_slow_start.inc new file mode 100644 index 00000000..e562a697 --- /dev/null +++ b/mysql-test/include/log_slow_start.inc @@ -0,0 +1,6 @@ +--disable_query_log +--let log_file_full_path=$MYSQLTEST_VARDIR/tmp/$log_file.slog +--echo [slow_log_start.inc] $log_file +EVAL SET GLOBAL slow_query_log_file="$log_file_full_path"; +SET GLOBAL slow_query_log=1; +--enable_query_log diff --git a/mysql-test/include/log_slow_stop.inc b/mysql-test/include/log_slow_stop.inc new file mode 100644 index 00000000..7ee24af9 --- /dev/null +++ b/mysql-test/include/log_slow_stop.inc @@ -0,0 +1,4 @@ +--disable_query_log +SET GLOBAL slow_query_log=0; +--echo [log_slow_stop.inc] $log_file +--enable_query_log diff --git a/mysql-test/include/long_test.inc b/mysql-test/include/long_test.inc new file mode 100644 index 00000000..765f88b8 --- /dev/null +++ b/mysql-test/include/long_test.inc @@ -0,0 +1,6 @@ +# We use this --source include to mark a test as taking long to run. +# We can use this to schedule such test early (to not be left with +# only one or two long tests running, and rests of works idle), or to +# run a quick test skipping long-running test cases. + +--source include/no_valgrind_without_big.inc diff --git a/mysql-test/include/lowercase0.require b/mysql-test/include/lowercase0.require new file mode 100644 index 00000000..5550a2e9 --- /dev/null +++ b/mysql-test/include/lowercase0.require @@ -0,0 +1,2 @@ +Variable_name Value +lower_case_table_names 0 diff --git a/mysql-test/include/lowercase1.require b/mysql-test/include/lowercase1.require new file mode 100644 index 00000000..0341f838 --- /dev/null +++ b/mysql-test/include/lowercase1.require @@ -0,0 +1,2 @@ +Variable_name Value +lower_case_table_names 1 diff --git a/mysql-test/include/lowercase2.require b/mysql-test/include/lowercase2.require new file mode 100644 index 00000000..522eac63 --- /dev/null +++ b/mysql-test/include/lowercase2.require @@ -0,0 +1,2 @@ +Variable_name Value +lower_case_table_names 2 diff --git a/mysql-test/include/maria_empty_logs.inc b/mysql-test/include/maria_empty_logs.inc new file mode 100644 index 00000000..24b3e3e6 --- /dev/null +++ b/mysql-test/include/maria_empty_logs.inc @@ -0,0 +1,110 @@ +# Maria help script. +# Cleans up all logs to give recovery a fresh start. +# +# Note that this script relies on the number of threads connect at start of +# this script, so one should run this script with a freshly started server +# for it to work. +# +# API: set mel_keep_control_file=1 if want to keep control file; +# uses vardir, port and socket. + +connection default; +let $default_db=`select database()`; +let $MYSQLD_DATADIR= `SELECT @@datadir`; +let $pid_file=`select @@pid_file`; + +#it will used at end of test for wait_for_status_var.inc primitive +#let $status_var= Threads_connected; +#let $status_var_value= query_get_value(SHOW STATUS LIKE 'Threads_connected', Value, 1); + +connection admin; +-- echo * shut down mysqld, removed logs, restarted it +append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; +wait-maria_empty_logs.inc +EOF + +--source include/mysqladmin_shutdown.inc +--source include/wait_until_no_pidfile.inc + +--disable_warnings +if (!$mel_keep_control_file) +{ + --error 0,1 + remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log_control; +} +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000001; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000002; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000003; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000004; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000005; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000006; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000007; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000008; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000009; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000010; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000011; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000012; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000013; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000014; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000015; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000016; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000017; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000018; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000019; +-- error 0,1 +remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log.00000020; +# hope there are not more than these logs... + +-- error 0,1 +remove_file $MYSQLD_DATADIR/aria_recovery.trace; +--enable_warnings + +append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; +restart-maria_empty_logs.inc +EOF + +connection default; +--source include/wait_until_connected_again.inc + +# Make sure that all connections are restored +# This is disabled as 'Threads_connected' can't be trusted' +# (It may be affected by 'check_testcase()') +# --source include/wait_for_status_var.inc +# Restore current database as the effect of "use" was lost after restart + +--disable_query_log +eval use $default_db; +--enable_query_log + +# +# Ensure that we don't get warnings from mysql.priv (used by check_mysqld), +# sys_config or from test running after this one. +# +--disable_query_log +--disable_warnings +--disable_result_log +# Zerofill all Aria tables in mysql and sys +show table status from mysql; +show table status from sys; +--enable_result_log +--enable_warnings +--enable_query_log diff --git a/mysql-test/include/maria_make_snapshot.inc b/mysql-test/include/maria_make_snapshot.inc new file mode 100644 index 00000000..8f45f6b6 --- /dev/null +++ b/mysql-test/include/maria_make_snapshot.inc @@ -0,0 +1,53 @@ +# Maria helper script +# Copies table' data and index file to other directory, or back, or compares. +# The other directory looks like a database directory, so that we can +# read copies from inside mysqld, that's also why we copy the frm. + +# "mms" is a namespace for Maria_Make_Snapshot + +# API: +# 1) set one of +# $mms_copy : to copy table from database to spare directory +# $mms_reverse : to copy it back +# $mms_compare_physically : to compare both byte-for-byte +# 2) set $mms_tname to a string and set $mms_table_to_use to a number: tables +# will be mysqltest.$mms_tname$mms_table_to_use. +# 3) set $mms_purpose to say what this copy is for (influences the naming +# of the spare directory). + +if ($mms_copy) +{ + --echo * copied $mms_tname$mms_table_to_use for $mms_purpose + copy_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAD; + copy_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAI; + copy_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.frm $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.frm; +} + +if ($mms_reverse_copy) +{ + # do not call this without flushing target table first! + --disable_warnings + --echo * copied $mms_tname$mms_table_to_use back for $mms_purpose + -- error 0,1 + remove_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD; + --enable_warnings + copy_file $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAD $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD; + --disable_warnings + -- error 0,1 + remove_file $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI; + --enable_warnings + copy_file $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAI $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI; +} + +if ($mms_compare_physically) +{ + # After the UNDO phase this is normally impossible + # (UNDO execution has created new log records => pages have new LSNs). + # So, do this only when testing REDO phase. + # If UNDO phase, we nevertheless compare checksums + # (see maria_verify_recovery.inc). + --echo * compared $mms_tname$mms_table_to_use to old version + diff_files $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAD $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAD; +# index file not yet recovered +# diff_files $MYSQLD_DATADIR/mysqltest/$mms_tname$mms_table_to_use.MAI $MYSQLD_DATADIR/mysqltest_for_$mms_purpose/$mms_tname$mms_table_to_use.MAI; +} diff --git a/mysql-test/include/maria_make_snapshot_for_comparison.inc b/mysql-test/include/maria_make_snapshot_for_comparison.inc new file mode 100644 index 00000000..0c71bd10 --- /dev/null +++ b/mysql-test/include/maria_make_snapshot_for_comparison.inc @@ -0,0 +1,32 @@ +# Maria helper script +# Copies clean tables' data and index file to other directory +# Tables are $mms_tname1...$mms_tname[$mms_tables] +# They are later used as a reference to see if recovery works. + +# API: +# set $mms_tname to a string, and $mms_tables to a number N, the script will +# cover tables mysqltest.$mms_tname1,...$mms_tnameN + +connection admin; +--source include/wait_until_connected_again.inc + +let $mms_table_to_use=$mms_tables; +let $mms_purpose=comparison; +let $mms_copy=1; + +--disable_query_log +--disable_warnings +eval drop database if exists mysqltest_for_$mms_purpose; +--enable_warnings +eval create database mysqltest_for_$mms_purpose; +--enable_query_log + +while ($mms_table_to_use) +{ + # to serve as a reference, table must be in a clean state + eval flush table $mms_tname$mms_table_to_use; + -- source include/maria_make_snapshot.inc + dec $mms_table_to_use; +} +let $mms_copy=0; +connection default; diff --git a/mysql-test/include/maria_make_snapshot_for_feeding_recovery.inc b/mysql-test/include/maria_make_snapshot_for_feeding_recovery.inc new file mode 100644 index 00000000..fded4cb8 --- /dev/null +++ b/mysql-test/include/maria_make_snapshot_for_feeding_recovery.inc @@ -0,0 +1,41 @@ +# Maria helper script +# Copies tables' data and index file to other directory, and control file. +# Tables are $mms_tname1...$mms_tname[$mms_tables]. +# Later, mysqld is shutdown, and that snapshot is put back into the +# datadir, control file too ("flashing recovery's brain"), and recovery is let +# to run on it (see maria_verify_recovery.inc). + +# API: +# set $mms_tname to a string, and $mms_tables to a number N, the script will +# cover tables mysqltest.$mms_tname1,...$mms_tnameN + + +connection admin; +--source include/wait_until_connected_again.inc + +let $mms_table_to_use=$mms_tables; +let $mms_purpose=feeding_recovery; +let $mms_copy=1; + +--disable_query_log +--disable_warnings +eval drop database if exists mysqltest_for_$mms_purpose; +--enable_warnings +eval create database mysqltest_for_$mms_purpose; +--enable_query_log + +while ($mms_table_to_use) +{ + -- source include/maria_make_snapshot.inc + dec $mms_table_to_use; +} +let $mms_copy=0; + +let $MYSQLD_DATADIR= `SELECT @@datadir`; +--disable_warnings +-- error 0,1 +remove_file $MYSQLTEST_VARDIR/tmp/mms_for_$mms_purpose.aria_log_control; +--enable_warnings +copy_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log_control $MYSQLTEST_VARDIR/tmp/mms_for_$mms_purpose.aria_log_control; + +connection default; diff --git a/mysql-test/include/maria_verify_recovery.inc b/mysql-test/include/maria_verify_recovery.inc new file mode 100644 index 00000000..bb782d5f --- /dev/null +++ b/mysql-test/include/maria_verify_recovery.inc @@ -0,0 +1,111 @@ +# Maria helper script. +# Runs recovery, compare with expected table data. + +# API: +# 1) set $mms_tname to a string, and $mms_tables to a number N, the script +# will cover tables mysqltest.$mms_tname1,...$mms_tnameN +# 2) set $mvr_debug_option to the crash way +# 3) set $mvr_crash_statement to the statement which will trigger a crash +# 4) set $mvr_restore_old_snapshot to 1 if you want recovery to run on +# an old copy of tables and of the control file, 0 for normal recovery. +# 5) set $mms_compare_physically to 1 if you want a physical byte-for-byte +# comparison with expected table. Checksum comparison is always done. +# "mvr" is a namespace for Maria_Verify_Recovery + +connection admin; + +# we may do a copy-back of tables before comparison, so save comparison +# request made by caller: +let $mms_compare_physically_save=$mms_compare_physically; +let $mms_compare_physically=0; + +# warn mtr that mysqld is going to die and should not be restarted immediately +#append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; +#wait-maria_verify_recovery.inc +#EOF +# todo: remove this "system" and uncomment above when BUG#32296 is fixed +system echo wait-maria_verify_recovery.inc >> $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; + +# flush page cache and log, only log, or nothing, and kill mysqld with +# abort(). +# When we restore an old snapshot, we could just kill mysqld nicely, +# but that would implicitely commit all work, which the tester may +# not want (tester may want to observe rollback happening). + +eval SET SESSION debug_dbug=$mvr_debug_option; +--echo * crashing mysqld intentionally +--error 2013 +eval $mvr_crash_statement; # this will crash (DBUG magic) + +if ($mvr_restore_old_snapshot) +{ + + # copy snapshot made by maria_make_snapshot_for_feeding_recovery back + # into datadir. + + let $mms_table_to_use=$mms_tables; + let $mms_purpose=feeding_recovery; + let $mms_reverse_copy=1; + while ($mms_table_to_use) + { + -- source include/maria_make_snapshot.inc + dec $mms_table_to_use; + } + let $mms_reverse_copy=0; + + # also copy back control file, to force recovery to start from an early + # point, ignoring further checkpoints. + -- error 0,1 + remove_file $MYSQLD_DATADIR/$MARIA_LOG/aria_log_control; + copy_file $MYSQLTEST_VARDIR/tmp/mms_for_$mms_purpose.aria_log_control $MYSQLD_DATADIR/$MARIA_LOG/aria_log_control; +} + +--echo * recovery happens +# let mtr restart mysqld (and thus execute the maria log) +#append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; +#restart-maria_verify_recovery.inc +#EOF +system echo restart-maria_verify_recovery.inc >> $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; + +--source include/wait_until_connected_again.inc + +# Compare that tables of $mms_tables are identical to old. +# We always compare with CHECKSUM TABLE, and if requested (which makes sense +# only for testing the REDO phase, as UNDO phase generates new records so new +# LSNs on pages.) with a physical byte-for-byte comparison. +let $mms_table_to_use=$mms_tables; +let $mms_purpose=comparison; +let $mms_compare_physically=$mms_compare_physically_save; +while ($mms_table_to_use) +{ + # the size of the index file is different for with/without encryption + --replace_result 372 <SIZE> 394 <SIZE> + eval check table $mms_tname$mms_table_to_use extended; + --echo * testing that checksum after recovery is as expected + let $new_checksum=`CHECKSUM TABLE $mms_tname$mms_table_to_use`; + let $old_checksum=`CHECKSUM TABLE mysqltest_for_$mms_purpose.$mms_tname$mms_table_to_use`; + # the $ text variables above are of the form "db.tablename\tchecksum", + # as db differs, we use substring(). + --disable_query_log + eval select if(substring("$new_checksum",instr("$new_checksum",".t1")) = substring("$old_checksum",instr("$old_checksum",".t1")),"ok","failure") as "Checksum-check"; + --enable_query_log + # this script may compare physically or do nothing + -- source include/maria_make_snapshot.inc + dec $mms_table_to_use; +} + +connection default; +# the effect of "use" is lost after a restart so we are back into db "test" +use mysqltest; + +# +# Ensure that we don't get warnings from mysql.proc (used by check_mysqld) +# + +--disable_query_log +--disable_warnings +--disable_result_log +select count(*) from mysql.proc; +--enable_result_log +--enable_warnings +--enable_query_log diff --git a/mysql-test/include/master-slave.inc b/mysql-test/include/master-slave.inc new file mode 100644 index 00000000..17c8dd3e --- /dev/null +++ b/mysql-test/include/master-slave.inc @@ -0,0 +1,64 @@ +# ==== Purpose ==== +# +# Configure two servers to be replication master and slave. +# +# ==== Usage ==== +# +# [--let $rpl_server_count= N] +# [--let $rpl_check_server_ids= 1] +# [--let $rpl_skip_reset_master_and_slave= 1] +# [--let $rpl_skip_change_master= 1] +# [--let $rpl_skip_start_slave= 1] +# [--let $rpl_debug= 1] +# [--let $slave_timeout= NUMBER] +# [--let $rpl_server_skip_log_bin= 1] +# --source include/master-slave.inc +# +# Parameters: +# $rpl_check_server_ids, $rpl_skip_reset_master_and_slave, +# $rpl_skip_change_master, $rpl_skip_start_slave, $rpl_debug, +# $slave_timeout +# See include/rpl_init.inc +# +# $rpl_server_count +# By default, two servers are configured. You can configure more +# servers (servers 3, 4, etc are neither masters nor slaves) by +# setting this variable. See also include/rpl_init.inc + + +--let $include_filename= master-slave.inc +if ($rpl_server_count) +{ + --let $include_filename= master-slave.inc [rpl_server_count=$rpl_server_count] +} +--source include/begin_include_file.inc + + +--let $rpl_topology= 1->2 +--source include/rpl_init.inc + +--let $rpl_connection_name= master +--let $rpl_server_number= 1 +--source include/rpl_connect.inc + +--let $rpl_connection_name= master1 +--let $rpl_server_number= 1 +--source include/rpl_connect.inc + +--let $rpl_connection_name= slave +--let $rpl_server_number= 2 +--source include/rpl_connect.inc + +--let $rpl_connection_name= slave1 +--let $rpl_server_number= 2 +--source include/rpl_connect.inc + + +--let $include_filename= master-slave.inc +--source include/end_include_file.inc + + +# Set the default connection to 'master'. Do this after +# end_include_file.inc, so that it gets printed to the query log. +--let $rpl_connection_name= master +--source include/rpl_connection.inc diff --git a/mysql-test/include/max_indexes.inc b/mysql-test/include/max_indexes.inc new file mode 100644 index 00000000..ce233b9f --- /dev/null +++ b/mysql-test/include/max_indexes.inc @@ -0,0 +1,2 @@ +# Warning: This is an auto-generated file. Please do not modify it. +--let $max_indexes = 64U diff --git a/mysql-test/include/maybe_debug.combinations b/mysql-test/include/maybe_debug.combinations new file mode 100644 index 00000000..5ee57c0b --- /dev/null +++ b/mysql-test/include/maybe_debug.combinations @@ -0,0 +1,5 @@ +[debug] +--enable-gdb + +[release] +--disable-gdb diff --git a/mysql-test/include/maybe_debug.inc b/mysql-test/include/maybe_debug.inc new file mode 100644 index 00000000..2f6c2848 --- /dev/null +++ b/mysql-test/include/maybe_debug.inc @@ -0,0 +1,3 @@ +# include file for test files that can be run with and without debug +# having debug and non-debug tests. +let $have_debug=`select version() like '%debug%'`; diff --git a/mysql-test/include/maybe_pool_of_threads.combinations b/mysql-test/include/maybe_pool_of_threads.combinations new file mode 100644 index 00000000..29d3d7f4 --- /dev/null +++ b/mysql-test/include/maybe_pool_of_threads.combinations @@ -0,0 +1,5 @@ +[pot] +thread_handling=pool-of-threads + +[1tpc] +thread_handling=one-thread-per-connection diff --git a/mysql-test/include/maybe_pool_of_threads.inc b/mysql-test/include/maybe_pool_of_threads.inc new file mode 100644 index 00000000..d25e3864 --- /dev/null +++ b/mysql-test/include/maybe_pool_of_threads.inc @@ -0,0 +1,2 @@ +# run with and without threadpool +--source include/not_aix.inc diff --git a/mysql-test/include/maybe_versioning.combinations b/mysql-test/include/maybe_versioning.combinations new file mode 100644 index 00000000..246ad30c --- /dev/null +++ b/mysql-test/include/maybe_versioning.combinations @@ -0,0 +1,7 @@ +[orig] + +[vers] +system_versioning_alter_history=keep + +[vers_trx] +system_versioning_alter_history=keep diff --git a/mysql-test/include/maybe_versioning.inc b/mysql-test/include/maybe_versioning.inc new file mode 100644 index 00000000..8a7d7dad --- /dev/null +++ b/mysql-test/include/maybe_versioning.inc @@ -0,0 +1,47 @@ +# include file for test files that can be run with and without debug +# having debug and non-debug tests. + +# If $modify_create_table is true CREATE statement must be evaluated with +# $create_options that adds WITH SYSTEM VERSIONING to the statement. Otherwise +# system versioning is added implicitly via debug options. The second variant +# can easily be added to any test but works only for debug builds. + +if ($modify_create_table) +{ + if ($MTR_COMBINATION_VERS) + { + let $create_options= `select ' WITH SYSTEM VERSIONING'`; + } + + if ($MTR_COMBINATION_VERS_TRX) + { + --skip Not tested + } +} + +if (!$modify_create_table) +{ + let $have_debug=`select version() like '%debug%'`; + + if ($MTR_COMBINATION_VERS) + { + if (!$have_debug) + { + --skip Requires debug + } + --disable_query_log + set debug_dbug="d,sysvers_force_trx,sysvers_hide"; + --enable_query_log + } + + if ($MTR_COMBINATION_VERS_TRX) + { + if (!$have_debug) + { + --skip Requires debug + } + --disable_query_log + set debug_dbug="d,sysvers_force,sysvers_hide"; + --enable_query_log + } +} diff --git a/mysql-test/include/min_null_cond.inc b/mysql-test/include/min_null_cond.inc new file mode 100644 index 00000000..c958fc70 --- /dev/null +++ b/mysql-test/include/min_null_cond.inc @@ -0,0 +1,51 @@ +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a = NULL; +SELECT MIN( a ) FROM t1 WHERE a = NULL; + +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a <> NULL; +SELECT MIN( a ) FROM t1 WHERE a <> NULL; + +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a > NULL; +SELECT MIN( a ) FROM t1 WHERE a > NULL; + +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a < NULL; +SELECT MIN( a ) FROM t1 WHERE a < NULL; + +if (!$skip_null_safe_test) +{ +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a <=> NULL; +SELECT MIN( a ) FROM t1 WHERE a <=> NULL; +} +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND 10; +SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND 10; + +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND NULL; +SELECT MIN( a ) FROM t1 WHERE a BETWEEN NULL AND NULL; + +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a BETWEEN 10 AND NULL; +SELECT MIN( a ) FROM t1 WHERE a BETWEEN 10 AND NULL; + +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); +SELECT MIN( a ) FROM t1 WHERE a = (SELECT a FROM t1 WHERE a < 0); + +--replace_column 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x +EXPLAIN +SELECT MIN( a ) FROM t1 WHERE a IS NULL; +SELECT MIN( a ) FROM t1 WHERE a IS NULL; diff --git a/mysql-test/include/mix1.inc b/mysql-test/include/mix1.inc new file mode 100644 index 00000000..2ec0868c --- /dev/null +++ b/mysql-test/include/mix1.inc @@ -0,0 +1,1731 @@ +# include/mix1.inc +# +# The variables +# $engine_type -- storage engine to be tested +# $other_engine_type -- storage engine <> $engine_type +# $other_engine_type must point to an all +# time available storage engine +# 2006-08 MySQL 5.1 MyISAM and MEMORY only +# $test_foreign_keys -- 0, skip foreign key tests +# -- 1, do not skip foreign key tests +# have to be set before sourcing this script. +# +# Note: The comments/expectations refer to InnoDB. +# They might be not valid for other storage engines. +# +# Last update: +# 2006-08-15 ML refactoring of t/innodb_mysql.test +# - shift main code of t/innodb_mysql.test to include/mix1.inc +# - replace hardcoded assignment of storage engine by +# use of $engine_type and $other_engine_type variables +# - remove redundant replay testcase of +# Bug#12882 min/max inconsistent on empty table +# - corrected analyze table t1; to analyze table t4; +# Much older versions of this test show that the table +# where just some indexes have been created must be used. +# + +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + +--disable_warnings +drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4; +drop procedure if exists p1; +--enable_warnings + + +# BUG#16798: Uninitialized row buffer reads in ref-or-null optimizer +# (repeatable only w/innodb). +create table t1 ( + c_id int(11) not null default '0', + org_id int(11) default null, + unique key contacts$c_id (c_id), + key contacts$org_id (org_id) +); +insert into t1 values + (2,null),(120,null),(141,null),(218,7), (128,1), + (151,2),(234,2),(236,2),(243,2),(255,2),(259,2),(232,3),(235,3),(238,3), + (246,3),(253,3),(269,3),(285,3),(291,3),(293,3),(131,4),(230,4),(231,4); + +create table t2 ( + slai_id int(11) not null default '0', + owner_tbl int(11) default null, + owner_id int(11) default null, + sla_id int(11) default null, + inc_web int(11) default null, + inc_email int(11) default null, + inc_chat int(11) default null, + inc_csr int(11) default null, + inc_total int(11) default null, + time_billed int(11) default null, + activedate timestamp null default null, + expiredate timestamp null default null, + state int(11) default null, + sla_set int(11) default null, + unique key t2$slai_id (slai_id), + key t2$owner_id (owner_id), + key t2$sla_id (sla_id) +); +insert into t2(slai_id, owner_tbl, owner_id, sla_id) values + (1,3,1,1), (3,3,10,2), (4,3,3,6), (5,3,2,5), (6,3,8,3), (7,3,9,7), + (8,3,6,8), (9,3,4,9), (10,3,5,10), (11,3,11,11), (12,3,7,12); + +flush tables; +select si.slai_id +from t1 c join t2 si on + ((si.owner_tbl = 3 and si.owner_id = c.org_id) or + ( si.owner_tbl = 2 and si.owner_id = c.c_id)) +where + c.c_id = 218 and expiredate is null; + +select * from t1 where org_id is null; +select si.slai_id +from t1 c join t2 si on + ((si.owner_tbl = 3 and si.owner_id = c.org_id) or + ( si.owner_tbl = 2 and si.owner_id = c.c_id)) +where + c.c_id = 218 and expiredate is null; + +drop table t1, t2; + +# +# Bug#17212: results not sorted correctly by ORDER BY when using index +# (repeatable only w/innodb because of index props) +# +CREATE TABLE t1 (a int, b int, KEY b (b)); +CREATE TABLE t2 (a int, b int, PRIMARY KEY (a,b)); +CREATE TABLE t3 (a int, b int, c int, PRIMARY KEY (a), + UNIQUE KEY b (b,c), KEY a (a,b,c)); + +INSERT INTO t1 VALUES (1, 1); +INSERT INTO t1 SELECT a + 1, b + 1 FROM t1; +INSERT INTO t1 SELECT a + 2, b + 2 FROM t1; + +INSERT INTO t2 VALUES (1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8); +INSERT INTO t2 SELECT a + 1, b FROM t2; +DELETE FROM t2 WHERE a = 1 AND b < 2; + +INSERT INTO t3 VALUES (1,1,1),(2,1,2); +INSERT INTO t3 SELECT a + 2, a + 2, 3 FROM t3; +INSERT INTO t3 SELECT a + 4, a + 4, 3 FROM t3; + +# demonstrate a problem when a must-use-sort table flag +# (sort_by_table=1) is being neglected. +SELECT STRAIGHT_JOIN SQL_NO_CACHE t1.b, t1.a FROM t1, t3, t2 WHERE + t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2) + ORDER BY t1.b LIMIT 2; + +# demonstrate the problem described in the bug report +SELECT STRAIGHT_JOIN SQL_NO_CACHE t1.b, t1.a FROM t1, t3, t2 WHERE + t3.a = t2.a AND t2.b = t1.a AND t3.b = 1 AND t3.c IN (1, 2) + ORDER BY t1.b LIMIT 5; +DROP TABLE t1, t2, t3; + + +# BUG#21077 (The testcase is not deterministic so correct execution doesn't +# prove anything) For proof one should track if sequence of ha_innodb::* func +# calls is correct. +CREATE TABLE `t1` (`id1` INT) ; +INSERT INTO `t1` (`id1`) VALUES (1),(5),(2); + +CREATE TABLE `t2` ( + `id1` INT, + `id2` INT NOT NULL, + `id3` INT, + `id4` INT NOT NULL, + UNIQUE (`id2`,`id4`), + KEY (`id1`) +); + +INSERT INTO `t2`(`id1`,`id2`,`id3`,`id4`) VALUES +(1,1,1,0), +(1,1,2,1), +(5,1,2,2), +(6,1,2,3), +(1,2,2,2), +(1,2,1,1); + +SELECT `id1` FROM `t1` WHERE `id1` NOT IN (SELECT `id1` FROM `t2` WHERE `id2` = 1 AND `id3` = 2); +DROP TABLE t1, t2; + +# +# Bug #22728 - Handler_rollback value is growing +# + +let $before= `show /*!50002 GLOBAL */ status like 'Handler_rollback'`; +create table t1 (c1 int) engine=innodb; +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); +connection con2; +handler t1 open; +handler t1 read first; +disconnect con2; +connection con1; +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; + +# +# Bug #13191: INSERT...ON DUPLICATE KEY UPDATE of UTF-8 string fields +# used in partial unique indices. +# + +CREATE TABLE t1(c1 TEXT, UNIQUE (c1(1)), cnt INT DEFAULT 1) + ENGINE=INNODB CHARACTER SET UTF8; +INSERT INTO t1 (c1) VALUES ('1a'); +SELECT * FROM t1; +INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1; +SELECT * FROM t1; +DROP TABLE t1; + +CREATE TABLE t1(c1 VARCHAR(2), UNIQUE (c1(1)), cnt INT DEFAULT 1) + ENGINE=INNODB CHARACTER SET UTF8; +INSERT INTO t1 (c1) VALUES ('1a'); +SELECT * FROM t1; +INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1; +SELECT * FROM t1; +DROP TABLE t1; + +CREATE TABLE t1(c1 CHAR(2), UNIQUE (c1(1)), cnt INT DEFAULT 1) + ENGINE=INNODB CHARACTER SET UTF8; +INSERT INTO t1 (c1) VALUES ('1a'); +SELECT * FROM t1; +INSERT INTO t1 (c1) VALUES ('1b') ON DUPLICATE KEY UPDATE cnt=cnt+1; +SELECT * FROM t1; +DROP TABLE t1; + +# +# Bug #28272: EXPLAIN for SELECT from an empty InnoDB table +# + +CREATE TABLE t1 ( + a1 decimal(10,0) DEFAULT NULL, + a2 blob, + a3 time DEFAULT NULL, + a4 blob, + a5 char(175) DEFAULT NULL, + a6 timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + a7 tinyblob, + INDEX idx (a6,a7(239),a5) +) ENGINE=InnoDB; + +EXPLAIN SELECT a4 FROM t1 WHERE +a6=NULL AND +a4='UNcT5pIde4I6c2SheTo4gt92OV1jgJCVkXmzyf325R1DwLURkbYHwhydANIZMbKTgdcR5xS'; + +EXPLAIN SELECT t1.a4 FROM t1, t1 t WHERE +t.a6=t.a6 AND t1.a6=NULL AND +t1.a4='UNcT5pIde4I6c2SheTo4gt92OV1jgJCVkXmzyf325R1DwLURkbYHwhydANIZMbKTgdcR5xS'; + +DROP TABLE t1; + +# +# Bug #12882 min/max inconsistent on empty table +# + +--disable_warnings +eval create table t1m (a int) engine = $other_engine_type; +create table t1i (a int); +eval create table t2m (a int) engine = $other_engine_type; +create table t2i (a int); +--enable_warnings +insert into t2m values (5); +insert into t2i values (5); + +-- disable_query_log +-- disable_result_log +analyze table t1i; +analyze table t1m; +analyze table t2i; +analyze table t2m; +-- enable_result_log +-- enable_query_log + +# test with $engine_type +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 $engine_type/$other_engine_type 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 #12882: primary key implcitly included in every innodb index +# (was part of group_min_max.test) +# + +eval create table t1 ( + a1 char(64), a2 char(64), b char(16), c char(16) not null, d char(16), dummy char(64) default ' ' +) ENGINE = $other_engine_type; + +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 ' ' +); +--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 t4; + +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) +); +--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)); +--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)) stats_persistent=0; +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)); +CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11)); +# CREATE TABLE t2 (id int(11) NOT NULL PRIMARY KEY, fkey int(11), +# FOREIGN KEY (fkey) REFERENCES t2(id)); +if ($test_foreign_keys) +{ + ALTER TABLE t2 ADD FOREIGN KEY (fkey) REFERENCES t2(id); +} +INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B'); +INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3); + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +ANALYZE TABLE t2; +-- enable_result_log +-- enable_query_log + +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#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 STATS_PERSISTENT=0; +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'); + +set + @tmp_uss=@@use_stat_tables, + @tmp_occ=@@optimizer_use_condition_selectivity; +set + use_stat_tables='preferably', + optimizer_use_condition_selectivity=4; + +analyze table t1 persistent for all; +flush tables; + +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; +--echo # Masking (#) number in "rows" column of the following EXPLAIN output, as it may vary (bug#47746). +--replace_column 9 # +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; +set + use_stat_tables=@tmp_uss, + optimizer_use_condition_selectivity=@tmp_occ; + +--source include/innodb_rollback_on_timeout.inc + +# +# 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/innodb_rollback_on_timeout.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 STATS_PERSISTENT=0; + +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 IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE INTO t1(stat_id,acct_id) SELECT stat_id, mod(id+100000, acct_id) FROM t1; +INSERT IGNORE 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; + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785; + +INSERT INTO t2 SELECT * FROM t1; +OPTIMIZE TABLE t2; + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t2; +-- enable_result_log +-- enable_query_log + +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'; +DELETE FROM t1 WHERE a = 'uk'; +SELECT * FROM t1 WHERE a = 'uk'; +UPDATE t1 SET a = 'us' WHERE a = 'uk'; +SELECT * FROM t1 WHERE a = 'uk'; + +CREATE TABLE t2 (a CHAR(2), KEY (a)) ENGINE = InnoDB; +INSERT INTO t2 VALUES ('uk'),('bg'); +SELECT * FROM t2 WHERE a = 'uk'; +DELETE FROM t2 WHERE a = 'uk'; +SELECT * FROM t2 WHERE a = 'uk'; +INSERT INTO t2 VALUES ('uk'); +UPDATE t2 SET a = 'us' WHERE a = 'uk'; +SELECT * FROM t2 WHERE a = 'uk'; + +CREATE TABLE t3 (a CHAR(2), KEY (a)) ENGINE = MyISAM; +INSERT INTO t3 VALUES ('uk'),('bg'); +SELECT * FROM t3 WHERE a = 'uk'; +DELETE FROM t3 WHERE a = 'uk'; +SELECT * FROM t3 WHERE a = 'uk'; +INSERT INTO t3 VALUES ('uk'); +UPDATE t3 SET a = 'us' WHERE a = 'uk'; +SELECT * FROM t3 WHERE a = 'uk'; + +DROP TABLE t1,t2,t3; + +# +# Test bug when trying to drop data file which no InnoDB directory entry +# + +--disable_query_log +call mtr.add_suppression("InnoDB: Table .*bug29807.*"); +call mtr.add_suppression("InnoDB: Cannot open table test/bug29807 from"); +--enable_query_log + +create table t1 (a int) engine=innodb; +let $MYSQLD_DATADIR= `select @@datadir`; +copy_file $MYSQLD_DATADIR/test/t1.frm $MYSQLD_DATADIR/test/bug29807.frm; +--error ER_NO_SUCH_TABLE_IN_ENGINE +select * from bug29807; +drop table t1; +drop table bug29807; + + +# +# 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,,); + +CONNECTION c1; +SET AUTOCOMMIT=0; +INSERT INTO t2 VALUES (1); + +CONNECTION c2; +SET AUTOCOMMIT=0; +SET @old_lock_wait_timeout= @@lock_wait_timeout; +SET lock_wait_timeout= 1; +--error ER_LOCK_WAIT_TIMEOUT +LOCK TABLES t1 READ, t2 READ; +SET @@lock_wait_timeout= @old_lock_wait_timeout; +CONNECTION c1; +COMMIT; +INSERT INTO t1 VALUES (1); + +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; + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +ANALYZE TABLE t2; +-- enable_result_log +-- enable_query_log + +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; + +# Test of behaviour with CREATE ... SELECT +# + +CREATE TABLE t1 (a int, b int); +insert into t1 values (1,1),(1,2); +--error ER_DUP_ENTRY +CREATE TABLE t2 (primary key (a)) select * from t1; +# This should give warning +drop table if exists t2; +--error ER_DUP_ENTRY +CREATE TEMPORARY TABLE t2 (primary key (a)) select * from t1; +# This should give warning +drop table if exists t2; +CREATE TABLE t2 (a int, b int, primary key (a)); +BEGIN; +INSERT INTO t2 values(100,100); +CREATE TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1; +SELECT * from t2; +ROLLBACK; +SELECT * from t2; +TRUNCATE table t2; +--error ER_DUP_ENTRY +INSERT INTO t2 select * from t1; +SELECT * from t2; +drop table t2; + +CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)); +BEGIN; +INSERT INTO t2 values(100,100); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1; +SELECT * from t2; +COMMIT; +BEGIN; +INSERT INTO t2 values(101,101); +CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) select * from t1; +SELECT * from t2; +ROLLBACK; +SELECT * from t2; +TRUNCATE table t2; +--error ER_DUP_ENTRY +INSERT INTO t2 select * from t1; +SELECT * from t2; +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)) + 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; + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +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; + +--source include/innodb_rollback_on_timeout.inc + +# +# 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; +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log +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; + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t2; +-- enable_result_log +-- enable_query_log + +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; + # Continue even in the presence of ER_LOCK_DEADLOCK. + DECLARE CONTINUE HANDLER FOR 1213 BEGIN END; + 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'); +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for +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); + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +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); + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +#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 +--echo # +--echo # Bug#27610: ALTER TABLE ROW_FORMAT=... does not rebuild the table. +--echo # + +--echo +--echo # - prepare; +--echo + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +--echo + +CREATE TABLE t1(c INT) + ENGINE = InnoDB + ROW_FORMAT = COMPACT; + +--echo +--echo # - initial check; +--echo + +SELECT table_schema, table_name, row_format +FROM INFORMATION_SCHEMA.TABLES +WHERE table_schema = DATABASE() AND table_name = 't1'; + +--echo +--echo # - change ROW_FORMAT and check; +--echo + +ALTER TABLE t1 ROW_FORMAT = REDUNDANT; + +--echo + +SELECT table_schema, table_name, row_format +FROM INFORMATION_SCHEMA.TABLES +WHERE table_schema = DATABASE() AND table_name = 't1'; + +--echo +--echo # - that's it, cleanup. +--echo + +DROP TABLE t1; + +########################################################################### + +# +# Bug #31137: Assertion failed: primary_key_no == -1 || primary_key_no == 0 +# +create table t1(a char(10) not null, unique key aa(a(1)), + b char(4) not null, unique key bb(b(4))) engine=innodb; +desc t1; +show create table t1; +drop table t1; + +# +# Bug #32815: query with ORDER BY and a possible ref_or_null access +# + +CREATE TABLE t1 (id int, type char(6), d int, INDEX idx(id,d)) ENGINE=InnoDB; +INSERT INTO t1 VALUES + (191, 'member', 1), (NULL, 'member', 3), (NULL, 'member', 4), (201, 'member', 2); + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +EXPLAIN SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d; +SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d; + +DROP TABLE t1; + +# +# Bug #34223: Assertion failed: (optp->var_type & 127) == 8, +# file .\my_getopt.c, line 830 +# + +set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment; +set global innodb_autoextend_increment=8; +set global innodb_autoextend_increment=@my_innodb_autoextend_increment; + +# +# Bug #37830: ORDER BY ASC/DESC - no difference +# + +CREATE TABLE t1 (a int, b int, c int, PRIMARY KEY (a), KEY t1_b (b)) + ENGINE=InnoDB; + +INSERT INTO t1 (a,b,c) VALUES (1,1,1), (2,1,1), (3,1,1), (4,1,1); +INSERT INTO t1 (a,b,c) SELECT a+4,b,c FROM t1; + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +# should be range access +EXPLAIN SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5; + +# should produce '8 7 6 5 4' for a +SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5; + +DROP TABLE t1; + +# +# Bug#37284 Crash in Field_string::type() +# +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings +CREATE TABLE t1 (a char(50)) ENGINE=InnoDB; +CREATE INDEX i1 on t1 (a(3)); +SELECT * FROM t1 WHERE a = 'abcde'; +DROP TABLE t1; + + +--echo # +--echo # BUG #26288: savepoint are not deleted on comit, if the transaction +--echo # was otherwise empty +--echo # +BEGIN; +SAVEPOINT s1; +COMMIT; +--error 1305 +RELEASE SAVEPOINT s1; + +BEGIN; +SAVEPOINT s2; +COMMIT; +--error 1305 +ROLLBACK TO SAVEPOINT s2; + +BEGIN; +SAVEPOINT s3; +ROLLBACK; +--error 1305 +RELEASE SAVEPOINT s3; + +BEGIN; +SAVEPOINT s4; +ROLLBACK; +--error 1305 +ROLLBACK TO SAVEPOINT s4; + +# +# Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value +# + +#This statement should be written on a single line for proper testing +CREATE TABLE t1 (f1 INTEGER PRIMARY KEY COMMENT 'My ID#', f2 INTEGER DEFAULT NULL, f3 CHAR(10) DEFAULT 'My ID#', CONSTRAINT f2_ref FOREIGN KEY (f2) REFERENCES t1 (f1)) ENGINE=INNODB; +SHOW CREATE TABLE t1; +DROP TABLE t1; + +--echo # +--echo # Bug #36995: valgrind error in remove_const during subquery executions +--echo # + +create table t1 (a bit(1) not null,b int) engine=myisam; +create table t2 (c int) engine=innodb; +set @save_optimizer_switch=@@optimizer_switch; +set @@optimizer_switch='in_to_exists=on,materialization=off'; +explain +select b from t1 where a not in (select max(b) from t1,t2 group by a) group by a; +set optimizer_switch=@save_optimizer_switch; +DROP TABLE t1,t2; + +--echo End of 5.0 tests + +# Fix for BUG#19243 "wrong LAST_INSERT_ID() after ON DUPLICATE KEY +# UPDATE": if the row is updated, it's like a regular UPDATE: +# LAST_INSERT_ID() is not affected. +CREATE TABLE `t2` ( + `k` int(11) NOT NULL auto_increment, + `a` int(11) default NULL, + `c` int(11) default NULL, + PRIMARY KEY (`k`), + UNIQUE KEY `idx_1` (`a`) +); +insert into t2 ( a ) values ( 6 ) on duplicate key update c = +ifnull( c, +0 ) + 1; +insert into t2 ( a ) values ( 7 ) on duplicate key update c = +ifnull( c, +0 ) + 1; +select last_insert_id(); +select * from t2; +insert into t2 ( a ) values ( 6 ) on duplicate key update c = +ifnull( c, +0 ) + 1; +select last_insert_id(); +# test again when last_insert_id() is 0 initially +select last_insert_id(0); +insert into t2 ( a ) values ( 6 ) on duplicate key update c = +ifnull( c, +0 ) + 1; +select last_insert_id(); +select * from t2; + +# Test of LAST_INSERT_ID() when autogenerated will fail: +# last_insert_id() should not change +insert ignore into t2 values (null,6,1),(10,8,1); +select last_insert_id(); +# First and second autogenerated will fail, last_insert_id() should +# point to third +insert ignore into t2 values (null,6,1),(null,8,1),(null,15,1),(null,20,1); +select last_insert_id(); +select * from t2; + +# Test of the workaround which enables people to know the id of the +# updated row in INSERT ON DUPLICATE KEY UPDATE, by using +# LAST_INSERT_ID(autoinc_col) in the UPDATE clause. + +insert into t2 ( a ) values ( 6 ) on duplicate key update c = +ifnull( c, +0 ) + 1, k=last_insert_id(k); +select last_insert_id(); +select * from t2; + +drop table t2; + + +# +# Tests for bug #28415 "Some ALTER TABLE statements no longer work +# under LOCK TABLES" and some aspects of fast ALTER TABLE behaviour +# for transactional tables. +# +--disable_warnings +drop table if exists t1, t2; +--enable_warnings +create table t1 (i int); +alter table t1 modify i int default 1; +alter table t1 modify i int default 2, rename t2; +lock table t2 write; +alter table t2 modify i int default 3; +unlock tables; +lock table t2 write; +alter table t2 modify i int default 4, rename t1; +unlock tables; +drop table t1; + + +# +# Some more tests for ALTER TABLE and LOCK TABLES for transactional tables. +# +# Table which is altered under LOCK TABLES should stay in list of locked +# tables and be available after alter takes place unless ALTER contains +# RENAME clause. We should see the new definition of table, of course. +# Before 5.1 this behavior was inconsistent across the platforms and +# different engines. See also tests in alter_table.test +# +--disable_warnings +drop table if exists t1; +--enable_warnings +create table t1 (i int); +insert into t1 values (); +lock table t1 write; +# Example of so-called 'fast' ALTER TABLE +alter table t1 modify i int default 1; +insert into t1 values (); +select * from t1; +# And now full-blown ALTER TABLE +alter table t1 change i c char(10) default "Two"; +insert into t1 values (); +select * from t1; +unlock tables; +select * from t1; +drop tables t1; + +# +# Bug#29310: An InnoDB table was updated when the data wasn't actually changed. +# +create table t1(f1 varchar(5) unique, f2 timestamp NOT NULL DEFAULT + CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); +insert into t1(f1) values(1); +--replace_column 1 # +select @a:=f2 from t1; +--sleep 5 +update t1 set f1=1; +--replace_column 1 # +select @b:=f2 from t1; +select if(@a=@b,"ok","wrong"); +--sleep 5 +insert into t1(f1) values (1) on duplicate key update f1="1"; +--replace_column 1 # +select @b:=f2 from t1; +select if(@a=@b,"ok","wrong"); +--sleep 5 +insert into t1(f1) select f1 from t1 on duplicate key update f1="1"; +--replace_column 1 # +select @b:=f2 from t1; +select if(@a=@b,"ok","wrong"); +drop table t1; + +# +# Bug #31310: Locked rows silently skipped in read-committed isolation level. +# + +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); +SET SESSION AUTOCOMMIT = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +set binlog_format=mixed; +connection con1; + +eval +CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(256)) +ENGINE = $engine_type; +INSERT INTO t1 VALUES (1,2); + +--echo # 1. test for locking: + +BEGIN; +--enable_info +UPDATE t1 SET b = 12 WHERE a = 1; +--disable_info +SELECT * FROM t1; + +connection con2; + +--enable_info +--disable_abort_on_error +--error ER_LOCK_WAIT_TIMEOUT +UPDATE t1 SET b = 21 WHERE a = 1; +--disable_info + +connection con1; +SELECT * FROM t1; +ROLLBACK; + +connection con2; +ROLLBACK; + +connection con1; + +--echo # 2. test for serialized update: + +CREATE TABLE t2 (a INT); + +TRUNCATE t1; +INSERT INTO t1 VALUES (1,'init'); + +DELIMITER |; +CREATE PROCEDURE p1() +BEGIN + # retry the UPDATE in case it times out the lock before con1 has time + # to COMMIT. + DECLARE do_retry INT DEFAULT 0; + DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET do_retry = 1; + retry_loop:LOOP + UPDATE t1 SET b = CONCAT(b, '+con2') WHERE a = 1; + IF do_retry = 0 THEN + LEAVE retry_loop; + END IF; + SET do_retry = 0; + END LOOP; + INSERT INTO t2 VALUES (); +END| +DELIMITER ;| + +BEGIN; +--enable_info +UPDATE t1 SET b = CONCAT(b, '+con1') WHERE a = 1; +--disable_info +SELECT * FROM t1; + +connection con2; + +--send CALL p1; + +connection con1; +SELECT * FROM t1; +COMMIT; + +let $bug31310 = 1; +while ($bug31310) +{ + let $bug31310= `SELECT 1 - COUNT(*) FROM t2`; +} + +SELECT * FROM t1; + +connection con2; +--reap +SELECT * FROM t1; +COMMIT; + +connection con1; + +--echo # 3. test for updated key column: + +TRUNCATE t1; +TRUNCATE t2; + +INSERT INTO t1 VALUES (1,'init'); + +BEGIN; +--enable_info +UPDATE t1 SET a = 2, b = CONCAT(b, '+con1') WHERE a = 1; +--disable_info +SELECT * FROM t1; + +connection con2; + +--send CALL p1; + +connection con1; +SELECT * FROM t1; +COMMIT; + +let $bug31310 = 1; +while ($bug31310) +{ + let $bug31310= `SELECT 1 - COUNT(*) FROM t2`; +} + +SELECT * FROM t1; + +connection con2; +--reap +SELECT * FROM t1; + +--enable_abort_on_error +connection default; +disconnect con1; +disconnect con2; +DROP PROCEDURE p1; +DROP TABLE t1, t2; +# Bug#30747 Create table with identical constraint names behaves incorrectly +# + +if ($test_foreign_keys) +{ + CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, PRIMARY KEY (a,b)) engine=innodb; + --error ER_WRONG_FK_DEF + CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), + CONSTRAINT c2 FOREIGN KEY f2 (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb; + --error ER_WRONG_FK_DEF + CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), + CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb; + CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), + CONSTRAINT c1 FOREIGN KEY c2 (c) REFERENCES t1 (a) ON DELETE NO ACTION, + CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb; + ALTER TABLE t2 DROP FOREIGN KEY c2; + DROP TABLE t2; + --error ER_WRONG_FK_DEF + CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), + FOREIGN KEY (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb; + --error ER_WRONG_FK_DEF + CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), + FOREIGN KEY f1 (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb; + CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d), + CONSTRAINT c1 FOREIGN KEY f1 (c) REFERENCES t1 (a) ON DELETE NO ACTION, + CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION, + FOREIGN KEY f3 (c) REFERENCES t1 (a) ON UPDATE NO ACTION, + FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb; + SHOW CREATE TABLE t2; + DROP TABLE t2; + DROP TABLE t1; +} + +# +# Bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB and +# auto_increment keys +# +create table t1 (a int auto_increment primary key) engine=innodb; +set statement sql_mode = 'NO_ENGINE_SUBSTITUTION' for +alter table t1 order by a; +drop table t1; + +# +# Bug #33697: ORDER BY primary key DESC vs. ref access + filesort +# (reproduced only with InnoDB tables) +# + +CREATE TABLE t1 + (vid integer NOT NULL, + tid integer NOT NULL, + idx integer NOT NULL, + name varchar(128) NOT NULL, + type varchar(128) NULL, + PRIMARY KEY(idx, vid, tid), + UNIQUE(vid, tid, name) +) ENGINE=InnoDB; + +INSERT INTO t1 VALUES + (1,1,1,'pk',NULL),(2,1,1,'pk',NULL),(3,1,1,'pk',NULL),(4,1,1,'c1',NULL), + (5,1,1,'pk',NULL),(1,1,2,'c1',NULL),(2,1,2,'c1',NULL),(3,1,2,'c1',NULL), + (4,1,2,'c2',NULL),(5,1,2,'c1',NULL),(2,1,3,'c2',NULL),(3,1,3,'c2',NULL), + (4,1,3,'pk',NULL),(5,1,3,'c2',NULL), + (2,1,4,'c_extra',NULL),(3,1,4,'c_extra',NULL); + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +EXPLAIN SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE tid = 1 AND vid = 3 ORDER BY idx DESC; + +SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE tid = 1 AND vid = 3 ORDER BY idx DESC; + +DROP TABLE t1; + +--echo # +--echo # Bug #44290: explain crashes for subquery with distinct in +--echo # SQL_SELECT::test_quick_select +--echo # (reproduced only with InnoDB tables) +--echo # + +eval +CREATE TABLE t1 (c1 INT, c2 INT, c3 INT, KEY (c3), KEY (c2, c3)) + ENGINE=$engine_type; +INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2); + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +SELECT 1 FROM (SELECT COUNT(DISTINCT c1) + FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; +EXPLAIN +SELECT 1 FROM (SELECT COUNT(DISTINCT c1) + FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; + +DROP TABLE t1; + +eval +CREATE TABLE t1 (c1 REAL, c2 REAL, c3 REAL, KEY (c3), KEY (c2, c3)) + ENGINE=$engine_type; +INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2); + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +SELECT 1 FROM (SELECT COUNT(DISTINCT c1) + FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; +EXPLAIN +SELECT 1 FROM (SELECT COUNT(DISTINCT c1) + FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; + +DROP TABLE t1; + +eval +CREATE TABLE t1 (c1 DECIMAL(12,2), c2 DECIMAL(12,2), c3 DECIMAL(12,2), + KEY (c3), KEY (c2, c3)) + ENGINE=$engine_type; +INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2); + +-- disable_query_log +-- disable_result_log +ANALYZE TABLE t1; +-- enable_result_log +-- enable_query_log + +SELECT 1 FROM (SELECT COUNT(DISTINCT c1) + FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; +EXPLAIN +SELECT 1 FROM (SELECT COUNT(DISTINCT c1) + FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x; + +DROP TABLE t1; + +--echo End of 5.1 tests + +--echo # +--echo # Bug#43600: Incorrect type conversion caused wrong result. +--echo # +CREATE TABLE t1 ( + a int NOT NULL +) engine= innodb; + +CREATE TABLE t2 ( + a int NOT NULL, + b int NOT NULL, + filler char(100) DEFAULT NULL, + KEY a (a,b) +) engine= innodb; + +insert into t1 values (0),(1),(2),(3),(4); +insert into t2 select A.a + 10 *B.a, 1, 'filler' from t1 A, t1 B; + +-- disable_query_log +-- disable_result_log +analyze table t1; +analyze table t2; +-- enable_result_log +-- enable_query_log + +explain select * from t1, t2 where t2.a=t1.a and t2.b + 1; +select * from t1, t2 where t2.a=t1.a and t2.b + 1; + +drop table t1,t2; +--echo # End of test case for the bug#43600 + +--echo # +--echo # Bug#42643: InnoDB does not support replication of TRUNCATE TABLE +--echo # +--echo # Check that a TRUNCATE TABLE statement, needing an exclusive meta +--echo # data lock, waits for a shared metadata lock owned by a concurrent +--echo # transaction. +--echo # + +eval CREATE TABLE t1 (a INT) ENGINE=$engine_type; +INSERT INTO t1 VALUES (1),(2),(3); +BEGIN; +SELECT * FROM t1 ORDER BY a; +connect (con1, localhost, root,,); +--send TRUNCATE TABLE t1; +connection default; +let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist + WHERE state='Waiting for table metadata lock' AND info='TRUNCATE TABLE t1'; +--source include/wait_condition.inc +SELECT * FROM t1 ORDER BY a; +ROLLBACK; +connection con1; +--echo # Reaping TRUNCATE TABLE +--reap +SELECT * FROM t1; +disconnect con1; +connection default; +DROP TABLE t1; diff --git a/mysql-test/include/mix2.inc b/mysql-test/include/mix2.inc new file mode 100644 index 00000000..6a6fbcbc --- /dev/null +++ b/mysql-test/include/mix2.inc @@ -0,0 +1,2454 @@ +################################################################################ +# # +# include/mix2.inc # +# # +# This is a derivate of t/innodb.test and has to be maintained by MySQL # +# guys only. # +# # +# Please, DO NOT create a toplevel testcase mix2_innodb.test, because # +# innodb.test does already these tests. # +# # +# Variables which have to be set before calling this script: # +# $engine_type -- Storage engine to be tested # +# $other_engine_type -- storage engine <> $engine_type # +# $other_engine_type1 -- storage engine <> $engine_type # +# storage engine <> $other_engine_type, if possible # +# $other_non_trans_engine_type -- storage engine <> $engine_type # +# $other_non_trans_engine_type must be a non # +# transactional storage engine # +# $other_non_live_chks_engine_type # +# -- storage engine <> $engine_type, if possible # +# storage engine must not support live checksum # +# $other_live_chks_engine_type # +# -- storage engine <> $engine_type, if possible # +# storage engine must support live checksum # +# General Note: The $other_*_engine_type variables must point to all # +# time available storage engines # +# 2006-08 MySQL 5.1 MyISAM and MEMORY only # +# $test_transactions -- 0, skip transactional tests # +# -- 1, do not skip transactional tests # +# $test_foreign_keys -- 0, skip foreign key tests # +# -- 1, do not skip foreign key tests # +# $fulltext_query_unsupported -- 0, execute fulltext_query tests # +# -- 1, skip fulltext query tests # +# $no_autoinc_update -- 0, skip tests where it is expected that an update # +# does not update the internal auto-increment value# +# -- 1, do not skip these tests # +# $no_spatial_key -- 0, skip tests where it is expected that keys on # +# spatial data type are not allowed # +# -- 1, do not skip these tests # +# # +# The comments/expectations refer to InnoDB. # +# They might be not valid for other storage engines. # +# # +# # +# Last update: # +# 2006-08-15 ML - introduce several $variables # +# - correct some storage engine assignments # +# - minor improvements like correct wrong table after analyze # +# - let checksum testcase meet all table variants with/without # +# live checksum feature exiting and/or enabled # +# 2006-07-26 ML create script by using t/innodb.test and introduce $variables # +# # +################################################################################ + +# Set the SESSION DEFAULT STORAGE ENGINE to a value <> storage engine +# to be tested. This must not affect any CREATE TABLE statement, where +# the storage engine is assigned explicitly, +eval SET SESSION DEFAULT_STORAGE_ENGINE = $other_engine_type; + +# +# Small basic test with ignore +# + +--disable_warnings +drop table if exists t1,t2,t3,t4; +drop database if exists mysqltest; +--enable_warnings + +eval create table t1 (id int unsigned not null auto_increment, code tinyint unsigned not null, name char(20) not null, primary key (id), key (code), unique (name)) engine=$engine_type; + +insert into t1 (code, name) values (1, 'Tim'), (1, 'Monty'), (2, 'David'), (2, 'Erik'), (3, 'Sasha'), (3, 'Jeremy'), (4, 'Matt'); +select id, code, name from t1 order by id; + +update ignore t1 set id = 8, name = 'Sinisa' where id < 3; +select id, code, name from t1 order by id; +update ignore t1 set id = id + 10, name = 'Ralph' where id < 4; +select id, code, name from t1 order by id; + +drop table t1; + +# +# A bit bigger test +# The 'replace_column' statements are needed because the cardinality calculated +# by innodb is not always the same between runs +# + +eval CREATE TABLE t1 ( + id int(11) NOT NULL auto_increment, + parent_id int(11) DEFAULT '0' NOT NULL, + level tinyint(4) DEFAULT '0' NOT NULL, + PRIMARY KEY (id), + KEY parent_id (parent_id), + KEY level (level) +) engine=$engine_type; +INSERT INTO t1 VALUES (1,0,0),(3,1,1),(4,1,1),(8,2,2),(9,2,2),(17,3,2),(22,4,2),(24,4,2),(28,5,2),(29,5,2),(30,5,2),(31,6,2),(32,6,2),(33,6,2),(203,7,2),(202,7,2),(20,3,2),(157,0,0),(193,5,2),(40,7,2),(2,1,1),(15,2,2),(6,1,1),(34,6,2),(35,6,2),(16,3,2),(7,1,1),(36,7,2),(18,3,2),(26,5,2),(27,5,2),(183,4,2),(38,7,2),(25,5,2),(37,7,2),(21,4,2),(19,3,2),(5,1,1),(179,5,2); +update t1 set parent_id=parent_id+100; +select * from t1 where parent_id=102; +update t1 set id=id+1000; +-- error ER_DUP_ENTRY,1022 +update t1 set id=1024 where id=1009; +select * from t1; +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_column 9 # +explain select level from t1 where level=1; +--replace_column 9 # +explain select level,id from t1 where level=1; +--replace_column 9 # +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; +optimize table t1; +--replace_column 7 # +show keys from t1; +drop table t1; + +# +# Test replace +# + +eval CREATE TABLE t1 ( + gesuchnr int(11) DEFAULT '0' NOT NULL, + benutzer_id int(11) DEFAULT '0' NOT NULL, + PRIMARY KEY (gesuchnr,benutzer_id) +) engine=$engine_type; + +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); +select * from t1; +drop table t1; + +# +# test delete using hidden_primary_key +# + +eval create table t1 (a int) engine=$engine_type; +insert into t1 values (1), (2); +optimize table t1; +delete from t1 where a = 1; +select * from t1; +check table t1; +drop table t1; + +eval create table t1 (a int,b varchar(20)) engine=$engine_type; +insert into t1 values (1,""), (2,"testing"); +delete from t1 where a = 1; +select * from t1; +create index skr on t1 (a); +insert into t1 values (3,""), (4,"testing"); +analyze table t1; +--replace_column 7 # +show keys from t1; +drop table t1; + + +# Test of reading on secondary key with may be null +--disable_view_protocol +eval create table t1 (a int,b varchar(20),key(a)) engine=$engine_type; +insert into t1 values (1,""), (2,"testing"); +select * from t1 where a = 1; +drop table t1; + +if ($test_transactions) +{ +# +# Test rollback +# + +eval create table t1 (n int not null primary key) engine=$engine_type; +set autocommit=0; +insert into t1 values (4); +rollback; +select n, "after rollback" from t1; +insert into t1 values (4); +commit; +select n, "after commit" from t1; +commit; +insert into t1 values (5); +-- error ER_DUP_ENTRY +insert into t1 values (4); +commit; +select n, "after commit" from t1; +set autocommit=1; +insert into t1 values (6); +-- error ER_DUP_ENTRY +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; + +# +# Test for commit and FLUSH TABLES WITH READ LOCK +# + +eval create table t1 (n int not null primary key) engine=$engine_type; +start transaction; +insert into t1 values (4); +flush tables with read lock; +# +# Current code can't handle a read lock in middle of transaction +#--error 1223; +commit; +unlock tables; +commit; +select * from t1; +drop table t1; + +# +# Testing transactions +# + +eval create table t1 ( id int NOT NULL PRIMARY KEY, nom varchar(64)) engine=$engine_type; +begin; +insert into t1 values(1,'hamdouni'); +select id as afterbegin_id,nom as afterbegin_nom from t1; +rollback; +select id as afterrollback_id,nom as afterrollback_nom from t1; +set autocommit=0; +insert into t1 values(2,'mysql'); +select id as afterautocommit0_id,nom as afterautocommit0_nom from t1; +rollback; +select id as afterrollback_id,nom as afterrollback_nom from t1; +set autocommit=1; +drop table t1; + +# +# Simple not autocommit test +# + +eval CREATE TABLE t1 (id char(8) not null primary key, val int not null) engine=$engine_type; +insert into t1 values ('pippo', 12); +-- error ER_DUP_ENTRY +insert into t1 values ('pippo', 12); # Gives error +delete from t1; +delete from t1 where id = 'pippo'; +select * from t1; + +insert into t1 values ('pippo', 12); +set autocommit=0; +delete from t1; +rollback; +select * from t1; +delete from t1; +commit; +select * from t1; +drop table t1; + +# +# Test of active transactions +# + +eval create table t1 (a integer) engine=$engine_type; +start transaction; +rename table t1 to t2; +eval create table t1 (b integer) engine=$engine_type; +insert into t1 values (1); +rollback; +drop table t1; +rename table t2 to t1; +drop table t1; +set autocommit=1; +--enable_view_protocol +# +# The following simple tests failed at some point +# + +eval CREATE TABLE t1 (ID INTEGER NOT NULL PRIMARY KEY, NAME VARCHAR(64)) ENGINE=$engine_type; +INSERT INTO t1 VALUES (1, 'Jochen'); +select * from t1; +drop table t1; + +eval CREATE TABLE t1 ( _userid VARCHAR(60) NOT NULL PRIMARY KEY) ENGINE=$engine_type; +set autocommit=0; +INSERT INTO t1 SET _userid='marc@anyware.co.uk'; +COMMIT; +SELECT * FROM t1; +SELECT _userid FROM t1 WHERE _userid='marc@anyware.co.uk'; +drop table t1; +set autocommit=1; + +} +# End of transactional tests + +# +# Test when reading on part of unique key +# +eval CREATE TABLE t1 ( + user_id int(10) DEFAULT '0' NOT NULL, + name varchar(100), + phone varchar(100), + ref_email varchar(100) DEFAULT '' NOT NULL, + detail varchar(200), + PRIMARY KEY (user_id,ref_email) +)engine=$engine_type; + +INSERT INTO t1 VALUES (10292,'sanjeev','29153373','sansh777@hotmail.com','xxx'),(10292,'shirish','2333604','shirish@yahoo.com','ddsds'),(10292,'sonali','323232','sonali@bolly.com','filmstar'); +select * from t1 where user_id=10292; +INSERT INTO t1 VALUES (10291,'sanjeev','29153373','sansh777@hotmail.com','xxx'),(10293,'shirish','2333604','shirish@yahoo.com','ddsds'); +select * from t1 where user_id=10292; +select * from t1 where user_id>=10292; +select * from t1 where user_id>10292; +select * from t1 where user_id<10292; +drop table t1; + +# +# Test that keys are created in right order +# + +eval CREATE TABLE t1 (a int not null, b int not null,c int not null, +key(a),primary key(a,b), unique(c),key(a),unique(b)) ENGINE = $engine_type; +--replace_column 7 # +show index from t1; +drop table t1; + +# +# Test of ALTER TABLE and innodb tables +# + +eval create table t1 (col1 int not null, col2 char(4) not null, primary key(col1)) ENGINE = $other_engine_type; +eval alter table t1 engine=$engine_type; +insert into t1 values ('1','1'),('5','2'),('2','3'),('3','4'),('4','4'); +select * from t1; +update t1 set col2='7' where col1='4'; +select * from t1; +alter table t1 add co3 int not null; +select * from t1; +update t1 set col2='9' where col1='2'; +select * from t1; +drop table t1; + +# +# INSERT INTO innodb tables +# + +eval create table t1 (a int not null , b int, primary key (a)) engine = $engine_type; +eval create table t2 (a int not null , b int, primary key (a)) engine = $other_engine_type; +insert into t1 VALUES (1,3) , (2,3), (3,3); +select * from t1; +insert into t2 select * from t1; +select * from t2; +delete from t1 where b = 3; +select * from t1; +insert into t1 select * from t2; +select * from t1; +select * from t2; +drop table t1,t2; + +# +# Search on unique key +# + +eval CREATE TABLE t1 ( + id int(11) NOT NULL auto_increment, + ggid varchar(32) binary DEFAULT '' NOT NULL, + email varchar(64) DEFAULT '' NOT NULL, + passwd varchar(32) binary DEFAULT '' NOT NULL, + PRIMARY KEY (id), + UNIQUE ggid (ggid) +) ENGINE=$engine_type; + +insert into t1 (ggid,passwd) values ('test1','xxx'); +insert into t1 (ggid,passwd) values ('test2','yyy'); +-- error ER_DUP_ENTRY +insert into t1 (ggid,passwd) values ('test2','this will fail'); +-- error ER_DUP_ENTRY +insert into t1 (ggid,id) values ('this will fail',1); + +select * from t1 where ggid='test1'; +select * from t1 where passwd='xxx'; +select * from t1 where id=2; + +replace into t1 (ggid,id) values ('this will work',1); +replace into t1 (ggid,passwd) values ('test2','this will work'); +-- error ER_DUP_ENTRY +update t1 set id=100,ggid='test2' where id=1; +select * from t1; +select * from t1 where id=1; +select * from t1 where id=999; +drop table t1; + +# +# ORDER BY on not primary key +# + +eval CREATE TABLE t1 ( + user_name varchar(12), + password text, + subscribed char(1), + user_id int(11) DEFAULT '0' NOT NULL, + quota bigint(20), + weight double, + access_date date, + access_time time, + approved datetime, + dummy_primary_key int(11) NOT NULL auto_increment, + PRIMARY KEY (dummy_primary_key) +) ENGINE=$engine_type; +INSERT INTO t1 VALUES ('user_0','somepassword','N',0,0,0,'2000-09-07','23:06:59','2000-09-07 23:06:59',1); +INSERT INTO t1 VALUES ('user_1','somepassword','Y',1,1,1,'2000-09-07','23:06:59','2000-09-07 23:06:59',2); +INSERT INTO t1 VALUES ('user_2','somepassword','N',2,2,1.4142135623731,'2000-09-07','23:06:59','2000-09-07 23:06:59',3); +INSERT INTO t1 VALUES ('user_3','somepassword','Y',3,3,1.7320508075689,'2000-09-07','23:06:59','2000-09-07 23:06:59',4); +INSERT INTO t1 VALUES ('user_4','somepassword','N',4,4,2,'2000-09-07','23:06:59','2000-09-07 23:06:59',5); +select user_name, password , subscribed, user_id, quota, weight, access_date, access_time, approved, dummy_primary_key from t1 order by user_name; +drop table t1; + +# +# Testing of tables without primary keys +# + +eval CREATE TABLE t1 ( + id int(11) NOT NULL auto_increment, + parent_id int(11) DEFAULT '0' NOT NULL, + level tinyint(4) DEFAULT '0' NOT NULL, + KEY (id), + KEY parent_id (parent_id), + KEY level (level) +) engine=$engine_type; +INSERT INTO t1 VALUES (1,0,0),(3,1,1),(4,1,1),(8,2,2),(9,2,2),(17,3,2),(22,4,2),(24,4,2),(28,5,2),(29,5,2),(30,5,2),(31,6,2),(32,6,2),(33,6,2),(203,7,2),(202,7,2),(20,3,2),(157,0,0),(193,5,2),(40,7,2),(2,1,1),(15,2,2),(6,1,1),(34,6,2),(35,6,2),(16,3,2),(7,1,1),(36,7,2),(18,3,2),(26,5,2),(27,5,2),(183,4,2),(38,7,2),(25,5,2),(37,7,2),(21,4,2),(19,3,2),(5,1,1); +INSERT INTO t1 values (179,5,2); +update t1 set parent_id=parent_id+100; +select * from t1 where parent_id=102; +update t1 set id=id+1000; +update t1 set id=1024 where id=1009; +select * from t1; +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_column 9 # +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; +select level,id from t1 where level=1 order by id; +delete from t1 where level=1; +select * from t1; +drop table t1; + +# +# Test of index only reads +# +eval CREATE TABLE t1 ( + sca_code char(6) NOT NULL, + cat_code char(6) NOT NULL, + sca_desc varchar(50), + lan_code char(2) NOT NULL, + sca_pic varchar(100), + sca_sdesc varchar(50), + sca_sch_desc varchar(16), + PRIMARY KEY (sca_code, cat_code, lan_code), + INDEX sca_pic (sca_pic) +) engine = $engine_type ; + +INSERT INTO t1 ( sca_code, cat_code, sca_desc, lan_code, sca_pic, sca_sdesc, sca_sch_desc) VALUES ( 'PD', 'J', 'PENDANT', 'EN', NULL, NULL, 'PENDANT'),( 'RI', 'J', 'RING', 'EN', NULL, NULL, 'RING'),( 'QQ', 'N', 'RING', 'EN', 'not null', NULL, 'RING'); +select count(*) from t1 where sca_code = 'PD'; +select count(*) from t1 where sca_code <= 'PD'; +select count(*) from t1 where sca_pic is null; +alter table t1 drop index sca_pic, add index sca_pic (cat_code, sca_pic); +select count(*) from t1 where sca_code='PD' and sca_pic is null; +select count(*) from t1 where cat_code='E'; + +alter table t1 drop index sca_pic, add index (sca_pic, cat_code); +select count(*) from t1 where sca_code='PD' and sca_pic is null; +select count(*) from t1 where sca_pic >= 'n'; +select sca_pic from t1 where sca_pic is null; +update t1 set sca_pic="test" where sca_pic is null; +delete from t1 where sca_code='pd'; +drop table t1; + +# +# Test of opening table twice and timestamps +# +set @a:=now(); +eval CREATE TABLE t1 (a int not null, b timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, primary key (a)) engine=$engine_type; +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; + +# +# Test with variable length primary key +# +eval create table t1 (a varchar(100) not null, primary key(a), b int not null) engine=$engine_type; +insert into t1 values("hello",1),("world",2); +select * from t1 order by b desc; +optimize table t1; +--replace_column 7 # +show keys from t1; +drop table t1; + +# +# Test of create index with NULL columns +# +eval create table t1 (i int, j int ) ENGINE=$engine_type; +insert into t1 values (1,2); +select * from t1 where i=1 and j=2; +create index ax1 on t1 (i,j); +select * from t1 where i=1 and j=2; +drop table t1; + +# +# Test min-max optimization +# + +eval CREATE TABLE t1 ( + a int3 unsigned NOT NULL, + b int1 unsigned NOT NULL, + UNIQUE (a, b) +) ENGINE = $engine_type; + +INSERT INTO t1 VALUES (1, 1); +SELECT MIN(B),MAX(b) FROM t1 WHERE t1.a = 1; +drop table t1; + +# +# Test INSERT DELAYED +# + +eval CREATE TABLE t1 (a int unsigned NOT NULL) engine=$engine_type; +# Can't test this in 3.23 +# INSERT DELAYED INTO t1 VALUES (1); +INSERT INTO t1 VALUES (1); +SELECT * FROM t1; +DROP TABLE t1; + + +# +# Crash when using many tables (Test case by Jeremy D Zawodny) +# + +eval create table t1 (a int primary key,b int, c int, d int, e int, f int, g int, h int, i int, j int, k int, l int, m int, n int, o int, p int, q int, r int, s int, t int, u int, v int, w int, x int, y int, z int, a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int, b1 int, b2 int, b3 int, b4 int, b5 int, b6 int) engine = $engine_type; +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); +--replace_column 9 # +explain select * from t1 where a > 0 and a < 50; +drop table t1; + +# +# Test lock tables +# + +eval create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(30),primary key (id,id2),index index_id3 (id3)) engine=$engine_type; +insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL'); +LOCK TABLES t1 WRITE; +--error ER_DUP_ENTRY +insert into t1 values (99,1,2,'D'),(1,1,2,'D'); +select id from t1; +select id from t1; +UNLOCK TABLES; +DROP TABLE t1; + +eval create table t1 (id int NOT NULL,id2 int NOT NULL,id3 int NOT NULL,dummy1 char(30),primary key (id,id2),index index_id3 (id3)) engine=$engine_type; +insert into t1 values (0,0,0,'ABCDEFGHIJ'),(2,2,2,'BCDEFGHIJK'),(1,1,1,'CDEFGHIJKL'); +LOCK TABLES t1 WRITE; +begin; +--error ER_DUP_ENTRY +insert into t1 values (99,1,2,'D'),(1,1,2,'D'); +select id from t1; +insert ignore into t1 values (100,1,2,'D'),(1,1,99,'D'); +commit; +select id,id3 from t1; +UNLOCK TABLES; +DROP TABLE t1; + +# +# Test prefix key +# +eval create table t1 (a char(20), unique (a(5))) engine=$engine_type; +drop table t1; +eval create table t1 (a char(20), index (a(5))) engine=$engine_type; +show create table t1; +drop table t1; + +# +# Test using temporary table and auto_increment +# + +eval create temporary table t1 (a int not null auto_increment, primary key(a)) engine=$engine_type; +insert into t1 values (NULL),(NULL),(NULL); +delete from t1 where a=3; +insert into t1 values (NULL); +select * from t1; +alter table t1 add b int; +select * from t1; +drop table t1; + +#Slashdot bug +eval create table t1 + ( + id int auto_increment primary key, + name varchar(32) not null, + value text not null, + uid int not null, + unique key(name,uid) + ) engine=$engine_type; +insert into t1 values (1,'one','one value',101), + (2,'two','two value',102),(3,'three','three value',103); +set insert_id=5; +replace into t1 (value,name,uid) values ('other value','two',102); +delete from t1 where uid=102; +set insert_id=5; +replace into t1 (value,name,uid) values ('other value','two',102); +set insert_id=6; +replace into t1 (value,name,uid) values ('other value','two',102); +select * from t1; +drop table t1; + +# +# Test DROP DATABASE +# +# ML: Test logics +# Check that the creation of a table with engine = $engine_type does +# in a certain database (already containing some tables using other +# storage engines) not prevent the dropping of this database. + +create database mysqltest; +eval create table mysqltest.t1 (a int not null) engine= $engine_type; +insert into mysqltest.t1 values(1); +eval create table mysqltest.t2 (a int not null) engine= $other_engine_type; +insert into mysqltest.t2 values(1); +eval create table mysqltest.t3 (a int not null) engine= $other_engine_type1; +insert into mysqltest.t3 values(1); +commit; +drop database mysqltest; +# Don't check error message +--error 1049 +show tables from mysqltest; + +# +# Test truncate table with and without auto_commit +# + +set autocommit=0; +eval create table t1 (a int not null) engine= $engine_type; +insert into t1 values(1),(2); +truncate table t1; +commit; +truncate table t1; +truncate table t1; +select * from t1; +insert into t1 values(1),(2); +delete from t1; +select * from t1; +commit; +drop table t1; +set autocommit=1; + +eval create table t1 (a int not null) engine= $engine_type; +insert into t1 values(1),(2); +truncate table t1; +insert into t1 values(1),(2); +select * from t1; +truncate table t1; +insert into t1 values(1),(2); +delete from t1; +select * from t1; +drop table t1; + +# +# Test of how ORDER BY works when doing it on the whole table +# + +eval create table t1 (a int not null, b int not null, c int not null, primary key (a),key(b)) engine=$engine_type; +insert into t1 values (3,3,3),(1,1,1),(2,2,2),(4,4,4); +--replace_column 9 # +explain select * from t1 order by a; +--replace_column 9 # +explain select * from t1 order by b; +--replace_column 9 # +explain select * from t1 order by c; +--replace_column 9 # +explain select a from t1 order by a; +--replace_column 9 # +explain select b from t1 order by b; +--replace_column 9 # +explain select a,b from t1 order by b; +--replace_column 9 # +explain select a,b from t1; +--replace_column 9 # +explain select a,b,c from t1; +drop table t1; + +# +# Check describe +# + +eval create table t1 (t int not null default 1, key (t)) engine=$engine_type; +desc t1; +drop table t1; + +# +# Test of multi-table-delete +# + +eval 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 NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + last_mod_id smallint(6) NOT NULL default '0', + last_app_date timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + last_app_id smallint(6) default '-1', + version smallint(6) NOT NULL default '0', + assigned_scps int(11) default '0', + status tinyint(4) default '0' +) ENGINE=$engine_type; +INSERT INTO t1 VALUES (4077711111,'SeanWheeler',90,2,20020111112846,500,00000000000000,-1,2,3,1); +INSERT INTO t1 VALUES (9197722223,'berry',90,3,20020111112809,500,20020102114532,501,4,10,0); +INSERT INTO t1 VALUES (650,'San Francisco',0,0,20011227111336,342,00000000000000,-1,1,24,1); +INSERT INTO t1 VALUES (302467,'Sue\'s Subshop',90,3,20020109113241,500,20020102115111,501,7,24,0); +INSERT INTO t1 VALUES (6014911113,'SudzCarwash',520,1,20020102115234,500,20020102115259,501,33,32768,0); +INSERT INTO t1 VALUES (333,'tubs',99,2,20020109113440,501,20020109113440,500,3,10,0); +eval CREATE TABLE t2 ( + 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 NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + last_mod_id smallint(6) NOT NULL default '0', + last_app_date timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + last_app_id smallint(6) default '-1', + version smallint(6) NOT NULL default '0', + assigned_scps int(11) default '0', + status tinyint(4) default '0' +) ENGINE=$engine_type; +INSERT INTO t2 VALUES (4077711111,'SeanWheeler',0,2,20020111112853,500,00000000000000,-1,2,3,1); +INSERT INTO t2 VALUES (9197722223,'berry',90,3,20020111112818,500,20020102114532,501,4,10,0); +INSERT INTO t2 VALUES (650,'San Francisco',90,0,20020109113158,342,00000000000000,-1,1,24,1); +INSERT INTO t2 VALUES (333,'tubs',99,2,20020109113453,501,20020109113453,500,3,10,0); +select * from t1; +select * from t2; +delete t1, t2 from t1 left join t2 on t1.number=t2.number where (t1.carrier_id=90 and t1.number=t2.number) or (t2.carrier_id=90 and t1.number=t2.number) or (t1.carrier_id=90 and t2.number is null); +select * from t1; +select * from t2; +select * from t2; +drop table t1,t2; + +# +# A simple test with some isolation levels +# TODO: Make this into a test using replication to really test how +# this works. +# + +eval create table t1 (id int unsigned not null auto_increment, code tinyint unsigned not null, name char(20) not null, primary key (id), key (code), unique (name)) engine=$engine_type; + +BEGIN; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +SELECT @@tx_isolation,@@global.tx_isolation; +insert into t1 (code, name) values (1, 'Tim'), (1, 'Monty'), (2, 'David'); +select id, code, name from t1 order by id; +COMMIT; + +BEGIN; +SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ; +insert into t1 (code, name) values (2, 'Erik'), (3, 'Sasha'); +select id, code, name from t1 order by id; +COMMIT; + +BEGIN; +SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; +insert into t1 (code, name) values (3, 'Jeremy'), (4, 'Matt'); +select id, code, name from t1 order by id; +COMMIT; +DROP TABLE t1; + +# +# Test of multi-table-update +# +eval create table t1 (n int(10), d int(10)) engine=$engine_type; +eval create table t2 (n int(10), d int(10)) engine=$engine_type; +insert into t1 values(1,1),(1,2); +insert into t2 values(1,10),(2,20); +UPDATE t1,t2 SET t1.d=t2.d,t2.d=30 WHERE t1.n=t2.n; +select * from t1; +select * from t2; +drop table t1,t2; + +# +# Testing of IFNULL +# +eval create table t1 (a int, b int) engine=$engine_type; +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 +t2.b=t3.a; +select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on +t2.b=t3.a order by 1; +insert into t1 values(10,null); +select t2.b, ifnull(t2.b,"this is null") from t1 as t2 left join t1 as t3 on +t2.b=t3.a order by 1; +drop table t1; + +# +# Test of read_through not existing const_table +# + +eval create table t1 (a varchar(10) not null) engine = $other_engine_type; +eval create table t2 (b varchar(10) not null unique) engine=$engine_type; +select t1.a from t1,t2 where t1.a=t2.b; +drop table t1,t2; +eval create table t1 (a int not null, b int, primary key (a)) engine = $engine_type; +eval create table t2 (a int not null, b int, primary key (a)) engine = $engine_type; +insert into t1 values (10, 20); +insert into t2 values (10, 20); +update t1, t2 set t1.b = 150, t2.b = t1.b where t2.a = t1.a and t1.a = 10; +drop table t1,t2; + +if ($test_foreign_keys) +{ +# +# Test of multi-table-delete with foreign key constraints +# + +eval CREATE TABLE t1 (id INT NOT NULL, PRIMARY KEY (id)) ENGINE=$engine_type; +eval CREATE TABLE t2 (id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id), FOREIGN KEY (t1_id) REFERENCES t1(id) ON DELETE CASCADE ) ENGINE=$engine_type; +insert into t1 set id=1; +insert into t2 set id=1, t1_id=1; +delete t1,t2 from t1,t2 where t1.id=t2.t1_id; +select * from t1; +select * from t2; +drop table t2,t1; +eval CREATE TABLE t1(id INT NOT NULL, PRIMARY KEY (id)) ENGINE=$engine_type; +eval CREATE TABLE t2(id INT PRIMARY KEY, t1_id INT, INDEX par_ind (t1_id) ) ENGINE=$engine_type; +INSERT INTO t1 VALUES(1); +INSERT INTO t2 VALUES(1, 1); +SELECT * from t1; +UPDATE t1,t2 SET t1.id=t1.id+1, t2.t1_id=t1.id+1; +SELECT * from t1; +UPDATE t1,t2 SET t1.id=t1.id+1 where t1.id!=t2.id; +SELECT * from t1; +DROP TABLE t1,t2; +} + +if ($test_transactions) +{ +# +# Test of range_optimizer +# + +set autocommit=0; + +eval CREATE TABLE t1 (id CHAR(15) NOT NULL, value CHAR(40) NOT NULL, PRIMARY KEY(id)) ENGINE=$engine_type; + +eval CREATE TABLE t2 (id CHAR(15) NOT NULL, value CHAR(40) NOT NULL, PRIMARY KEY(id)) ENGINE=$engine_type; + +eval CREATE TABLE t3 (id1 CHAR(15) NOT NULL, id2 CHAR(15) NOT NULL, PRIMARY KEY(id1, id2)) ENGINE=$engine_type; + +INSERT INTO t3 VALUES("my-test-1", "my-test-2"); +COMMIT; + +INSERT INTO t1 VALUES("this-key", "will disappear"); +INSERT INTO t2 VALUES("this-key", "will also disappear"); +DELETE FROM t3 WHERE id1="my-test-1"; + +SELECT * FROM t1; +SELECT * FROM t2; +SELECT * FROM t3; +ROLLBACK; + +SELECT * FROM t1; +SELECT * FROM t2; +SELECT * FROM t3; +SELECT * FROM t3 WHERE id1="my-test-1" LOCK IN SHARE MODE; +COMMIT; +set autocommit=1; +DROP TABLE t1,t2,t3; +} + +# +# Check update with conflicting key +# + +eval CREATE TABLE t1 (a int not null primary key, b int not null, unique (b)) engine=$engine_type; +INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); +# We need the a < 1000 test here to quard against the halloween problems +UPDATE t1 set a=a+100 where b between 2 and 3 and a < 1000; +SELECT * from t1; +drop table t1; + +# +# Test multi update with different join methods +# + +eval CREATE TABLE t1 (a int not null primary key, b int not null, key (b)) engine=$engine_type; +eval CREATE TABLE t2 (a int not null primary key, b int not null, key (b)) engine=$engine_type; +INSERT INTO t1 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10),(11,11),(12,12); +INSERT INTO t2 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9); + +# Full join, without key +update t1,t2 set t1.a=t1.a+100; +select * from t1; + +# unique key +update t1,t2 set t1.a=t1.a+100 where t1.a=101; +select * from t1; + +# ref key +update t1,t2 set t1.b=t1.b+10 where t1.b=2; +select * from t1; + +# Range key (in t1) +update t1,t2 set t1.b=t1.b+2,t2.b=t1.b+10 where t1.b between 3 and 5 and t1.a=t2.a+100; +select * from t1; +select * from t2; + +drop table t1,t2; +eval CREATE TABLE t2 ( NEXT_T BIGINT NOT NULL PRIMARY KEY) ENGINE=$other_non_trans_engine_type; +eval CREATE TABLE t1 ( B_ID INTEGER NOT NULL PRIMARY KEY) ENGINE=$engine_type; +SET AUTOCOMMIT=0; +INSERT INTO t1 ( B_ID ) VALUES ( 1 ); +INSERT INTO t2 ( NEXT_T ) VALUES ( 1 ); +ROLLBACK; +SELECT * FROM t1; +drop table t1,t2; +eval create table t1 ( pk int primary key, parent int not null, child int not null, index (parent) ) engine = $engine_type; +insert into t1 values (1,0,4), (2,1,3), (3,2,1), (4,1,2); +select distinct parent,child from t1 order by parent; +drop table t1; + +# +# Test that MySQL priorities clustered indexes +# +eval create table t1 (a int not null auto_increment primary key, b int, c int, key(c)) engine=$engine_type; +eval create table t2 (a int not null auto_increment primary key, b int) ENGINE = $other_engine_type; +insert into t1 (b) values (null),(null),(null),(null),(null),(null),(null); +insert into t2 (a) select b from t1; +insert into t1 (b) select b from t2; +insert into t2 (a) select b from t1; +insert into t1 (a) select b from t2; +insert into t2 (a) select b from t1; +insert into t1 (a) select b from t2; +insert into t2 (a) select b from t1; +insert into t1 (a) select b from t2; +insert into t2 (a) select b from t1; +insert into t1 (a) select b from t2; +insert into t2 (a) select b from t1; +insert into t1 (a) select b from t2; +insert into t2 (a) select b from t1; +insert into t1 (a) select b from t2; +insert into t2 (a) select b from t1; +insert into t1 (a) select b from t2; +insert into t2 (a) select b from t1; +insert into t1 (a) select b from t2; +select count(*) from t1; +--replace_column 9 # +explain select * from t1 where c between 1 and 2500; +update t1 set c=a; +--replace_column 9 # +explain select * from t1 where c between 1 and 2500; +drop table t1,t2; + +# +# Test of UPDATE ... ORDER BY +# + +eval create table t1 (id int primary key auto_increment, fk int, index index_fk (fk)) engine=$engine_type; + +insert into t1 (id) values (null),(null),(null),(null),(null); +update t1 set fk=69 where fk is null order by id limit 1; +SELECT * from t1; +drop table t1; + +eval create table t1 (a int not null, b int not null, key (a)) engine=$engine_type; +insert into t1 values (1,1),(1,2),(1,3),(3,1),(3,2),(3,3),(3,1),(3,2),(3,3),(2,1),(2,2),(2,3); +SET @tmp=0; +update t1 set b=(@tmp:=@tmp+1) order by a; +update t1 set b=99 where a=1 order by b asc limit 1; +update t1 set b=100 where a=1 order by b desc limit 2; +update t1 set a=a+10+b where a=1 order by b; +select * from t1 order by a,b; +drop table t1; + +# +# Test of multi-table-updates (bug #1980). +# + +eval create table t1 ( c char(8) not null ) engine=$engine_type; +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; + +eval create table t2 (c char(8) not null, b char(8) not null, a char(8) not null, primary key(a,b,c)) engine=$engine_type; +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; + +# +# test autoincrement with TRUNCATE +# + +SET AUTOCOMMIT=1; +eval create table t1 (a integer auto_increment primary key) engine=$engine_type; +insert into t1 (a) values (NULL),(NULL); +truncate table t1; +insert into t1 (a) values (NULL),(NULL); +SELECT * from t1; +drop table t1; + + +if ($test_foreign_keys) +{ +# +# Test dictionary handling with spaceand quoting +# + +eval CREATE TABLE t1 (`id 1` INT NOT NULL, PRIMARY KEY (`id 1`)) ENGINE=$engine_type; +eval 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=$engine_type; +#show create table t2; +drop table t2,t1; + +# +# Test of multi updated and foreign keys +# + +eval create table `t1` (`id` int( 11 ) not null ,primary key ( `id` )) engine = $engine_type; +insert into `t1`values ( 1 ) ; +eval create table `t2` (`id` int( 11 ) not null default '0',unique key `id` ( `id` ) ,constraint `t1_id_fk` foreign key ( `id` ) references `t1` (`id` )) engine = $engine_type; +insert into `t2`values ( 1 ) ; +eval create table `t3` (`id` int( 11 ) not null default '0',key `id` ( `id` ) ,constraint `t2_id_fk` foreign key ( `id` ) references `t2` (`id` )) engine = $engine_type; +insert into `t3`values ( 1 ) ; +--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 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 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; + +# +# test for recursion depth limit +# +eval create table t1( + id int primary key, + pid int, + index(pid), + foreign key(pid) references t1(id) on delete cascade) engine=$engine_type; +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 1451 +delete from t1 where id=0; +delete from t1 where id=15; +delete from t1 where id=0; + +drop table t1; +} +# End of FOREIGN KEY tests + +# +# Test timestamps +# + +eval CREATE TABLE t1 (col1 int(1))ENGINE=$engine_type; +eval CREATE TABLE t2 (col1 int(1),stamp TIMESTAMP,INDEX stamp_idx +(stamp))ENGINE=$engine_type; +insert into t1 values (1),(2),(3); +# Note that timestamp 3 is wrong +insert into t2 values (1, 20020204130000),(2, 20020204130000),(4,20020204310000 ),(5,20020204230000); +SELECT col1 FROM t1 UNION SELECT col1 FROM t2 WHERE stamp < +'20020204120000' GROUP BY col1; +drop table t1,t2; + +# +# Test by Francois MASUREL +# + +eval 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 '', + `description` text, + PRIMARY KEY (`id`), + KEY `id_object` (`id_object`), + KEY `id_version` (`id_version`) +) ENGINE=$engine_type; + +INSERT INTO t1 VALUES("6", "3382", "9", "Test", NULL), ("7", "102", "5", "Le Pekin (Test)", NULL),("584", "1794", "4", "Test de resto", NULL),("837", "1822", "6", "Test 3", NULL),("1119", "3524", "1", "Societe Test", NULL),("1122", "3525", "1", "Fournisseur Test", NULL); + +eval CREATE TABLE t2 ( + `id` int(10) unsigned NOT NULL auto_increment, + `id_version` int(10) unsigned NOT NULL default '1', + PRIMARY KEY (`id`), + KEY `id_version` (`id_version`) +) ENGINE=$engine_type; + +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 +ON (t2.id = lbl.id_object) INNER JOIN t1 ON (t2.id = t1.id_object); +drop table t1,t2; + +# Live checksum feature available + enabled +eval create table t1 (a int, b varchar(200), c text not null) checksum=1 engine=$other_live_chks_engine_type; +# Live checksum feature available + disabled +eval create table t2 (a int, b varchar(200), c text not null) checksum=0 engine=$other_live_chks_engine_type; +# +# Live checksum feature not available + enabled +eval create table t3 (a int, b varchar(200), c varchar(200) not null) checksum=1 engine=$other_non_live_chks_engine_type; +# Live checksum feature not available + disabled +eval create table t4 (a int, b varchar(200), c varchar(200) not null) checksum=0 engine=$other_non_live_chks_engine_type; +# +# Live checksum feature probably available + enabled +eval create table t5 (a int, b varchar(200), c text not null) checksum=1 engine=$engine_type; +# Live checksum feature probably available + disabled +eval create table t6 (a int, b varchar(200), c text not null) checksum=0 engine=$engine_type; +# +insert t1 values (1, "aaa", "bbb"), (NULL, "", "ccccc"), (0, NULL, ""); +insert t2 select * from t1; +insert t3 select * from t1; +insert t4 select * from t1; +insert t5 select * from t1; +insert t6 select * from t1; +checksum table t1, t2, t3, t4, t5, t6, t7 quick; +checksum table t1, t2, t3, t4, t5, t6, t7; +checksum table t1, t2, t3, t4, t5, t6, t7 extended; +# #show table status; +drop table t1,t2,t3, t4, t5, t6; + +# +# Test problem with referring to different fields in same table in UNION +# (Bug#2552: UNION returns NULL instead of expected value (innoDB only tables)) +# +eval create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=$engine_type; +insert into t1 values(1,'first','fff'),(2,'second','sss'),(3,'third','ttt'); +select trim(name2) from t1 union all select trim(name) from t1 union all select trim(id) from t1; +drop table t1; + +# +# Bug#2160: Extra error message for CREATE TABLE LIKE with InnoDB +# +eval create table t1 (a int) engine=$engine_type; +create table t2 like t1; +show create table t2; +drop table t1,t2; + +if ($test_foreign_keys) +{ +# +# Test of automaticly created foreign keys +# + +eval create table t1 (id int(11) not null, id2 int(11) not null, unique (id,id2)) engine=$engine_type; +eval create table t2 (id int(11) not null, constraint t1_id_fk foreign key ( id ) references t1 (id)) engine = $engine_type; +show create table t1; +show create table t2; +create index id on t2 (id); +show create table t2; +create index id2 on t2 (id); +show create table t2; +drop index id2 on t2; +--error 1025,1025 +drop index id on t2; +show create table t2; +drop table t2; + +eval create table t2 (id int(11) not null, id2 int(11) not null, constraint t1_id_fk foreign key (id,id2) references t1 (id,id2)) engine = $engine_type; +show create table t2; +create unique index id on t2 (id,id2); +show create table t2; +drop table t2; + +# Check foreign key columns created in different order than key columns +eval create table t2 (id int(11) not null, id2 int(11) not null, unique (id,id2),constraint t1_id_fk foreign key (id2,id) references t1 (id,id2)) engine = $engine_type; +show create table t2; +drop table t2; + +eval create table t2 (id int(11) not null, id2 int(11) not null, unique (id,id2), constraint t1_id_fk foreign key (id) references t1 (id)) engine = $engine_type; +show create table t2; +drop table t2; + +eval create table t2 (id int(11) not null, id2 int(11) not null, unique (id,id2),constraint t1_id_fk foreign key (id2,id) references t1 (id,id2)) engine = $engine_type; +show create table t2; +drop table t2; + +eval create table t2 (id int(11) not null auto_increment, id2 int(11) not null, constraint t1_id_fk foreign key (id) references t1 (id), primary key (id), index (id,id2)) engine = $engine_type; +show create table t2; +drop table t2; + +eval create table t2 (id int(11) not null auto_increment, id2 int(11) not null, constraint t1_id_fk foreign key (id) references t1 (id)) engine= $engine_type; +show create table t2; +alter table t2 add index id_test (id), add index id_test2 (id,id2); +show create table t2; +drop table t2; + +# Test error handling + +# Clean up filename -- embedded server reports whole path without .frm, +# regular server reports relative path with .frm (argh!) +--replace_result \\ / $MYSQL_TEST_DIR . /var/mysqld.1/data/ / t2.frm t2 +--error 1005 +eval 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 = $engine_type; + +# bug#3749 + +eval create table t2 (a int auto_increment primary key, b int, index(b), foreign key (b) references t1(id), unique(b)) engine=$engine_type; +show create table t2; +drop table t2; +eval create table t2 (a int auto_increment primary key, b int, foreign key (b) references t1(id), foreign key (b) references t1(id), unique(b)) engine=$engine_type; +show create table t2; +drop table t2, t1; +} +# End of FOREIGN KEY tests + + +# +# 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. +# +flush status; +show status like "binlog_cache_use"; +show status like "binlog_cache_disk_use"; + +eval create table t1 (a int) engine=$engine_type; + +# 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 +eval create table t1 (c char(10), index (c,c)) engine=$engine_type; +--error 1060 +eval create table t1 (c1 char(10), c2 char(10), index (c1,c2,c1)) engine=$engine_type; +--error 1060 +eval create table t1 (c1 char(10), c2 char(10), index (c1,c1,c2)) engine=$engine_type; +--error 1060 +eval create table t1 (c1 char(10), c2 char(10), index (c2,c1,c1)) engine=$engine_type; +eval create table t1 (c1 char(10), c2 char(10)) engine=$engine_type; +--error 1060 +alter table t1 add key (c1,c1); +--error 1060 +alter table t1 add key (c2,c1,c1); +--error 1060 +alter table t1 add key (c1,c2,c1); +--error 1060 +alter table t1 add key (c1,c1,c2); +drop table t1; + +# +# Bug #4082: integer truncation +# + +eval create table t1(a int(1) , b int(1)) engine=$engine_type; +insert into t1 values ('1111', '3333'); +select distinct concat(a, b) from t1; +drop table t1; + +if ($fulltext_query_unsupported) +{ +# +# BUG#7709 test case - Boolean fulltext query against unsupported +# engines does not fail +# + +eval CREATE TABLE t1 ( a char(10) ) ENGINE=$engine_type; +--error 1214 +SELECT a FROM t1 WHERE MATCH (a) AGAINST ('test' IN BOOLEAN MODE); +DROP TABLE t1; +} + +if ($test_foreign_keys) +{ +# +# check null values #1 +# + +--disable_warnings +eval CREATE TABLE t1 (a_id tinyint(4) NOT NULL default '0', PRIMARY KEY (a_id)) ENGINE=$engine_type DEFAULT CHARSET=latin1; +INSERT INTO t1 VALUES (1),(2),(3); +eval CREATE TABLE t2 (b_id tinyint(4) NOT NULL default '0',b_a tinyint(4) NOT NULL default '0', PRIMARY KEY (b_id), KEY (b_a), + CONSTRAINT fk_b_a FOREIGN KEY (b_a) REFERENCES t1 (a_id) ON DELETE CASCADE ON UPDATE NO ACTION) ENGINE=$engine_type DEFAULT CHARSET=latin1; +--enable_warnings +INSERT INTO t2 VALUES (1,1),(2,1),(3,1),(4,2),(5,2); +SELECT * FROM (SELECT t1.*,GROUP_CONCAT(t2.b_id SEPARATOR ',') as b_list FROM (t1 LEFT JOIN (t2) on t1.a_id = t2.b_a) GROUP BY t1.a_id ) AS xyz; +DROP TABLE t2; +DROP TABLE t1; +} + +# +# Bug#11816 - Truncate table doesn't work with temporary innodb tables +# This is not an innodb bug, but we test it using innodb. +# +eval create temporary table t1 (a int) engine=$engine_type; +insert into t1 values (4711); +truncate t1; +insert into t1 values (42); +select * from t1; +drop table t1; +# Show that it works with permanent tables too. +eval create table t1 (a int) engine=$engine_type; +insert into t1 values (4711); +truncate t1; +insert into t1 values (42); +select * from t1; +drop table t1; + +# +# Bug #13025 Server crash during filesort +# + +eval create table t1 (a int not null, b int not null, c blob not null, d int not null, e int, primary key (a,b,c(255),d)) engine=$engine_type; +insert into t1 values (2,2,"b",2,2),(1,1,"a",1,1),(3,3,"ab",3,3); +select * from t1 order by a,b,c,d; +explain select * from t1 order by a,b,c,d; +drop table t1; + +# +# BUG#11039,#13218 Wrong key length in min() +# + +eval create table t1 (a char(1), b char(1), key(a, b)) engine=$engine_type; +insert into t1 values ('8', '6'), ('4', '7'); +select min(a) from t1; +select min(b) from t1 where a='8'; +drop table t1; + +# End of 4.1 tests + +# +# range optimizer problem +# + +eval create table t1 (x bigint unsigned not null primary key) engine=$engine_type; +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; + +# Please do not remove the following skipped InnoDB specific tests. +# They make the synchronization with innodb.test easier and give +# an idea what to test on other storage engines. +if (0) +{ + +# 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 varchar +# + +let $default=`select @@default_storage_engine`; +eval set default_storage_engine=$engine_type; +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/mysqld.1/data/ / t1.frm t1 +create table t1 (v varchar(65530), key(v)); +drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +create table t1 (v varchar(65536)); +show create table t1; +drop table t1; +SET STATEMENT sql_mode = 'NO_ENGINE_SUBSTITUTION' FOR +create table t1 (v varchar(65530) character set utf8); +show create table t1; +drop table t1; + +eval set default_storage_engine=$default; + +# InnoDB specific varchar tests +eval create table t1 (v varchar(16384)) engine=$engine_type; +drop table t1; + +# +# BUG#11039 Wrong key length in min() +# + +eval create table t1 (a char(1), b char(1), key(a, b)) engine=$engine_type; +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 +# + +eval CREATE TABLE t1 ( `a` int(11) NOT NULL auto_increment, `b` int(11) default NULL,PRIMARY KEY (`a`),UNIQUE KEY `b` (`b`)) ENGINE=$engine_type; +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; + +eval create table t1 (rowid int not null auto_increment, val int not null,primary +key (rowid), unique(val)) engine=$engine_type; +replace into t1 (val) values ('1'),('2'); +replace into t1 (val) values ('1'),('2'); +--error ER_DUP_ENTRY +insert into t1 (val) values ('1'),('2'); +select * from t1; +drop table t1; + +if ($no_autoinc_update) +{ +# +# Test that update does not change internal auto-increment value +# + +eval create table t1 (a int not null auto_increment primary key, val int) engine=$engine_type; +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 ER_DUP_ENTRY +insert into t1 (val) values (1); +select * from t1; +drop table t1; +} + + +# +# Bug#10465: DECIMAL, crash on DELETE (InnoDB only) +# + +--disable_warnings +eval CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=$engine_type; +--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 +# +eval create table t1 (f1 varchar(10), f2 varchar(10), primary key (f1,f2)) engine=$engine_type; +eval create table t2 (f3 varchar(10), f4 varchar(10), key (f4)) engine=$engine_type; +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; + +if ($test_foreign_keys) +{ +# +# Test that the slow TRUNCATE implementation resets autoincrement columns +# (bug #11946) +# + +eval CREATE TABLE t1 ( +id INTEGER NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) +) ENGINE=$engine_type; + +eval CREATE TABLE t2 ( +id INTEGER NOT NULL, +FOREIGN KEY (id) REFERENCES t1 (id) +) ENGINE=$engine_type; + +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) +eval CREATE TABLE t1 +( + id INT PRIMARY KEY +) ENGINE=$engine_type; + +--error 1005,1005 +eval CREATE TEMPORARY TABLE t2 +( + id INT NOT NULL PRIMARY KEY, + b INT, + FOREIGN KEY (b) REFERENCES test.t1(id) +) ENGINE=$engine_type; +DROP TABLE t1; +} +# End of FOREIGN KEY test + +# Please do not remove the following skipped InnoDB specific tests. +# They make the synchronization with innodb.test easier and give +# an idea what to test on other storage engines. +if (0) +{ + +# +# Test that index column max sizes are honored (bug #13315) +# + +# prefix index +eval create table t1 (col1 varchar(2000), index (col1(767))) + character set = latin1 engine = $engine_type; + +# normal indexes +eval create table t2 (col1 char(255), index (col1)) + character set = latin1 engine = $engine_type; +eval create table t3 (col1 binary(255), index (col1)) + character set = latin1 engine = $engine_type; +eval create table t4 (col1 varchar(767), index (col1)) + character set = latin1 engine = $engine_type; +eval create table t5 (col1 varchar(767) primary key) + character set = latin1 engine = $engine_type; +eval create table t6 (col1 varbinary(767) primary key) + character set = latin1 engine = $engine_type; +eval create table t7 (col1 text, index(col1(767))) + character set = latin1 engine = $engine_type; +eval create table t8 (col1 blob, index(col1(767))) + character set = latin1 engine = $engine_type; + + +# multi-column indexes are allowed to be longer +eval create table t9 (col1 varchar(512), col2 varchar(512), index(col1, col2)) + character set = latin1 engine = $engine_type; + +show create table t9; + +drop table t1, t2, t3, t4, t5, t6, t7, t8, t9; + +# these should have their index length trimmed +eval create table t1 (col1 varchar(768), index(col1)) + character set = latin1 engine = $engine_type; +eval create table t2 (col1 varbinary(768), index(col1)) + character set = latin1 engine = $engine_type; +eval create table t3 (col1 text, index(col1(768))) + character set = latin1 engine = $engine_type; +eval create table t4 (col1 blob, index(col1(768))) + character set = latin1 engine = $engine_type; + +show create table t1; + +drop table t1, t2, t3, t4; + +} +# End of skipped test + +# Please do not remove the following skipped InnoDB specific tests. +# They make the synchronization with innodb.test easier and give +# an idea what to test on other storage engines. +if (0) +{ + +# these should be refused +--error 1071 +eval create table t1 (col1 varchar(768) primary key) + character set = latin1 engine = $engine_type; +--error 1071 +eval create table t2 (col1 varbinary(768) primary key) + character set = latin1 engine = $engine_type; +--error 1071 +eval create table t3 (col1 text, primary key(col1(768))) + character set = latin1 engine = $engine_type; +--error 1071 +eval create table t4 (col1 blob, primary key(col1(768))) + character set = latin1 engine = $engine_type; + +} + +if ($test_foreign_keys) +{ +# +# Test improved foreign key error messages (bug #3443) +# + +eval CREATE TABLE t1 +( + id INT PRIMARY KEY +) ENGINE=$engine_type; + +eval CREATE TABLE t2 +( + v INT, + CONSTRAINT c1 FOREIGN KEY (v) REFERENCES t1(id) +) ENGINE=$engine_type; + +--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; +} +# End of FOREIGN tests + +if ($test_transactions) +{ +# +# Test that checksum table uses a consistent read Bug #12669 +# +connect (a,localhost,root,,); +connect (b,localhost,root,,); +connection a; +eval create table t1(a int not null) engine=$engine_type DEFAULT CHARSET=latin1; +insert into t1 values (1),(2); +set autocommit=0; +checksum table t1; +connection b; +insert into t1 values(3); +connection a; +# +# Here checksum should not see insert +# +checksum table t1; +connection a; +commit; +checksum table t1; +commit; +drop table t1; +# +# autocommit = 1 +# +connection a; +eval create table t1(a int not null) engine=$engine_type DEFAULT CHARSET=latin1; +insert into t1 values (1),(2); +set autocommit=1; +checksum table t1; +connection b; +set autocommit=1; +insert into t1 values(3); +connection a; +# +# Here checksum sees insert +# +checksum table t1; +drop table t1; + +connection default; +disconnect a; +disconnect b; +} + +# tests for bugs #9802 and #13778 + +if ($test_foreign_keys) +{ +# test that FKs between invalid types are not accepted + +set foreign_key_checks=0; +eval create table t2 (a int primary key, b int, foreign key (b) references t1(a)) engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR . mysqld.1/data/ '' +-- error 1005 +eval create table t1(a char(10) primary key, b varchar(20)) engine = $engine_type; +set foreign_key_checks=1; +drop table t2; + +# test that FKs between different charsets are not accepted in CREATE even +# when f_k_c is 0 + +set foreign_key_checks=0; +eval create table t1(a varchar(10) primary key) engine = $engine_type DEFAULT CHARSET=latin1; +--replace_result $MYSQLTEST_VARDIR . mysqld.1/data/ '' +-- error 1005 +eval create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = $engine_type DEFAULT CHARSET=utf8; +set foreign_key_checks=1; +drop table t1; + +# test that invalid datatype conversions with ALTER are not allowed + +set foreign_key_checks=0; +eval create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = $engine_type; +eval create table t1(a varchar(10) primary key) engine = $engine_type; +-- error 1025,1025 +alter table t1 modify column a int; +set foreign_key_checks=1; +drop table t2,t1; + +# test that charset conversions with ALTER are allowed when f_k_c is 0 + +set foreign_key_checks=0; +eval create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = $engine_type DEFAULT CHARSET=latin1; +eval create table t1(a varchar(10) primary key) engine = $engine_type DEFAULT CHARSET=latin1; +alter table t1 convert to character set utf8; +set foreign_key_checks=1; +drop table t2,t1; + +# test that RENAME does not allow invalid charsets when f_k_c is 0 + +set foreign_key_checks=0; +eval create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = $engine_type DEFAULT CHARSET=latin1; +eval create table t3(a varchar(10) primary key) engine = $engine_type DEFAULT CHARSET=utf8; +--replace_result $MYSQLTEST_VARDIR . mysqld.1/data/ '' +-- error 1025 +rename table t3 to t1; +set foreign_key_checks=1; +drop table t2,t3; + +# test that foreign key errors are reported correctly (Bug #15550) + +eval create table t1(a int primary key) row_format=redundant engine=$engine_type; +eval create table t2(a int primary key,constraint foreign key(a)references t1(a)) row_format=compact engine=$engine_type; +eval create table t3(a int primary key) row_format=compact engine=$engine_type; +eval create table t4(a int primary key,constraint foreign key(a)references t3(a)) row_format=redundant engine=$engine_type; + +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; + +drop table t4,t3,t2,t1; +} +# End of FOREIGN KEY tests + + +# Please do not remove the following skipped InnoDB specific tests. +# They make the synchronization with innodb.test easier and give +# an idea what to test on other storage engines. +if (0) +{ + +# +# Test that we can create a large (>1K) key +# +eval 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=$engine_type; +drop table t1; +--error ER_TOO_LONG_KEY +eval 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=$engine_type; + + +# test the padding of BINARY types and collations (Bug #14189) + +eval create table t1 (s1 varbinary(2),primary key (s1)) engine=$engine_type; +eval create table t2 (s1 binary(2),primary key (s1)) engine=$engine_type; +eval create table t3 (s1 varchar(2) binary,primary key (s1)) engine=$engine_type; +eval create table t4 (s1 char(2) binary,primary key (s1)) engine=$engine_type; + +insert into t1 values (0x41),(0x4120),(0x4100); +-- error ER_DUP_ENTRY +insert into t2 values (0x41),(0x4120),(0x4100); +insert into t2 values (0x41),(0x4120); +-- error ER_DUP_ENTRY +insert into t3 values (0x41),(0x4120),(0x4100); +insert into t3 values (0x41),(0x4100); +-- error ER_DUP_ENTRY +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; +} + +if ($test_foreign_keys) +{ +eval create table t1 (a int primary key,s1 varbinary(3) not null unique) engine=$engine_type; +eval create table t2 (s1 binary(2) not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=$engine_type; + +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; + +eval create table t1 (a int primary key,s1 varchar(2) binary not null unique) engine=$engine_type; +eval create table t2 (s1 char(2) binary not null, constraint c foreign key(s1) references t1(s1) on update cascade) engine=$engine_type; + +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; +} +# End FOREIGN KEY tests + +if ($test_foreign_keys) +{ +# Ensure that <tablename>_ibfk_0 is not mistreated as a +# generated foreign key identifier. (Bug #16387) + +eval CREATE TABLE t1(a INT, PRIMARY KEY(a)) ENGINE=$engine_type; +eval CREATE TABLE t2(a INT) ENGINE=$engine_type; +ALTER TABLE t2 ADD FOREIGN KEY (a) REFERENCES t1(a); +ALTER TABLE t2 DROP FOREIGN KEY t2_ibfk_1; +ALTER TABLE t2 ADD CONSTRAINT t2_ibfk_0 FOREIGN KEY (a) REFERENCES t1(a); +ALTER TABLE t2 DROP FOREIGN KEY t2_ibfk_0; +SHOW CREATE TABLE t2; +DROP TABLE t2,t1; +} + +# +# 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; +eval create table t1(a int not null, b int, c int, d int, primary key(a)) engine=$engine_type; +insert into t1(a) values (1),(2),(3); +commit; +connection b; +set autocommit = 0; +update t1 set b = 5 where a = 2; +commit; +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; +eval create table t1(a int not null, b int, c int, d int, primary key(a)) engine=$engine_type; +eval create table t2(a int not null, b int, c int, d int, primary key(a)) engine=$engine_type; +eval create table t3(a int not null, b int, c int, d int, primary key(a)) engine=$engine_type; +eval create table t4(a int not null, b int, c int, d int, primary key(a)) engine=$engine_type; +eval create table t5(a int not null, b int, c int, d int, primary key(a)) engine=$engine_type; +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); +commit; +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; + +if ($test_foreign_keys) +{ +# +# Test that cascading updates leading to duplicate keys give the correct +# error message (bug #9680) +# + +eval CREATE TABLE t1 ( + field1 varchar(8) NOT NULL DEFAULT '', + field2 varchar(8) NOT NULL DEFAULT '', + PRIMARY KEY (field1, field2) +) ENGINE=$engine_type; + +eval CREATE TABLE t2 ( + field1 varchar(8) NOT NULL DEFAULT '' PRIMARY KEY, + FOREIGN KEY (field1) REFERENCES t1 (field1) + ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=$engine_type; + +INSERT INTO t1 VALUES ('old', 'somevalu'); +INSERT INTO t1 VALUES ('other', 'anyvalue'); + +INSERT INTO t2 VALUES ('old'); +INSERT INTO t2 VALUES ('other'); + +--error ER_FOREIGN_DUPLICATE_KEY +UPDATE t1 SET field1 = 'other' WHERE field2 = 'somevalu'; + +DROP TABLE t2; +DROP TABLE t1; + +# +# Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE +# +eval create table t1 ( + c1 bigint not null, + c2 bigint not null, + primary key (c1), + unique key (c2) +) engine=$engine_type; +# +eval create table t2 ( + c1 bigint not null, + primary key (c1) +) engine=$engine_type; +# +alter table t1 add constraint c2_fk foreign key (c2) + references t2(c1) on delete cascade; +show create table t1; +# +alter table t1 drop foreign key c2_fk; +show create table t1; +# +drop table t1, t2; +} +# End FOREIGN KEY test + +# +# Bug #14360: problem with intervals +# + +eval create table t1(a date) engine=$engine_type; +eval create table t2(a date, key(a)) engine=$engine_type; +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; + +eval create table t1 (id int not null, f_id int not null, f int not null, +primary key(f_id, id)) engine=$engine_type; +eval create table t2 (id int not null,s_id int not null,s varchar(200), +primary key(id)) engine=$engine_type; +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; + +# +# Test case where X-locks on unused rows should be released in a +# update (because READ COMMITTED isolation level) +# + +connect (a,localhost,root,,); +connect (b,localhost,root,,); +connection a; +eval create table t1(a int not null, b int, primary key(a)) engine=$engine_type; +insert into t1 values(1,1),(2,2),(3,1),(4,2),(5,1),(6,2),(7,3); +commit; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +update t1 set b = 5 where b = 1; +connection b; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +# +# X-lock to record (7,3) should be released in a update +# +select * from t1 where a = 7 and b = 3 for update; +connection a; +commit; +connection b; +commit; +drop table t1; +connection default; +disconnect a; +disconnect b; + +if ($test_transactions) +{ +# +# Test case where no locks should be released (because we are not +# using READ COMMITTED isolation level) +# + +connect (a,localhost,root,,); +connect (b,localhost,root,,); +connection a; +eval create table t1(a int not null, b int, primary key(a)) engine=$engine_type; +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; +# +# X-lock to record (1,1),(3,1),(5,1) should not be released in a update +# +--error 1205 +connection a; +commit; +connection b; +commit; +connection default; +disconnect a; +disconnect b; +drop table t1; + +# +# Consistent read should be used in following selects +# +# 1) INSERT INTO ... SELECT +# 2) UPDATE ... = ( SELECT ...) +# 3) CREATE ... SELECT + +connect (a,localhost,root,,); +connect (b,localhost,root,,); +connection a; +eval create table t1(a int not null, b int, primary key(a)) engine=$engine_type; +insert into t1 values (1,2),(5,3),(4,2); +eval create table t2(d int not null, e int, primary key(d)) engine=$engine_type; +insert into t2 values (8,6),(12,1),(3,1); +commit; +set autocommit = 0; +select * from t2 for update; +connection b; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +insert into t1 select * from t2; +update t1 set b = (select e from t2 where a = d); +eval create table t3(d int not null, e int, primary key(d)) engine=$engine_type +select * from t2; +commit; +connection a; +commit; +connection default; +disconnect a; +disconnect b; +drop table t1, t2, t3; + +# +# Consistent read should not be used if +# +# (a) isolation level is serializable OR +# (b) select ... lock in share mode OR +# (c) select ... for update +# +# in following queries: +# +# 1) INSERT INTO ... SELECT +# 2) UPDATE ... = ( SELECT ...) +# 3) CREATE ... SELECT + +connect (a,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (b,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (c,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (d,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (e,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (f,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (g,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (h,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (i,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (j,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connection a; +create table t1(a int not null, b int, primary key(a)); +insert into t1 values (1,2),(5,3),(4,2); +create table t2(a int not null, b int, primary key(a)); +insert into t2 values (8,6),(12,1),(3,1); +create table t3(d int not null, b int, primary key(d)); +insert into t3 values (8,6),(12,1),(3,1); +create table t5(a int not null, b int, primary key(a)); +insert into t5 values (1,2),(5,3),(4,2); +create table t6(d int not null, e int, primary key(d)); +insert into t6 values (8,6),(12,1),(3,1); +create table t8(a int not null, b int, primary key(a)); +insert into t8 values (1,2),(5,3),(4,2); +create table t9(d int not null, e int, primary key(d)); +insert into t9 values (8,6),(12,1),(3,1); +commit; +set autocommit = 0; +select * from t2 for update; +connection b; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +--send +insert into t1 select * from t2; +connection c; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +--send +update t3 set b = (select b from t2 where a = d); +connection d; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +--send +create table t4(a int not null, b int, primary key(a)) select * from t2; +connection e; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +--send +insert into t5 (select * from t2 lock in share mode); +connection f; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +--send +update t6 set e = (select b from t2 where a = d lock in share mode); +connection g; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +--send +create table t7(a int not null, b int, primary key(a)) select * from t2 lock in share mode; +connection h; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +--send +insert into t8 (select * from t2 for update); +connection i; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +--send +update t9 set e = (select b from t2 where a = d for update); +connection j; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; +--send +create table t10(a int not null, b int, primary key(a)) select * from t2 for update; + +connection b; +--error 1205 +reap; + +connection c; +--error 1205 +reap; + +connection d; +--error 1205 +reap; + +connection e; +--error 1205 +reap; + +connection f; +--error 1205 +reap; + +connection g; +--error 1205 +reap; + +connection h; +--error 1205 +reap; + +connection i; +--error 1205 +reap; + +connection j; +--error 1205 +reap; + +connection a; +commit; + +connection default; +disconnect a; +disconnect b; +disconnect c; +disconnect d; +disconnect e; +disconnect f; +disconnect g; +disconnect h; +disconnect i; +disconnect j; +drop table t1, t2, t3, t5, t6, t8, t9; +} +# End transactional tests + +if ($test_foreign_keys) +{ +# bug 18934, "InnoDB crashes when table uses column names like DB_ROW_ID" +--error 1005 +eval CREATE TABLE t1 (DB_ROW_ID int) engine=$engine_type; + +# +# Bug #17152: Wrong result with BINARY comparison on aliased column +# + +eval CREATE TABLE t1 ( + a BIGINT(20) NOT NULL, + PRIMARY KEY (a) + ) ENGINE=$engine_type DEFAULT CHARSET=UTF8; + +eval 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=$engine_type 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; +} + +if ($no_spatial_key) +{ +# +# Bug #15680 (SPATIAL key in innodb) +# +--error ER_TABLE_CANT_HANDLE_SPKEYS +eval create table t1 (g geometry not null, spatial gk(g)) engine=$engine_type; +} + +# +# Test optimize on table with open transaction +# + +eval CREATE TABLE t1 ( a int ) ENGINE=$engine_type; +BEGIN; +INSERT INTO t1 VALUES (1); +OPTIMIZE TABLE t1; +DROP TABLE t1; + +####################################################################### +# # +# This is derivate of t/innodb.test and has to be maintained by # +# MySQL guys only. # +# # +# Please synchronize this file from time to time with t/innodb.test. # +# Please, DO NOT create a toplevel testcase innodb-mix2.test, because # +# innodb.test does already these tests. # +# # +####################################################################### diff --git a/mysql-test/include/mix2_ucs2.inc b/mysql-test/include/mix2_ucs2.inc new file mode 100644 index 00000000..418bc7aa --- /dev/null +++ b/mysql-test/include/mix2_ucs2.inc @@ -0,0 +1,228 @@ +# +# Tests from mix2.inc which require ucs2 character sets should go here +# + +# +# BUG 14056 Column prefix index on UTF-8 primary key column causes: Can't find record.. +# + +eval 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 = $engine_type; +eval 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 = $engine_type; +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; + +eval 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 = $engine_type; +eval 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 = $engine_type; +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; + +eval 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 = $engine_type; +eval 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 = $engine_type; +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; + +eval 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 = $engine_type; +eval 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 = $engine_type; +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 +# +eval CREATE TABLE t1 ( + ind enum('0','1','2') NOT NULL default '0', + string1 varchar(250) NOT NULL, + PRIMARY KEY (ind) +) ENGINE=$engine_type DEFAULT CHARSET=utf8; +eval CREATE TABLE t2 ( + ind enum('0','1','2') NOT NULL default '0', + string1 varchar(250) NOT NULL, + PRIMARY KEY (ind) +) ENGINE=$engine_type 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; + +eval CREATE TABLE t1 ( + ind set('0','1','2') NOT NULL default '0', + string1 varchar(250) NOT NULL, + PRIMARY KEY (ind) +) ENGINE=$engine_type DEFAULT CHARSET=utf8; +eval CREATE TABLE t2 ( + ind set('0','1','2') NOT NULL default '0', + string1 varchar(250) NOT NULL, + PRIMARY KEY (ind) +) ENGINE=$engine_type 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; + +eval CREATE TABLE t1 ( + ind bit not null, + string1 varchar(250) NOT NULL, + PRIMARY KEY (ind) +) ENGINE=$engine_type DEFAULT CHARSET=utf8; +eval CREATE TABLE t2 ( + ind bit not null, + string1 varchar(250) NOT NULL, + PRIMARY KEY (ind) +) ENGINE=$engine_type 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..' + +eval create table t2 ( + a int, b char(10), filler char(10), primary key(a, b(2)) +) character set utf8 engine = $engine_type; + +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; +eval create table t2 ( + a int, b char(10), filler char(10), primary key(a, b(2)) +) character set ucs2 engine = $engine_type; + +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; + +eval create table t1(a int not null, b char(110),primary key(a,b(100))) engine=$engine_type 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; +eval create table t1(a int not null, b text(110),primary key(a,b(100))) engine=$engine_type 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; + diff --git a/mysql-test/include/mrr_tests.inc b/mysql-test/include/mrr_tests.inc new file mode 100644 index 00000000..ad7dff61 --- /dev/null +++ b/mysql-test/include/mrr_tests.inc @@ -0,0 +1,118 @@ + +create table t1(a int); +show create table t1; +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t2(a int); +insert into t2 select A.a + 10*(B.a + 10*C.a) from t1 A, t1 B, t1 C; + + +create table t3 ( + a char(8) not null, b char(8) not null, filler char(200), + key(a) +); +insert into t3 select @a:=concat('c-', 1000+ A.a, '=w'), @a, 'filler' from t2 A; +insert into t3 select concat('c-', 1000+A.a, '=w'), concat('c-', 2000+A.a, '=w'), + 'filler-1' from t2 A; +insert into t3 select concat('c-', 1000+A.a, '=w'), concat('c-', 3000+A.a, '=w'), + 'filler-2' from t2 A; + +# Test empty result set +select a,filler from t3 where a >= 'c-9011=w'; + +# Ok, t3.ref_length=6, limit is 64 => 10 elements fit into the buffer +# Test the cases when buffer gets exhausted at different points in source +# intervals: + +# 1. Split is in the middle of the range +select a,filler from t3 where a >= 'c-1011=w' and a <= 'c-1015=w'; + +# 2. Split is at range edge +select a,filler from t3 where (a>='c-1011=w' and a <= 'c-1013=w') or + (a>='c-1014=w' and a <= 'c-1015=w'); + +# 3. Split is at range edge, with some rows between ranges. +insert into t3 values ('c-1013=z', 'c-1013=z', 'err'); +insert into t3 values ('a-1014=w', 'a-1014=w', 'err'); + +select a,filler from t3 where (a>='c-1011=w' and a <= 'c-1013=w') or + (a>='c-1014=w' and a <= 'c-1015=w'); +delete from t3 where b in ('c-1013=z', 'a-1014=w'); + +# 4. Split is within the equality range. +select a,filler from t3 where a='c-1011=w' or a='c-1012=w' or a='c-1013=w' or + a='c-1014=w' or a='c-1015=w'; + +# 5. Split is at the edge of equality range. +insert into t3 values ('c-1013=w', 'del-me', 'inserted'); +select a,filler from t3 where a='c-1011=w' or a='c-1012=w' or a='c-1013=w' or + a='c-1014=w' or a='c-1015=w'; +delete from t3 where b='del-me'; + +# PK tests are not included here. + +alter table t3 add primary key(b); + +## PK scan tests +# 6. Split is between 'unique' PK ranges +select b,filler from t3 where (b>='c-1011=w' and b<= 'c-1018=w') or + b IN ('c-1019=w', 'c-1020=w', 'c-1021=w', + 'c-1022=w', 'c-1023=w', 'c-1024=w'); + +# 7. Between non-uniq and uniq range +select b,filler from t3 where (b>='c-1011=w' and b<= 'c-1020=w') or + b IN ('c-1021=w', 'c-1022=w', 'c-1023=w'); + +# 8. Between uniq and non-uniq range +select b,filler from t3 where (b>='c-1011=w' and b<= 'c-1018=w') or + b IN ('c-1019=w', 'c-1020=w') or + (b>='c-1021=w' and b<= 'c-1023=w'); +## End of PK scan tests + +# +# Now try different keypart types and special values +# +--disable_warnings +drop table if exists t4; +--enable_warnings +create table t4 (a varchar(10), b int, c char(10), filler char(200), + key idx1 (a, b, c)); + +# insert buffer_size * 1.5 all-NULL tuples +insert into t4 (filler) select concat('NULL-', 15-a) from t2 order by a limit 15; + +insert into t4 (a,b,c,filler) + select 'b-1',NULL,'c-1', concat('NULL-', 15-a) from t2 order by a limit 15; +insert into t4 (a,b,c,filler) + select 'b-1',NULL,'c-222', concat('NULL-', 15-a) from t2 order by a limit 15; +insert into t4 (a,b,c,filler) + select 'bb-1',NULL,'cc-2', concat('NULL-', 15-a) from t2 order by a limit 15; +insert into t4 (a,b,c,filler) + select 'zz-1',NULL,'cc-2', 'filler-data' from t2 order by a limit 500; + +explain + select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1' + or c='no-such-row2'); +select * from t4 where a IS NULL and b IS NULL and (c IS NULL or c='no-such-row1' + or c='no-such-row2'); + +explain + select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2'); +select * from t4 where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2'); + +select * from t4 ignore index(idx1) where (a ='b-1' or a='bb-1') and b IS NULL and (c='c-1' or c='cc-2'); +drop table t1, t2, t3, t4; + +# +# Check how ICP works with NULLs and partially-covered indexes +# +create table t1 (a int, b int not null,unique key (a,b),index(b)); +insert ignore into t1 values (1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(null,7),(9,9),(8,8),(7,7),(null,9),(null,9),(6,6); +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)); + +select * from t1 where a is null; +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 and b=9 or a is null and b=7 limit 3; +drop table t1, t2; diff --git a/mysql-test/include/mtr_check.sql b/mysql-test/include/mtr_check.sql new file mode 100644 index 00000000..5d73d1f5 --- /dev/null +++ b/mysql-test/include/mtr_check.sql @@ -0,0 +1,109 @@ +-- Copyright (c) 2008, 2013, Oracle and/or its affiliates +-- Copyright (c) 2009, 2013, SkySQL 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, +-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +delimiter ||; + +use mtr|| + +-- +-- Procedure used to check if server has been properly +-- restored after testcase has been run +-- +CREATE DEFINER=root@localhost PROCEDURE check_testcase() +BEGIN + + -- Dump all global variables except those + -- that are supposed to change + SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES + WHERE variable_name NOT IN ('timestamp') + AND variable_name not like "Last_IO_Err*" + AND variable_name != 'INNODB_IBUF_MAX_SIZE' + AND variable_name != 'INNODB_USE_NATIVE_AIO' + AND variable_name != 'INNODB_BUFFER_POOL_LOAD_AT_STARTUP' + AND variable_name not like 'GTID%POS' + AND variable_name != 'GTID_BINLOG_STATE' + AND variable_name != 'THREAD_POOL_SIZE' + ORDER BY variable_name; + + -- Dump all databases, there should be none + -- except those that was created during bootstrap + SELECT * FROM INFORMATION_SCHEMA.SCHEMATA ORDER BY BINARY SCHEMA_NAME; + + -- and the mtr_wsrep_notify schema which is populated by the std_data/wsrep_notify.sh script + -- and the suite/galera/t/galera_var_notify_cmd.test + -- and the wsrep_schema schema that may be created by Galera + SELECT * FROM INFORMATION_SCHEMA.SCHEMATA + WHERE SCHEMA_NAME NOT IN ('mtr_wsrep_notify', 'wsrep_schema') + ORDER BY BINARY SCHEMA_NAME; + + -- The test database should not contain any tables + SELECT table_name AS tables_in_test FROM INFORMATION_SCHEMA.TABLES + WHERE table_schema='test'; + + -- Show "mysql" database, tables and columns + SELECT CONCAT(table_schema, '.', table_name) AS tables_in_mysql + FROM INFORMATION_SCHEMA.TABLES + WHERE table_schema='mysql' + ORDER BY tables_in_mysql; + SELECT CONCAT(table_schema, '.', table_name) AS columns_in_mysql, + 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, column_comment + FROM INFORMATION_SCHEMA.COLUMNS + WHERE table_schema='mysql' + ORDER BY columns_in_mysql; + + -- Dump all events, there should be none + SELECT * FROM INFORMATION_SCHEMA.EVENTS; + -- Dump all triggers except mtr internals, there should be none + SELECT * FROM INFORMATION_SCHEMA.TRIGGERS + WHERE TRIGGER_NAME NOT IN ('gs_insert', 'ts_insert') AND TRIGGER_SCHEMA != 'sys'; + -- Dump all created procedures, there should be none + SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA != 'sys'; + + SHOW STATUS LIKE 'slave_open_temp_tables'; + + -- Checksum system tables to make sure they have been properly + -- restored after test + checksum table + mysql.columns_priv, + mysql.db, + mysql.func, + mysql.help_category, + mysql.help_keyword, + mysql.help_relation, + mysql.plugin, +-- mysql.proc, + mysql.procs_priv, + mysql.roles_mapping, + 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.global_priv; + + -- verify that no plugin changed its disabled/enabled state + SELECT * FROM INFORMATION_SCHEMA.PLUGINS + WHERE PLUGIN_STATUS != 'INACTIVE'; + + select * from information_schema.session_variables + where variable_name = 'debug_sync'; + +END|| + diff --git a/mysql-test/include/mtr_warnings.sql b/mysql-test/include/mtr_warnings.sql new file mode 100644 index 00000000..d02f504a --- /dev/null +++ b/mysql-test/include/mtr_warnings.sql @@ -0,0 +1,300 @@ +-- Copyright (c) 2008, 2011, Oracle and/or its affiliates +-- +-- 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, +-- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +delimiter ||; + +use mtr|| + +-- +-- Create table where testcases can insert patterns to +-- be suppressed +-- +CREATE TABLE test_suppressions ( + pattern VARCHAR(255) +) ENGINE=MyISAM|| + + +-- +-- Declare a trigger that makes sure +-- no invalid patterns can be inserted +-- into test_suppressions +-- +SET @character_set_client_saved = @@character_set_client|| +SET @character_set_results_saved = @@character_set_results|| +SET @collation_connection_saved = @@collation_connection|| +SET @@character_set_client = latin1|| +SET @@character_set_results = latin1|| +SET @@collation_connection = latin1_swedish_ci|| +/*!50002 +CREATE DEFINER=root@localhost TRIGGER ts_insert +BEFORE INSERT ON test_suppressions +FOR EACH ROW BEGIN + DECLARE dummy INT; + SELECT "" REGEXP NEW.pattern INTO dummy; +END +*/|| +SET @@character_set_client = @character_set_client_saved|| +SET @@character_set_results = @character_set_results_saved|| +SET @@collation_connection = @collation_connection_saved|| + + +-- +-- Load table with patterns that will be suppressed globally(always) +-- +CREATE TABLE global_suppressions ( + pattern VARCHAR(255) +) ENGINE=MyISAM|| + + +-- Declare a trigger that makes sure +-- no invalid patterns can be inserted +-- into global_suppressions +-- +SET @character_set_client_saved = @@character_set_client|| +SET @character_set_results_saved = @@character_set_results|| +SET @collation_connection_saved = @@collation_connection|| +SET @@character_set_client = latin1|| +SET @@character_set_results = latin1|| +SET @@collation_connection = latin1_swedish_ci|| +/*!50002 +CREATE DEFINER=root@localhost TRIGGER gs_insert +BEFORE INSERT ON global_suppressions +FOR EACH ROW BEGIN + DECLARE dummy INT; + SELECT "" REGEXP NEW.pattern INTO dummy; +END +*/|| +SET @@character_set_client = @character_set_client_saved|| +SET @@character_set_results = @character_set_results_saved|| +SET @@collation_connection = @collation_connection_saved|| + + + +-- +-- Insert patterns that should always be suppressed +-- +INSERT INTO global_suppressions VALUES + (".SELECT UNIX_TIMESTAMP... failed on master"), + ("Aborted connection"), + ("Client requested master to start replication from impossible position"), + ("Could not find first log file name in binary log"), + ("Enabling keys got errno"), + ("Error reading master configuration"), + ("Error reading packet"), + ("Event Scheduler"), + ("Failed to open log"), + ("Failed to open the existing master info file"), + ("Forcing shutdown of [0-9]* plugins"), + + /* + Due to timing issues, it might be that this warning + is printed when the server shuts down and the + computer is loaded. + */ + + ("Got error [0-9]* when reading table"), + ("Incorrect information in file"), + ("InnoDB: Warning: we did not need to do crash recovery"), + /*("Invalid \\(old\\?\\) table or database name"),*/ + ("Lock wait timeout exceeded"), + ("Log entry on master is longer than max_allowed_packet"), + ("unknown option '--loose-"), + ("unknown variable 'loose-"), + ("You have forced lower_case_table_names to 0 through a command-line option"), + ("Setting lower_case_table_names=2"), + ("Neither --relay-log nor --relay-log-index were used"), + ("Query partially completed"), + ("Slave I.O thread aborted while waiting for relay log"), + ("Slave SQL thread is stopped because UNTIL condition"), + ("Slave SQL thread retried transaction"), + ("Slave \\(additional info\\)"), + ("Slave: .*Duplicate column name"), + ("Slave: .*master may suffer from"), + ("Slave: According to the master's version"), + ("Slave: Column [0-9]* type mismatch"), + ("Slave: Error .* doesn't exist"), + ("Slave: Error .*Unknown table"), + ("Slave: Error in Write_rows event: "), + ("Slave: Field .* of table .* has no default value"), + ("Slave: Field .* doesn't have a default value"), + ("Slave: Query caused different errors on master and slave"), + ("Slave: Table .* doesn't exist"), + ("Slave: Table width mismatch"), + ("Slave: The incident LOST_EVENTS occurred on the master"), + ("Slave: Unknown error.* 1105"), + ("Slave: Can't drop database.* database doesn't exist"), + ("Warning:\s+One can only use the --user.*root"), + ("Warning:\s+Table:.* on (delete|rename)"), + ("You have an error in your SQL syntax"), + ("deprecated"), + ("description of time zone"), + ("equal MariaDB server ids"), + ("error .*connecting to master"), + ("error reading log entry"), + ("lower_case_table_names is set"), + ("skip-name-resolve mode"), + ("slave SQL thread aborted"), + ("Slave: .*Duplicate entry"), + + ("Statement may not be safe to log in statement format"), + + /* innodb foreign key tests that fail in ALTER or RENAME produce this */ + ("InnoDB: Error: in ALTER TABLE `test`.`t[123]`"), + ("InnoDB: Error: in RENAME TABLE table `test`.`t1`"), + ("InnoDB: Error: table `test`.`t[123]` .*does not exist in the InnoDB internal"), + ("InnoDB: Warning: semaphore wait:"), + + /* MDEV-28976: Tests that kill the server do not ensure that the + old process has terminated before starting a new one */ + ("InnoDB: Unable to lock"), + + /* + BUG#32080 - Excessive warnings on Solaris: setrlimit could not + change the size of core files + */ + ("setrlimit could not change the size of core files to 'infinity'"), + + ("The slave I.O thread stops because a fatal error is encountered when it try to get the value of SERVER_ID variable from master."), + + /*It will print a warning if server is run without --explicit_defaults_for_timestamp.*/ + ("TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details)*"), + + /* Added 2009-08-XX after fixing Bug #42408 */ + + ("Although a .* file was specified, log tables are used. To enable logging to files "), + ("Backup: Operation aborted"), + ("Restore: Operation aborted"), + ("Restore: The grant .* was skipped because the user does not exist"), + ("The path specified for the variable .* is not a directory or cannot be written:"), + ("Master server does not support or not configured semi-sync replication, fallback to asynchronous"), + (": The MariaDB server is running with the --secure-backup-file-priv option so it cannot execute this statement"), + ("Slave: Unknown table 't1' error.* 1051"), + + /* Maria storage engine dependent tests */ + + /* maria-recovery.test has warning about missing log file */ + ("File '.*maria_log.000.*' not found \\(Errcode: 2\\)"), + /* and about marked-corrupted table */ + ("Table '..mysqltest.t_corrupted1' is crashed, skipping it. Please repair"), + /* maria-recover.test corrupts tables on purpose */ + ("Checking table: '..mysqltest.t_corrupted2'"), + ("Table '..mysqltest.t_corrupted2' is marked as crashed and should be"), + ("Incorrect key file for table '..mysqltest.t_corrupted2.MAI'"), + + /* Messages from valgrind */ + ("==[0-9]*== Memcheck,"), + ("==[0-9]*== Copyright"), + ("==[0-9]*== Using"), + ("==[0-9]*== For more details"), + /* This comes with innodb plugin tests */ + ("==[0-9]*== Warning: set address range perms: large range"), + /* valgrind-3.5.0 dumps this */ + ("==[0-9]*== Command: "), + + /* valgrind warnings: invalid file descriptor -1 in syscall + write()/read(). Bug #50414 */ + ("==[0-9]*== Warning: invalid file descriptor -1 in syscall write()"), + ("==[0-9]*== Warning: invalid file descriptor -1 in syscall read()"), + + /* + Transient network failures that cause warnings on reconnect. + BUG#47743 and BUG#47983. + */ + ("Slave I/O: Get master SERVER_ID failed with error:.*"), + ("Slave I/O: Get master clock failed with error:.*"), + ("Slave I/O: Get master COLLATION_SERVER failed with error:.*"), + ("Slave I/O: Get master TIME_ZONE failed with error:.*"), + ("Slave I/O: The slave I/O thread stops because a fatal error is encountered when it tried to SET @master_binlog_checksum on master.*"), + ("Slave I/O: Get master BINLOG_CHECKSUM failed with error.*"), + ("Slave I/O: Notifying master by SET @master_binlog_checksum= @@global.binlog_checksum failed with error.*"), + ("Slave I/O: Setting master-side filtering of @@skip_replication failed with error:.*"), + ("Slave I/O: Setting @mariadb_slave_capability failed with error:.*"), + ("Slave I/O: Get master @@GLOBAL.gtid_domain_id failed with error.*"), + ("Slave I/O: Setting @slave_connect_state failed with error.*"), + ("Slave I/O: Setting @slave_gtid_strict_mode failed with error.*"), + ("Slave I/O: Setting @slave_gtid_ignore_duplicates failed with error.*"), + ("Slave I/O: Setting @slave_until_gtid failed with error.*"), + ("Slave I/O: Get master GTID position failed with error.*"), + + /* + MDEV-12501 -- set --maturity-level by default + */ + ("Plugin .* is of maturity level .* while the server is .*"), + + ("THE_LAST_SUPPRESSION")|| + + +-- +-- Procedure that uses the above created tables to check +-- the servers error log for warnings +-- +CREATE DEFINER=root@localhost PROCEDURE check_warnings(OUT result INT) +BEGIN + DECLARE `pos` bigint unsigned; + + -- Don't write these queries to binlog + SET SQL_LOG_BIN=0, SQL_SAFE_UPDATES=0; + + -- + -- Remove mark from lines that are suppressed by global suppressions + -- + UPDATE error_log el, global_suppressions gs + SET suspicious=0 + WHERE el.suspicious=1 AND el.line REGEXP gs.pattern; + + -- + -- Remove mark from lines that are suppressed by test specific suppressions + -- + UPDATE error_log el, test_suppressions ts + SET suspicious=0 + WHERE el.suspicious=1 AND el.line REGEXP ts.pattern; + + -- + -- Get the number of marked lines and return result + -- + SELECT COUNT(*) INTO @num_warnings FROM error_log + WHERE suspicious=1; + + IF @num_warnings > 0 THEN + SELECT line + FROM error_log WHERE suspicious=1; + --SELECT * FROM test_suppressions; + -- Return 2 -> check failed + SELECT 2 INTO result; + ELSE + -- Return 0 -> OK + SELECT 0 INTO RESULT; + END IF; + + -- Cleanup for next test + TRUNCATE test_suppressions; + DROP TABLE error_log; + +END|| + +-- +-- Declare a procedure testcases can use to insert test +-- specific suppressions +-- +/*!50001 +CREATE DEFINER=root@localhost +PROCEDURE add_suppression(pattern VARCHAR(255)) +BEGIN + INSERT INTO test_suppressions (pattern) VALUES (pattern); + FLUSH NO_WRITE_TO_BINLOG TABLE test_suppressions; +END +*/|| + + diff --git a/mysql-test/include/mysql_upgrade_preparation.inc b/mysql-test/include/mysql_upgrade_preparation.inc new file mode 100644 index 00000000..6cdaf6dd --- /dev/null +++ b/mysql-test/include/mysql_upgrade_preparation.inc @@ -0,0 +1,26 @@ +# Include this in any test using mysql_upgrade + +# Can't run test of external client with embedded server +-- source include/not_embedded.inc +# diff in the output, if perfschema is not compiled in +# (sys schema views are missing) +-- source include/have_perfschema.inc +# +# Hack: +# +# If running with Valgrind ($VALGRIND_TEST <> 0) then the resource +# consumption (CPU) for upgrading a large log table will be intense. +# Therefore, truncate the log table in advance and issue a statement +# that should be logged. +# +if ($VALGRIND_TEST) +{ + --disable_query_log + --disable_result_log + --disable_abort_on_error + TRUNCATE TABLE mysql.general_log; + SELECT 1; + --enable_abort_on_error + --enable_result_log + --enable_query_log +} diff --git a/mysql-test/include/mysqladmin_shutdown.inc b/mysql-test/include/mysqladmin_shutdown.inc new file mode 100644 index 00000000..be6153a6 --- /dev/null +++ b/mysql-test/include/mysqladmin_shutdown.inc @@ -0,0 +1,7 @@ +# Initiates a clean shutdown of the server and waits for its completion + +--exec $MYSQLADMIN -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= shutdown 2>&1; + +# On Windows mysqladmin does not wait for shutdown to be finished, +# so we have to monitor this with our connection: +--source include/wait_until_disconnected.inc diff --git a/mysql-test/include/mysqlbinlog_have_debug.inc b/mysql-test/include/mysqlbinlog_have_debug.inc new file mode 100644 index 00000000..14da1379 --- /dev/null +++ b/mysql-test/include/mysqlbinlog_have_debug.inc @@ -0,0 +1,34 @@ +############################################# +# checks if mysqlbinlog is debug compiled +# this "cannot" be done simply by using +# have_debug.inc +############################################# + +--disable_query_log +--let $temp_out_help_file=$MYSQL_TMP_DIR/mysqlbinlog_help.tmp +--exec $MYSQL_BINLOG --help>$temp_out_help_file +let log_tmp=$temp_out_help_file; +--let $temp_inc=$MYSQL_TMP_DIR/temp.inc +let inc_tmp=$temp_inc; + +--perl +use strict; +my $tmp_file= $ENV{'log_tmp'} or die "log_tmp not set"; +open(FILE, "$tmp_file") or die("Unable to open $tmp_file: $!\n"); +my $count = () = grep(/Output debug log/g,<FILE>); +close FILE; + +my $temp_inc= $ENV{'inc_tmp'} or die "temp_inc not set"; +open(FILE_INC,">", "$temp_inc") or die("can't open file \"$temp_inc\": $!"); +print FILE_INC '--let $is_debug= '.$count; +close FILE_INC; +EOF +--source $temp_inc + +if (!$is_debug) +{ + --skip mysqlbinlog needs to be debug compiled +} +--remove_file $temp_out_help_file +--remove_file $temp_inc +--enable_query_log diff --git a/mysql-test/include/mysqldump.inc b/mysql-test/include/mysqldump.inc new file mode 100644 index 00000000..3a53bf8e --- /dev/null +++ b/mysql-test/include/mysqldump.inc @@ -0,0 +1,49 @@ +################################################################################ +# mysqldump.inc +# +# SUMMARY: include file to facilitate testing the quality of mysqldump output +# +# INPUTS: Two variables: +# $table_name - the name of the table that was dumped +# $mysqldumpfile - the name of the file that captured mysqldump output +# +# OUTPUTS: minor echo data: +# We 'echo' some stage information to the .result file: +# 'altering original table', 'restoring from dumpfile', 'comparing' +# +# OTHER FILES: We use include/diff_tables.inc to compare the original, renamed +# table with the 'restored' one. +# +# DESCRIPTION: This file works by being fed the name of the original table +# and a mysqldump output file. The original table is then renamed +# to <table_name>_orig, the mysqldump file is used to recreate the +# table, then diff_tables.inc is called to compare them. +# +# LIMITATIONS: Does *NOT* work with xml output! +# +# AUTHOR: pcrews 2009-05-21 +# Bug#40465 mysqldump.test does no checking of dump or restore +# +# LAST CHANGE: 2009-05-21 +# +################################################################################ + +--echo # Begin testing mysqldump output + restore +--echo # Create 'original table name - <table>_orig +# NOTE: We use SET then let as query_get_value has issues with the extra commas +# used in the CONCAT statement. +eval SET @orig_table_name = CONCAT('$table_name', '_orig'); +let $orig_table_name = query_get_value(SELECT @orig_table_name,@orig_table_name,1); +--echo # Rename original table +eval ALTER TABLE $table_name RENAME to $orig_table_name; +--echo # Recreate table from mysqldump output +--exec $MYSQL test < $mysqldumpfile +--echo # Compare original and recreated tables +--echo # Recreated table: $table_name +--echo # Original table: $orig_table_name +let $diff_tables = $table_name, $orig_table_name; +--source include/diff_tables.inc +--echo # Cleanup +--remove_file $mysqldumpfile +eval DROP TABLE $table_name, $orig_table_name; + diff --git a/mysql-test/include/mysqlhotcopy.inc b/mysql-test/include/mysqlhotcopy.inc new file mode 100644 index 00000000..31635af2 --- /dev/null +++ b/mysql-test/include/mysqlhotcopy.inc @@ -0,0 +1,137 @@ +# Test of mysqlhotcopy (perl script) +# Author: Horst Hunger +# Created: 2010-05-10 + +--source include/not_windows.inc +--source include/not_embedded.inc +--source include/have_dbi_dbd-mariadb.inc + +if (!$MYSQLHOTCOPY) +{ + # Fail the test if the mysqlhotcopy script is missing. + # If the tool's location changes, mysql-test-run.pl must be updated to + # reflect this (look for "MYSQLHOTCOPY"). + die due to missing mysqlhotcopy tool; +} + +# NOTE (johnemb, 2011-01-26): +# In this test mysqlhotcopy (a perl script) is executed as a standalone +# executable, i.e. not necessarily using the perl interpreter in PATH, +# because that is how the documentation demonstrates it. +# +# We include have_dbi_dbd-mariadb.inc above so that the test will +# be skipped if Perl modules required by the mysqlhotcopy tool are not +# found when the script is run this way. + +--disable_service_connection +let $MYSQLD_DATADIR= `SELECT @@datadir`; +--disable_warnings +DROP DATABASE IF EXISTS hotcopy_test; +--enable_warnings +CREATE DATABASE hotcopy_test; +USE hotcopy_test; +eval CREATE TABLE t1 (c1 int, c2 varchar(20)) ENGINE=$engine; +eval CREATE TABLE t2 (c1 int, c2 varchar(20)) ENGINE=$engine; +eval CREATE TABLE t3 (c1 int, c2 varchar(20)) ENGINE=$engine; + +INSERT INTO t1 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); +INSERT INTO t2 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); +INSERT INTO t3 VALUES (1,'aaaaaaaaaaaaaaaaaaaa'),(2, 'bbbbbbbbbbbbbbbbbbbbbbb'); + +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--list_files $MYSQLD_DATADIR/hotcopy_test + +# backup into another database in the same directory +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save + +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--list_files $MYSQLD_DATADIR/hotcopy_save + +USE hotcopy_save; +SELECT * FROM t1; +SELECT * FROM t2; +SELECT * FROM t3; + +# restore data into the original database with mysqlhotcopy +if(`SELECT engine= 'MyISAM' FROM information_schema.tables WHERE table_name='t1'`) +{ +USE hotcopy_test; +DELETE FROM t1; +SELECT * FROM t1; + +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQLHOTCOPY --quiet --addtodest -S $MASTER_MYSOCK -u root hotcopy_save hotcopy_test + +USE hotcopy_save; +SELECT * FROM t1; +SELECT * FROM t2; +SELECT * FROM t3; +} + +USE hotcopy_test; +DROP TABLE t2; +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--list_files $MYSQLD_DATADIR/hotcopy_test + +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQLHOTCOPY --quiet --addtodest -S $MASTER_MYSOCK -u root hotcopy_save hotcopy_test + +FLUSH TABLES; +SELECT * FROM t1; +SELECT * FROM t2; +SELECT * FROM t3; + +# backup of db into a directory +USE hotcopy_test; +--replace_result $MASTER_MYSOCK MASTER_MYSOCK $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test $MYSQLTEST_VARDIR/tmp +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--list_files $MYSQLTEST_VARDIR/tmp/hotcopy_test +#--exec rm -rf $MYSQLTEST_VARDIR/tmp/hotcopy_test +--disable_warnings +--remove_files_wildcard $MYSQLTEST_VARDIR/tmp/hotcopy_test * +--enable_warnings +--rmdir $MYSQLTEST_VARDIR/tmp/hotcopy_test + +# backup without full index files +# reproduction of bug#53556, "--list_files" shows MYI files, which is wrong. +DROP DATABASE hotcopy_save; +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQLHOTCOPY --quiet --noindices -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--list_files $MYSQLD_DATADIR/hotcopy_save + +# test of option "allowold" +DROP DATABASE hotcopy_save; +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--list_files $MYSQLD_DATADIR/hotcopy_save +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--error 1,9,11,110,2304,255 +--exec $MYSQLHOTCOPY --quiet -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQLHOTCOPY --quiet --allowold -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--list_files $MYSQLD_DATADIR/hotcopy_save + +# test of option "keepold" +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQLHOTCOPY --quiet --keepold -S $MASTER_MYSOCK -u root hotcopy_test hotcopy_save +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--list_files $MYSQLD_DATADIR/hotcopy_save_old +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--list_files $MYSQLD_DATADIR/hotcopy_save + +# test of option "suffix" +--replace_result $MASTER_MYSOCK MASTER_MYSOCK +--exec $MYSQLHOTCOPY --quiet --suffix=_cpy -S $MASTER_MYSOCK -u root hotcopy_test +--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR +--list_files $MYSQLD_DATADIR/hotcopy_test_cpy +DROP DATABASE hotcopy_test_cpy; + +DROP DATABASE hotcopy_test; +DROP DATABASE hotcopy_save; +DROP DATABASE hotcopy_save_old; +--enable_service_connection diff --git a/mysql-test/include/mysqltest-x.inc b/mysql-test/include/mysqltest-x.inc new file mode 100644 index 00000000..797c5c39 --- /dev/null +++ b/mysql-test/include/mysqltest-x.inc @@ -0,0 +1,3 @@ +echo Output from mysqltest-x.inc; +exit; + diff --git a/mysql-test/include/no_protocol.inc b/mysql-test/include/no_protocol.inc new file mode 100644 index 00000000..8ffd3509 --- /dev/null +++ b/mysql-test/include/no_protocol.inc @@ -0,0 +1,8 @@ +# The file with expected results fits only to a run without +# ps-protocol/sp-protocol/cursor-protocol/view-protocol. +if (`SELECT $PS_PROTOCOL + $SP_PROTOCOL + $CURSOR_PROTOCOL + + $VIEW_PROTOCOL > 0`) +{ + --skip Test requires: ps-protocol/sp-protocol/cursor-protocol/view-protocol disabled +} + diff --git a/mysql-test/include/no_running_event_scheduler.inc b/mysql-test/include/no_running_event_scheduler.inc new file mode 100644 index 00000000..92813df9 --- /dev/null +++ b/mysql-test/include/no_running_event_scheduler.inc @@ -0,0 +1,23 @@ +########## include/no_running_event_scheduler.inc ########################## +# # +# Wait till the event scheduler disappeared from processlist. # +# # +# The characteristics of the event_scheduler entry within the processlist is # +# user = 'event_scheduler' and command = 'Daemon'. I am not 100% sure if # +# ther is no short phase with command <> 'Daemon'. # +# A query with WHERE user = 'event_scheduler' only will also catch events in # +# startup phase. This is no problem since this phase is very short. # +# # +# A wait_timeout of >= 3 seconds was within experiments sufficient even on a # +# testing box with heavy parallel load. Therefore 5 seconds should be enough. # +# # +# Creation: # +# 2008-12-19 mleich Implement this check needed for test bug fixes # +# # +################################################################################ + +let $wait_timeout= 5; +let $wait_condition= + SELECT COUNT(*) = 0 FROM information_schema.processlist + WHERE user = 'event_scheduler'; +--source include/wait_condition.inc diff --git a/mysql-test/include/no_running_events.inc b/mysql-test/include/no_running_events.inc new file mode 100644 index 00000000..8090b270 --- /dev/null +++ b/mysql-test/include/no_running_events.inc @@ -0,0 +1,25 @@ +########## include/no_running_events.inc ################################### +# # +# Wait till all event executors have finished their work. # +# # +# Different event executors share the characteristics that their entry within # +# processlist contains command = 'Connect'. # +# Of course the corresponding query will also catch other connections being # +# within the connect phase. This is no problem since the connect phase is # +# usually very short. # +# # +# A wait_timeout of >= 3 seconds was during experiments in case of "simple" # +# SQL commands sufficient even on a testing box with heavy parallel load. # +# "simple" = no sleeps, no long running commands, no waiting for lock ... # +# We use here the default of 30 seconds because this wastes some time only in # +# case of unexpected situations. # +# # +# Creation: # +# 2008-12-19 mleich Implement this check needed for test bug fixes # +# # +################################################################################ + +let $wait_condition= + SELECT COUNT(*) = 0 FROM information_schema.processlist + WHERE command = 'Connect'; +--source include/wait_condition.inc diff --git a/mysql-test/include/no_utf8_cli.inc b/mysql-test/include/no_utf8_cli.inc new file mode 100644 index 00000000..19f9aa6d --- /dev/null +++ b/mysql-test/include/no_utf8_cli.inc @@ -0,0 +1,3 @@ +# Check if utf8 can't be used on the command line for --exec +# The real check is done in the suite.pm +# diff --git a/mysql-test/include/no_valgrind_without_big.inc b/mysql-test/include/no_valgrind_without_big.inc new file mode 100644 index 00000000..ea1f2ac9 --- /dev/null +++ b/mysql-test/include/no_valgrind_without_big.inc @@ -0,0 +1,13 @@ +# include/no_valgrind_without_big.inc +# +# If we are running with Valgrind ($VALGRIND_TEST <> 0) than the resource +# consumption (storage space needed, runtime ...) will be extreme. +# Therefore we require that the option "--big-test" is also set. +# + +if ($VALGRIND_TEST) { + if (!$BIG_TEST) + { + --skip Need "--big-test" when running with Valgrind + } +} diff --git a/mysql-test/include/no_view_protocol.inc b/mysql-test/include/no_view_protocol.inc new file mode 100644 index 00000000..9e579783 --- /dev/null +++ b/mysql-test/include/no_view_protocol.inc @@ -0,0 +1,6 @@ +# The file with expected results fits only to a run without +# view-protocol. +if (`SELECT $VIEW_PROTOCOL > 0`) +{ + --skip Test requires: view-protocol disabled +}
\ No newline at end of file diff --git a/mysql-test/include/not_aix.inc b/mysql-test/include/not_aix.inc new file mode 100644 index 00000000..ecdb3b97 --- /dev/null +++ b/mysql-test/include/not_aix.inc @@ -0,0 +1,4 @@ +# +# suite.pm will make sure that all tests including this file +# will be skipped if run under AIX +# diff --git a/mysql-test/include/not_as_root.inc b/mysql-test/include/not_as_root.inc new file mode 100644 index 00000000..6c88051d --- /dev/null +++ b/mysql-test/include/not_as_root.inc @@ -0,0 +1,3 @@ +if ($MYSQL_TEST_ROOT){ + skip Not as root; +} diff --git a/mysql-test/include/not_asan.inc b/mysql-test/include/not_asan.inc new file mode 100644 index 00000000..38fcac15 --- /dev/null +++ b/mysql-test/include/not_asan.inc @@ -0,0 +1,8 @@ +# This file should only be used with test that finds bugs in ASan that can not +# be overcome. In normal cases one should fix the bug server/test case or in +# the worst case add a (temporary?) suppression in asan.supp or lsan.supp + +if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like "ASAN%"`) +{ +--skip Can't be run with ASan +} diff --git a/mysql-test/include/not_binlog_format_row.inc b/mysql-test/include/not_binlog_format_row.inc new file mode 100644 index 00000000..f9354e7c --- /dev/null +++ b/mysql-test/include/not_binlog_format_row.inc @@ -0,0 +1,4 @@ +if (`SELECT @@binlog_format = 'ROW'`) +{ + skip Test cannot run with binlog_format row; +} diff --git a/mysql-test/include/not_blackhole.inc b/mysql-test/include/not_blackhole.inc new file mode 100644 index 00000000..078927ec --- /dev/null +++ b/mysql-test/include/not_blackhole.inc @@ -0,0 +1,5 @@ +if (`SELECT count(*) FROM information_schema.engines WHERE + (support = 'YES' OR support = 'DEFAULT') AND + engine = 'blackhole'`){ + skip Blackhole engine enabled; +} diff --git a/mysql-test/include/not_crashrep.inc b/mysql-test/include/not_crashrep.inc new file mode 100644 index 00000000..7e0d6c19 --- /dev/null +++ b/mysql-test/include/not_crashrep.inc @@ -0,0 +1,30 @@ +# Check if CrashReporter is enabled and would open a window + +perl; +sub skip_test { + # Only relevant on Mac OS X + return 0 unless $^O eq 'darwin'; + my $crep= `defaults read com.apple.CrashReporter DialogType`; + return 0 if $?; + chomp ($crep); + $crep= lc $crep; + return ($crep eq 'basic' || $crep eq 'developer'); +} +my $skip= skip_test(); +open (F, ">" . $ENV{'MYSQL_TMP_DIR'} . "/crashrep.inc"); +print F "let \$crashrep= $skip;\n"; +close F; +EOF + +--source $MYSQL_TMP_DIR/crashrep.inc +--remove_file $MYSQL_TMP_DIR/crashrep.inc + +if ($crashrep) { + --skip CrashReporter would popup a window +} + +# the test will crash mysqld. flush tables now to make sure that +# system tables aren't corrupted by the crash +--disable_query_log ONCE +FLUSH TABLES; + diff --git a/mysql-test/include/not_debug.inc b/mysql-test/include/not_debug.inc new file mode 100644 index 00000000..5917e6bc --- /dev/null +++ b/mysql-test/include/not_debug.inc @@ -0,0 +1,5 @@ +if (`select version() like '%debug%'`) +{ + skip Does not run with debug binaries; +} + diff --git a/mysql-test/include/not_embedded.inc b/mysql-test/include/not_embedded.inc new file mode 100644 index 00000000..4c168f71 --- /dev/null +++ b/mysql-test/include/not_embedded.inc @@ -0,0 +1,4 @@ +# +# suite.pm will make sure that all tests including this file +# will be skipped unless this is an embedded test run +# diff --git a/mysql-test/include/not_encrypted.inc b/mysql-test/include/not_encrypted.inc new file mode 100644 index 00000000..2702fb3d --- /dev/null +++ b/mysql-test/include/not_encrypted.inc @@ -0,0 +1,4 @@ +if (`select @@innodb_encrypt_tables = 1`) +{ + skip only without encryption; +} diff --git a/mysql-test/include/not_msan.inc b/mysql-test/include/not_msan.inc new file mode 100644 index 00000000..ca1e2c1d --- /dev/null +++ b/mysql-test/include/not_msan.inc @@ -0,0 +1,6 @@ +# This file should only be used with tests that are too big or slow for MSAN. + +if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like "MSAN%"`) +{ +--skip Can't be run WITH_MSAN +} diff --git a/mysql-test/include/not_parallel.inc b/mysql-test/include/not_parallel.inc new file mode 100644 index 00000000..615bdf68 --- /dev/null +++ b/mysql-test/include/not_parallel.inc @@ -0,0 +1,3 @@ +if ($MTR_PARALLEL > 1) { + --skip test requires --parallel=1 +} diff --git a/mysql-test/include/not_ssl.inc b/mysql-test/include/not_ssl.inc new file mode 100644 index 00000000..99866923 --- /dev/null +++ b/mysql-test/include/not_ssl.inc @@ -0,0 +1,4 @@ +if (`select @@have_ssl = 'YES'`) +{ + skip only without SSL; +} diff --git a/mysql-test/include/not_staging.inc b/mysql-test/include/not_staging.inc new file mode 100644 index 00000000..bf93c2cb --- /dev/null +++ b/mysql-test/include/not_staging.inc @@ -0,0 +1,4 @@ +--require include/not_staging.require +disable_query_log; +eval select $STAGING_RUN as using_staging_run; +enable_query_log; diff --git a/mysql-test/include/not_staging.require b/mysql-test/include/not_staging.require new file mode 100644 index 00000000..3073f02c --- /dev/null +++ b/mysql-test/include/not_staging.require @@ -0,0 +1,2 @@ +using_staging_run +0 diff --git a/mysql-test/include/not_threadpool.inc b/mysql-test/include/not_threadpool.inc new file mode 100644 index 00000000..98e1f7d2 --- /dev/null +++ b/mysql-test/include/not_threadpool.inc @@ -0,0 +1,4 @@ +if (`SELECT count(*) FROM information_schema.GLOBAL_VARIABLES WHERE + VARIABLE_NAME = 'THREAD_HANDLING' AND VARIABLE_VALUE = 'pool-of-threads'`){ + skip Test requires: 'not_threadpool'; +} diff --git a/mysql-test/include/not_ubsan.inc b/mysql-test/include/not_ubsan.inc new file mode 100644 index 00000000..237adcb4 --- /dev/null +++ b/mysql-test/include/not_ubsan.inc @@ -0,0 +1,8 @@ +# This file should only be used with test that finds bugs in ASan that can not +# be overcome. In normal cases one should fix the bug server/test case or in +# the worst case add a (temporary?) suppression in asan.supp or lsan.supp + +if (`select count(*) from information_schema.system_variables where variable_name='have_sanitizer' and global_value LIKE "%UBSAN"`) +{ +--skip Can't be run with UBSAN +} diff --git a/mysql-test/include/not_valgrind.inc b/mysql-test/include/not_valgrind.inc new file mode 100644 index 00000000..a2372db4 --- /dev/null +++ b/mysql-test/include/not_valgrind.inc @@ -0,0 +1,4 @@ +--require include/not_valgrind.require +--disable_query_log +eval select $VALGRIND_TEST+0 as using_valgrind; +--enable_query_log diff --git a/mysql-test/include/not_valgrind.require b/mysql-test/include/not_valgrind.require new file mode 100644 index 00000000..5d779c6b --- /dev/null +++ b/mysql-test/include/not_valgrind.require @@ -0,0 +1,2 @@ +using_valgrind +0 diff --git a/mysql-test/include/not_valgrind_build.inc b/mysql-test/include/not_valgrind_build.inc new file mode 100644 index 00000000..b62a1bc9 --- /dev/null +++ b/mysql-test/include/not_valgrind_build.inc @@ -0,0 +1,4 @@ +if (`select version() like '%valgrind%' || version() like '%asan%'`) +{ + skip Does not run with binaries built with valgrind or asan; +} diff --git a/mysql-test/include/not_var_link.inc b/mysql-test/include/not_var_link.inc new file mode 100644 index 00000000..e1eb1dff --- /dev/null +++ b/mysql-test/include/not_var_link.inc @@ -0,0 +1,18 @@ +# Test if MYSQLTEST_VARDIR is a soft link +# If we run in parallel, we have a suffix "/$child_num", so chop off that. + +perl; + my $path= $ENV{'MYSQLTEST_VARDIR'}; + $path=~ s|/\d+$||; + open (ISLINK, ">" . $ENV{'MYSQL_TMP_DIR'} . "/mtr_var_link"); + my $mvr= -l $path ? 1 : 0; + print ISLINK "let \$mtr_var_link= $mvr;\n"; + close ISLINK; +EOF + +--source $MYSQL_TMP_DIR/mtr_var_link +--remove_file $MYSQL_TMP_DIR/mtr_var_link + +if ($mtr_var_link) { + --skip Test does not work with var being softlink +} diff --git a/mysql-test/include/not_windows.inc b/mysql-test/include/not_windows.inc new file mode 100644 index 00000000..03548602 --- /dev/null +++ b/mysql-test/include/not_windows.inc @@ -0,0 +1,4 @@ +# +# suite.pm will make sure that all tests including this file +# will be skipped if run under Windows +# diff --git a/mysql-test/include/not_windows_embedded.inc b/mysql-test/include/not_windows_embedded.inc new file mode 100644 index 00000000..50ff0f80 --- /dev/null +++ b/mysql-test/include/not_windows_embedded.inc @@ -0,0 +1,9 @@ +let $is_win = `select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows")`; +#echo is_win: $is_win; +if ($is_win) +{ + if(!$MYSQL_EMBEDDED) + { + skip Not supported with embedded on windows; + } +} diff --git a/mysql-test/include/one_thread_per_connection.inc b/mysql-test/include/one_thread_per_connection.inc new file mode 100644 index 00000000..08b47fbf --- /dev/null +++ b/mysql-test/include/one_thread_per_connection.inc @@ -0,0 +1,5 @@ +-- require include/one_thread_per_connection.require +disable_query_log; +select @@thread_handling; +enable_query_log; + diff --git a/mysql-test/include/one_thread_per_connection.require b/mysql-test/include/one_thread_per_connection.require new file mode 100644 index 00000000..b2efbca6 --- /dev/null +++ b/mysql-test/include/one_thread_per_connection.require @@ -0,0 +1,2 @@ +@@thread_handling +one-thread-per-connection diff --git a/mysql-test/include/parser_bug21114.inc b/mysql-test/include/parser_bug21114.inc new file mode 100644 index 00000000..eb709d5c --- /dev/null +++ b/mysql-test/include/parser_bug21114.inc @@ -0,0 +1,59 @@ +# +# Bug#21114 (Foreign key creation fails to table with name format) +# +# Trying to trick the parser into thinking $FCT(...) is a function call, +# which is not in the CREATE TABLE and FOREIGN KEY ... REFERENCES syntax +# +# Usage : +# +# let $engine_type=InnoDb; +# let $verbose=1; +# let $FCT= <value_1>; +# -- source parser_stress_func.inc +# let $FCT= <value_2>; +# -- source parser_stress_func.inc +# let $verbose=0; +# let $FCT= <value_3>; +# -- source parser_stress_func.inc +# let $FCT= <value_4>; +# -- source parser_stress_func.inc + +-- disable_warnings +eval drop table if exists $FCT; +drop table if exists bug21114_child; +-- enable_warnings + +--disable_query_log +--disable_result_log + +eval CREATE TABLE $FCT( + col1 int not null, + col2 int not null, + col3 varchar(10), + CONSTRAINT pk PRIMARY KEY (col1, col2) +) ENGINE $engine_type; + +eval CREATE TABLE bug21114_child( + pk int not null, + fk_col1 int not null, + fk_col2 int not null, + fk_col3 int not null, + fk_col4 int not null, + CONSTRAINT fk_fct FOREIGN KEY (fk_col1, fk_col2) + REFERENCES $FCT(col1, col2), + CONSTRAINT fk_fct_space FOREIGN KEY (fk_col3, fk_col4) + REFERENCES $FCT (col1, col2) +) ENGINE $engine_type; + +--enable_query_log +--enable_result_log + +if ($verbose) +{ + eval SHOW CREATE TABLE $FCT; + SHOW CREATE TABLE bug21114_child; +} + +DROP TABLE bug21114_child; +eval DROP TABLE $FCT; + diff --git a/mysql-test/include/partition_date_range.inc b/mysql-test/include/partition_date_range.inc new file mode 100644 index 00000000..5093cb37 --- /dev/null +++ b/mysql-test/include/partition_date_range.inc @@ -0,0 +1,69 @@ +# Created for verifying bug#20577. +# expects TABLE t1 (... , a DATE, ...) + +--sorted_result +SELECT * FROM t1 WHERE a < '1001-01-01'; +--sorted_result +SELECT * FROM t1 WHERE a <= '1001-01-01'; +--sorted_result +SELECT * FROM t1 WHERE a >= '1001-01-01'; +--sorted_result +SELECT * FROM t1 WHERE a > '1001-01-01'; +--sorted_result +SELECT * FROM t1 WHERE a = '1001-01-01'; +--sorted_result +SELECT * FROM t1 WHERE a < '1001-00-00'; +--sorted_result +SELECT * FROM t1 WHERE a <= '1001-00-00'; +--sorted_result +SELECT * FROM t1 WHERE a >= '1001-00-00'; +--sorted_result +SELECT * FROM t1 WHERE a > '1001-00-00'; +--sorted_result +SELECT * FROM t1 WHERE a = '1001-00-00'; +--echo # Disabling warnings for the invalid date +--disable_warnings +--sorted_result +SELECT * FROM t1 WHERE a < '1999-02-31'; +--sorted_result +SELECT * FROM t1 WHERE a <= '1999-02-31'; +--sorted_result +SELECT * FROM t1 WHERE a >= '1999-02-31'; +--sorted_result +SELECT * FROM t1 WHERE a > '1999-02-31'; +--sorted_result +SELECT * FROM t1 WHERE a = '1999-02-31'; +--enable_warnings +--sorted_result +SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1002-00-00'; +--sorted_result +SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1001-01-01'; +--sorted_result +SELECT * FROM t1 WHERE a BETWEEN '0001-01-02' AND '1002-00-00'; +--sorted_result +SELECT * FROM t1 WHERE a BETWEEN '0001-01-01' AND '1001-01-01'; +if ($explain_partitions) +{ +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < '1001-01-01'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= '1001-01-01'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= '1001-01-01'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > '1001-01-01'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = '1001-01-01'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < '1001-00-00'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= '1001-00-00'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= '1001-00-00'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > '1001-00-00'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = '1001-00-00'; +--echo # Disabling warnings for the invalid date +--disable_warnings +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a < '1999-02-31'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a <= '1999-02-31'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a >= '1999-02-31'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a > '1999-02-31'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a = '1999-02-31'; +--enable_warnings +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1002-00-00'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a BETWEEN '0000-00-00' AND '1001-01-01'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a BETWEEN '0001-01-02' AND '1002-00-00'; +EXPLAIN PARTITIONS SELECT * FROM t1 WHERE a BETWEEN '0001-01-01' AND '1001-01-01'; +} diff --git a/mysql-test/include/partition_mrr.inc b/mysql-test/include/partition_mrr.inc new file mode 100644 index 00000000..188bc501 --- /dev/null +++ b/mysql-test/include/partition_mrr.inc @@ -0,0 +1,138 @@ +--source include/have_partition.inc + +--disable_warnings +drop table if exists t1,t3; +--enable_warnings + +--echo # +--echo # MDEV-20611: MRR scan over partitioned InnoDB table produces "Out of memory" error +--echo # +create table t1(a int); +insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +set @tmp=@@default_storage_engine; +eval set default_storage_engine=$engine_type; + +create table t3 ( + ID bigint(20) NOT NULL AUTO_INCREMENT, + part_id int, + key_col int, + col2 int, + key(key_col), + PRIMARY KEY (ID,part_id) +) PARTITION BY RANGE (part_id) +(PARTITION p1 VALUES LESS THAN (3), + PARTITION p2 VALUES LESS THAN (7), + PARTITION p3 VALUES LESS THAN (10) +); + +show create table t3; +set default_storage_engine= @tmp; + +insert into t3 select + A.a+10*B.a, + A.a, + B.a, + 123456 +from t1 A, t1 B; + +set @save_optimizer_switch=@@optimizer_switch; + +set optimizer_switch='mrr=on'; +--replace_column 9 # +explain +select * from t3 force index (key_col) where key_col < 3; +select * from t3 force index (key_col) where key_col < 3; + +set optimizer_switch=@save_optimizer_switch; + +drop table t1,t3; + +--echo # +--echo # MDEV-21544: partitioned table is joined with BKA+MRR +--echo # + +set @save_join_cache_level=@@join_cache_level; +set @save_optimizer_switch=@@optimizer_switch; + +create table t0 ( + tp int, a int, b int not null, c varchar(12), index idx (a,b) +); +insert into t0 values +(1,3,30,'yyzy'), (1,3,30,'yxxyy'), (1,3,30,'yyxy'), (1,3,30,'xxyy'), +(1,3,30,'yyxz'), (1,3,30,'yyzz'), (1,3,30,'xxyzy'), (1,3,30,'yyyy'), +(1,3,30,'yzzy'), (1,93,30,'zzzy'), +(2,3,40,'yxx'), (2,4,40,'xx'), (2,3,10,'zxz'), +(2,3,40,'yyx'), (2,4,40,'xxx'), (2,3,10,'zyyz'), +(2,3,40,'xzzzz'), (2,4,40,'yyyxx'), (2,3,10,'zyz'), +(2,3,40,'xxx'), (2,4,40,'xx'), (2,3,10,'zzz'), +(2,3,40,'yyxzx'), (2,4,40,'xyx'), (2,3,10,'xzz'), +(2,3,40,'xxxzz'), (2,4,40,'xxz'), (2,3,10,'zzzy'), +(2,3,40,'zzxxx'), (2,4,40,'zxx'), (2,3,10,'yzzz'), +(2,3,40,'xyyxx'), (2,4,40,'xzzzx'), (2,3,10,'zzxxz'), +(2,3,40,'yzxxx'), (2,4,40,'xxzy'), (2,3,10,'zzzyx'), +(2,93,40,'xzx'), (2,94,40,'xz'), (2,93,10,'zyyyz'), +(3,4,30,'yx'), (3,4,30,'yyxxx'), (3,4,30,'zzyy'), (3,4,30,'zxyy'), +(3,4,30,'xxyy'), (3,4,30,'yyzx'), (3,4,30,'zyyy'), (3,4,30,'yzy'), +(3,4,30,'zzzyy'), (3,94,30,'yyz'); + +create table t1 ( + tp int, a int, b int not null, c varchar(12), index idx (a,b) +) +partition by list (tp) +( partition p1 values in (1), + partition p2 values in (2), + partition p3 values in (3)); +insert into t1 select * from t0; + +# tables t0 and t1 contain the same set of records. + +create table t2 (a int, index idx(a)); +insert into t2 values +(1), (2), (3), (4), (5); +insert into t2 select a+10 from t2; +insert into t2 select a+20 from t2; + +analyze table t0,t1,t2; + +set join_cache_level=6; +set optimizer_switch='mrr=on'; + +let $q1= +select * from t0,t2 where t2.a in (3,4) and t0.a=t2.a and (t0.b / 10) = t2.a-1; +eval explain extended $q1; +eval $q1; + +let $q2= +select * from t1,t2 where t2.a in (3,4) and t1.a=t2.a and (t1.b / 10) = t2.a-1; +eval explain extended $q2; +eval $q2; + +let $q1= +select * from t0,t2 where t2.a in (3,4) and t0.a=t2.a and (t0.b / 10) = 4; +eval explain extended $q1; +eval $q1; + +let $q2= +select * from t1,t2 where t2.a in (3,4) and t1.a=t2.a and (t1.b / 10) = 4; +eval explain extended $q2; +eval $q2; + +insert into t2 values +(3), (4), (5); +analyze table t2; + +let $q1= +select * from t2 left join t0 on t2.a=t0.a where t2.a in (3,4) and t0.b is null; +eval explain extended $q1; +eval $q1; + +let $q2= +select * from t2 left join t1 on t2.a=t1.a where t2.a in (3,4) and t1.b is null; +eval explain extended $q2; +eval $q2; + +set join_cache_level=@save_join_cache_level; +set optimizer_switch=@save_optimizer_switch; + +drop table t0,t1,t2; diff --git a/mysql-test/include/percona_nonflushing_analyze_debug.inc b/mysql-test/include/percona_nonflushing_analyze_debug.inc new file mode 100644 index 00000000..95621c70 --- /dev/null +++ b/mysql-test/include/percona_nonflushing_analyze_debug.inc @@ -0,0 +1,35 @@ +# +# Test ANALYZE TABLE that does not flush table definition cache +# Arguments: +# $percona_nonflushing_analyze_table - table to test +# + +--source include/count_sessions.inc + +--connect con1,localhost,root + +SET DEBUG_SYNC="handler_ha_index_next_end SIGNAL idx_scan_in_progress WAIT_FOR finish_scan"; + +send_eval SELECT * FROM $percona_nonflushing_analyze_table; + +--connection default + +SET DEBUG_SYNC="now WAIT_FOR idx_scan_in_progress"; + +set @tmp=@@use_stat_tables; +set use_stat_tables='preferably_for_queries'; +eval ANALYZE TABLE $percona_nonflushing_analyze_table; + +set use_stat_tables=@tmp; +# With the bug fixed this should not block +eval SELECT * FROM $percona_nonflushing_analyze_table; + +SET DEBUG_SYNC="now SIGNAL finish_scan"; + +--connection con1 +reap; +--disconnect con1 +--connection default +SET DEBUG_SYNC='reset'; + +--source include/wait_until_count_sessions.inc diff --git a/mysql-test/include/platform.combinations b/mysql-test/include/platform.combinations new file mode 100644 index 00000000..4f0660b7 --- /dev/null +++ b/mysql-test/include/platform.combinations @@ -0,0 +1,6 @@ +[win] + +[aix] + +[unix] + diff --git a/mysql-test/include/platform.inc b/mysql-test/include/platform.inc new file mode 100644 index 00000000..1821021d --- /dev/null +++ b/mysql-test/include/platform.inc @@ -0,0 +1,4 @@ +# +# tests that include this file will be run for an appropriate combination. +# See platform.combinations for the list of combinations. +# diff --git a/mysql-test/include/plugin.defs b/mysql-test/include/plugin.defs new file mode 100644 index 00000000..f2b754eb --- /dev/null +++ b/mysql-test/include/plugin.defs @@ -0,0 +1,44 @@ +# Definition file for plugins. +# +# <lib name> <directory> <variable> [<plugin name>,...] +# +# The following variables will be set for a plugin, where PLUGVAR +# represents the variable name given as the 3rd item +# +# PLUGVAR: name of plugin file including extension .so or .dll +# PLUGVAR_DIR: name of directory where plugin was found +# PLUGVAR_OPT: mysqld option --plugin_dir=.... +# PLUGVAR_LOAD: option --plugin_load=.... if the 4th element is present +# PLUGVAR_LOAD_ADD: option --plugin_load_add=.... if the 4th element is present +# +# If a listed plugin is not found, the corresponding variables will be +# set to empty, they will not be unset. +# +# The PLUGVAR variable is not quoted, so you must remember to quote it +# when using it in an INSTALL PLUGIN command. +# +# The envorinment variables can be used in tests. If adding a new plugin, +# you are free to pick your variable name, but please keep it upper +# case for consistency. +# +# The _LOAD variable will have a form +# +# --plugin_load=<name1>=<lib_name>;<name2>=<lib_name>..... +# +# with name1, name2 etc from the comma separated list of plugin names +# in the optional 4th argument. + +auth_test_plugin plugin/auth PLUGIN_AUTH test_plugin_server,cleartext_plugin_server +qa_auth_interface plugin/auth PLUGIN_AUTH_INTERFACE qa_auth_interface +qa_auth_server plugin/auth PLUGIN_AUTH_SERVER qa_auth_server +qa_auth_client plugin/auth PLUGIN_AUTH_CLIENT qa_auth_client +udf_example sql UDF_EXAMPLE_LIB +ha_example storage/example EXAMPLE_PLUGIN EXAMPLE +semisync_master plugin/semisync SEMISYNC_MASTER_PLUGIN +semisync_slave plugin/semisync SEMISYNC_SLAVE_PLUGIN +ha_archive storage/archive ARCHIVE_PLUGIN +ha_blackhole storage/blackhole BLACKHOLE_PLUGIN +ha_federated storage/federated FEDERATED_PLUGIN +mypluglib plugin/fulltext SIMPLE_PARSER +libdaemon_example plugin/daemon_example DAEMONEXAMPLE +adt_null plugin/audit_null AUDIT_NULL diff --git a/mysql-test/include/print_ddl_log.inc b/mysql-test/include/print_ddl_log.inc new file mode 100644 index 00000000..7b09c622 --- /dev/null +++ b/mysql-test/include/print_ddl_log.inc @@ -0,0 +1,78 @@ +--echo # +--echo # Reading backup ddl log file +--echo # + +let MYSQLD_DATADIR= `select @@datadir`; +perl; + $datadir= $ENV{'MYSQLD_DATADIR'}; + $id_count= 0; + $tmp_table_count; + + open(FILE, "$datadir/ddl.log") or + die("Unable to read log file $datadir/ddl.log: $!\n"); + while(<FILE>) + { + chop; + if (/([^\t]*)[\t]([^\t]*)[\t]([^\t]*)[\t]([^\t]*)[\t]([^\t]*)[\t]([^\t]*)[\t]([^\t]*)[\t]([^\t]*)[\t]([^\t]*)[\t]([^\t]*)[\t]([^\t]*)[\t]([^\t]*)/) + { + my $date = $1; + my $query = $2; + my $storage = $3; + my $partitioned = $4; + my $db = $5; + my $table = $6; + my $table_ver = $7; + my $new_storage = $8; + my $new_partitioned = $9; + my $new_db = $10; + my $new_table = $11; + my $new_table_ver = $12; + # Fix table ids + $table_id1= ""; + $table_id2= ""; + if (!($table_ver eq "")) + { + $table_id1= "id: $id{$table_ver}"; + if (!exists($id{$table_ver})) + { + $id_count++; + $table_id1= "id: $id_count"; + $id{$table_ver}= $id_count; + } + } + if (!($new_table_ver eq "")) + { + $table_id2= "id: $id{$new_table_ver}"; + if (!exists($id{$new_table_ver})) + { + $id_count++; + $table_id2= "id: $id_count"; + $id{$new_table_ver}= $id_count; + } + } + # Fix table names + $table_name1= $table; + if (substr($table_name1,0,5) eq '@0023') + { + if (!exists($name{$table_name1})) + { + $tmp_table_count++; + $name{$table_name1}= "#sql" . $tmp_table_count; + } + $table_name1= $name{$table_name1}; + } + $table_name2= $new_table; + if (substr($table_name2,0,5) eq '@0023') + { + if (!exists($name{$table_name2})) + { + $tmp_table_count++; + $name{$table_name2}= "#sql" . $tmp_table_count; + } + $table_name2= $name{$table_name2}; + } + + print "$query,$storage,$partitioned,$db,$table_name1,$table_id1,$new_storage,$new_partitioned,$new_db,$table_name2,$table_id2\n"; + } + } +EOF diff --git a/mysql-test/include/protocol.combinations b/mysql-test/include/protocol.combinations new file mode 100644 index 00000000..fa5b08c0 --- /dev/null +++ b/mysql-test/include/protocol.combinations @@ -0,0 +1,3 @@ +[nm] + +[ps] diff --git a/mysql-test/include/protocol.inc b/mysql-test/include/protocol.inc new file mode 100644 index 00000000..02f8c3f3 --- /dev/null +++ b/mysql-test/include/protocol.inc @@ -0,0 +1,2 @@ +# The goal of including this file is to enable protocol +# combinations (see include/protocol.combinations) diff --git a/mysql-test/include/ps_conv.inc b/mysql-test/include/ps_conv.inc new file mode 100644 index 00000000..2b7af829 --- /dev/null +++ b/mysql-test/include/ps_conv.inc @@ -0,0 +1,1248 @@ +############################ ps_conv.inc ############################## +# # +# Tests for prepared statements: conversion of parameters # +# # +# Please don't # +# - try to execute this script in ANSI mode, because many statements # +# will fail due to the strict type checking # +# - reuse such ugly assignments like timestamp column = float value . # +# I included them only for controlling purposes. # +######################################################################## + +# +# NOTE: PLEASE SEE ps_1general.test (bottom) +# BEFORE ADDING NEW TEST CASES HERE !!! + +# +# Please be aware, that this file will be sourced by several test case files +# stored within the subdirectory 't'. So every change here will affect +# several test cases. + + +# The MySQL User Variables do not support the simulation of all +# C-API field types. +# +# - There is no method to make an explicit assignment of a type to a variable. +# - The type of the variable can be only influenced by the writing style +# of the value. +# +# The next tests should give an example for these properties. +--disable_warnings +drop table if exists t5 ; +--enable_warnings +--disable_query_log +SET TIME_ZONE= '+03:00'; +--enable_query_log +set @arg01= 8; +set @arg02= 8.0; +set @arg03= 80.00000000000e-1; +set @arg04= 'abc' ; +set @arg05= CAST('abc' as binary) ; +set @arg06= '1991-08-05' ; +set @arg07= CAST('1991-08-05' as date); +set @arg08= '1991-08-05 01:01:01' ; +set @arg09= CAST('1991-08-05 01:01:01' as datetime) ; +set @arg10= unix_timestamp('1991-01-01 01:01:01'); +set @arg11= YEAR('1991-01-01 01:01:01'); +# This first assignment to @arg<n> fixes the type of the variable +# The second assignment sets the value to NULL, but it does not change +# the numeric types. +set @arg12= 8 ; +set @arg12= NULL ; +set @arg13= 8.0 ; +set @arg13= NULL ; +set @arg14= 'abc'; +set @arg14= NULL ; +set @arg15= CAST('abc' as binary) ; +set @arg15= NULL ; +eval create table t5 engine = MyISAM as select + 8 as const01, @arg01 as param01, + 8.0 as const02, @arg02 as param02, + 80.00000000000e-1 as const03, @arg03 as param03, + 'abc' as const04, @arg04 as param04, + CAST('abc' as binary) as const05, @arg05 as param05, + '1991-08-05' as const06, @arg06 as param06, + CAST('1991-08-05' as date) as const07, @arg07 as param07, + '1991-08-05 01:01:01' as const08, @arg08 as param08, + CAST('1991-08-05 01:01:01' as datetime) as const09, @arg09 as param09, + unix_timestamp('1991-01-01 01:01:01') as const10, @arg10 as param10, + YEAR('1991-01-01 01:01:01') as const11, @arg11 as param11, + NULL as const12, @arg12 as param12, + @arg13 as param13, + @arg14 as param14, + @arg15 as param15; + +# Bug#4788 show create table provides incorrect statement +show create table t5 ; +--vertical_results +--enable_metadata +--disable_ps_protocol +--disable_view_protocol +select * from t5 ; +--enable_view_protocol +--enable_ps_protocol +--disable_metadata +--horizontal_results +drop table t5 ; + +# But there seems to be also an implicit conversion of C-API +# data types to a smaller number of base data types. +# +# Example: C-API for prepared statements +# CREATE TABLE abc as SELECT ? as a, ? as b, ... +# +# MYSQL_TYPE of parameter column type +# MYSQL_TYPE_TINY bigint(4) +# MYSQL_TYPE_SHORT bigint(6) +# MYSQL_TYPE_FLOAT double +# ... +# +# So we can hope that the functionality of mysqltest + user variables +# sufficient to simulate much of the behaviour of the C-API +# vis-a-vis the server. + +# The main test object is the table t9, defined as follows: +# +# 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, 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'), +# c32 set('monday', 'tuesday', 'wednesday'), +# primary key(c1) +# ) engine = $type ; +# We test each statement in non-prepared mode and in prepared mode +# for comparison purposes. +# +# We test the following conversions: +# BIGINT -> the rest of numeric columns +# CHAR, LONGTEXT, LONGBLOB, NULL, FLOAT, REAL, DOUBLE -> numeric columns +# FLOAT, REAL, CHAR, LONGTEXT, BINARY, BIGINT -> string +# DATETIME, TIME -> text, and back + + +--disable_query_log +select '------ data type conversion tests ------' as test_sequence ; +--enable_query_log +--source include/ps_renew.inc + +# insert a record with many NULLs +insert into t9 set c1= 0, c15= '1991-01-01 01:01:01' ; +select * from t9 order by c1 ; + +############ select @parm:= .. / select .. into @parm tests ############ +--disable_query_log +select '------ select @parameter:= column ------' as test_sequence ; +--enable_query_log +# PS query to retrieve the content of the @variables +prepare full_info from "select @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" ; + +# non PS statement for comparison purposes +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, + @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 +from t9 where c1= 1 ; +# get as much information about the parameters as possible +--enable_metadata +execute full_info ; +--disable_metadata +# now the same procedure with the record containing so many NULLs +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, + @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 +from t9 where c1= 0 ; +# get as much information about the parameters as possible +--enable_metadata +execute full_info ; +--disable_metadata + +prepare stmt1 from "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, + @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 +from t9 where c1= ?" ; +set @my_key= 1 ; +execute stmt1 using @my_key ; +# get as much information about the parameters as possible +--enable_metadata +execute full_info ; +--disable_metadata +# now the same procedure with the record containing so many NULLs +set @my_key= 0 ; +execute stmt1 using @my_key ; +# get as much information about the parameters as possible +--enable_metadata +execute full_info ; +--disable_metadata + +# the next statement must fail +--error 1064 +prepare stmt1 from "select ? := c1 from t9 where c1= 1" ; + +--disable_query_log +select '------ select column, .. into @parm,.. ------' as test_sequence ; +--enable_query_log +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 +into @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 +from t9 where c1= 1 ; +# get as much information about the parameters as possible +--enable_metadata +execute full_info ; +--disable_metadata +# now the same procedure with the record containing so many NULLs +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 +into @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 +from t9 where c1= 0 ; +# get as much information about the parameters as possible +--enable_metadata +execute full_info ; +--disable_metadata + +prepare stmt1 from "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 +into @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 +from t9 where c1= ?" ; +set @my_key= 1 ; +execute stmt1 using @my_key ; +# get as much information about the parameters as possible +--enable_metadata +execute full_info ; +--disable_metadata +# now the same procedure with the record containing so many NULLs +# Bug#5034: prepared "select 1 into @arg15", second execute crashes server +set @my_key= 0 ; +execute stmt1 using @my_key ; +# get as much information about the parameters as possible +--enable_metadata +execute full_info ; +--disable_metadata + +# the next statement must fail +--error 1064 +prepare stmt1 from "select c1 into ? from t9 where c1= 1" ; + + + +######################### test of numeric types ########################## +# # +# 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), # +# # +########################################################################## +--disable_query_log +select '-- insert into numeric columns --' as test_sequence ; +--enable_query_log + +######## INSERT into .. numeric columns values(BIGINT(n),BIGINT) ######## +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 ) ; +set @arg00= 21 ; +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22 )" ; +execute stmt1 ; +set @arg00= 23; +prepare stmt2 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. numeric columns values(DOUBLE(m,n),DOUBLE) ######## +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, 30.0, + 30.0, 30.0, 30.0 ) ; +set @arg00= 31.0 ; +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, 32.0, + 32.0, 32.0, 32.0 )" ; +execute stmt1 ; +set @arg00= 33.0; +prepare stmt2 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. numeric columns values(CHAR(n),LONGTEXT) ######### +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( '40', '40', '40', '40', '40', '40', '40', '40', + '40', '40', '40' ) ; +set @arg00= '41' ; +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( '42', '42', '42', '42', '42', '42', '42', '42', + '42', '42', '42' )" ; +execute stmt1 ; +set @arg00= '43'; +prepare stmt2 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. numeric columns values(BINARY(n),LONGBLOB) ######## +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( CAST('50' as binary), CAST('50' as binary), + CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), + CAST('50' as binary), CAST('50' as binary), CAST('50' as binary), + CAST('50' as binary), CAST('50' as binary), CAST('50' as binary) ) ; +set @arg00= CAST('51' as binary) ; +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( CAST('52' as binary), CAST('52' as binary), + CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), + CAST('52' as binary), CAST('52' as binary), CAST('52' as binary), + CAST('52' as binary), CAST('52' as binary), CAST('52' as binary) )" ; +execute stmt1 ; +set @arg00= CAST('53' as binary) ; +prepare stmt2 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. numeric columns values(BIGINT,NULL) ######## +# we first assign number to arg00 to set it's datatype to numeric. +set @arg00= 2 ; +set @arg00= NULL ; +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL ) ; +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 61, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL )" ; +execute stmt1 ; +prepare stmt2 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 63, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. numeric columns values(DOUBLE,NULL) ######## +set @arg00= 8.0 ; +set @arg00= NULL ; +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 71, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ) ; +prepare stmt2 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 73, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. numeric columns values(LONGBLOB,NULL) ######## +set @arg00= 'abc' ; +set @arg00= NULL ; +insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 81, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ) ; +prepare stmt2 from "insert into t9 + ( c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 83, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + + +######## SELECT of all inserted records ######## +select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 +from t9 where c1 >= 20 +order by c1 ; + + +--disable_query_log +select '-- select .. where numeric column = .. --' as test_sequence ; +--enable_query_log +######## SELECT .. WHERE column(numeric)=value(BIGINT(n)/BIGINT) ######## +set @arg00= 20; +select 'true' as found from t9 +where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 + and c8= 20 and c9= 20 and c10= 20 and c12= 20; +select 'true' as found from t9 +where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 + and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 + and c12= @arg00; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and c2= 20 and c3= 20 and c4= 20 and c5= 20 and c6= 20 and c7= 20 + and c8= 20 and c9= 20 and c10= 20 and c12= 20 "; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? + and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? + and c12= ? "; +execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## SELECT .. WHERE column(numeric)=value(DOUBLE(m,n)/DOUBLE) ######## +set @arg00= 20.0; +select 'true' as found from t9 +where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 + and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0; +select 'true' as found from t9 +where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 + and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 + and c12= @arg00; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20.0 and c2= 20.0 and c3= 20.0 and c4= 20.0 and c5= 20.0 and c6= 20.0 + and c7= 20.0 and c8= 20.0 and c9= 20.0 and c10= 20.0 and c12= 20.0 "; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? + and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? + and c12= ? "; +execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## SELECT .. WHERE column(numeric)=value(CHAR(n)/LONGTEXT) ######## +select 'true' as found from t9 +where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' + and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20'; +prepare stmt1 from "select 'true' as found from t9 +where c1= '20' and c2= '20' and c3= '20' and c4= '20' and c5= '20' and c6= '20' + and c7= '20' and c8= '20' and c9= '20' and c10= '20' and c12= '20' "; +execute stmt1 ; +set @arg00= '20'; +select 'true' as found from t9 +where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 + and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 + and c12= @arg00; +prepare stmt1 from "select 'true' as found from t9 +where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? + and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? + and c12= ? "; +execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## SELECT .. WHERE column(numeric)=value(BINARY(n)/LONGBLOB) ######## +select 'true' as found from t9 +where c1= CAST('20' as binary) and c2= CAST('20' as binary) and + c3= CAST('20' as binary) and c4= CAST('20' as binary) and + c5= CAST('20' as binary) and c6= CAST('20' as binary) and + c7= CAST('20' as binary) and c8= CAST('20' as binary) and + c9= CAST('20' as binary) and c10= CAST('20' as binary) and + c12= CAST('20' as binary); +prepare stmt1 from "select 'true' as found from t9 +where c1= CAST('20' as binary) and c2= CAST('20' as binary) and + c3= CAST('20' as binary) and c4= CAST('20' as binary) and + c5= CAST('20' as binary) and c6= CAST('20' as binary) and + c7= CAST('20' as binary) and c8= CAST('20' as binary) and + c9= CAST('20' as binary) and c10= CAST('20' as binary) and + c12= CAST('20' as binary) "; +execute stmt1 ; +set @arg00= CAST('20' as binary) ; +select 'true' as found from t9 +where c1= @arg00 and c2= @arg00 and c3= @arg00 and c4= @arg00 and c5= @arg00 + and c6= @arg00 and c7= @arg00 and c8= @arg00 and c9= @arg00 and c10= @arg00 + and c12= @arg00; +prepare stmt1 from "select 'true' as found from t9 +where c1= ? and c2= ? and c3= ? and c4= ? and c5= ? + and c6= ? and c7= ? and c8= ? and c9= ? and c10= ? + and c12= ? "; +execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + +delete from t9 ; + +#################### Some overflow experiments ################################ +# # +# MySQL Manual (July 2004) # +# - Setting a numeric column to a value that lies outside the column's range. # +# The value is clipped to the closest endpoint of the range. # +# ... # +# - For example, inserting the string '1999.0e-2' into an INT, FLOAT, # +# DECIMAL(10,6), or YEAR column results in the values 1999, 19.9921, # +# 19.992100, and 1999. # +# That means there is an anomaly if a float value is assigned via string to # +# a column of type bigint. The string will be cut from the right side to # +# a "usable" integer value. # +# # +############################################################################### +--disable_query_log +select '-- some numeric overflow experiments --' as test_sequence ; +--enable_query_log +prepare my_insert from "insert into t9 + ( c21, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 ) +values + ( 'O', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +prepare my_select from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c12 +from t9 where c21 = 'O' "; +prepare my_delete from "delete from t9 where c21 = 'O' "; + +# Numeric overflow of columns(c1, c2, c3, c4, c5, c12) with type not in +# (BIGINT,FLOAT,REAL,DOUBLE) during insert +# +# Use the maximum BIGINT from the manual +set @arg00= 9223372036854775807 ; +set statement sql_mode = '' for +execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; +--vertical_results +--replace_result e+0 e+ +execute my_select ; +--horizontal_results +--replace_result e+0 e+ +execute my_delete ; +set @arg00= '9223372036854775807' ; +set statement sql_mode = '' for +execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; +--vertical_results +--replace_result e+0 e+ +execute my_select ; +--horizontal_results +--replace_result e+0 e+ +execute my_delete ; +# Use the minimum BIGINT from the manual +# +set @arg00= -9223372036854775808 ; +set statement sql_mode = '' for +execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; +--vertical_results +--replace_result e+0 e+ +execute my_select ; +--horizontal_results +--replace_result e+0 e+ +execute my_delete ; +set @arg00= '-9223372036854775808' ; +set statement sql_mode = '' for +execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; +--vertical_results +--replace_result e+0 e+ +execute my_select ; +--horizontal_results +--replace_result e+0 e+ +execute my_delete ; + +# Numeric overflow of columns(c1, c2, c3, c4, c5, c12) with type not in +# (FLOAT,REAL,DOUBLE) during insert +# +set @arg00= 1.11111111111111111111e+50 ; +set statement sql_mode = '' for +execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; +--vertical_results +--replace_result e+0 e+ +execute my_select ; +--horizontal_results +--replace_result e+0 e+ +execute my_delete ; +# Attention: The columns(c1,c2,c3,c4,c5,c6) do not get the overflow, +# because the string is treated as written integer and +# '.11111111111111111111e+50' is cut away. +set @arg00= '1.11111111111111111111e+50' ; +set statement sql_mode = '' for +execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; +--vertical_results +--replace_result e+0 e+ +execute my_select ; +--horizontal_results +--replace_result e+0 e+ +execute my_delete ; +set @arg00= -1.11111111111111111111e+50 ; +set statement sql_mode = '' for +execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; +--vertical_results +--replace_result e+0 e+ +execute my_select ; +--horizontal_results +--replace_result e+0 e+ +execute my_delete ; +# Attention: The columns(c1,c2,c3,c4,c5,c6) do not get the overflow, +# because the string is treated as written integer and +# '.11111111111111111111e+50' is cut away. +set @arg00= '-1.11111111111111111111e+50' ; +set statement sql_mode = '' for +execute my_insert using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; +--vertical_results +--replace_result e+0 e+ +execute my_select ; +--horizontal_results +--replace_result e+0 e+ +execute my_delete ; + +########################## test of string types ########################## +# # +# 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') # +# # +########################################################################## +--disable_query_log +select '-- insert into string columns --' as test_sequence ; +--enable_query_log + +######## INSERT into .. string columns values(CHAR(n),LONGTEXT) ######## +set sql_mode = ''; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 20, '20', '20', '20', '20', '20', '20', '20', '20', '20', '20', '20' ) ; +set @arg00= '21' ; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 21, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 22, '22', '22', '22', '22', '22', '22', '22', '22', '22', '22', '22' )" ; +execute stmt1 ; +set @arg00= '23'; +prepare stmt2 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 23, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. string columns values(BINARY(n),LONGBLOB) ######## +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 30, CAST('30' as binary), CAST('30' as binary), CAST('30' as binary), + CAST('30' as binary), CAST('30' as binary), CAST('30' as binary), + CAST('30' as binary), CAST('30' as binary), CAST('30' as binary), + CAST('30' as binary), CAST('30' as binary) ) ; +set @arg00= '31' ; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 31, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 32, CAST('32' as binary), CAST('32' as binary), CAST('32' as binary), + CAST('32' as binary), CAST('32' as binary), CAST('32' as binary), + CAST('32' as binary), CAST('32' as binary), CAST('32' as binary), + CAST('32' as binary), CAST('32' as binary) )" ; +execute stmt1 ; +set @arg00= CAST('33' as binary); +prepare stmt2 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 33, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. string columns values(BIGINT(n),BIGINT) ######## +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40 ) ; +set @arg00= 41 ; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 41, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42 )" ; +execute stmt1 ; +set @arg00= 43; +prepare stmt2 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 43, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. string columns values(DOUBLE(m,n),DOUBLE) ######## +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 50, 50.0, 50.0, 50.0, 50.0, 50.0, 50.0, 50.0, 50.0, 50.0, 50.0, 50.0 ) ; +set @arg00= 51.0 ; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 51, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 52, 52.0, 52.0, 52.0, 52.0, 52.0, 52.0, 52.0, 52.0, 52.0, 52.0, 52.0 )" ; +execute stmt1 ; +set @arg00= 53.0; +prepare stmt2 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 53, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. string columns values(DOUBLE(m,n),DOUBLE) ######## +# typical float writing style +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 54, 5.4e+1, 5.4e+1, 5.4e+1, 5.4e+1, 5.4e+1, 5.4e+1, 5.4e+1, 5.4e+1, + 5.4e+1, 5.4e+1, 5.4e+1 ) ; +set @arg00= 5.5e+1 ; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 55, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 56, 5.6e+1, 5.6e+1, 5.6e+1, 5.6e+1, 5.6e+1, 5.6e+1, 5.6e+1, 5.6e+1, + 5.6e+1, 5.6e+1, 5.6e+1 )" ; +execute stmt1 ; +set @arg00= 5.7e+1; +prepare stmt2 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 57, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; +set sql_mode = default; + + +######## INSERT into .. string columns values(LONGBLOB,NULL) ######## +set @arg00= 'abc' ; +set @arg00= NULL ; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 60, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL ) ; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 61, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00 ) ; +prepare stmt1 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 62, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL )" ; +execute stmt1 ; +prepare stmt2 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 63, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + +######## INSERT into .. string columns values(BIGINT,NULL) ######## +set @arg00= 2 ; +set @arg00= NULL ; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 71, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00 ) ; +prepare stmt2 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 73, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + +######## INSERT into .. string columns values(DOUBLE,NULL) ######## +set @arg00= 8 ; +set @arg00= NULL ; +insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 81, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00 ) ; +prepare stmt2 from "insert into t9 + ( c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 ) +values + ( 83, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00 ; + +######## SELECT of all inserted records ######## +select c1, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30 +from t9 where c1 >= 20 +order by c1 ; + + +--disable_query_log +select '-- select .. where string column = .. --' as test_sequence ; +--enable_query_log +######## SELECT .. WHERE column(string)=value(CHAR(n)/LONGTEXT) ######## +set @arg00= '20'; +# c20 (char) must be extended for the comparison +select 'true' as found from t9 +where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and + c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and + c27= '20' and c28= '20' and c29= '20' and c30= '20' ; +select 'true' as found from t9 +where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and + c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and + c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and concat(c20,substr('20',1+length(c20)))= '20' and c21= '20' and + c22= '20' and c23= '20' and c24= '20' and c25= '20' and c26= '20' and + c27= '20' and c28= '20' and c29= '20' and c30= '20'" ; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and + c21= ? and c22= ? and c23= ? and c25= ? and + c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; +execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; + + +######## SELECT .. WHERE column(string)=value(BINARY(n)/LONGBLOB) ######## +set @arg00= CAST('20' as binary); +# c20 (char) must be extended for the comparison +select 'true' as found from t9 +where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) + = CAST('20' as binary) and c21= CAST('20' as binary) + and c22= CAST('20' as binary) and c23= CAST('20' as binary) and + c24= CAST('20' as binary) and c25= CAST('20' as binary) and + c26= CAST('20' as binary) and c27= CAST('20' as binary) and + c28= CAST('20' as binary) and c29= CAST('20' as binary) and + c30= CAST('20' as binary) ; +select 'true' as found from t9 +where c1= 20 and concat(c20,substr(@arg00,1+length(c20))) = @arg00 and + c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and + c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and + c30= @arg00; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and concat(c20,substr(CAST('20' as binary),1+length(c20))) + = CAST('20' as binary) and c21= CAST('20' as binary) + and c22= CAST('20' as binary) and c23= CAST('20' as binary) and + c24= CAST('20' as binary) and c25= CAST('20' as binary) and + c26= CAST('20' as binary) and c27= CAST('20' as binary) and + c28= CAST('20' as binary) and c29= CAST('20' as binary) and + c30= CAST('20' as binary)" ; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and concat(c20,substr(?,1+length(c20))) = ? and c21= ? and + c22= ? and c23= ? and c25= ? and c26= ? and c27= ? and c28= ? and + c29= ? and c30= ?"; +execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; + + +######## SELECT .. WHERE column(string)=value(BIGINT(m,n),BIGINT) ######## +set @arg00= 20; +# c20 (char) must be extended for the comparison +select 'true' as found from t9 +where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and + c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and + c27= 20 and c28= 20 and c29= 20 and c30= 20 ; +select 'true' as found from t9 +where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and + c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and + c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and concat(c20,substr(20,1+length(c20)))= 20 and c21= 20 and + c22= 20 and c23= 20 and c24= 20 and c25= 20 and c26= 20 and + c27= 20 and c28= 20 and c29= 20 and c30= 20" ; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and + c21= ? and c22= ? and c23= ? and c25= ? and + c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; +execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; + + +######## SELECT .. WHERE column(string)=value(DOUBLE(m,n),DOUBLE) ######## +set @arg00= 20.0; +# c20 (char) must be extended for the comparison +select 'true' as found from t9 +where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and + c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and + c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0 ; +select 'true' as found from t9 +where c1= 20 and concat(c20,substr(@arg00,1+length(c20)))= @arg00 and + c21= @arg00 and c22= @arg00 and c23= @arg00 and c25= @arg00 and + c26= @arg00 and c27= @arg00 and c28= @arg00 and c29= @arg00 and c30= @arg00; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and concat(c20,substr(20.0,1+length(c20)))= 20.0 and c21= 20.0 and + c22= 20.0 and c23= 20.0 and c24= 20.0 and c25= 20.0 and c26= 20.0 and + c27= 20.0 and c28= 20.0 and c29= 20.0 and c30= 20.0" ; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and concat(c20,substr(?,1+length(c20)))= ? and + c21= ? and c22= ? and c23= ? and c25= ? and + c26= ? and c27= ? and c28= ? and c29= ? and c30= ?" ; +execute stmt1 using @arg00, @arg00, @arg00, @arg00, @arg00, @arg00, + @arg00, @arg00, @arg00, @arg00, @arg00 ; + +delete from t9 ; + + +######################### test of date/time columns ######################## +# # +# c13 date, c14 datetime, c15 timestamp, c16 time, c17 year # +# # +############################################################################ +--disable_query_log +select '-- insert into date/time columns --' as test_sequence ; +--enable_query_log +######## INSERT into .. date/time columns values(VARCHAR(19),LONGTEXT) ######## +set sql_mode = ''; +set @arg00= '1991-01-01 01:01:01' ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 20, '1991-01-01 01:01:01', '1991-01-01 01:01:01', '1991-01-01 01:01:01', + '1991-01-01 01:01:01', '1991-01-01 01:01:01') ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 21, @arg00, @arg00, @arg00, @arg00, @arg00) ; +prepare stmt1 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 22, '1991-01-01 01:01:01', '1991-01-01 01:01:01', '1991-01-01 01:01:01', + '1991-01-01 01:01:01', '1991-01-01 01:01:01')" ; +execute stmt1 ; +prepare stmt2 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 23, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. date/time columns values(DATETIME,LONGBLOB) ######## +set @arg00= CAST('1991-01-01 01:01:01' as datetime) ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 30, CAST('1991-01-01 01:01:01' as datetime), + CAST('1991-01-01 01:01:01' as datetime), + CAST('1991-01-01 01:01:01' as datetime), + CAST('1991-01-01 01:01:01' as datetime), + CAST('1991-01-01 01:01:01' as datetime)) ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 31, @arg00, @arg00, @arg00, @arg00, @arg00) ; +prepare stmt1 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 32, CAST('1991-01-01 01:01:01' as datetime), + CAST('1991-01-01 01:01:01' as datetime), + CAST('1991-01-01 01:01:01' as datetime), + CAST('1991-01-01 01:01:01' as datetime), + CAST('1991-01-01 01:01:01' as datetime))" ; +execute stmt1 ; +prepare stmt2 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 33, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. date/time columns values(BIGINT(n),BIGINT) ######## +set @arg00= 2000000000 ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 40, 2000000000, 2000000000, 2000000000, 2000000000, 2000000000 ) ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 41, @arg00, @arg00, @arg00, @arg00, @arg00) ; +prepare stmt1 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 42, 2000000000, 2000000000, 2000000000, 2000000000, 2000000000 )" ; +execute stmt1 ; +prepare stmt2 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 43, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. date/time columns values(DOUBLE(m,n),DOUBLE) ######## +set @arg00= 1.0e+10 ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 50, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10 ) ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 51, @arg00, @arg00, @arg00, @arg00, @arg00) ; +prepare stmt1 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 52, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10, 1.0e+10 )" ; +execute stmt1 ; +prepare stmt2 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 53, ?, ?, ?, ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00, @arg00 ; +set sql_mode = default; + + +######## INSERT into .. date/time columns values(LONGBLOB,NULL) ######## +# Attention: c15 is timestamp and the manual says: +# The first TIMESTAMP column in table row automatically is updated +# to the current timestamp when the value of any other column in the +# row is changed, unless the TIMESTAMP column explicitly is assigned +# a value other than NULL. +# That's why a fixed NOT NULL value is inserted. +set @arg00= 'abc' ; +set @arg00= NULL ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 60, NULL, NULL, '1991-01-01 01:01:01', + NULL, NULL) ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 61, @arg00, @arg00, '1991-01-01 01:01:01', @arg00, @arg00) ; +prepare stmt1 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 62, NULL, NULL, '1991-01-01 01:01:01', + NULL, NULL)" ; +execute stmt1 ; +prepare stmt2 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 63, ?, ?, '1991-01-01 01:01:01', ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. date/time columns values(BIGINT,NULL) ######## +set @arg00= 8 ; +set @arg00= NULL ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 71, @arg00, @arg00, '1991-01-01 01:01:01', @arg00, @arg00) ; +prepare stmt2 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 73, ?, ?, '1991-01-01 01:01:01', ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00 ; + + +######## INSERT into .. date/time columns values(DOUBLE,NULL) ######## +set @arg00= 8.0 ; +set @arg00= NULL ; +insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 81, @arg00, @arg00, '1991-01-01 01:01:01', @arg00, @arg00) ; +prepare stmt2 from "insert into t9 + ( c1, c13, c14, c15, c16, c17 ) +values + ( 83, ?, ?, '1991-01-01 01:01:01', ?, ? )" ; +execute stmt2 using @arg00, @arg00, @arg00, @arg00 ; + +######## SELECT of all inserted records ######## +select c1, c13, c14, c15, c16, c17 from t9 order by c1 ; + +--disable_query_log +select '-- select .. where date/time column = .. --' as test_sequence ; +--enable_query_log +######## 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= 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 + c17= '1991-01-01 01:01:01' ; +select 'true' as found from t9 +where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @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 DATE) and c14= '1991-01-01 01:01:01' and + c15= '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= CAST(? AS DATE) and c14= ? and c15= ? and c17= ?" ; +execute stmt1 using @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 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 + c17= CAST('1991-01-01 01:01:01' as datetime) ; +select 'true' as found from t9 +where c1= 20 and c13= CAST(@arg00 AS DATE) and c14= @arg00 and c15= @arg00 + and c17= @arg00 ; +prepare stmt1 from "select 'true' as found from t9 +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 + 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= CAST(? AS DATE) and c14= ? and c15= ? and c17= ?" ; +execute stmt1 using @arg00, @arg00, @arg00, @arg00 ; + + +######## SELECT .. WHERE column(date/time/..)=value(CHAR(n)/LONGTEXT) ######## +set @arg00= '01:01:01' ; +select 'true' as found from t9 where c1= 20 and c16= '01:01:01' ; +select 'true' as found from t9 where c1= 20 and c16= @arg00 ; +prepare stmt1 from "select 'true' as found from t9 where c1= 20 and c16= '01:01:01'" ; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 where c1= 20 and c16= ?" ; +execute stmt1 using @arg00 ; + + +######## SELECT .. WHERE column(date/time/..)=value(DATETIME/LONGBLOB) ######## +set @arg00= CAST('01:01:01' as time) ; +select 'true' as found from t9 where c1= 20 and c16= CAST('01:01:01' as time) ; +select 'true' as found from t9 where c1= 20 and c16= @arg00 ; +prepare stmt1 from "select 'true' as found from t9 where c1= 20 and c16= CAST('01:01:01' as time)" ; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 where c1= 20 and c16= ?" ; +execute stmt1 using @arg00 ; + + +######## SELECT .. WHERE column(year)=value(INT(10)/BIGINT) ######## +set @arg00= 1991 ; +select 'true' as found from t9 +where c1= 20 and c17= 1991 ; +select 'true' as found from t9 +where c1= 20 and c17= @arg00 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and c17= 1991" ; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and c17= ?" ; +execute stmt1 using @arg00 ; + + +######## SELECT .. WHERE column(year)=value(DOUBLE(m,n)/DOUBLE) ######## +set @arg00= 1.991e+3 ; +select 'true' as found from t9 +where c1= 20 and abs(c17 - 1.991e+3) < 0.01 ; +select 'true' as found from t9 +where c1= 20 and abs(c17 - @arg00) < 0.01 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and abs(c17 - 1.991e+3) < 0.01" ; +execute stmt1 ; +prepare stmt1 from "select 'true' as found from t9 +where c1= 20 and abs(c17 - ?) < 0.01" ; +execute stmt1 using @arg00 ; + diff --git a/mysql-test/include/ps_create.inc b/mysql-test/include/ps_create.inc new file mode 100644 index 00000000..91528e2a --- /dev/null +++ b/mysql-test/include/ps_create.inc @@ -0,0 +1,44 @@ +############### include/ps_create.inc ################## +# # +# drop + create the tables used in most PS test cases # +# t/ps_*.test # +# # +######################################################## + +# +# NOTE: PLEASE SEE ps_1general.test (bottom) +# BEFORE ADDING NEW TABLES HERE !!! +# +# Please be aware, that this file will be sourced by several +# test case files stored within the subdirectory 't'. +# So every change here will affect several test cases. + +#----------- Please insert your table definitions here ----------# + + +#---- Please do not alter the following table definitions -------# + +--disable_warnings +drop table if exists t1, t9 ; +--enable_warnings + +eval create table t1 +( + a int, b varchar(30), + primary key(a) +) engine = $type ; + +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 NOT NULL DEFAULT CURRENT_TIMESTAMP + ON UPDATE CURRENT_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'), + c32 set('monday', 'tuesday', 'wednesday'), + primary key(c1) +) engine = $type ; diff --git a/mysql-test/include/ps_ddl_1.inc b/mysql-test/include/ps_ddl_1.inc new file mode 100644 index 00000000..f6b4c810 --- /dev/null +++ b/mysql-test/include/ps_ddl_1.inc @@ -0,0 +1,25 @@ +# include/ps_ddl_1.inc +# +# Auxiliary script to be used in ps_ddl.test +# + +prepare stmt_sf from 'select f_12093();'; +prepare stmt_sp from 'call p_12093(f_12093())'; +execute stmt_sf; +execute stmt_sp; + +connection con1; +eval $my_drop; +# +connection default; +--echo # XXX: used to be a bug +execute stmt_sf; +--echo # XXX: used to be a bug +execute stmt_sp; +# +--echo # XXX: used to be a bug +execute stmt_sf; +--echo # XXX: used to be a bug +execute stmt_sp; + +connection default; diff --git a/mysql-test/include/ps_modify.inc b/mysql-test/include/ps_modify.inc new file mode 100644 index 00000000..d4cd4dbe --- /dev/null +++ b/mysql-test/include/ps_modify.inc @@ -0,0 +1,358 @@ +###################### ps_modify.inc ######################### +# # +# Tests for prepared statements: INSERT/DELETE/UPDATE... # +# # +############################################################## + +# +# NOTE: PLEASE SEE ps_1general.test (bottom) +# BEFORE ADDING NEW TEST CASES HERE !!! + +# +# Please be aware, that this file will be sourced by several test case files +# stored within the subdirectory 't'. So every change here will affect +# several test cases. +# +# Please do not modify the structure (DROP/ALTER..) of the tables +# 't1' and 't9'. +# +# But you are encouraged to use these two tables within your statements +# (DELETE/UPDATE/...) whenever possible. +# t1 - very simple table +# t9 - table with nearly all available column types +# +# The structure and the content of these tables can be found in +# include/ps_create.inc CREATE TABLE ... +# include/ps_renew.inc DELETE all rows and INSERT some rows +# +# Both tables are managed by the same storage engine. +# The type of the storage engine is stored in the variable '$type' . + + + +#------------------- Please insert your test cases here -------------------# + + + +#-------- Please be very carefull when editing behind this line ----------# + +--disable_query_log +select '------ delete tests ------' as test_sequence ; +--enable_query_log +--source include/ps_renew.inc + +## delete without parameter +prepare stmt1 from 'delete from t1 where a=2' ; +execute stmt1; +select a,b from t1 where a=2; +# delete with row not found +execute stmt1; + +## delete with one parameter in the where clause +insert into t1 values(0,NULL); +set @arg00=NULL; +prepare stmt1 from 'delete from t1 where b=?' ; +execute stmt1 using @arg00; +select a,b from t1 where b is NULL ; +set @arg00='one'; +execute stmt1 using @arg00; +select a,b from t1 where b=@arg00; + +## truncate a table +prepare stmt1 from 'truncate table t1' ; + + +--disable_query_log +select '------ update tests ------' as test_sequence ; +--enable_query_log +--source include/ps_renew.inc + +## update without parameter +prepare stmt1 from 'update t1 set b=''a=two'' where a=2' ; +execute stmt1; +select a,b from t1 where a=2; +# dummy update +execute stmt1; +select a,b from t1 where a=2; + +## update with one parameter in the set clause +set @arg00=NULL; +prepare stmt1 from 'update t1 set b=? where a=2' ; +execute stmt1 using @arg00; +select a,b from t1 where a=2; +set @arg00='two'; +execute stmt1 using @arg00; +select a,b from t1 where a=2; + +## update with one parameter in the where cause +set @arg00=2; +prepare stmt1 from 'update t1 set b=NULL where a=?' ; +execute stmt1 using @arg00; +select a,b from t1 where a=@arg00; +update t1 set b='two' where a=@arg00; +# row not found in update +set @arg00=2000; +execute stmt1 using @arg00; +select a,b from t1 where a=@arg00; + +## update on primary key column (two parameters) +set @arg00=2; +set @arg01=22; +prepare stmt1 from 'update t1 set a=? where a=?' ; +# dummy update +execute stmt1 using @arg00, @arg00; +select a,b from t1 where a=@arg00; +execute stmt1 using @arg01, @arg00; +select a,b from t1 where a=@arg01; +execute stmt1 using @arg00, @arg01; +select a,b from t1 where a=@arg00; +set @arg00=NULL; +set @arg01=2; +set sql_mode = ''; +execute stmt1 using @arg00, @arg01; +set sql_mode = default; +select a,b from t1 order by a; +set @arg00=0; +execute stmt1 using @arg01, @arg00; +select a,b from t1 order by a; + +## update with subquery and several parameters +set @arg00=23; +set @arg01='two'; +set @arg02=2; +set @arg03='two'; +set @arg04=2; +--disable_warnings +drop table if exists t2; +--enable_warnings +# t2 will be of table type 'MYISAM' +create table t2 as select a,b from t1 ; +prepare stmt1 from 'update t1 set a=? where b=? + and a in (select ? from t2 + where b = ? or a = ?)'; +--enable_info +execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; +--disable_info +select a,b from t1 where a = @arg00 ; +prepare stmt1 from 'update t1 set a=? where b=? + and a not in (select ? from t2 + where b = ? or a = ?)'; +--enable_info +execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; +--disable_info +select a,b from t1 order by a ; +drop table t2 ; +# t2 is now of table type '$type' +# The test battery for table type 'MERGE' gets here only a 'MYISAM' table +# +# Test UPDATE with SUBQUERY in prepared mode +# +eval create table t2 +( + a int, b varchar(30), + primary key(a) +) engine = $type ; +insert into t2(a,b) select a, b from t1 ; +prepare stmt1 from 'update t1 set a=? where b=? + and a in (select ? from t2 + where b = ? or a = ?)'; +--enable_info +execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04 ; +--disable_info +select a,b from t1 where a = @arg00 ; +prepare stmt1 from 'update t1 set a=? where b=? + and a not in (select ? from t2 + where b = ? or a = ?)'; +--enable_info +execute stmt1 using @arg04, @arg01, @arg02, @arg03, @arg00 ; +--disable_info +select a,b from t1 order by a ; +drop table t2 ; + +## update with parameters in limit +set @arg00=1; +prepare stmt1 from 'update t1 set b=''bla'' +where a=2 +limit 1'; +execute stmt1 ; +select a,b from t1 where b = 'bla' ; +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 ; +--enable_query_log +--source include/ps_renew.inc + +## insert without parameter +prepare stmt1 from 'insert into t1 values(5, ''five'' )'; +execute stmt1; +select a,b from t1 where a = 5; + +## insert with one parameter in values part +set @arg00='six' ; +prepare stmt1 from 'insert into t1 values(6, ? )'; +execute stmt1 using @arg00; +select a,b from t1 where b = @arg00; +# the second insert fails, because the first column is primary key +--error ER_DUP_ENTRY +execute stmt1 using @arg00; +set @arg00=NULL ; +prepare stmt1 from 'insert into t1 values(0, ? )'; +execute stmt1 using @arg00; +select a,b from t1 where b is NULL; + +## insert with two parameter in values part +set @arg00=8 ; +set @arg01='eight' ; +prepare stmt1 from 'insert into t1 values(?, ? )'; +execute stmt1 using @arg00, @arg01 ; +select a,b from t1 where b = @arg01; +# cases derived from client_test.c: test_null() +set @NULL= null ; +set @arg00= 'abc' ; +# execute must fail, because first column is primary key (-> not null) +--error 1048 +execute stmt1 using @NULL, @NULL ; +--error 1048 +execute stmt1 using @NULL, @NULL ; +--error 1048 +execute stmt1 using @NULL, @arg00 ; +--error 1048 +execute stmt1 using @NULL, @arg00 ; +let $1 = 2; +while ($1) +{ + eval set @arg01= 10000 + $1 ; + execute stmt1 using @arg01, @arg00 ; + dec $1; +} +select * from t1 where a > 10000 order by a ; +delete from t1 where a > 10000 ; +let $1 = 2; +while ($1) +{ + eval set @arg01= 10000 + $1 ; + execute stmt1 using @arg01, @NULL ; + dec $1; +} +select * from t1 where a > 10000 order by a ; +delete from t1 where a > 10000 ; +let $1 = 10; +while ($1) +{ + eval set @arg01= 10000 + $1 ; + execute stmt1 using @arg01, @arg01 ; + dec $1; +} +select * from t1 where a > 10000 order by a ; +delete from t1 where a > 10000 ; + + +## insert with two rows in values part +set @arg00=81 ; +set @arg01='8-1' ; +set @arg02=82 ; +set @arg03='8-2' ; +prepare stmt1 from 'insert into t1 values(?,?),(?,?)'; +execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; +select a,b from t1 where a in (@arg00,@arg02) ; + +## insert with two parameter in the set part +set @arg00=9 ; +set @arg01='nine' ; +prepare stmt1 from 'insert into t1 set a=?, b=? '; +execute stmt1 using @arg00, @arg01 ; +select a,b from t1 where a = @arg00 ; + +## insert with parameters in the ON DUPLICATE KEY part +set @arg00=6 ; +set @arg01=1 ; +prepare stmt1 from 'insert into t1 set a=?, b=''sechs'' + on duplicate key update a=a + ?, b=concat(b,''modified'') '; +execute stmt1 using @arg00, @arg01; +select * from t1 order by a; +set @arg00=81 ; +set @arg01=1 ; +--error ER_DUP_ENTRY +execute stmt1 using @arg00, @arg01; + +## insert, autoincrement column and ' SELECT LAST_INSERT_ID() ' +# cases derived from client_test.c: test_bug3117() +--disable_warnings +drop table if exists t2 ; +--enable_warnings +# The test battery for table type 'MERGE' gets here only a 'MYISAM' table +eval create table t2 (id int auto_increment primary key) +ENGINE= $type ; +prepare stmt1 from ' select last_insert_id() ' ; +insert into t2 values (NULL) ; +execute stmt1 ; +insert into t2 values (NULL) ; +# bug#3117 +execute stmt1 ; +drop table t2 ; + +## many parameters +set @1000=1000 ; +set @x1000_2="x1000_2" ; +set @x1000_3="x1000_3" ; + +set @x1000="x1000" ; +set @1100=1100 ; +set @x1100="x1100" ; +set @100=100 ; +set @updated="updated" ; +insert into t1 values(1000,'x1000_1') ; +insert into t1 values(@1000,@x1000_2),(@1000,@x1000_3) + on duplicate key update a = a + @100, b = concat(b,@updated) ; +select a,b from t1 where a >= 1000 order by a ; +delete from t1 where a >= 1000 ; +insert into t1 values(1000,'x1000_1') ; +prepare stmt1 from ' insert into t1 values(?,?),(?,?) + on duplicate key update a = a + ?, b = concat(b,?) '; +execute stmt1 using @1000, @x1000_2, @1000, @x1000_3, @100, @updated ; +select a,b from t1 where a >= 1000 order by a ; +delete from t1 where a >= 1000 ; +insert into t1 values(1000,'x1000_1') ; +execute stmt1 using @1000, @x1000_2, @1100, @x1000_3, @100, @updated ; +select a,b from t1 where a >= 1000 order by a ; +delete from t1 where a >= 1000 ; + +## replace +prepare stmt1 from ' replace into t1 (a,b) select 100, ''hundred'' '; +execute stmt1; +execute stmt1; +execute stmt1; + + + +## multi table statements +--disable_query_log +select '------ multi table tests ------' as test_sequence ; +--enable_query_log +# cases derived from client_test.c: test_multi +delete from t1 ; +delete from t9 ; +insert into t1(a,b) values (1, 'one'), (2, 'two'), (3, 'three') ; +insert into t9 (c1,c21) + values (1, 'one'), (2, 'two'), (3, 'three') ; +prepare stmt_delete from " delete t1, t9 + from t1, t9 where t1.a=t9.c1 and t1.b='updated' "; +prepare stmt_update from " update t1, t9 + set t1.b='updated', t9.c21='updated' + where t1.a=t9.c1 and t1.a=? "; +prepare stmt_select1 from " select a, b from t1 order by a" ; +prepare stmt_select2 from " select c1, c21 from t9 order by c1" ; +set @arg00= 1 ; +let $1= 3 ; +while ($1) +{ + execute stmt_update using @arg00 ; + execute stmt_delete ; + execute stmt_select1 ; + execute stmt_select2 ; + set @arg00= @arg00 + 1 ; + dec $1 ; +} + diff --git a/mysql-test/include/ps_modify1.inc b/mysql-test/include/ps_modify1.inc new file mode 100644 index 00000000..345654b2 --- /dev/null +++ b/mysql-test/include/ps_modify1.inc @@ -0,0 +1,105 @@ +###################### ps_modify1.inc ######################## +# # +# Tests for prepared statements: big INSERT .. SELECTs # +# # +############################################################## + +# +# NOTE: THESE TESTS CANNOT BE APPLIED TO TABLES OF TYPE MERGE. +# Test which can be applied to MERGE tables should be stored in +# include/ps_modify.inc . +# + +# +# NOTE: PLEASE SEE ps_1general.test (bottom) +# BEFORE ADDING NEW TEST CASES HERE !!! + +# +# Please be aware, that this file will be sourced by several test case files +# stored within the subdirectory 't'. So every change here will affect +# several test cases. +# +# Please do not modify the structure (DROP/ALTER..) of the tables +# 't1' and 't9'. +# +# But you are encouraged to use these two tables within your statements +# (DELETE/UPDATE/...) whenever possible. +# t1 - very simple table +# t9 - table with nearly all available column types +# +# The structure and the content of these tables can be found in +# include/ps_create.inc CREATE TABLE ... +# include/ps_renew.inc DELETE all rows and INSERT some rows +# +# Both tables are managed by the same storage engine. +# The type of the storage engine is stored in the variable '$type' . + + + +#------------------- Please insert your test cases here -------------------# + + +#-------- Please be very carefull when editing behind this line ----------# + +--source include/ps_renew.inc +# +# add a NULL row to t1: this row is used only in this test +insert into t1 values(0,NULL) ; + +## big insert select statements +set @duplicate='duplicate ' ; +set @1000=1000 ; +set @5=5 ; +select a,b from t1 where a < 5 order by a ; +--enable_info +insert into t1 select a + @1000, concat(@duplicate,b) from t1 +where a < @5 ; +--disable_info +select a,b from t1 where a >= 1000 order by a ; +delete from t1 where a >= 1000 ; +prepare stmt1 from ' insert into t1 select a + ?, concat(?,b) from t1 +where a < ? ' ; +--enable_info +execute stmt1 using @1000, @duplicate, @5; +--disable_info +select a,b from t1 where a >= 1000 order by a ; +delete from t1 where a >= 1000 ; + +set @1=1 ; +set @2=2 ; +set @100=100 ; +set @float=1.00; +set @five='five' ; +--disable_warnings +drop table if exists t2; +--enable_warnings +create table t2 like t1 ; +--enable_info +insert into t2 (b,a) +select @duplicate, sum(first.a) from t1 first, t1 second + where first.a <> @5 and second.b = first.b + and second.b <> @five + group by second.b + having sum(second.a) > @2 +union +select b, a + @100 from t1 + where (a,b) in ( select sqrt(a+@1)+CAST(@float AS signed),b + from t1); +--disable_info +select a,b from t2 order by a ; +delete from t2 ; +prepare stmt1 from ' insert into t2 (b,a) +select ?, sum(first.a) + from t1 first, t1 second + where first.a <> ? and second.b = first.b and second.b <> ? + group by second.b + having sum(second.a) > ? +union +select b, a + ? from t1 + where (a,b) in ( select sqrt(a+?)+CAST(? AS signed),b + from t1 ) ' ; +--enable_info +execute stmt1 using @duplicate, @5, @five, @2, @100, @1, @float ; +--disable_info +select a,b from t2 order by a ; +drop table t2; diff --git a/mysql-test/include/ps_query.inc b/mysql-test/include/ps_query.inc new file mode 100644 index 00000000..bae83c72 --- /dev/null +++ b/mysql-test/include/ps_query.inc @@ -0,0 +1,774 @@ +####################### ps_query.inc ######################### +# # +# Tests for prepared statements: SELECTs # +# # +############################################################## + +# +# NOTE: PLEASE SEE ps_1general.test (bottom) +# BEFORE ADDING NEW TEST CASES HERE !!! + +# +# Please be aware, that this file will be sourced by several test case files +# stored within the subdirectory 't'. So every change here will affect +# several test cases. +# +# Please do not modify (INSERT/UPDATE/DELETE) the content or the +# structure (DROP/ALTER..) of the tables +# 't1' and 't9'. +# Such tests should be done in include/ps_modify.inc . +# +# But you are encouraged to use these two tables within your SELECT statements +# whenever possible. +# t1 - very simple table +# t9 - table with nearly all available column types +# +# The structure and the content of these tables can be found in +# include/ps_create.inc CREATE TABLE ... +# include/ps_renew.inc DELETE all rows and INSERT some rows +# +# Both tables are managed by the same storage engine. +# The type of the storage engine is stored in the variable '$type' . + + + +#------------------- Please insert your test cases here -------------------# + + + +#-------- Please be very carefull when editing behind this line ----------# + +################ simple select tests ################ +--disable_query_log +select '------ simple select tests ------' as test_sequence ; +--enable_query_log + +##### many column types, but no parameter +# heavy modified case derived from client_test.c: test_func_fields() +prepare stmt1 from ' select * from t9 order by c1 ' ; +--enable_metadata +execute stmt1; +--disable_metadata + +##### parameter used for keyword like SELECT (must fail) +set @arg00='SELECT' ; +--error 1064 +@arg00 a from t1 where a=1; +--error 1064 +prepare stmt1 from ' ? a from t1 where a=1 '; + +##### parameter in select column list +## parameter is not NULL +set @arg00=1 ; +select @arg00, b from t1 where a=1 ; +prepare stmt1 from ' select ?, b from t1 where a=1 ' ; +execute stmt1 using @arg00 ; +set @arg00='lion' ; +select @arg00, b from t1 where a=1 ; +prepare stmt1 from ' select ?, b from t1 where a=1 ' ; +execute stmt1 using @arg00 ; +## parameter is NULL +set @arg00=NULL ; +select @arg00, b from t1 where a=1 ; +prepare stmt1 from ' select ?, b from t1 where a=1 ' ; +execute stmt1 using @arg00 ; +## parameter within an expression +set @arg00=1 ; +select b, a - @arg00 from t1 where a=1 ; +prepare stmt1 from ' select b, a - ? from t1 where a=1 ' ; +execute stmt1 using @arg00 ; +# case derived from client_test.c: test_ps_null_param() +set @arg00=null ; +select @arg00 as my_col ; +prepare stmt1 from ' select ? as my_col'; +execute stmt1 using @arg00 ; +select @arg00 + 1 as my_col ; +prepare stmt1 from ' select ? + 1 as my_col'; +execute stmt1 using @arg00 ; +select 1 + @arg00 as my_col ; +prepare stmt1 from ' select 1 + ? as my_col'; +execute stmt1 using @arg00 ; +## parameter is within a function +# variations on 'substr' +set @arg00='MySQL' ; +select substr(@arg00,1,2) from t1 where a=1 ; +prepare stmt1 from ' select substr(?,1,2) from t1 where a=1 ' ; +execute stmt1 using @arg00 ; +set @arg00=3 ; +select substr('MySQL',@arg00,5) from t1 where a=1 ; +prepare stmt1 from ' select substr(''MySQL'',?,5) from t1 where a=1 ' ; +execute stmt1 using @arg00 ; +select substr('MySQL',1,@arg00) from t1 where a=1 ; +prepare stmt1 from ' select substr(''MySQL'',1,?) from t1 where a=1 ' ; +execute stmt1 using @arg00 ; +# variations on 'concat' +set @arg00='MySQL' ; +select a , concat(@arg00,b) from t1 order by a; +# BUG#3796 Prepared statement, select concat(<parameter>,<column>),wrong result +prepare stmt1 from ' select a , concat(?,b) from t1 order by a ' ; +execute stmt1 using @arg00; +# +select a , concat(b,@arg00) from t1 order by a ; +prepare stmt1 from ' select a , concat(b,?) from t1 order by a ' ; +execute stmt1 using @arg00; + +# variations on 'group_concat' +set @arg00='MySQL' ; +select group_concat(@arg00,b order by a) from t1 +group by 'a' ; +prepare stmt1 from ' select group_concat(?,b order by a) from t1 +group by ''a'' ' ; +execute stmt1 using @arg00; +# +select group_concat(b,@arg00 order by a) from t1 +group by 'a' ; +prepare stmt1 from ' select group_concat(b,? order by a) from t1 +group by ''a'' ' ; +execute stmt1 using @arg00; + +## two parameters +set @arg00='first' ; +set @arg01='second' ; +set @arg02=NULL; +select @arg00, @arg01 from t1 where a=1 ; +prepare stmt1 from ' select ?, ? from t1 where a=1 ' ; +execute stmt1 using @arg00, @arg01 ; +# NULL as first and/or last parameter +execute stmt1 using @arg02, @arg01 ; +execute stmt1 using @arg00, @arg02 ; +execute stmt1 using @arg02, @arg02 ; +# case derived from client_test.c: test_ps_conj_select() +# for BUG#3420: select returned all rows of the table +--disable_warnings +drop table if exists t5 ; +--enable_warnings +create table t5 (id1 int(11) not null default '0', + value2 varchar(100), value1 varchar(100)) ; +insert into t5 values (1,'hh','hh'),(2,'hh','hh'), + (1,'ii','ii'),(2,'ii','ii') ; +prepare stmt1 from ' select id1,value1 from t5 where id1=? or value1=? order by id1,value1 ' ; +set @arg00=1 ; +set @arg01='hh' ; +execute stmt1 using @arg00, @arg01 ; +drop table t5 ; +# case derived from client_test.c: test_bug1180() +# for BUG#1180 optimized away part of WHERE clause +--disable_warnings +drop table if exists t5 ; +--enable_warnings +create table t5(session_id char(9) not null) ; +insert into t5 values ('abc') ; +prepare stmt1 from ' select * from t5 +where ?=''1111'' and session_id = ''abc'' ' ; +set @arg00='abc' ; +execute stmt1 using @arg00 ; +set @arg00='1111' ; +execute stmt1 using @arg00 ; +set @arg00='abc' ; +execute stmt1 using @arg00 ; +drop table t5 ; + + +##### parameter used for keyword FROM (must fail) +set @arg00='FROM' ; +--error 1064 +select a @arg00 t1 where a=1 ; +--error 1064 +prepare stmt1 from ' select a ? t1 where a=1 ' ; +##### parameter used for tablename (must fail) +set @arg00='t1' ; +--error 1064 +select a from @arg00 where a=1 ; +--error 1064 +prepare stmt1 from ' select a from ? where a=1 ' ; +##### parameter used for keyword WHERE tablename (must fail) +set @arg00='WHERE' ; +--error 1064 +select a from t1 @arg00 a=1 ; +--error 1064 +prepare stmt1 from ' select a from t1 ? a=1 ' ; + +##### parameter used in where clause +# parameter is not NULL +set @arg00=1 ; +select a FROM t1 where a=@arg00 ; +prepare stmt1 from ' select a FROM t1 where a=? ' ; +execute stmt1 using @arg00 ; +set @arg00=1000 ; +# row not found +execute stmt1 using @arg00 ; +# parameter is NULL +set @arg00=NULL ; +select a FROM t1 where a=@arg00 ; +prepare stmt1 from ' select a FROM t1 where a=? ' ; +execute stmt1 using @arg00 ; +# parameter is not NULL within a function +set @arg00=4 ; +select a FROM t1 where a=sqrt(@arg00) ; +prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; +execute stmt1 using @arg00 ; +# parameter is NULL within a function +set @arg00=NULL ; +select a FROM t1 where a=sqrt(@arg00) ; +prepare stmt1 from ' select a FROM t1 where a=sqrt(?) ' ; +execute stmt1 using @arg00 ; +# parameter in IN +set @arg00=2 ; +set @arg01=3 ; +select a FROM t1 where a in (@arg00,@arg01) order by a; +prepare stmt1 from ' select a FROM t1 where a in (?,?) order by a '; +execute stmt1 using @arg00, @arg01; +# case derived from client_test.c: test_bug1500() +set @arg00= 'one' ; +set @arg01= 'two' ; +set @arg02= 'five' ; +prepare stmt1 from ' select b FROM t1 where b in (?,?,?) order by b ' ; +execute stmt1 using @arg00, @arg01, @arg02 ; +# parameter in LIKE +prepare stmt1 from ' select b FROM t1 where b like ? '; +set @arg00='two' ; +execute stmt1 using @arg00 ; +set @arg00='tw%' ; +execute stmt1 using @arg00 ; +set @arg00='%wo' ; +execute stmt1 using @arg00 ; +# case derived from client_test.c: test_ps_null_param(): +# second part, comparisions with NULL placeholders in prepared +# mode +set @arg00=null ; +insert into t9 set c1= 0, c5 = NULL ; +select c5 from t9 where c5 > NULL ; +prepare stmt1 from ' select c5 from t9 where c5 > ? '; +execute stmt1 using @arg00 ; +select c5 from t9 where c5 < NULL ; +prepare stmt1 from ' select c5 from t9 where c5 < ? '; +execute stmt1 using @arg00 ; +select c5 from t9 where c5 = NULL ; +prepare stmt1 from ' select c5 from t9 where c5 = ? '; +execute stmt1 using @arg00 ; +select c5 from t9 where c5 <=> NULL ; +prepare stmt1 from ' select c5 from t9 where c5 <=> ? '; +execute stmt1 using @arg00 ; +delete from t9 where c1= 0 ; + +##### parameter used for operator in WHERE clause (must fail) +set @arg00='>' ; +--error 1064 +select a FROM t1 where a @arg00 1 ; +--error 1064 +prepare stmt1 from ' select a FROM t1 where a ? 1 ' ; + +##### parameter used in group by clause +set @arg00=1 ; +select a,b FROM t1 where a is not NULL +AND b is not NULL group by a - @arg00 ; +prepare stmt1 from ' select a,b FROM t1 where a is not NULL +AND b is not NULL group by a - ? ' ; +execute stmt1 using @arg00 ; + +##### parameter used in having clause +set @arg00='two' ; +select a,b FROM t1 where a is not NULL +AND b is not NULL having b <> @arg00 order by a ; +prepare stmt1 from ' select a,b FROM t1 where a is not NULL +AND b is not NULL having b <> ? order by a ' ; +execute stmt1 using @arg00 ; + +##### parameter used in order clause +set @arg00=1 ; +select a,b FROM t1 where a is not NULL +AND b is not NULL order by a - @arg00 ; +prepare stmt1 from ' select a,b FROM t1 where a is not NULL +AND b is not NULL order by a - ? ' ; +execute stmt1 using @arg00 ; +## What is the semantic of a single parameter (integer >0) +# after order by? column number or constant +set @arg00=2 ; +select a,b from t1 order by 2 ; +prepare stmt1 from ' select a,b from t1 +order by ? '; +execute stmt1 using @arg00; +set @arg00=1 ; +execute stmt1 using @arg00; +set @arg00=0 ; +--error 1054 +execute stmt1 using @arg00; + +##### parameter used in limit clause +set @arg00=1; +prepare stmt1 from ' select a,b from t1 order by a +limit 1 '; +execute stmt1 ; +prepare stmt1 from ' select a,b from t1 order by a limit ? '; +execute stmt1 using @arg00; + +##### parameter used in many places +set @arg00='b' ; +set @arg01=0 ; +set @arg02=2 ; +set @arg03=2 ; +select sum(a), @arg00 from t1 where a > @arg01 +and b is not null group by substr(b,@arg02) +having sum(a) <> @arg03 ; +prepare stmt1 from ' select sum(a), ? from t1 where a > ? +and b is not null group by substr(b,?) +having sum(a) <> ? '; +execute stmt1 using @arg00, @arg01, @arg02, @arg03; + + +################ join tests ################ +--disable_query_log +select '------ join tests ------' as test_sequence ; +--enable_query_log + +# no parameter +select first.a as a1, second.a as a2 +from t1 first, t1 second +where first.a = second.a order by a1 ; +prepare stmt1 from ' select first.a as a1, second.a as a2 + from t1 first, t1 second + where first.a = second.a order by a1 '; +execute stmt1 ; + +# some parameters +set @arg00='ABC'; +set @arg01='two'; +set @arg02='one'; +select first.a, @arg00, second.a FROM t1 first, t1 second +where @arg01 = first.b or first.a = second.a or second.b = @arg02 +order by second.a, first.a; +prepare stmt1 from ' select first.a, ?, second.a FROM t1 first, t1 second + where ? = first.b or first.a = second.a or second.b = ? + order by second.a, first.a'; +execute stmt1 using @arg00, @arg01, @arg02; + +# test case derived from client_test.c: test_join() +--disable_warnings +drop table if exists t2 ; +--enable_warnings +create table t2 as select * from t1 ; +set @query1= 'SELECT * FROM t2 join t1 on (t1.a=t2.a) order by t2.a ' ; +set @query2= 'SELECT * FROM t2 natural join t1 order by t2.a ' ; +set @query3= 'SELECT * FROM t2 join t1 using(a) order by t2.a ' ; +set @query4= 'SELECT * FROM t2 left join t1 on(t1.a=t2.a) order by t2.a ' ; +set @query5= 'SELECT * FROM t2 natural left join t1 order by t2.a ' ; +set @query6= 'SELECT * FROM t2 left join t1 using(a) order by t2.a ' ; +set @query7= 'SELECT * FROM t2 right join t1 on(t1.a=t2.a) order by t2.a ' ; +set @query8= 'SELECT * FROM t2 natural right join t1 order by t2.a ' ; +set @query9= 'SELECT * FROM t2 right join t1 using(a) order by t2.a ' ; +let $1= 9 ; +while ($1) +{ + --disable_query_log + eval select @query$1 as 'the join statement is:' ; + --enable_query_log + eval prepare stmt1 from @query$1 ; + let $2= 3 ; + while ($2) + { + execute stmt1 ; + dec $2 ; + } + dec $1 ; +} +drop table t2 ; + + +################ subquery tests ################ +--disable_query_log +select '------ subquery tests ------' as test_sequence ; +--enable_query_log + +# no parameter +prepare stmt1 from ' select a, b FROM t1 outer_table where + a = (select a from t1 where b = ''two'') '; +execute stmt1 ; + +###### parameter in the outer part +set @arg00='two' ; +select a, b FROM t1 outer_table where + a = (select a from t1 where b = 'two' ) and b=@arg00 ; +prepare stmt1 from ' select a, b FROM t1 outer_table where + a = (select a from t1 where b = ''two'') and b=? '; +execute stmt1 using @arg00; +###### parameter in the inner part +set @arg00='two' ; +# Bug#4000 (only BDB tables) +select a, b FROM t1 outer_table where + a = (select a from t1 where b = @arg00 ) and b='two' ; +prepare stmt1 from ' select a, b FROM t1 outer_table where + a = (select a from t1 where b = ? ) and b=''two'' ' ; +execute stmt1 using @arg00; +set @arg00=3 ; +set @arg01='three' ; +select a,b FROM t1 where (a,b) in (select 3, 'three'); +select a FROM t1 where (a,b) in (select @arg00,@arg01); +prepare stmt1 from ' select a FROM t1 where (a,b) in (select ?, ?) '; +execute stmt1 using @arg00, @arg01; + +###### parameters in the both parts +set @arg00=1 ; +set @arg01='two' ; +set @arg02=2 ; +set @arg03='two' ; +# Bug#4000 (only BDB tables) +select a, @arg00, b FROM t1 outer_table where + b=@arg01 and a = (select @arg02 from t1 where b = @arg03 ) ; +prepare stmt1 from ' select a, ?, b FROM t1 outer_table where + b=? and a = (select ? from t1 where b = ? ) ' ; +execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; + +# Bug#8807 +prepare stmt1 from 'select c4 FROM t9 where + c13 = (select MAX(b) from t1 where a = ?) and c22 = ? ' ; +execute stmt1 using @arg01, @arg02; + +######## correlated subquery +# no parameter +prepare stmt1 from ' select a, b FROM t1 outer_table where + a = (select a from t1 where b = outer_table.b ) order by a '; +# also Bug#4000 (only BDB tables) +execute stmt1 ; +# test case derived from client_test.c: test_subqueries_ref +let $1= 3 ; +while ($1) +{ + prepare stmt1 from ' SELECT a as ccc from t1 outr where a+1= + (SELECT 1+outr.a from t1 where outr.a+1=a+1 and a=1) '; + execute stmt1 ; + deallocate prepare stmt1 ; + dec $1 ; +} + + +###### parameter in the outer part +set @arg00='two' ; +# Bug#4000 (only BDB tables) +select a, b FROM t1 outer_table where + a = (select a from t1 where b = outer_table.b ) and b=@arg00 ; +prepare stmt1 from ' select a, b FROM t1 outer_table where + a = (select a from t1 where b = outer_table.b) and b=? '; +# also Bug#4000 (only BDB tables) +execute stmt1 using @arg00; + +###### parameter in the inner part +set @arg00=2 ; +select a, b FROM t1 outer_table where + a = (select a from t1 where a = @arg00 and b = outer_table.b) and b='two' ; +prepare stmt1 from ' select a, b FROM t1 outer_table where + a = (select a from t1 where a = ? and b = outer_table.b) and b=''two'' ' ; +execute stmt1 using @arg00; + +set @arg00=2 ; +select a, b FROM t1 outer_table where + a = (select a from t1 where outer_table.a = @arg00 and a=2) and b='two' ; +prepare stmt1 from ' select a, b FROM t1 outer_table where + a = (select a from t1 where outer_table.a = ? and a=2) and b=''two'' ' ; +execute stmt1 using @arg00; + +###### parameters in the both parts +set @arg00=1 ; +set @arg01='two' ; +set @arg02=2 ; +set @arg03='two' ; +# Bug#4000 (only BDB tables) +select a, @arg00, b FROM t1 outer_table where + b=@arg01 and a = (select @arg02 from t1 where outer_table.b = @arg03 + and outer_table.a=a ) ; +prepare stmt1 from ' select a, ?, b FROM t1 outer_table where + b=? and a = (select ? from t1 where outer_table.b = ? + and outer_table.a=a ) ' ; +# also Bug#4000 (only BDB tables) +execute stmt1 using @arg00, @arg01, @arg02, @arg03 ; + +###### subquery after from +set @arg00=1 ; +set @arg01=0 ; +select a, @arg00 +from ( select a - @arg00 as a from t1 where a=@arg00 ) as t2 +where a=@arg01; +prepare stmt1 from ' select a, ? + from ( select a - ? as a from t1 where a=? ) as t2 + where a=? '; +execute stmt1 using @arg00, @arg00, @arg00, @arg01 ; + +###### subquery in select list +# test case derived from client_test.c: test_create_drop +--disable_warnings +drop table if exists t2 ; +--enable_warnings +create table t2 as select * from t1; +prepare stmt1 from ' select a in (select a from t2) from t1 ' ; +execute stmt1 ; +# test case derived from client_test.c: test_selecttmp() +--disable_warnings +drop table if exists t5, t6, t7 ; +--enable_warnings +create table t5 (a int , b int) ; +create table t6 like t5 ; +create table t7 like t5 ; +insert into t5 values (0, 100), (1, 2), (1, 3), (2, 2), (2, 7), + (2, -1), (3, 10) ; +insert into t6 values (0, 0), (1, 1), (2, 1), (3, 1), (4, 1) ; +insert into t7 values (3, 3), (2, 2), (1, 1) ; +prepare stmt1 from ' select a, (select count(distinct t5.b) as sum from t5, t6 + where t5.a=t6.a and t6.b > 0 and t5.a <= t7.b + group by t5.a order by sum limit 1) from t7 ' ; +let $1= 3 ; +while ($1) +{ + execute stmt1 ; + dec $1 ; +} +drop table t5, t6, t7 ; + + +###### heavy modified case derived from client_test.c: test_distinct() +--disable_warnings +drop table if exists t2 ; +--enable_warnings +create table t2 as select * from t9; +## unusual and complex SELECT without parameters +set @stmt= ' SELECT + (SELECT SUM(c1 + c12 + 0.0) FROM t2 + where (t9.c2 - 0e-3) = t2.c2 + GROUP BY t9.c15 LIMIT 1) as scalar_s, + exists (select 1.0e+0 from t2 + where t2.c3 * 9.0000000000 = t9.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 t9, +(select c25 x, c32 y from t2) tt WHERE x = c25 ' ; +--enable_metadata +prepare stmt1 from @stmt ; +# +# Result log was disabled upon test case failure in the optimized build. +# +--disable_result_log +execute stmt1 ; +--disable_metadata +execute stmt1 ; +## now expand the terrible SELECT to EXPLAIN SELECT +set @stmt= concat('explain ',@stmt); +--enable_metadata +prepare stmt1 from @stmt ; +execute stmt1 ; +--disable_metadata +# Bug#4271 prepared explain complex select, second executes crashes the server +execute stmt1 ; +## many parameters +## replace the constants of the complex SELECT with parameters +set @stmt= ' SELECT + (SELECT SUM(c1+c12+?) FROM t2 where (t9.c2-?)=t2.c2 + GROUP BY t9.c15 LIMIT 1) as scalar_s, + exists (select ? from t2 + where t2.c3*?=t9.c4) as exists_s, + c5*? in (select c6+? from t2) as in_s, + (c7-?, c8-?) in (select c9+?, c10+? from t2) as in_row_s +FROM t9, +(select c25 x, c32 y from t2) tt WHERE x =c25 ' ; +set @arg00= 0.0 ; +set @arg01= 0e-3 ; +set @arg02= 1.0e+0 ; +set @arg03= 9.0000000000 ; +set @arg04= 4 ; +set @arg05= 0.3e+1 ; +set @arg06= 4 ; +set @arg07= 4 ; +set @arg08= 4.0 ; +set @arg09= 40e-1 ; +--enable_metadata +prepare stmt1 from @stmt ; +execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, + @arg07, @arg08, @arg09 ; +--disable_metadata +execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, + @arg07, @arg08, @arg09 ; +## now expand the terrible SELECT to EXPLAIN SELECT +set @stmt= concat('explain ',@stmt); +--enable_metadata +prepare stmt1 from @stmt ; +execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, + @arg07, @arg08, @arg09 ; +--disable_metadata +execute stmt1 using @arg00, @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, + @arg07, @arg08, @arg09 ; +--enable_result_log +drop table t2 ; + +##### test case derived from client_test.c: test_bug4079() +--error 1242 +select 1 < (select a from t1) ; +prepare stmt1 from ' select 1 < (select a from t1) ' ; +--error 1242 +execute stmt1 ; +# Bug#5066 embedded server, select after failed subquery provides wrong result +# (two additional records, all column values NULL) +select 1 as my_col ; + +################ union tests ################ +--disable_query_log +select '------ union tests ------' as test_sequence ; +--enable_query_log + +# no parameter +prepare stmt1 from ' select a FROM t1 where a=1 + union distinct + select a FROM t1 where a=1 '; +execute stmt1 ; +# Bug#3577: the second execute crashes mysqld +execute stmt1 ; +prepare stmt1 from ' select a FROM t1 where a=1 + union all + select a FROM t1 where a=1 '; +execute stmt1 ; +# test case derived from client_test.c: test_bad_union() +--error 1222 +prepare stmt1 from ' SELECT 1, 2 union SELECT 1 ' ; +--error 1222 +prepare stmt1 from ' SELECT 1 union SELECT 1, 2 ' ; +--error 1222 +prepare stmt1 from ' SELECT * from t1 union SELECT 1 ' ; +--error 1222 +prepare stmt1 from ' SELECT 1 union SELECT * from t1 ' ; + + +##### everything in the first table +# one parameter as constant in the first table +set @arg00=1 ; +select @arg00 FROM t1 where a=1 +union distinct +select 1 FROM t1 where a=1; +prepare stmt1 from ' select ? FROM t1 where a=1 + union distinct + select 1 FROM t1 where a=1 ' ; +execute stmt1 using @arg00; + +##### everything in the second table +# one parameter as constant +set @arg00=1 ; +select 1 FROM t1 where a=1 +union distinct +select @arg00 FROM t1 where a=1; +prepare stmt1 from ' select 1 FROM t1 where a=1 + union distinct + select ? FROM t1 where a=1 ' ; +execute stmt1 using @arg00; + +# one parameter in every table +set @arg00='a' ; +select @arg00 FROM t1 where a=1 +union distinct +select @arg00 FROM t1 where a=1; +prepare stmt1 from ' select ? FROM t1 where a=1 + union distinct + select ? FROM t1 where a=1 '; +# BUG#3811 wrong result, prepared statement, union, +# parameter in result column list +execute stmt1 using @arg00, @arg00; +prepare stmt1 from ' select ? + union distinct + select ? '; +execute stmt1 using @arg00, @arg00; + +# many parameters +set @arg00='a' ; +set @arg01=1 ; +set @arg02='a' ; +set @arg03=2 ; +select @arg00 FROM t1 where a=@arg01 +union distinct +select @arg02 FROM t1 where a=@arg03; +prepare stmt1 from ' select ? FROM t1 where a=? + union distinct + select ? FROM t1 where a=? ' ; +execute stmt1 using @arg00, @arg01, @arg02, @arg03; + +## increased complexity + +set @arg00=1 ; +# Bug#3686 the wrong server response was 1140 Mixing of GROUP columns .. +prepare stmt1 from ' select sum(a) + 200, ? from t1 +union distinct +select sum(a) + 200, 1 from t1 +group by b ' ; +execute stmt1 using @arg00; + +set @Oporto='Oporto' ; +set @Lisboa='Lisboa' ; +set @0=0 ; +set @1=1 ; +set @2=2 ; +set @3=3 ; +set @4=4 ; +select @Oporto,@Lisboa,@0,@1,@2,@3,@4 ; + +## union + group by +select sum(a) + 200 as the_sum, @Oporto as the_town from t1 +group by b +union distinct +select sum(a) + 200, @Lisboa from t1 +group by b ; + +prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 + group by b + union distinct + select sum(a) + 200, ? from t1 + group by b ' ; +execute stmt1 using @Oporto, @Lisboa; + + +## union + where + group by +select sum(a) + 200 as the_sum, @Oporto as the_town from t1 +where a > @1 +group by b +union distinct +select sum(a) + 200, @Lisboa from t1 +where a > @2 +group by b ; + +prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 + where a > ? + group by b + union distinct + select sum(a) + 200, ? from t1 + where a > ? + group by b ' ; +execute stmt1 using @Oporto, @1, @Lisboa, @2; + +## union + where + group by + having +select sum(a) + 200 as the_sum, @Oporto as the_town from t1 +where a > @1 +group by b +having avg(a) > @2 +union distinct +select sum(a) + 200, @Lisboa from t1 +where a > @2 +group by b +having avg(a) > @3; + +prepare stmt1 from ' select sum(a) + 200 as the_sum, ? as the_town from t1 + where a > ? + group by b + having avg(a) > ? + union distinct + select sum(a) + 200, ? from t1 + where a > ? + group by b + having avg(a) > ? '; +execute stmt1 using @Oporto, @1, @2, @Lisboa, @2, @3; + + +################ explain select tests ################ +--disable_query_log +select '------ explain select tests ------' as test_sequence ; +--enable_query_log +--disable_metadata +# table with many column types +prepare stmt1 from ' explain select * from t9 ' ; +--enable_metadata +--replace_result 4096 4_OR_8_K 8192 4_OR_8_K +execute stmt1; +--disable_metadata + + diff --git a/mysql-test/include/ps_renew.inc b/mysql-test/include/ps_renew.inc new file mode 100644 index 00000000..f50b5d58 --- /dev/null +++ b/mysql-test/include/ps_renew.inc @@ -0,0 +1,35 @@ +################ include/ps_renew.inc ################# +# # +# renew the content of t1 and t9 # +# # +####################################################### + +# truncate could not be used, because it is not supported +# in tables of type MERGE +delete from t1 ; +insert into t1 values (1,'one'); +insert into t1 values (2,'two'); +insert into t1 values (3,'three'); +insert into t1 values (4,'four'); +commit ; + +delete from t9 ; +insert into t9 +set c1= 1, c2= 1, c3= 1, c4= 1, c5= 1, c6= 1, c7= 1, c8= 1, c9= 1, + c10= 1, c11= 1, c12 = 1, + c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', + c16= '11:11:11', c17= '2004', + c18= 1, c19=true, c20= 'a', c21= '123456789a', + c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', + c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', + c29= 'longblob', c30= 'longtext', c31='one', c32= 'monday'; +insert into t9 +set c1= 9, c2= 9, c3= 9, c4= 9, c5= 9, c6= 9, c7= 9, c8= 9, c9= 9, + c10= 9, c11= 9, c12 = 9, + c13= '2004-02-29', c14= '2004-02-29 11:11:11', c15= '2004-02-29 11:11:11', + c16= '11:11:11', c17= '2004', + c18= 1, c19=false, c20= 'a', c21= '123456789a', + c22= '123456789a123456789b123456789c', c23= 'tinyblob', c24= 'tinytext', + c25= 'blob', c26= 'text', c27= 'mediumblob', c28= 'mediumtext', + c29= 'longblob', c30= 'longtext', c31='two', c32= 'tuesday'; +commit ; diff --git a/mysql-test/include/query_cache.inc b/mysql-test/include/query_cache.inc new file mode 100644 index 00000000..0f52b70b --- /dev/null +++ b/mysql-test/include/query_cache.inc @@ -0,0 +1,196 @@ +# include/query_cache.inc +# +# The variables +# $engine_type -- storage engine to be tested +# $test_foreign_keys -- 0, skip foreign key tests +# -- 1, do not skip foreign key tests +# $partitions_a -- partition by column 'a' +# $partitions_id -- partition by column 'id' +# $partitions_s1 -- partition by column 's1' +# have to be set before sourcing this script. +# +# Last update: +# 2006-08-02 ML test refactored +# old name was innodb_cache.test +# main code went into include/query_cache.inc +# +--disable_ps2_protocol +--disable_view_protocol +SET global query_cache_type=ON; +SET local query_cache_type=ON; +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + +# Initialise +--disable_warnings +drop table if exists t1,t2,t3; +--enable_warnings + +set @save_query_cache_size = @@global.query_cache_size; +set GLOBAL query_cache_size = 1355776; + +# +# Without auto_commit. +# +flush status; +set autocommit=0; +eval create table t1 (a int not null)$partitions_a; +insert into t1 values (1),(2),(3); +--sorted_result +select * from t1; +show status like "Qcache_queries_in_cache"; +drop table t1; +commit; +set autocommit=1; +begin; +eval create table t1 (a int not null)$partitions_a; +insert into t1 values (1),(2),(3); +--sorted_result +select * from t1; +show status like "Qcache_queries_in_cache"; +drop table t1; +commit; +eval create table t1 (a int not null)$partitions_a; +eval create table t2 (a int not null)$partitions_a; +eval create table t3 (a int not null)$partitions_a; +insert into t1 values (1),(2); +insert into t2 values (1),(2); +insert into t3 values (1),(2); +--sorted_result +select * from t1; +--sorted_result +select * from t2; +--sorted_result +select * from t3; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +begin; +--sorted_result +select * from t1; +--sorted_result +select * from t2; +--sorted_result +select * from t3; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +insert into t1 values (3); +insert into t2 values (3); +insert into t1 values (4); +--sorted_result +select * from t1; +--sorted_result +select * from t2; +--sorted_result +select * from t3; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +commit; +show status like "Qcache_queries_in_cache"; +drop table t3,t2,t1; + +eval CREATE TABLE t1 (id int(11) NOT NULL auto_increment, PRIMARY KEY (id))$partitions_id; +select count(*) from t1; +insert into t1 (id) values (0); +select count(*) from t1; +drop table t1; + +if ($test_foreign_keys) +{ +# +# one statement roll back inside transation +# +CREATE TABLE t1 ( id int(10) NOT NULL auto_increment, a varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY a (a)); +CREATE TABLE t2 ( id int(10) NOT NULL auto_increment, b varchar(25) default NULL, PRIMARY KEY (id), UNIQUE KEY b (b)); +CREATE TABLE t3 ( id int(10) NOT NULL auto_increment, t1_id int(10) NOT NULL default '0', t2_id int(10) NOT NULL default '0', state int(11) default NULL, PRIMARY KEY (id), UNIQUE KEY t1_id (t1_id,t2_id), KEY t2_id (t2_id,t1_id), CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`), CONSTRAINT `t3_ibfk_2` FOREIGN KEY (`t2_id`) REFERENCES `t2` (`id`)); +INSERT INTO t1 VALUES (1,'me'); +INSERT INTO t2 VALUES (1,'you'); +INSERT INTO t3 VALUES (2,1,1,2); +delete from t3 where t1_id = 1 and t2_id = 1; +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; +begin; +insert into t3 VALUES ( NULL, 1, 1, 2 ); +-- error ER_DUP_ENTRY +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; +} + +# +# Test query cache with two interleaving transactions +# + +# Establish connection1 +connect (connection1,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +SET @@autocommit=1; + +connection default; +# This should be 'YES'. +SHOW VARIABLES LIKE 'have_query_cache'; + +SET GLOBAL query_cache_size = 204800; +flush status; +SET @@autocommit=1; +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +eval CREATE TABLE t2 (s1 int, s2 varchar(1000), key(s1))$partitions_s1; +INSERT INTO t2 VALUES (1,repeat('a',10)),(2,repeat('a',10)),(3,repeat('a',10)),(4,repeat('a',10)); +COMMIT; +START TRANSACTION; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +UPDATE t2 SET s2 = 'w' WHERE s1 = 3; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +show status like "Qcache_queries_in_cache"; + +connection connection1; +START TRANSACTION; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +INSERT INTO t2 VALUES (5,'w'); +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +COMMIT; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; + +show status like "Qcache_queries_in_cache"; + +connection default; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +COMMIT; + +show status like "Qcache_queries_in_cache"; + +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +show status like "Qcache_queries_in_cache"; + +connection connection1; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; + +START TRANSACTION; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +INSERT INTO t2 VALUES (6,'w'); +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; + +connection default; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +START TRANSACTION; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +DELETE from t2 WHERE s1=3; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; +COMMIT; + +connection connection1; + +COMMIT; +SELECT sql_cache count(*) FROM t2 WHERE s2 = 'w'; + +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; + +# Final cleanup +disconnect connection1; +--source include/wait_until_disconnected.inc +connection default; +set @@global.query_cache_size = @save_query_cache_size; +drop table t2; + +SET global query_cache_type=default; +--enable_view_protocol +--enable_ps2_protocol diff --git a/mysql-test/include/query_cache_partitions.inc b/mysql-test/include/query_cache_partitions.inc new file mode 100644 index 00000000..6c51300a --- /dev/null +++ b/mysql-test/include/query_cache_partitions.inc @@ -0,0 +1,138 @@ +# include/query_cache_partitions.inc +# +# The variables +# $engine_type -- storage engine to be tested +# have to be set before sourcing this script. + +# Tests will be skipped for the view protocol because the view protocol creates +# an additional util connection and other statistics data +-- source include/no_view_protocol.inc + +SET global query_cache_type=ON; +SET local query_cache_type=ON; +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + +# Initialise +--disable_warnings +drop table if exists t1; +--enable_warnings + +set @save_query_cache_size = @@global.query_cache_size; + +--echo # Test that partitions works with query cache + +flush query cache; + +SET GLOBAL query_cache_size=1024*1024*512; + CREATE TABLE `t1` ( + `id` int(11) NOT NULL , + `created_at` datetime NOT NULL, + `cool` tinyint default 0 + ); + + ALTER TABLE t1 PARTITION BY RANGE (TO_DAYS(created_at)) ( + PARTITION month_2010_4 VALUES LESS THAN (734258), + PARTITION month_2010_5 VALUES LESS THAN (734289), + PARTITION month_max VALUES LESS THAN MAXVALUE + ); + +show create table t1; + +INSERT INTO t1 VALUES (1, now(), 0); + +flush status; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; + +--disable_ps2_protocol +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; + +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +--enable_ps2_protocol + +drop table t1; + +--echo # Test that sub-partitions works with query cache + +flush query cache; + +SET GLOBAL query_cache_size=1024*1024*512; + CREATE TABLE `t1` ( + `id` int(11) NOT NULL , + `created_at` datetime NOT NULL, + `cool` tinyint default 0 + ) + PARTITION BY RANGE (TO_DAYS(created_at)) + subpartition by hash(cool) subpartitions 3 ( + PARTITION month_2010_4 VALUES LESS THAN (734258), + PARTITION month_2010_5 VALUES LESS THAN (734289), + PARTITION month_max VALUES LESS THAN MAXVALUE + ); + +show create table t1; + +INSERT INTO t1 VALUES (1, now(), 0); + +flush status; +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; + +--disable_ps2_protocol +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; + +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +--enable_ps2_protocol + +drop table t1; + +--echo # +--echo # MySQL bug#53775 Query on partitioned table returns cached result +--echo # from previous transaction +--echo # + +flush query cache; +flush status; + +SET GLOBAL query_cache_size=1024*1024*512; + CREATE TABLE `t1` ( + `id` int(11) NOT NULL , + `created_at` datetime NOT NULL, + `cool` tinyint default 0 + ); + + ALTER TABLE t1 PARTITION BY RANGE (TO_DAYS(created_at)) ( + PARTITION month_2010_4 VALUES LESS THAN (734258), + PARTITION month_2010_5 VALUES LESS THAN (734289), + PARTITION month_max VALUES LESS THAN MAXVALUE + ); + +INSERT INTO t1 VALUES (1, now(), 0); + +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; + +--disable_ps2_protocol +BEGIN; +UPDATE `t1` SET `cool` = 1 WHERE `id` = 1; +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; +ROLLBACK; +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; +BEGIN; +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; +ROLLBACK; +SELECT cool FROM `t1` WHERE (`t1`.id = 1) LIMIT 1; + +show status like "Qcache_queries_in_cache"; +show status like "Qcache_hits"; +--enable_ps2_protocol + +drop table t1; + +set @@global.query_cache_size = @save_query_cache_size; +SET global query_cache_type=default; diff --git a/mysql-test/include/query_cache_sql_prepare.inc b/mysql-test/include/query_cache_sql_prepare.inc new file mode 100644 index 00000000..97821377 --- /dev/null +++ b/mysql-test/include/query_cache_sql_prepare.inc @@ -0,0 +1,513 @@ +############### include/query_cache_sql_prepare.inc ################ +# +# This is to see how statements prepared via the PREPARE SQL command +# go into the query cache. +# Query cache is abbreviated as "QC" +# +# Last update: +# 2008-05-26 Kostja +# - Add test coverage for automatic statement reprepare +# +# 2007-05-03 ML - Move t/query_cache_sql_prepare.test +# to include/query_cache_sql_prepare.inc +# - Create two toplevel tests sourcing this routine +# - Add tests checking that +# - another connection gets the same amount of QC hits +# - statements running via ps-protocol do not hit QC results +# of preceding sql EXECUTEs +# + +--source include/have_query_cache.inc +# embedded can't make more than one connection, which this test needs +-- source include/not_embedded.inc +set GLOBAL query_cache_type=ON; +set LOCAL query_cache_type=ON; + +--disable_ps2_protocol + +connect (con1,localhost,root,,test,$MASTER_MYPORT,); +connection default; + +set @initial_query_cache_size = @@global.query_cache_size; +set @@global.query_cache_size=102400; +flush status; +--disable_warnings +drop table if exists t1; +--enable_warnings +create table t1(c1 int); +insert into t1 values(1),(10),(100); + +# First, prepared statements with no parameters +prepare stmt1 from "select * from t1 where c1=10"; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +# Another prepared statement (same text, same connection), should hit the QC +prepare stmt2 from "select * from t1 where c1=10"; +execute stmt2; +show status like 'Qcache_hits'; +execute stmt2; +show status like 'Qcache_hits'; +execute stmt2; +show status like 'Qcache_hits'; +# Another prepared statement (same text, other connection), should hit the QC +connection con1; +prepare stmt3 from "select * from t1 where c1=10"; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +connection default; + +# Mixup tests, where statements without PREPARE.../EXECUTE.... meet statements +# with PREPARE.../EXECUTE.... (text protocol). Both statements have the +# same text. QC hits occur only when both statements use the same protocol. +# The outcome of the test depends on the mysqltest startup options +# - with "--ps-protocol" +# Statements without PREPARE.../EXECUTE.... run as prepared statements +# with binary protocol. Expect to get no QC hits. +# - without any "--<whatever>-protocol" +# Statements without PREPARE.../EXECUTE run as non prepared statements +# with text protocol. Expect to get QC hits. +############################################################################ +# +# Statement with PREPARE.../EXECUTE.... first +let $my_stmt= SELECT * FROM t1 WHERE c1 = 100; +eval prepare stmt10 from "$my_stmt"; +show status like 'Qcache_hits'; +execute stmt10; +show status like 'Qcache_hits'; +execute stmt10; +show status like 'Qcache_hits'; +eval $my_stmt; +show status like 'Qcache_hits'; +connection con1; +eval $my_stmt; +show status like 'Qcache_hits'; +connection default; +# +# Statement without PREPARE.../EXECUTE.... first +let $my_stmt= SELECT * FROM t1 WHERE c1 = 1; +eval prepare stmt11 from "$my_stmt"; +connection con1; +eval prepare stmt12 from "$my_stmt"; +connection default; +eval $my_stmt; +show status like 'Qcache_hits'; +eval $my_stmt; +show status like 'Qcache_hits'; +execute stmt11; +show status like 'Qcache_hits'; +connection con1; +execute stmt12; +show status like 'Qcache_hits'; +connection default; + +# Query caching also works when statement has parameters +# (BUG#29318 Statements prepared with PREPARE and with one parameter don't use +# query cache) +prepare stmt1 from "select * from t1 where c1=?"; +show status like 'Qcache_hits'; +set @a=1; +execute stmt1 using @a; +show status like 'Qcache_hits'; +execute stmt1 using @a; +show status like 'Qcache_hits'; +connection con1; +set @a=1; +prepare stmt4 from "select * from t1 where c1=?"; +execute stmt4 using @a; +show status like 'Qcache_hits'; +# verify that presence of user variables forbids caching +prepare stmt4 from "select @a from t1 where c1=?"; +execute stmt4 using @a; +show status like 'Qcache_hits'; +execute stmt4 using @a; +show status like 'Qcache_hits'; +connection default; + +# See if enabling/disabling the query cache between PREPARE and +# EXECUTE is an issue; the expected result is that the query cache +# will not be used. +# Indeed, decision to read/write the query cache is taken at PREPARE +# time, so if the query cache was disabled at PREPARE time then no +# execution of the statement will read/write the query cache. +# If the query cache was enabled at PREPARE time, but disabled at +# EXECUTE time, at EXECUTE time the query cache internal functions do +# nothing so again the query cache is not read/written. But if the +# query cache is re-enabled before another execution then that +# execution will read/write the query cache. + +# QC is enabled at PREPARE +prepare stmt1 from "select * from t1 where c1=10"; +# then QC is disabled at EXECUTE +# Expect to see no additional Qcache_hits. +set global query_cache_size=0; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +# The QC is global = affects also other connections. +# Expect to see no additional Qcache_hits. +connection con1; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +# +# then QC is re-enabled for more EXECUTE. +connection default; +set global query_cache_size=102400; +# Expect to see additional Qcache_hits. +# The fact that the QC was temporary disabled should have no affect +# except that the first execute will not hit results from the +# beginning of the test (because QC has been emptied meanwhile by +# setting its size to 0). +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +# The QC is global = affects also other connections. +connection con1; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +connection default; +# +# then QC is re-disabled for more EXECUTE. +# Expect to see no additional Qcache_hits. +# The fact that the QC was temporary enabled should have no affect. +set global query_cache_size=0; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +# The QC is global = affects also other connections. +connection con1; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +# + +connection default; +# QC is disabled at PREPARE +set global query_cache_size=0; +prepare stmt1 from "select * from t1 where c1=10"; +connection con1; +prepare stmt3 from "select * from t1 where c1=10"; +connection default; +# then QC is enabled at EXECUTE +set global query_cache_size=102400; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +execute stmt1; +show status like 'Qcache_hits'; +# The QC is global = affects also other connections. +connection con1; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +execute stmt3; +show status like 'Qcache_hits'; +connection default; +# +# QC is disabled at PREPARE +set global query_cache_size=0; +prepare stmt1 from "select * from t1 where c1=?"; +# then QC is enabled at EXECUTE +set global query_cache_size=102400; +show status like 'Qcache_hits'; +set @a=1; +execute stmt1 using @a; +show status like 'Qcache_hits'; +set @a=100; +execute stmt1 using @a; +show status like 'Qcache_hits'; +set @a=10; +execute stmt1 using @a; +show status like 'Qcache_hits'; + +--enable_ps2_protocol + +drop table t1; +disconnect con1; + +# +# Bug #25843 Changing default database between PREPARE and EXECUTE of statement +# breaks binlog. +# +# There were actually two problems discovered by this bug: +# +# 1. Default (current) database is not fixed at the creation time. +# That leads to wrong output of DATABASE() function. +# +# 2. Database attributes (@@collation_database) are not fixed at the creation +# time. That leads to wrong resultset. +# +# Binlog breakage and Query Cache wrong output happened because of the first +# problem. +# + +--echo ######################################################################## +--echo # +--echo # BUG#25843: Changing default database between PREPARE and EXECUTE of +--echo # statement breaks binlog. +--echo # +--echo ######################################################################## + +############################################################################### + +--echo +--echo # +--echo # Check that default database and its attributes are fixed at the +--echo # creation time. +--echo # + +# Prepare data structures. + +--echo +--disable_warnings +DROP DATABASE IF EXISTS mysqltest1; +DROP DATABASE IF EXISTS mysqltest2; +--enable_warnings + +--echo +CREATE DATABASE mysqltest1 COLLATE utf8_unicode_ci; +CREATE DATABASE mysqltest2 COLLATE utf8_general_ci; + +--echo +CREATE TABLE mysqltest1.t1(msg VARCHAR(255)); +CREATE TABLE mysqltest2.t1(msg VARCHAR(255)); + +# - Create a prepared statement with mysqltest1 as default database; + +--echo + +use mysqltest1; + +PREPARE stmt_a_1 FROM 'INSERT INTO t1 VALUES(DATABASE())'; +PREPARE stmt_a_2 FROM 'INSERT INTO t1 VALUES(@@collation_database)'; + +# - Execute on mysqltest1. + +--echo + +EXECUTE stmt_a_1; +EXECUTE stmt_a_2; + +# - Execute on mysqltest2. + +--echo + +use mysqltest2; + +EXECUTE stmt_a_1; +EXECUTE stmt_a_2; + +# - Check the results; + +--echo +SELECT * FROM mysqltest1.t1; + +--echo +SELECT * FROM mysqltest2.t1; + +# - Drop prepared statements. + +--echo +DROP PREPARE stmt_a_1; +DROP PREPARE stmt_a_2; + +############################################################################### + +--echo +--echo # +--echo # The Query Cache test case. +--echo # + +--echo +DELETE FROM mysqltest1.t1; +DELETE FROM mysqltest2.t1; + +--echo +INSERT INTO mysqltest1.t1 VALUES('mysqltest1.t1'); +INSERT INTO mysqltest2.t1 VALUES('mysqltest2.t1'); + +--echo +use mysqltest1; +PREPARE stmt_b_1 FROM 'SELECT * FROM t1'; + +--echo +use mysqltest2; +PREPARE stmt_b_2 FROM 'SELECT * FROM t1'; + +--echo +EXECUTE stmt_b_1; + +--echo +EXECUTE stmt_b_2; + +--echo +use mysqltest1; + +--echo +EXECUTE stmt_b_1; + +--echo +EXECUTE stmt_b_2; + +--echo +DROP PREPARE stmt_b_1; +DROP PREPARE stmt_b_2; + +# Cleanup. + +--echo +use test; + +--echo +DROP DATABASE mysqltest1; +DROP DATABASE mysqltest2; + +############################################################################### + +--echo +--echo # +--echo # Check that prepared statements work properly when there is no current +--echo # database. +--echo # + +--echo +CREATE DATABASE mysqltest1 COLLATE utf8_unicode_ci; +CREATE DATABASE mysqltest2 COLLATE utf8_general_ci; + +--echo +use mysqltest1; + +--echo +PREPARE stmt_c_1 FROM 'SELECT DATABASE(), @@collation_database'; + +--echo +use mysqltest2; + +--echo +PREPARE stmt_c_2 FROM 'SELECT DATABASE(), @@collation_database'; + +--echo +DROP DATABASE mysqltest2; + +--echo +SELECT DATABASE(), @@collation_database; + +# -- Here we have: current db: NULL; stmt db: mysqltest1; +--echo +EXECUTE stmt_c_1; + +--echo +SELECT DATABASE(), @@collation_database; + +# -- Here we have: current db: NULL; stmt db: mysqltest2 (non-existent); +--echo +EXECUTE stmt_c_2; + +--echo +SELECT DATABASE(), @@collation_database; + +# -- Create prepared statement, which has no current database. + +--echo +PREPARE stmt_c_3 FROM 'SELECT DATABASE(), @@collation_database'; + +# -- Here we have: current db: NULL; stmt db: NULL; +--echo +EXECUTE stmt_c_3; + +--echo +use mysqltest1; + +# -- Here we have: current db: mysqltest1; stmt db: mysqltest2 (non-existent); +--echo +EXECUTE stmt_c_2; + +--echo +SELECT DATABASE(), @@collation_database; + +# -- Here we have: current db: mysqltest1; stmt db: NULL; +--echo +EXECUTE stmt_c_3; + +--echo +SELECT DATABASE(), @@collation_database; + +--echo +DROP DATABASE mysqltest1; + +--echo +use test; + +--echo +--echo ######################################################################## +--echo # +--echo # Bug#27430 Crash in subquery code when in PS and table DDL changed +--echo # after PREPARE +--echo # Check the effect of automatic reprepare on query cache +--echo # +--echo ######################################################################## +--disable_warnings +drop table if exists t1; +--enable_warnings +create table t1 (a varchar(255)); +insert into t1 (a) values ("Pack my box with five dozen liquor jugs."); +flush status; +prepare stmt from "select a from t1"; +execute stmt; +set @@global.query_cache_size=0; +alter table t1 add column b int; +execute stmt; +set @@global.query_cache_size=102400; +execute stmt; +execute stmt; +--echo # +--echo # Sic: ALTER TABLE caused an automatic reprepare +--echo # of the prepared statement. Since the query cache was disabled +--echo # at the time of reprepare, the new prepared statement doesn't +--echo # work with it. +--echo # +show status like 'Qcache_hits'; +show status like 'Qcache_queries_in_cache'; +--echo # Cleanup +deallocate prepare stmt; +drop table t1; + +############################################################################### + +set @@global.query_cache_size=@initial_query_cache_size; +flush status; # reset Qcache status variables for next tests +set GLOBAL query_cache_type=default; diff --git a/mysql-test/include/read_many_rows.inc b/mysql-test/include/read_many_rows.inc new file mode 100644 index 00000000..7590f48a --- /dev/null +++ b/mysql-test/include/read_many_rows.inc @@ -0,0 +1,167 @@ +# include/read_many_rows.inc +# +# Test how filesort and buffered-record-reads works +# This test needs a lot of time. +# +# The variables +# $engine_type -- storage engine to be tested +# $other_engine_type -- storage engine <> $engine_type, if possible +# 1. $other_engine_type must allow to store many rows +# without using non standard server options +# (does not need a t/read_many_rows_*-master.opt file) +# 2. $other_engine_type must point to an all time +# available storage engine +# 2006-08 MySQL 5.1 MyISAM and MEMORY only +# have to be set before sourcing this script. +# +# Last update: +# 2006-08-03 ML test refactored (MySQL 5.1) +# main code t/innodb-big.test --> include/read_many_rows.inc +# + +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + +--disable_warnings +DROP TABLE IF EXISTS t1, t2, t3, t4; +--enable_warnings + +eval CREATE TABLE t1 (id INTEGER) ENGINE=$other_engine_type; +CREATE TABLE t2 (id INTEGER PRIMARY KEY); +CREATE TABLE t3 (a CHAR(32) PRIMARY KEY,id INTEGER); +eval CREATE TABLE t4 (a CHAR(32) PRIMARY KEY,id INTEGER) ENGINE=$other_engine_type; + +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 (NEW.f1); + DELETE FROM t2 WHERE f2 = NEW.f1; +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(123); + +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(123); + +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(123); +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/include/relocate_binlogs.inc b/mysql-test/include/relocate_binlogs.inc new file mode 100644 index 00000000..593ea0e9 --- /dev/null +++ b/mysql-test/include/relocate_binlogs.inc @@ -0,0 +1,137 @@ +# ==== Purpose ==== +# +# Relocates the relay logs and index file from +# a directory into another. The logs relocated +# are the one listed in the index file. +# +# ==== Usage ==== +# +# [--let $relocate_disable_query_log= 1] +# [--let $rpl_debug= 1] +# [--let $relocate_is_windows= 0] +# [--let $relocate_recreate_index= 0] +# [--let $relocate_fix_relay_log_info= 0] +# --let $relocate_from= DIR +# --let $relocate_to= DIR +# --let $relocate_index_file= FNAME +# --source include/relocate_binlogs.inc + +if ($relocate_disable_query_log) +{ + --disable_query_log +} + +--let $_path_separator=/ +if ($relocate_is_windows) +{ + --let $_path_separator=\ +} + +if ($relocate_index_file) +{ + SET SQL_LOG_BIN=0; + CREATE TEMPORARY TABLE tmp(id INT AUTO_INCREMENT PRIMARY KEY, filename VARCHAR(1024)); + + --let $write_var= + --let $_index_file= $relocate_index_file + --let $_index_file_basename= `SELECT RIGHT(RTRIM("$_index_file"), LOCATE("$_path_separator",REVERSE(RTRIM("$_index_file"))) -1)` + --let $_from= $relocate_from + --let $_to= $relocate_into + + # chmod to allow the following LOAD DATA + --chmod 0666 $_index_file + + --eval LOAD DATA INFILE '$_index_file' INTO TABLE tmp (filename) + --let $count= `SELECT count(*) FROM tmp` + + while ($count) + { + --let $_filename= `select filename from tmp where id=$count` + + --let $_filename= `SELECT RIGHT(RTRIM("$_filename"), LOCATE("$_path_separator",REVERSE(RTRIM("$_filename"))) -1)` + --move_file $_from/$_filename $_to/$_filename + + if ($relocate_recreate_index) + { + + if ($relocate_is_windows) + { + --let $_write_var=$_to\$_filename\n + } + if (!$relocate_is_windows) + { + --let $_write_var=$_to/$_filename\n + } + if (!$write_var) + { + --let $write_var=$_write_var + } + + if (!`SELECT STRCMP('$write_var', '$_write_var') = 0`) + { + --let $write_var=$_write_var$write_var + } + } + + --dec $count + } + + if (!$relocate_recreate_index) + { + --move_file $_index_file $_to/$_index_file_basename + } + + if ($relocate_recreate_index) + { + --let $write_to_file= $_to/$_index_file_basename + --source include/write_var_to_file.inc + --remove_file $_index_file + } + + DROP TEMPORARY TABLE tmp; + + if ($relocate_fix_relay_log_info) + { + CREATE TEMPORARY TABLE tmp(id INT AUTO_INCREMENT PRIMARY KEY, entry VARCHAR(1024)); + --let $write_var= + + # chmod to allow the following LOAD DATA + --chmod 0666 $relocate_fix_relay_log_info + + --eval LOAD DATA INFILE '$relocate_fix_relay_log_info' INTO TABLE tmp (entry) + --let $count= `SELECT count(*) FROM tmp` + + --let $_curr_entry= `SELECT entry FROM tmp WHERE id=2` + --let $_curr_entry_basename= `SELECT RIGHT(RTRIM("$_curr_entry"), LOCATE("$_path_separator",REVERSE(RTRIM("$_curr_entry"))) -1)` + + if ($relocate_is_windows) + { + --eval UPDATE tmp SET entry='$_to\$_curr_entry_basename' WHERE id=2 + } + if (!$relocate_is_windows) + { + --eval UPDATE tmp SET entry='$_to/$_curr_entry_basename' WHERE id=2 + } + + --remove_file $relocate_fix_relay_log_info + + while($count) + { + --let $_write_var= `SELECT entry FROM tmp WHERE id= $count` + --let $write_var=$_write_var\n$write_var + --dec $count + } + + --let $write_to_file= $relocate_fix_relay_log_info + --source include/write_var_to_file.inc + + DROP TEMPORARY TABLE tmp; + } + SET SQL_LOG_BIN=1; +} + + +if ($relocate_disable_query_log) +{ + --enable_query_log +} diff --git a/mysql-test/include/require_openssl_client.inc b/mysql-test/include/require_openssl_client.inc new file mode 100644 index 00000000..9b199600 --- /dev/null +++ b/mysql-test/include/require_openssl_client.inc @@ -0,0 +1,5 @@ +if ($CLIENT_TLS_LIBRARY != "OpenSSL") { + if ($CLIENT_TLS_LIBRARY != "LibreSSL") { + skip "Test requires Connector/C with OpenSSL library"; + } +} diff --git a/mysql-test/include/reset_master_slave.inc b/mysql-test/include/reset_master_slave.inc new file mode 100644 index 00000000..af66da2b --- /dev/null +++ b/mysql-test/include/reset_master_slave.inc @@ -0,0 +1,29 @@ +# +# The include file runs RESET ALL for every replication connection +# currently present in SHOW FULL SLAVE STATUS output on the server, +# and also runs RESET MASTER on the same server. +# + +--let $include_filename= reset_master_slave.inc +--source include/begin_include_file.inc + +--disable_query_log +--disable_result_log +--disable_warnings +--let $default_master = `SELECT @@default_master_connection` +--let $con_name = query_get_value(show all slaves status, Connection_name, 1) +while ($con_name != 'No such row') +{ + eval set default_master_connection = '$con_name'; + stop slave; + --source include/wait_for_slave_to_stop.inc + reset slave all; + --let $con_name = query_get_value(show all slaves status, Connection_name, 1) +} + +--error 0,ER_FLUSH_MASTER_BINLOG_CLOSED +reset master; +set global gtid_slave_pos=''; +eval set default_master_connection = '$default_master'; +--source include/end_include_file.inc + diff --git a/mysql-test/include/reset_slave.inc b/mysql-test/include/reset_slave.inc new file mode 100644 index 00000000..567ec796 --- /dev/null +++ b/mysql-test/include/reset_slave.inc @@ -0,0 +1,58 @@ +# ==== Purpose ==== +# +# Reset the slave on the active connection +# +# +# ==== Usage ==== +# +# [--let $master_use_gtid_option= NO] +# --source include/reset_slave.inc +# +# Parameters: +# $master_use_gtid_option +# Sets the context for the reset slave. When No, execute +# CHANGE MASTER TO MASTER_USE_GTID=No after the RESET SLAVE. When +# Slave_Pos, execute set gtid_slave_pos= "" after RESET SLAVE. +# +# $reset_slave_keep_gtid_state +# When master_use_gtid_option is Slave_Pos, this defines whether or not +# gtid_slave_pos will be reset as well. Accepted values are of boolean +# type. Default value is false. +# + +--let $include_filename= reset_slave.inc +--source include/begin_include_file.inc + + +if (!$rpl_debug) +{ + --disable_query_log +} + +if (!$master_use_gtid_option) +{ + --let $master_use_gtid_option= Slave_Pos +} + +if (!$reset_slave_keep_gtid_state) +{ + --let $reset_slave_keep_gtid_state=0 +} + +if (`SELECT strcmp("$master_use_gtid_option","Slave_Pos") != 0 AND strcmp("$master_use_gtid_option","No") != 0`) +{ + die Invalid option provided as master_use_gtid_option, Slave_Pos or No are the only allowed options; +} + +RESET SLAVE; +if (`SELECT strcmp("$master_use_gtid_option","Slave_Pos") = 0 AND NOT $reset_slave_keep_gtid_state`) +{ + SET @@GLOBAL.gtid_slave_pos= ""; +} +if (`SELECT strcmp("$master_use_gtid_option","No") = 0`) +{ + CHANGE MASTER TO MASTER_USE_GTID=No; +} + +--let $include_filename= reset_slave.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/restart_mysqld.inc b/mysql-test/include/restart_mysqld.inc new file mode 100644 index 00000000..9abd2b66 --- /dev/null +++ b/mysql-test/include/restart_mysqld.inc @@ -0,0 +1,15 @@ +# ==== Usage ==== +# +# [--let $shutdown_timeout= 60] +# [--let $allow_rpl_inited= 1] +# --source include/restart_mysqld.inc + +--source include/not_embedded.inc + +--source include/shutdown_mysqld.inc +--source include/start_mysqld.inc + +# The following sleep is required to give sleep_until_file_created() time +# to notice that the server was restarted. sleep_until_file_created() would +# fail if the server was restarted or killed at once after restart. +--sleep 0.1 diff --git a/mysql-test/include/restart_slave_sql.inc b/mysql-test/include/restart_slave_sql.inc new file mode 100644 index 00000000..55e87f4b --- /dev/null +++ b/mysql-test/include/restart_slave_sql.inc @@ -0,0 +1,43 @@ +# ==== Purpose ==== +# +# Provide a earier way to restart SQL thread when you want to stop sql thread +# and then start it immediately. +# +# Sources stop_slave_sql.inc to stop SQL thread on the current connection. +# Then issues START SLAVE SQL_THREAD and then waits until +# the SQL threads have started, or until a timeout is reached. +# +# Please use this instead of 'STOP|START SLAVE SQL_THREAD', to reduce the risk of +# test case bugs. +# +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/restart_slave_sql.inc +# +# Parameters: +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= restart_slave.inc +--source include/begin_include_file.inc + + +if (!$rpl_debug) +{ + --disable_query_log +} + +source include/stop_slave_sql.inc; +START SLAVE SQL_THREAD; +source include/wait_for_slave_sql_to_start.inc; + + +--let $include_filename= restart_slave.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/restore_charset.inc b/mysql-test/include/restore_charset.inc new file mode 100644 index 00000000..afd87838 --- /dev/null +++ b/mysql-test/include/restore_charset.inc @@ -0,0 +1,13 @@ +# This file sets the default character set that most test expects. + +# In most cases the variables should match the community server defaults. +# The values should be changed if the default character set for the server +# changes and all tests have been updated to supported the new character set + +# The purpose if this file is to allow users to change these defaults +# without having to update all tests. + +--disable_query_log +SET @@character_set_server=@save_character_set_server; +SET @@collation_server=@save_collation_server; +--enable_query_log diff --git a/mysql-test/include/rowid_filter_debug_kill.inc b/mysql-test/include/rowid_filter_debug_kill.inc new file mode 100644 index 00000000..513efed8 --- /dev/null +++ b/mysql-test/include/rowid_filter_debug_kill.inc @@ -0,0 +1,59 @@ +--source include/have_debug.inc +--source include/have_debug_sync.inc +--source include/have_sequence.inc +--source include/count_sessions.inc + +--echo # +--echo # MDEV-22761 KILL QUERY during rowid_filter, crashes +--echo # + +create table t2(a int); +insert into t2 select * from seq_0_to_99; + +# 10K rows +CREATE TABLE t3 ( + key1 int , + key2 int, + filler varchar(255), + KEY (key1), + KEY (key2) +); +select engine from information_schema.tables +where table_schema=database() and table_name='t3'; + +insert into t3 +select + A.seq, + B.seq, + 'filler-data-filler-data' +from seq_0_to_99 A, seq_0_to_99 B; + +analyze table t2,t3; + +explain +select * from t2, t3 +where + t3.key1=t2.a and t3.key2 in (2,3); + +let $target_id= `select connection_id()`; + +set debug_sync='handler_rowid_filter_check SIGNAL at_rowid_filter_check WAIT_FOR go'; +send +select * from t2, t3 +where + t3.key1=t2.a and t3.key2 in (2,3); + +connect (con1, localhost, root,,); +set debug_sync='now WAIT_FOR at_rowid_filter_check'; +evalp kill query $target_id; +set debug_sync='now SIGNAL go'; + +connection default; +disconnect con1; + +--error ER_QUERY_INTERRUPTED +reap; +set debug_sync='RESET'; + +drop table t2,t3; +--source include/wait_until_count_sessions.inc diff --git a/mysql-test/include/rowid_order.inc b/mysql-test/include/rowid_order.inc new file mode 100644 index 00000000..0dfe48e0 --- /dev/null +++ b/mysql-test/include/rowid_order.inc @@ -0,0 +1,121 @@ +# include/rowid_order.inc +# +# Test for rowid ordering (and comparison) functions. +# do index_merge select for tables with PK of various types. +# +# The variable +# $engine_type -- storage engine to be tested +# has to be set before sourcing this script. +# +# Note: The comments/expections refer to InnoDB. +# They might be not valid for other storage engines. +# +# Last update: +# 2006-08-02 ML test refactored +# old name was t/rowid_order.test +# main code went into include/rowid_order.inc +# + +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; + +--disable_warnings +drop table if exists t1, t2, t3,t4; +--enable_warnings + +# 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) +); +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) +); +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) +) 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) +); +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) +); +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/include/rpl_assert.inc b/mysql-test/include/rpl_assert.inc new file mode 100644 index 00000000..d9963e8e --- /dev/null +++ b/mysql-test/include/rpl_assert.inc @@ -0,0 +1,118 @@ +# ==== Purpose ==== +# +# Check if a condition holds, fail with debug info if not. +# +# The condition is parsed before executed. The following constructs +# are supported: +# +# [SQL STATEMENT, COLUMN, ROW] +# The square bracket is replaced by the result from SQL STATEMENT, +# in the given COLUMN and ROW. +# +# <1> +# This is a shorthand for the result of the first executed square +# bracket. <2> is a shorthand for the second executed square +# bracket, and so on. +# +# ==== Usage ==== +# +# --let $assert_text= Relay_Log_Pos must be smaller than pos. +# --let $assert_cond= [SHOW SLAVE STATUS, Relay_Log_Pos, 1] >= $min_pos AND <1> <= $max_pos +# [--let $assert_quiet= 1] +# [--let $rpl_debug= 1] +# --source include/rpl_assert.inc +# +# Parameters: +# +# $assert_text +# Text that describes what is being checked. By default, this text +# is written to the query log. +# +# $assert_cond +# Condition to check. See above for details about the format. The +# condition will be executed as `SELECT $assert_cond`. Note: this +# condition is parsed using SQL statements, quoted inside single +# quotes, so it must not contain single quotes itself (use double +# quotes for strings). +# +# $assert_quiet +# Do not print $assert_text to the query log. +# +# $rpl_debug +# Print extra debug info. + + +if ($rpl_debug) +{ + --echo # debug: assert_text='$assert_text' assert_cond='$assert_cond' +} + +# Sanity-check input +if (`SELECT "$assert_text" = ""`) +{ + --die ERROR IN TEST: the mysqltest variable rpl_test must be set +} + +# Evaluate square brackets in cond. +--let $_rpl_assert_substmt_number= 1 +--let $_rpl_interpolated_cond= $assert_cond +--let $_rpl_assert_lbracket= `SELECT LOCATE('[', '$_rpl_interpolated_cond')` +while ($_rpl_assert_lbracket) +{ + # Get position of right bracket + --let $_rpl_assert_rbracket= `SELECT LOCATE(']', '$_rpl_interpolated_cond')` + if (!$_rpl_assert_rbracket) + { + --echo BUG IN TEST: Mismatching square brackets in assert_cond: '$assert_cond' + --die BUG IN TEST: Mismatching square brackets in $assert_cond + } + # Get sub-statement and result of it + --let $_rpl_assert_substmt= `SELECT SUBSTRING('$_rpl_interpolated_cond', $_rpl_assert_lbracket + 1, $_rpl_assert_rbracket - $_rpl_assert_lbracket - 1)` + --let $_rpl_assert_substmt_result= query_get_value($_rpl_assert_substmt) + if ($rpl_debug) + { + --echo # debug: sub-statement='$_rpl_assert_substmt' result='$rpl_assert_result' + } + # Replace sub-statement by its result + --let $_rpl_interpolated_cond= `SELECT REPLACE('$_rpl_interpolated_cond', '[$_rpl_assert_substmt]', '$_rpl_assert_substmt_result')` + # Replace result references by result + --let $_rpl_interpolated_cond= `SELECT REPLACE('$_rpl_interpolated_cond', '<$_rpl_assert_substmt_number>', '$_rpl_assert_substmt_result')` + + --let $_rpl_assert_lbracket= `SELECT LOCATE('[', '$_rpl_interpolated_cond')` + + --inc $_rpl_assert_substmt_number +} + +if ($rpl_debug) +{ + --echo # debug: interpolated_cond='$_rpl_interpolated_cond' +} + +# Execute. +--let $_rpl_assert_result= `SELECT $_rpl_interpolated_cond` + +if ($rpl_debug) +{ + --echo # debug: result='$_rpl_assert_result' +} + +# Check. +if (!$_rpl_assert_result) +{ + --echo ######## Test assertion failed: $assert_text ######## + --echo Dumping debug info: + --source include/show_rpl_debug_info.inc + --echo Assertion text: '$assert_text' + --echo Assertion condition: '$assert_cond' + --echo Assertion condition, interpolated: '$_rpl_interpolated_cond' + --echo Assertion result: '$_rpl_assert_result' + --die Test assertion failed in rpl_assertion.inc +} + +if (!$assert_quiet) +{ + --echo # Asserted this: $assert_text +} + +--let $assert_text= +--let $assert_cond= diff --git a/mysql-test/include/rpl_change_topology.inc b/mysql-test/include/rpl_change_topology.inc new file mode 100644 index 00000000..b63700b0 --- /dev/null +++ b/mysql-test/include/rpl_change_topology.inc @@ -0,0 +1,262 @@ +# ==== Purpose ==== +# +# Changes replication topology. This file is normally sourced from +# include/rpl_init.inc, but test cases can also source it if they +# need to change topology after they have sourced include/rpl_init.inc +# +# This file sets up variables needed by include/rpl_sync.inc and many +# other replication scripts in the include/ directory. It also issues +# CHANGE MASTER on all servers where the configuration changes from +# what it was before. It does not issue START SLAVE (use +# include/rpl_start_slaves.inc for that). +# +# Note: it is not currently possible to change the number of servers +# after the rpl_init.inc, without first calling rpl_end.inc. So the +# test has to set $rpl_server_count to the total number of servers +# that the test uses, before it sources include/rpl_init.inc. After +# that, $rpl_server_count must not change until after next time the +# test sources include/rpl_end.inc. +# +# Note: Since this script issues CHANGE MASTER, the test case must +# ensure that all slaves where the configuration changes have stopped +# both the IO thread and the SQL thread before this script is sourced. +# +# +# ==== Usage ==== +# +# [--let $rpl_server_count= 7] +# --let $rpl_topology= 1->2->3->1->4, 2->5, 6->7 +# [--let $rpl_skip_change_master= 1] +# [--let $rpl_master_log_file= 1:master-bin.000001,3:master-bin.000003] +# [--let $rpl_master_log_pos= 1:4711,3:107] +# [--let $rpl_debug= 1] +# --source include/rpl_change_topology.inc +# +# Parameters: +# $rpl_master_log_file +# By default, CHANGE MASTER is executed with MASTER_LOG_FILE set +# to the name of the last binlog file on the master (retrieved by +# executing SHOW MASTER STATUS). This variable can be set to +# specify another filename. This variable should be a +# comma-separated list of the following form: +# +# SERVER_NUMBER_1:FILE_NAME_1,SERVER_NUMBER_2:FILE_NAME_2,... +# +# Before CHANGE MASTER is executed on server N, this script checks +# if $rpl_master_log_file contains the text N:FILE_NAME. If it +# does, then MASTER_LOG_FILE is set to FILE_NAME. Otherwise, +# MASTER_LOG_FILE is set to the last binlog on the master. For +# example, to specify that server_1 should start replicate from +# master-bin.000007 and server_5 should start replicate from +# master-bin.012345, do: +# --let $rpl_master_log_file= 1:master-bin.000007,5:master-bin.012345 +# +# $rpl_master_log_pos +# By default, CHANGE MASTER is executed without specifying the +# MASTER_LOG_POS parameter. This variable can be set to set a +# specific position. It has the same form as $rpl_master_log_file +# (see above). For example, to specify that server_3 should start +# replicate from position 4711 of its master, do: +# --let $rpl_master_log_pos= 3:4711 +# +# $rpl_server_count, $rpl_topology, $rpl_debug, $rpl_skip_change_master +# See include/rpl_init.inc +# +# +# ==== Internal variables configured by this file ==== +# +# This file sets up the following variables, which are used by other +# low-level replication files such as: +# include/rpl_sync.inc +# include/rpl_start_slaves.inc +# include/rpl_stop_slaves.inc +# include/rpl_end.inc +# +# $rpl_server_count_length +# Set to LENGTH($rpl_server_count). So if $rpl_server_count < 10, +# then $rpl_server_count_length = 1; if 10 <= $rpl_server_count < +# 100, then $rpl_server_count_length = 2, etc. +# +# $rpl_master_list +# Set to a string consisting of $rpl_server_count numbers, each one +# whitespace-padded to $rpl_server_count_length characters. If +# server N is a slave, then the N'th number is the master of server +# N. If server N is not a slave, then the N'th number is just spaces +# (so in fact it is not a number). For example, if $rpl_topology is +# '1->2,2->3,3->1,2->4,5->6', then $rpl_master_list is '3122 5'. +# +# $rpl_sync_chain_dirty +# This variable is set to 1. This tells include/rpl_sync.inc to +# compute a new value for $rpl_sync_chain next time that +# include/rpl_sync.inc is sourced. See +# include/rpl_generate_sync_chain.inc and include/rpl_sync.inc for +# details. + + +# Remove whitespace from $rpl_topology +--let $rpl_topology= `SELECT REPLACE('$rpl_topology', ' ', '')` + +--let $include_filename= rpl_change_topology.inc [new topology=$rpl_topology] +--source include/begin_include_file.inc + + +if ($rpl_debug) +{ + --echo ---- Check input ---- +} + + +if (`SELECT '$rpl_topology' = '' OR '$rpl_server_count' = ''`) +{ + --die You must set $rpl_topology and $rpl_server_count before you source rpl_change_topology.inc. If you really want to change to the empty topology, set $rpl_topology= none +} +--let $_rpl_topology= $rpl_topology +if ($_rpl_topology == 'none') +{ + --let $_rpl_topology= +} +if ($rpl_master_list == '') +{ + --die You must source include/rpl_init.inc before you source include/rpl_change_topology.inc +} +--let $_rpl_old_master_list= $rpl_master_list + +if ($rpl_debug) +{ + --echo \$rpl_server_count='$rpl_server_count' + --echo old \$rpl_server_count_length='$rpl_server_count_length' + --echo new \$rpl_topology='$_rpl_topology' + --echo old \$rpl_master_list='$rpl_master_list' + --echo old \$rpl_sync_chain='$rpl_sync_chain' +} + + +if ($rpl_debug) +{ + --echo ---- Generate \$rpl_server_count_length and \$rpl_master_list ---- +} + +--let $rpl_server_count_length= `SELECT LENGTH('$rpl_server_count')` +--let $rpl_master_list= +--let $_rpl_no_server= `SELECT REPEAT(' ', $rpl_server_count_length)` +--let $rpl_master_list= `SELECT REPEAT('$_rpl_no_server', $rpl_server_count)` +while ($_rpl_topology) +{ + # Get 's1->s2' from 's1->s2->s3->...' or from 's1->s2,s3->s4,...' + --let $_rpl_master_slave= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('$_rpl_topology', ',', 1), '->', 2)` + # Modify $_rpl_topology as follows: + # - If it starts with 's1->s2,', remove 's1->s2,' + # - If it starts with 's1->s2->', remove 's1->' + # - If it is equal to 's1->s2', remove 's1->s2' + --let $_rpl_topology= `SELECT SUBSTR('$_rpl_topology', IF(SUBSTR('$_rpl_topology', LENGTH('$_rpl_master_slave') + 1, 2) != '->', LENGTH('$_rpl_master_slave'), LOCATE('->', '$_rpl_master_slave')) + 2)` + # Get 's1' from 's1->s2' + --let $_rpl_master= `SELECT SUBSTRING_INDEX('$_rpl_master_slave', '->', 1)` + # Get 's2' from 's1->s2' + --let $_rpl_slave= `SELECT SUBSTRING('$_rpl_master_slave', LENGTH('$_rpl_master') + 3)` + # Check that s2 does not have another master. + if (`SELECT SUBSTR('$rpl_master_list', 1 + ($_rpl_slave - 1) * $rpl_server_count_length, $rpl_server_count_length) != '$_rpl_no_server'`) + { + --echo ERROR IN TEST: Server '$_rpl_slave' has more than one master in topology '$rpl_topology' + --die ERROR IN TEST: found a server with more than one master in the $rpl_topology variable + } + # Save 's1' at position 's2' in $rpl_master_list + --let $rpl_master_list= `SELECT INSERT('$rpl_master_list', 1 + ($_rpl_slave - 1) * $rpl_server_count_length, $rpl_server_count_length, RPAD('$_rpl_master', $rpl_server_count_length, ' '))` +} + +if ($rpl_debug) +{ + --echo new \$rpl_server_count_length = '$rpl_server_count_length' + --echo new \$rpl_master_list = '$rpl_master_list' +} + +if (!$rpl_skip_change_master) +{ + if ($rpl_debug) + { + --echo ---- Execute CHANGE MASTER on all servers ---- + } + + if (!$rpl_debug) + { + --disable_query_log + } + + --let $_rpl_server= $rpl_server_count + while ($_rpl_server) + { + # The following statement evaluates to: + # 0, if server_$_rpl_server has the same master as before. + # The master's server, if server_$_rpl_server is a slave. + # The empty string, if server_$_rpl_server is not a slave. + --let $_rpl_master= `SELECT TRIM(IFNULL(NULLIF(SUBSTRING('$rpl_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length), SUBSTRING('$_rpl_old_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length)), 0))` + if ($rpl_debug) + { + --echo \$_rpl_server='$_rpl_server' \$_rpl_master='$_rpl_master' + } + if ($_rpl_master) + { + # Get port number + --let $_rpl_port= \$SERVER_MYPORT_$_rpl_master + # Get MASTER_LOG_FILE + --let $_rpl_master_log_file_index= `SELECT LOCATE('$_rpl_server:', '$rpl_master_log_file')` + if ($_rpl_master_log_file_index) + { + # Get text from after ':' and before ',', starting at + # $_rpl_master_log_file + --let $_rpl_master_log_file= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$rpl_master_log_file', $_rpl_master_log_file_index), ',', 1), ':', -1)` + } + if (!$_rpl_master_log_file_index) + { + --let $rpl_connection_name= server_$_rpl_master + --source include/rpl_connection.inc + --let $_rpl_master_log_file= query_get_value(SHOW MASTER STATUS, File, 1) + if ($rpl_debug) + { + --echo "\$rpl_master_log_file parameter not set for the master: $_rpl_master, use the latest binlog file by executing SHOW MASTER STATUS." + } + } + # Change connection. + --let $rpl_connection_name= server_$_rpl_server + --source include/rpl_connection.inc + # Get MASTER_LOG_POS + --let $_rpl_master_log_pos_index= `SELECT LOCATE('$_rpl_server:', '$rpl_master_log_pos')` + if ($_rpl_master_log_pos_index) + { + --let $_rpl_master_log_pos= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$rpl_master_log_pos', $_rpl_master_log_pos_index), ',', 1), ':', -1)` + --let $_rpl_master_log_pos= , MASTER_LOG_POS = $_rpl_master_log_pos + } + if (!$_rpl_master_log_pos_index) + { + --let $_rpl_master_log_pos= + if ($rpl_debug) + { + --echo "\$rpl_master_log_pos parameter not set for the master: $_rpl_master. Set log position to empty." + } + } + if ($rpl_master_log_file) + { + eval CHANGE MASTER TO MASTER_HOST = '127.0.0.1', MASTER_PORT = $_rpl_port, MASTER_USER = 'root', MASTER_LOG_FILE = '$_rpl_master_log_file'$_rpl_master_log_pos, MASTER_CONNECT_RETRY = 1, MASTER_USE_GTID=NO; + } + if (!$rpl_master_log_file) + { + eval CHANGE MASTER TO MASTER_HOST = '127.0.0.1', MASTER_PORT = $_rpl_port, MASTER_USER = 'root', MASTER_CONNECT_RETRY=1; + } + } + if ($_rpl_master == '') + { + # This un-configures the server so that it's not a slave. + # After BUG#28796, such configuration is not possible any more. + #--let $rpl_connection_name= server_$_rpl_server + #--source include/rpl_connection.inc + #CHANGE MASTER TO MASTER_HOST = ''; + } + --dec $_rpl_server + } +} + + +--let $rpl_sync_chain_dirty= 1 + + +--let $include_filename= rpl_change_topology.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_connect.inc b/mysql-test/include/rpl_connect.inc new file mode 100644 index 00000000..a962ba6f --- /dev/null +++ b/mysql-test/include/rpl_connect.inc @@ -0,0 +1,60 @@ +# ==== Purpose ==== +# +# Create a connection to a given numbered server. +# +# This script is normally used internally by rpl_init.inc and +# master-slave.inc, but it can also be used in test cases that need to +# create more connections or re-create connections after disconnect. +# Default ports SERVER_MYPORT_[1,2] are set by rpl_init.inc. +# +# ==== Usage ==== +# +# --let $rpl_connection_name= <connection_name> +# --let $rpl_server_number= <server_number> +# [--let $rpl_debug= 1] +# --source include/rpl_connect.inc +# +# Parameters: +# $rpl_connection_name +# The name of the connection to create. +# +# $rpl_server_number +# The number of the server to connect to. +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= rpl_connect.inc [creating $rpl_connection_name] +--source include/begin_include_file.inc + + +if (!$rpl_server_number) +{ + --die ERROR IN TEST: You must set $rpl_server_number before sourcing include/rpl_connect.inc +} +if (!$rpl_connection_name) +{ + --die ERROR IN TEST: You must set $rpl_connection_name before sourcing include/rpl_connect.inc +} + +# Get port number +--let $_rpl_port= \$SERVER_MYPORT_$rpl_server_number +if (!$_rpl_port) +{ + --echo Bug in test case: '\$SERVER_MYPORT_$rpl_server_number' not initialized. Check the test's .cnf file. + --die Not all SERVER_MYPORT_* environment variables are setup correctly. +} + +# Create connection. +if ($rpl_debug) +{ + --echo connect ($rpl_connection_name,127.0.0.1,root,,test,$_rpl_port,) +} +disable_connect_log; +--connect ($rpl_connection_name,127.0.0.1,root,,test,$_rpl_port,) +enable_connect_log; + + +--let $include_filename= rpl_connect.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_connection.inc b/mysql-test/include/rpl_connection.inc new file mode 100644 index 00000000..256a4756 --- /dev/null +++ b/mysql-test/include/rpl_connection.inc @@ -0,0 +1,49 @@ +# ==== Purpose ==== +# +# The same as 'connection $rpl_connection_name', but it can also +# prints the connection name. The connection is printed if $rpl_debug +# is set, or if rpl_connection.inc is not called between two +# invocations of begin_include_file.inc/end_include_file.inc. +# Otherwise the connection name is not printed. +# +# +# ==== Usage ==== +# +# --let $rpl_connection_name= master +# [--let $rpl_debug= 1] +# --source include/rpl_connection.inc +# +# Parameters: +# $rpl_connection_name +# Name of the connection to connect to. +# +# $rpl_debug +# By default, the connection name is printed only when this file +# is sourced from a top-level test script. If $rpl_debug is set, +# the connection name is also printed whenever auxiliary files +# like rpl_init.inc change connection. + + +if (!$rpl_connection_name) +{ + --die ERROR IN TEST: you must set $rpl_connection_name before sourcing rpl_connection.inc +} + +# This is the same as "if (!$_rpl_include_file_depth || $rpl_debug)", +# but the mysqltest language doesn't have boolean operations. + +if (!$_include_file_depth) +{ + --echo [connection $rpl_connection_name] +} +if ($_include_file_depth) +{ + if ($rpl_debug) + { + --echo [connection $rpl_connection_name] + } +} +disable_connect_log; +--connection $rpl_connection_name +enable_connect_log; +--let $rpl_connection_name= diff --git a/mysql-test/include/rpl_diff.inc b/mysql-test/include/rpl_diff.inc new file mode 100644 index 00000000..72da06cc --- /dev/null +++ b/mysql-test/include/rpl_diff.inc @@ -0,0 +1,118 @@ +# ==== Purpose ==== +# +# Diff the output of a statement on all configured servers (usually +# master and slave). +# +# +# ==== Usage ===== +# +# --let $rpl_diff_statement= SELECT * FROM t1 WHERE a < 100 +# [--let $rpl_diff_servers= <server1>,<server2>,...<serverN>] +# --source include/rpl_diff.inc +# +# Parameters: +# $rpl_diff_statement +# Statement to check. For each compared server, this script will +# start a new client and pass this statement to the client. +# Note: This string will be evaluated as a single-quote-escaped +# SQL string and hence must be quoted as such. In particular, any +# single quotes in this string must be escaped. +# +# $rpl_diff_servers +# By default, this file compares all servers configured by +# rpl_init.inc. You can set $diff_servers to a comma-separated +# list of numbers: only the servers identified by these numbers +# will be compared. +# +# $rpl_diff_database +# By default, the statement will be executed on the database +# 'test'. If $rpl_diff_database is set, the statement will be +# executed on the database named $rpl_diff_database instead. + + +--let $include_filename= rpl_diff.inc +--source include/begin_include_file.inc + + +if (!$rpl_diff_statement) +{ + --die ERROR IN TEST: you must set $rpl_diff_statement before you source include/rpl_diff.inc +} + + +# Sync. +--source include/rpl_sync.inc + + +# Get database name. +--let $_rpl_diff_database= $rpl_diff_database +if (!$_rpl_diff_database) +{ + --let $_rpl_diff_database= test +} + + +# Generate list of servers. +--let $_rpl_diff_servers= $rpl_diff_servers +if (!$_rpl_diff_servers) +{ + --let $_rpl_server_i= $rpl_server_count + --let $_rpl_diff_servers= + while ($_rpl_server_i) + { + --let $_rpl_diff_servers= $_rpl_server_i,$_rpl_diff_servers + --dec $_rpl_server_i + } +} +if ($rpl_debug) +{ + --echo \$rpl_diff_servers= '$_rpl_diff_servers' +} + + +if (!$rpl_debug) +{ + --disable_query_log +} + + +# Generate file containing $rpl_diff_statement. We don't pass the +# statement on the command line, because it would be subject to shell +# substitutions. +--let $write_to_file= GENERATE +--let $write_var= $rpl_diff_statement +--source include/write_var_to_file.inc +--let $_rpl_diff_statement_file= $write_to_file + + +# Compare all servers. +--let $_rpl_diff_first= 1 +while ($_rpl_diff_servers) +{ + # Set $_rpl_diff_server_i to the first number in the list + --let $_rpl_diff_server_i= `SELECT SUBSTRING_INDEX('$_rpl_diff_servers', ',', 1)` + # Remove $_rpl_diff_server_i from the list + --let $_rpl_diff_servers= `SELECT SUBSTRING('$_rpl_diff_servers', LENGTH('$_rpl_diff_server_i') + 2)` + + # Execute statement + --let $_rpl_diff_file= $MYSQLTEST_VARDIR/tmp/_rpl_diff_server-$_rpl_diff_server_i.tmp + --exec $MYSQL --defaults-group-suffix=.$_rpl_diff_server_i $_rpl_diff_database < $_rpl_diff_statement_file > $_rpl_diff_file + + # Compare + if (!$_rpl_diff_first) + { + if ($rpl_debug) + { + --echo diffing $_rpl_diff_file and $_rpl_diff_prev_file + } + --diff_files $_rpl_diff_file $_rpl_diff_prev_file + --remove_file $_rpl_diff_prev_file + } + --let $_rpl_diff_prev_file= $_rpl_diff_file + --let $_rpl_diff_first= 0 +} +--remove_file $_rpl_diff_prev_file + + +--let $include_filename= rpl_diff.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_end.inc b/mysql-test/include/rpl_end.inc new file mode 100644 index 00000000..02564a92 --- /dev/null +++ b/mysql-test/include/rpl_end.inc @@ -0,0 +1,117 @@ +# ==== Purpose ==== +# +# Shut down replication initialized by include/rpl_init.inc. +# +# This syncs all servers, executes STOP SLAVE on all servers, executes +# CHANGE MASTER on all servers, and disconnects all connections +# configured by rpl_init.inc. +# +# It does not execute RESET MASTER or RESET SLAVE, because that would +# remove binlogs which are possibly useful debug information in case +# the test case later fails with a result mismatch. If you need that, +# source include/rpl_reset.inc before you source this file. +# +# +# ==== Usage ==== +# +# [--let $rpl_only_running_threads= 1] +# [--let $rpl_debug= 1] +# --source include/rpl_end.inc +# +# Parameters: +# $rpl_only_running_threads +# If one or both of the IO and SQL threads is stopped, sync and +# stop only the threads that are running. See +# include/rpl_sync.inc and include/stop_slave.inc for details. +# +# $rpl_debug +# See include/rpl_init.inc +# +# Note: +# This script will fail if Last_SQL_Error or Last_IO_Error is +# nonempty. If you expect an error in the SQL thread, you should +# normally call this script as follows: +# +# --source include/wait_for_slave_sql_error.inc +# --source include/stop_slave_io.inc +# RESET SLAVE; +# --let $rpl_only_running_threads= 1 +# --source include/rpl_end.inc +# +# +# ==== Side effects ==== +# +# Changes the current connection to 'default'. + + +--let $include_filename= rpl_end.inc +--source include/begin_include_file.inc + + +if (!$rpl_inited) +{ + --die ERROR IN TEST: rpl_end.inc was sourced when replication was not configured. Most likely, rpl_end.inc was sourced twice or rpl_init.inc has not been sourced. +} + + +if ($rpl_debug) +{ + --echo ---- Check that no slave thread has an error ---- +} + +--let $_rpl_server= $rpl_server_count +while ($_rpl_server) +{ + --let $rpl_connection_name= server_$_rpl_server + --source include/rpl_connection.inc + + # Only check slave threads for error on hosts that were at some + # point configured as slave. + --let $_tmp= query_get_value(SHOW SLAVE STATUS, Master_Host, 1) + if ($_tmp != 'No such row') + { + --source include/check_slave_no_error.inc + } + + --dec $_rpl_server +} + +--source include/rpl_sync.inc +--source include/rpl_stop_slaves.inc + +if (!$rpl_debug) +{ + --disable_query_log +} +--let $_rpl_server= $rpl_server_count +while ($_rpl_server) +{ + --let $rpl_connection_name= server_$_rpl_server + --source include/rpl_connection.inc + + # Clear Using_Gtid in SHOW SLAVE STATUS to keep check_testcase happy. + CHANGE MASTER TO master_use_gtid=Slave_Pos; + + --dec $_rpl_server +} + +# mtr configures server 2 to be a slave before it runs the test. We +# have to restore that state now, so we change topology to 1->2. +--let $rpl_topology= none +--source include/rpl_change_topology.inc + + +--connection default +--let $_rpl_server= $rpl_server_count +while ($_rpl_server) +{ + --disconnect server_$_rpl_server + --dec $_rpl_server +} + +--let $rpl_inited= 0 + +# Do not restore connection, because we have disconnected it. +--let $skip_restore_connection= 1 +--let $include_filename= rpl_end.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_for_each_slave.inc b/mysql-test/include/rpl_for_each_slave.inc new file mode 100644 index 00000000..c1d4581d --- /dev/null +++ b/mysql-test/include/rpl_for_each_slave.inc @@ -0,0 +1,53 @@ +# ==== Purpose ==== +# +# Execute a .inc file once for each server that was configured as a +# slave by rpl_init.inc, for example start_slave.inc or stop_slave.inc file. +# +# +# ==== Usage ==== +# +# --let $rpl_source_file +# [--let $rpl_debug= 1] +# --source include/rpl_for_each_slave.inc +# +# Parameters: +# $rpl_source_file +# The file that will be sourced. +# +# $rpl_server_count +# The number of servers to configure. If this is not set, the largest +# number in $rpl_topology will be used. +# This parameter is obtained from rpl_init.inc. +# +# $rpl_master_list +# This parameter is calculated from within rpl_init.inc. +# +# $rpl_server_count_length +# Set to LENGTH($rpl_server_count). So if $rpl_server_count < 10, +# then $rpl_server_count_length = 1; if 10 <= $rpl_server_count < +# 100, then $rpl_server_count_length = 2, etc. +# This parameter is calculated from within rpl_change_topology.inc. +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= rpl_for_each_file.inc [$rpl_source_file] +--source include/begin_include_file.inc + +--let $_rpl_server= $rpl_server_count +while ($_rpl_server) +{ + --let $_rpl_has_master= `SELECT SUBSTRING('$rpl_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length) != ''` + if ($_rpl_has_master) + { + --let $rpl_connection_name= server_$_rpl_server + --source include/rpl_connection.inc + --source $rpl_source_file + } + --dec $_rpl_server +} + + +--let $include_filename= rpl_for_each_file.inc [$rpl_source_file] +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_generate_sync_chain.inc b/mysql-test/include/rpl_generate_sync_chain.inc new file mode 100644 index 00000000..9104c21c --- /dev/null +++ b/mysql-test/include/rpl_generate_sync_chain.inc @@ -0,0 +1,122 @@ +# ==== Purpose ==== +# +# Setup $rpl_sync_chain, which is used by rpl_sync.inc. You normally +# don't need to source this file, it should only be sourced by +# rpl_sync.inc. +# +# $rpl_sync_chain is set to a string that specifies in what order +# servers should be synchronized in include/rpl_sync.inc. This has the +# form of a sequence of "chains" (with no separator between two +# chains). Each chain begins with $rpl_server_count_length space +# characters, followed by a sequence of numbers, each number +# whitespace-padded to $rpl_server_count_length characters. Each +# number in the sequence denotes a server, and the N'th server is a +# master of the (N+1)'th server. For example, if $rpl_topology is +# '1->2,2->3,3->1,2->4,5->6', then $rpl_sync_chain is ' 56 123124'. +# +# +# ==== Usage ==== +# +# [--let $rpl_debug= 1] +# --source include/rpl_generate_sync_chain.inc +# +# Parameters: +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= rpl_generate_sync_chain.inc +--source include/begin_include_file.inc + + +# Algorithm: +# 0. Mark all servers as unseen and unsynced. +# 1. Let S be a server that is marked unseen. +# 2. Append S to the list of seen servers. +# 3. Check how S is marked: +# 3.1. If S has no master: append the list of seen servers (in +# order from grand-master to grand-slave) to the end of +# $rpl_sync_chain. Go to 3. +# 3.2. Elseif S is marked as synced: append the list of seen +# servers (in order from grand-master to grand-slave) to the +# end of $rpl_sync_chain. Go to 3. +# 3.3. Elseif S is marked as unsynced but seen: This means that the +# graph of visited servers has a "6-shape": it is a loop with +# a tail, such as 1->2->3->1->4->5. We should first sync the +# loop, and then the tail. To ensure all servers in the loop +# are synced, we must sync the loop two turns minus two +# servers. For example, the loop 1->2->3->4->5->1 is fully +# synced by this sequence of 1-step synchronizations: +# 1->2->3->4->5->1->2->3->4. Hence we do this: in the list of +# traversed servers (in order from grand-master to +# grand-slave), find the first occurrence of S. Take the +# sub-list starting at the 3rd server and ending at the first +# occurrence of S. Append this sub-list it to the end of +# $rpl_sync_chain. Then append the entire list of traversed +# servers (in order from grand-master to grand-slave) to +# $rpl_sync_chain. Go to 3. +# 3.4. Else (i.e., S has a master and is not marked as seen or +# synced): Mark S as seen. Set S=master(S) and go back to 2. +# 4. For each server that is marked as seen, mark it as synced. +# 5. If there are unseen servers, go back to 1. + +# $_rpl_server_marks holds the marks of all servers. The i'th character +# corresponds to the mark of server i: +# '0' = unseen & unmarked, '1' = seen & unsynced, '2' = seen & synced. +--let $_rpl_server_marks= `SELECT REPEAT('0', $rpl_server_count)` +--let $_rpl_start_server= $rpl_server_count +--let $rpl_sync_chain= +while ($_rpl_start_server) +{ + --let $_rpl_server= `SELECT RPAD('$_rpl_start_server', $rpl_server_count_length, ' ')` + --let $_rpl_seen_list= + --let $_rpl_continue_loop= 1 + while ($_rpl_continue_loop) + { + --let $_rpl_master= `SELECT SUBSTRING('$rpl_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length)` + # We need to delimit elements of $_rpl_seen_list with commas, so + # that LOCATE() below will not find spurious matches that begin in + # the middle of one element and end in the middle of next element. + --let $_rpl_seen_list= $_rpl_server,$_rpl_seen_list + # If server is marked seen or synced, or has no master + if (`SELECT SUBSTRING('$_rpl_server_marks', $_rpl_server, 1) != 0 OR '$_rpl_master' = ''`) + { + # If server is marked seen but not synced. + if (`SELECT SUBSTRING('$_rpl_server_marks', $_rpl_server, 1) = 1`) + { + # Get sub-list of servers to prepend to server list. + # E.g., if topology is 1->2->3->4->1->5, then at this point + # $_rpl_seen_list='1,2,3,4,1,5,' and we have to prepend '4,3,' + # to it. Hence, the sub-list starts at position + # 1+2*($rpl_server_count_length+1) and ends at the first + # occurrence of ',1,' in the list. + --let $_rpl_extra_list= `SELECT SUBSTRING('$_rpl_seen_list', 1 + 2 * ($rpl_server_count_length + 1), LOCATE(',$_rpl_server,', '$_rpl_seen_list') - 2 * ($rpl_server_count_length + 1))` + --let $_rpl_seen_list= $_rpl_extra_list$_rpl_seen_list + } + # Append the seen servers. Only need to append if the list + # contains at least two elements. + if (`SELECT LENGTH('$_rpl_seen_list') > $rpl_server_count_length + 1`) + { + --let $rpl_sync_chain= $rpl_sync_chain$_rpl_no_server$_rpl_seen_list + } + --let $_rpl_continue_loop= 0 + } + --let $_rpl_server_marks= `SELECT INSERT('$_rpl_server_marks', $_rpl_server, 1, '1')` + --let $_rpl_server= $_rpl_master + } + # Mark seen servers as synced + --let $_rpl_server_marks= `SELECT REPLACE('$_rpl_server_marks', '1', '2')` + # Get highest-numbered unmarked server. + --let $_rpl_start_server= `SELECT IFNULL(NULLIF($rpl_server_count + 1 - LOCATE('0', REVERSE('$_rpl_server_marks')), $rpl_server_count + 1), 0)` +} +# Strip commas: they were only needed temporarily. +--let $rpl_sync_chain= `SELECT REPLACE('$rpl_sync_chain', ',', '')` + +if ($rpl_debug) +{ + --echo Generated \$rpl_sync_chain = '$rpl_sync_chain' +} + + +--let $include_filename= rpl_generate_sync_chain.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_init.combinations b/mysql-test/include/rpl_init.combinations new file mode 100644 index 00000000..07042c2c --- /dev/null +++ b/mysql-test/include/rpl_init.combinations @@ -0,0 +1,8 @@ +[row] +binlog-format=row + +[stmt] +binlog-format=statement + +[mix] +binlog-format=mixed diff --git a/mysql-test/include/rpl_init.inc b/mysql-test/include/rpl_init.inc new file mode 100644 index 00000000..26ce4e1b --- /dev/null +++ b/mysql-test/include/rpl_init.inc @@ -0,0 +1,241 @@ +# ==== Purpose ==== +# +# Set up replication on several servers in a specified topology. +# +# By default, this script does the following: +# - Creates the connections server_1, server_2, ..., server_N. +# - Calls RESET MASTER, RESET SLAVE, USE test, CHANGE MASTER, START SLAVE. +# - Sets the connection to server_1 before exiting. +# With $rpl_check_server_ids parameter, the script does the following: +# - Verifies that @@server_id of all servers are different. +# +# ==== Usage ==== +# +# 1. If you are going to use more than two servers, create +# rpl_test.cnf with the following contents: +# +# !include ../my.cnf +# [mysqld.1] +# log-slave-updates +# [mysqld.2] +# log-slave-updates +# ... +# [mysqld.N] +# log-slave-updates +# +# [ENV] +# SERVER_MYPORT_3= @mysqld.3.port +# SERVER_MYPORT_4= @mysqld.4.port +# SERVER_MYPORT_5= @mysqld.5.port +# ... +# SERVER_MYPORT_N= @mysqld.N.port +# +# (It is allowed, but not required, to configure SERVER_MYPORT_1 +# and SERVER_MYPORT_2 too. If these variables are not set, the +# variables MASTER_MYPORT and SLAVE_MYPORT are used instead. +# These variables are configured in the rpl_1slave_base.cnf, +# that is used in the default my.cnf, which is used by the rpl suite.) +# +# 2. Execute the following near the top of the test: +# +# [--let $rpl_server_count= 7] +# --let $rpl_topology= 1->2->3->1->4, 2->5, 6->7 +# [--let $rpl_check_server_ids= 1] +# [--let $rpl_skip_change_master= 1] +# [--let $rpl_skip_start_slave= 1] +# [--let $rpl_skip_reset_master_and_slave= 1] +# [--let $rpl_debug= 1] +# [--let $slave_timeout= NUMBER] +# --source include/rpl_init.inc +# +# Parameters: +# +# $rpl_server_count +# The number of servers to configure. If this is not set, the largest +# number in $rpl_topology will be used. +# +# $rpl_topology +# A comma-separated list of replication chain +# specifications. Each replication chain specification has the +# form S1->S2->...->Sn, where 1 <= S1,...Sn <= $rpl_server_count. +# This file will configure S(i+1) to be a slave of S(i). If you +# want to specify the empty topology (no server replicates at +# all), you have to set $rpl_topology=none. +# +# $rpl_check_server_ids +# If $rpl_check_server_ids is set, this script checks that the +# @@server_id of all servers are different. This is normally +# guaranteed by mtr, so it is only useful for debugging. +# +# $rpl_skip_reset_master_and_slave +# By default, this script issues RESET MASTER and RESET SLAVE +# before CHANGE MASTER and START SLAVE. RESET MASTER and RESET +# SLAVE are suppressed if $rpl_skip_reset_master_and_slave is +# set. +# Also see $rpl_server_skip_log_bin. +# +# $rpl_skip_change_master +# By default, this script issues CHANGE MASTER so that all slaves +# are ready to run as specified by $rpl_topology. CHANGE MASTER +# is suppressed if $rpl_skip_change_master is set. +# +# $rpl_skip_start_slave +# By default, this script issues START SLAVE on all slaves +# specified by $rpl_topology. START SLAVE is suppressed if +# $rpl_skip_change_master is set. +# +# $rpl_debug +# By default, this script only outputs a static text that says +# that rpl_init.inc was invoked. If $rpl_debug is set, additional +# debug info is printed. The debug info may be nondeterministic, +# so no test case should be checked in with $rpl_debug set. +# +# $slave_timeout +# Timeout used when waiting for the slave threads to start. +# See include/wait_for_slave_param.inc +# +# $rpl_server_skip_log_bin +# When $rpl_skip_reset_master_and_slave is not set +# RESET MASTER does not report ER_FLUSH_MASTER_BINLOG_CLOSED +# on any server. +# +# ==== Side effects ==== +# +# Changes current connection to server_1. + +--source include/have_log_bin.inc + + +--let $include_filename= rpl_init.inc [topology=$rpl_topology] +--source include/begin_include_file.inc + + +if ($rpl_debug) +{ + --echo ---- Check input ---- + --echo MASTER_MYPORT='$MASTER_MYPORT' SLAVE_MYPORT='$SLAVE_MYPORT' MASTER_MYPORT1='$MASTER_MYPORT1' SLAVE_MYPORT1='$SLAVE_MYPORT1' +} + +# Allow $MASTER_MYPORT as alias for $SERVER_MYPORT_1 +if (!$SERVER_MYPORT_1) +{ + --let SERVER_MYPORT_1= $MASTER_MYPORT +} +# Allow $SLAVE_MYPORT as alias for $SERVER_MYPORT_2 +if (!$SERVER_MYPORT_2) +{ + --let SERVER_MYPORT_2= $SLAVE_MYPORT +} +# Check that $rpl_server_count is set +if (!$rpl_server_count) +{ + --let $_compute_rpl_server_count= `SELECT REPLACE('$rpl_topology', '->', ',')` + --let $rpl_server_count= `SELECT GREATEST($_compute_rpl_server_count)` +} + + +if ($rpl_debug) +{ + --echo ---- Setup connections and reset each server ---- +} + + +if (!$rpl_debug) +{ + --disable_query_log +} + + +# Create connection to the server; reset master/slave, select +# database, set autoinc variables. +--let $_rpl_server= $rpl_server_count +while ($_rpl_server) +{ + # Connect. + --let $rpl_server_number= $_rpl_server + --let $rpl_connection_name= server_$_rpl_server + --source include/rpl_connect.inc + + # Configure server. + --let $rpl_connection_name= server_$_rpl_server + --source include/rpl_connection.inc + USE test; + if (!$rpl_skip_reset_master_and_slave) + { + if (!$rpl_server_skip_log_bin) + { + --error 0 + RESET MASTER; + } + if ($rpl_server_skip_log_bin) + { + --error 0,ER_FLUSH_MASTER_BINLOG_CLOSED + RESET MASTER; + } + SET GLOBAL gtid_slave_pos= ""; + RESET SLAVE; + } + + --dec $_rpl_server +} + + +# Signal that initialization is done and all connections created. +--let $rpl_inited= 1 + +# Assert that all hosts have different server_ids +if ($rpl_check_server_ids) +{ + if ($rpl_debug) + { + --echo ---- Check that @@server_id is distinct for all servers ---- + } + + --let $_rpl_server= $rpl_server_count + while ($_rpl_server) + { + --let $_rpl_server2= $_rpl_server + --dec $_rpl_server2 + while ($_rpl_server2) + { + --let $assert_text= Servers $_rpl_server and $_rpl_server2 should have different @@server_id + --let $assert_cond= [SELECT @@server_id AS i, i, 1] != $_rpl_server + + --source include/assert.inc + --dec $_rpl_server2 + } + --dec $_rpl_server + } +} + +if ($rpl_debug) +{ + --echo ---- Check the topology and call CHANGE MASTER ---- +} + +# $rpl_master_list must be set so that include/rpl_change_topology.inc and later +# include/rpl_for_each_slave.inc knows which servers are initialized and not. +--let $rpl_master_list= `SELECT REPEAT('x', $rpl_server_count * LENGTH($rpl_server_count))` +--source include/rpl_change_topology.inc + + +if (!$rpl_skip_start_slave) +{ + if ($rpl_debug) + { + --echo ---- Start slaves ---- + } + --source include/rpl_start_slaves.inc +} + +if ($rpl_debug) +{ + --echo ---- Set connection to the server_1 ---- +} +--let $rpl_connection_name= server_1 +--source include/rpl_connection.inc + + +--let $skip_restore_connection= 1 +--let $include_filename= rpl_init.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_ip_mix.inc b/mysql-test/include/rpl_ip_mix.inc new file mode 100644 index 00000000..d547d77a --- /dev/null +++ b/mysql-test/include/rpl_ip_mix.inc @@ -0,0 +1,17 @@ +connect (master,$IPv6,root,,test,$MASTER_MYPORT); +connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT); +connection master; +reset master; +source include/show_master_status.inc; +save_master_pos; +connection slave; +reset slave; +let $master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1); +--echo Master-Host: $master_host +eval change master to master_host='$IPv6'; +let $master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1); +--echo Master-Host: $master_host +disconnect slave; +disconnect master; +connection default; + diff --git a/mysql-test/include/rpl_ip_mix2.inc b/mysql-test/include/rpl_ip_mix2.inc new file mode 100644 index 00000000..72011558 --- /dev/null +++ b/mysql-test/include/rpl_ip_mix2.inc @@ -0,0 +1,17 @@ +connect (master,127.0.0.1,root,,test,$MASTER_MYPORT); +connect (slave,$IPv6,root,,test,$SLAVE_MYPORT); +connection master; +reset master; +source include/show_master_status.inc; +save_master_pos; +connection slave; +reset slave; +let $master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1); +--echo Master-Host: $master_host +eval change master to master_host='$IPv6'; +let $master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1); +--echo Master-Host: $master_host +disconnect slave; +disconnect master; +connection default; + diff --git a/mysql-test/include/rpl_ipv6.inc b/mysql-test/include/rpl_ipv6.inc new file mode 100644 index 00000000..69f282e2 --- /dev/null +++ b/mysql-test/include/rpl_ipv6.inc @@ -0,0 +1,15 @@ +connect (master,$IPv6,root,,test,$MASTER_MYPORT); +connect (slave,$IPv6,root,,test,$SLAVE_MYPORT); +connection master; +reset master; +source include/show_master_status.inc; +save_master_pos; +connection slave; +reset slave; +eval change master to master_host='$IPv6'; +let $master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1); +--echo Master-Host: $master_host +disconnect slave; +disconnect master; +connection default; + diff --git a/mysql-test/include/rpl_loaddata_charset.inc b/mysql-test/include/rpl_loaddata_charset.inc new file mode 100644 index 00000000..46a701aa --- /dev/null +++ b/mysql-test/include/rpl_loaddata_charset.inc @@ -0,0 +1,33 @@ +connection master; +--disable_warnings +DROP DATABASE IF EXISTS mysqltest; +--enable_warnings + +CREATE DATABASE mysqltest CHARSET UTF8; +USE mysqltest; +CREATE TABLE t (cl varchar(100)) CHARSET UTF8; + +if (!$LOAD_LOCAL) +{ + LOAD DATA INFILE '../../std_data/loaddata_utf8.dat' INTO TABLE t + FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; +} +if ($LOAD_LOCAL) +{ + LOAD DATA LOCAL INFILE './std_data/loaddata_utf8.dat' INTO TABLE t + FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; +} + +save_master_pos; +SELECT hex(cl) FROM t; + +connection slave; +sync_with_master; +USE mysqltest; +SELECT hex(cl) FROM t; + +connection master; +DROP DATABASE mysqltest; +save_master_pos; +connection slave; +sync_with_master; diff --git a/mysql-test/include/rpl_multi_engine.inc b/mysql-test/include/rpl_multi_engine.inc new file mode 100644 index 00000000..b2d1a9c1 --- /dev/null +++ b/mysql-test/include/rpl_multi_engine.inc @@ -0,0 +1,16 @@ +connection master; +INSERT INTO t1 VALUES(42,1,'Testing MySQL databases is a cool ', 'Must make it bug free for the customer',654321.4321,15.21,0,1965,"2005-11-14"); +select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; +sync_slave_with_master; +select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; +connection master; +UPDATE t1 SET b1 = 0, t="2005-09-09" WHERE b1 = 1; +select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; +sync_slave_with_master; +select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; +connection master; +DELETE FROM t1 WHERE id = 42; +select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; +sync_slave_with_master; +select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; +connection master; diff --git a/mysql-test/include/rpl_multi_engine2.inc b/mysql-test/include/rpl_multi_engine2.inc new file mode 100644 index 00000000..24154220 --- /dev/null +++ b/mysql-test/include/rpl_multi_engine2.inc @@ -0,0 +1,87 @@ +############################################################# +# Author: Rafal +# Date: 2007-08-20 +# based on rpl_multi_engine3.inc +############################################################# + +connection slave; +STOP SLAVE; +RESET SLAVE; + +connection master; +RESET MASTER; + +connection slave; +START SLAVE; + +--echo --- Populate t1 with data --- +connection master; +--disable_query_log +INSERT INTO t1 VALUES(42,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"1905-11-14"); +INSERT INTO t1 VALUES(2,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"1965-11-14"); +INSERT INTO t1 VALUES(4,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"1985-11-14"); +INSERT INTO t1 VALUES(142,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"1995-11-14"); +INSERT INTO t1 VALUES(412,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"2005-11-14"); +--enable_query_log + +--echo --- Select from t1 on master --- +select * +from t1 +order by id; + +sync_slave_with_master; +--echo --- Select from t1 on slave --- +select * +from t1 +order by id; + +--echo --- Perform basic operation on master --- +--echo --- and ensure replicated correctly --- +connection master; + +--echo --- Update t1 on master -- +UPDATE t1 SET b1 = 0, bc='updated', t="2006-02-22" +WHERE id < 100 +ORDER BY id; + +--echo --- Check the update on master --- +SELECT * +FROM t1 +WHERE id < 100 +ORDER BY id; + +# Must give injector thread a little time to get update +# into the binlog other wise we will miss the update. + +sync_slave_with_master; +--echo --- Check Update on slave --- +SELECT * +FROM t1 +WHERE id < 100 +ORDER BY id; + +connection master; +--echo --- Remove a record from t1 on master --- +DELETE FROM t1 WHERE id = 412; + +--echo --- Show current count on master for t1 --- +SELECT COUNT(*) FROM t1; + +sync_slave_with_master; +--echo --- Show current count on slave for t1 --- +SELECT COUNT(*) FROM t1; + +connection master; +TRUNCATE TABLE t1; +sync_slave_with_master; +connection master; diff --git a/mysql-test/include/rpl_multi_engine3.inc b/mysql-test/include/rpl_multi_engine3.inc new file mode 100644 index 00000000..e1a80df3 --- /dev/null +++ b/mysql-test/include/rpl_multi_engine3.inc @@ -0,0 +1,61 @@ +############################################################# +# Author: JBM +# Date: 2006-02-23 +# Purpose: To reuse through out test and make maint easier +############################################################# +connection master; +--echo "--- Insert into t1 --" as ""; + +--disable_query_log +INSERT INTO t1 VALUES(42,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"1905-11-14"); +INSERT INTO t1 VALUES(2,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"1965-11-14"); +INSERT INTO t1 VALUES(4,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"1985-11-14"); +INSERT INTO t1 VALUES(142,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"1995-11-14"); +INSERT INTO t1 VALUES(412,1,'Testing MySQL databases is a cool ', + 'Must make it bug free for the customer', + 654321.4321,15.21,0,1965,"2005-11-14"); +--enable_query_log + +--echo --- Select from t1 on master --- +select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; + +sync_slave_with_master; +--echo --- Select from t1 on slave --- +select id,hex(b1),vc,bc,d,f,total,y,t from t1 order by id; + +connection master; + +--echo --- Update t1 on master -- +UPDATE t1 SET b1 = 0, t="2006-02-22" WHERE id = 412; + +--echo --- Check the update on master --- +SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412; + +# Must give injector thread a little time to get update +# into the binlog other wise we will miss the update. + +sync_slave_with_master; +--echo --- Check Update on slave --- +SELECT id,hex(b1),vc,bc,d,f,total,y,t FROM t1 WHERE id = 412; + +connection master; +--echo --- Remove a record from t1 on master --- +DELETE FROM t1 WHERE id = 42; + +--echo --- Show current count on master for t1 --- +SELECT COUNT(*) FROM t1; + +sync_slave_with_master; +--echo --- Show current count on slave for t1 --- +SELECT COUNT(*) FROM t1; + +connection master; +DELETE FROM t1; diff --git a/mysql-test/include/rpl_reconnect.inc b/mysql-test/include/rpl_reconnect.inc new file mode 100644 index 00000000..9438c774 --- /dev/null +++ b/mysql-test/include/rpl_reconnect.inc @@ -0,0 +1,121 @@ +# ==== Purpose ==== +# +# After a server has restarted, this waits for all clients configured +# by rpl_init.inc and/or master-slave.inc to reconnect again. +# +# For each connection, it issues this: +# --enable_reconnect +# --source include/wait_until_connected_again.inc +# --disable_reconnect +# +# +# ==== Usage ==== +# +# --let $rpl_server_number= N +# [--let $rpl_debug= 1] +# --source include/rpl_reconnect.inc +# +# Parameters: +# $rpl_server_number +# Number to identify the server that needs to reconnect. 1 is the +# master server, 2 the slave server, 3 the 3rd server, and so on. +# Cf. include/rpl_init.inc +# +# $rpl_debug +# See include/rpl_init.inc + +--let $include_filename= rpl_reconnect.inc +--source include/begin_include_file.inc + +if (!$rpl_server_number) +{ + --die ERROR IN TEST: you must set $rpl_server_number before you source rpl_connect.inc +} + + +if ($rpl_debug) +{ + --echo ---- Enable reconnect ---- +} + +--let $_rpl_server_number= $rpl_server_number + +--dec $_rpl_server_number +if (!$_rpl_server_number) +{ + --let $rpl_connection_name= default + --source include/rpl_connection.inc + --enable_reconnect + + --let $rpl_connection_name= master + --source include/rpl_connection.inc + --enable_reconnect + + --let $rpl_connection_name= master1 + --source include/rpl_connection.inc + --enable_reconnect +} + +--dec $_rpl_server_number +if (!$_rpl_server_number) +{ + --let $rpl_connection_name= slave + --source include/rpl_connection.inc + --enable_reconnect + + --let $rpl_connection_name= slave1 + --source include/rpl_connection.inc + --enable_reconnect +} + +--let $rpl_connection_name= server_$rpl_server_number +--source include/rpl_connection.inc +--enable_reconnect + +if ($rpl_debug) +{ + --echo ---- Wait for reconnect and disable reconnect on all connections ---- +} + +--let $_rpl_server_number= $rpl_server_number + +--dec $_rpl_server_number +if (!$_rpl_server_number) +{ + --let $rpl_connection_name= default + --source include/rpl_connection.inc + --source include/wait_until_connected_again.inc + --disable_reconnect + + --let $rpl_connection_name= master + --source include/rpl_connection.inc + --source include/wait_until_connected_again.inc + --disable_reconnect + + --let $rpl_connection_name= master1 + --source include/rpl_connection.inc + --source include/wait_until_connected_again.inc + --disable_reconnect +} + +--dec $_rpl_server_number +if (!$_rpl_server_number) +{ + --let $rpl_connection_name= slave + --source include/rpl_connection.inc + --source include/wait_until_connected_again.inc + --disable_reconnect + + --let $rpl_connection_name= slave1 + --source include/rpl_connection.inc + --source include/wait_until_connected_again.inc + --disable_reconnect +} + +--let $rpl_connection_name= server_$rpl_server_number +--source include/rpl_connection.inc +--source include/wait_until_connected_again.inc +--disable_reconnect + +--let $include_filename= rpl_reconnect.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_reset.inc b/mysql-test/include/rpl_reset.inc new file mode 100644 index 00000000..53ed1de9 --- /dev/null +++ b/mysql-test/include/rpl_reset.inc @@ -0,0 +1,81 @@ +# ==== Purpose ==== +# +# Reset all replication servers to a clean state: +# +# - sync all slaves, +# - stop all slaves (STOP SLAVE), +# - remove all binlogs and relay logs (RESET MASTER and RESET SLAVE), +# - start all slaves again (START SLAVE). +# +# It does not execute CHANGE MASTER, so the replication topology is +# kept intact. +# +# +# ==== Usage ==== +# +# [--let $rpl_only_running_threads= 1] +# [--let $rpl_debug= 1] +# [--let $slave_timeout= NUMBER] +# --source include/rpl_end.inc +# +# Parameters: +# $rpl_only_running_threads +# If one or both of the IO and SQL threads is stopped, sync and +# stop only the threads that are running. See +# include/rpl_sync.inc and include/stop_slave.inc for details. +# +# $rpl_debug +# See include/rpl_init.inc +# +# $slave_timeout +# Set the timeout when waiting for slave threads to stop and +# start, respectively. See include/wait_for_slave_param.inc +# +# Note: +# This script will fail if Last_SQL_Error or Last_IO_Error is +# nonempty. If you expect an error in the SQL thread, you should +# normally do this before you source include/rpl_reset.inc: +# +# --source include/wait_for_slave_sql_error.inc +# --source include/stop_slave_io.inc +# RESET SLAVE; + +--let $include_filename= rpl_reset.inc +--source include/begin_include_file.inc + + +if (!$rpl_debug) +{ + --disable_query_log +} + + +--source include/rpl_sync.inc + + +if ($rpl_debug) +{ + --echo ---- Stop and reset all servers ---- +} +--let $_rpl_server= $rpl_server_count +while ($_rpl_server) +{ + --let $rpl_connection_name= server_$_rpl_server + --source include/rpl_connection.inc + + RESET MASTER; + # Check if this server is configured to have a master + if (`SELECT SUBSTRING('$rpl_master_list', 1 + ($_rpl_server - 1) * $rpl_server_count_length, $rpl_server_count_length) != ''`) + { + --source include/stop_slave.inc + --source include/reset_slave.inc + } + --dec $_rpl_server +} + + +--source include/rpl_start_slaves.inc + + +--let $include_filename= rpl_reset.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_restart_server.inc b/mysql-test/include/rpl_restart_server.inc new file mode 100644 index 00000000..5df2c67d --- /dev/null +++ b/mysql-test/include/rpl_restart_server.inc @@ -0,0 +1,39 @@ +# ==== Purpose ==== +# +# Shut down and shut up the server given by $rpl_server_number. This +# is equivalent to rpl_stop_server.inc followed by rpl_start_server.inc +# +# ==== Usage ==== +# +# --let $rpl_server_number= N +# [--let $rpl_server_parameters= --flag1 --flag2 ...] +# [--let $rpl_debug= 1] +# --source include/rpl_restart_server.inc +# +# Parameters: +# +# $rpl_server_number, $rpl_server_parameters +# See include/rpl_start_server.inc +# +# $rpl_debug +# See include/rpl_init.inc +# +# ==== See also ==== +# +# rpl_start_server.inc +# rpl_stop_server.inc + + +--let $_rpl_restart_server_args= [server_number=$rpl_server_number] +if ($rpl_server_parameters) +{ + --let $_rpl_restart_server_args= [server_number=$rpl_server_number parameters: $rpl_server_parameters] +} +--let $include_filename= rpl_restart_server.inc $_rpl_restart_server_args +--source include/begin_include_file.inc + +--source include/rpl_stop_server.inc +--source include/rpl_start_server.inc + +--let $include_filename= rpl_restart_server.inc $_rpl_restart_server_args +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_row_img_general_loop.inc b/mysql-test/include/rpl_row_img_general_loop.inc new file mode 100644 index 00000000..1e3e42f8 --- /dev/null +++ b/mysql-test/include/rpl_row_img_general_loop.inc @@ -0,0 +1,42 @@ +# +# This is a helper script for rpl_row_img.test. It creates +# all combinations MyISAM / InnoDB in a three server replication +# chain. Each engine combination is tested against the current +# seetings for binlog_row_image (on each server). +# +# The test script that is executed on every combination is the +# only argument to this wrapper script. See below. +# +# This script takes one parameter: +# - $row_img_test_script +# the name of the test script to include in every combination +# +# Sample usage: +# -- let $row_img_test_script= suite/rpl/include/rpl_row_img.test +# -- source include/rpl_row_img_general_loop.test + + +-- let $engine_type_a= 2 +-- let $server_1_engine= MyISAM +while($engine_type_a) +{ + -- let $engine_type_b= 2 + -- let $server_2_engine= MyISAM + while($engine_type_b) + { + -- let $engine_type_c= 2 + -- let $server_3_engine= MyISAM + while($engine_type_c) + { + -- echo ### engines: $server_1_engine, $server_2_engine, $server_3_engine + -- source $row_img_test_script + + -- let $server_3_engine= InnoDB + -- dec $engine_type_c + } + -- let $server_2_engine= InnoDB + -- dec $engine_type_b + } + -- let $server_1_engine= InnoDB + -- dec $engine_type_a +} diff --git a/mysql-test/include/rpl_row_img_set.inc b/mysql-test/include/rpl_row_img_set.inc new file mode 100644 index 00000000..d998c3f1 --- /dev/null +++ b/mysql-test/include/rpl_row_img_set.inc @@ -0,0 +1,55 @@ +# +# This is an auxiliar script that sets the binlog-row-image +# on a set of connections. These connections are passed as +# a parameter to this script. Its format is the following: +# +# <conid,value,Y_or_N>:[<conid,value,Y_or_N>:...] +# +# In detail: +# +# conid -- connection id (eg, master) +# value -- binlog_row_image value to set (eg, FULL) +# Y_or_N -- Issue stop and start slave (eg, Y) +# +# Sample usage: +# +# -- let $row_img_set=master:FULL:N,slave:MINIMAL:Y +# -- source include/rpl_row_img_set.inc +# +# Notes: +# +# 1. This script saves and restores the original connection that was +# in use at the time it was included. + +-- let $old_conn= $CURRENT_CONNECTION + +while (`SELECT HEX('$row_img_set') != HEX('')`) +{ + + -- let $tuple= `SELECT SUBSTRING_INDEX('$row_img_set', ',', 1)` + + -- let $conn= `SELECT SUBSTRING_INDEX('$tuple', ':', 1)` + -- let $rimg= `SELECT SUBSTRING_INDEX(LTRIM(SUBSTRING('$tuple', LENGTH('$conn') + 2)), ':', 1)` + + -- let $is_slave_restart= `SELECT LTRIM(SUBSTRING('$tuple', LENGTH('$conn') + LENGTH('$rimg')+ 3))` + + -- echo CON: '$conn', IMG: '$rimg', RESTART SLAVE: '$is_slave_restart' + + -- connection $conn + -- eval SET SESSION binlog_row_image= '$rimg' + -- eval SET GLOBAL binlog_row_image= '$rimg' + + if ($is_slave_restart == Y) + { + -- source include/stop_slave.inc + -- source include/start_slave.inc + } + + FLUSH TABLES; + SHOW VARIABLES LIKE 'binlog_row_image'; + + -- let $row_img_set= `SELECT LTRIM(SUBSTRING('$row_img_set', LENGTH('$tuple') + 2 ))` + +} + +-- connection $old_conn diff --git a/mysql-test/include/rpl_start_server.inc b/mysql-test/include/rpl_start_server.inc new file mode 100644 index 00000000..932fc9da --- /dev/null +++ b/mysql-test/include/rpl_start_server.inc @@ -0,0 +1,59 @@ +# ==== Purpose ==== +# +# Start the server given by $rpl_server_number. This should normally +# be invoked after rpl_stop_server.inc. +# +# ==== Usage ==== +# +# --let $rpl_server_number= N +# [--let $rpl_server_parameters= --flag1 --flag2 ...] +# [--let $rpl_debug= 1] +# [--let $rpl_server_error= 0] +# --source include/rpl_start_server.inc +# +# Parameters: +# +# $rpl_server_number +# Number to identify the server that needs to reconnect. 1 is the +# master server, 2 the slave server, 3 the 3rd server, and so on. +# Cf. include/rpl_init.inc +# +# $rpl_server_parameters +# If set, extra parameters given by this variable are passed to +# mysqld. +# +# $rpl_server_error +# If set, failure of the server startup is expected. +# +# $rpl_debug +# See include/rpl_init.inc +# +# ==== See also ==== +# +# rpl_stop_server.inc +# rpl_restart_server.inc + + +--let $_rpl_start_server_command= restart +--let $_rpl_start_server_args= [server_number=$rpl_server_number] +if ($rpl_server_parameters) +{ + --let $_rpl_start_server_command= restart:$rpl_server_parameters + --let $_rpl_start_server_args= [server_number=$rpl_server_number parameters: $rpl_server_parameters] +} + +--let $include_filename= rpl_start_server.inc $_rpl_start_server_args +--source include/begin_include_file.inc + +--let $rpl_connection_name= server_$rpl_server_number +--source include/rpl_connection.inc + +# Write file to make mysql-test-run.pl start up the server again +--exec echo "$_rpl_start_server_command" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect + +if (!$rpl_server_error) +{ + --source include/rpl_reconnect.inc + --let $include_filename= rpl_start_server.inc $_rpl_start_server_args + --source include/end_include_file.inc +} diff --git a/mysql-test/include/rpl_start_slaves.inc b/mysql-test/include/rpl_start_slaves.inc new file mode 100644 index 00000000..9c1f9f7b --- /dev/null +++ b/mysql-test/include/rpl_start_slaves.inc @@ -0,0 +1,32 @@ +# ==== Purpose ==== +# +# Start all slaves configured by rpl_init.inc and wait for the slave +# threads to start. +# +# Note that rpl_init.inc calls this file automatically, so you only +# need to source this file if the slaves have stopped after that. +# +# +# ==== Usage ==== +# +# [--let $rpl_debug= 1] +# [--let $slave_timeout= NUMBER] +# --source include/rpl_start_slaves.inc +# +# Parameters: +# $rpl_debug +# See include/rpl_init.inc +# +# $slave_timeout +# Set the timeout when waiting for slave threads to stop and +# start, respectively. See include/wait_for_slave_param.inc + + +--let $include_filename= rpl_start_slaves.inc +--source include/begin_include_file.inc + +--let $rpl_source_file= include/start_slave.inc +--source include/rpl_for_each_slave.inc + +--let $include_filename= rpl_start_slaves.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_stmt_seq.inc b/mysql-test/include/rpl_stmt_seq.inc new file mode 100644 index 00000000..b23178ee --- /dev/null +++ b/mysql-test/include/rpl_stmt_seq.inc @@ -0,0 +1,189 @@ +################### include/rpl_stmt_seq.inc ########################### +# # +# Check if a given SQL statement (->$my_stmt) / AUTOCOMMIT mode / # +# storage engine somehow involved causes COMMIT or ROLLBACK. # +# # +# # +# The typical test sequence # +# ------------------------- # +# 1. master connection: INSERT without commit # +# check table content of master and slave # +# 2. master connection: EXECUTE the statement # +# check table content of master and slave # +# 3. master connection: ROLLBACK # +# check table content of master and slave # +# 4. flush the logs # +# # +# The variables # +# $show_binlog -- print binlog entries # +# 0 - default + fits to the file with # +# results # +# 1 - useful for debugging # +# This variable is used within # +# include/rpl_stmt_seq.inc. # +# $manipulate -- Manipulation of the binary logs # +# 0 - do nothing # +# 1 - so that the output of SHOW BINLOG # +# EVENTS IN <current log> contains only # +# commands of the current test sequence # +# This is especially useful, if the # +# $show_binlog is set to 1 and many # +# subtest are executed. # +# This variable is used within # +# include/rpl_stmt_seq.inc. # +# have to be set before sourcing this script. # +# # +# Please be very careful when editing this routine, because the # +# handling of the $variables is extreme sensitive. # +# # +######################################################################## + +# Last update: +# 2007-02-12 ML Replace comments via SQL by "--echo ..." +# + +let $VERSION=`select version()`; + +--echo +--echo ######## $my_stmt ######## + + +############################################################### +# Predict the number of the current log +############################################################### +# Disable the logging of the log number computation. +--disable_query_log +# $_log_num_n should contain the number of the current binlog in numeric style. +# If this routine is called for the first time, $_log_num will not initialized +# and contain the value '' instead of '1'. So we will correct it here. +# +eval set @aux= IF('$_log_num_n' = '', '1', '$_log_num_n'); +let $_log_num_n= `SELECT @aux`; +eval set @aux= LPAD('$_log_num_n',6,'0'); +# SELECT @aux AS "@aux is"; +# +# $_log_num_s should contain the number of the current binlog in string style. +let $_log_num_s= `select @aux`; +# eval SELECT '$log_num' ; +--enable_query_log + +############################################################### +# INSERT +############################################################### +connection master; +# Maybe it would be smarter to use a table with an autoincrement column. +let $MAX= `SELECT MAX(f1) FROM t1` ; +eval INSERT INTO t1 SET f1= $MAX + 1; +# results before DDL(to be tested) +SELECT MAX(f1) FROM t1; +if ($show_binlog) +{ + --let $binlog_file= master-bin.$_log_num_s + --source include/show_binlog_events.inc +} +sync_slave_with_master; + +connection slave; +# results before DDL(to be tested) +SELECT MAX(f1) FROM t1; +if ($show_binlog) +{ + --let $binlog_file= slave-bin.$_log_num_s + --source include/show_binlog_events.inc +} + +############################################################### +# command to be tested +############################################################### +connection master; +eval $my_stmt; +# Devaluate $my_stmt, to detect script bugs +let $my_stmt= ERROR: YOU FORGOT TO FILL IN THE STATEMENT; +# results after DDL(to be tested) +SELECT MAX(f1) FROM t1; +if ($show_binlog) +{ + --let $binlog_file= master-bin.$_log_num_s + --source include/show_binlog_events.inc +} +sync_slave_with_master; + +connection slave; +# results after DDL(to be tested) +SELECT MAX(f1) FROM t1; +if ($show_binlog) +{ + --let $binlog_file= slave-bin.$_log_num_s + --source include/show_binlog_events.inc +} + +############################################################### +# ROLLBACK +############################################################### +connection master; +ROLLBACK; +# results after final ROLLBACK +SELECT MAX(f1) FROM t1; +# Try to detect if the DDL command caused that the INSERT is committed +# $MAX holds the highest/last value just before the insert of MAX + 1 +--disable_query_log +eval SELECT CONCAT(CONCAT('TEST-INFO: MASTER: The INSERT is ', + IF(MAX(f1) = $MAX + 1, 'committed', 'not committed')), + IF((MAX(f1) = $MAX + 1) XOR NOT $my_master_commit, + ' (Succeeded)', + ' (Failed)')) AS "" + FROM mysqltest1.t1; +--enable_query_log +if ($show_binlog) +{ + --let $binlog_file= master-bin.$_log_num_s + --source include/show_binlog_events.inc +} +sync_slave_with_master; + +connection slave; +# results after final ROLLBACK +SELECT MAX(f1) FROM t1; +--disable_query_log +eval SELECT CONCAT(CONCAT('TEST-INFO: SLAVE: The INSERT is ', + IF(MAX(f1) = $MAX + 1, 'committed', 'not committed')), + IF((MAX(f1) = $MAX + 1) XOR NOT $my_slave_commit, + ' (Succeeded)', + ' (Failed)')) AS "" + FROM mysqltest1.t1; +--enable_query_log +if ($show_binlog) +{ + --let $binlog_file= slave-bin.$_log_num_s + --source include/show_binlog_events.inc +} + +############################################################### +# Manipulate binlog +############################################################### +if ($manipulate) +{ +#### Manipulate the binary logs, +# so that the output of SHOW BINLOG EVENTS IN <current log> +# contains only commands of the current test sequence. +# - flush the master and the slave log +# ---> both start to write into new logs with incremented number +# - increment $_log_num_n +connection master; +flush logs; +# sleep 1; +# eval SHOW BINLOG EVENTS IN 'master-bin.$_log_num_s'; +sync_slave_with_master; + +connection slave; +# the final content of the binary log +flush logs; +# The next sleep is urgent needed. +# Without this sleep the slaves crashes often, when the SHOW BINLOG +# is executed. :-( +# sleep 1; +# eval SHOW BINLOG EVENTS IN 'slave-bin.$_log_num_s'; +inc $_log_num_n; +} + +connection master; diff --git a/mysql-test/include/rpl_stop_server.inc b/mysql-test/include/rpl_stop_server.inc new file mode 100644 index 00000000..470e86a1 --- /dev/null +++ b/mysql-test/include/rpl_stop_server.inc @@ -0,0 +1,65 @@ +# ==== Purpose ==== +# +# Stop the server given by $rpl_server_number. +# +# ==== Usage ==== +# +# --let $rpl_server_number= N +# [--let $rpl_debug= 1] +# --source include/rpl_stop_server.inc +# +# Parameters: +# +# $rpl_server_number +# Number to identify the server that needs to reconnect. 1 is the +# master server, 2 the slave server, 3 the 3rd server, and so on. +# Cf. include/rpl_init.inc +# +# $rpl_debug +# See include/rpl_init.inc +# +# ==== See also ==== +# +# rpl_start_server.inc +# rpl_restart_server.inc + + +# Can't use begin_include_file / end_include_file because they require +# executing on a server and the server will go down after this script. +if (!$_include_file_depth) +{ + --echo include/rpl_stop_server.inc [server_number=$rpl_server_number] +} +--inc $_include_file_depth +--let $_rpl_stop_server_old_connection= $CURRENT_CONNECTION +if ($rpl_debug) +{ + --echo $_include_file_indent con='$CURRENT_CONNECTION' warn='$ENABLED_WARNINGS' qlog='$ENABLED_QUERY_LOG' rlog='$ENABLED_RESULT_LOG' aborterr='$ENABLED_ABORT_ON_ERROR' + --echo $_include_file_indent==== BEGIN include/$include_filename ==== +} + + +--let $rpl_connection_name= server_$rpl_server_number +--source include/rpl_connection.inc + +# Write file to make mysql-test-run.pl expect the "crash", but don't start +# it until it's told to +--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.$rpl_server_number.expect + +# Send shutdown to the connected server and give +# it 60 seconds (of mysqltest's default) to die before zapping it +let $rpl_shutdown_timeout= `select 60*(1+9*count(*)) from information_schema.system_variables where variable_name='have_sanitizer' and global_value like "MSAN%"`; + +shutdown_server $rpl_shutdown_timeout; + +--source include/wait_until_disconnected.inc + + +--let $rpl_connection_name= $_rpl_stop_server_old_connection +--source include/rpl_connection.inc +--dec $_include_file_depth +if ($rpl_debug) +{ + --echo $_include_file_indent==== END include/rpl_stop_server.inc [server_number=$rpl_server_number] ==== + --echo $_include_file_indent con='$CURRENT_CONNECTION' warn='$ENABLED_WARNINGS' qlog='$ENABLED_QUERY_LOG' rlog='$ENABLED_RESULT_LOG' aborterr='$ENABLED_ABORT_ON_ERROR' +} diff --git a/mysql-test/include/rpl_stop_slaves.inc b/mysql-test/include/rpl_stop_slaves.inc new file mode 100644 index 00000000..2b919973 --- /dev/null +++ b/mysql-test/include/rpl_stop_slaves.inc @@ -0,0 +1,33 @@ +# ==== Purpose ==== +# +# Stop all slaves configured by rpl_init.inc and waits for the slave +# threads to stop. +# +# +# ==== Usage ==== +# +# [--let $rpl_only_running_threads= 1] +# [--let $rpl_debug= 1] +# [--let $rpl_timeout= NUMBER] +# --source include/rpl_stop_slaves.inc +# +# Parameters: +# $rpl_only_running_threads +# See include/stop_slave.inc +# +# $slave_timeout +# Set the timeout when waiting for slave threads to stop. See +# include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= rpl_stop_slaves.inc +--source include/begin_include_file.inc + +--let $rpl_source_file= include/stop_slave.inc +--source include/rpl_for_each_slave.inc + +--let $include_filename= rpl_stop_slaves.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_sync.inc b/mysql-test/include/rpl_sync.inc new file mode 100644 index 00000000..83d4a2e4 --- /dev/null +++ b/mysql-test/include/rpl_sync.inc @@ -0,0 +1,161 @@ +# ==== Purpose ==== +# +# Sync all servers in an arbitrary replication topology. This works +# only if the servers have been configured with rpl_init.inc (and +# possibly rpl_change_topology.inc). +# +# +# ==== Usage ==== +# +# [--let $rpl_only_running_threads= 1] +# [--let $rpl_debug= 1] +# [--let $slave_timeout= NUMBER] +# --source include/rpl_sync.inc +# +# Parameters: +# $rpl_only_running_threads +# By default, this script assumes that both the IO thread and the +# SQL thread are running and fails if one of them is stopped. If +# $rpl_only_running_threads is set, this script first checks +# which slave threads are running: +# - If both threads are running, sync both threads with master. +# - If only IO thread is running, sync IO thread with master. +# - If only SQL thread is running, sync SQL thread with IO thread. +# - If no thread is running, don't sync. +# +# $slave_timeout +# Set the timeout when waiting for threads to sync. See +# include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc +# +# +# ==== Side effects ==== +# +# Does not change the current connection (note that this is different +# from mysqltest's built-in sync_slave_with_master command). + + +--let $include_filename= rpl_sync.inc +--source include/begin_include_file.inc + + +# Compute $rpl_sync_chain if needed. We could have done this in +# rpl_change_topology.inc, but instead we do it here because that +# means we only compute $rpl_sync_chain when it is needed. +if ($rpl_sync_chain_dirty) +{ + --source include/rpl_generate_sync_chain.inc + --let $rpl_sync_chain_dirty= 0 +} + + +if ($rpl_debug) +{ + --echo \$rpl_sync_chain = '$rpl_sync_chain' \$rpl_only_running_threads= $rpl_only_running_threads +} + +if (!$rpl_server_count_length) +{ + --die \$rpl_server_count_length is not set. Did you call rpl_init.inc? +} + + +--let $_rpl_i= 1 +--let $_rpl_connect= 0 +while ($_rpl_i) { + # $rpl_sync_chain consists of a sequence of sync chains. Each sync + # chain has the form: + # + # <space><server1_1><server1_2>...<server1_N> + # + # So the space character indicates that a new sync chain starts. + --let $_rpl_server= `SELECT TRIM(SUBSTR('$rpl_sync_chain', 1 + ($_rpl_i - 1) * $rpl_server_count_length, $rpl_server_count_length))` + + if ($_rpl_server) + { + if ($rpl_debug) + { + --echo [sync server_$_rpl_prev_server -> server_$_rpl_server] + } + if ($rpl_only_running_threads) + { + disable_connect_log; + --connection server_$_rpl_server + enable_connect_log; + --let $_rpl_slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1) + --let $_rpl_slave_sql_running= query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running, 1) + if ($rpl_debug) + { + --echo Sync IO: $_rpl_slave_io_running; Sync SQL: $_rpl_slave_sql_running + } + --let $_rpl_slave_io_running= `SELECT IF('$_rpl_slave_io_running' != 'No', 1, '')` + --let $_rpl_slave_sql_running= `SELECT IF('$_rpl_slave_sql_running' = 'Yes', 1, '')` + if ($_rpl_slave_io_running) + { + disable_query_log; + --connection server_$_rpl_prev_server + enable_query_log; + if ($_rpl_slave_sql_running) + { + if ($rpl_debug) + { + --let $_rpl_master_file= query_get_value("SHOW MASTER STATUS", File, 1) + --let $_rpl_master_pos= query_get_value("SHOW MASTER STATUS", Position, 1) + --echo syncing master_file='$_rpl_master_file' master_pos='$_rpl_master_pos' + } + disable_connect_log; + --sync_slave_with_master server_$_rpl_server + enable_connect_log; + } + if (!$_rpl_slave_sql_running) + { + --let $sync_slave_connection= server_$_rpl_server + --source include/sync_slave_io_with_master.inc + } + } + if (!$_rpl_slave_io_running) + { + if ($_rpl_slave_sql_running) + { + --source include/sync_slave_sql_with_io.inc + } + } + } + if (!$rpl_only_running_threads) + { + disable_connect_log; + --connection server_$_rpl_prev_server + if ($rpl_debug) + { + --let $_rpl_master_file= query_get_value("SHOW MASTER STATUS", File, 1) + --let $_rpl_master_pos= query_get_value("SHOW MASTER STATUS", Position, 1) + --echo syncing master_file='$_rpl_master_file' master_pos='$_rpl_master_pos' + } + --sync_slave_with_master server_$_rpl_server + enable_connect_log; + } + } + + # This happens at the beginning of a new sync subchain and at the + # end of the full sync chain. + if (!$_rpl_server) + { + --inc $_rpl_i + --let $_rpl_server= `SELECT TRIM(SUBSTR('$rpl_sync_chain', 1 + ($_rpl_i - 1) * $rpl_server_count_length, $rpl_server_count_length))` + + if (!$_rpl_server) + { + # terminate loop + --let $_rpl_i= -1 + } + } + + --let $_rpl_prev_server= $_rpl_server + --inc $_rpl_i +} + + +--let $include_filename= rpl_sync.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/rpl_udf.inc b/mysql-test/include/rpl_udf.inc new file mode 100644 index 00000000..95b953ef --- /dev/null +++ b/mysql-test/include/rpl_udf.inc @@ -0,0 +1,180 @@ +##################################################################### +# Author: Chuck Bell # +# Date: 2006-12-21 # +# Purpose: To test that UDFs are replicated in both row based and # +# statement based format. This tests work completed in WL#3629. # +# # +# This test is designed to exercise two of the three types of UDFs: # +# 1) UDFs via loadable libraries, and 2) UDFs with a SQL body. # +##################################################################### + +--source include/have_udf.inc +--source include/master-slave.inc + +disable_query_log; +call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); +enable_query_log; + +# +# 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. +# + +connection master; +--disable_warnings +drop table if exists t1; +--enable_warnings + +# +# Test 1) Test UDFs via loadable libraries +# +--echo "*** Test 1) Test UDFs via loadable libraries *** +--enable_info +--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB +eval CREATE FUNCTION myfunc_double RETURNS REAL SONAME "$UDF_EXAMPLE_SO"; +--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB +eval CREATE FUNCTION myfunc_int RETURNS INTEGER SONAME "$UDF_EXAMPLE_SO"; +--replace_result $UDF_EXAMPLE_SO UDF_EXAMPLE_LIB +--error ER_CANT_FIND_DL_ENTRY +eval CREATE FUNCTION myfunc_nonexist RETURNS INTEGER SONAME "$UDF_EXAMPLE_SO"; +--replace_column 3 UDF_LIB +SELECT * FROM mysql.func ORDER BY name; +--disable_info + +save_master_pos; +connection slave; +sync_with_master; + +# Check to see that UDF CREATE statements were replicated +--enable_info +--replace_column 3 UDF_LIB +SELECT * FROM mysql.func ORDER BY name; +--disable_info + +connection master; + +# Use the UDFs to do something +--enable_info +eval CREATE TABLE t1(sum INT, price FLOAT(24)) ENGINE=$engine_type; +--disable_warnings +INSERT INTO t1 VALUES(myfunc_int(100), myfunc_double(50.00)); +INSERT INTO t1 VALUES(myfunc_int(10), myfunc_double(5.00)); +INSERT INTO t1 VALUES(myfunc_int(200), myfunc_double(25.00)); +INSERT INTO t1 VALUES(myfunc_int(1), myfunc_double(500.00)); +SELECT * FROM t1 ORDER BY sum; +--enable_warnings +--disable_info + +sync_slave_with_master; + +# Check to see if data was replicated +--enable_info +SELECT * FROM t1 ORDER BY sum; + +# Check to see that the functions are available for execution on the slave +SELECT myfunc_int(25); +SELECT myfunc_double(75.00); +--disable_info + +connection master; + +# Drop the functions +--enable_info +DROP FUNCTION myfunc_double; +DROP FUNCTION myfunc_int; +SELECT * FROM mysql.func ORDER BY name; +--disable_info + +sync_slave_with_master; + +# Check to see if the UDFs were dropped on the slave +--enable_info +SELECT * FROM mysql.func ORDER BY name; +--disable_info + +connection master; + +# Cleanup +--enable_info +DROP TABLE t1; +--disable_info + +# +# Test 2) Test UDFs with SQL body +# +--echo "*** Test 2) Test UDFs with SQL body *** +--enable_info +CREATE FUNCTION myfuncsql_int(i INT) RETURNS INTEGER DETERMINISTIC RETURN i; +CREATE FUNCTION myfuncsql_double(d DOUBLE) RETURNS INTEGER DETERMINISTIC RETURN d * 2.00; +SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name; +--disable_info + +sync_slave_with_master; + +# Check to see that UDF CREATE statements were replicated +--enable_info +SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name; +--disable_info + +connection master; + +# Use the UDFs to do something +--enable_info +eval CREATE TABLE t1(sum INT, price FLOAT(24)) ENGINE=$engine_type; +INSERT INTO t1 VALUES(myfuncsql_int(100), myfuncsql_double(50.00)); +INSERT INTO t1 VALUES(myfuncsql_int(10), myfuncsql_double(5.00)); +INSERT INTO t1 VALUES(myfuncsql_int(200), myfuncsql_double(25.00)); +INSERT INTO t1 VALUES(myfuncsql_int(1), myfuncsql_double(500.00)); +SELECT * FROM t1 ORDER BY sum; +--disable_info + +sync_slave_with_master; + +# Check to see if data was replicated +--enable_info +SELECT * FROM t1 ORDER BY sum; +--disable_info + +connection master; + +# Modify the UDFs to add a comment +--enable_info +ALTER FUNCTION myfuncsql_int COMMENT "This was altered."; +ALTER FUNCTION myfuncsql_double COMMENT "This was altered."; +SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name; +--disable_info + +sync_slave_with_master; + +# Check to see if data was replicated +--enable_info +SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name; + +# Check to see that the functions are available for execution on the slave +SELECT myfuncsql_int(25); +SELECT myfuncsql_double(75.00); +--disable_info + +connection master; + +# Drop the functions +--enable_info +DROP FUNCTION myfuncsql_double; +DROP FUNCTION myfuncsql_int; +SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name; +--disable_info + +sync_slave_with_master; + +# Check to see if the UDFs were dropped on the slave +--enable_info +SELECT db, name, type, param_list, body, comment FROM mysql.proc WHERE db = 'test' AND name LIKE 'myfuncsql%' ORDER BY name; +--disable_info + +connection master; + +# Cleanup +--enable_info +DROP TABLE t1; +--disable_info diff --git a/mysql-test/include/running_event_scheduler.inc b/mysql-test/include/running_event_scheduler.inc new file mode 100644 index 00000000..296bf842 --- /dev/null +++ b/mysql-test/include/running_event_scheduler.inc @@ -0,0 +1,30 @@ +############# include/running_event_scheduler.inc ########################## +# # +# Wait till the event scheduler reached its final state within the processlist.# +# # +# The characteristics of the event_scheduler entry within the processlist is # +# user = 'event_scheduler' and command = 'Daemon'. I am not 100% sure if # +# ther is no short phase with command <> 'Daemon'. # +# A query with WHERE user = 'event_scheduler' only will also catch events in # +# startup phase. # +# # +# Creation: # +# 2008-12-19 mleich Implement this check needed for test bug fixes # +# # +################################################################################ + +# 1. Check that the server system variable shows the state needed +if (`SELECT @@global.event_scheduler <> 'ON'`) +{ + --echo # Error: We expect here that the event scheduler is switched on. + SELECT @@global.event_scheduler; + --echo # Thinkable reasons: + --echo # 1. SET GLOBAL event_scheduler = ON had not the expected effect. + --echo # 2. Use of the current routine (include/running_event_scheduler.inc) + --echo # within the wrong situation + --die +} +let $wait_condition= + SELECT COUNT(*) = 1 FROM information_schema.processlist + WHERE user = 'event_scheduler' AND command = 'Daemon'; +--source include/wait_condition.inc diff --git a/mysql-test/include/save_master_gtid.inc b/mysql-test/include/save_master_gtid.inc new file mode 100644 index 00000000..4fd0d326 --- /dev/null +++ b/mysql-test/include/save_master_gtid.inc @@ -0,0 +1,28 @@ +# ==== Purpose ==== +# +# Save the current binlog GTID position on the master, to be used +# with include/sync_with_master_gtid.inc. +# +# +# ==== Usage ==== +# +# [--let $rpl_debug= 1] +# --source include/save_master_gtid.inc +# +# Parameters: +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= save_master_gtid.inc +--source include/begin_include_file.inc + +--let $master_pos= `SELECT @@gtid_binlog_pos` + +if ($rpl_debug) +{ + --echo save_master_gtid saved master_pos='$master_pos' +} + +--let $include_filename= save_master_gtid.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/save_master_pos.inc b/mysql-test/include/save_master_pos.inc new file mode 100644 index 00000000..2c176d16 --- /dev/null +++ b/mysql-test/include/save_master_pos.inc @@ -0,0 +1,33 @@ +# ==== Purpose ==== +# +# Save the current binlog position on the master, just like the +# built-in mysqltest command save_master_pos. The advantage of this +# script is that the saved position is available to the test script. +# +# +# ==== Usage ==== +# +# [--let $rpl_debug= 1] +# --source include/save_master_pos.inc +# +# Typically, you would use this script together with +# include/sync_io_with_master.inc +# +# Parameters: +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= save_master_pos.inc +--source include/begin_include_file.inc + +let $_master_file= query_get_value("SHOW MASTER STATUS", File, 1); +let $_master_pos= query_get_value("SHOW MASTER STATUS", Position, 1); + +if ($rpl_debug) +{ + --echo save_master_pos saved file='$_master_file', pos='$_master_pos' +} + +--let $include_filename= save_master_pos.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/search_pattern_in_file.inc b/mysql-test/include/search_pattern_in_file.inc new file mode 100644 index 00000000..a899a929 --- /dev/null +++ b/mysql-test/include/search_pattern_in_file.inc @@ -0,0 +1,104 @@ +# Purpose: +# Simple search with Perl for a pattern in some file. +# +# The advantages compared to thinkable auxiliary constructs using the +# mysqltest language and SQL are: +# 1. We do not need a running MySQL server. +# 2. SQL causes "noise" during debugging and increases the size of logs. +# Perl code does not disturb at all. +# +# The environment variables SEARCH_FILE and SEARCH_PATTERN must be set +# before sourcing this routine. +# SEARCH_TYPE can also be set to either NULL(default) or _gm_ +# NULL is equivalent of using m/SEARCH_PATTERN/gs +# _gm_ is equivalent of using m/SEARCH_RANGE/gm +# +# Optionally, SEARCH_RANGE can be set to the max number of bytes of the file +# to search. If negative, it will search that many bytes at the end of the +# file. By default the search happens from the last CURRENT_TEST: +# marker till the end of file (appropriate for searching error logs). +# +# Optionally, SEARCH_ABORT can be set to "FOUND" or "NOT FOUND" and this +# will abort if the search result doesn't match the requested one. +# +# Optionally, SEARCH_OUTPUT can be set to control the format of output. +# Supported formats: +# - (default) : "FOUND n /pattern/ in FILE " or "NOT FOUND ..." +# - "matches" : Each match is printed, on a separate line +# +# In case of +# - SEARCH_FILE and/or SEARCH_PATTERN is not set +# - SEARCH_FILE cannot be opened +# the test will abort immediate. +# +# Typical use case (check invalid server startup options): +# let $error_log= $MYSQLTEST_VARDIR/log/my_restart.err; +# --error 0,1 +# --remove_file $error_log +# let SEARCH_FILE= $error_log; +# # Stop the server +# let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect; +# --exec echo "wait" > $restart_file +# --shutdown_server +# --source include/wait_until_disconnected.inc +# +# --error 1 +# --exec $MYSQLD_CMD <whatever wrong setting> > $error_log 2>&1 +# # The server restart aborts +# let SEARCH_PATTERN= \[ERROR\] Aborting; +# --source include/search_pattern_in_file.inc +# +# Created: 2011-11-11 mleich +# + +perl; + use strict; + die "SEARCH_FILE not set" unless $ENV{SEARCH_FILE}; + my @search_files= glob($ENV{SEARCH_FILE}); + my $search_pattern= $ENV{SEARCH_PATTERN} or die "SEARCH_PATTERN not set"; + my $search_range= $ENV{SEARCH_RANGE}; + my $content; + foreach my $search_file (@search_files) { + open(FILE, '<', $search_file) || die("Can't open file $search_file: $!"); + my $file_content; + if ($search_range > 0) { + read(FILE, $file_content, $search_range, 0); + } elsif ($search_range < 0) { + my $size= -s $search_file; + $search_range = -$size if $size > -$search_range; + seek(FILE, $search_range, 2); + read(FILE, $file_content, -$search_range, 0); + } else { + while(<FILE>) { # error log + if (/^CURRENT_TEST:/) { + $content=''; + } else { + $content.=$_; + } + } + } + close(FILE); + $content.= $file_content; + } + my @matches; + if (not defined($ENV{SEARCH_TYPE})) + { + @matches=($content =~ /$search_pattern/gs); + } + elsif($ENV{SEARCH_TYPE} == "_gm_") + { + @matches=($content =~ /$search_pattern/gm); + } + my $res=@matches ? "FOUND " . scalar(@matches) : "NOT FOUND"; + $ENV{SEARCH_FILE} =~ s{^.*?([^/\\]+)$}{$1}; + + if ($ENV{SEARCH_OUTPUT} eq "matches") { + foreach (@matches) { + print $_ . "\n"; + } + } else { + print "$res /$search_pattern/ in $ENV{SEARCH_FILE}\n"; + } + die "$ENV{SEARCH_ABORT}\n" + if $ENV{SEARCH_ABORT} && $res =~ /^$ENV{SEARCH_ABORT}/; +EOF diff --git a/mysql-test/include/set_binlog_format_mixed.sql b/mysql-test/include/set_binlog_format_mixed.sql new file mode 100644 index 00000000..9e127cfd --- /dev/null +++ b/mysql-test/include/set_binlog_format_mixed.sql @@ -0,0 +1,18 @@ +# Copyright (c) 2007 MySQL AB +# Use is subject to license terms. +# +# 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, +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +SET GLOBAL BINLOG_FORMAT=MIXED; +SET SESSION BINLOG_FORMAT=MIXED; diff --git a/mysql-test/include/set_binlog_format_row.sql b/mysql-test/include/set_binlog_format_row.sql new file mode 100644 index 00000000..2fedf941 --- /dev/null +++ b/mysql-test/include/set_binlog_format_row.sql @@ -0,0 +1,18 @@ +# Copyright (c) 2007 MySQL AB +# Use is subject to license terms. +# +# 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, +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +SET GLOBAL BINLOG_FORMAT=ROW; +SET SESSION BINLOG_FORMAT=ROW; diff --git a/mysql-test/include/set_binlog_format_statement.sql b/mysql-test/include/set_binlog_format_statement.sql new file mode 100644 index 00000000..624df1c8 --- /dev/null +++ b/mysql-test/include/set_binlog_format_statement.sql @@ -0,0 +1,18 @@ +# Copyright (c) 2007 MySQL AB +# Use is subject to license terms. +# +# 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, +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA + +SET GLOBAL BINLOG_FORMAT=STATEMENT; +SET SESSION BINLOG_FORMAT=STATEMENT; diff --git a/mysql-test/include/setup_fake_relay_log.inc b/mysql-test/include/setup_fake_relay_log.inc new file mode 100644 index 00000000..9f044792 --- /dev/null +++ b/mysql-test/include/setup_fake_relay_log.inc @@ -0,0 +1,106 @@ +# ==== Purpose ==== +# +# Setup replication from an existing relay log in the current +# connection. +# +# ==== Usage ==== +# +# Make sure the slave is not running and issue: +# +# let $fake_relay_log= /path/to/fake-relay-log-file.000001 +# source include/setup_fake_relay_log.inc; +# START SLAVE SQL_THREAD; # setup_fake_relay_log doesn't start slave +# ... +# source include/cleanup_fake_relay_log.inc +# +# You must run the server with --relay-log=FILE. You probably want to +# run with --replicate-same-server-id too. +# +# ==== Implementation ==== +# +# First makes a sanity check, ensuring that the slave threads are not +# running. Then copies the $fake_relay_log to RELAY_BIN-fake.000001, +# where RELAY_BIN is the basename of the relay log, and updates +# RELAY_BIN.index. Finally issues CHANGE MASTER so that it uses the +# given files. +# +# ==== Side effects ==== +# +# Creates a binlog file and a binlog index file, and sets +# @@global.relay_log_purge=1. All this is restored when you call +# cleanup_fake_relay_log.inc. + + +--let $include_filename= setup_fake_relay_log.inc +--source include/begin_include_file.inc + +if (!$rpl_debug) +{ + --disable_query_log +} + +# Print message. +let $_fake_relay_log_printable= `SELECT REPLACE('$fake_relay_log', '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')`; +--echo Setting up fake replication from $_fake_relay_log_printable + +# Sanity check. +let $running= 0; +let $_sql_running= query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running, 1); +let $_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1); +if ($_sql_running == Yes) { + let $running= 1; +} +if ($_io_running == Yes) { + let $running= 1; +} +if ($running) { + --echo Error: Slave was running when test case sourced + --echo include/setup_fake_replication.inc + --echo Slave_IO_Running = $_io_running; Slave_SQL_Running = $_sql_running + --source include/show_rpl_debug_info.inc + --die +} + +# Read server variables. +let $_fake_datadir= `SELECT @@datadir`; +let $_fake_filename= query_get_value(SHOW VARIABLES LIKE 'relay_log', Value, 1); +if (!$_fake_filename) { + --die ERROR IN TEST: relay_log variable is empty. Please use the server option --relay-log=FILE. +} +let $_fake_relay_log= $_fake_datadir/$_fake_filename-fake.000001; +let $_fake_relay_index= $_fake_datadir/$_fake_filename.index; +# Need to restore relay_log_purge in cleanup_fake_relay_log.inc, since +# CHANGE MASTER modifies it (see the manual for CHANGE MASTER). +let $_fake_relay_log_purge= `SELECT @@global.relay_log_purge`; + +RESET SLAVE; + +# Create relay log file. +--copy_file $fake_relay_log $_fake_relay_log + +# Create relay log index. + +# After patch for BUG#12190, the filename used in CHANGE MASTER +# RELAY_LOG_FILE will be automatically added the directory of the +# relay log before comparison, thus we need to added the directory +# part (./ on unix .\ on windows) when faking the relay-log-bin.index. + +# mysqltest currently parses backslash escapes wrong, so any sequence +# of N backslashes is collapsed to just one backslash. So we use the +# SQL function CHAR() to generate a backslash character instead. Since +# the string is interpreted in SQL context, we to escape it, so we use +# two backslashes. + +--let $_fake_dir= `select IF(convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows"), CONCAT('.', CHAR(92), CHAR(92)), './')` +--let $write_var= $_fake_dir$_fake_filename-fake.000001\n +--let $write_to_file= $_fake_relay_index +--source include/write_var_to_file.inc + +# Remember old settings. +--let $_fake_old_master_host= query_get_value(SHOW SLAVE STATUS, Master_Host, 1) + +# Setup replication from existing relay log. +eval CHANGE MASTER TO MASTER_HOST='dummy.localdomain', RELAY_LOG_FILE='$_fake_filename-fake.000001', RELAY_LOG_POS=4, MASTER_USE_GTID=NO; + +--let $include_filename= setup_fake_relay_log.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/show_all_slaves_status.inc b/mysql-test/include/show_all_slaves_status.inc new file mode 100644 index 00000000..4c96c31c --- /dev/null +++ b/mysql-test/include/show_all_slaves_status.inc @@ -0,0 +1,65 @@ +# ==== Usage ==== +# +# --let $status_items= Column_Name[, Column_Name[, ...]] +# --source include/show_all_slaves_status.inc +# +# Parameters: +# $status_items +# Set to the name of the column in the output of SHOW SLAVE STATUS +# that you want to display. Example: +# +# --let $status_items= Master_SSL_Allowed +# +# You can show multiple columns by setting $status_items to a +# comma-separated list. Example: +# +# --let $status_items= Master_Log_File, Relay_Master_Log_File +# +# $slave_field_result_replace +# If set, one or more regex patterns for replacing variable +# text in the error message. Syntax as --replace-regex +# +# $slave_sql_mode +# If set, change the slave sql mode during this macro, reverting +# to the previous on exit. Default sql_mode is NO_BACKSLASH_ESCAPES +# to allow replace '\' by '/' making paths OS independent. Example: +# +# --let $slave_sql_mode= NO_BACKSLASH_ESCAPES +# + + +--let $_show_slave_status_items=$status_items +if (!$status_items) +{ + --die Bug in test case: The mysqltest variable $status_items is not set. +} + + +--let $_slave_sql_mode= NO_BACKSLASH_ESCAPES +if ($slave_sql_mode) +{ + --let $_slave_sql_mode= $slave_sql_mode +} +--let $_previous_slave_sql_mode = `SELECT @@sql_mode` +--disable_query_log +eval SET sql_mode= '$_slave_sql_mode'; +--enable_query_log + + +while ($_show_slave_status_items) +{ + --let $_show_slave_status_name= `SELECT SUBSTRING_INDEX('$_show_slave_status_items', ',', 1)` + --let $_show_slave_status_items= `SELECT LTRIM(SUBSTRING('$_show_slave_status_items', LENGTH('$_show_slave_status_name') + 2))` + + --replace_regex /\.[\\\/]master/master/ + --let $_show_slave_status_value= query_get_value(SHOW ALL SLAVES STATUS, $_show_slave_status_name, 1) + --let $_slave_field_result_replace= /[\\\\]/\// $slave_field_result_replace + --replace_regex $_slave_field_result_replace + --let $_show_slave_status_value= `SELECT REPLACE("$_show_slave_status_value", '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')` + --echo $_show_slave_status_name = '$_show_slave_status_value' +} + + +--disable_query_log +eval SET sql_mode= '$_previous_slave_sql_mode'; +--enable_query_log diff --git a/mysql-test/include/show_binary_logs.inc b/mysql-test/include/show_binary_logs.inc new file mode 100644 index 00000000..c3729a8f --- /dev/null +++ b/mysql-test/include/show_binary_logs.inc @@ -0,0 +1,5 @@ +# show binary logs + +# mask out the binlog position +-- replace_column 2 # +show binary logs; diff --git a/mysql-test/include/show_binlog_events.inc b/mysql-test/include/show_binlog_events.inc new file mode 100644 index 00000000..57fe1ffe --- /dev/null +++ b/mysql-test/include/show_binlog_events.inc @@ -0,0 +1,37 @@ +# ==== Purpose ==== +# +# Execute SHOW BINLOG EVENTS and mask non-deterministic output. +# +# ==== Usage ==== +# +# [--let $binlog_file= [<FILENAME> | LAST]] +# [--let $binlog_start= <POSITION> ] +# [--let $binlog_limit= 1, 3 ] +# [--let $skip_checkpoint_events= 1] +# --source include/show_binlog_events.inc +# +# Parameters: +# +# $binlog_file +# Filename for the 'IN' clause of SHOW BINLOG EVENTS. If none +# given, no argument is given to SHOW BINLOG EVENTS, meaning that +# it uses the first binlog. If you set this to "LAST", it prints +# the last binlog (according to SHOW MASTER STATUS). +# +# $binlog_start +# Position for the 'FROM' clause of SHOW BINLOG EVENTS. If none +# given, starts right after the Binlog_checkpoint_log_even. +# +# $binlog_limit +# Limit for the 'LIMIT' clause of SHOW BINLOG EVENTS, i.e.: +# $binlog_limit= 3 -- print three events +# $binlog_limit= 4, 3 -- skip four events, print the three next events + +--let $include_filename= show_binlog_events.inc +--source include/begin_include_file.inc + +--let $is_relay_log= 0 +--source include/show_events.inc + +--let $include_filename= show_binlog_events.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/show_binlog_events2.inc b/mysql-test/include/show_binlog_events2.inc new file mode 100644 index 00000000..69391ff8 --- /dev/null +++ b/mysql-test/include/show_binlog_events2.inc @@ -0,0 +1,39 @@ +# ==== Purpose ==== +# +# A lighter version of show_binlog_event.inc, with the same purpose +# to execute SHOW BINLOG EVENTS and mask non-deterministic output. +# +# +# Parameters: +# +# $binlog_file +# Filename for the 'IN' clause of SHOW BINLOG EVENTS. If none +# given, no argument is given to SHOW BINLOG EVENTS, meaning that +# it uses the first binlog. If you set this to "LAST", it prints +# the last binlog (according to SHOW MASTER STATUS). +# +# $binlog_start +# Position for the 'FROM' clause of SHOW BINLOG EVENTS. If none +# given, starts right after the Binlog_checkpoint_log_even. +# +# $regexp_replace +# A user's custom addon to standard preexisting list. +# + +if ($binlog_start) +{ + --let $_binlog_start=$binlog_start +} +if (!$binlog_start) +{ + --let $_binlog_start=256 +} +if ($binlog_file) +{ + --let $_in_binlog_file=in '$binlog_file' +} +--let $_from_binlog_start=from $_binlog_start +--replace_result "$_from_binlog_start" "from <binlog_start>" $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_column 2 # 5 # +--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /file_id=[0-9]+/file_id=#/ /GTID [0-9]+-[0-9]+-[0-9]+/GTID #-#-#/ $replace_regexp +--eval show binlog events $_in_binlog_file from $_binlog_start diff --git a/mysql-test/include/show_binlog_using_logname.inc b/mysql-test/include/show_binlog_using_logname.inc new file mode 100644 index 00000000..d78c28e5 --- /dev/null +++ b/mysql-test/include/show_binlog_using_logname.inc @@ -0,0 +1,13 @@ +######################################################## +# Author: Jeb +# Date: 2007/04 +# Purpose: To select out 1 row from offset 1 +# from the start position in the binlog whose +# name is = log_name +######################################################## + +--replace_result $start_pos <start_pos> $end_pos <end_pos> +--replace_column 2 # +--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ +--eval show binlog events in '$log_name' from $start_pos limit $off_set,1 + diff --git a/mysql-test/include/show_delayed_slave_state.inc b/mysql-test/include/show_delayed_slave_state.inc new file mode 100644 index 00000000..53a9aa82 --- /dev/null +++ b/mysql-test/include/show_delayed_slave_state.inc @@ -0,0 +1,28 @@ +# ==== Purpose ==== +# +# Display the delay state of the SQL thread. +# +# ==== Usage ==== +# +# --let $verbose_delayed_slave_state= [0|1] +# --source suite/rpl/include/show_delayed_slave_state.inc +# +# By default, the output is normalized so that it does not depend on +# exact timing or exact binlog positions. If +# $verbose_delayed_slave_state is set, then it outputs exact times and +# binlog positions. This can be useful for debugging. + +--let $_delayed_slave_status= query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running_State, 1) + +--let $_delayed_slave_remaining_delay= query_get_value(SHOW SLAVE STATUS, SQL_Remaining_Delay, 1) +--let $_delayed_slave_qualitative_delay= `SELECT CASE WHEN "$_delayed_slave_remaining_delay" = "NULL" THEN "NULL" WHEN "$_delayed_slave_remaining_delay" = "0" THEN "0" ELSE "greater than zero" END` + +--let $_delayed_slave_io_pos= query_get_value(SHOW SLAVE STATUS, Read_Master_Log_Pos, 1) +--let $_delayed_slave_sql_pos= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1) +--let $_delayed_slave_qualitative_log_pos= `SELECT IF($_delayed_slave_io_pos > $_delayed_slave_sql_pos, "behind", "in sync with")` + +--echo Slave_SQL_Running_State='$_delayed_slave_status'; SQL_Remaining_Delay is $_delayed_slave_qualitative_delay; SQL thread is $_delayed_slave_qualitative_log_pos IO thread + +if ($verbose_delayed_slave_state) { + --echo SQL_Remaining_Delay='$_delayed_slave_remaining_delay'; Read_master_log_pos='$_delayed_slave_io_pos'; Exec_Master_Log_Pos='$_delayed_slave_sql_pos' +} diff --git a/mysql-test/include/show_events.inc b/mysql-test/include/show_events.inc new file mode 100644 index 00000000..9df12b23 --- /dev/null +++ b/mysql-test/include/show_events.inc @@ -0,0 +1,146 @@ +# ==== Purpose ==== +# +# Auxiliary file used in include/show_binlog_events.inc and +# include/show_relaylog_events.inc. +# +# ==== Usage ==== +# +# See include/show_binlog_events.inc + +--let $include_filename= show_events.inc +--source include/begin_include_file.inc + +--let $_se_old_statement= $statement + +--let $statement=show BINLOG events +if ($is_relay_log) +{ + if ($master_name) + { + let _master_name='$master_name'; + } + if (!$master_name) + { + let _master_name=`select @@default_master_connection`; + if ($_master_name) + { + let _master_name='$_master_name'; + } + } + --let $statement=show relaylog $_master_name events +} + +if ($binlog_file) +{ + --let $_binlog_file= $binlog_file + if ($binlog_file == 'LAST') + { + if ($is_relay_log) + { + --let $_binlog_file= query_get_value(SHOW SLAVE $_master_name STATUS, Relay_Log_File, 1) + } + if (!$is_relay_log) + { + --let $_binlog_file= query_get_value(SHOW MASTER STATUS, File, 1) + } + } + --let $statement= $statement in '$_binlog_file' +} + +# Do not modify $binlog_start - if we did, it could wrongly persist until a +# later call of show_events.inc. +if ($binlog_start) +{ + --let $_binlog_start= $binlog_start +} + +if (!$binlog_start) +{ + # If $binlog_start is not set, we will set it as the fourth event's + # position (second in relay log which has not Binlog Checkpoint nor + # Gtid_list events). + # The first three events (Description Event, Gtid list, and Binlog Checkpoint + # event) are always ignored. For description event's length might be changed + # because of adding new events, 'SHOW BINLOG EVENTS LIMIT 3' is used to get + # the right value. + if ($is_relay_log) + { + --let $_binlog_start= query_get_value($statement LIMIT 1, End_log_pos, 1) + } + if (!$is_relay_log) + { + --let $_binlog_start= query_get_value($statement LIMIT 3, End_log_pos, 3) + } +} + +--let $statement= $statement from $_binlog_start + +if ($binlog_limit != '') +{ + --let $statement= $statement limit $binlog_limit +} + +if (!$binlog_database) +{ + --let $binlog_database="database" +} + +# Execute the statement and write to $output_file +--let $output_file= GENERATE +--source include/write_result_to_file.inc + +# If requested, change the name of the binary log file in the output +--let $modify_binlog_name= +if ($binlog_output_name != "") +{ + --let $modify_binlog_name=s{$_binlog_file}{$binlog_output_name}; +} + +# Filter the file through the following script. +--delimiter || +let $script= + # todo: use select_columns instead (requires updating all result files) + s{([^\t]*\t)[^\t]*(\t[^\t]*\t)[^\t]*\t[^\t]*(\t[^\t]*)}{DOLLAR1#DOLLAR2#\t#DOLLAR3}; + s{/\* xid=.* \*/}{/\* XID \*/}; + s{table_id: [0-9]+}{table_id: #}; + s{file_id=[0-9]+}{file_id=#}; + s{block_len=[0-9]+}{block_len=#}; + s{Server ver:.*DOLLAR}{SERVER_VERSION, BINLOG_VERSION}; + s{GTID [0-9]+-[0-9]+-[0-9]+}{GTID #-#-#}; + s{COMMIT ALTER id=[0-9]+}{COMMIT ALTER id=#}; + s{ROLLBACK ALTER id=[0-9]+}{ROLLBACK ALTER id=#}; + s{\[([0-9]-[0-9]-[0-9]+,?)+\]}{[#-#-#]}; + s{cid=[0-9]+}{cid=#}; + s{SQL_LOAD-[a-z,0-9,-]*.[a-z]*}{SQL_LOAD-<SERVER UUID>-<MASTER server-id>-<file-id>.<extension>}; + s{rand_seed1=[0-9]*,rand_seed2=[0-9]*}{rand_seed1=<seed 1>,rand_seed2=<seed 2>}; + s{((?:master|slave|slave-relay)-bin\.[0-9]{6};pos=)[0-9]+DOLLAR}{DOLLAR1POS}; + s{SONAME ".*"}{SONAME "LIB"}; + s{DOLLARmysqltest_vardir}{MYSQLTEST_VARDIR}g; + s{$binlog_database}{database}; + $modify_binlog_name +|| + +--let $pre_script= my DOLLARmysqltest_vardir = DOLLARENV{'MYSQLTEST_VARDIR'}; + +--delimiter ; + +if ($skip_checkpoint_events) +{ + let $filter_script=Binlog_checkpoint; +} + + +#--let $select_columns= 1 3 6 +--let $input_file= $output_file +--source include/filter_file.inc + +# Write to result file +--cat_file $output_file + +# Remove the file +--remove_file $output_file + +--let $statement= $_se_old_statement + +--let $include_filename= show_events.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/show_gtid_list.inc b/mysql-test/include/show_gtid_list.inc new file mode 100644 index 00000000..96f813f1 --- /dev/null +++ b/mysql-test/include/show_gtid_list.inc @@ -0,0 +1,15 @@ +# ==== Purpose ==== +# +# Extract Gtid_list info from SHOW BINLOG EVENTS output masking +# non-deterministic fields. +# +# ==== Usage ==== +# +# [--let $binlog_file=filename +# +if ($binlog_file) +{ + --let $_in_binlog_file=in '$binlog_file' +} +--replace_column 2 # 5 # +--eval show binlog events $_in_binlog_file limit 1,1 diff --git a/mysql-test/include/show_master_logs.inc b/mysql-test/include/show_master_logs.inc new file mode 100644 index 00000000..4792ebd9 --- /dev/null +++ b/mysql-test/include/show_master_logs.inc @@ -0,0 +1,5 @@ +# show master logs + +# mask out the binlog position +-- replace_column 2 # +query_vertical show master logs; diff --git a/mysql-test/include/show_master_status.inc b/mysql-test/include/show_master_status.inc new file mode 100644 index 00000000..b7b32a65 --- /dev/null +++ b/mysql-test/include/show_master_status.inc @@ -0,0 +1,5 @@ +# show master status + +# mask out the binlog position +-- replace_column 2 # 3 <Binlog_Do_DB> 4 <Binlog_Ignore_DB> +show master status; diff --git a/mysql-test/include/show_msg.inc b/mysql-test/include/show_msg.inc new file mode 100644 index 00000000..659dce14 --- /dev/null +++ b/mysql-test/include/show_msg.inc @@ -0,0 +1,25 @@ +#### include/show_msg.inc +# +# This file writes the value set in @message into the +# a protocol file as part of executing a test sequence +# +# Usage: +# Add the following to any *.test file: +# : +# let $message= <value>; +# --source include/show_msg.inc +# : +# +# Attention: +# - Please do not write any spaces between $message and the "=", because the +# assignment will not work. +# - Be careful with single quotes. They must be escaped like "''" or "\'". +# +# "include/show_msg80.inc" contains a detailed description and examples. + +--disable_query_log +eval SET @utf8_message = CONVERT('$message' using utf8); +select @utf8_message as "" +union +select repeat(CONVERT('-' using utf8),char_length(@utf8_message)); +--enable_query_log diff --git a/mysql-test/include/show_msg80.inc b/mysql-test/include/show_msg80.inc new file mode 100644 index 00000000..42fb35ed --- /dev/null +++ b/mysql-test/include/show_msg80.inc @@ -0,0 +1,118 @@ +#### include/show_msg80.inc +# +# This file writes the value set in @message into the a protocol file as part +# of executing a test sequence with a dash line that is fixed on 80 characters. +# +# This can be used in the case of long messages, multi line messages that +# exceed 80 or if an 80 char line is desired for short messages. +# +# Usage: +# Add the following to any *.test file: +# : +# let $message= <value>; +# --source include/show_msg80.inc +# : +# +# Attention: +# - Please do not write any spaces between $message and the "=", because the +# assignment will not work. +# - Be careful with single quotes within the value. They must be escaped like +# "''" or "\'". +# - Do not keep the value between single quotes. +# +# +# Content of "$message" and protocol output depending on the assignment: +# ---------------------------------------------------------------------- +# +# I is assumed, that the value is not kept between double quotes. +# +# <x> first character after "$message=", +# where the content is not (space or tab) +# <y*> first character after beginning of the line, +# where the content is not (space or tab) +# <z> last char before ";" +# | beginning or end of line +# +# script: let $message= <x><whatever0>| +# | <y1><whatever1>| +# |................| +# | <yn><whatevern><z>; +# content: "<x><whatever0><new line><y1><whatever1><new line> +# ....<new line><yn><whatevern><z>" +# protocol output: |<x><whatever0>| +# |<y1><whatever1>| +# |.....| +# |<yn><whatevern><z>| +# |--- 80 dashes ---| +# +# Attention: +# <x> and <y*> set to characters like "-$#" which are also used +# to start comments, options and the names of mysqltest variables +# lead to syntax errors or mangled messages. +# +# +# Examples of messages: +# --------------------- +# +# Variant1 (ease of use): +# Several lines with indentation kept between double quotes +# script: |let $message= +# |" Testcase 3.1 : Ensure that Pi is not an| +# | integer number.| +# | Third line"; +# protocol: |" Testcase 3.1 : Ensure that Pi is not an| +# | integer number.| +# | Third line"| +# |------ 80 dashes ----| +# +# Please mention that +# - the '"' preserves the indentation. +# - it is easy to write the script lines to get a fine indentation, +# if the value starts at the beginning of a new line +# - the '"' is printed +# - there are the least or no problems with characters like "-#$" +# +# +# Variant 2 (grep the messages from the protocol is easy): +# Several lines with indentation + auxiliary character (".") +# at the (non tab or space) beginning of every message line +# script: |let $message= . Testcase 3.1 : Ensure that Pi is not an| +# | . integer number.| +# | . Third line; +# protocol: |. Testcase 3.1 : Ensure that Pi is not an| +# |. integer number.| +# |. Third line| +# |------ 80 dashes ----| +# Please mention that +# - the auxiliary character preserves the indentation. +# - it is easy to write the script lines to get a fine indentation +# - the auxiliary character is printed +# - it is recommended to use "." as auxiliary character +# - auxiliary characters like "-'$#" cause problems +# +# +# +# Bad variant1: Several lines with lost indentation +# script: |let $message= Here is message line 1 +# | message line 2; +# protocol: |Here is message line 1| +# |message line 2| +# |------ 80 dashes ----| +# Please mention, that the leading spaces of the message lines disappeared. +# +# Bad variant2: Several lines leading to a syntax error, because of "-" +# script: |let $message= - This is a message +# | - with a second and +# | - third line; +# protocol: | - third line;; +# |ERROR 42000: You have an error ... near '- third line' +# + several following errors +# +# + +--disable_query_log +eval SET @utf8_message = CONVERT('$message' using utf8); +select @utf8_message as "" +union +select repeat(CONVERT('-' using utf8),80); +--enable_query_log diff --git a/mysql-test/include/show_relaylog_events.inc b/mysql-test/include/show_relaylog_events.inc new file mode 100644 index 00000000..c98e961d --- /dev/null +++ b/mysql-test/include/show_relaylog_events.inc @@ -0,0 +1,22 @@ +############################################################################## +# Show relay log events +# +# Usage: +# let $binlog_file= slave-relay-bin.000002; +# let $binlog_start= 106; +# let $binlog_limit= 1, 3; +# let $master_name= master1; +# source include/show_relaylog_events.inc; +# +# It shows the first relay log file if $binlog_file is not given. +# +# It shows events from the end position of the description event if +# $binlog_start is not given. +# +# It shows all of the events if $binlog_limit is not given. +# $binlog_format has the same semantic with 'LIMIT' option. +# +############################################################################## + +--let $is_relay_log= 1 +--source include/show_events.inc diff --git a/mysql-test/include/show_rpl_debug_info.inc b/mysql-test/include/show_rpl_debug_info.inc new file mode 100644 index 00000000..7ee674df --- /dev/null +++ b/mysql-test/include/show_rpl_debug_info.inc @@ -0,0 +1,116 @@ +# ==== Purpose ==== +# +# Print status information for replication, typically used to debug +# test failures. +# +# The following is printed on the current connection: +# +# SELECT NOW() +# SHOW SLAVE STATUS +# SHOW MASTER STATUS +# SHOW PROCESSLIST +# SHOW BINLOG EVENTS IN <binlog_name> +# +# Where <binlog_name> is the currently active binlog. +# +# Then, the same is printed from all connections configured by +# rpl_init.inc - i.e., on connection server_N, where +# 1 <= N <= $rpl_server_count +# +# +# ==== Usage ==== +# +# [--let $rpl_only_current_connection= 1] +# --source include/show_rpl_debug_info.inc +# +# Parameters: +# $rpl_only_current_connection +# By default, debug info is printed from all connections, starting +# with the current connection. If this variable is set, debug +# info is printed only for the current connection. +# +# +# ==== Side effects ==== +# +# Turns on enable_query_log, enable_result_log, enable_warnings, +# horizontal_results, and enable_abort_on_error. +# +# Prints non-deterministic output to the query log. This file should +# never be called in a test that does not fail. + + +--enable_query_log +--enable_result_log +--enable_warnings +--enable_connect_log +--disable_abort_on_error +--horizontal_results + + +--let $_rpl_old_con= $CURRENT_CONNECTION +--let $_rpl_is_first_server= 1 +--let $_rpl_server= $rpl_server_count +if ($_rpl_server == '') +{ + --let $_rpl_server= 0 +} +--inc $_rpl_server + + +while ($_rpl_server) +{ + if (!$_rpl_is_first_server) + { + --connection server_$_rpl_server + } + + --echo + --echo ############################## $CURRENT_CONNECTION ############################## + --echo + --echo **** SHOW WARNINGS on $CURRENT_CONNECTION **** + SHOW WARNINGS; + --echo + --echo **** SELECT replication-related variables on $CURRENT_CONNECTION **** + SELECT NOW(), @@SERVER_ID; + --echo + --echo **** SHOW SLAVE STATUS on $CURRENT_CONNECTION **** + query_vertical SHOW SLAVE STATUS; + --echo + --echo **** SHOW MASTER STATUS on $CURRENT_CONNECTION **** + query_vertical SHOW MASTER STATUS; + --echo + --echo **** SHOW SLAVE HOSTS on $CURRENT_CONNECTION **** + query_vertical SHOW SLAVE HOSTS; + --echo + --echo **** SHOW PROCESSLIST on $CURRENT_CONNECTION **** + SHOW PROCESSLIST; + --echo + --echo **** SHOW BINARY LOGS on $CURRENT_CONNECTION **** + SHOW BINARY LOGS; + --echo + --echo **** SHOW BINLOG EVENTS on $CURRENT_CONNECTION **** + let $binlog_name= query_get_value("SHOW MASTER STATUS", File, 1); + --echo binlog_name = '$binlog_name' + eval SHOW BINLOG EVENTS IN '$binlog_name'; + --echo + --echo **** SHOW RELAYLOG EVENTS on $CURRENT_CONNECTION **** + let $relaylog_name= query_get_value(SHOW SLAVE STATUS, Relay_Log_File, 1); + --echo relaylog_name = '$relaylog_name' + eval SHOW RELAYLOG EVENTS IN '$relaylog_name'; + + + --let $_rpl_is_first_server= 0 + --dec $_rpl_server + # Don't use same connection twice. + if (`SELECT 'server_$_rpl_server' = '$_rpl_old_con'`) + { + --dec $_rpl_server + if ($rpl_only_current_connection) + { + --let $_rpl_server= 0 + } + } +} + +--connection $_rpl_old_con +--enable_abort_on_error diff --git a/mysql-test/include/show_slave_hosts.inc b/mysql-test/include/show_slave_hosts.inc new file mode 100644 index 00000000..e27c1bfb --- /dev/null +++ b/mysql-test/include/show_slave_hosts.inc @@ -0,0 +1,3 @@ +--replace_result $SLAVE_MYPORT SLAVE_PORT $DEFAULT_MASTER_PORT DEFAULT_PORT +--replace_regex /[0-9, a-f]{8}-[0-9, a-f]{4}-[0-9, a-f]{4}-[0-9, a-f]{4}-[0-9, a-f]{12}/SLAVE_UUID/ +SHOW SLAVE HOSTS; diff --git a/mysql-test/include/show_slave_status.inc b/mysql-test/include/show_slave_status.inc new file mode 100644 index 00000000..429ed8a5 --- /dev/null +++ b/mysql-test/include/show_slave_status.inc @@ -0,0 +1,148 @@ +# ==== Purpose ==== +# +# Show selected columns of output from SHOW SLAVE STATUS. +# +# Note: test cases should never call SHOW SLAVE STATUS directly, +# because that outputs more information to the query log than what is +# needed for the property that is being tested. That would cause +# maintenance problems, because (1) it is hard for a human to +# understand what property is being tested; (2) the output of many of +# the fields is non-deterministic (e.g., Slave_IO_State) or changes +# frequently (e.g., binlog positions). +# +# Instead, what you want most of the time is to source one of the +# following scripts: +# +# include/check_slave_no_error.inc +# Assert that Slave_SQL_Errno = Slave_IO_Errno = 0. +# +# include/check_slave_is_running.inc +# Assert that Slave_IO_Running = Slave_SQL_Running = 'Yes'. +# +# include/wait_for_slave_sql_error.inc +# Wait for the SQL thread to get a given error (and assert that +# it has this error). +# +# include/wait_for_slave_io_error.inc +# Wait for the IO thread to get a given error (and assert that +# it has this error). +# +# include/wait_for_slave_sql_to_stop.inc +# include/wait_for_slave_io_to_stop.inc +# include/wait_for_slave_to_stop.inc +# Wait for the SQL thread, the IO thread, or both to stop (and +# assert they stop). +# +# When none of the above applies, you may use this script instead. +# However, take care so that the test never contains explicit binlog +# coordinates. Usually you can read the binlog coordinates into a +# variable and compare it to some other coordinates. +# +# +# ==== Usage ==== +# +# --let $status_items= Column_Name[, Column_Name[, ...]] +# --source include/show_slave_status.inc +# +# Parameters: +# $status_items +# Set to the name of the column in the output of SHOW SLAVE STATUS +# that you want to display. Example: +# +# --let $status_items= Master_SSL_Allowed +# +# You can show multiple columns by setting $status_items to a +# comma-separated list. Example: +# +# --let $status_items= Master_Log_File, Relay_Master_Log_File +# +# $slave_field_result_replace +# If set, one or more regex patterns for replacing variable +# text in the error message. Syntax as --replace-regex +# +# $slave_sql_mode +# If set, change the slave sql mode during this macro, reverting +# to the previous on exit. Default sql_mode is NO_BACKSLASH_ESCAPES +# to allow replace '\' by '/' making paths OS independent. Example: +# +# --let $slave_sql_mode= NO_BACKSLASH_ESCAPES +# +# $all_slaves_status +# If set, use SHOW ALL SLAVES STATUS instead of SHOW SLAVE STATUS +# and get the column values from all rows. Example: +# +# --let $all_slaves_status= 1 +# +# $slave_name +# If set, use SHOW SLAVE '<slave_name>' STATUS instead of SHOW SLAVE STATUS. +# The name must be quoted (can be a quoted empty string). +# Example: +# +# --let $slave_name= 'm1' +# +# Note: $all_slaves_status and $slave_name are mutually exclusive. +# + +--let $_show_slave_status_items=$status_items +if (!$status_items) +{ + --die Bug in test case: The mysqltest variable $status_items is not set. +} + +--let $_show_query=SHOW SLAVE STATUS + +if ($all_slaves_status) +{ + if ($slave_name) + { + --die Bug in test case: Both $all_slaves_status and $slave_name are set. + } + --let $_show_query=SHOW ALL SLAVES STATUS +} +if ($slave_name) +{ + --let $_show_query=SHOW SLAVE $slave_name STATUS + if ($for_channel) + { + --let $_show_query=SHOW SLAVE STATUS for channel $slave_name + } +} + + +--let $_slave_sql_mode= NO_BACKSLASH_ESCAPES +if ($slave_sql_mode) +{ + --let $_slave_sql_mode= $slave_sql_mode +} +--let $_previous_slave_sql_mode = `SELECT @@sql_mode` +--disable_query_log +eval SET sql_mode= '$_slave_sql_mode'; +--enable_query_log + +--let $_slave_field_result_replace= /[\\\\]/\// $slave_field_result_replace + +while ($_show_slave_status_items) +{ + --let $_show_slave_status_name= `SELECT SUBSTRING_INDEX('$_show_slave_status_items', ',', 1)` + --let $_show_slave_status_items= `SELECT LTRIM(SUBSTRING('$_show_slave_status_items', LENGTH('$_show_slave_status_name') + 2))` + + --let $num= 1 + --let $_show_slave_status_value= + while ($_show_slave_status_value != 'No such row') + { + --replace_regex /\.[\\\/]master/master/ + --let $_show_slave_status_value= query_get_value($_show_query, $_show_slave_status_name, $num) + if ($_show_slave_status_value != 'No such row') + { + --replace_regex $_slave_field_result_replace + --let $_show_slave_status_value= `SELECT REPLACE("$_show_slave_status_value", '$MYSQL_TEST_DIR', 'MYSQL_TEST_DIR')` + --echo $_show_slave_status_name = '$_show_slave_status_value' + --inc $num + } + } +} + + +--disable_query_log +eval SET sql_mode= '$_previous_slave_sql_mode'; +--enable_query_log diff --git a/mysql-test/include/shutdown_mysqld.inc b/mysql-test/include/shutdown_mysqld.inc new file mode 100644 index 00000000..fc297256 --- /dev/null +++ b/mysql-test/include/shutdown_mysqld.inc @@ -0,0 +1,52 @@ +# ==== Usage ==== +# +# [--let $shutdown_timeout= 60] +# [--let $allow_rpl_inited= 1] +# --source include/shutdown_mysqld.inc + +# The default value is empty +--let $server_shutdown_timeout= + +if ($shutdown_timeout) +{ + --let $server_shutdown_timeout= $shutdown_timeout +} + +# This is the first half of include/restart_mysqld.inc. +if ($rpl_inited) +{ + if (!$allow_rpl_inited) + { + --die ERROR IN TEST: When using the replication test framework (master-slave.inc, rpl_init.inc etc), use rpl_restart_server.inc instead of restart_mysqld.inc. If you know what you are doing and you really have to use restart_mysqld.inc, set allow_rpl_inited=1 before you source restart_mysqld.inc + } +} + +# Write file to make mysql-test-run.pl expect the "crash", but don't start it +--let $_expect_file_name= `select regexp_replace(@@tmpdir, '^.*/','')` +--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/$_expect_file_name.expect +--exec echo "wait" > $_expect_file_name + +# Avoid warnings from connection threads that does not have time to exit +--disable_query_log +set @@global.log_warnings=0; +--enable_query_log + +--let $server_shutdown_timeout= 60 +if ($VALGRIND_TEST) +{ + --let $server_shutdown_timeout= 300 +} + +if ($shutdown_timeout) +{ + --let $server_shutdown_timeout= $shutdown_timeout +} +if ($shutdown_timeout == 0) +{ + --let $server_shutdown_timeout= 0 +} + +# Send shutdown to the connected server +--shutdown_server $server_shutdown_timeout +--source include/wait_until_disconnected.inc + diff --git a/mysql-test/include/sp-vars.inc b/mysql-test/include/sp-vars.inc new file mode 100644 index 00000000..c241af2f --- /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/sql_mode_pad_char_to_full_length.inc b/mysql-test/include/sql_mode_pad_char_to_full_length.inc new file mode 100644 index 00000000..df03c4db --- /dev/null +++ b/mysql-test/include/sql_mode_pad_char_to_full_length.inc @@ -0,0 +1,31 @@ +--echo # +--echo # MDEV-28190 sql_mode makes MDEV-371 virtual column expressions nondeterministic +--echo # + +CREATE TABLE t1 (a INT,b CHAR(20)); +SHOW CREATE TABLE t1; +CREATE UNIQUE INDEX bi USING HASH ON t1 (b); +INSERT INTO t1 VALUES (0,0); +SET sql_mode='pad_char_to_full_length'; +DELETE FROM t1; +DROP TABLE t1; + + +SET sql_mode=''; +CREATE TABLE t1 (a INT,b CHAR(20)); +SHOW CREATE TABLE t1; +CREATE UNIQUE INDEX bi USING HASH ON t1 (b); +SET sql_mode='pad_char_to_full_length'; +INSERT INTO t1 VALUES (0,0); +DELETE FROM t1; +DROP TABLE t1; + + +SET sql_mode=''; +CREATE OR REPLACE TABLE t1 (a CHAR(20),b CHAR(20)); +SHOW CREATE TABLE t1; +CREATE UNIQUE INDEX bi USING HASH ON t1 (b); +INSERT INTO t1 VALUES (0,0); +SET sql_mode='pad_char_to_full_length'; +DELETE FROM t1; +DROP TABLE t1; diff --git a/mysql-test/include/start_mysqld.inc b/mysql-test/include/start_mysqld.inc new file mode 100644 index 00000000..6e448cb2 --- /dev/null +++ b/mysql-test/include/start_mysqld.inc @@ -0,0 +1,51 @@ +# Include this script only after using shutdown_mysqld.inc +# where $_expect_file_name was initialized. +# Write file to make mysql-test-run.pl start up the server again + +# restart_noprint defines how much is printed to the .result file +# if 0 (default) then '# result' and restart_parameters are printed +# if 1 then print #result but not the content of restart_parameters +# if 2 then nothing is printed + +if (!$restart_noprint) +{ + --let $restart_noprint=0 +} + +--let $restart_cmd= restart + +if ($restart_bindir) +{ + --let $restart_cmd= restart_bindir $restart_bindir +} + +if ($restart_parameters) +{ + --exec echo "$restart_cmd: $restart_parameters" > $_expect_file_name + if (!$restart_noprint) + { + --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR $MYSQLTEST_VARDIR MYSQLTEST_VARDIR + --exec echo "# $restart_cmd: $restart_parameters" + } + if ($restart_noprint == 1) + { + --exec echo "# $restart_cmd: with restart_parameters" + } +} +if (!$restart_parameters) +{ + --exec echo "$restart_cmd" > $_expect_file_name + if ($restart_noprint < 2) + { + --exec echo "# $restart_cmd" + } +} + +# Turn on reconnect +--enable_reconnect + +# Call script that will poll the server waiting for it to be back online again +--source include/wait_until_connected_again.inc + +# Turn off reconnect again +--disable_reconnect diff --git a/mysql-test/include/start_slave.inc b/mysql-test/include/start_slave.inc new file mode 100644 index 00000000..d0197803 --- /dev/null +++ b/mysql-test/include/start_slave.inc @@ -0,0 +1,39 @@ +# ==== Purpose ==== +# +# Issues START SLAVE on the current connection. Then waits until both +# the IO and SQL threads have started, or until a timeout is reached. +# +# Please use this instead of 'START SLAVE', to reduce the risk of test +# case bugs. +# +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/start_slave.inc +# +# Parameters: +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= start_slave.inc +--source include/begin_include_file.inc + + +if (!$rpl_debug) +{ + --disable_query_log +} + + +START SLAVE; +source include/wait_for_slave_to_start.inc; + + +--let $include_filename= start_slave.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/stop_dump_threads.inc b/mysql-test/include/stop_dump_threads.inc new file mode 100644 index 00000000..ae33c963 --- /dev/null +++ b/mysql-test/include/stop_dump_threads.inc @@ -0,0 +1,32 @@ +# ==== Purpose ==== +# +# Stop all dump threads on the server of the current connection. +# +# ==== Usage ==== +# +# --source include/stop_dump_threads.inc + +--let $include_filename= stop_dump_threads.inc +--source include/begin_include_file.inc + + +--let $_sdt_show_rpl_debug_info_old= $show_rpl_debug_info +--let $show_rpl_debug_info= 1 +--disable_query_log +--disable_result_log + +--let $_sdt_dump_thread_id= `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND = 'Binlog dump'` + +while ($_sdt_dump_thread_id != '') +{ + eval KILL $_sdt_dump_thread_id; + --let $wait_condition= SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = $_sdt_dump_thread_id + --source include/wait_condition.inc + + --let $_sdt_dump_thread_id= `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND = 'Binlog dump'` +} + +--let $show_rpl_debug_info= $_sdt_show_rpl_debug_info_old + +--let $include_filename= stop_dump_threads.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/stop_slave.inc b/mysql-test/include/stop_slave.inc new file mode 100644 index 00000000..64cc0d5b --- /dev/null +++ b/mysql-test/include/stop_slave.inc @@ -0,0 +1,88 @@ +# ==== Purpose ==== +# +# Issues STOP SLAVE on the current connection. Then waits until both +# the IO and SQL threads have stopped, or until a timeout is reached. +# +# Please use this instead of 'STOP SLAVE', to reduce the risk of races +# in test cases. +# +# This will fail if the slave IO or SQL thread has an error. If you +# expect an error in the IO thread, use +# include/wait_for_slave_io_error.inc and include/stop_slave_sql.inc. +# +# +# ==== Usage ==== +# +# [--let $rpl_only_running_threads= 1] +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/stop_slave.inc +# +# Parameters: +# $rpl_only_running_threads +# By default, this script executes STOP SLAVE unconditionally. +# This generates a warnings if one or both slave threads are +# already stopped. If $rpl_only_running_threads is set, this +# script checks which slave threads are running, and issues either +# STOP SLAVE, STOP SLAVE SQL_THREAD, STOP SLAVE IO_THREAD, or +# nothing. +# +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= stop_slave.inc +--source include/begin_include_file.inc + + +if (!$rpl_debug) +{ + --disable_query_log +} + + +if ($rpl_only_running_threads) +{ + --let $_slave_sql_running= query_get_value(SHOW SLAVE STATUS, Slave_SQL_Running, 1) + --let $_slave_io_running= query_get_value(SHOW SLAVE STATUS, Slave_IO_Running, 1) + if ($rpl_debug) + { + --echo Stop SQL: $_slave_sql_running; Stop IO: $_slave_io_running + } + + --let $_slave_running_bits= `SELECT IF('$_slave_io_running' = 'Yes', 1, 0) + IF('$_slave_sql_running' = 'Yes', 2, 0)` + if ($_slave_running_bits) + { + --dec $_slave_running_bits + # $_slave_running_bits=1: io thread running + if (!$_slave_running_bits) + { + --source include/stop_slave_io.inc + } + --dec $_slave_running_bits + # $_slave_running_bits=2: sql thread running + if (!$_slave_running_bits) + { + --source include/stop_slave_sql.inc + } + --dec $_slave_running_bits + # $_slave_running_bits=2: both threads running + if (!$_slave_running_bits) + { + STOP SLAVE; + --source include/wait_for_slave_to_stop.inc + } + } +} +if (!$rpl_only_running_threads) +{ + STOP SLAVE; + --source include/wait_for_slave_to_stop.inc +} + + +--let $include_filename= stop_slave.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/stop_slave_io.inc b/mysql-test/include/stop_slave_io.inc new file mode 100644 index 00000000..ddc83782 --- /dev/null +++ b/mysql-test/include/stop_slave_io.inc @@ -0,0 +1,43 @@ +# ==== Purpose ==== +# +# Issues STOP SLAVE IO_THREAD on the current connection. Then waits +# until the IO thread has stopped, or until a timeout is reached. +# +# This will fail if the slave IO thread has an error. If you expect an +# error in the IO thread, use include/wait_for_slave_io_error.inc +# instead. +# +# Please use this instead of 'STOP SLAVE IO_THREAD', to reduce the +# risk of races in test cases. +# +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/stop_slave_io.inc +# +# Parameters: +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= stop_slave_io.inc +--source include/begin_include_file.inc + + +if (!$rpl_debug) +{ + --disable_query_log +} + + +STOP SLAVE IO_THREAD; +--source include/wait_for_slave_io_to_stop.inc + + +--let $include_filename= stop_slave_io.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/stop_slave_sql.inc b/mysql-test/include/stop_slave_sql.inc new file mode 100644 index 00000000..f5075b32 --- /dev/null +++ b/mysql-test/include/stop_slave_sql.inc @@ -0,0 +1,41 @@ +# ==== Purpose ==== +# +# Issues STOP SLAVE SQL_THREAD on the current connection. Then waits +# until the SQL thread has stopped, or until a timeout is reached. +# +# Please use this instead of 'STOP SLAVE SQL_THREAD', to reduce the +# risk of races in test cases. +# +# This will fail if the SQL thread has an error. +# +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/stop_slave_sql.inc +# +# Parameters: +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= stop_slave_sql.inc +--source include/begin_include_file.inc + + +if (!$rpl_debug) +{ + --disable_query_log +} + + +STOP SLAVE SQL_THREAD; +--source include/wait_for_slave_sql_to_stop.inc + + +--let $include_filename= stop_slave_sql.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/strict_autoinc.inc b/mysql-test/include/strict_autoinc.inc new file mode 100644 index 00000000..3298008b --- /dev/null +++ b/mysql-test/include/strict_autoinc.inc @@ -0,0 +1,33 @@ +# +# 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 167 +insert into t1 values(null); +select count(*) from t1; + +set @@sql_mode=@org_mode; +--error 167 +insert into t1 values(null); +select * from t1; + +drop table t1; + +# End of test diff --git a/mysql-test/include/subselect_mat_cost.inc b/mysql-test/include/subselect_mat_cost.inc new file mode 100644 index 00000000..04b116e9 --- /dev/null +++ b/mysql-test/include/subselect_mat_cost.inc @@ -0,0 +1,152 @@ +-- echo +-- echo /* A. Subqueries in the SELECT clause. */ +explain +select a1, a1 in (select b1 from t2 where b1 > '0') from t1; +select a1, a1 in (select b1 from t2 where b1 > '0') from t1; +-- echo +explain +select a1, a2, (a1, a2) in (select b1, b2 from t2 where b1 > '0') from t1; +select a1, a2, (a1, a2) in (select b1, b2 from t2 where b1 > '0') from t1; +-- echo +explain +select a1, a2, (a1, a2) in (select b1, b2 from t2 where b1 > '0' and b1 < '9') from t1; +select a1, a2, (a1, a2) in (select b1, b2 from t2 where b1 > '0' and b1 < '9') from t1; + +-- echo +-- echo /* +-- echo B. "Natural" examples of subqueries without grouping that +-- echo cannot be flattened into semijoin. +-- echo */ + +explain +select a1 from t1 where a1 in (select b2 from t2) or a2 < '9'; +select a1 from t1 where a1 in (select b2 from t2) or a2 < '9'; +-- echo +explain +select a1, a2 from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0') or a2 < '9'; +select a1, a2 from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0') or a2 < '9'; +-- echo UNION subqueries are currently limited to only use IN-TO-EXISTS. +explain +select a2 from t1 where a2 in (select b2 from t2 UNION select b3 from t2 as t3); +select a2 from t1 where a2 in (select b2 from t2 UNION select b3 from t2 as t3); +-- echo +explain +select a1 from t1 where a1 = '1 - 02' and a1 in (select max(b1) from t2 where b2 = '2 - 02'); +select a1 from t1 where a1 = '1 - 02' and a1 in (select max(b1) from t2 where b2 = '2 - 02'); +-- echo +explain +select a1, a2 from t1 where (a1, a2) in (select b1, b2 from t2 order by b3); +select a1, a2 from t1 where (a1, a2) in (select b1, b2 from t2 order by b3); + +-- echo +-- echo /* C. Subqueries in the WHERE clause with GROUP BY. */ +explain +select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1); +select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1); +-- echo +explain +select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2); +select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2); +-- echo +explain +select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2 having b2 < '2 - 04'); +select * from t1 where (a1, a2) in (select b1, b2 from t2 where b1 > '0' group by b1, b2 having b2 < '2 - 04'); +-- echo +explain +select * from t1 where (a1, a2, a3) in (select b1, b2, b3 from t2 group by b1, b2, b3); +select * from t1 where (a1, a2, a3) in (select b1, b2, b3 from t2 group by b1, b2, b3); +-- echo +explain +select * from t1 where (a1, a2, a3) in (select b1, b2, b3 from t2 where b3 = '3 - 02' group by b1, b2); +select * from t1 where (a1, a2, a3) in (select b1, b2, b3 from t2 where b3 = '3 - 02' group by b1, b2); +-- echo +explain +select * from t1 where (a1,a2,a3) in (select b1,b2,b3 from t2 where b1 = '1 - 01' group by b1,b2,b3); +select * from t1 where (a1,a2,a3) in (select b1,b2,b3 from t2 where b1 = '1 - 01' group by b1,b2,b3); + +-- echo +-- echo /* +-- echo D. Subqueries for which materialization is not possible, and the +-- echo optimizer reverts to in-to-exists. +-- echo */ +# The first two cases are rejected during the prepare phase by the procedure +# subquery_types_allow_materialization(). +explain +select left(a1,7), left(a2,7) from t1_1024 where a1 in (select b1 from t2_1024 where b1 > '0') or a2 < '9'; +select left(a1,7), left(a2,7) from t1_1024 where a1 in (select b1 from t2_1024 where b1 > '0') or a2 < '9'; +explain +select left(a1,7), left(a2,7) from t1_1024 where (a1,a2) in (select b1, b2 from t2_1024 where b1 > '0') or a2 < '9'; +select left(a1,7), left(a2,7) from t1_1024 where (a1,a2) in (select b1, b2 from t2_1024 where b1 > '0') or a2 < '9'; +-- echo +# The following two subqueries return the result of a string function with a +# blob argument, where the return type may be != blob. These are rejected during +# cost-based optimization when attempting to create a temporary table. +explain +select left(a1,7), left(a2,7) from t1_1024 where a1 in (select substring(b1,1,1024) from t2_1024 where b1 > '0') or a2 < '9'; +select left(a1,7), left(a2,7) from t1_1024 where a1 in (select substring(b1,1,1024) from t2_1024 where b1 > '0') or a2 < '9'; +explain +select left(a1,7), left(a2,7) from t1_1024 where (a1,a2) in (select substring(b1,1,1024), substring(b2,1,1024) from t2_1024 where b1 > '0') or a2 < '9'; +select left(a1,7), left(a2,7) from t1_1024 where (a1,a2) in (select substring(b1,1,1024), substring(b2,1,1024) from t2_1024 where b1 > '0') or a2 < '9'; +-- echo + + +-- echo +-- echo /* E. Edge cases. */ +-- echo + +-- echo /* E.1 Both materialization and in_to_exists cannot be off. */ +set @save_optimizer_switch=@@optimizer_switch; +set @@optimizer_switch = 'materialization=off,in_to_exists=off'; +--error ER_ILLEGAL_SUBQUERY_OPTIMIZER_SWITCHES +select * from t1 where a1 in (select b1 from t2 where b1 > '0' group by b1); +set @@optimizer_switch = @save_optimizer_switch; + +-- echo /* E.2 Outer query without tables, always uses IN-TO-EXISTS. */ +explain +select '1 - 03' in (select b1 from t2 where b1 > '0'); +select '1 - 03' in (select b1 from t2 where b1 > '0'); + +-- echo /* E.3 Subqueries without tables. */ +explain +select a1 from t1 where a1 in (select '1 - 03') or a2 < '9'; +select a1 from t1 where a1 in (select '1 - 03') or a2 < '9'; +-- echo UNION subqueries are currently limited to only use IN-TO-EXISTS. +explain +select a1 from t1 where a1 in (select '1 - 03' UNION select '1 - 02'); +select a1 from t1 where a1 in (select '1 - 03' UNION select '1 - 02'); + +-- echo /* E.4 optimize_cond detects FALSE where/having clause. */ +explain +select a1 from t1 where a1 in (select b1 from t2 where b1 = b2 and b2 = '1 - 03' and b1 = '1 - 02' ) or a2 < '9'; +select a1 from t1 where a1 in (select b1 from t2 where b1 = b2 and b2 = '1 - 03' and b1 = '1 - 02' ) or a2 < '9'; + +-- echo /* E.5 opt_sum_query detects no matching min/max row or substitutes MIN/MAX with a const. */ +-- echo TODO this test produces wrong result due to missing logic to handle the case +-- echo when JOIN::optimize detects an empty subquery result. +explain +select a1 from t1 where a1 in (select max(b1) from t2); +select a1 from t1 where a1 in (select max(b1) from t2); +-- echo +explain +select a1 from t1 where a1 in (select max(b1) from t2 where b1 = '7 - 02'); +select a1 from t1 where a1 in (select max(b1) from t2 where b1 = '7 - 02'); + +-- echo /* E.6 make_join_select detects impossible WHERE. * + +-- echo TODO + +-- echo /* E.7 constant optimization detects "no matching row in const table". */ + +-- echo TODO + +-- echo /* E.8 Impossible WHERE noticed after reading const tables. */ +explain +select '1 - 03' in (select b1 from t2 where b1 > '0' and b1 < '0'); +select '1 - 03' in (select b1 from t2 where b1 > '0' and b1 < '0'); + +-- echo +-- echo /* F. UPDATE/DELETE with subqueries. */ +-- echo + +-- echo TODO +-- echo diff --git a/mysql-test/include/support_long_file_names.inc b/mysql-test/include/support_long_file_names.inc new file mode 100644 index 00000000..1f5b3d7b --- /dev/null +++ b/mysql-test/include/support_long_file_names.inc @@ -0,0 +1,37 @@ +--error 0,3 +--perl +my $n = 254 - length($ENV{MYSQLTEST_VARDIR}); +my $name = $ENV{MYSQLTEST_VARDIR} . '/' . sprintf("%0${n}d", $$); +if (!open(LONG_NAME,">$name")) +{ + # We cannot rely either on a particular error code, or error string + # to check that we indeed hit "File name too long". + # Instead, we will try to create a file with a short name + # the same way, in the same location. If it goes all right, + # we will assume the problem was with the file name length + + open(SHORT_NAME,">$ENV{MYSQLTEST_VARDIR}/$$") || + # Even a shorter name could not be created, something else is wrong + die "Could not create file $ENV{MYSQLTEST_VARDIR}/$$: $!"; + close(SHORT_NAME); + unlink("$ENV{MYSQLTEST_VARDIR}/$$"); + exit(3); +} else { + close(LONG_NAME); + unlink($name); + exit(0); +} +EOF + +# If perl exited with error code 0, the check has passed, +# so the calling test will be executed. +# If perl exited with error code 3, it will be caught by +# --error above, and processed by the check below. +# If perl exited with some other error code, something went wrong, +# so the test will fail. + +if ($errno) +{ + --skip Long file names are not supported +} + diff --git a/mysql-test/include/switch_to_mysql_global_priv.inc b/mysql-test/include/switch_to_mysql_global_priv.inc new file mode 100644 index 00000000..3a93746c --- /dev/null +++ b/mysql-test/include/switch_to_mysql_global_priv.inc @@ -0,0 +1,7 @@ +echo # switching back from mysql.user to mysql.global_priv; +disable_query_log; +drop table mysql.user; +rename table mysql.user_bak to mysql.user; +rename table mysql.global_priv_bak to mysql.global_priv; +flush privileges; +enable_query_log; diff --git a/mysql-test/include/switch_to_mysql_user.inc b/mysql-test/include/switch_to_mysql_user.inc new file mode 100644 index 00000000..7e5e4603 --- /dev/null +++ b/mysql-test/include/switch_to_mysql_user.inc @@ -0,0 +1,57 @@ +echo # switching from mysql.global_priv to mysql.user; +disable_query_log; +rename table mysql.user to mysql.user_bak; +CREATE TABLE mysql.user ( + Host char(60) binary DEFAULT '' NOT NULL, + User char(80) binary DEFAULT '' NOT NULL, + Password char(41) character set latin1 collate latin1_bin 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, + Create_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + Show_view_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + Create_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + Alter_routine_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + Create_user_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + Event_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + Trigger_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + Create_tablespace_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + Delete_history_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, + max_user_connections int(11) DEFAULT 0 NOT NULL, + plugin char(64) CHARACTER SET latin1 DEFAULT '' NOT NULL, + authentication_string TEXT NOT NULL, + password_expired ENUM('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + is_role enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL, + default_role char(80) binary DEFAULT '' NOT NULL, + max_statement_time decimal(12,6) DEFAULT 0 NOT NULL, + PRIMARY KEY (Host,User) +) engine=Aria transactional=1 CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; +insert mysql.user select * from mysql.user_bak; +rename table mysql.global_priv to mysql.global_priv_bak; +flush privileges; +enable_query_log; diff --git a/mysql-test/include/sync_io_with_master.inc b/mysql-test/include/sync_io_with_master.inc new file mode 100644 index 00000000..34906c41 --- /dev/null +++ b/mysql-test/include/sync_io_with_master.inc @@ -0,0 +1,46 @@ +# ==== Purpose ==== +# +# Waits until the slave IO thread on the current connection has been +# synced up to the point saved by the last call to +# include/save_master_pos.inc (i.e., until the IO thead has copied up +# to the saved position). Does not wait for the SQL thread. +# +# +# ==== Usage ==== +# +# On master: +# --source include/save_master_pos.inc +# +# On slave: +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/sync_slave_io_with_master.inc +# +# Parameters: +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= sync_io_with_master.inc +--source include/begin_include_file.inc + + +--let $_old_slave_error_param= $slave_error_param +--let $slave_error_param= Last_IO_Errno + +--let $slave_param= Master_Log_File +--let $slave_param_value= $_master_file +source include/wait_for_slave_param.inc; + +let $slave_param= Read_Master_Log_Pos; +let $slave_param_value= $_master_pos; +source include/wait_for_slave_param.inc; + +--let $slave_error_param= $_old_slave_error_param + + +--let $include_filename= sync_io_with_master.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/sync_slave_io_with_master.inc b/mysql-test/include/sync_slave_io_with_master.inc new file mode 100644 index 00000000..d0fcef90 --- /dev/null +++ b/mysql-test/include/sync_slave_io_with_master.inc @@ -0,0 +1,50 @@ +# ==== Purpose ==== +# +# Waits until the slave IO thread has been synced, i.e., all events +# have been copied over to slave. Does not care if the SQL thread is +# in sync (or even running). +# +# +# ==== Usage ==== +# +# [--let $sync_slave_connection= <connection_name>] +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/sync_slave_io_with_master.inc +# +# Syncs slave to the current position on master, as found by SHOW +# MASTER STATUS. +# +# Must be called on the master. Will change connection to the slave. +# +# Parameters: +# $sync_slave_connection +# By default, this script switches connection to 'slave'. If +# $sync_slave_connection is set, then '$sync_slave_connection' is +# used instead of 'slave'. +# +# $slave_timeout +# See include/wait_for_slave_param.inc. +# +# $rpl_debug +# See include/rpl_init.inc + +--let $include_filename= sync_slave_io_with_master.inc +--source include/begin_include_file.inc + + +--source include/save_master_pos.inc + +--let $rpl_connection_name= slave +if ($sync_slave_connection) +{ + --let $rpl_connection_name= $sync_slave_connection +} +--source include/rpl_connection.inc + +--source include/sync_io_with_master.inc + + +--let $include_filename= sync_slave_io_with_master.inc +--let $skip_restore_connection= 1 +--source include/end_include_file.inc diff --git a/mysql-test/include/sync_slave_sql_with_io.inc b/mysql-test/include/sync_slave_sql_with_io.inc new file mode 100644 index 00000000..9efede9a --- /dev/null +++ b/mysql-test/include/sync_slave_sql_with_io.inc @@ -0,0 +1,54 @@ +# ==== Purpose ==== +# +# Sync the slave SQL thread with the IO thread. +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/sync_slave_sql_with_io.inc +# +# Parameters: +# $slave_timeout +# By default, the synchronization timeouts after 300 seconds. If +# $slave_timeout is set, the synchronization timeouts after +# $slave_timeout seconds. +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= sync_slave_sql_with_io.inc +--source include/begin_include_file.inc + + +let $_slave_timeout= $slave_timeout; +if (!$_slave_timeout) +{ + let $_slave_timeout= 300; + if ($VALGRIND_TEST) + { + let $_slave_timeout= 1500; + } +} + +--let $_master_log_file= query_get_value(SHOW SLAVE STATUS, Master_Log_File, 1) +--let $_master_log_pos= query_get_value(SHOW SLAVE STATUS, Read_Master_Log_Pos, 1) + +if ($rpl_debug) +{ + --echo Master_Log_File='$_master_log_file' Read_Master_Log_Pos='$_master_log_pos' \$slave_timeout='$_slave_timeout' +} + +--let $_sync_slave_sql_with_io_errno= `SELECT MASTER_POS_WAIT('$_master_log_file', $_master_log_pos, $_slave_timeout)` +if (`SELECT IFNULL($_sync_slave_sql_with_io_errno, -1) < 0`) +{ + --echo #### Failed to sync slave SQL thread with slave IO thread. #### + --echo MASTER_POS_WAIT('$_master_log_file', $_master_log_pos, $_slave_timeout) returned $_sync_slave_sql_with_io_errno + --source include/show_rpl_debug_info.inc + --die Failed to sync slave SQL thread with slave IO thread. +} + + +--let $include_filename= sync_slave_sql_with_io.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/sync_slave_sql_with_master.inc b/mysql-test/include/sync_slave_sql_with_master.inc new file mode 100644 index 00000000..609c7f1b --- /dev/null +++ b/mysql-test/include/sync_slave_sql_with_master.inc @@ -0,0 +1,53 @@ +# ==== Purpose ==== +# +# Waits until the slave SQL thread has been synced, i.e., all events +# have been copied over to slave. This is like mtr's built-in command +# sync_slave_with_master, but more flexible (e.g., you can set a +# custom timeout and you can force it to use GTIDs instead of filename +# and offset). +# +# +# ==== Usage ==== +# +# [--let $sync_slave_connection= <connection_name>] +# [--let $use_gtids= 1] +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/sync_slave_io_with_master.inc +# +# Must be called on the master. Will change connection to the slave. +# +# Parameters: +# +# $use_gtids +# If set, uses GTIDs instead of filename and offset for positions. +# +# $sync_slave_connection +# By default, this script switches connection to 'slave'. If +# $sync_slave_connection is set, then '$sync_slave_connection' is +# used instead of 'slave'. +# +# $slave_timeout +# See include/wait_for_slave_param.inc. +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= sync_slave_sql_with_master.inc +--source include/begin_include_file.inc + +save_master_pos; + +--let $rpl_connection_name= slave +if ($sync_slave_connection) +{ + --let $rpl_connection_name= $sync_slave_connection +} +--source include/rpl_connection.inc + +sync_with_master; + +--let $include_filename= sync_slave_sql_with_master.inc +--let $skip_restore_connection= 1 +--source include/end_include_file.inc diff --git a/mysql-test/include/sync_with_master.inc b/mysql-test/include/sync_with_master.inc new file mode 100644 index 00000000..dcb995a3 --- /dev/null +++ b/mysql-test/include/sync_with_master.inc @@ -0,0 +1,26 @@ +# ==== Purpose ==== +# +# This file does the same as the built-in command sync_with_master, +# but can be configured to use a custom timeout. This has the benefit +# that it accepts the same $slave_timeout and $master_connection +# parameters as wait_for_slave_param.inc +# +# +# ==== Usage ==== +# +# --connection master +# --source include/save_master_pos.inc +# --connection slave +# --source include/sync_with_master.inc +# +# Parameters to this macro are $slave_timeout and +# $master_connection. See wait_for_slave_param.inc for +# descriptions. + +--let $slave_param= Relay_Master_Log_File +--let $slave_param_value= $_master_file +--source include/wait_for_slave_param.inc + +--let $slave_param= Exec_Master_Log_Pos +--let $slave_param_value= $_master_pos +--source include/wait_for_slave_param.inc diff --git a/mysql-test/include/sync_with_master_gtid.inc b/mysql-test/include/sync_with_master_gtid.inc new file mode 100644 index 00000000..777711b9 --- /dev/null +++ b/mysql-test/include/sync_with_master_gtid.inc @@ -0,0 +1,52 @@ +# ==== Purpose ==== +# +# Wait until the slave has reached a certain GTID position. +# Similar to --sync_with_master, but using GTID instead of old-style +# binlog file/offset coordinates. +# +# +# ==== Usage ==== +# +# --let $master_pos= `SELECT @@GLOBAL.gtid_binlog_pos` +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/sync_with_master_gtid.inc +# +# Syncs slave to the specified GTID position. +# +# Must be called on the slave. +# +# Parameters: +# $master_pos +# The GTID position to sync to. Typically obtained from +# @@GLOBAL.gtid_binlog_pos on the master. +# +# $slave_timeout +# Timeout in seconds. The default is 2 minutes. +# +# $rpl_debug +# See include/rpl_init.inc + +--let $include_filename= sync_with_master_gtid.inc +--source include/begin_include_file.inc + +let $_slave_timeout= $slave_timeout; +if (!$_slave_timeout) +{ + let $_slave_timeout= 120; + if ($VALGRIND_TEST) + { + let $_slave_timeout= 1200; + } +} + +--let $_result= `SELECT master_gtid_wait('$master_pos', $_slave_timeout)` +if ($_result == -1) +{ + --let $_current_gtid_pos= `SELECT @@GLOBAL.gtid_slave_pos` + --echo Timeout in master_gtid_wait('$master_pos', $_slave_timeout), current slave GTID position is: $_current_gtid_pos. + --die Failed to sync with master +} + +--let $include_filename= sync_with_master_gtid.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/system_db_struct.inc b/mysql-test/include/system_db_struct.inc new file mode 100644 index 00000000..d043d209 --- /dev/null +++ b/mysql-test/include/system_db_struct.inc @@ -0,0 +1,21 @@ +# +# This test must examine structure of current system database +# + +-- replace_result Tables_in_mysql Tables_in_db Tables_in_test Tables_in_db +show tables; +show create table db; +show create table user; +show create table func; +show create table global_priv; +show create table tables_priv; +show create table columns_priv; +show create table procs_priv; +show create table servers; +show create table proc; +show create table event; +show create table general_log; +show create table slow_log; +show create table table_stats; +show create table column_stats; +show create table index_stats; diff --git a/mysql-test/include/test_fieldsize.inc b/mysql-test/include/test_fieldsize.inc new file mode 100644 index 00000000..1ce846ee --- /dev/null +++ b/mysql-test/include/test_fieldsize.inc @@ -0,0 +1,40 @@ +# +# include/test_fieldsize.inc +# +# This include file is designed to create a table with one column +# whose size on the master is greater than that on the slave. The +# test should fail with an error on the slave. +# + +connection master; +DROP TABLE IF EXISTS t1; + +sync_slave_with_master; +STOP SLAVE; +--let $master_use_gtid_option= No +--source include/reset_slave.inc +eval $test_table_slave; + +connection master; +eval $test_table_master; +RESET MASTER; + +eval $test_insert; + +connection slave; +START SLAVE; +--let $slave_sql_errno= 1677 +--let $show_slave_sql_error= 1 +--source include/wait_for_slave_sql_error.inc + +# The following should be 0 +SELECT COUNT(*) FROM t1; +STOP SLAVE; +--source include/reset_slave.inc + +connection master; +RESET MASTER; + +connection slave; +START SLAVE; + diff --git a/mysql-test/include/test_outfile.inc b/mysql-test/include/test_outfile.inc new file mode 100644 index 00000000..e50847b6 --- /dev/null +++ b/mysql-test/include/test_outfile.inc @@ -0,0 +1,3 @@ +--disable_ps2_protocol +eval select "Outfile OK" into outfile "$MYSQLTEST_VARDIR/tmp/outfile.test"; +--enable_ps2_protocol diff --git a/mysql-test/include/testdb_only.inc b/mysql-test/include/testdb_only.inc new file mode 100644 index 00000000..528e2f3e --- /dev/null +++ b/mysql-test/include/testdb_only.inc @@ -0,0 +1,24 @@ +#################### 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. # +# # +################################################################### + +if ($USE_RUNNING_SERVER){ + skip Not with extern server; +} diff --git a/mysql-test/include/tpcb.inc b/mysql-test/include/tpcb.inc new file mode 100644 index 00000000..84a5c98f --- /dev/null +++ b/mysql-test/include/tpcb.inc @@ -0,0 +1,155 @@ +################################################## +# Author: Jeb +# Date: 2007/04 +# Purpose: To create a tpcb database, tables and +# stored procedures to load the database +# and run transactions against the DB +################################################## +--disable_warnings +DROP DATABASE IF EXISTS tpcb; +--enable_warnings +CREATE DATABASE tpcb; + +--echo +CREATE TABLE tpcb.account (id INT, bid INT, balance DECIMAL(10,2), + filler CHAR(255), PRIMARY KEY(id)); +--echo +CREATE TABLE tpcb.branch (bid INT, balance DECIMAL(10,2), filler VARCHAR(255), + PRIMARY KEY(bid)); +--echo +CREATE TABLE tpcb.teller (tid INT, balance DECIMAL(10,2), filler VARCHAR(255), + PRIMARY KEY(tid)); +--echo +CREATE TABLE tpcb.history (id MEDIUMINT NOT NULL AUTO_INCREMENT,aid INT, + tid INT, bid INT, amount DECIMAL(10,2), + tdate DATETIME, teller CHAR(20), uuidf LONGBLOB, + filler CHAR(80),PRIMARY KEY (id)); + +--echo +--echo --- Create stored procedures & functions --- +--echo + +--disable_query_log +delimiter |; +CREATE PROCEDURE tpcb.load() +BEGIN + DECLARE acct INT DEFAULT 100; + DECLARE brch INT DEFAULT 10; + DECLARE tell INT DEFAULT 100; + DECLARE tmp INT DEFAULT 10; + WHILE brch > 0 DO + SET tmp = 100; + WHILE tmp > 0 DO + INSERT INTO tpcb.account VALUES (acct, brch, 0.0, "FRESH ACCOUNT"); + SET acct = acct - 1; + SET tmp = tmp -1; + END WHILE; + INSERT INTO tpcb.branch VALUES (brch, 0.0, "FRESH BRANCH"); + SET brch = brch - 1; + END WHILE; + WHILE tell > 0 DO + INSERT INTO tpcb.teller VALUES (tell, 0.0, "FRESH TELLER"); + SET tell = tell - 1; + END WHILE; +END| + +CREATE FUNCTION tpcb.account_id () RETURNS INT +BEGIN + DECLARE num INT; + DECLARE ran INT; + SELECT RAND() * 10 INTO ran; + IF (ran < 5) + THEN + SELECT RAND() * 10 INTO num; + ELSE + SELECT RAND() * 100 INTO num; + END IF; + IF (num < 1) + THEN + RETURN 1; + END IF; + RETURN num; +END| + +CREATE FUNCTION tpcb.teller_id () RETURNS INT +BEGIN + DECLARE num INT; + DECLARE ran INT; + SELECT RAND() * 10 INTO ran; + IF (ran < 5) + THEN + SELECT RAND() * 10 INTO num; + ELSE + SELECT RAND() * 100 INTO num; + END IF; + IF (num < 1) + THEN + RETURN 1; + END IF; + RETURN num; +END| + +CREATE PROCEDURE tpcb.trans(in format varchar(3)) +BEGIN + DECLARE acct INT DEFAULT 0; + DECLARE brch INT DEFAULT 0; + DECLARE tell INT DEFAULT 0; + DECLARE bal DECIMAL(10,2) DEFAULT 0.0; + DECLARE amount DECIMAL(10,2) DEFAULT 1.00; + DECLARE test INT DEFAULT 0; + DECLARE bbal DECIMAL(10,2) DEFAULT 0.0; + DECLARE tbal DECIMAL(10,2) DEFAULT 0.0; + DECLARE local_uuid VARCHAR(255); + DECLARE local_user VARCHAR(255); + DECLARE local_time TIMESTAMP; + + SELECT RAND() * 10 INTO test; + SELECT tpcb.account_id() INTO acct; + SELECT tpcb.teller_id() INTO tell; + + SELECT account.balance INTO bal FROM tpcb.account WHERE id = acct; + SELECT account.bid INTO brch FROM tpcb.account WHERE id = acct; + SELECT teller.balance INTO tbal FROM tpcb.teller WHERE tid = tell; + SELECT branch.balance INTO bbal FROM tpcb.branch WHERE bid = brch; + + IF (test < 5) + THEN + SET bal = bal + amount; + SET bbal = bbal + amount; + SET tbal = tbal + amount; + UPDATE tpcb.account SET balance = bal, filler = 'account updated' + WHERE id = acct; + UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated' + WHERE bid = brch; + UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated' + WHERE tid = tell; + ELSE + SET bal = bal - amount; + SET bbal = bbal - amount; + SET tbal = tbal - amount; + UPDATE tpcb.account SET balance = bal, filler = 'account updated' + WHERE id = acct; + UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated' + WHERE bid = brch; + UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated' + WHERE tid = tell; + END IF; + + IF (format = 'SBR') + THEN + SET local_uuid=UUID(); + SET local_user=USER(); + SET local_time= NOW(); + INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, local_time,local_user, + local_uuid,'completed trans'); + ELSE + INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, NOW(), USER(), + UUID(),'completed trans'); + END IF; +END| +delimiter ;| +--enable_query_log +--echo +--echo *** Stored Procedures Created *** +--echo + diff --git a/mysql-test/include/tpcb_disk_data.inc b/mysql-test/include/tpcb_disk_data.inc new file mode 100644 index 00000000..dbdf3766 --- /dev/null +++ b/mysql-test/include/tpcb_disk_data.inc @@ -0,0 +1,166 @@ +################################################## +# Author: Jeb +# Date: 2007/05 +# Purpose: To create a tpcb database using Disk Data, +# tables and stored procedures to load the database +# and run transactions against the DB +################################################## +--disable_warnings +DROP DATABASE IF EXISTS tpcb; +--enable_warnings +CREATE DATABASE tpcb; + +--echo +eval CREATE TABLE tpcb.account + (id INT, bid INT, balance DECIMAL(10,2), + filler CHAR(255), PRIMARY KEY(id)) + TABLESPACE $table_space STORAGE DISK + ENGINE=$engine_type; +--echo +eval CREATE TABLE tpcb.branch + (bid INT, balance DECIMAL(10,2), filler VARCHAR(255), + PRIMARY KEY(bid))TABLESPACE $table_space STORAGE DISK + ENGINE=$engine_type; +--echo +eval CREATE TABLE tpcb.teller + (tid INT, balance DECIMAL(10,2), filler VARCHAR(255), + PRIMARY KEY(tid)) TABLESPACE $table_space STORAGE DISK + ENGINE=$engine_type; + +--echo +eval CREATE TABLE tpcb.history + (id MEDIUMINT NOT NULL AUTO_INCREMENT,aid INT, + tid INT, bid INT, amount DECIMAL(10,2), + tdate DATETIME, teller CHAR(20), uuidf LONGBLOB, + filler CHAR(80),PRIMARY KEY (id)) + TABLESPACE $table_space STORAGE DISK + ENGINE=$engine_type; + +--echo +--echo --- Create stored procedures & functions --- +--echo + +--disable_query_log +delimiter |; +CREATE PROCEDURE tpcb.load() +BEGIN + DECLARE acct INT DEFAULT 100; + DECLARE brch INT DEFAULT 10; + DECLARE tell INT DEFAULT 100; + DECLARE tmp INT DEFAULT 10; + WHILE brch > 0 DO + SET tmp = 100; + WHILE tmp > 0 DO + INSERT INTO tpcb.account VALUES (acct, brch, 0.0, "FRESH ACCOUNT"); + SET acct = acct - 1; + SET tmp = tmp -1; + END WHILE; + INSERT INTO tpcb.branch VALUES (brch, 0.0, "FRESH BRANCH"); + SET brch = brch - 1; + END WHILE; + WHILE tell > 0 DO + INSERT INTO tpcb.teller VALUES (tell, 0.0, "FRESH TELLER"); + SET tell = tell - 1; + END WHILE; +END| + +CREATE FUNCTION tpcb.account_id () RETURNS INT +BEGIN + DECLARE num INT; + DECLARE ran INT; + SELECT RAND() * 10 INTO ran; + IF (ran < 5) + THEN + SELECT RAND() * 10 INTO num; + ELSE + SELECT RAND() * 100 INTO num; + END IF; + IF (num < 1) + THEN + RETURN 1; + END IF; + RETURN num; +END| + +CREATE FUNCTION tpcb.teller_id () RETURNS INT +BEGIN + DECLARE num INT; + DECLARE ran INT; + SELECT RAND() * 10 INTO ran; + IF (ran < 5) + THEN + SELECT RAND() * 10 INTO num; + ELSE + SELECT RAND() * 100 INTO num; + END IF; + IF (num < 1) + THEN + RETURN 1; + END IF; + RETURN num; +END| + +CREATE PROCEDURE tpcb.trans(in format varchar(3)) +BEGIN + DECLARE acct INT DEFAULT 0; + DECLARE brch INT DEFAULT 0; + DECLARE tell INT DEFAULT 0; + DECLARE bal DECIMAL(10,2) DEFAULT 0.0; + DECLARE amount DECIMAL(10,2) DEFAULT 1.00; + DECLARE test INT DEFAULT 0; + DECLARE bbal DECIMAL(10,2) DEFAULT 0.0; + DECLARE tbal DECIMAL(10,2) DEFAULT 0.0; + DECLARE local_uuid VARCHAR(255); + DECLARE local_user VARCHAR(255); + DECLARE local_time TIMESTAMP; + + SELECT RAND() * 10 INTO test; + SELECT tpcb.account_id() INTO acct; + SELECT tpcb.teller_id() INTO tell; + + SELECT account.balance INTO bal FROM tpcb.account WHERE id = acct; + SELECT account.bid INTO brch FROM tpcb.account WHERE id = acct; + SELECT teller.balance INTO tbal FROM tpcb.teller WHERE tid = tell; + SELECT branch.balance INTO bbal FROM tpcb.branch WHERE bid = brch; + + IF (test < 5) + THEN + SET bal = bal + amount; + SET bbal = bbal + amount; + SET tbal = tbal + amount; + UPDATE tpcb.account SET balance = bal, filler = 'account updated' + WHERE id = acct; + UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated' + WHERE bid = brch; + UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated' + WHERE tid = tell; + ELSE + SET bal = bal - amount; + SET bbal = bbal - amount; + SET tbal = tbal - amount; + UPDATE tpcb.account SET balance = bal, filler = 'account updated' + WHERE id = acct; + UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated' + WHERE bid = brch; + UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated' + WHERE tid = tell; + END IF; + + IF (format = 'SBR') + THEN + SET local_uuid=UUID(); + SET local_user=USER(); + SET local_time= NOW(); + INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, local_time,local_user, + local_uuid,'completed trans'); + ELSE + INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, NOW(), USER(), + UUID(),'completed trans'); + END IF; +END| +delimiter ;| +--enable_query_log +--echo +--echo *** Stored Procedures Created *** +--echo + diff --git a/mysql-test/include/true.require b/mysql-test/include/true.require new file mode 100644 index 00000000..09aae1ed --- /dev/null +++ b/mysql-test/include/true.require @@ -0,0 +1,2 @@ +TRUE +1 diff --git a/mysql-test/include/truncate_file.inc b/mysql-test/include/truncate_file.inc new file mode 100644 index 00000000..fe88cb05 --- /dev/null +++ b/mysql-test/include/truncate_file.inc @@ -0,0 +1,11 @@ +# truncate a giving file, all contents of the file are be cleared + +if (!$TRUNCATE_FILE) +{ + die TRUNCATE_FILE is not set; +} + +perl; +open FILE, '>', $ENV{TRUNCATE_FILE} or die "open(>$ENV{TRUNCATE_FILE}): $!"; +close FILE; +EOF diff --git a/mysql-test/include/type_hrtime.inc b/mysql-test/include/type_hrtime.inc new file mode 100644 index 00000000..128e3295 --- /dev/null +++ b/mysql-test/include/type_hrtime.inc @@ -0,0 +1,147 @@ + +--source include/have_innodb.inc + +SET timestamp=UNIX_TIMESTAMP('2001-02-03 10:20:30'); + +--disable_warnings +drop table if exists t1, t2, t3; +--enable_warnings + +--error ER_TOO_BIG_PRECISION +eval create table t1 (a $type(7)); + +eval create table t1 (a $type(3), key(a)); +insert t1 values ('2010-12-11 00:20:03.1234'); +insert t1 values ('2010-12-11 15:47:11.1234'); +insert t1 values (20101211010203.45678); +insert t1 values (20101211030405.789e0); +insert ignore t1 values (99991231235959e1); +select * from t1; +--replace_regex /121000/121094/ /457000/457031/ /789000/789062/ +select cast(a AS double(30,6)) from t1; # Field::val_real() +select a DIV 1 from t1; # Field::val_int() +select group_concat(distinct a) from t1; # Field::cmp() +alter table t1 engine=innodb; +select * from t1 order by a; +select * from t1 order by a+0; +drop table t1; +let attr=; +if ($type == timestamp) +{ + let attr=NOT NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4); +} +eval create table t1 (a $type(4)$attr) engine=innodb; +insert t1 values ('2010-12-11 01:02:03.456789'); +select * from t1; +select extract(microsecond from a + interval 100 microsecond) from t1 where a>'2010-11-12 01:02:03.456'; +select a from t1 where a>'2010-11-12 01:02:03.456' group by a; + +# +# metadata +# +show create table t1; +show columns from t1; +--query_vertical select table_name, column_name, column_default, is_nullable, data_type, character_maximum_length, character_octet_length, numeric_precision, numeric_scale, datetime_precision, character_set_name, collation_name, column_type, column_key, extra from information_schema.columns where table_name='t1' + +# +# update/delete +# +select a, a+interval 9876543 microsecond from t1; +update t1 set a=a+interval 9876543 microsecond; +select * from t1; +select a, a + interval 2 year from t1; +insert ignore t1 select a + interval 2 year from t1; +select * from t1; +delete from t1 where a < 20110101; +select * from t1; + +if ($type == time) +{ +delete from t1 where a is not null; +select * from t1; +} + +# +# create ... select +# +create table t2 select * from t1; +create table t3 like t1; + +show create table t2; +show create table t3; +drop table t2, t3; + +# math, aggregation +insert t1 values ('2010-12-13 14:15:16.222222'); +select a, a+0, a-1, a*1, a/2 from t1; +select max(a), min(a), sum(a), avg(a) from t1; +create table t2 select a, a+0, a-1, a*1, a/2 from t1; +create table t3 select max(a), min(a), sum(a), avg(a) from t1; +show create table t2; +show create table t3; + +drop table t1, t2, t3; + +# insert, alter with conversion +--vertical_results +eval create table t1 (f0_$type $type(0), f1_$type $type(1), f2_$type $type(2), f3_$type $type(3), f4_$type $type(4), f5_$type $type(5), f6_$type $type(6)); +insert t1 values ( '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432', '2010-11-12 11:14:17.765432'); +select * from t1; +eval select cast(f0_$type as time(4)) time4_f0_$type, cast(f1_$type as datetime(3)) datetime3_f1_$type, cast(f2_$type as date) date_f2_$type, cast(f4_$type as double) double_f3_$type, cast(f4_$type as decimal(40,5)) decimal5_f4_$type, cast(f5_$type as signed) bigint_f5_$type, cast(f6_$type as char(255)) varchar_f6_$type from t1; +eval create table t2 (time4_f0_$type time(4), datetime3_f1_$type datetime(3), date_f2_$type date, double_f3_$type double, decimal5_f4_$type decimal(40,5), bigint_f5_$type bigint, varchar_f6_$type varchar(255)); +insert t2 select * from t1; +select * from t2; +eval alter table t1 change f0_$type time4_f0_$type time(4), change f1_$type datetime3_f1_$type datetime(3), change f2_$type date_f2_$type date, change f3_$type double_f3_$type double, change f4_$type decimal5_f4_$type decimal(40,5), change f5_$type bigint_f5_$type bigint, change f6_$type varchar_f6_$type varchar(255); +select * from t1; +eval alter table t1 modify time4_f0_$type $type(0), modify datetime3_f1_$type $type(1), modify date_f2_$type $type(2), modify double_f3_$type $type(3), modify decimal5_f4_$type $type(4), modify bigint_f5_$type $type(5), modify varchar_f6_$type $type(6); +select * from t1; +delete from t1; +insert t1 select * from t2; +select * from t1; +drop table t1, t2; +--horizontal_results + +# +# SP +# +let attr=; +if ($type == timestamp) +{ + let attr=NOT NULL DEFAULT '0000-00-00 00:00:00.000000'; +} +eval create table t1 (a $type(6)$attr, b $type(6)$attr); +eval create procedure foo(x $type, y $type(4)) insert into t1 values (x, y); +call foo('2010-02-03 4:5:6.789123', '2010-02-03 4:5:6.789123'); +select * from t1; +delimiter |; +eval create procedure bar(a int, c $type(5)) +begin + declare b $type(4); + set b = c + interval a microsecond; + insert t1 values (b, c + interval a microsecond); +end| +delimiter ;| +call bar(1111111, '2011-01-02 3:4:5.123456'); +select * from t1; +drop procedure foo; +drop procedure bar; +eval create function xyz(s char(20)) returns $type(4) + return addtime('2010-10-10 10:10:10.101010', s); +select xyz('1:1:1.010101'); +drop function xyz; + +# +# Views +# + +create view v1 as select * from t1 group by a,b; +select * from v1; +show columns from v1; +create table t2 select * from v1; +show create table t2; +select * from t2; + +drop view v1; +drop table t1, t2; + +SET timestamp=DEFAULT; diff --git a/mysql-test/include/type_mix_incompatible.inc b/mysql-test/include/type_mix_incompatible.inc new file mode 100644 index 00000000..92a75be6 --- /dev/null +++ b/mysql-test/include/type_mix_incompatible.inc @@ -0,0 +1,252 @@ +--echo # Start of type_store_assignment_incompatible.inc + +--disable_abort_on_error + +SET @sql_mode_save= @@sql_mode; + +SET @source_type= (SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS + WHERE COLUMN_NAME='source' + AND TABLE_NAME='t1' + AND TABLE_SCHEMA='test'); + +SET @target_type= (SELECT COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS + WHERE COLUMN_NAME='target' + AND TABLE_NAME='t1' + AND TABLE_SCHEMA='test'); + +# 'IGNORE' -> ' IGNORE' +SET @ignore= CASE WHEN @ignore IS NULL OR @ignore = '' THEN '' + WHEN @ignore NOT LIKE ' %' THEN CONCAT(' ',@ignore) + ELSE @ignore + END; + +let $source_type= `(SELECT @source_type)`; +let $target_type= `(SELECT @target_type)`; +let $ignore=`(SELECT @ignore)`; + +CREATE TABLE t2 LIKE t1; +ALTER TABLE t2 ADD id INT NOT NULL PRIMARY KEY FIRST; +INSERT INTO t2 VALUES (1,DEFAULT,DEFAULT); +SHOW CREATE TABLE t2; + +# +# Single row INSERT..VALUES +# + +CREATE TABLE t3 LIKE t2; +eval INSERT$ignore INTO t3 VALUES + (1, + (SELECT source FROM t2 ORDER BY id LIMIT 1), + (SELECT source FROM t2 ORDER BY id LIMIT 1)); +DROP TABLE t3; + +# +# Multi-row INSERT..VALUES +# + +# INSERT .. VALUES checks assignment compatibility for the first row only. +# Here the first row is compatible, so no error happens. +# The second row is not compatible. It works according to the +# current sql_mode and the table transaction ability, so it can: +# (a) either raise a warning +# (b) or escalate a warning to an error and abort on the current row +# (c) or escalate a warning to an error and rollback +# Here we test (a) and (b). + +SET sql_mode=''; +CREATE TABLE t3 LIKE t2; +ALTER TABLE t3 ENGINE=MyISAM; +EXECUTE IMMEDIATE + CONCAT('CREATE VIEW v3 AS SELECT id,', + IF(@target_type='geometry','AsText(target)','target'), ' AS target,', + IF(@source_type='geometry','AsText(source)','source'), ' AS source ', + ' FROM t3'); + +eval INSERT$ignore INTO t3 VALUES + (1, + (SELECT target FROM t2 ORDER BY id LIMIT 1), + (SELECT source FROM t2 ORDER BY id LIMIT 1)), + (2, + (SELECT source FROM t2 ORDER BY id LIMIT 1), + (SELECT source FROM t2 ORDER BY id LIMIT 1)); +SELECT * FROM v3; +TRUNCATE TABLE t3; + +SET sql_mode=STRICT_ALL_TABLES; +eval INSERT$ignore INTO t3 VALUES + (1, + (SELECT target FROM t2 ORDER BY id LIMIT 1), + (SELECT source FROM t2 ORDER BY id LIMIT 1)), + (2, + (SELECT source FROM t2 ORDER BY id LIMIT 1), + (SELECT source FROM t2 ORDER BY id LIMIT 1)); +SELECT * FROM v3; +TRUNCATE TABLE t3; +SET sql_mode=@sql_mode_save; +DROP TABLE t3; +DROP VIEW v3; + +# +# INSERT .. SELECT +# + +CREATE TABLE t3 LIKE t2; +eval INSERT$ignore INTO t3 SELECT id,source,source FROM t2; + +eval INSERT$ignore INTO t3 (id,target,source) SELECT id,source,source FROM t2; + +# +# INSERT .. VALUES .. ON DUPLICATE KEY UPDATE target=source +# + +eval INSERT$ignore INTO t3 VALUES (1,DEFAULT,DEFAULT) ON DUPLICATE KEY UPDATE target=source; + +eval INSERT$ignore INTO t3 (id,target,source) VALUES (1,DEFAULT,DEFAULT) ON DUPLICATE KEY UPDATE target=source; + +# +# INSERT .. SELECT .. ON DUPLICATE KEY UPDATE target=source +# + +eval INSERT$ignore INTO t3 SELECT 1,DEFAULT(t2.target),DEFAULT(t2.source) FROM t2 ON DUPLICATE KEY UPDATE t3.target=t2.source; + +eval INSERT$ignore INTO t3 (id,target,source) SELECT 1,DEFAULT(t2.target),DEFAULT(t2.source) FROM t2 ON DUPLICATE KEY UPDATE t3.target=t2.source; + + +# +# UPDATE +# +eval UPDATE$ignore t3 SET target=source; + + +# +# UPDATE, multi-table +# + +eval UPDATE$ignore t2, t3 SET t3.target=t2.source WHERE t2.id=t3.id; + + +# +# ALTER +# + +SET @alter=CONCAT('ALTER', @ignore, ' TABLE t3 MODIFY target ', @source_type); +SELECT @alter; +EXECUTE IMMEDIATE @alter; + + +DROP TABLE t3; +DROP TABLE t2; + +# +# MDEV-28963 Incompatible data type assignment through SP vars is not consistent with columns +# + +# +# SP local variables +# +DELIMITER $$; +eval CREATE PROCEDURE p1() +BEGIN + DECLARE src $source_type DEFAULT NULL; + DECLARE dst $target_type DEFAULT NULL; + SET dst=src; +END; +$$ +DELIMITER ;$$ +CALL p1; +DROP PROCEDURE p1; + +# +# SP IN parameters +# + +--eval CREATE FUNCTION f1(a $target_type) RETURNS INT RETURN NULL; +SELECT f1((SELECT source FROM t1 ORDER BY source LIMIT 1)); +DROP FUNCTION f1; + +--eval CREATE PROCEDURE p1(a $target_type) BEGIN END; +CALL p1((SELECT source FROM t1 ORDER BY source LIMIT 1)); +DROP PROCEDURE p1; + +# +# SP OUT parameters +# + +DELIMITER $$; +eval CREATE PROCEDURE p1(OUT dst $target_type) +BEGIN + DECLARE src $source_type DEFAULT NULL; + SET dst=src; +END; +$$ +eval CREATE PROCEDURE p2() +BEGIN + DECLARE dst $target_type DEFAULT NULL; + CALL p1(dst); +END; +$$ +DELIMITER ;$$ +CALL p2(); +SHOW WARNINGS; +DROP PROCEDURE p2; +DROP PROCEDURE p1; + + +# +# SF RETURN +# + +DELIMITER $$; +eval CREATE FUNCTION f1() RETURNS $target_type +BEGIN + DECLARE rc $source_type DEFAULT NULL; + RETURN rc; +END; +$$ +DELIMITER ;$$ +SELECT f1(); +DROP FUNCTION f1; + +# +# Cursor IN parameters +# + +DELIMITER $$; +eval CREATE PROCEDURE p1() +BEGIN + DECLARE src $source_type DEFAULT NULL; + DECLARE cur1 CURSOR(t $target_type) FOR SELECT * FROM t1 WHERE target=t; + OPEN cur1(src); + CLOSE cur1; +END; +$$ +DELIMITER ;$$ +CALL p1(); +DROP PROCEDURE p1; + +# +# FETCH +# + +CREATE TABLE t2 LIKE t1; +INSERT INTO t2 VALUES (); + +DELIMITER $$; +eval CREATE PROCEDURE p1() +BEGIN + DECLARE dst $target_type DEFAULT NULL; + DECLARE cur2 CURSOR FOR SELECT source FROM t2 ORDER BY source LIMIT 1; + OPEN cur2; + FETCH cur2 INTO dst; + CLOSE cur2; +END; +$$ +DELIMITER ;$$ +CALL p1(); +DROP PROCEDURE p1; + +DROP TABLE t2; + +--enable_abort_on_error + +--echo # End of type_store_assignment_incompatible.inc diff --git a/mysql-test/include/type_temporal_zero_default.inc b/mysql-test/include/type_temporal_zero_default.inc new file mode 100644 index 00000000..6553bfb6 --- /dev/null +++ b/mysql-test/include/type_temporal_zero_default.inc @@ -0,0 +1,77 @@ +--echo # +--echo # MDEV-7824 [Bug #68041] Zero date can be inserted in strict no-zero mode through a default value +--echo # + +# Testing direct INSERT + +SET sql_mode=DEFAULT; +eval CREATE TABLE t1 (a $type DEFAULT $defval); +SET sql_mode=TRADITIONAL; +--error ER_TRUNCATED_WRONG_VALUE +eval INSERT INTO t1 VALUES ($defval); +--error ER_INVALID_DEFAULT_VALUE_FOR_FIELD +INSERT INTO t1 VALUES (); +--error ER_INVALID_DEFAULT_VALUE_FOR_FIELD +INSERT INTO t1 VALUES (DEFAULT); +DROP TABLE t1; +SET sql_mode=DEFAULT; + + +# Testing INSERT .. SELECT + +eval CREATE TABLE t1 (a $type NOT NULL DEFAULT $defval, b $type NOT NULL DEFAULT $defval); +eval CREATE TABLE t2 (a $type NOT NULL DEFAULT $defval); +eval INSERT INTO t2 VALUES ($defval); +SET sql_mode=TRADITIONAL; +--error ER_INVALID_DEFAULT_VALUE_FOR_FIELD +INSERT INTO t1 (a) SELECT a FROM t2; +DROP TABLE t1, t2; +SET sql_mode=DEFAULT; + + +# Testing LOAD + +--eval CREATE TABLE t1 (a $type DEFAULT $defval, b $type DEFAULT $defval) +--eval INSERT INTO t1 VALUES (DEFAULT,DEFAULT); +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--disable_ps2_protocol +--eval SELECT a INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/mdev-7824.txt' FROM t1 +DELETE FROM t1; +--enable_ps2_protocol +SET sql_mode=TRADITIONAL; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--error ER_INVALID_DEFAULT_VALUE_FOR_FIELD +--eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/mdev-7824.txt' INTO TABLE t1 (a) +--remove_file $MYSQLTEST_VARDIR/tmp/mdev-7824.txt +DROP TABLE t1; +SET sql_mode=DEFAULT; + +# Testing ALTER when an old field default becomes invalid +# Return an error, even if there is no STRICT_XXX_TABLES set +--eval CREATE TABLE t1 (a $type DEFAULT $defval); +SET sql_mode='NO_ZERO_DATE'; +--error ER_INVALID_DEFAULT +ALTER TABLE t1 ADD b INT NOT NULL; +DROP TABLE t1; +SET sql_mode=DEFAULT; + + +--echo # +--echo # End of MDEV-7824 [Bug #68041] Zero date can be inserted in strict no-zero mode through a default value +--echo # + +--echo # +--echo # MDEV-8373 Zero date can be inserted in strict no-zero mode through CREATE TABLE AS SELECT timestamp_field +--echo # + +SET sql_mode=DEFAULT; +--eval CREATE TABLE t1 (a $type); +INSERT INTO t1 VALUES (0); +SET sql_mode='TRADITIONAL'; +--error ER_TRUNCATED_WRONG_VALUE +CREATE TABLE t2 AS SELECT * FROM t1; +DROP TABLE t1; + +--echo # +--echo # End of MDEV-8373 Zero date can be inserted in strict no-zero mode through CREATE TABLE AS SELECT timestamp_field +--echo # diff --git a/mysql-test/include/unsafe_binlog.inc b/mysql-test/include/unsafe_binlog.inc new file mode 100644 index 00000000..1fd1f0e0 --- /dev/null +++ b/mysql-test/include/unsafe_binlog.inc @@ -0,0 +1,274 @@ +# include/unsafe_binlog.inc +# +# The variable +# $engine_type -- storage engine to be tested +# has to be set before sourcing this script. +# +# Notes: +# 1. This test uses at least in case of InnoDB options +# innodb_locks_unsafe_for_binlog = true +# innodb_lock_timeout = 5 +# 2. The comments/expectations refer to InnoDB. +# They might be not valid for other storage engines. +# +# Last update: +# 2006-08-02 ML test refactored +# old name was innodb_unsafe_binlog.test +# main code went into include/unsafe_binlog.inc +# + +# +# Test cases for bug#15650 +# DELETE with LEFT JOIN crashes server with innodb_locks_unsafe_for_binlog +# +--disable_service_connection +--disable_warnings +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10; +--enable_warnings +eval create table t1 (id int not null, f_id int not null, f int not null, +primary key(f_id, id)) engine = $engine_type; +eval create table t2 (id int not null,s_id int not null,s varchar(200), +primary key(id)) engine = $engine_type; +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; + +# +# 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; +eval create table t1(a int not null, b int, primary key(a)) engine = $engine_type; +insert into t1 values(1,1),(2,2),(3,1),(4,2),(5,1),(6,2),(7,3); +commit; +set autocommit = 0; +--disable_view_protocol +select * from t1 lock in share mode; +--enable_view_protocol +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 +# +--disable_view_protocol +--error ER_LOCK_WAIT_TIMEOUT +select * from t1 where a = 2 and b = 2 for update; +--enable_view_protocol +connection a; +commit; +connection b; +commit; +drop table t1; +connection default; +disconnect a; +disconnect b; + +# +# unlock row test +# + +connect (a,localhost,root,,); +connect (b,localhost,root,,); +connection a; +eval create table t1(a int not null, b int, primary key(a)) engine = $engine_type; +insert into t1 values(1,1),(2,2),(3,1),(4,2),(5,1),(6,2),(7,3); +commit; +set autocommit = 0; +update t1 set b = 5 where b = 1; +connection b; +set autocommit = 0; +# +# X-lock to record (7,3) should be released in a update +# +select * from t1 where a = 7 and b = 3 for update; +commit; +connection a; +commit; +drop table t1; +connection default; +disconnect a; +disconnect b; + + +# +# Consistent read should be used in following selects +# +# 1) INSERT INTO ... SELECT +# 2) UPDATE ... = ( SELECT ...) +# 3) CREATE ... SELECT + +connect (a,localhost,root,,); +connect (b,localhost,root,,); +connection a; +eval create table t1(a int not null, b int, primary key(a)) engine = $engine_type; +insert into t1 values (1,2),(5,3),(4,2); +eval create table t2(d int not null, e int, primary key(d)) engine = $engine_type; +insert into t2 values (8,6),(12,1),(3,1); +commit; +set autocommit = 0; +--disable_view_protocol +select * from t2 for update; +--enable_view_protocol +connection b; +set autocommit = 0; +insert into t1 select * from t2; +update t1 set b = (select e from t2 where a = d); +eval create table t3(d int not null, e int, primary key(d)) engine = $engine_type +select * from t2; +commit; +connection a; +commit; +connection default; +disconnect a; +disconnect b; +drop table t1, t2, t3; + +# +# Consistent read should not be used if +# +# (a) isolation level is serializable OR +# (b) select ... lock in share mode OR +# (c) select ... for update +# +# in following queries: +# +# 1) INSERT INTO ... SELECT +# 2) UPDATE ... = ( SELECT ...) +# 3) CREATE ... SELECT + +connect (a,localhost,root,,); +connect (b,localhost,root,,); +connect (c,localhost,root,,); +connect (d,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (e,localhost,root,,); +connect (f,localhost,root,,); +connect (g,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connect (h,localhost,root,,); +connect (i,localhost,root,,); +connect (j,localhost,root,,); +eval SET SESSION DEFAULT_STORAGE_ENGINE = $engine_type; +connection a; +eval create table t1(a int not null, b int, primary key(a)) engine = $engine_type; +insert into t1 values (1,2),(5,3),(4,2); +eval create table t2(a int not null, b int, primary key(a)) engine = $engine_type; +insert into t2 values (8,6),(12,1),(3,1); +eval create table t3(d int not null, b int, primary key(d)) engine = $engine_type; +insert into t3 values (8,6),(12,1),(3,1); +eval create table t5(a int not null, b int, primary key(a)) engine = $engine_type; +insert into t5 values (1,2),(5,3),(4,2); +eval create table t6(d int not null, e int, primary key(d)) engine = $engine_type; +insert into t6 values (8,6),(12,1),(3,1); +eval create table t8(a int not null, b int, primary key(a)) engine = $engine_type; +insert into t8 values (1,2),(5,3),(4,2); +eval create table t9(d int not null, e int, primary key(d)) engine = $engine_type; +insert into t9 values (8,6),(12,1),(3,1); +commit; +set autocommit = 0; +--disable_view_protocol +select * from t2 for update; +--enable_view_protocol +connection b; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +--send +insert into t1 select * from t2; +connection c; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +--send +update t3 set b = (select b from t2 where a = d); +connection d; +set autocommit = 0; +SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE; +--send +create table t4(a int not null, b int, primary key(a)) select * from t2; +connection e; +set autocommit = 0; +--send +insert into t5 (select * from t2 lock in share mode); +connection f; +set autocommit = 0; +--send +update t6 set e = (select b from t2 where a = d lock in share mode); +connection g; +set autocommit = 0; +--send +create table t7(a int not null, b int, primary key(a)) select * from t2 lock in share mode; +connection h; +set autocommit = 0; +--send +insert into t8 (select * from t2 for update); +connection i; +set autocommit = 0; +--send +update t9 set e = (select b from t2 where a = d for update); +connection j; +set autocommit = 0; +--send +create table t10(a int not null, b int, primary key(a)) select * from t2 for update; + +connection b; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +connection c; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +connection d; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +connection e; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +connection f; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +connection g; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +connection h; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +connection i; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +connection j; +--error ER_LOCK_WAIT_TIMEOUT +reap; + +connection a; +commit; + +connection default; +disconnect a; +disconnect b; +disconnect c; +disconnect d; +disconnect e; +disconnect f; +disconnect g; +disconnect h; +disconnect i; +disconnect j; +drop table t1, t2, t3, t5, t6, t8, t9; +--enable_service_connection diff --git a/mysql-test/include/update_use_source.inc b/mysql-test/include/update_use_source.inc new file mode 100644 index 00000000..3c487704 --- /dev/null +++ b/mysql-test/include/update_use_source.inc @@ -0,0 +1,150 @@ +# Include to test update with same table as source and target + +--echo # +--echo # Update a with value from subquery on the same table, no search clause. ALL access +--echo # + +#Enable view protocol after fix MDEV-29207 +--disable_view_protocol +start transaction; +--enable_info ONCE +update t1 + set c1=(select a.c3 + from t1 a + where a.c3 = t1.c3); +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1 ; +rollback; + +--echo # +--echo # Update with search clause on the same table +--echo # + +start transaction; +--enable_info ONCE +update t1 + set c1=10 + where c1 <2 + and exists (select 'X' + from t1 a + where a.c1 = t1.c1); +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1 ; +rollback; + +--echo # +--echo # Update via RANGE or INDEX access if an index or a primary key exists +--echo # + +explain update t1 set c1=0 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 > 3; +start transaction; +--enable_info ONCE +update t1 set c1=c1+10 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 >= 3; +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1; +rollback; + +--echo # +--echo # Update with order by +--echo # + +start transaction; +update t1 set c1=c1+10 where exists (select 'X' from t1 a where a.c2 = t1.c2) and c2 >= 3 order by c2; +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1; +rollback; + +--echo # +--echo Update using a view in subquery +--echo # + +start transaction; +--enable_info ONCE +update t1 + set c1=c1 +(select max(a.c2) + from v1 a + where a.c1 = t1.c1) ; +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1; +rollback; + +--echo # +--echo # Update throw a view +--echo # + +start transaction; +--enable_info ONCE +update v1 + set c1=c1 + (select max(a.c2) + from t1 a + where a.c1 = v1.c1) +10 +where c3 > 3; +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1; +rollback; + +--echo # +--echo # Update through a view and using the view in subquery +--echo # + +start transaction; +--enable_info ONCE +update v1 + set c1=c1 + 1 + where c1 <2 + and exists (select 'X' + from v1 a + where a.c1 = v1.c1); +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1; +rollback; + +--echo # +--echo # Update through a view and using the view in subquery +--echo # + +start transaction; +--enable_info ONCE +update v1 + set c1=(select max(a.c1)+10 + from v1 a + where a.c1 = v1.c1) + where c1 <10 + and exists (select 'X' + from v1 a + where a.c2 = v1.c2); +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1; +rollback; + +--echo # +--echo # Update of the index or primary key (c3) +--echo # + +start transaction; +explain update t1 set c3=c3+10 where c2 in (select distinct a.c2 from t1 a where t1.c1=a.c1); +--enable_info ONCE +update t1 set c3=c3+10 where c2 in (select distinct a.c2 from t1 a where t1.c1=a.c1); +select c3 from t1; +rollback; + +--echo # +--echo # update with a limit +--echo # + +start transaction; +--enable_info ONCE +update t1 + set c1=(select a.c3 + from t1 a + where a.c3 = t1.c3) + limit 2; +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1 ; +rollback; + +--echo # +--echo # update with a limit and an order by +--echo # + +start transaction; +--enable_info ONCE +update t1 + set c1=(select a.c3 + from t1 a + where a.c3 = t1.c3) + order by c3 desc limit 2; +select concat(old_c1,'->',c1),c3, case when c1 != old_c1 then '*' else ' ' end "Changed" from t1 ; +rollback; +--enable_view_protocol diff --git a/mysql-test/include/uses_vardir.inc b/mysql-test/include/uses_vardir.inc new file mode 100644 index 00000000..950de698 --- /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 00000000..7add7113 --- /dev/null +++ b/mysql-test/include/varchar.inc @@ -0,0 +1,247 @@ +# 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 +# + +# +# Remember to check that one doesn't get a warning or a note +# from a char field when end spaces get removed. SQL standard! +# + +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'; + +# Which duplicate entry triggers error is not deterministic. +--replace_regex /Duplicate entry '[^']+' for key/Duplicate entry '{ ' for key/ +--error ER_DUP_ENTRY +alter table t1 add unique(v); +show warnings; +alter table t1 add key(v); +select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a'; +--replace_column 6 # 9 # 10 # +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 # 10 # +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 # 10 # +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 ER_DUP_ENTRY +insert into t1 values ('a '); + +alter table t1 modify a varchar(10); +--error ER_DUP_ENTRY +insert into t1 values ('a '),('a '),('a '),('a '); +--error ER_DUP_ENTRY +insert into t1 values ('a '); +--error ER_DUP_ENTRY +insert into t1 values ('a '); +--error ER_DUP_ENTRY +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/view_alias.inc b/mysql-test/include/view_alias.inc new file mode 100644 index 00000000..17adcf5f --- /dev/null +++ b/mysql-test/include/view_alias.inc @@ -0,0 +1,25 @@ +# Routine to be called by t/view.inc +# +# The variable $after_select must be set before calling this routine. + +eval CREATE VIEW v1 AS SELECT $after_select; +SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'; +# +# Extract the VIEW's SELECT from INFORMATION_SCHEMA.VIEWS +let $query1 = `SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v1'`; +# +# Extract the VIEW's SELECT from SHOW CREATE VIEW +# SHOW CREATE VIEW v1 +# View Create View character_set_client collation_connection +# v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select '<--- ..... +let $value= query_get_value(SHOW CREATE VIEW v1, Create View, 1); +let $query2 = `SELECT SUBSTR("$value",INSTR("$value",' as select ') + CHAR_LENGTH(' as '))`; +DROP VIEW v1; + +# Recreate the view based on SELECT from INFORMATION_SCHEMA.VIEWS +eval CREATE VIEW v1 AS $query1; +DROP VIEW v1; +# Recreate the view based on SHOW CREATE VIEW +eval CREATE VIEW v1 AS $query2; +DROP VIEW v1; + diff --git a/mysql-test/include/wait_condition.inc b/mysql-test/include/wait_condition.inc new file mode 100644 index 00000000..d40b0e4d --- /dev/null +++ b/mysql-test/include/wait_condition.inc @@ -0,0 +1,61 @@ +# include/wait_condition.inc +# +# SUMMARY +# +# Waits until the passed statement returns true, or the operation +# times out. +# +# USAGE +# +# let $wait_condition= +# SELECT c = 3 FROM t; +# --source include/wait_condition.inc +# +# OR +# +# let $wait_timeout= 60; # Override default 30 seconds with 60. +# let $wait_condition= +# SELECT c = 3 FROM t; +# --source include/wait_condition.inc +# --echo Executed the test condition $wait_condition_reps times +# +# EXAMPLE +# events_bugs.test, events_time_zone.test +# + +--disable_query_log + +let $wait_counter= 300; +if ($wait_timeout) +{ + let $wait_counter= `SELECT $wait_timeout * 10`; +} +# Reset $wait_timeout so that its value won't be used on subsequent +# calls, and default will be used instead. +let $wait_timeout= 0; + +# Keep track of how many times the wait condition is tested +# This is used by some tests (e.g., main.status) +let $wait_condition_reps= 0; +while ($wait_counter) +{ + --error 0,ER_NO_SUCH_TABLE,ER_LOCK_WAIT_TIMEOUT,ER_UNKNOWN_COM_ERROR,ER_LOCK_DEADLOCK + let $success= `$wait_condition`; + inc $wait_condition_reps; + if ($success) + { + let $wait_counter= 0; + } + if (!$success) + { + real_sleep 0.1; + dec $wait_counter; + } +} +if (!$success) +{ + echo Timeout in wait_condition.inc for $wait_condition; + show full processlist; +} + +--enable_query_log diff --git a/mysql-test/include/wait_condition_sp.inc b/mysql-test/include/wait_condition_sp.inc new file mode 100644 index 00000000..66301da5 --- /dev/null +++ b/mysql-test/include/wait_condition_sp.inc @@ -0,0 +1,62 @@ +# include/wait_condition.inc +# +# SUMMARY +# +# Waits until the passed statement returns true, or the operation +# times out. +# +# USAGE +# +# let $wait_condition= +# SELECT c = 3 FROM t; +# --source include/wait_condition.inc +# +# OR +# +# let $wait_timeout= 60; # Override default 30 seconds with 60. +# let $wait_condition= +# SELECT c = 3 FROM t; +# --source include/wait_condition.inc +# --echo Executed the test condition $wait_condition_reps times +# +# EXAMPLE +# events_bugs.test, events_time_zone.test +# + +--disable_query_log + +let $wait_counter= 300; +if ($wait_timeout) +{ + let $wait_counter= `SELECT $wait_timeout * 10`; +} +# Reset $wait_timeout so that its value won't be used on subsequent +# calls, and default will be used instead. +let $wait_timeout= 0; + +# Keep track of how many times the wait condition is tested +# This is used by some tests (e.g., main.status) +let $wait_condition_reps= 0; +while ($wait_counter) +{ + let $success= `$wait_condition`; + inc $wait_condition_reps; + if ($success) + { + let $wait_counter= 0; + } + if (!$success) + { + real_sleep 0.1; + dec $wait_counter; + } +} +if (!$success) +{ + echo Timeout in wait_condition.inc for $wait_condition; + show master status; + show slave status; +} + +--enable_query_log + diff --git a/mysql-test/include/wait_condition_with_debug.inc b/mysql-test/include/wait_condition_with_debug.inc new file mode 100644 index 00000000..11af4236 --- /dev/null +++ b/mysql-test/include/wait_condition_with_debug.inc @@ -0,0 +1,69 @@ +# include/wait_condition_with_debug.inc +# +# SUMMARY +# +# Waits until the passed statement returns true, or the operation +# times out. If the operation times out, the additional error +# statement will be executed. +# +# USAGE +# +# let $wait_condition= +# SELECT c = 3 FROM t; +# let $wait_condition_on_error_output= select count(*) from t; +# [let $explicit_default_wait_timeout= N] # to override the default reset +# --source include/wait_condition_with_debug.inc +# +# OR +# +# let $wait_timeout= 60; # Override default 30 seconds with 60. +# let $wait_condition= +# SELECT c = 3 FROM t; +# let $wait_condition_on_error_output= select count(*) from t; +# --source include/wait_condition_with_debug.inc +# --echo Executed the test condition $wait_condition_reps times +# +# +# EXAMPLE +# events_bugs.test, events_time_zone.test +# + +let $wait_counter= 300; +if ($wait_timeout) +{ + let $wait_counter= `SELECT $wait_timeout * 10`; +} +# Reset $wait_timeout so that its value won't be used on subsequent +# calls, and default will be used instead. +if ($explicit_default_wait_timeout) +{ + --let $wait_timeout= $explicit_default_wait_timeout +} +if (!$explicit_default_wait_timeout) +{ + --let $wait_timeout= 0 +} + +# Keep track of how many times the wait condition is tested +# This is used by some tests (e.g., main.status) +let $wait_condition_reps= 0; +while ($wait_counter) +{ + --error 0,ER_NO_SUCH_TABLE,ER_LOCK_WAIT_TIMEOUT,ER_UNKNOWN_COM_ERROR,ER_LOCK_DEADLOCK + let $success= `$wait_condition`; + inc $wait_condition_reps; + if ($success) + { + let $wait_counter= 0; + } + if (!$success) + { + real_sleep 0.1; + dec $wait_counter; + } +} +if (!$success) +{ + echo Timeout in wait_condition.inc for $wait_condition; + --eval $wait_condition_on_error_output +} diff --git a/mysql-test/include/wait_for_binlog_checkpoint.inc b/mysql-test/include/wait_for_binlog_checkpoint.inc new file mode 100644 index 00000000..960cf4e4 --- /dev/null +++ b/mysql-test/include/wait_for_binlog_checkpoint.inc @@ -0,0 +1,53 @@ +# include/wait_for_binlog_checkpoint.inc +# +# SUMMARY +# +# Wait until binlog checkpoint has been logged for current binlog file. +# This is useful to avoid races with output difference for binlog +# checkpoints, as these are logged asynchronously from the binlog +# background thread. +# +# USAGE: +# +# --source include/wait_for_binlog_checkpoint.inc + +let $_wait_count= 300; + +let $_found= 0; + +while ($_wait_count) +{ + dec $_wait_count; + let $_cur_binlog= query_get_value(SHOW MASTER STATUS, File, 1); + let $_more= 1; + let $_row= 1; + while ($_more) + { + let $_event= query_get_value(SHOW BINLOG EVENTS IN "$_cur_binlog", Event_type, $_row); + if ($_event == "No such row") + { + let $_more= 0; + } + if ($_event == "Binlog_checkpoint") + { + let $_info= query_get_value(SHOW BINLOG EVENTS IN "$_cur_binlog", Info, $_row); + if (`SELECT INSTR("$_info", "$_cur_binlog") != 0`) + { + let $_more= 0; + let $_wait_count= 0; + let $_found= 1; + } + } + inc $_row; + } + if ($_wait_count) + { + real_sleep 0.1; + } +} + +if (!$_found) +{ + eval SHOW BINLOG EVENTS IN "$_cur_binlog"; + --die ERROR: failed while waiting for binlog checkpoint $_cur_binlog +} diff --git a/mysql-test/include/wait_for_binlog_event.inc b/mysql-test/include/wait_for_binlog_event.inc new file mode 100644 index 00000000..b251ae22 --- /dev/null +++ b/mysql-test/include/wait_for_binlog_event.inc @@ -0,0 +1,33 @@ +# include/wait_for_binlog_event.inc +# +# SUMMARY +# +# Waits until SHOW BINLOG EVENTS has returned in last event a specified substring. +# +# USAGE +# +# let $wait_binlog_event= DROP; +# --source include/wait_for_binlog_event.inc + +let $_loop_count= 300; +let $_last_event= ; +let $_event_pos= 1; + +while (`SELECT INSTR("$_last_event","$wait_binlog_event") = 0`) +{ + dec $_loop_count; + if (!$_loop_count) + { + --source include/show_rpl_debug_info.inc + --die ERROR: failed while waiting for $wait_binlog_event in binlog + } + real_sleep 0.1; + let $_event= query_get_value(SHOW BINLOG EVENTS, Info, $_event_pos); + let $_last_event= $_event; + while ($_event != "No such row") + { + inc $_event_pos; + let $_last_event= $_event; + let $_event= query_get_value(SHOW BINLOG EVENTS, Info, $_event_pos); + } +} diff --git a/mysql-test/include/wait_for_line_count_in_file.inc b/mysql-test/include/wait_for_line_count_in_file.inc new file mode 100644 index 00000000..838a3ff3 --- /dev/null +++ b/mysql-test/include/wait_for_line_count_in_file.inc @@ -0,0 +1,18 @@ +perl; + use strict; + use Time::HiRes qw(sleep); + my $search_count= $ENV{'SEARCH_COUNT'} or die "SEARCH_COUNT not set"; + my $search_file= $ENV{'SEARCH_FILE'} or die "SEARCH_FILE not set"; + my $wait_counter= 100; # 10 seconds + while (1) + { + my $cnt= 0; + open(FILE, $search_file) or die("Unable to open '$search_file': $!\n"); + $cnt++ while (<FILE>); + close(FILE); + last if ($cnt == $search_count); + $wait_counter-- or + die "Timeout waiting for $search_count lines in $search_file\n"; + sleep(0.1); + } +EOF diff --git a/mysql-test/include/wait_for_purge.inc b/mysql-test/include/wait_for_purge.inc new file mode 100644 index 00000000..8cd3c439 --- /dev/null +++ b/mysql-test/include/wait_for_purge.inc @@ -0,0 +1,53 @@ +# include/wait_for_purge.inc +# +# SUMMARY +# +# Repeatedly attempt to purge binlogs up to a specific point, until +# SHOW BINARY LOGS shows it has succeeded. +# This can be useful to avoid races where slaves are stopped but the +# corresponding binlog dump thread on the master has not yet terminated. +# Async binlog checkpoints can also delay purge. +# +# Note that it may be necessary to inject at least one event in the binlog +# after stopping slaves, or master may not detect stop of slave for a long +# time (or forever), depending on details of test case, if replication +# heartbeat is enabled, etc. +# +# USAGE: +# +# --let $purge_binlogs_to=master-bin.000003 +# --source include/wait_for_purge.inc +# +# SIDE EFFECTS: +# +# Disables --query_log while running, enables it afterwards. + +--echo include/wait_for_purge.inc "$purge_binlogs_to" + +let $_wait_count= 300; +let $_done= 0; + +--disable_query_log +while ($_wait_count) +{ + dec $_wait_count; + eval PURGE BINARY LOGS TO "$purge_binlogs_to"; + let $_cur_binlog= query_get_value(SHOW BINARY LOGS, Log_name, 1); + if (`SELECT "$_cur_binlog" = "$purge_binlogs_to"`) + { + let $_done= 1; + let $_wait_count= 0; + } + if ($_wait_count) + { + real_sleep 0.1; + } +} + +if (!$_done) +{ + SHOW FULL PROCESSLIST; + eval SHOW BINARY LOGS; + --die ERROR: failed while waiting for binlog purge to $purge_binlogs_to +} +--enable_query_log diff --git a/mysql-test/include/wait_for_query_to_fail.inc b/mysql-test/include/wait_for_query_to_fail.inc new file mode 100644 index 00000000..47181302 --- /dev/null +++ b/mysql-test/include/wait_for_query_to_fail.inc @@ -0,0 +1,25 @@ +# +# Run a query over and over until it fails or timeout occurs +# + + +let $counter= 100; + +disable_abort_on_error; +disable_query_log; +disable_result_log; +eval $query; +while (!$mysql_errno) +{ + eval $query; + sleep 0.1; + dec $counter; + + if (!$counter) + { + --die "Waited too long for query to fail"; + } +} +enable_abort_on_error; +enable_query_log; +enable_result_log; diff --git a/mysql-test/include/wait_for_query_to_succeed.inc b/mysql-test/include/wait_for_query_to_succeed.inc new file mode 100644 index 00000000..12ba5c4d --- /dev/null +++ b/mysql-test/include/wait_for_query_to_succeed.inc @@ -0,0 +1,25 @@ +# +# Run a query over and over until it succeeds ot timeout occurs +# + + +let $counter= 100; + +disable_abort_on_error; +disable_query_log; +disable_result_log; +eval $query; +while ($mysql_errno) +{ + eval $query; + sleep 0.1; + dec $counter; + + if (!$counter) + { + --die "Waited too long for query to succeed"; + } +} +enable_abort_on_error; +enable_query_log; +enable_result_log; diff --git a/mysql-test/include/wait_for_slave_io_error.inc b/mysql-test/include/wait_for_slave_io_error.inc new file mode 100644 index 00000000..96844106 --- /dev/null +++ b/mysql-test/include/wait_for_slave_io_error.inc @@ -0,0 +1,94 @@ +# ==== Purpose ==== +# +# Waits until the IO thread of the current connection has got an +# error, or until a timeout is reached. Also waits until the IO +# thread has completely stopped. +# +# +# ==== Usage ==== +# +# --let $slave_io_errno= NUMBER [, NUMBER ...] +# [--let $show_slave_io_error= 1] +# [--let $slave_io_error_is_nonfatal= 1] +# [--let $rpl_debug= 1] +# [--let $slave_timeout= NUMBER] +# --source include/wait_for_slave_io_error.inc +# +# Parameters: +# $slave_io_errno +# The expected IO error numbers. This can be either a single +# number, or a comma-separated list of numbers. Examples: +# --let $slave_io_errno= 1053, 2002, 2003, 2006, 2013 +# --let $slave_io_errno= 1045 +# (After BUG#41956 has been fixed, this will be required to be +# symbolic names instead of numbers.) +# +# $show_slave_io_error +# If set, will print the error to the query log. +# +# $slave_io_error_is_nonfatal +# By default, we wait for the slave IO thread to stop completely +# (i.e., until Slave_IO_State is empty). If this variable is set, +# then we don't wait. This is useful if the error is non-fatal +# (e.g., temporary connection error) and does not cause the slave +# IO thread to stop. +# +# $slave_io_error_replace +# If set, one or more regex patterns for replacing variable +# text in the error message. Syntax as --replace-regex +# +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_io_error.inc [errno=$slave_io_errno] +--source include/begin_include_file.inc + + +let $old_slave_param_comparison= $slave_param_comparison; +let $slave_param= Last_IO_Errno; +let $slave_param_comparison= !=; +let $slave_param_value= 0; +source include/wait_for_slave_param.inc; +let $slave_param_comparison= $old_slave_param_comparison; + +let $_wfsie_errno= query_get_value(SHOW SLAVE STATUS, Last_IO_Errno, 1); + +if ($slave_io_errno == '') { + --echo !!!ERROR IN TEST: you must set \$slave_io_errno before you source + --echo !!!wait_for_slave_sql_error.inc. The error we got this time was '$_wfsie_errno', + --echo !!!so you probably want to add the following line to your test case: + --echo !!! --let \$slave_io_errno= $_wfsie_errno + --die !!!ERROR IN TEST: you must set \$slave_io_errno before sourcing wait_for_slave_io_error.inc +} + +if (`SELECT $_wfsie_errno NOT IN ($slave_io_errno)`) { + --echo **** Slave stopped with wrong error code: $_wfsie_errno (expected $slave_io_errno) **** + source include/show_rpl_debug_info.inc; + --echo **** Slave stopped with wrong error code: $_wfsie_errno (expected $slave_io_errno) **** + --die Slave stopped with wrong error code +} + +if ($show_slave_io_error) +{ + --let $_wait_for_slave_io_error_old_status_items= $status_items + --let $status_items= Last_IO_Error + --let $slave_field_result_replace= $slave_io_error_replace + --source include/show_slave_status.inc + --let $status_items= $_wait_for_slave_io_error_old_status_items +} + +if (!$slave_io_error_is_nonfatal) +{ + --let $slave_param= Slave_IO_State + --let $slave_param_value= + --source include/wait_for_slave_param.inc +} +--let $slave_io_error_is_nonfatal= 0 + + +--let $include_filename= wait_for_slave_io_error.inc [errno=$slave_io_errno] +--source include/end_include_file.inc diff --git a/mysql-test/include/wait_for_slave_io_to_start.inc b/mysql-test/include/wait_for_slave_io_to_start.inc new file mode 100644 index 00000000..0cb40917 --- /dev/null +++ b/mysql-test/include/wait_for_slave_io_to_start.inc @@ -0,0 +1,47 @@ +# ==== Purpose ==== +# +# Waits until the IO thread of the current connection has started and +# connected to the master (i.e., until SHOW SLAVE STATUS returns Yes +# in the Slave_IO_Running field), or until a timeout is reached. +# +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# [--let $rpl_allow_error= 1] +# --source include/wait_for_slave_io_to_start.inc +# +# Parameters: +# $slave_timeout +# Timeout used when waiting for the slave IO thread to start. +# See include/wait_for_slave_param.inc. +# +# $rpl_allow_error +# By default, this file fails if there is an error in the IO +# thread. However, the IO thread can recover and reconnect after +# certain errors. If such an error is expected, can set +# $rpl_allow_error=1. This will prevent this file from failing if +# there is an error in the IO thread. +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_io_to_start.inc +--source include/begin_include_file.inc + + +let $slave_param= Slave_IO_Running; +let $slave_param_value= Yes; +if (!$rpl_allow_error) +{ + --let $slave_error_param= Last_IO_Errno +} +source include/wait_for_slave_param.inc; +--let $slave_error_param= +--let $rpl_allow_error= 0 + + +--let $include_filename= wait_for_slave_io_to_start.inc +--source include/end_include_file.inc 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 00000000..d25c2ac0 --- /dev/null +++ b/mysql-test/include/wait_for_slave_io_to_stop.inc @@ -0,0 +1,40 @@ +# ==== Purpose ==== +# +# Waits until the IO thread of the current connection has stopped +# gracefully. +# +# Note: this script will fail if the IO thread stops with an error. +# If you expect an error in the IO thread, use +# include/wait_for_slave_io_error.inc instead. +# +# This script also fails if a timeout is reached (default 300 +# seconds). +# +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/wait_for_slave_io_to_stop.inc +# +# Parameters: +# $slave_timeout +# See include/wait_for_slave_param.inc. +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_io_to_stop.inc +--source include/begin_include_file.inc + + +--let $slave_param= Slave_IO_Running +--let $slave_param_value= No +--let $slave_error_param= Last_IO_Errno +--source include/wait_for_slave_param.inc +--let $slave_error_param= + + +--let $include_filename= wait_for_slave_io_to_stop.inc +--source include/end_include_file.inc 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 00000000..b06dee3c --- /dev/null +++ b/mysql-test/include/wait_for_slave_param.inc @@ -0,0 +1,123 @@ +# ==== Purpose ==== +# +# Waits until SHOW SLAVE STATUS has returned a specified value, or +# until a timeout is reached. +# +# +# ==== Usage ==== +# +# --let $slave_param= Slave_SQL_Running +# --let $slave_param_value= No +# [--let $slave_param_comparison= [ < | <= | >= | > | = | != ]] +# [--let $slave_timeout= NUMBER] +# [--let $slave_error_param= [Slave_SQL_Errno | Slave_IO_Errno]] +# [--let $rpl_debug= 1] +# --source include/wait_for_slave_param.inc +# +# Parameters: +# +# $slave_param, $slave_param_value +# This macro will wait until the column of the output of SHOW SLAVE +# STATUS named $slave_param gets the value $slave_param_value. See +# the example above. +# +# $slave_param_comparison +# By default, this file waits until $slave_param becomes equal to +# $slave_param_value. If you want to wait until $slave_param +# becomes *unequal* to $slave_param_value, set this parameter to the +# string '!=', like this: +# --let $slave_param_comparison= != +# +# $slave_timeout +# The default timeout is 5 minutes. You can change the timeout by +# setting $slave_timeout. The unit is seconds. +# +# $slave_error_param +# If set, this script will check if the column of the output from +# SHOW SLAVE STATUS named $slave_error_param is nonzero. If it is, +# this script will faile immediately. Typically, this should be set +# to Last_IO_Errno or Last_SQL_Errno. +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_param.inc [$slave_param] +--source include/begin_include_file.inc + + +let $_slave_timeout= $slave_timeout; +if (!$_slave_timeout) +{ + let $_slave_timeout= 300; + if ($VALGRIND_TEST) + { + let $_slave_timeout= 1500; + } +} + +if ($slave_error_param == '') +{ + --let $slave_error_param= 1 +} + +let $_slave_param_comparison= $slave_param_comparison; +if (!$_slave_param_comparison) +{ + let $_slave_param_comparison= =; +} + +if ($rpl_debug) +{ + --echo Waiting until '$slave_param' $_slave_param_comparison '$slave_param_value' [\$slave_error_param='$slave_error_param'] +} + +--let $_slave_check_configured= query_get_value("SHOW SLAVE STATUS", Slave_IO_Running, 1) + +if ($_slave_check_configured == 'No such row') +{ + --echo **** ERROR: SHOW SLAVE STATUS returned empty result set. Slave not configured. **** + --source include/show_rpl_debug_info.inc + --die SHOW SLAVE STATUS returned empty result set. Slave not configured. +} + +# mysqltest doesn't provide any better way to multiply by 10 +--let $_wait_for_slave_param_zero= 0 +--let $_slave_timeout_counter= $_slave_timeout$_wait_for_slave_param_zero +--let $_slave_continue= 1 +while ($_slave_continue) +{ + --let $_show_slave_status_value= query_get_value("SHOW SLAVE STATUS", $slave_param, 1) + + # Check if an error condition is reached. + if (!$slave_error_param) + { + --let $_show_slave_status_error_value= query_get_value("SHOW SLAVE STATUS", $slave_error_param, 1) + if ($_show_slave_status_error_value) + { + --echo **** ERROR: $slave_error_param = '$_show_slave_status_error_value' while waiting for slave parameter $slave_param $_slave_param_comparison $slave_param_value **** + --source include/show_rpl_debug_info.inc + --die Error condition reached in include/wait_for_slave_param.inc + } + } + + # Check if the termination condition is reached. + --let $_slave_continue= `SELECT NOT('$_show_slave_status_value' $_slave_param_comparison '$slave_param_value')` + + # Decrease timer, and check if the timeout is reached. + if ($_slave_continue) + { + --dec $_slave_timeout_counter + if (!$_slave_timeout_counter) + { + --echo **** ERROR: timeout after $_slave_timeout seconds while waiting for slave parameter $slave_param $_slave_param_comparison $slave_param_value **** + --source include/show_rpl_debug_info.inc + --die Timeout in include/wait_for_slave_param.inc + } + --sleep 0.1 + } +} + + +--let $include_filename= wait_for_slave_param.inc [$slave_param] +--source include/end_include_file.inc diff --git a/mysql-test/include/wait_for_slave_sql_error.inc b/mysql-test/include/wait_for_slave_sql_error.inc new file mode 100644 index 00000000..4ecc8f2a --- /dev/null +++ b/mysql-test/include/wait_for_slave_sql_error.inc @@ -0,0 +1,70 @@ +# ==== Purpose ==== +# +# Waits until the SQL thread of the current connection has got an +# error, or until a timeout is reached. Also waits until the SQL +# thread has completely stopped. +# +# ==== Usage ==== +# +# --let $slave_sql_errno= NUMBER +# [--let $show_slave_sql_error= 1] +# [--let $rpl_debug= 1] +# [--let $slave_timeout= NUMBER] +# --source include/wait_for_slave_sql_error.inc +# +# Parameters: +# $slave_sql_errno +# The expected SQL error number. This is required. +# (After BUG#41956 has been fixed, this will be required to be a +# symbolic name instead of a number.) +# +# $show_slave_sql_error +# If set, will print the error to the query log. +# +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_sql_error.inc [errno=$slave_sql_errno] +--source include/begin_include_file.inc + + +# Note: here, we should not wait for Slave_SQL_Errno!=0. +# Slave_SQL_Errno and Slave_SQL_Running are not set atomically. +# Slave_SQL_Errno is set first, then Slave_SQL_Running. So we wait +# until Slave_SQL_Running=No to be sure that both conditions hold. +let $slave_param= Slave_SQL_Running; +let $slave_param_value= No; +source include/wait_for_slave_param.inc; + +let $_wfsse_errno= query_get_value(SHOW SLAVE STATUS, Last_SQL_Errno, 1); + +if ($slave_sql_errno == '') { + --echo !!!ERROR IN TEST: you must set \$slave_sql_errno before you source + --echo !!!wait_for_slave_sql_error.inc. The error we got this time was '$_wfsse_errno', + --echo !!!so you probably want to add the following line to your test case: + --echo !!! --let \$slave_sql_errno= $_wfsse_errno + --die !!!ERROR IN TEST: you must set \$slave_sql_errno before sourcing wait_for_slave_sql_error.inc +} + +if (`SELECT $_wfsse_errno NOT IN ($slave_sql_errno)`) { + --echo **** Slave stopped with wrong error code: $_wfsse_errno (expected $slave_sql_errno) **** + source include/show_rpl_debug_info.inc; + --echo **** Slave stopped with wrong error code: $_wfsse_errno (expected $slave_sql_errno) **** + --die Slave stopped with wrong error code +} + +if ($show_slave_sql_error) +{ + --let $_wait_for_slave_sql_error_old_status_items= $status_items + --let $status_items= Last_SQL_Error + --source include/show_slave_status.inc + --let $status_items= $_wait_for_slave_sql_error_old_status_items +} + + +--let $include_filename= wait_for_slave_sql_error.inc [errno=$slave_sql_errno] +--source include/end_include_file.inc diff --git a/mysql-test/include/wait_for_slave_sql_error_and_skip.inc b/mysql-test/include/wait_for_slave_sql_error_and_skip.inc new file mode 100644 index 00000000..d68faaf0 --- /dev/null +++ b/mysql-test/include/wait_for_slave_sql_error_and_skip.inc @@ -0,0 +1,78 @@ +# ==== Purpose ==== +# +# Wait for slave SQL error, skip the erroneous statement and restart +# slave +# +# ==== Usage ==== +# +# --let $slave_sql_error= NUMBER +# [--let $show_sql_error= 1] +# [--let $slave_skip_counter= 1] +# [--let $not_switch_connection= 1] +# [--let $rpl_debug= 1] +# [--let $slave_timeout= NUMBER] +# --source include/wait_for_slave_sql_error_and_skip.inc +# +# Parameters: +# +# $slave_sql_errno +# The error number to wait for. This is required. (See +# wait_for_slave_sql_error.inc) +# +# $show_sql_error +# If set, will print the error to the query log. +# +# $slave_skip_counter +# If set, skip this number of events. If not set, skip one event. +# +# $not_switch_connection +# By default, this script executes on the connection 'slave'. If +# $not_switch_connection is set, this script executes on the current +# connection. In any case, the original connection is restored. +# +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_sql_error_and_skip.inc [errno=$slave_sql_errno] +--source include/begin_include_file.inc + + +if (!$rpl_debug) +{ + --disable_query_log +} + + +if (!$not_switch_connection) +{ + --let $rpl_connection_name= slave + --source include/rpl_connection.inc +} + + +source include/wait_for_slave_sql_error.inc; + + +# skip the erroneous statement +if ($slave_skip_counter) { + eval SET GLOBAL SQL_SLAVE_SKIP_COUNTER= $slave_skip_counter; +} +if (!$slave_skip_counter) { + SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; +} +source include/start_slave.inc; + +# start_slave.inc returns when Slave_SQL_Running=Yes. But the slave +# thread sets it before clearing Last_SQL_Errno. So we have to wait +# for Last_SQL_Errno=0 separately. + +let $slave_param= Last_SQL_Errno; +let $slave_param_value= 0; +source include/wait_for_slave_param.inc; + +--let $include_filename= wait_for_slave_sql_error_and_skip.inc [errno=$slave_sql_errno] +--source include/end_include_file.inc diff --git a/mysql-test/include/wait_for_slave_sql_to_start.inc b/mysql-test/include/wait_for_slave_sql_to_start.inc new file mode 100644 index 00000000..9286f1a0 --- /dev/null +++ b/mysql-test/include/wait_for_slave_sql_to_start.inc @@ -0,0 +1,38 @@ +# ==== Purpose ==== +# +# Waits the SQL thread of the current connection has started, or until +# a timeout is reached. +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/wait_for_slave_sql_to_start.inc +# +# Parameters: +# $slave_timeout +# Timeout used when waiting for the slave SQL thread to start. +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_sql_to_start.inc +--source include/begin_include_file.inc + + +let $slave_param= Slave_SQL_Running; +let $slave_param_value= Yes; + +# Unfortunately, the slave sql thread sets Slave_SQL_Running=Yes +# *before* it clears Last_SQL_Errno. So we have to allow errors in +# the SQL thread here. + +#--let $slave_error_param= Last_SQL_Errno +source include/wait_for_slave_param.inc; +#--let $slave_error_param= + + +--let $include_filename= wait_for_slave_sql_to_start.inc +--source include/end_include_file.inc 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 00000000..492b3237 --- /dev/null +++ b/mysql-test/include/wait_for_slave_sql_to_stop.inc @@ -0,0 +1,40 @@ +# ==== Purpose ==== +# +# Waits until the SQL thread of the current connection has stopped +# gracefully. +# +# Note: this script will fail if the SQL thread stops with an error. +# If you expect an error in the SQL thread, use +# include/wait_for_slave_io_error.inc instead. +# +# This script also fails if a timeout is reached (default 300 +# seconds). +# +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/wait_for_slave_sql_to_stop.inc +# +# Parameters: +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_sql_to_stop.inc +--source include/begin_include_file.inc + + +--let $slave_param= Slave_SQL_Running +--let $slave_param_value= No +--let $slave_error_param= Last_SQL_Errno +--source include/wait_for_slave_param.inc +--let $slave_error_param= + + +--let $include_filename= wait_for_slave_sql_to_stop.inc +--source include/end_include_file.inc 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 00000000..742e7f7e --- /dev/null +++ b/mysql-test/include/wait_for_slave_to_start.inc @@ -0,0 +1,31 @@ +# ==== Purpose ==== +# +# Waits until both the IO and SQL threads of the current connection +# have started, or until a timeout is reached. +# +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/wait_for_slave_to_start.inc +# +# Parameters: +# $slave_timeout +# Timeout used when waiting for the slave threads to start. +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_to_start.inc +--source include/begin_include_file.inc + + +--source include/wait_for_slave_io_to_start.inc +--source include/wait_for_slave_sql_to_start.inc + + +--let $include_filename= wait_for_slave_to_start.inc +--source include/end_include_file.inc 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 00000000..1bfd1606 --- /dev/null +++ b/mysql-test/include/wait_for_slave_to_stop.inc @@ -0,0 +1,38 @@ +# ==== Purpose ==== +# +# Waits until both the IO and SQL threads of the current connection +# have stopped gracefully. +# +# Note: this script will fail if one of the threads stops with an +# error. If you expect an error in one of the threads, use +# include/wait_for_slave_io_error.inc or +# include/wait_for_slave_sql_error.inc instead. +# +# This script also fails if a timeout is reached (default 300 +# seconds). +# +# +# ==== Usage ==== +# +# [--let $slave_timeout= NUMBER] +# [--let $rpl_debug= 1] +# --source include/wait_for_slave_to_stop.inc +# +# Parameters: +# $slave_timeout +# See include/wait_for_slave_param.inc +# +# $rpl_debug +# See include/rpl_init.inc + + +--let $include_filename= wait_for_slave_to_stop.inc +--source include/begin_include_file.inc + + +--source include/wait_for_slave_sql_to_stop.inc +--source include/wait_for_slave_io_to_stop.inc + + +--let $include_filename= wait_for_slave_to_stop.inc +--source include/end_include_file.inc diff --git a/mysql-test/include/wait_for_sql_thread_read_all.inc b/mysql-test/include/wait_for_sql_thread_read_all.inc new file mode 100644 index 00000000..1829591c --- /dev/null +++ b/mysql-test/include/wait_for_sql_thread_read_all.inc @@ -0,0 +1,12 @@ +# This script ensures that a slave has executed everything in the relay log +# files. This can be used to ensure slave is in a predicate place after +# a FLUSH RELAY LOGS command. +# Note that this script does not guarantee that the slave has read everything +# from the master(s). If this is needed on should use the sync_with_master +# command or the sync_with_master script. + +--let $show_statement = show all slaves status +--let $field = Slave_SQL_State +--let $condition = = 'Slave has read all relay log; waiting for more updates' +--let $wait_for_all = 1 +--source include/wait_show_condition.inc diff --git a/mysql-test/include/wait_for_status_var.inc b/mysql-test/include/wait_for_status_var.inc new file mode 100644 index 00000000..33338c58 --- /dev/null +++ b/mysql-test/include/wait_for_status_var.inc @@ -0,0 +1,88 @@ +# ==== Purpose ==== +# +# Waits until a variable from SHOW STATUS has returned a specified +# value, or until a timeout is reached. +# +# ==== Usage ==== +# +# let $status_var= Threads_connected; +# let $status_var_value= 1; +# --source include/wait_for_status_var.inc +# +# Parameters: +# +# $status_var, $status_var_value +# This macro will wait until the variable of SHOW STATUS +# named $status_var gets the value $status_var_value. See +# the example above. +# +# $status_type= GLOBAL|SESSION +# To specify the type (attribute) of status variable and +# run either SHOW GLOBAL STATUS or SHOW SESSION STATUS. +# +# $status_var_comparsion +# By default, this file waits until $status_var becomes equal to +# $status_var_value. If you want to wait until $status_var +# becomes *unequal* to $status_var_value, set this parameter to the +# string '!=', like this: +# let $status_var_comparsion= !=; +# +# $status_timeout +# The default timeout is 1 minute. You can change the timeout by +# setting $status_timeout. The unit is tenths of seconds. +# + +if (`SELECT STRCMP('$status_type', '') * STRCMP(UPPER('$status_type'), 'SESSION') * STRCMP(UPPER('$status_type'), 'GLOBAL')`) +{ + --echo **** ERROR: Unknown type of variable status_type: allowed values are: SESSION or GLOBAL **** + die; +} + +let $_status_timeout_counter= $status_timeout; +if (!$_status_timeout_counter) +{ + let $_status_timeout_counter= 600; +} + +let $_status_var_comparsion= $status_var_comparsion; +if (!$_status_var_comparsion) +{ + let $_status_var_comparsion= =; +} + +# Get type of variable +let $_is_number= 0; +if (`SELECT '$status_var_value' REGEXP '^[\+\-]*[0-9]+(\.[0-9]+)*\$'`) +{ + let $_is_number= 1; +} + +let $_show_status_value= query_get_value("SHOW $status_type STATUS LIKE '$status_var'", Value, 1); + +# Set way of comparing +let $_query= SELECT NOT('$_show_status_value' $_status_var_comparsion '$status_var_value'); +if ($_is_number) +{ + let $_query= SELECT NOT($_show_status_value $_status_var_comparsion $status_var_value); +} + +while (`$_query`) +{ + if (!$_status_timeout_counter) + { + --echo **** ERROR: failed while waiting for '$status_type' '$status_var' $_status_var_comparsion '$status_var_value' **** + --echo Note: the following output may have changed since the failure was detected + --echo **** Showing STATUS, PROCESSLIST **** + eval SHOW $status_type STATUS LIKE '$status_var'; + SHOW PROCESSLIST; + die; + } + dec $_status_timeout_counter; + sleep 0.1; + let $_show_status_value= query_get_value("SHOW $status_type STATUS LIKE '$status_var'", Value, 1); + let $_query= SELECT NOT('$_show_status_value' $_status_var_comparsion '$status_var_value'); + if ($_is_number) + { + let $_query= SELECT NOT($_show_status_value $_status_var_comparsion $status_var_value); + } +} diff --git a/mysql-test/include/wait_show_condition.inc b/mysql-test/include/wait_show_condition.inc new file mode 100644 index 00000000..b8dd9bdf --- /dev/null +++ b/mysql-test/include/wait_show_condition.inc @@ -0,0 +1,132 @@ +# include/wait_show_condition.inc +# +# SUMMARY +# +# Waits until the show statement ($show_statement) has one or all of the +# rows of the result set for the field ($field) a value which fulfils +# a condition ($condition), or the operation times out. +# +# +# USAGE +# +# All rows of the result must fulfil the condition if $all_rows_fulfil is 1 +# else at least one of the result must fulfil the condition. +# let $wait_for_all= 1; +# let $show_statement= SHOW PROCESSLIST; +# let $field= State; +# let $condition= = 'Updating'; +# --source include/wait_show_condition.inc +# +# OR +# +# let $wait_timeout= 60; # Override default of 30 seconds with 60. +# let $show_statement= SHOW PROCESSLIST; +# let $field= State; +# let $condition= = 'Updating'; +# --source include/wait_show_condition.inc +# +# Please do not use this use routine if you can replace the SHOW statement +# with a select. In such a case include/wait_condition.inc is recommended. +# +# Created: 2009-02-18 mleich +# + +if (!$condition) +{ + --die ERROR IN TEST: the "condition" variable must be set +} + +if (!$field) +{ + --die ERROR IN TEST: the "field" variable must be set +} + +if (!$show_statement) +{ + --die ERROR IN TEST: the "show_statement" variable must be set +} + +let $max_run_time= 30; +if ($wait_timeout) +{ + let $max_run_time= $wait_timeout; +} +# Reset $wait_timeout so that its value won't be used on subsequent +# calls, and default will be used instead. +let $wait_timeout= 0; + +# The smallest timespan till UNIX_TIMESTAMP() gets incremented is ~0 seconds. +# We add one second to avoid the case that somebody measures timespans on a +# real clock with fractions of seconds, detects that n seconds are sufficient, +# assigns n to this routine and suffers because he sometimes gets n - 1 +# seconds in reality. +inc $max_run_time; + +let $found= 0; +let $max_end_time= `SELECT UNIX_TIMESTAMP() + $max_run_time`; + +if ($wait_for_all != 1) +{ + while (`SELECT UNIX_TIMESTAMP() <= $max_end_time AND $found = 0`) + { + # Sleep a bit to avoid too heavy load. + real_sleep 0.2; + let $rowno= 1; + let $process_result= 1; + let $do_loop= 1; + while ($do_loop) + { + let $field_value= query_get_value($show_statement, $field, $rowno); + if (`SELECT '$field_value' $condition`) + { + let $found= 1; + let $do_loop= 0; + } + if ($field_value == No such row) + { + # We are behind the last row of the result set. + let $process_result= 0; + let $do_loop= 0; + } + inc $rowno; + } + } +} + +if ($wait_for_all == 1) +{ + while (`SELECT UNIX_TIMESTAMP() <= $max_end_time AND $found = 0`) + { + # Sleep a bit to avoid too heavy load. + real_sleep 0.2; + let $rowno= 1; + let $process_result= 1; + let $do_loop= 1; + while ($do_loop) + { + let $field_value= query_get_value($show_statement, $field, $rowno); + if ($field_value == No such row) + { + let $found= 1; + let $do_loop= 0; + } + if (`SELECT $found = 0 AND NOT '$field_value' $condition`) + { + let process_result= 0; + let $do_loop= 0; + } + inc $rowno; + } + } +} + +if (!$found) +{ + echo # Timeout in include/wait_show_condition.inc for $condition; + echo # show_statement : $show_statement; + echo # field : $field; + echo # condition : $condition; + echo # max_run_time : $max_run_time; + eval $show_statement; +} + diff --git a/mysql-test/include/wait_until_connected_again.inc b/mysql-test/include/wait_until_connected_again.inc new file mode 100644 index 00000000..deb6ca13 --- /dev/null +++ b/mysql-test/include/wait_until_connected_again.inc @@ -0,0 +1,46 @@ +# +# Include this script to wait until the connection to the +# server has been restored or timeout occurs. +# You should have done --enable_reconnect first +# When you change this file you may have to chance its cousin +# wait_until_disconnected.inc + +--disable_result_log +--disable_query_log +let $counter= 5000; +let $mysql_errno= 9999; +while ($mysql_errno) +{ + --error 0,ER_ACCESS_DENIED_ERROR,ER_SERVER_SHUTDOWN,ER_CONNECTION_KILLED,ER_LOCK_WAIT_TIMEOUT,2002,2006,2013,HA_ERR_NO_ENCRYPTION + select 1; + + dec $counter; + if (!$counter) + { + --die Server failed to restart + } + if (!$mysql_errno) + { + if (!$NO_WSREP) + { + # WSREP: SHOW STATUS queries are allowed even if wsrep + # is not ready. Make sure wsrep is ready before + # returning from this script + source include/wait_wsrep_ready.inc; + } + } + if ($mysql_errno == 1045) + { + let $mysql_errno=0; + } + if ($mysql_errno == 199) + { + let $mysql_errno=0; + } + if ($mysql_errno > 0) + { + --sleep 0.1 + } +} +--enable_query_log +--enable_result_log diff --git a/mysql-test/include/wait_until_count_sessions.inc b/mysql-test/include/wait_until_count_sessions.inc new file mode 100644 index 00000000..245fb68b --- /dev/null +++ b/mysql-test/include/wait_until_count_sessions.inc @@ -0,0 +1,127 @@ +# include/wait_until_count_sessions.inc +# +# SUMMARY +# +# Waits until the passed number ($count_sessions) of concurrent sessions or +# a smaller number was observed via +# SHOW STATUS LIKE 'Threads_connected' +# or the operation times out. +# Note: +# 1. We wait for $current_sessions <= $count_sessions because in the use case +# with count_sessions.inc before and wait_until_count_sessions.inc after +# the core of the test it could happen that the disconnects of sessions +# belonging to the preceding test are not finished. +# sessions at test begin($count_sessions) = m + n +# sessions of the previous test which will be soon disconnected = n (n >= 0) +# sessions at test end ($current sessions, assuming the test disconnects +# all additional sessions) = m +# 2. Starting with 5.1 we could also use +# SELECT COUNT(*) FROM information_schema.processlist +# I stay with "SHOW STATUS LIKE 'Threads_connected'" because this +# runs in all versions 5.0+ +# +# +# USAGE +# +# let $count_sessions= 3; +# --source include/wait_until_count_sessions.inc +# +# OR typical example of a test which uses more than one session +# Such a test could harm successing tests if there is no server shutdown +# and start between. +# +# If the testing box is slow than the disconnect of sessions belonging to +# the current test might happen when the successing test gets executed. +# This means the successing test might see activities like unexpected +# rows within the general log or the PROCESSLIST. +# Example from bug http://bugs.mysql.com/bug.php?id=40377 +# --- bzr_mysql-6.0-rpl/.../r/log_state.result +# +++ bzr_mysql-6.0-rpl/.../r/log_state.reject +# @@ -25,6 +25,7 @@ +# event_time user_host ... command_type argument +# TIMESTAMP USER_HOST ... Query create table t1(f1 int) +# TIMESTAMP USER_HOST ... Query select * from mysql.general_log +# +TIMESTAMP USER_HOST ... Quit +# .... +# +# What to do? +# ----------- +# <start of test> +# # Determine initial number of connections (set $count_sessions) +# --source include/count_sessions.inc +# ... +# connect (con1,.....) +# ... +# connection default; +# ... +# disconnect con1; +# ... +# # Wait until we have reached the initial number of connections +# # or more than the sleep time above (10 seconds) has passed. +# # $count_sessions +# --source include/wait_until_count_sessions.inc +# <end of test> +# +# Important note about tests with unfortunate (= not cooperative +# to successing tests) architecture: +# connection con1; +# send SELECT ..., sleep(10) +# connection default; +# ... +# disconnect con1; +# <end of test> +# should be fixed by +# connection con1; +# send SELECT ..., sleep(10) +# connection default; +# ... +# connect con1; +# reap; +# connection default; +# disconnect con1; +# <end of test> +# and not only by appending include/wait_until_count_sessions.inc etc. +# +# +# EXAMPLE +# +# backup.test, grant3.test +# +# +# Created: +# 2009-01-14 mleich +# Modified: +# 2009-02-24 mleich Fix Bug#43114 wait_until_count_sessions too restrictive, +# random PB failures +# + +let $wait_counter= 100; +if ($wait_timeout) +{ + let $wait_counter= `SELECT $wait_timeout * 10`; +} +# Reset $wait_timeout so that its value won't be used on subsequent +# calls, and default will be used instead. +let $wait_timeout= 0; +while ($wait_counter) +{ + let $current_sessions= query_get_value(SHOW STATUS LIKE 'Threads_connected', Value, 1); + let $success= `SELECT $current_sessions <= $count_sessions`; + if ($success) + { + let $wait_counter= 0; + } + if (!$success) + { + real_sleep 0.1; + dec $wait_counter; + } +} +if (!$success) +{ + --echo # Timeout in wait_until_count_sessions.inc + --echo # Number of sessions expected: <= $count_sessions found: $current_sessions + SHOW PROCESSLIST; + --die Timeout in wait_until_count_sessions.inc +} + diff --git a/mysql-test/include/wait_until_disconnected.inc b/mysql-test/include/wait_until_disconnected.inc new file mode 100644 index 00000000..3854369b --- /dev/null +++ b/mysql-test/include/wait_until_disconnected.inc @@ -0,0 +1,23 @@ +# Include this script after a shutdown to wait until the connection +# to the server has been lost or timeout occurs. +# When you change this file you may have to chance its cousin +# wait_until_connected_again.inc + +--disable_result_log +--disable_query_log +let $counter= 600; +let $mysql_errno= 0; +while (!$mysql_errno) +{ + --error 0,ER_SERVER_SHUTDOWN,ER_CONNECTION_KILLED,2002,2006,2026,2013,5014 + show status; + + dec $counter; + if (!$counter) + { + --die Server failed to disappear + } + --real_sleep 0.1 +} +--enable_query_log +--enable_result_log diff --git a/mysql-test/include/wait_until_no_pidfile.inc b/mysql-test/include/wait_until_no_pidfile.inc new file mode 100644 index 00000000..94484005 --- /dev/null +++ b/mysql-test/include/wait_until_no_pidfile.inc @@ -0,0 +1,30 @@ +# Include this script after a shutdown to wait until the pid file, +# stored in $pid_file, has disappered. + +#--echo $pid_file + +--disable_result_log +--disable_query_log +# Wait one minute +let $counter= 600; +while ($counter) +{ +--error 0,1 +--file_exists $pid_file + if (!$errno) + { + dec $counter; + --real_sleep 0.1 + } + if ($errno) + { + let $counter= 0; + } +} +if (!$errno) +{ + --die Pid file "$pid_file" failed to disappear +} + +--enable_query_log +--enable_result_log diff --git a/mysql-test/include/wait_until_ready.inc b/mysql-test/include/wait_until_ready.inc new file mode 100644 index 00000000..e7a69409 --- /dev/null +++ b/mysql-test/include/wait_until_ready.inc @@ -0,0 +1,34 @@ +# If wsrep patch is enabled, wait for a minute until node is ready. +# Note: include/wait_for_status_var.inc cannot be used here, as server rejects +# all commands except SHOW & SET until its ready. (see wsrep_ready status +# variable) + +--disable_result_log +--disable_query_log +--enable_reconnect + +let $counter= 600; + +# Check if wsrep_ready status variable exists. +if (`SHOW STATUS LIKE 'wsrep_ready'`) +{ + let $wsrep_ready= query_get_value("SHOW STATUS LIKE 'wsrep_ready'", Value, 1); + + while ($wsrep_ready == 'OFF') + { + if (!$counter) + { + echo ===============================================; + echo Node still not ready after a minute, giving up!; + echo ===============================================; + die; + } + dec $counter; + sleep 0.1; + let $wsrep_ready= query_get_value("SHOW STATUS LIKE 'wsrep_ready'", Value, 1); + } +} + +--disable_reconnect +--enable_query_log +--enable_result_log diff --git a/mysql-test/include/wait_until_rows_count.inc b/mysql-test/include/wait_until_rows_count.inc new file mode 100644 index 00000000..f1b79c54 --- /dev/null +++ b/mysql-test/include/wait_until_rows_count.inc @@ -0,0 +1,20 @@ +# include/wait_until_rows_count.inc +# +# SUMMARY +# +# Waits until SELECT count(*) = $count from $table returns true, or +# the operation times out. +# +# USAGE +# +# let $count= 5; +# let $table= t1; +# --source include/wait_until_rows_count.inc +# +# EXAMPLE +# extra/binlog/binlog_insert_delayed.test +# + +let $wait_condition= + select count(*) = $count from $table; +--source include/wait_condition.inc diff --git a/mysql-test/include/wait_wsrep_ready.inc b/mysql-test/include/wait_wsrep_ready.inc new file mode 100644 index 00000000..2dd1ef7f --- /dev/null +++ b/mysql-test/include/wait_wsrep_ready.inc @@ -0,0 +1,18 @@ +# +# If the wsrep plugin is loaded, wait until the wsrep provider becomes +# ready for use. +# + +--disable_query_log +--disable_result_log + +if (`SELECT COUNT(*)=1 FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'wsrep' AND PLUGIN_STATUS='ACTIVE'`) +{ + if (`SELECT @@GLOBAL.WSREP_ON`) + { + --source include/galera_wait_ready.inc + } +} + +--enable_query_log +--enable_result_log diff --git a/mysql-test/include/weight_string.inc b/mysql-test/include/weight_string.inc new file mode 100644 index 00000000..78c013d7 --- /dev/null +++ b/mysql-test/include/weight_string.inc @@ -0,0 +1,68 @@ +select @@collation_connection; + +# +# MDEV-5180 Data type for WEIGHT_STRING is too short in some cases +# +CREATE TABLE t1 AS SELECT 'a' AS a; +SHOW CREATE TABLE t1; +CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; +SHOW CREATE TABLE t2; +SELECT HEX(WEIGHT_STRING(a)) FROM t1; +SELECT HEX(ws) FROM t2; +DROP TABLE t2; +DROP TABLE t1; + +CREATE TABLE t1 AS SELECT REPEAT('a',5) AS a; +SHOW CREATE TABLE t1; +CREATE TABLE t2 AS SELECT WEIGHT_STRING(a) AS ws FROM t1; +SHOW CREATE TABLE t2; +SELECT HEX(WEIGHT_STRING(a)) FROM t1; +SELECT HEX(ws) FROM t2; +DROP TABLE t2; +CREATE TABLE t2 AS SELECT WEIGHT_STRING(a AS CHAR(3)) AS ws FROM t1; +SHOW CREATE TABLE t2; +SELECT HEX(WEIGHT_STRING(a AS CHAR(3))) FROM t1; +SELECT HEX(ws) FROM t2; +DROP TABLE t2; +CREATE TABLE t2 AS SELECT WEIGHT_STRING(a AS CHAR(10)) AS ws FROM t1; +SHOW CREATE TABLE t2; +SELECT HEX(WEIGHT_STRING(a AS CHAR(10))) FROM t1; +SELECT HEX(ws) FROM t2; +DROP TABLE t2; +DROP TABLE t1; +# +# End of MDEV-5180 +# +#enable after fix MDEV-29290 +--disable_view_protocol +select hex(weight_string('a')); +select hex(weight_string('A')); +select hex(weight_string('abc')); +select hex(weight_string('abc' as char(2))); +select hex(weight_string('abc' as char(3))); +select hex(weight_string('abc' as char(5))); + +# Read 2 characters from the source string (the last character is not used). +select hex(weight_string('abc', 1, 2, 0xC0)); +select hex(weight_string('abc', 2, 2, 0xC0)); +select hex(weight_string('abc', 3, 2, 0xC0)); +select hex(weight_string('abc', 4, 2, 0xC0)); +select hex(weight_string('abc', 5, 2, 0xC0)); +select hex(weight_string('abc',25, 2, 0xC0)); + +# Read 3 characters from the source string (the entire string is used). +select hex(weight_string('abc', 1, 3, 0xC0)); +select hex(weight_string('abc', 2, 3, 0xC0)); +select hex(weight_string('abc', 3, 3, 0xC0)); +select hex(weight_string('abc', 4, 3, 0xC0)); +select hex(weight_string('abc', 5, 3, 0xC0)); +select hex(weight_string('abc',25, 3, 0xC0)); + +# Read 4 characters from the source string (extra space is added) +select hex(weight_string('abc', 1, 4, 0xC0)); +select hex(weight_string('abc', 2, 4, 0xC0)); +select hex(weight_string('abc', 3, 4, 0xC0)); +select hex(weight_string('abc', 4, 4, 0xC0)); +select hex(weight_string('abc', 5, 4, 0xC0)); +select hex(weight_string('abc',25, 4, 0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_8140.inc b/mysql-test/include/weight_string_8140.inc new file mode 100644 index 00000000..5e1351e3 --- /dev/null +++ b/mysql-test/include/weight_string_8140.inc @@ -0,0 +1,38 @@ +#enable after fix MDEV-29290 +--disable_view_protocol +select collation(cast(0x8140 as char)); +select hex(weight_string(cast(0x6141 as char))); +select hex(weight_string(cast(0x8140 as char))); +select hex(weight_string(cast(0x8140 as char) as char(1))); +select hex(weight_string(cast(0x81408140 as char) as char(1))); +select hex(weight_string(cast(0x8140 as char) as char(3))); +select hex(weight_string(cast(0x81408140 as char) as char(3))); +select hex(weight_string(cast(0x408140 as char) as char(3))); +select hex(weight_string(cast(0x4081408140 as char) as char(3))); +select hex(weight_string(cast(0x40814081408140 as char) as char(3))); +select hex(weight_string(cast(0x4040814081408140 as char) as char(3))); + +# Read 2 characters from the source string (the last character is not used) +select hex(weight_string(cast(0x814081408140 as char), 1, 2, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 2, 2, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 3, 2, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 4, 2, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 5, 2, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char),25, 2, 0xC0)); + +# Read 3 characters from the source string (the entire string is used) +select hex(weight_string(cast(0x814081408140 as char), 1, 3, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 2, 3, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 3, 3, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 4, 3, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 5, 3, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char),25, 3, 0xC0)); + +# Read 4 characters from the source string (extra space is added) +select hex(weight_string(cast(0x814081408140 as char), 1, 4, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 2, 4, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 3, 4, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 4, 4, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char), 5, 4, 0xC0)); +select hex(weight_string(cast(0x814081408140 as char),25, 4, 0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_8EA1.inc b/mysql-test/include/weight_string_8EA1.inc new file mode 100644 index 00000000..95a50293 --- /dev/null +++ b/mysql-test/include/weight_string_8EA1.inc @@ -0,0 +1,38 @@ +#enable after fix MDEV-29290 +--disable_view_protocol +select collation(cast(0xA1A1 as char)); +select hex(weight_string(cast(0x6141 as char))); +select hex(weight_string(cast(0x8EA1 as char))); +select hex(weight_string(cast(0x8EA1 as char) as char(1))); +select hex(weight_string(cast(0x8EA18EA1 as char) as char(1))); +select hex(weight_string(cast(0x8EA1 as char) as char(3))); +select hex(weight_string(cast(0x8EA18EA1 as char) as char(3))); +select hex(weight_string(cast(0x408EA1 as char) as char(3))); +select hex(weight_string(cast(0x408EA18EA1 as char) as char(3))); +select hex(weight_string(cast(0x408EA18EA18EA1 as char) as char(3))); +select hex(weight_string(cast(0x40408EA18EA18EA1 as char) as char(3))); + +# Read 2 characters from the source string (the last character is not used) +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 1, 2, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 2, 2, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 3, 2, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 4, 2, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 5, 2, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char),25, 2, 0xC0)); + +# Read 3 characters from the source string (the entire string is used) +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 1, 3, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 2, 3, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 3, 3, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 4, 3, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 5, 3, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char),25, 3, 0xC0)); + +# Read 4 characters from the source string (extra space is added) +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 1, 4, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 2, 4, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 3, 4, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 4, 4, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char), 5, 4, 0xC0)); +select hex(weight_string(cast(0x8EA18EA18EA1 as char),25, 4, 0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_8FA2C3.inc b/mysql-test/include/weight_string_8FA2C3.inc new file mode 100644 index 00000000..bce5c816 --- /dev/null +++ b/mysql-test/include/weight_string_8FA2C3.inc @@ -0,0 +1,38 @@ +#enable after fix MDEV-29290 +--disable_view_protocol +select collation(cast(0x8FA2C3 as char)); +select hex(weight_string(cast(0x6141 as char))); +select hex(weight_string(cast(0x8FA2C3 as char))); +select hex(weight_string(cast(0x8FA2C3 as char) as char(1))); +select hex(weight_string(cast(0x8FA2C38FA2C3 as char) as char(1))); +select hex(weight_string(cast(0x8FA2C3 as char) as char(3))); +select hex(weight_string(cast(0x8FA2C38FA2C3 as char) as char(3))); +select hex(weight_string(cast(0x408FA2C3 as char) as char(3))); +select hex(weight_string(cast(0x408FA2C38FA2C3 as char) as char(3))); +select hex(weight_string(cast(0x408FA2C38FA2C38FA2C3 as char) as char(3))); +select hex(weight_string(cast(0x40408FA2C38FA2C38FA2C3 as char) as char(3))); + +# Read 2 characters from the source string (the last character is not used) +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 1, 2, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 2, 2, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 3, 2, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 4, 2, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 5, 2, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char),25, 2, 0xC0)); + +# Read 3 characters from the source string (the entire string is used) +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 1, 3, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 2, 3, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 3, 3, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 4, 3, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 5, 3, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char),25, 3, 0xC0)); + +# Read 4 characters from the source string (extra space is added) +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 1, 4, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 2, 4, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 3, 4, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 4, 4, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char), 5, 4, 0xC0)); +select hex(weight_string(cast(0x8FA2C38FA2C38FA2C3 as char),25, 4, 0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_A1A1.inc b/mysql-test/include/weight_string_A1A1.inc new file mode 100644 index 00000000..8a511106 --- /dev/null +++ b/mysql-test/include/weight_string_A1A1.inc @@ -0,0 +1,38 @@ +#enable after fix MDEV-29290 +--disable_view_protocol +select collation(cast(0xA1A1 as char)); +select hex(weight_string(cast(0x6141 as char))); +select hex(weight_string(cast(0xA1A1 as char))); +select hex(weight_string(cast(0xA1A1 as char) as char(1))); +select hex(weight_string(cast(0xA1A1A1A1 as char) as char(1))); +select hex(weight_string(cast(0xA1A1 as char) as char(3))); +select hex(weight_string(cast(0xA1A1A1A1 as char) as char(3))); +select hex(weight_string(cast(0x40A1A1 as char) as char(3))); +select hex(weight_string(cast(0x40A1A1A1A1 as char) as char(3))); +select hex(weight_string(cast(0x40A1A1A1A1A1A1 as char) as char(3))); +select hex(weight_string(cast(0x4040A1A1A1A1A1A1 as char) as char(3))); + +# Read 2 characters from the source string (the last character is not used) +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 1, 2, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 2, 2, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 3, 2, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 4, 2, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 5, 2, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char),25, 2, 0xC0)); + +# Read 3 characters from the source string (the entire string is used) +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 1, 3, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 2, 3, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 3, 3, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 4, 3, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 5, 3, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char),25, 3, 0xC0)); + +# Read 4 characters from the source string (extra space is added) +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 1, 4, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 2, 4, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 3, 4, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 4, 4, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char), 5, 4, 0xC0)); +select hex(weight_string(cast(0xA1A1A1A1A1A1 as char),25, 4, 0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_chde.inc b/mysql-test/include/weight_string_chde.inc new file mode 100644 index 00000000..54852a8c --- /dev/null +++ b/mysql-test/include/weight_string_chde.inc @@ -0,0 +1,62 @@ +#enable after fix MDEV-29290 +--disable_view_protocol +select @@collation_connection; +select collation(cast(_latin1 0xDF as char)); +select hex(weight_string('s')); +select hex(weight_string(cast(_latin1 0xDF as char))); +select hex(weight_string(cast(_latin1 0xDF as char) as char(1))); +select hex(weight_string('c')); +select hex(weight_string('h')); +select hex(weight_string('ch')); +select hex(weight_string('i')); +# contraction 'ch' plus expansion 'sharp s' +select hex(weight_string(cast(_latin1 0x6368DF as char))); +select hex(weight_string(cast(_latin1 0x6368DF as char) as char(1))); +select hex(weight_string(cast(_latin1 0x6368DF as char) as char(2))); +select hex(weight_string(cast(_latin1 0x6368DF as char) as char(3))); +select hex(weight_string(cast(_latin1 0x6368DF as char) as char(4))); +# expansion 'sharp s' plus contraction 'ch' +select hex(weight_string(cast(_latin1 0xDF6368 as char))); +select hex(weight_string(cast(_latin1 0xDF6368 as char) as char(1))); +select hex(weight_string(cast(_latin1 0xDF6368 as char) as char(2))); +select hex(weight_string(cast(_latin1 0xDF6368 as char) as char(3))); +select hex(weight_string(cast(_latin1 0xDF6368 as char) as char(4))); + +# contraction 'ch' plus expansion 'sharp s' +select hex(weight_string(cast(_latin1 0x6368DF as char), 1, 2, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char), 2, 2, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char), 3, 2, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char), 4, 2, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char),25, 2, 0xC0)); + +select hex(weight_string(cast(_latin1 0x6368DF as char), 1, 3, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char), 2, 3, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char), 3, 3, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char), 4, 3, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char),25, 3, 0xC0)); + +select hex(weight_string(cast(_latin1 0x6368DF as char), 1, 4, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char), 2, 4, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char), 3, 4, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char), 4, 4, 0xC0)); +select hex(weight_string(cast(_latin1 0x6368DF as char),25, 4, 0xC0)); + +# expansion 'sharp s' plus contraction 'ch' +select hex(weight_string(cast(_latin1 0xDF6368 as char), 1, 2,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char), 2, 2,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char), 3, 2,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char), 4, 2,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char),25, 2,0xC0)); + +select hex(weight_string(cast(_latin1 0xDF6368 as char), 1, 3,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char), 2, 3,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char), 3, 3,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char), 4, 3,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char),25, 3,0xC0)); + +select hex(weight_string(cast(_latin1 0xDF6368 as char), 1, 4,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char), 2, 4,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char), 3, 4,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char), 4, 4,0xC0)); +select hex(weight_string(cast(_latin1 0xDF6368 as char),25, 4,0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_euro.inc b/mysql-test/include/weight_string_euro.inc new file mode 100644 index 00000000..835c515b --- /dev/null +++ b/mysql-test/include/weight_string_euro.inc @@ -0,0 +1,33 @@ +#enable after fix MDEV-29290 +--disable_view_protocol +select @@collation_connection; +select hex(weight_string(cast(_latin1 0x80 as char))); +select hex(weight_string(cast(_latin1 0x808080 as char))); +select hex(weight_string(cast(_latin1 0x808080 as char) as char(2))); +select hex(weight_string(cast(_latin1 0x808080 as char) as char(3))); +select hex(weight_string(cast(_latin1 0x808080 as char) as char(5))); + +# Read 2 characters from the source string (the last character is not used). +select hex(weight_string(cast(_latin1 0x808080 as char), 1, 2, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 2, 2, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 3, 2, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 4, 2, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 5, 2, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char),25, 2, 0xC0)); + +# Read 3 characters from the source string (the entire string is used). +select hex(weight_string(cast(_latin1 0x808080 as char), 1, 3, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 2, 3, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 3, 3, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 4, 3, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 5, 3, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char),25, 3, 0xC0)); + +# Read 4 characters from the source string (extra space is added) +select hex(weight_string(cast(_latin1 0x808080 as char), 1, 4, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 2, 4, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 3, 4, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 4, 4, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char), 5, 4, 0xC0)); +select hex(weight_string(cast(_latin1 0x808080 as char),25, 4, 0xC0)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_l1.inc b/mysql-test/include/weight_string_l1.inc new file mode 100644 index 00000000..20b353c7 --- /dev/null +++ b/mysql-test/include/weight_string_l1.inc @@ -0,0 +1,13 @@ +#enable after fix MDEV-29290 +--disable_view_protocol +select @@collation_connection; +select hex(weight_string('a' LEVEL 1)); +select hex(weight_string('A' LEVEL 1)); +select hex(weight_string('abc' LEVEL 1)); +select hex(weight_string('abc' as char(2) LEVEL 1)); +select hex(weight_string('abc' as char(3) LEVEL 1)); +select hex(weight_string('abc' as char(5) LEVEL 1)); +select hex(weight_string('abc' as char(5) LEVEL 1 REVERSE)); +select hex(weight_string('abc' as char(5) LEVEL 1 DESC)); +select hex(weight_string('abc' as char(5) LEVEL 1 DESC REVERSE)); +--enable_view_protocol diff --git a/mysql-test/include/weight_string_l12.inc b/mysql-test/include/weight_string_l12.inc new file mode 100644 index 00000000..4ecde8f5 --- /dev/null +++ b/mysql-test/include/weight_string_l12.inc @@ -0,0 +1,5 @@ +select @@collation_connection; +select hex(weight_string('a' LEVEL 1,2)); +select hex(weight_string('a' LEVEL 1-2)); +select hex(weight_string('A' LEVEL 1,2)); +select hex(weight_string('A' LEVEL 1-2)); diff --git a/mysql-test/include/weight_string_l14.inc b/mysql-test/include/weight_string_l14.inc new file mode 100644 index 00000000..2add6470 --- /dev/null +++ b/mysql-test/include/weight_string_l14.inc @@ -0,0 +1,37 @@ +select @@collation_connection; +select hex(weight_string('a' LEVEL 1,3)); +select hex(weight_string('a' LEVEL 1-3)); +select hex(weight_string('A' LEVEL 1,3)); +select hex(weight_string('A' LEVEL 1-3)); + +select hex(weight_string('a' LEVEL 1,4)); +select hex(weight_string('a' LEVEL 1-4)); +select hex(weight_string('A' LEVEL 1,4)); +select hex(weight_string('A' LEVEL 1-4)); + +select hex(weight_string('a' LEVEL 2,3)); +select hex(weight_string('a' LEVEL 2-3)); +select hex(weight_string('A' LEVEL 2,3)); +select hex(weight_string('A' LEVEL 2-3)); + +select hex(weight_string('a' LEVEL 2,4)); +select hex(weight_string('a' LEVEL 2-4)); +select hex(weight_string('A' LEVEL 2,4)); +select hex(weight_string('A' LEVEL 2-4)); + +select hex(weight_string('a' LEVEL 3,4)); +select hex(weight_string('a' LEVEL 3-4)); +select hex(weight_string('A' LEVEL 3,4)); +select hex(weight_string('A' LEVEL 3-4)); + +select hex(weight_string('a' LEVEL 1,2,3,4)); +select hex(weight_string('a' LEVEL 2,3,4)); +select hex(weight_string('a' LEVEL 1,3,4)); +select hex(weight_string('a' LEVEL 1,2,3)); + +# If any number is less than 1, it is treated as 1. +select hex(weight_string('a' LEVEL 0)); + +#If any number is greater than the maximum, it is treated as the maximum. +select hex(weight_string('a' LEVEL 8)); +select hex(weight_string('a' LEVEL 1,8)); diff --git a/mysql-test/include/weight_string_l2.inc b/mysql-test/include/weight_string_l2.inc new file mode 100644 index 00000000..28f90aa5 --- /dev/null +++ b/mysql-test/include/weight_string_l2.inc @@ -0,0 +1,10 @@ +#enable after fix MDEV-29290 +--disable_view_protocol +select @@collation_connection; +select hex(weight_string('a' LEVEL 2)); +select hex(weight_string('A' LEVEL 2)); +select hex(weight_string('abc' LEVEL 2)); +select hex(weight_string('abc' as char(2) LEVEL 2)); +select hex(weight_string('abc' as char(3) LEVEL 2)); +select hex(weight_string('abc' as char(5) LEVEL 2)); +--disable_view_protocol diff --git a/mysql-test/include/weight_string_l3.inc b/mysql-test/include/weight_string_l3.inc new file mode 100644 index 00000000..cae1dc3b --- /dev/null +++ b/mysql-test/include/weight_string_l3.inc @@ -0,0 +1,10 @@ +select @@collation_connection; +select hex(weight_string('a' LEVEL 3)); +select hex(weight_string('A' LEVEL 3)); +select hex(weight_string('abc' LEVEL 3)); +select hex(weight_string('abc' as char(2) LEVEL 3)); +select hex(weight_string('abc' as char(3) LEVEL 3)); +select hex(weight_string('Abc' as char(5) LEVEL 3)); +select hex(weight_string('Abc' as char(5) LEVEL 3 REVERSE)); +select hex(weight_string('Abc' as char(5) LEVEL 3 DESC)); +select hex(weight_string('Abc' as char(5) LEVEL 3 DESC REVERSE)); diff --git a/mysql-test/include/weight_string_l4.inc b/mysql-test/include/weight_string_l4.inc new file mode 100644 index 00000000..811632bf --- /dev/null +++ b/mysql-test/include/weight_string_l4.inc @@ -0,0 +1,10 @@ +select @@collation_connection; +select hex(weight_string('a' LEVEL 4)); +select hex(weight_string('A' LEVEL 4)); +select hex(weight_string('abc' LEVEL 4)); +select hex(weight_string('abc' as char(2) LEVEL 4)); +select hex(weight_string('abc' as char(3) LEVEL 4)); +select hex(weight_string('abc' as char(5) LEVEL 4)); +select hex(weight_string('abc' as char(5) LEVEL 4 REVERSE)); +select hex(weight_string('abc' as char(5) LEVEL 4 DESC)); +select hex(weight_string('abc' as char(5) LEVEL 4 DESC REVERSE)); diff --git a/mysql-test/include/windows.inc b/mysql-test/include/windows.inc new file mode 100644 index 00000000..88553d8a --- /dev/null +++ b/mysql-test/include/windows.inc @@ -0,0 +1,5 @@ +if (`select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") = 0`) +{ + skip Need windows; +} + diff --git a/mysql-test/include/windows_sys_vars.inc b/mysql-test/include/windows_sys_vars.inc new file mode 100644 index 00000000..1d51ddb5 --- /dev/null +++ b/mysql-test/include/windows_sys_vars.inc @@ -0,0 +1,33 @@ +# +# This file contains default,min and max values for sys variables for windows +# + +--disable_query_log + +SET @default_flush_time = 1800; +SET @min_flush_time = 0; +#SET @max_flush_time = 0; + +SET @default_key_buffer_size= 131072; + +#SET @default_join_buffer_size = 131072; +#SET @min_join_buffer_size = 8200; +#SET @max_join_buffer_size = 4294967295; + +SET @default_max_join_size = 4294967295; +SET @min_max_join_size = 1; +SET @max_max_join_size = 4294967295; + +SET @default_sql_max_join_size = 4294967295; +SET @min_sql_max_join_size = 1; +SET @max_sql_max_join_size = 4294967295; + +SET @default_sql_select_limit = 4294967295; +SET @min_sql_select_limit = 0; +SET @max_sql_select_limit = 4294967295; + +let $default_wait_timeout = 28800; +let $min_wait_timeout = 1; +let $max_wait_timeout = 2147483; + +--enable_query_log diff --git a/mysql-test/include/word_size.combinations b/mysql-test/include/word_size.combinations new file mode 100644 index 00000000..9b58a0c8 --- /dev/null +++ b/mysql-test/include/word_size.combinations @@ -0,0 +1,3 @@ +[32bit] + +[64bit] diff --git a/mysql-test/include/word_size.inc b/mysql-test/include/word_size.inc new file mode 100644 index 00000000..fb796c25 --- /dev/null +++ b/mysql-test/include/word_size.inc @@ -0,0 +1,4 @@ +# +# tests that include this file will be run for an appropriate combination. +# See word_size.combinations for the list of combinations. +# diff --git a/mysql-test/include/world.inc b/mysql-test/include/world.inc new file mode 100644 index 00000000..1451a4ab --- /dev/null +++ b/mysql-test/include/world.inc @@ -0,0 +1,5343 @@ +# +# Populate the world database +# + +# Table Country + +INSERT IGNORE INTO Country VALUES +('AFG','Afghanistan',652090.00,22720000,1), +('NLD','Netherlands',41526.00,15864000,5), +('ANT','Netherlands Antilles',800.00,217000,33), +('ALB','Albania',28748.00,3401200,34), +('DZA','Algeria',2381741.00,31471000,35), +('ASM','American Samoa',199.00,68000,54), +('AND','Andorra',468.00,78000,55), +('AGO','Angola',1246700.00,12878000,56), +('AIA','Anguilla',96.00,8000,62), +('ATG','Antigua and Barbuda',442.00,68000,63), +('ARE','United Arab Emirates',83600.00,2441000,65), +('ARG','Argentina',2780400.00,37032000,69), +('ARM','Armenia',29800.00,3520000,126), +('ABW','Aruba',193.00,103000,129), +('AUS','Australia',7741220.00,18886000,135), +('AZE','Azerbaijan',86600.00,7734000,144), +('BHS','Bahamas',13878.00,307000,148), +('BHR','Bahrain',694.00,617000,149), +('BGD','Bangladesh',143998.00,129155000,150), +('BRB','Barbados',430.00,270000,174), +('BEL','Belgium',30518.00,10239000,179), +('BLZ','Belize',22696.00,241000,185), +('BEN','Benin',112622.00,6097000,187), +('BMU','Bermuda',53.00,65000,191), +('BTN','Bhutan',47000.00,2124000,192), +('BOL','Bolivia',1098581.00,8329000,194), +('BIH','Bosnia and Herzegovina',51197.00,3972000,201), +('BWA','Botswana',581730.00,1622000,204), +('BRA','Brazil',8547403.00,170115000,211), +('GBR','United Kingdom',242900.00,59623400,456), +('VGB','Virgin Islands, British',151.00,21000,537), +('BRN','Brunei',5765.00,328000,538), +('BGR','Bulgaria',110994.00,8190900,539), +('BFA','Burkina Faso',274000.00,11937000,549), +('BDI','Burundi',27834.00,6695000,552), +('CYM','Cayman Islands',264.00,38000,553), +('CHL','Chile',756626.00,15211000,554), +('COK','Cook Islands',236.00,20000,583), +('CRI','Costa Rica',51100.00,4023000,584), +('DJI','Djibouti',23200.00,638000,585), +('DMA','Dominica',751.00,71000,586), +('DOM','Dominican Republic',48511.00,8495000,587), +('ECU','Ecuador',283561.00,12646000,594), +('EGY','Egypt',1001449.00,68470000,608), +('SLV','El Salvador',21041.00,6276000,645), +('ERI','Eritrea',117600.00,3850000,652), +('ESP','Spain',505992.00,39441700,653), +('ZAF','South Africa',1221037.00,40377000,716), +('ETH','Ethiopia',1104300.00,62565000,756), +('FLK','Falkland Islands',12173.00,2000,763), +('FJI','Fiji Islands',18274.00,817000,764), +('PHL','Philippines',300000.00,75967000,766), +('FRO','Faroe Islands',1399.00,43000,901), +('GAB','Gabon',267668.00,1226000,902), +('GMB','Gambia',11295.00,1305000,904), +('GEO','Georgia',69700.00,4968000,905), +('GHA','Ghana',238533.00,20212000,910), +('GIB','Gibraltar',6.00,25000,915), +('GRD','Grenada',344.00,94000,916), +('GRL','Greenland',2166090.00,56000,917), +('GLP','Guadeloupe',1705.00,456000,919), +('GUM','Guam',549.00,168000,921), +('GTM','Guatemala',108889.00,11385000,922), +('GIN','Guinea',245857.00,7430000,926), +('GNB','Guinea-Bissau',36125.00,1213000,927), +('GUY','Guyana',214969.00,861000,928), +('HTI','Haiti',27750.00,8222000,929), +('HND','Honduras',112088.00,6485000,933), +('HKG','Hong Kong',1075.00,6782000,937), +('SJM','Svalbard and Jan Mayen',62422.00,3200,938), +('IDN','Indonesia',1904569.00,212107000,939), +('IND','India',3287263.00,1013662000,1109), +('IRQ','Iraq',438317.00,23115000,1365), +('IRN','Iran',1648195.00,67702000,1380), +('IRL','Ireland',70273.00,3775100,1447), +('ISL','Iceland',103000.00,279000,1449), +('ISR','Israel',21056.00,6217000,1450), +('ITA','Italy',301316.00,57680000,1464), +('TMP','East Timor',14874.00,885000,1522), +('AUT','Austria',83859.00,8091800,1523), +('JAM','Jamaica',10990.00,2583000,1530), +('JPN','Japan',377829.00,126714000,1532), +('YEM','Yemen',527968.00,18112000,1780), +('JOR','Jordan',88946.00,5083000,1786), +('CXR','Christmas Island',135.00,2500,1791), +('YUG','Yugoslavia',102173.00,10640000,1792), +('KHM','Cambodia',181035.00,11168000,1800), +('CMR','Cameroon',475442.00,15085000,1804), +('CAN','Canada',9970610.00,31147000,1822), +('CPV','Cape Verde',4033.00,428000,1859), +('KAZ','Kazakstan',2724900.00,16223000,1864), +('KEN','Kenya',580367.00,30080000,1881), +('CAF','Central African Republic',622984.00,3615000,1889), +('CHN','China',9572900.00,1277558000,1891), +('KGZ','Kyrgyzstan',199900.00,4699000,2253), +('KIR','Kiribati',726.00,83000,2256), +('COL','Colombia',1138914.00,42321000,2257), +('COM','Comoros',1862.00,578000,2295), +('COG','Congo',342000.00,2943000,2296), +('COD','Congo, The Democratic Republic of the',2344858.00,51654000,2298), +('CCK','Cocos (Keeling) Islands',14.00,600,2317), +('PRK','North Korea',120538.00,24039000,2318), +('KOR','South Korea',99434.00,46844000,2331), +('GRC','Greece',131626.00,10545700,2401), +('HRV','Croatia',56538.00,4473000,2409), +('CUB','Cuba',110861.00,11201000,2413), +('KWT','Kuwait',17818.00,1972000,2429), +('CYP','Cyprus',9251.00,754700,2430), +('LAO','Laos',236800.00,5433000,2432), +('LVA','Latvia',64589.00,2424200,2434), +('LSO','Lesotho',30355.00,2153000,2437), +('LBN','Lebanon',10400.00,3282000,2438), +('LBR','Liberia',111369.00,3154000,2440), +('LBY','Libyan Arab Jamahiriya',1759540.00,5605000,2441), +('LIE','Liechtenstein',160.00,32300,2446), +('LTU','Lithuania',65301.00,3698500,2447), +('LUX','Luxembourg',2586.00,435700,2452), +('ESH','Western Sahara',266000.00,293000,2453), +('MAC','Macao',18.00,473000,2454), +('MDG','Madagascar',587041.00,15942000,2455), +('MKD','Macedonia',25713.00,2024000,2460), +('MWI','Malawi',118484.00,10925000,2462), +('MDV','Maldives',298.00,286000,2463), +('MYS','Malaysia',329758.00,22244000,2464), +('MLI','Mali',1240192.00,11234000,2482), +('MLT','Malta',316.00,380200,2484), +('MAR','Morocco',446550.00,28351000,2486), +('MHL','Marshall Islands',181.00,64000,2507), +('MTQ','Martinique',1102.00,395000,2508), +('MRT','Mauritania',1025520.00,2670000,2509), +('MUS','Mauritius',2040.00,1158000,2511), +('MYT','Mayotte',373.00,149000,2514), +('MEX','Mexico',1958201.00,98881000,2515), +('FSM','Micronesia, Federated States of',702.00,119000,2689), +('MDA','Moldova',33851.00,4380000,2690), +('MCO','Monaco',1.50,34000,2695), +('MNG','Mongolia',1566500.00,2662000,2696), +('MSR','Montserrat',102.00,11000,2697), +('MOZ','Mozambique',801590.00,19680000,2698), +('MMR','Myanmar',676578.00,45611000,2710), +('NAM','Namibia',824292.00,1726000,2726), +('NRU','Nauru',21.00,12000,2728), +('NPL','Nepal',147181.00,23930000,2729), +('NIC','Nicaragua',130000.00,5074000,2734), +('NER','Niger',1267000.00,10730000,2738), +('NGA','Nigeria',923768.00,111506000,2754), +('NIU','Niue',260.00,2000,2805), +('NFK','Norfolk Island',36.00,2000,2806), +('NOR','Norway',323877.00,4478500,2807), +('CIV','Côte dIvoire',322463.00,14786000,2814), +('OMN','Oman',309500.00,2542000,2821), +('PAK','Pakistan',796095.00,156483000,2831), +('PLW','Palau',459.00,19000,2881), +('PAN','Panama',75517.00,2856000,2882), +('PNG','Papua New Guinea',462840.00,4807000,2884), +('PRY','Paraguay',406752.00,5496000,2885), +('PER','Peru',1285216.00,25662000,2890), +('PCN','Pitcairn',49.00,50,2912), +('MNP','Northern Mariana Islands',464.00,78000,2913), +('PRT','Portugal',91982.00,9997600,2914), +('PRI','Puerto Rico',8875.00,3869000,2919), +('POL','Poland',323250.00,38653600,2928), +('GNQ','Equatorial Guinea',28051.00,453000,2972), +('QAT','Qatar',11000.00,599000,2973), +('FRA','France',551500.00,59225700,2974), +('GUF','French Guiana',90000.00,181000,3014), +('PYF','French Polynesia',4000.00,235000,3016), +('REU','Réunion',2510.00,699000,3017), +('ROM','Romania',238391.00,22455500,3018), +('RWA','Rwanda',26338.00,7733000,3047), +('SWE','Sweden',449964.00,8861400,3048), +('SHN','Saint Helena',314.00,6000,3063), +('KNA','Saint Kitts and Nevis',261.00,38000,3064), +('LCA','Saint Lucia',622.00,154000,3065), +('VCT','Saint Vincent and the Grenadines',388.00,114000,3066), +('SPM','Saint Pierre and Miquelon',242.00,7000,3067), +('DEU','Germany',357022.00,82164700,3068), +('SLB','Solomon Islands',28896.00,444000,3161), +('ZMB','Zambia',752618.00,9169000,3162), +('WSM','Samoa',2831.00,180000,3169), +('SMR','San Marino',61.00,27000,3171), +('STP','Sao Tome and Principe',964.00,147000,3172), +('SAU','Saudi Arabia',2149690.00,21607000,3173), +('SEN','Senegal',196722.00,9481000,3198), +('SYC','Seychelles',455.00,77000,3206), +('SLE','Sierra Leone',71740.00,4854000,3207), +('SGP','Singapore',618.00,3567000,3208), +('SVK','Slovakia',49012.00,5398700,3209), +('SVN','Slovenia',20256.00,1987800,3212), +('SOM','Somalia',637657.00,10097000,3214), +('LKA','Sri Lanka',65610.00,18827000,3217), +('SDN','Sudan',2505813.00,29490000,3225), +('FIN','Finland',338145.00,5171300,3236), +('SUR','Suriname',163265.00,417000,3243), +('SWZ','Swaziland',17364.00,1008000,3244), +('CHE','Switzerland',41284.00,7160400,3248), +('SYR','Syria',185180.00,16125000,3250), +('TJK','Tajikistan',143100.00,6188000,3261), +('TWN','Taiwan',36188.00,22256000,3263), +('TZA','Tanzania',883749.00,33517000,3306), +('DNK','Denmark',43094.00,5330000,3315), +('THA','Thailand',513115.00,61399000,3320), +('TGO','Togo',56785.00,4629000,3332), +('TKL','Tokelau',12.00,2000,3333), +('TON','Tonga',650.00,99000,3334), +('TTO','Trinidad and Tobago',5130.00,1295000,3336), +('TCD','Chad',1284000.00,7651000,3337), +('CZE','Czech Republic',78866.00,10278100,3339), +('TUN','Tunisia',163610.00,9586000,3349), +('TUR','Türkiye',774815.00,66591000,3358), +('TKM','Turkmenistan',488100.00,4459000,3419), +('TCA','Turks and Caicos Islands',430.00,17000,3423), +('TUV','Tuvalu',26.00,12000,3424), +('UGA','Uganda',241038.00,21778000,3425), +('UKR','Ukraine',603700.00,50456000,3426), +('HUN','Hungary',93030.00,10043200,3483), +('URY','Uruguay',175016.00,3337000,3492), +('NCL','New Caledonia',18575.00,214000,3493), +('NZL','New Zealand',270534.00,3862000,3499), +('UZB','Uzbekistan',447400.00,24318000,3503), +('BLR','Belarus',207600.00,10236000,3520), +('WLF','Wallis and Futuna',200.00,15000,3536), +('VUT','Vanuatu',12189.00,190000,3537), +('VAT','Holy See (Vatican City State)',0.40,1000,3538), +('VEN','Venezuela',912050.00,24170000,3539), +('RUS','Russian Federation',17075400.00,146934000,3580), +('VNM','Vietnam',331689.00,79832000,3770), +('EST','Estonia',45227.00,1439200,3791), +('USA','United States',9363520.00,278357000,3813), +('VIR','Virgin Islands, U.S.',347.00,93000,4067), +('ZWE','Zimbabwe',390757.00,11669000,4068), +('PSE','Palestine',6257.00,3101000,4074), +('ATA','Antarctica',13120000.00,0,NULL), +('BVT','Bouvet Island',59.00,0,NULL), +('IOT','British Indian Ocean Territory',78.00,0,NULL), +('SGS','South Georgia and the South Sandwich Islands',3903.00,0,NULL), +('HMD','Heard Island and McDonald Islands',359.00,0,NULL), +('ATF','French Southern territories',7780.00,0,NULL), +('UMI','United States Minor Outlying Islands',16.00,0,NULL); + +# Table City + +INSERT INTO City VALUES +(1,'Kabul','AFG',1780000), +(2,'Qandahar','AFG',237500), +(3,'Herat','AFG',186800), +(4,'Mazar-e-Sharif','AFG',127800), +(5,'Amsterdam','NLD',731200), +(6,'Rotterdam','NLD',593321), +(7,'Haag','NLD',440900), +(8,'Utrecht','NLD',234323), +(9,'Eindhoven','NLD',201843), +(10,'Tilburg','NLD',193238), +(11,'Groningen','NLD',172701), +(12,'Breda','NLD',160398), +(13,'Apeldoorn','NLD',153491), +(14,'Nijmegen','NLD',152463), +(15,'Enschede','NLD',149544), +(16,'Haarlem','NLD',148772), +(17,'Almere','NLD',142465), +(18,'Arnhem','NLD',138020), +(19,'Zaanstad','NLD',135621), +(20,'´s-Hertogenbosch','NLD',129170), +(21,'Amersfoort','NLD',126270), +(22,'Maastricht','NLD',122087), +(23,'Dordrecht','NLD',119811), +(24,'Leiden','NLD',117196), +(25,'Haarlemmermeer','NLD',110722), +(26,'Zoetermeer','NLD',110214), +(27,'Emmen','NLD',105853), +(28,'Zwolle','NLD',105819), +(29,'Ede','NLD',101574), +(30,'Delft','NLD',95268), +(31,'Heerlen','NLD',95052), +(32,'Alkmaar','NLD',92713), +(33,'Willemstad','ANT',2345), +(34,'Tirana','ALB',270000), +(35,'Alger','DZA',2168000), +(36,'Oran','DZA',609823), +(37,'Constantine','DZA',443727), +(38,'Annaba','DZA',222518), +(39,'Batna','DZA',183377), +(40,'Sétif','DZA',179055), +(41,'Sidi Bel Abbès','DZA',153106), +(42,'Skikda','DZA',128747), +(43,'Biskra','DZA',128281), +(44,'Blida (el-Boulaida)','DZA',127284), +(45,'Béjaïa','DZA',117162), +(46,'Mostaganem','DZA',115212), +(47,'Tébessa','DZA',112007), +(48,'Tlemcen (Tilimsen)','DZA',110242), +(49,'Béchar','DZA',107311), +(50,'Tiaret','DZA',100118), +(51,'Ech-Chleff (el-Asnam)','DZA',96794), +(52,'Ghardaïa','DZA',89415), +(53,'Tafuna','ASM',5200), +(54,'Fagatogo','ASM',2323), +(55,'Andorra la Vella','AND',21189), +(56,'Luanda','AGO',2022000), +(57,'Huambo','AGO',163100), +(58,'Lobito','AGO',130000), +(59,'Benguela','AGO',128300), +(60,'Namibe','AGO',118200), +(61,'South Hill','AIA',961), +(62,'The Valley','AIA',595), +(63,'Saint John´s','ATG',24000), +(64,'Dubai','ARE',669181), +(65,'Abu Dhabi','ARE',398695), +(66,'Sharja','ARE',320095), +(67,'al-Ayn','ARE',225970), +(68,'Ajman','ARE',114395), +(69,'Buenos Aires','ARG',2982146), +(70,'La Matanza','ARG',1266461), +(71,'Córdoba','ARG',1157507), +(72,'Rosario','ARG',907718), +(73,'Lomas de Zamora','ARG',622013), +(74,'Quilmes','ARG',559249), +(75,'Almirante Brown','ARG',538918), +(76,'La Plata','ARG',521936), +(77,'Mar del Plata','ARG',512880), +(78,'San Miguel de Tucumán','ARG',470809), +(79,'Lanús','ARG',469735), +(80,'Merlo','ARG',463846), +(81,'General San Martín','ARG',422542), +(82,'Salta','ARG',367550), +(83,'Moreno','ARG',356993), +(84,'Santa Fé','ARG',353063), +(85,'Avellaneda','ARG',353046), +(86,'Tres de Febrero','ARG',352311), +(87,'Morón','ARG',349246), +(88,'Florencio Varela','ARG',315432), +(89,'San Isidro','ARG',306341), +(90,'Tigre','ARG',296226), +(91,'Malvinas Argentinas','ARG',290335), +(92,'Vicente López','ARG',288341), +(93,'Berazategui','ARG',276916), +(94,'Corrientes','ARG',258103), +(95,'San Miguel','ARG',248700), +(96,'Bahía Blanca','ARG',239810), +(97,'Esteban Echeverría','ARG',235760), +(98,'Resistencia','ARG',229212), +(99,'José C. Paz','ARG',221754), +(100,'Paraná','ARG',207041), +(101,'Godoy Cruz','ARG',206998), +(102,'Posadas','ARG',201273), +(103,'Guaymallén','ARG',200595), +(104,'Santiago del Estero','ARG',189947), +(105,'San Salvador de Jujuy','ARG',178748), +(106,'Hurlingham','ARG',170028), +(107,'Neuquén','ARG',167296), +(108,'Ituzaingó','ARG',158197), +(109,'San Fernando','ARG',153036), +(110,'Formosa','ARG',147636), +(111,'Las Heras','ARG',145823), +(112,'La Rioja','ARG',138117), +(113,'San Fernando del Valle de Cata','ARG',134935), +(114,'Río Cuarto','ARG',134355), +(115,'Comodoro Rivadavia','ARG',124104), +(116,'Mendoza','ARG',123027), +(117,'San Nicolás de los Arroyos','ARG',119302), +(118,'San Juan','ARG',119152), +(119,'Escobar','ARG',116675), +(120,'Concordia','ARG',116485), +(121,'Pilar','ARG',113428), +(122,'San Luis','ARG',110136), +(123,'Ezeiza','ARG',99578), +(124,'San Rafael','ARG',94651), +(125,'Tandil','ARG',91101), +(126,'Yerevan','ARM',1248700), +(127,'Gjumri','ARM',211700), +(128,'Vanadzor','ARM',172700), +(129,'Oranjestad','ABW',29034), +(130,'Sydney','AUS',3276207), +(131,'Melbourne','AUS',2865329), +(132,'Brisbane','AUS',1291117), +(133,'Perth','AUS',1096829), +(134,'Adelaide','AUS',978100), +(135,'Canberra','AUS',322723), +(136,'Gold Coast','AUS',311932), +(137,'Newcastle','AUS',270324), +(138,'Central Coast','AUS',227657), +(139,'Wollongong','AUS',219761), +(140,'Hobart','AUS',126118), +(141,'Geelong','AUS',125382), +(142,'Townsville','AUS',109914), +(143,'Cairns','AUS',92273), +(144,'Baku','AZE',1787800), +(145,'Gäncä','AZE',299300), +(146,'Sumqayit','AZE',283000), +(147,'Mingäçevir','AZE',93900), +(148,'Nassau','BHS',172000), +(149,'al-Manama','BHR',148000), +(150,'Dhaka','BGD',3612850), +(151,'Chittagong','BGD',1392860), +(152,'Khulna','BGD',663340), +(153,'Rajshahi','BGD',294056), +(154,'Narayanganj','BGD',202134), +(155,'Rangpur','BGD',191398), +(156,'Mymensingh','BGD',188713), +(157,'Barisal','BGD',170232), +(158,'Tungi','BGD',168702), +(159,'Jessore','BGD',139710), +(160,'Comilla','BGD',135313), +(161,'Nawabganj','BGD',130577), +(162,'Dinajpur','BGD',127815), +(163,'Bogra','BGD',120170), +(164,'Sylhet','BGD',117396), +(165,'Brahmanbaria','BGD',109032), +(166,'Tangail','BGD',106004), +(167,'Jamalpur','BGD',103556), +(168,'Pabna','BGD',103277), +(169,'Naogaon','BGD',101266), +(170,'Sirajganj','BGD',99669), +(171,'Narsinghdi','BGD',98342), +(172,'Saidpur','BGD',96777), +(173,'Gazipur','BGD',96717), +(174,'Bridgetown','BRB',6070), +(175,'Antwerpen','BEL',446525), +(176,'Gent','BEL',224180), +(177,'Charleroi','BEL',200827), +(178,'Liège','BEL',185639), +(179,'Bruxelles [Brussel]','BEL',133859), +(180,'Brugge','BEL',116246), +(181,'Schaerbeek','BEL',105692), +(182,'Namur','BEL',105419), +(183,'Mons','BEL',90935), +(184,'Belize City','BLZ',55810), +(185,'Belmopan','BLZ',7105), +(186,'Cotonou','BEN',536827), +(187,'Porto-Novo','BEN',194000), +(188,'Djougou','BEN',134099), +(189,'Parakou','BEN',103577), +(190,'Saint George','BMU',1800), +(191,'Hamilton','BMU',1200), +(192,'Thimphu','BTN',22000), +(193,'Santa Cruz de la Sierra','BOL',935361), +(194,'La Paz','BOL',758141), +(195,'El Alto','BOL',534466), +(196,'Cochabamba','BOL',482800), +(197,'Oruro','BOL',223553), +(198,'Sucre','BOL',178426), +(199,'Potosí','BOL',140642), +(200,'Tarija','BOL',125255); +INSERT INTO City VALUES +(201,'Sarajevo','BIH',360000), +(202,'Banja Luka','BIH',143079), +(203,'Zenica','BIH',96027), +(204,'Gaborone','BWA',213017), +(205,'Francistown','BWA',101805), +(206,'São Paulo','BRA',9968485), +(207,'Rio de Janeiro','BRA',5598953), +(208,'Salvador','BRA',2302832), +(209,'Belo Horizonte','BRA',2139125), +(210,'Fortaleza','BRA',2097757), +(211,'Brasília','BRA',1969868), +(212,'Curitiba','BRA',1584232), +(213,'Recife','BRA',1378087), +(214,'Porto Alegre','BRA',1314032), +(215,'Manaus','BRA',1255049), +(216,'Belém','BRA',1186926), +(217,'Guarulhos','BRA',1095874), +(218,'Goiânia','BRA',1056330), +(219,'Campinas','BRA',950043), +(220,'São Gonçalo','BRA',869254), +(221,'Nova Iguaçu','BRA',862225), +(222,'São Luís','BRA',837588), +(223,'Maceió','BRA',786288), +(224,'Duque de Caxias','BRA',746758), +(225,'São Bernardo do Campo','BRA',723132), +(226,'Teresina','BRA',691942), +(227,'Natal','BRA',688955), +(228,'Osasco','BRA',659604), +(229,'Campo Grande','BRA',649593), +(230,'Santo André','BRA',630073), +(231,'João Pessoa','BRA',584029), +(232,'Jaboatão dos Guararapes','BRA',558680), +(233,'Contagem','BRA',520801), +(234,'São José dos Campos','BRA',515553), +(235,'Uberlândia','BRA',487222), +(236,'Feira de Santana','BRA',479992), +(237,'Ribeirão Preto','BRA',473276), +(238,'Sorocaba','BRA',466823), +(239,'Niterói','BRA',459884), +(240,'Cuiabá','BRA',453813), +(241,'Juiz de Fora','BRA',450288), +(242,'Aracaju','BRA',445555), +(243,'São João de Meriti','BRA',440052), +(244,'Londrina','BRA',432257), +(245,'Joinville','BRA',428011), +(246,'Belford Roxo','BRA',425194), +(247,'Santos','BRA',408748), +(248,'Ananindeua','BRA',400940), +(249,'Campos dos Goytacazes','BRA',398418), +(250,'Mauá','BRA',375055), +(251,'Carapicuíba','BRA',357552), +(252,'Olinda','BRA',354732), +(253,'Campina Grande','BRA',352497), +(254,'São José do Rio Preto','BRA',351944), +(255,'Caxias do Sul','BRA',349581), +(256,'Moji das Cruzes','BRA',339194), +(257,'Diadema','BRA',335078), +(258,'Aparecida de Goiânia','BRA',324662), +(259,'Piracicaba','BRA',319104), +(260,'Cariacica','BRA',319033), +(261,'Vila Velha','BRA',318758), +(262,'Pelotas','BRA',315415), +(263,'Bauru','BRA',313670), +(264,'Porto Velho','BRA',309750), +(265,'Serra','BRA',302666), +(266,'Betim','BRA',302108), +(267,'Jundíaí','BRA',296127), +(268,'Canoas','BRA',294125), +(269,'Franca','BRA',290139), +(270,'São Vicente','BRA',286848), +(271,'Maringá','BRA',286461), +(272,'Montes Claros','BRA',286058), +(273,'Anápolis','BRA',282197), +(274,'Florianópolis','BRA',281928), +(275,'Petrópolis','BRA',279183), +(276,'Itaquaquecetuba','BRA',270874), +(277,'Vitória','BRA',270626), +(278,'Ponta Grossa','BRA',268013), +(279,'Rio Branco','BRA',259537), +(280,'Foz do Iguaçu','BRA',259425), +(281,'Macapá','BRA',256033), +(282,'Ilhéus','BRA',254970), +(283,'Vitória da Conquista','BRA',253587), +(284,'Uberaba','BRA',249225), +(285,'Paulista','BRA',248473), +(286,'Limeira','BRA',245497), +(287,'Blumenau','BRA',244379), +(288,'Caruaru','BRA',244247), +(289,'Santarém','BRA',241771), +(290,'Volta Redonda','BRA',240315), +(291,'Novo Hamburgo','BRA',239940), +(292,'Caucaia','BRA',238738), +(293,'Santa Maria','BRA',238473), +(294,'Cascavel','BRA',237510), +(295,'Guarujá','BRA',237206), +(296,'Ribeirão das Neves','BRA',232685), +(297,'Governador Valadares','BRA',231724), +(298,'Taubaté','BRA',229130), +(299,'Imperatriz','BRA',224564), +(300,'Gravataí','BRA',223011), +(301,'Embu','BRA',222223), +(302,'Mossoró','BRA',214901), +(303,'Várzea Grande','BRA',214435), +(304,'Petrolina','BRA',210540), +(305,'Barueri','BRA',208426), +(306,'Viamão','BRA',207557), +(307,'Ipatinga','BRA',206338), +(308,'Juazeiro','BRA',201073), +(309,'Juazeiro do Norte','BRA',199636), +(310,'Taboão da Serra','BRA',197550), +(311,'São José dos Pinhais','BRA',196884), +(312,'Magé','BRA',196147), +(313,'Suzano','BRA',195434), +(314,'São Leopoldo','BRA',189258), +(315,'Marília','BRA',188691), +(316,'São Carlos','BRA',187122), +(317,'Sumaré','BRA',186205), +(318,'Presidente Prudente','BRA',185340), +(319,'Divinópolis','BRA',185047), +(320,'Sete Lagoas','BRA',182984), +(321,'Rio Grande','BRA',182222), +(322,'Itabuna','BRA',182148), +(323,'Jequié','BRA',179128), +(324,'Arapiraca','BRA',178988), +(325,'Colombo','BRA',177764), +(326,'Americana','BRA',177409), +(327,'Alvorada','BRA',175574), +(328,'Araraquara','BRA',174381), +(329,'Itaboraí','BRA',173977), +(330,'Santa Bárbara d´Oeste','BRA',171657), +(331,'Nova Friburgo','BRA',170697), +(332,'Jacareí','BRA',170356), +(333,'Araçatuba','BRA',169303), +(334,'Barra Mansa','BRA',168953), +(335,'Praia Grande','BRA',168434), +(336,'Marabá','BRA',167795), +(337,'Criciúma','BRA',167661), +(338,'Boa Vista','BRA',167185), +(339,'Passo Fundo','BRA',166343), +(340,'Dourados','BRA',164716), +(341,'Santa Luzia','BRA',164704), +(342,'Rio Claro','BRA',163551), +(343,'Maracanaú','BRA',162022), +(344,'Guarapuava','BRA',160510), +(345,'Rondonópolis','BRA',155115), +(346,'São José','BRA',155105), +(347,'Cachoeiro de Itapemirim','BRA',155024), +(348,'Nilópolis','BRA',153383), +(349,'Itapevi','BRA',150664), +(350,'Cabo de Santo Agostinho','BRA',149964), +(351,'Camaçari','BRA',149146), +(352,'Sobral','BRA',146005), +(353,'Itajaí','BRA',145197), +(354,'Chapecó','BRA',144158), +(355,'Cotia','BRA',140042), +(356,'Lages','BRA',139570), +(357,'Ferraz de Vasconcelos','BRA',139283), +(358,'Indaiatuba','BRA',135968), +(359,'Hortolândia','BRA',135755), +(360,'Caxias','BRA',133980), +(361,'São Caetano do Sul','BRA',133321), +(362,'Itu','BRA',132736), +(363,'Nossa Senhora do Socorro','BRA',131351), +(364,'Parnaíba','BRA',129756), +(365,'Poços de Caldas','BRA',129683), +(366,'Teresópolis','BRA',128079), +(367,'Barreiras','BRA',127801), +(368,'Castanhal','BRA',127634), +(369,'Alagoinhas','BRA',126820), +(370,'Itapecerica da Serra','BRA',126672), +(371,'Uruguaiana','BRA',126305), +(372,'Paranaguá','BRA',126076), +(373,'Ibirité','BRA',125982), +(374,'Timon','BRA',125812), +(375,'Luziânia','BRA',125597), +(376,'Macaé','BRA',125597), +(377,'Teófilo Otoni','BRA',124489), +(378,'Moji-Guaçu','BRA',123782), +(379,'Palmas','BRA',121919), +(380,'Pindamonhangaba','BRA',121904), +(381,'Francisco Morato','BRA',121197), +(382,'Bagé','BRA',120793), +(383,'Sapucaia do Sul','BRA',120217), +(384,'Cabo Frio','BRA',119503), +(385,'Itapetininga','BRA',119391), +(386,'Patos de Minas','BRA',119262), +(387,'Camaragibe','BRA',118968), +(388,'Bragança Paulista','BRA',116929), +(389,'Queimados','BRA',115020), +(390,'Araguaína','BRA',114948), +(391,'Garanhuns','BRA',114603), +(392,'Vitória de Santo Antão','BRA',113595), +(393,'Santa Rita','BRA',113135), +(394,'Barbacena','BRA',113079), +(395,'Abaetetuba','BRA',111258), +(396,'Jaú','BRA',109965), +(397,'Lauro de Freitas','BRA',109236), +(398,'Franco da Rocha','BRA',108964), +(399,'Teixeira de Freitas','BRA',108441), +(400,'Varginha','BRA',108314); +INSERT IGNORE INTO City VALUES +(401,'Ribeirão Pires','BRA',108121), +(402,'Sabará','BRA',107781), +(403,'Catanduva','BRA',107761), +(404,'Rio Verde','BRA',107755), +(405,'Botucatu','BRA',107663), +(406,'Colatina','BRA',107354), +(407,'Santa Cruz do Sul','BRA',106734), +(408,'Linhares','BRA',106278), +(409,'Apucarana','BRA',105114), +(410,'Barretos','BRA',104156), +(411,'Guaratinguetá','BRA',103433), +(412,'Cachoeirinha','BRA',103240), +(413,'Codó','BRA',103153), +(414,'Jaraguá do Sul','BRA',102580), +(415,'Cubatão','BRA',102372), +(416,'Itabira','BRA',102217), +(417,'Itaituba','BRA',101320), +(418,'Araras','BRA',101046), +(419,'Resende','BRA',100627), +(420,'Atibaia','BRA',100356), +(421,'Pouso Alegre','BRA',100028), +(422,'Toledo','BRA',99387), +(423,'Crato','BRA',98965), +(424,'Passos','BRA',98570), +(425,'Araguari','BRA',98399), +(426,'São José de Ribamar','BRA',98318), +(427,'Pinhais','BRA',98198), +(428,'Sertãozinho','BRA',98140), +(429,'Conselheiro Lafaiete','BRA',97507), +(430,'Paulo Afonso','BRA',97291), +(431,'Angra dos Reis','BRA',96864), +(432,'Eunápolis','BRA',96610), +(433,'Salto','BRA',96348), +(434,'Ourinhos','BRA',96291), +(435,'Parnamirim','BRA',96210), +(436,'Jacobina','BRA',96131), +(437,'Coronel Fabriciano','BRA',95933), +(438,'Birigui','BRA',94685), +(439,'Tatuí','BRA',93897), +(440,'Ji-Paraná','BRA',93346), +(441,'Bacabal','BRA',93121), +(442,'Cametá','BRA',92779), +(443,'Guaíba','BRA',92224), +(444,'São Lourenço da Mata','BRA',91999), +(445,'Santana do Livramento','BRA',91779), +(446,'Votorantim','BRA',91777), +(447,'Campo Largo','BRA',91203), +(448,'Patos','BRA',90519), +(449,'Ituiutaba','BRA',90507), +(450,'Corumbá','BRA',90111), +(451,'Palhoça','BRA',89465), +(452,'Barra do Piraí','BRA',89388), +(453,'Bento Gonçalves','BRA',89254), +(454,'Poá','BRA',89236), +(455,'Águas Lindas de Goiás','BRA',89200), +(456,'London','GBR',7285000), +(457,'Birmingham','GBR',1013000), +(458,'Glasgow','GBR',619680), +(459,'Liverpool','GBR',461000), +(460,'Edinburgh','GBR',450180), +(461,'Sheffield','GBR',431607), +(462,'Manchester','GBR',430000), +(463,'Leeds','GBR',424194), +(464,'Bristol','GBR',402000), +(465,'Cardiff','GBR',321000), +(466,'Coventry','GBR',304000), +(467,'Leicester','GBR',294000), +(468,'Bradford','GBR',289376), +(469,'Belfast','GBR',287500), +(470,'Nottingham','GBR',287000), +(471,'Kingston upon Hull','GBR',262000), +(472,'Plymouth','GBR',253000), +(473,'Stoke-on-Trent','GBR',252000), +(474,'Wolverhampton','GBR',242000), +(475,'Derby','GBR',236000), +(476,'Swansea','GBR',230000), +(477,'Southampton','GBR',216000), +(478,'Aberdeen','GBR',213070), +(479,'Northampton','GBR',196000), +(480,'Dudley','GBR',192171), +(481,'Portsmouth','GBR',190000), +(482,'Newcastle upon Tyne','GBR',189150), +(483,'Sunderland','GBR',183310), +(484,'Luton','GBR',183000), +(485,'Swindon','GBR',180000), +(486,'Southend-on-Sea','GBR',176000), +(487,'Walsall','GBR',174739), +(488,'Bournemouth','GBR',162000), +(489,'Peterborough','GBR',156000), +(490,'Brighton','GBR',156124), +(491,'Blackpool','GBR',151000), +(492,'Dundee','GBR',146690), +(493,'West Bromwich','GBR',146386), +(494,'Reading','GBR',148000), +(495,'Oldbury/Smethwick (Warley)','GBR',145542), +(496,'Middlesbrough','GBR',145000), +(497,'Huddersfield','GBR',143726), +(498,'Oxford','GBR',144000), +(499,'Poole','GBR',141000), +(500,'Bolton','GBR',139020), +(501,'Blackburn','GBR',140000), +(502,'Newport','GBR',139000), +(503,'Preston','GBR',135000), +(504,'Stockport','GBR',132813), +(505,'Norwich','GBR',124000), +(506,'Rotherham','GBR',121380), +(507,'Cambridge','GBR',121000), +(508,'Watford','GBR',113080), +(509,'Ipswich','GBR',114000), +(510,'Slough','GBR',112000), +(511,'Exeter','GBR',111000), +(512,'Cheltenham','GBR',106000), +(513,'Gloucester','GBR',107000), +(514,'Saint Helens','GBR',106293), +(515,'Sutton Coldfield','GBR',106001), +(516,'York','GBR',104425), +(517,'Oldham','GBR',103931), +(518,'Basildon','GBR',100924), +(519,'Worthing','GBR',100000), +(520,'Chelmsford','GBR',97451), +(521,'Colchester','GBR',96063), +(522,'Crawley','GBR',97000), +(523,'Gillingham','GBR',92000), +(524,'Solihull','GBR',94531), +(525,'Rochdale','GBR',94313), +(526,'Birkenhead','GBR',93087), +(527,'Worcester','GBR',95000), +(528,'Hartlepool','GBR',92000), +(529,'Halifax','GBR',91069), +(530,'Woking/Byfleet','GBR',92000), +(531,'Southport','GBR',90959), +(532,'Maidstone','GBR',90878), +(533,'Eastbourne','GBR',90000), +(534,'Grimsby','GBR',89000), +(535,'Saint Helier','GBR',27523), +(536,'Douglas','GBR',23487), +(537,'Road Town','VGB',8000), +(538,'Bandar Seri Begawan','BRN',21484), +(539,'Sofija','BGR',1122302), +(540,'Plovdiv','BGR',342584), +(541,'Varna','BGR',299801), +(542,'Burgas','BGR',195255), +(543,'Ruse','BGR',166467), +(544,'Stara Zagora','BGR',147939), +(545,'Pleven','BGR',121952), +(546,'Sliven','BGR',105530), +(547,'Dobric','BGR',100399), +(548,'umen','BGR',94686), +(549,'Ouagadougou','BFA',824000), +(550,'Bobo-Dioulasso','BFA',300000), +(551,'Koudougou','BFA',105000), +(552,'Bujumbura','BDI',300000), +(553,'George Town','CYM',19600), +(554,'Santiago de Chile','CHL',4703954), +(555,'Puente Alto','CHL',386236), +(556,'Viña del Mar','CHL',312493), +(557,'Valparaíso','CHL',293800), +(558,'Talcahuano','CHL',277752), +(559,'Antofagasta','CHL',251429), +(560,'San Bernardo','CHL',241910), +(561,'Temuco','CHL',233041), +(562,'Concepción','CHL',217664), +(563,'Rancagua','CHL',212977), +(564,'Arica','CHL',189036), +(565,'Talca','CHL',187557), +(566,'Chillán','CHL',178182), +(567,'Iquique','CHL',177892), +(568,'Los Angeles','CHL',158215), +(569,'Puerto Montt','CHL',152194), +(570,'Coquimbo','CHL',143353), +(571,'Osorno','CHL',141468), +(572,'La Serena','CHL',137409), +(573,'Calama','CHL',137265), +(574,'Valdivia','CHL',133106), +(575,'Punta Arenas','CHL',125631), +(576,'Copiapó','CHL',120128), +(577,'Quilpué','CHL',118857), +(578,'Curicó','CHL',115766), +(579,'Ovalle','CHL',94854), +(580,'Coronel','CHL',93061), +(581,'San Pedro de la Paz','CHL',91684), +(582,'Melipilla','CHL',91056), +(583,'Avarua','COK',11900), +(584,'San José','CRI',339131), +(585,'Djibouti','DJI',383000), +(586,'Roseau','DMA',16243), +(587,'Santo Domingo de Guzmán','DOM',1609966), +(588,'Santiago de los Caballeros','DOM',365463), +(589,'La Romana','DOM',140204), +(590,'San Pedro de Macorís','DOM',124735), +(591,'San Francisco de Macorís','DOM',108485), +(592,'San Felipe de Puerto Plata','DOM',89423), +(593,'Guayaquil','ECU',2070040), +(594,'Quito','ECU',1573458), +(595,'Cuenca','ECU',270353), +(596,'Machala','ECU',210368), +(597,'Santo Domingo de los Colorados','ECU',202111), +(598,'Portoviejo','ECU',176413), +(599,'Ambato','ECU',169612), +(600,'Manta','ECU',164739); +INSERT INTO City VALUES +(601,'Duran [Eloy Alfaro]','ECU',152514), +(602,'Ibarra','ECU',130643), +(603,'Quevedo','ECU',129631), +(604,'Milagro','ECU',124177), +(605,'Loja','ECU',123875), +(606,'Ríobamba','ECU',123163), +(607,'Esmeraldas','ECU',123045), +(608,'Cairo','EGY',6789479), +(609,'Alexandria','EGY',3328196), +(610,'Giza','EGY',2221868), +(611,'Shubra al-Khayma','EGY',870716), +(612,'Port Said','EGY',469533), +(613,'Suez','EGY',417610), +(614,'al-Mahallat al-Kubra','EGY',395402), +(615,'Tanta','EGY',371010), +(616,'al-Mansura','EGY',369621), +(617,'Luxor','EGY',360503), +(618,'Asyut','EGY',343498), +(619,'Bahtim','EGY',275807), +(620,'Zagazig','EGY',267351), +(621,'al-Faiyum','EGY',260964), +(622,'Ismailia','EGY',254477), +(623,'Kafr al-Dawwar','EGY',231978), +(624,'Assuan','EGY',219017), +(625,'Damanhur','EGY',212203), +(626,'al-Minya','EGY',201360), +(627,'Bani Suwayf','EGY',172032), +(628,'Qina','EGY',171275), +(629,'Sawhaj','EGY',170125), +(630,'Shibin al-Kawm','EGY',159909), +(631,'Bulaq al-Dakrur','EGY',148787), +(632,'Banha','EGY',145792), +(633,'Warraq al-Arab','EGY',127108), +(634,'Kafr al-Shaykh','EGY',124819), +(635,'Mallawi','EGY',119283), +(636,'Bilbays','EGY',113608), +(637,'Mit Ghamr','EGY',101801), +(638,'al-Arish','EGY',100447), +(639,'Talkha','EGY',97700), +(640,'Qalyub','EGY',97200), +(641,'Jirja','EGY',95400), +(642,'Idfu','EGY',94200), +(643,'al-Hawamidiya','EGY',91700), +(644,'Disuq','EGY',91300), +(645,'San Salvador','SLV',415346), +(646,'Santa Ana','SLV',139389), +(647,'Mejicanos','SLV',138800), +(648,'Soyapango','SLV',129800), +(649,'San Miguel','SLV',127696), +(650,'Nueva San Salvador','SLV',98400), +(651,'Apopa','SLV',88800), +(652,'Asmara','ERI',431000), +(653,'Madrid','ESP',2879052), +(654,'Barcelona','ESP',1503451), +(655,'Valencia','ESP',739412), +(656,'Sevilla','ESP',701927), +(657,'Zaragoza','ESP',603367), +(658,'Málaga','ESP',530553), +(659,'Bilbao','ESP',357589), +(660,'Las Palmas de Gran Canaria','ESP',354757), +(661,'Murcia','ESP',353504), +(662,'Palma de Mallorca','ESP',326993), +(663,'Valladolid','ESP',319998), +(664,'Córdoba','ESP',311708), +(665,'Vigo','ESP',283670), +(666,'Alicante [Alacant]','ESP',272432), +(667,'Gijón','ESP',267980), +(668,'L´Hospitalet de Llobregat','ESP',247986), +(669,'Granada','ESP',244767), +(670,'A Coruña (La Coruña)','ESP',243402), +(671,'Vitoria-Gasteiz','ESP',217154), +(672,'Santa Cruz de Tenerife','ESP',213050), +(673,'Badalona','ESP',209635), +(674,'Oviedo','ESP',200453), +(675,'Móstoles','ESP',195351), +(676,'Elche [Elx]','ESP',193174), +(677,'Sabadell','ESP',184859), +(678,'Santander','ESP',184165), +(679,'Jerez de la Frontera','ESP',182660), +(680,'Pamplona [Iruña]','ESP',180483), +(681,'Donostia-San Sebastián','ESP',179208), +(682,'Cartagena','ESP',177709), +(683,'Leganés','ESP',173163), +(684,'Fuenlabrada','ESP',171173), +(685,'Almería','ESP',169027), +(686,'Terrassa','ESP',168695), +(687,'Alcalá de Henares','ESP',164463), +(688,'Burgos','ESP',162802), +(689,'Salamanca','ESP',158720), +(690,'Albacete','ESP',147527), +(691,'Getafe','ESP',145371), +(692,'Cádiz','ESP',142449), +(693,'Alcorcón','ESP',142048), +(694,'Huelva','ESP',140583), +(695,'León','ESP',139809), +(696,'Castellón de la Plana [Castell','ESP',139712), +(697,'Badajoz','ESP',136613), +(698,'[San Cristóbal de] la Laguna','ESP',127945), +(699,'Logroño','ESP',127093), +(700,'Santa Coloma de Gramenet','ESP',120802), +(701,'Tarragona','ESP',113016), +(702,'Lleida (Lérida)','ESP',112207), +(703,'Jaén','ESP',109247), +(704,'Ourense (Orense)','ESP',109120), +(705,'Mataró','ESP',104095), +(706,'Algeciras','ESP',103106), +(707,'Marbella','ESP',101144), +(708,'Barakaldo','ESP',98212), +(709,'Dos Hermanas','ESP',94591), +(710,'Santiago de Compostela','ESP',93745), +(711,'Torrejón de Ardoz','ESP',92262), +(712,'Cape Town','ZAF',2352121), +(713,'Soweto','ZAF',904165), +(714,'Johannesburg','ZAF',756653), +(715,'Port Elizabeth','ZAF',752319), +(716,'Pretoria','ZAF',658630), +(717,'Inanda','ZAF',634065), +(718,'Durban','ZAF',566120), +(719,'Vanderbijlpark','ZAF',468931), +(720,'Kempton Park','ZAF',442633), +(721,'Alberton','ZAF',410102), +(722,'Pinetown','ZAF',378810), +(723,'Pietermaritzburg','ZAF',370190), +(724,'Benoni','ZAF',365467), +(725,'Randburg','ZAF',341288), +(726,'Umlazi','ZAF',339233), +(727,'Bloemfontein','ZAF',334341), +(728,'Vereeniging','ZAF',328535), +(729,'Wonderboom','ZAF',283289), +(730,'Roodepoort','ZAF',279340), +(731,'Boksburg','ZAF',262648), +(732,'Klerksdorp','ZAF',261911), +(733,'Soshanguve','ZAF',242727), +(734,'Newcastle','ZAF',222993), +(735,'East London','ZAF',221047), +(736,'Welkom','ZAF',203296), +(737,'Kimberley','ZAF',197254), +(738,'Uitenhage','ZAF',192120), +(739,'Chatsworth','ZAF',189885), +(740,'Mdantsane','ZAF',182639), +(741,'Krugersdorp','ZAF',181503), +(742,'Botshabelo','ZAF',177971), +(743,'Brakpan','ZAF',171363), +(744,'Witbank','ZAF',167183), +(745,'Oberholzer','ZAF',164367), +(746,'Germiston','ZAF',164252), +(747,'Springs','ZAF',162072), +(748,'Westonaria','ZAF',159632), +(749,'Randfontein','ZAF',120838), +(750,'Paarl','ZAF',105768), +(751,'Potchefstroom','ZAF',101817), +(752,'Rustenburg','ZAF',97008), +(753,'Nigel','ZAF',96734), +(754,'George','ZAF',93818), +(755,'Ladysmith','ZAF',89292), +(756,'Addis Abeba','ETH',2495000), +(757,'Dire Dawa','ETH',164851), +(758,'Nazret','ETH',127842), +(759,'Gonder','ETH',112249), +(760,'Dese','ETH',97314), +(761,'Mekele','ETH',96938), +(762,'Bahir Dar','ETH',96140), +(763,'Stanley','FLK',1636), +(764,'Suva','FJI',77366), +(765,'Quezon','PHL',2173831), +(766,'Manila','PHL',1581082), +(767,'Kalookan','PHL',1177604), +(768,'Davao','PHL',1147116), +(769,'Cebu','PHL',718821), +(770,'Zamboanga','PHL',601794), +(771,'Pasig','PHL',505058), +(772,'Valenzuela','PHL',485433), +(773,'Las Piñas','PHL',472780), +(774,'Antipolo','PHL',470866), +(775,'Taguig','PHL',467375), +(776,'Cagayan de Oro','PHL',461877), +(777,'Parañaque','PHL',449811), +(778,'Makati','PHL',444867), +(779,'Bacolod','PHL',429076), +(780,'General Santos','PHL',411822), +(781,'Marikina','PHL',391170), +(782,'Dasmariñas','PHL',379520), +(783,'Muntinlupa','PHL',379310), +(784,'Iloilo','PHL',365820), +(785,'Pasay','PHL',354908), +(786,'Malabon','PHL',338855), +(787,'San José del Monte','PHL',315807), +(788,'Bacoor','PHL',305699), +(789,'Iligan','PHL',285061), +(790,'Calamba','PHL',281146), +(791,'Mandaluyong','PHL',278474), +(792,'Butuan','PHL',267279), +(793,'Angeles','PHL',263971), +(794,'Tarlac','PHL',262481), +(795,'Mandaue','PHL',259728), +(796,'Baguio','PHL',252386), +(797,'Batangas','PHL',247588), +(798,'Cainta','PHL',242511), +(799,'San Pedro','PHL',231403), + (800,'Navotas','PHL',230403); +INSERT INTO City VALUES +(801,'Cabanatuan','PHL',222859), +(802,'San Fernando','PHL',221857), +(803,'Lipa','PHL',218447), +(804,'Lapu-Lapu','PHL',217019), +(805,'San Pablo','PHL',207927), +(806,'Biñan','PHL',201186), +(807,'Taytay','PHL',198183), +(808,'Lucena','PHL',196075), +(809,'Imus','PHL',195482), +(810,'Olongapo','PHL',194260), +(811,'Binangonan','PHL',187691), +(812,'Santa Rosa','PHL',185633), +(813,'Tagum','PHL',179531), +(814,'Tacloban','PHL',178639), +(815,'Malolos','PHL',175291), +(816,'Mabalacat','PHL',171045), +(817,'Cotabato','PHL',163849), +(818,'Meycauayan','PHL',163037), +(819,'Puerto Princesa','PHL',161912), +(820,'Legazpi','PHL',157010), +(821,'Silang','PHL',156137), +(822,'Ormoc','PHL',154297), +(823,'San Carlos','PHL',154264), +(824,'Kabankalan','PHL',149769), +(825,'Talisay','PHL',148110), +(826,'Valencia','PHL',147924), +(827,'Calbayog','PHL',147187), +(828,'Santa Maria','PHL',144282), +(829,'Pagadian','PHL',142515), +(830,'Cadiz','PHL',141954), +(831,'Bago','PHL',141721), +(832,'Toledo','PHL',141174), +(833,'Naga','PHL',137810), +(834,'San Mateo','PHL',135603), +(835,'Panabo','PHL',133950), +(836,'Koronadal','PHL',133786), +(837,'Marawi','PHL',131090), +(838,'Dagupan','PHL',130328), +(839,'Sagay','PHL',129765), +(840,'Roxas','PHL',126352), +(841,'Lubao','PHL',125699), +(842,'Digos','PHL',125171), +(843,'San Miguel','PHL',123824), +(844,'Malaybalay','PHL',123672), +(845,'Tuguegarao','PHL',120645), +(846,'Ilagan','PHL',119990), +(847,'Baliuag','PHL',119675), +(848,'Surigao','PHL',118534), +(849,'San Carlos','PHL',118259), +(850,'San Juan del Monte','PHL',117680), +(851,'Tanauan','PHL',117539), +(852,'Concepcion','PHL',115171), +(853,'Rodriguez (Montalban)','PHL',115167), +(854,'Sariaya','PHL',114568), +(855,'Malasiqui','PHL',113190), +(856,'General Mariano Alvarez','PHL',112446), +(857,'Urdaneta','PHL',111582), +(858,'Hagonoy','PHL',111425), +(859,'San Jose','PHL',111009), +(860,'Polomolok','PHL',110709), +(861,'Santiago','PHL',110531), +(862,'Tanza','PHL',110517), +(863,'Ozamis','PHL',110420), +(864,'Mexico','PHL',109481), +(865,'San Jose','PHL',108254), +(866,'Silay','PHL',107722), +(867,'General Trias','PHL',107691), +(868,'Tabaco','PHL',107166), +(869,'Cabuyao','PHL',106630), +(870,'Calapan','PHL',105910), +(871,'Mati','PHL',105908), +(872,'Midsayap','PHL',105760), +(873,'Cauayan','PHL',103952), +(874,'Gingoog','PHL',102379), +(875,'Dumaguete','PHL',102265), +(876,'San Fernando','PHL',102082), +(877,'Arayat','PHL',101792), +(878,'Bayawan (Tulong)','PHL',101391), +(879,'Kidapawan','PHL',101205), +(880,'Daraga (Locsin)','PHL',101031), +(881,'Marilao','PHL',101017), +(882,'Malita','PHL',100000), +(883,'Dipolog','PHL',99862), +(884,'Cavite','PHL',99367), +(885,'Danao','PHL',98781), +(886,'Bislig','PHL',97860), +(887,'Talavera','PHL',97329), +(888,'Guagua','PHL',96858), +(889,'Bayambang','PHL',96609), +(890,'Nasugbu','PHL',96113), +(891,'Baybay','PHL',95630), +(892,'Capas','PHL',95219), +(893,'Sultan Kudarat','PHL',94861), +(894,'Laoag','PHL',94466), +(895,'Bayugan','PHL',93623), +(896,'Malungon','PHL',93232), +(897,'Santa Cruz','PHL',92694), +(898,'Sorsogon','PHL',92512), +(899,'Candelaria','PHL',92429), +(900,'Ligao','PHL',90603), +(901,'Tórshavn','FRO',14542), +(902,'Libreville','GAB',419000), +(903,'Serekunda','GMB',102600), +(904,'Banjul','GMB',42326), +(905,'Tbilisi','GEO',1235200), +(906,'Kutaisi','GEO',240900), +(907,'Rustavi','GEO',155400), +(908,'Batumi','GEO',137700), +(909,'Sohumi','GEO',111700), +(910,'Accra','GHA',1070000), +(911,'Kumasi','GHA',385192), +(912,'Tamale','GHA',151069), +(913,'Tema','GHA',109975), +(914,'Sekondi-Takoradi','GHA',103653), +(915,'Gibraltar','GIB',27025), +(916,'Saint George´s','GRD',4621), +(917,'Nuuk','GRL',13445), +(918,'Les Abymes','GLP',62947), +(919,'Basse-Terre','GLP',12433), +(920,'Tamuning','GUM',9500), +(921,'Agaña','GUM',1139), +(922,'Ciudad de Guatemala','GTM',823301), +(923,'Mixco','GTM',209791), +(924,'Villa Nueva','GTM',101295), +(925,'Quetzaltenango','GTM',90801), +(926,'Conakry','GIN',1090610), +(927,'Bissau','GNB',241000), +(928,'Georgetown','GUY',254000), +(929,'Port-au-Prince','HTI',884472), +(930,'Carrefour','HTI',290204), +(931,'Delmas','HTI',240429), +(932,'Le-Cap-Haïtien','HTI',102233), +(933,'Tegucigalpa','HND',813900), +(934,'San Pedro Sula','HND',383900), +(935,'La Ceiba','HND',89200), +(936,'Kowloon and New Kowloon','HKG',1987996), +(937,'Victoria','HKG',1312637), +(938,'Longyearbyen','SJM',1438), +(939,'Jakarta','IDN',9604900), +(940,'Surabaya','IDN',2663820), +(941,'Bandung','IDN',2429000), +(942,'Medan','IDN',1843919), +(943,'Palembang','IDN',1222764), +(944,'Tangerang','IDN',1198300), +(945,'Semarang','IDN',1104405), +(946,'Ujung Pandang','IDN',1060257), +(947,'Malang','IDN',716862), +(948,'Bandar Lampung','IDN',680332), +(949,'Bekasi','IDN',644300), +(950,'Padang','IDN',534474), +(951,'Surakarta','IDN',518600), +(952,'Banjarmasin','IDN',482931), +(953,'Pekan Baru','IDN',438638), +(954,'Denpasar','IDN',435000), +(955,'Yogyakarta','IDN',418944), +(956,'Pontianak','IDN',409632), +(957,'Samarinda','IDN',399175), +(958,'Jambi','IDN',385201), +(959,'Depok','IDN',365200), +(960,'Cimahi','IDN',344600), +(961,'Balikpapan','IDN',338752), +(962,'Manado','IDN',332288), +(963,'Mataram','IDN',306600), +(964,'Pekalongan','IDN',301504), +(965,'Tegal','IDN',289744), +(966,'Bogor','IDN',285114), +(967,'Ciputat','IDN',270800), +(968,'Pondokgede','IDN',263200), +(969,'Cirebon','IDN',254406), +(970,'Kediri','IDN',253760), +(971,'Ambon','IDN',249312), +(972,'Jember','IDN',218500), +(973,'Cilacap','IDN',206900), +(974,'Cimanggis','IDN',205100), +(975,'Pematang Siantar','IDN',203056), +(976,'Purwokerto','IDN',202500), +(977,'Ciomas','IDN',187400), +(978,'Tasikmalaya','IDN',179800), +(979,'Madiun','IDN',171532), +(980,'Bengkulu','IDN',146439), +(981,'Karawang','IDN',145000), +(982,'Banda Aceh','IDN',143409), +(983,'Palu','IDN',142800), +(984,'Pasuruan','IDN',134019), +(985,'Kupang','IDN',129300), +(986,'Tebing Tinggi','IDN',129300), +(987,'Percut Sei Tuan','IDN',129000), +(988,'Binjai','IDN',127222), +(989,'Sukabumi','IDN',125766), +(990,'Waru','IDN',124300), +(991,'Pangkal Pinang','IDN',124000), +(992,'Magelang','IDN',123800), +(993,'Blitar','IDN',122600), +(994,'Serang','IDN',122400), +(995,'Probolinggo','IDN',120770), +(996,'Cilegon','IDN',117000), +(997,'Cianjur','IDN',114300), +(998,'Ciparay','IDN',111500), +(999,'Lhokseumawe','IDN',109600), +(1000,'Taman','IDN',107000); +INSERT INTO City VALUES +(1001,'Depok','IDN',106800), +(1002,'Citeureup','IDN',105100), +(1003,'Pemalang','IDN',103500), +(1004,'Klaten','IDN',103300), +(1005,'Salatiga','IDN',103000), +(1006,'Cibinong','IDN',101300), +(1007,'Palangka Raya','IDN',99693), +(1008,'Mojokerto','IDN',96626), +(1009,'Purwakarta','IDN',95900), +(1010,'Garut','IDN',95800), +(1011,'Kudus','IDN',95300), +(1012,'Kendari','IDN',94800), +(1013,'Jaya Pura','IDN',94700), +(1014,'Gorontalo','IDN',94058), +(1015,'Majalaya','IDN',93200), +(1016,'Pondok Aren','IDN',92700), +(1017,'Jombang','IDN',92600), +(1018,'Sunggal','IDN',92300), +(1019,'Batam','IDN',91871), +(1020,'Padang Sidempuan','IDN',91200), +(1021,'Sawangan','IDN',91100), +(1022,'Banyuwangi','IDN',89900), +(1023,'Tanjung Pinang','IDN',89900), +(1024,'Mumbai (Bombay)','IND',10500000), +(1025,'Delhi','IND',7206704), +(1026,'Calcutta [Kolkata]','IND',4399819), +(1027,'Chennai (Madras)','IND',3841396), +(1028,'Hyderabad','IND',2964638), +(1029,'Ahmedabad','IND',2876710), +(1030,'Bangalore','IND',2660088), +(1031,'Kanpur','IND',1874409), +(1032,'Nagpur','IND',1624752), +(1033,'Lucknow','IND',1619115), +(1034,'Pune','IND',1566651), +(1035,'Surat','IND',1498817), +(1036,'Jaipur','IND',1458483), +(1037,'Indore','IND',1091674), +(1038,'Bhopal','IND',1062771), +(1039,'Ludhiana','IND',1042740), +(1040,'Vadodara (Baroda)','IND',1031346), +(1041,'Kalyan','IND',1014557), +(1042,'Madurai','IND',977856), +(1043,'Haora (Howrah)','IND',950435), +(1044,'Varanasi (Benares)','IND',929270), +(1045,'Patna','IND',917243), +(1046,'Srinagar','IND',892506), +(1047,'Agra','IND',891790), +(1048,'Coimbatore','IND',816321), +(1049,'Thane (Thana)','IND',803389), +(1050,'Allahabad','IND',792858), +(1051,'Meerut','IND',753778), +(1052,'Vishakhapatnam','IND',752037), +(1053,'Jabalpur','IND',741927), +(1054,'Amritsar','IND',708835), +(1055,'Faridabad','IND',703592), +(1056,'Vijayawada','IND',701827), +(1057,'Gwalior','IND',690765), +(1058,'Jodhpur','IND',666279), +(1059,'Nashik (Nasik)','IND',656925), +(1060,'Hubli-Dharwad','IND',648298), +(1061,'Solapur (Sholapur)','IND',604215), +(1062,'Ranchi','IND',599306), +(1063,'Bareilly','IND',587211), +(1064,'Guwahati (Gauhati)','IND',584342), +(1065,'Shambajinagar (Aurangabad)','IND',573272), +(1066,'Cochin (Kochi)','IND',564589), +(1067,'Rajkot','IND',559407), +(1068,'Kota','IND',537371), +(1069,'Thiruvananthapuram (Trivandrum','IND',524006), +(1070,'Pimpri-Chinchwad','IND',517083), +(1071,'Jalandhar (Jullundur)','IND',509510), +(1072,'Gorakhpur','IND',505566), +(1073,'Chandigarh','IND',504094), +(1074,'Mysore','IND',480692), +(1075,'Aligarh','IND',480520), +(1076,'Guntur','IND',471051), +(1077,'Jamshedpur','IND',460577), +(1078,'Ghaziabad','IND',454156), +(1079,'Warangal','IND',447657), +(1080,'Raipur','IND',438639), +(1081,'Moradabad','IND',429214), +(1082,'Durgapur','IND',425836), +(1083,'Amravati','IND',421576), +(1084,'Calicut (Kozhikode)','IND',419831), +(1085,'Bikaner','IND',416289), +(1086,'Bhubaneswar','IND',411542), +(1087,'Kolhapur','IND',406370), +(1088,'Kataka (Cuttack)','IND',403418), +(1089,'Ajmer','IND',402700), +(1090,'Bhavnagar','IND',402338), +(1091,'Tiruchirapalli','IND',387223), +(1092,'Bhilai','IND',386159), +(1093,'Bhiwandi','IND',379070), +(1094,'Saharanpur','IND',374945), +(1095,'Ulhasnagar','IND',369077), +(1096,'Salem','IND',366712), +(1097,'Ujjain','IND',362266), +(1098,'Malegaon','IND',342595), +(1099,'Jamnagar','IND',341637), +(1100,'Bokaro Steel City','IND',333683), +(1101,'Akola','IND',328034), +(1102,'Belgaum','IND',326399), +(1103,'Rajahmundry','IND',324851), +(1104,'Nellore','IND',316606), +(1105,'Udaipur','IND',308571), +(1106,'New Bombay','IND',307297), +(1107,'Bhatpara','IND',304952), +(1108,'Gulbarga','IND',304099), +(1109,'New Delhi','IND',301297), +(1110,'Jhansi','IND',300850), +(1111,'Gaya','IND',291675), +(1112,'Kakinada','IND',279980), +(1113,'Dhule (Dhulia)','IND',278317), +(1114,'Panihati','IND',275990), +(1115,'Nanded (Nander)','IND',275083), +(1116,'Mangalore','IND',273304), +(1117,'Dehra Dun','IND',270159), +(1118,'Kamarhati','IND',266889), +(1119,'Davangere','IND',266082), +(1120,'Asansol','IND',262188), +(1121,'Bhagalpur','IND',253225), +(1122,'Bellary','IND',245391), +(1123,'Barddhaman (Burdwan)','IND',245079), +(1124,'Rampur','IND',243742), +(1125,'Jalgaon','IND',242193), +(1126,'Muzaffarpur','IND',241107), +(1127,'Nizamabad','IND',241034), +(1128,'Muzaffarnagar','IND',240609), +(1129,'Patiala','IND',238368), +(1130,'Shahjahanpur','IND',237713), +(1131,'Kurnool','IND',236800), +(1132,'Tiruppur (Tirupper)','IND',235661), +(1133,'Rohtak','IND',233400), +(1134,'South Dum Dum','IND',232811), +(1135,'Mathura','IND',226691), +(1136,'Chandrapur','IND',226105), +(1137,'Barahanagar (Baranagar)','IND',224821), +(1138,'Darbhanga','IND',218391), +(1139,'Siliguri (Shiliguri)','IND',216950), +(1140,'Raurkela','IND',215489), +(1141,'Ambattur','IND',215424), +(1142,'Panipat','IND',215218), +(1143,'Firozabad','IND',215128), +(1144,'Ichalkaranji','IND',214950), +(1145,'Jammu','IND',214737), +(1146,'Ramagundam','IND',214384), +(1147,'Eluru','IND',212866), +(1148,'Brahmapur','IND',210418), +(1149,'Alwar','IND',205086), +(1150,'Pondicherry','IND',203065), +(1151,'Thanjavur','IND',202013), +(1152,'Bihar Sharif','IND',201323), +(1153,'Tuticorin','IND',199854), +(1154,'Imphal','IND',198535), +(1155,'Latur','IND',197408), +(1156,'Sagar','IND',195346), +(1157,'Farrukhabad-cum-Fatehgarh','IND',194567), +(1158,'Sangli','IND',193197), +(1159,'Parbhani','IND',190255), +(1160,'Nagar Coil','IND',190084), +(1161,'Bijapur','IND',186939), +(1162,'Kukatpalle','IND',185378), +(1163,'Bally','IND',184474), +(1164,'Bhilwara','IND',183965), +(1165,'Ratlam','IND',183375), +(1166,'Avadi','IND',183215), +(1167,'Dindigul','IND',182477), +(1168,'Ahmadnagar','IND',181339), +(1169,'Bilaspur','IND',179833), +(1170,'Shimoga','IND',179258), +(1171,'Kharagpur','IND',177989), +(1172,'Mira Bhayandar','IND',175372), +(1173,'Vellore','IND',175061), +(1174,'Jalna','IND',174985), +(1175,'Burnpur','IND',174933), +(1176,'Anantapur','IND',174924), +(1177,'Allappuzha (Alleppey)','IND',174666), +(1178,'Tirupati','IND',174369), +(1179,'Karnal','IND',173751), +(1180,'Burhanpur','IND',172710), +(1181,'Hisar (Hissar)','IND',172677), +(1182,'Tiruvottiyur','IND',172562), +(1183,'Mirzapur-cum-Vindhyachal','IND',169336), +(1184,'Secunderabad','IND',167461), +(1185,'Nadiad','IND',167051), +(1186,'Dewas','IND',164364), +(1187,'Murwara (Katni)','IND',163431), +(1188,'Ganganagar','IND',161482), +(1189,'Vizianagaram','IND',160359), +(1190,'Erode','IND',159232), +(1191,'Machilipatnam (Masulipatam)','IND',159110), +(1192,'Bhatinda (Bathinda)','IND',159042), +(1193,'Raichur','IND',157551), +(1194,'Agartala','IND',157358), +(1195,'Arrah (Ara)','IND',157082), +(1196,'Satna','IND',156630), +(1197,'Lalbahadur Nagar','IND',155500), +(1198,'Aizawl','IND',155240), +(1199,'Uluberia','IND',155172), +(1200,'Katihar','IND',154367); +INSERT INTO City VALUES +(1201,'Cuddalore','IND',153086), +(1202,'Hugli-Chinsurah','IND',151806), +(1203,'Dhanbad','IND',151789), +(1204,'Raiganj','IND',151045), +(1205,'Sambhal','IND',150869), +(1206,'Durg','IND',150645), +(1207,'Munger (Monghyr)','IND',150112), +(1208,'Kanchipuram','IND',150100), +(1209,'North Dum Dum','IND',149965), +(1210,'Karimnagar','IND',148583), +(1211,'Bharatpur','IND',148519), +(1212,'Sikar','IND',148272), +(1213,'Hardwar (Haridwar)','IND',147305), +(1214,'Dabgram','IND',147217), +(1215,'Morena','IND',147124), +(1216,'Noida','IND',146514), +(1217,'Hapur','IND',146262), +(1218,'Bhusawal','IND',145143), +(1219,'Khandwa','IND',145133), +(1220,'Yamuna Nagar','IND',144346), +(1221,'Sonipat (Sonepat)','IND',143922), +(1222,'Tenali','IND',143726), +(1223,'Raurkela Civil Township','IND',140408), +(1224,'Kollam (Quilon)','IND',139852), +(1225,'Kumbakonam','IND',139483), +(1226,'Ingraj Bazar (English Bazar)','IND',139204), +(1227,'Timkur','IND',138903), +(1228,'Amroha','IND',137061), +(1229,'Serampore','IND',137028), +(1230,'Chapra','IND',136877), +(1231,'Pali','IND',136842), +(1232,'Maunath Bhanjan','IND',136697), +(1233,'Adoni','IND',136182), +(1234,'Jaunpur','IND',136062), +(1235,'Tirunelveli','IND',135825), +(1236,'Bahraich','IND',135400), +(1237,'Gadag Betigeri','IND',134051), +(1238,'Proddatur','IND',133914), +(1239,'Chittoor','IND',133462), +(1240,'Barrackpur','IND',133265), +(1241,'Bharuch (Broach)','IND',133102), +(1242,'Naihati','IND',132701), +(1243,'Shillong','IND',131719), +(1244,'Sambalpur','IND',131138), +(1245,'Junagadh','IND',130484), +(1246,'Rae Bareli','IND',129904), +(1247,'Rewa','IND',128981), +(1248,'Gurgaon','IND',128608), +(1249,'Khammam','IND',127992), +(1250,'Bulandshahr','IND',127201), +(1251,'Navsari','IND',126089), +(1252,'Malkajgiri','IND',126066), +(1253,'Midnapore (Medinipur)','IND',125498), +(1254,'Miraj','IND',125407), +(1255,'Raj Nandgaon','IND',125371), +(1256,'Alandur','IND',125244), +(1257,'Puri','IND',125199), +(1258,'Navadwip','IND',125037), +(1259,'Sirsa','IND',125000), +(1260,'Korba','IND',124501), +(1261,'Faizabad','IND',124437), +(1262,'Etawah','IND',124072), +(1263,'Pathankot','IND',123930), +(1264,'Gandhinagar','IND',123359), +(1265,'Palghat (Palakkad)','IND',123289), +(1266,'Veraval','IND',123000), +(1267,'Hoshiarpur','IND',122705), +(1268,'Ambala','IND',122596), +(1269,'Sitapur','IND',121842), +(1270,'Bhiwani','IND',121629), +(1271,'Cuddapah','IND',121463), +(1272,'Bhimavaram','IND',121314), +(1273,'Krishnanagar','IND',121110), +(1274,'Chandannagar','IND',120378), +(1275,'Mandya','IND',120265), +(1276,'Dibrugarh','IND',120127), +(1277,'Nandyal','IND',119813), +(1278,'Balurghat','IND',119796), +(1279,'Neyveli','IND',118080), +(1280,'Fatehpur','IND',117675), +(1281,'Mahbubnagar','IND',116833), +(1282,'Budaun','IND',116695), +(1283,'Porbandar','IND',116671), +(1284,'Silchar','IND',115483), +(1285,'Berhampore (Baharampur)','IND',115144), +(1286,'Purnea (Purnia)','IND',114912), +(1287,'Bankura','IND',114876), +(1288,'Rajapalaiyam','IND',114202), +(1289,'Titagarh','IND',114085), +(1290,'Halisahar','IND',114028), +(1291,'Hathras','IND',113285), +(1292,'Bhir (Bid)','IND',112434), +(1293,'Pallavaram','IND',111866), +(1294,'Anand','IND',110266), +(1295,'Mango','IND',110024), +(1296,'Santipur','IND',109956), +(1297,'Bhind','IND',109755), +(1298,'Gondiya','IND',109470), +(1299,'Tiruvannamalai','IND',109196), +(1300,'Yeotmal (Yavatmal)','IND',108578), +(1301,'Kulti-Barakar','IND',108518), +(1302,'Moga','IND',108304), +(1303,'Shivapuri','IND',108277), +(1304,'Bidar','IND',108016), +(1305,'Guntakal','IND',107592), +(1306,'Unnao','IND',107425), +(1307,'Barasat','IND',107365), +(1308,'Tambaram','IND',107187), +(1309,'Abohar','IND',107163), +(1310,'Pilibhit','IND',106605), +(1311,'Valparai','IND',106523), +(1312,'Gonda','IND',106078), +(1313,'Surendranagar','IND',105973), +(1314,'Qutubullapur','IND',105380), +(1315,'Beawar','IND',105363), +(1316,'Hindupur','IND',104651), +(1317,'Gandhidham','IND',104585), +(1318,'Haldwani-cum-Kathgodam','IND',104195), +(1319,'Tellicherry (Thalassery)','IND',103579), +(1320,'Wardha','IND',102985), +(1321,'Rishra','IND',102649), +(1322,'Bhuj','IND',102176), +(1323,'Modinagar','IND',101660), +(1324,'Gudivada','IND',101656), +(1325,'Basirhat','IND',101409), +(1326,'Uttarpara-Kotrung','IND',100867), +(1327,'Ongole','IND',100836), +(1328,'North Barrackpur','IND',100513), +(1329,'Guna','IND',100490), +(1330,'Haldia','IND',100347), +(1331,'Habra','IND',100223), +(1332,'Kanchrapara','IND',100194), +(1333,'Tonk','IND',100079), +(1334,'Champdani','IND',98818), +(1335,'Orai','IND',98640), +(1336,'Pudukkottai','IND',98619), +(1337,'Sasaram','IND',98220), +(1338,'Hazaribag','IND',97712), +(1339,'Palayankottai','IND',97662), +(1340,'Banda','IND',97227), +(1341,'Godhra','IND',96813), +(1342,'Hospet','IND',96322), +(1343,'Ashoknagar-Kalyangarh','IND',96315), +(1344,'Achalpur','IND',96216), +(1345,'Patan','IND',96109), +(1346,'Mandasor','IND',95758), +(1347,'Damoh','IND',95661), +(1348,'Satara','IND',95133), +(1349,'Meerut Cantonment','IND',94876), +(1350,'Dehri','IND',94526), +(1351,'Delhi Cantonment','IND',94326), +(1352,'Chhindwara','IND',93731), +(1353,'Bansberia','IND',93447), +(1354,'Nagaon','IND',93350), +(1355,'Kanpur Cantonment','IND',93109), +(1356,'Vidisha','IND',92917), +(1357,'Bettiah','IND',92583), +(1358,'Purulia','IND',92574), +(1359,'Hassan','IND',90803), +(1360,'Ambala Sadar','IND',90712), +(1361,'Baidyabati','IND',90601), +(1362,'Morvi','IND',90357), +(1363,'Raigarh','IND',89166), +(1364,'Vejalpur','IND',89053), +(1365,'Baghdad','IRQ',4336000), +(1366,'Mosul','IRQ',879000), +(1367,'Irbil','IRQ',485968), +(1368,'Kirkuk','IRQ',418624), +(1369,'Basra','IRQ',406296), +(1370,'al-Sulaymaniya','IRQ',364096), +(1371,'al-Najaf','IRQ',309010), +(1372,'Karbala','IRQ',296705), +(1373,'al-Hilla','IRQ',268834), +(1374,'al-Nasiriya','IRQ',265937), +(1375,'al-Amara','IRQ',208797), +(1376,'al-Diwaniya','IRQ',196519), +(1377,'al-Ramadi','IRQ',192556), +(1378,'al-Kut','IRQ',183183), +(1379,'Baquba','IRQ',114516), +(1380,'Teheran','IRN',6758845), +(1381,'Mashhad','IRN',1887405), +(1382,'Esfahan','IRN',1266072), +(1383,'Tabriz','IRN',1191043), +(1384,'Shiraz','IRN',1053025), +(1385,'Karaj','IRN',940968), +(1386,'Ahvaz','IRN',804980), +(1387,'Qom','IRN',777677), +(1388,'Kermanshah','IRN',692986), +(1389,'Urmia','IRN',435200), +(1390,'Zahedan','IRN',419518), +(1391,'Rasht','IRN',417748), +(1392,'Hamadan','IRN',401281), +(1393,'Kerman','IRN',384991), +(1394,'Arak','IRN',380755), +(1395,'Ardebil','IRN',340386), +(1396,'Yazd','IRN',326776), +(1397,'Qazvin','IRN',291117), +(1398,'Zanjan','IRN',286295), +(1399,'Sanandaj','IRN',277808), +(1400,'Bandar-e-Abbas','IRN',273578); +INSERT INTO City VALUES +(1401,'Khorramabad','IRN',272815), +(1402,'Eslamshahr','IRN',265450), +(1403,'Borujerd','IRN',217804), +(1404,'Abadan','IRN',206073), +(1405,'Dezful','IRN',202639), +(1406,'Kashan','IRN',201372), +(1407,'Sari','IRN',195882), +(1408,'Gorgan','IRN',188710), +(1409,'Najafabad','IRN',178498), +(1410,'Sabzevar','IRN',170738), +(1411,'Khomeynishahr','IRN',165888), +(1412,'Amol','IRN',159092), +(1413,'Neyshabur','IRN',158847), +(1414,'Babol','IRN',158346), +(1415,'Khoy','IRN',148944), +(1416,'Malayer','IRN',144373), +(1417,'Bushehr','IRN',143641), +(1418,'Qaemshahr','IRN',143286), +(1419,'Qarchak','IRN',142690), +(1420,'Qods','IRN',138278), +(1421,'Sirjan','IRN',135024), +(1422,'Bojnurd','IRN',134835), +(1423,'Maragheh','IRN',132318), +(1424,'Birjand','IRN',127608), +(1425,'Ilam','IRN',126346), +(1426,'Bukan','IRN',120020), +(1427,'Masjed-e-Soleyman','IRN',116883), +(1428,'Saqqez','IRN',115394), +(1429,'Gonbad-e Qabus','IRN',111253), +(1430,'Saveh','IRN',111245), +(1431,'Mahabad','IRN',107799), +(1432,'Varamin','IRN',107233), +(1433,'Andimeshk','IRN',106923), +(1434,'Khorramshahr','IRN',105636), +(1435,'Shahrud','IRN',104765), +(1436,'Marv Dasht','IRN',103579), +(1437,'Zabol','IRN',100887), +(1438,'Shahr-e Kord','IRN',100477), +(1439,'Bandar-e Anzali','IRN',98500), +(1440,'Rafsanjan','IRN',98300), +(1441,'Marand','IRN',96400), +(1442,'Torbat-e Heydariyeh','IRN',94600), +(1443,'Jahrom','IRN',94200), +(1444,'Semnan','IRN',91045), +(1445,'Miandoab','IRN',90100), +(1446,'Qomsheh','IRN',89800), +(1447,'Dublin','IRL',481854), +(1448,'Cork','IRL',127187), +(1449,'Reykjavík','ISL',109184), +(1450,'Jerusalem','ISR',633700), +(1451,'Tel Aviv-Jaffa','ISR',348100), +(1452,'Haifa','ISR',265700), +(1453,'Rishon Le Ziyyon','ISR',188200), +(1454,'Beerseba','ISR',163700), +(1455,'Holon','ISR',163100), +(1456,'Petah Tiqwa','ISR',159400), +(1457,'Ashdod','ISR',155800), +(1458,'Netanya','ISR',154900), +(1459,'Bat Yam','ISR',137000), +(1460,'Bene Beraq','ISR',133900), +(1461,'Ramat Gan','ISR',126900), +(1462,'Ashqelon','ISR',92300), +(1463,'Rehovot','ISR',90300), +(1464,'Roma','ITA',2643581), +(1465,'Milano','ITA',1300977), +(1466,'Napoli','ITA',1002619), +(1467,'Torino','ITA',903705), +(1468,'Palermo','ITA',683794), +(1469,'Genova','ITA',636104), +(1470,'Bologna','ITA',381161), +(1471,'Firenze','ITA',376662), +(1472,'Catania','ITA',337862), +(1473,'Bari','ITA',331848), +(1474,'Venezia','ITA',277305), +(1475,'Messina','ITA',259156), +(1476,'Verona','ITA',255268), +(1477,'Trieste','ITA',216459), +(1478,'Padova','ITA',211391), +(1479,'Taranto','ITA',208214), +(1480,'Brescia','ITA',191317), +(1481,'Reggio di Calabria','ITA',179617), +(1482,'Modena','ITA',176022), +(1483,'Prato','ITA',172473), +(1484,'Parma','ITA',168717), +(1485,'Cagliari','ITA',165926), +(1486,'Livorno','ITA',161673), +(1487,'Perugia','ITA',156673), +(1488,'Foggia','ITA',154891), +(1489,'Reggio nell´ Emilia','ITA',143664), +(1490,'Salerno','ITA',142055), +(1491,'Ravenna','ITA',138418), +(1492,'Ferrara','ITA',132127), +(1493,'Rimini','ITA',131062), +(1494,'Syrakusa','ITA',126282), +(1495,'Sassari','ITA',120803), +(1496,'Monza','ITA',119516), +(1497,'Bergamo','ITA',117837), +(1498,'Pescara','ITA',115698), +(1499,'Latina','ITA',114099), +(1500,'Vicenza','ITA',109738), +(1501,'Terni','ITA',107770), +(1502,'Forlì','ITA',107475), +(1503,'Trento','ITA',104906), +(1504,'Novara','ITA',102037), +(1505,'Piacenza','ITA',98384), +(1506,'Ancona','ITA',98329), +(1507,'Lecce','ITA',98208), +(1508,'Bolzano','ITA',97232), +(1509,'Catanzaro','ITA',96700), +(1510,'La Spezia','ITA',95504), +(1511,'Udine','ITA',94932), +(1512,'Torre del Greco','ITA',94505), +(1513,'Andria','ITA',94443), +(1514,'Brindisi','ITA',93454), +(1515,'Giugliano in Campania','ITA',93286), +(1516,'Pisa','ITA',92379), +(1517,'Barletta','ITA',91904), +(1518,'Arezzo','ITA',91729), +(1519,'Alessandria','ITA',90289), +(1520,'Cesena','ITA',89852), +(1521,'Pesaro','ITA',88987), +(1522,'Dili','TMP',47900), +(1523,'Wien','AUT',1608144), +(1524,'Graz','AUT',240967), +(1525,'Linz','AUT',188022), +(1526,'Salzburg','AUT',144247), +(1527,'Innsbruck','AUT',111752), +(1528,'Klagenfurt','AUT',91141), +(1529,'Spanish Town','JAM',110379), +(1530,'Kingston','JAM',103962), +(1531,'Portmore','JAM',99799), +(1532,'Tokyo','JPN',7980230), +(1533,'Jokohama [Yokohama]','JPN',3339594), +(1534,'Osaka','JPN',2595674), +(1535,'Nagoya','JPN',2154376), +(1536,'Sapporo','JPN',1790886), +(1537,'Kioto','JPN',1461974), +(1538,'Kobe','JPN',1425139), +(1539,'Fukuoka','JPN',1308379), +(1540,'Kawasaki','JPN',1217359), +(1541,'Hiroshima','JPN',1119117), +(1542,'Kitakyushu','JPN',1016264), +(1543,'Sendai','JPN',989975), +(1544,'Chiba','JPN',863930), +(1545,'Sakai','JPN',797735), +(1546,'Kumamoto','JPN',656734), +(1547,'Okayama','JPN',624269), +(1548,'Sagamihara','JPN',586300), +(1549,'Hamamatsu','JPN',568796), +(1550,'Kagoshima','JPN',549977), +(1551,'Funabashi','JPN',545299), +(1552,'Higashiosaka','JPN',517785), +(1553,'Hachioji','JPN',513451), +(1554,'Niigata','JPN',497464), +(1555,'Amagasaki','JPN',481434), +(1556,'Himeji','JPN',475167), +(1557,'Shizuoka','JPN',473854), +(1558,'Urawa','JPN',469675), +(1559,'Matsuyama','JPN',466133), +(1560,'Matsudo','JPN',461126), +(1561,'Kanazawa','JPN',455386), +(1562,'Kawaguchi','JPN',452155), +(1563,'Ichikawa','JPN',441893), +(1564,'Omiya','JPN',441649), +(1565,'Utsunomiya','JPN',440353), +(1566,'Oita','JPN',433401), +(1567,'Nagasaki','JPN',432759), +(1568,'Yokosuka','JPN',430200), +(1569,'Kurashiki','JPN',425103), +(1570,'Gifu','JPN',408007), +(1571,'Hirakata','JPN',403151), +(1572,'Nishinomiya','JPN',397618), +(1573,'Toyonaka','JPN',396689), +(1574,'Wakayama','JPN',391233), +(1575,'Fukuyama','JPN',376921), +(1576,'Fujisawa','JPN',372840), +(1577,'Asahikawa','JPN',364813), +(1578,'Machida','JPN',364197), +(1579,'Nara','JPN',362812), +(1580,'Takatsuki','JPN',361747), +(1581,'Iwaki','JPN',361737), +(1582,'Nagano','JPN',361391), +(1583,'Toyohashi','JPN',360066), +(1584,'Toyota','JPN',346090), +(1585,'Suita','JPN',345750), +(1586,'Takamatsu','JPN',332471), +(1587,'Koriyama','JPN',330335), +(1588,'Okazaki','JPN',328711), +(1589,'Kawagoe','JPN',327211), +(1590,'Tokorozawa','JPN',325809), +(1591,'Toyama','JPN',325790), +(1592,'Kochi','JPN',324710), +(1593,'Kashiwa','JPN',320296), +(1594,'Akita','JPN',314440), +(1595,'Miyazaki','JPN',303784), +(1596,'Koshigaya','JPN',301446), +(1597,'Naha','JPN',299851), +(1598,'Aomori','JPN',295969), +(1599,'Hakodate','JPN',294788), +(1600,'Akashi','JPN',292253); +INSERT IGNORE INTO City VALUES +(1601,'Yokkaichi','JPN',288173), +(1602,'Fukushima','JPN',287525), +(1603,'Morioka','JPN',287353), +(1604,'Maebashi','JPN',284473), +(1605,'Kasugai','JPN',282348), +(1606,'Otsu','JPN',282070), +(1607,'Ichihara','JPN',279280), +(1608,'Yao','JPN',276421), +(1609,'Ichinomiya','JPN',270828), +(1610,'Tokushima','JPN',269649), +(1611,'Kakogawa','JPN',266281), +(1612,'Ibaraki','JPN',261020), +(1613,'Neyagawa','JPN',257315), +(1614,'Shimonoseki','JPN',257263), +(1615,'Yamagata','JPN',255617), +(1616,'Fukui','JPN',254818), +(1617,'Hiratsuka','JPN',254207), +(1618,'Mito','JPN',246559), +(1619,'Sasebo','JPN',244240), +(1620,'Hachinohe','JPN',242979), +(1621,'Takasaki','JPN',239124), +(1622,'Shimizu','JPN',239123), +(1623,'Kurume','JPN',235611), +(1624,'Fuji','JPN',231527), +(1625,'Soka','JPN',222768), +(1626,'Fuchu','JPN',220576), +(1627,'Chigasaki','JPN',216015), +(1628,'Atsugi','JPN',212407), +(1629,'Numazu','JPN',211382), +(1630,'Ageo','JPN',209442), +(1631,'Yamato','JPN',208234), +(1632,'Matsumoto','JPN',206801), +(1633,'Kure','JPN',206504), +(1634,'Takarazuka','JPN',205993), +(1635,'Kasukabe','JPN',201838), +(1636,'Chofu','JPN',201585), +(1637,'Odawara','JPN',200171), +(1638,'Kofu','JPN',199753), +(1639,'Kushiro','JPN',197608), +(1640,'Kishiwada','JPN',197276), +(1641,'Hitachi','JPN',196622), +(1642,'Nagaoka','JPN',192407), +(1643,'Itami','JPN',190886), +(1644,'Uji','JPN',188735), +(1645,'Suzuka','JPN',184061), +(1646,'Hirosaki','JPN',177522), +(1647,'Ube','JPN',175206), +(1648,'Kodaira','JPN',174984), +(1649,'Takaoka','JPN',174380), +(1650,'Obihiro','JPN',173685), +(1651,'Tomakomai','JPN',171958), +(1652,'Saga','JPN',170034), +(1653,'Sakura','JPN',168072), +(1654,'Kamakura','JPN',167661), +(1655,'Mitaka','JPN',167268), +(1656,'Izumi','JPN',166979), +(1657,'Hino','JPN',166770), +(1658,'Hadano','JPN',166512), +(1659,'Ashikaga','JPN',165243), +(1660,'Tsu','JPN',164543), +(1661,'Sayama','JPN',162472), +(1662,'Yachiyo','JPN',161222), +(1663,'Tsukuba','JPN',160768), +(1664,'Tachikawa','JPN',159430), +(1665,'Kumagaya','JPN',157171), +(1666,'Moriguchi','JPN',155941), +(1667,'Otaru','JPN',155784), +(1668,'Anjo','JPN',153823), +(1669,'Narashino','JPN',152849), +(1670,'Oyama','JPN',152820), +(1671,'Ogaki','JPN',151758), +(1672,'Matsue','JPN',149821), +(1673,'Kawanishi','JPN',149794), +(1674,'Hitachinaka','JPN',148006), +(1675,'Niiza','JPN',147744), +(1676,'Nagareyama','JPN',147738), +(1677,'Tottori','JPN',147523), +(1678,'Tama','JPN',146712), +(1679,'Iruma','JPN',145922), +(1680,'Ota','JPN',145317), +(1681,'Omuta','JPN',142889), +(1682,'Komaki','JPN',139827), +(1683,'Ome','JPN',139216), +(1684,'Kadoma','JPN',138953), +(1685,'Yamaguchi','JPN',138210), +(1686,'Higashimurayama','JPN',136970), +(1687,'Yonago','JPN',136461), +(1688,'Matsubara','JPN',135010), +(1689,'Musashino','JPN',134426), +(1690,'Tsuchiura','JPN',134072), +(1691,'Joetsu','JPN',133505), +(1692,'Miyakonojo','JPN',133183), +(1693,'Misato','JPN',132957), +(1694,'Kakamigahara','JPN',131831), +(1695,'Daito','JPN',130594), +(1696,'Seto','JPN',130470), +(1697,'Kariya','JPN',127969), +(1698,'Urayasu','JPN',127550), +(1699,'Beppu','JPN',127486), +(1700,'Niihama','JPN',127207), +(1701,'Minoo','JPN',127026), +(1702,'Fujieda','JPN',126897), +(1703,'Abiko','JPN',126670), +(1704,'Nobeoka','JPN',125547), +(1705,'Tondabayashi','JPN',125094), +(1706,'Ueda','JPN',124217), +(1707,'Kashihara','JPN',124013), +(1708,'Matsusaka','JPN',123582), +(1709,'Isesaki','JPN',123285), +(1710,'Zama','JPN',122046), +(1711,'Kisarazu','JPN',121967), +(1712,'Noda','JPN',121030), +(1713,'Ishinomaki','JPN',120963), +(1714,'Fujinomiya','JPN',119714), +(1715,'Kawachinagano','JPN',119666), +(1716,'Imabari','JPN',119357), +(1717,'Aizuwakamatsu','JPN',119287), +(1718,'Higashihiroshima','JPN',119166), +(1719,'Habikino','JPN',118968), +(1720,'Ebetsu','JPN',118805), +(1721,'Hofu','JPN',118751), +(1722,'Kiryu','JPN',118326), +(1723,'Okinawa','JPN',117748), +(1724,'Yaizu','JPN',117258), +(1725,'Toyokawa','JPN',115781), +(1726,'Ebina','JPN',115571), +(1727,'Asaka','JPN',114815), +(1728,'Higashikurume','JPN',111666), +(1729,'Ikoma','JPN',111645), +(1730,'Kitami','JPN',111295), +(1731,'Koganei','JPN',110969), +(1732,'Iwatsuki','JPN',110034), +(1733,'Mishima','JPN',109699), +(1734,'Handa','JPN',108600), +(1735,'Muroran','JPN',108275), +(1736,'Komatsu','JPN',107937), +(1737,'Yatsushiro','JPN',107661), +(1738,'Iida','JPN',107583), +(1739,'Tokuyama','JPN',107078), +(1740,'Kokubunji','JPN',106996), +(1741,'Akishima','JPN',106914), +(1742,'Iwakuni','JPN',106647), +(1743,'Kusatsu','JPN',106232), +(1744,'Kuwana','JPN',106121), +(1745,'Sanda','JPN',105643), +(1746,'Hikone','JPN',105508), +(1747,'Toda','JPN',103969), +(1748,'Tajimi','JPN',103171), +(1749,'Ikeda','JPN',102710), +(1750,'Fukaya','JPN',102156), +(1751,'Ise','JPN',101732), +(1752,'Sakata','JPN',101651), +(1753,'Kasuga','JPN',101344), +(1754,'Kamagaya','JPN',100821), +(1755,'Tsuruoka','JPN',100713), +(1756,'Hoya','JPN',100313), +(1757,'Nishio','JPN',100032), +(1758,'Tokai','JPN',99738), +(1759,'Inazawa','JPN',98746), +(1760,'Sakado','JPN',98221), +(1761,'Isehara','JPN',98123), +(1762,'Takasago','JPN',97632), +(1763,'Fujimi','JPN',96972), +(1764,'Urasoe','JPN',96002), +(1765,'Yonezawa','JPN',95592), +(1766,'Konan','JPN',95521), +(1767,'Yamatokoriyama','JPN',95165), +(1768,'Maizuru','JPN',94784), +(1769,'Onomichi','JPN',93756), +(1770,'Higashimatsuyama','JPN',93342), +(1771,'Kimitsu','JPN',93216), +(1772,'Isahaya','JPN',93058), +(1773,'Kanuma','JPN',93053), +(1774,'Izumisano','JPN',92583), +(1775,'Kameoka','JPN',92398), +(1776,'Mobara','JPN',91664), +(1777,'Narita','JPN',91470), +(1778,'Kashiwazaki','JPN',91229), +(1779,'Tsuyama','JPN',91170), +(1780,'Sanaa','YEM',503600), +(1781,'Aden','YEM',398300), +(1782,'Taizz','YEM',317600), +(1783,'Hodeida','YEM',298500), +(1784,'al-Mukalla','YEM',122400), +(1785,'Ibb','YEM',103300), +(1786,'Amman','JOR',1000000), +(1787,'al-Zarqa','JOR',389815), +(1788,'Irbid','JOR',231511), +(1789,'al-Rusayfa','JOR',137247), +(1790,'Wadi al-Sir','JOR',89104), +(1791,'Flying Fish Cove','CXR',700), +(1792,'Beograd','YUG',1204000), +(1793,'Novi Sad','YUG',179626), +(1794,'Ni','YUG',175391), +(1795,'Pritina','YUG',155496), +(1796,'Kragujevac','YUG',147305), +(1797,'Podgorica','YUG',135000), +(1798,'Subotica','YUG',100386), +(1799,'Prizren','YUG',92303), +(1800,'Phnom Penh','KHM',570155); +INSERT IGNORE INTO City VALUES +(1801,'Battambang','KHM',129800), +(1802,'Siem Reap','KHM',105100), +(1803,'Douala','CMR',1448300), +(1804,'Yaoundé','CMR',1372800), +(1805,'Garoua','CMR',177000), +(1806,'Maroua','CMR',143000), +(1807,'Bamenda','CMR',138000), +(1808,'Bafoussam','CMR',131000), +(1809,'Nkongsamba','CMR',112454), +(1810,'Montréal','CAN',1016376), +(1811,'Calgary','CAN',768082), +(1812,'Toronto','CAN',688275), +(1813,'North York','CAN',622632), +(1814,'Winnipeg','CAN',618477), +(1815,'Edmonton','CAN',616306), +(1816,'Mississauga','CAN',608072), +(1817,'Scarborough','CAN',594501), +(1818,'Vancouver','CAN',514008), +(1819,'Etobicoke','CAN',348845), +(1820,'London','CAN',339917), +(1821,'Hamilton','CAN',335614), +(1822,'Ottawa','CAN',335277), +(1823,'Laval','CAN',330393), +(1824,'Surrey','CAN',304477), +(1825,'Brampton','CAN',296711), +(1826,'Windsor','CAN',207588), +(1827,'Saskatoon','CAN',193647), +(1828,'Kitchener','CAN',189959), +(1829,'Markham','CAN',189098), +(1830,'Regina','CAN',180400), +(1831,'Burnaby','CAN',179209), +(1832,'Québec','CAN',167264), +(1833,'York','CAN',154980), +(1834,'Richmond','CAN',148867), +(1835,'Vaughan','CAN',147889), +(1836,'Burlington','CAN',145150), +(1837,'Oshawa','CAN',140173), +(1838,'Oakville','CAN',139192), +(1839,'Saint Catharines','CAN',136216), +(1840,'Longueuil','CAN',127977), +(1841,'Richmond Hill','CAN',116428), +(1842,'Thunder Bay','CAN',115913), +(1843,'Nepean','CAN',115100), +(1844,'Cape Breton','CAN',114733), +(1845,'East York','CAN',114034), +(1846,'Halifax','CAN',113910), +(1847,'Cambridge','CAN',109186), +(1848,'Gloucester','CAN',107314), +(1849,'Abbotsford','CAN',105403), +(1850,'Guelph','CAN',103593), +(1851,'Saint John´s','CAN',101936), +(1852,'Coquitlam','CAN',101820), +(1853,'Saanich','CAN',101388), +(1854,'Gatineau','CAN',100702), +(1855,'Delta','CAN',95411), +(1856,'Sudbury','CAN',92686), +(1857,'Kelowna','CAN',89442), +(1858,'Barrie','CAN',89269), +(1859,'Praia','CPV',94800), +(1860,'Almaty','KAZ',1129400), +(1861,'Qaraghandy','KAZ',436900), +(1862,'Shymkent','KAZ',360100), +(1863,'Taraz','KAZ',330100), +(1864,'Astana','KAZ',311200), +(1865,'Öskemen','KAZ',311000), +(1866,'Pavlodar','KAZ',300500), +(1867,'Semey','KAZ',269600), +(1868,'Aqtöbe','KAZ',253100), +(1869,'Qostanay','KAZ',221400), +(1870,'Petropavl','KAZ',203500), +(1871,'Oral','KAZ',195500), +(1872,'Temirtau','KAZ',170500), +(1873,'Qyzylorda','KAZ',157400), +(1874,'Aqtau','KAZ',143400), +(1875,'Atyrau','KAZ',142500), +(1876,'Ekibastuz','KAZ',127200), +(1877,'Kökshetau','KAZ',123400), +(1878,'Rudnyy','KAZ',109500), +(1879,'Taldyqorghan','KAZ',98000), +(1880,'Zhezqazghan','KAZ',90000), +(1881,'Nairobi','KEN',2290000), +(1882,'Mombasa','KEN',461753), +(1883,'Kisumu','KEN',192733), +(1884,'Nakuru','KEN',163927), +(1885,'Machakos','KEN',116293), +(1886,'Eldoret','KEN',111882), +(1887,'Meru','KEN',94947), +(1888,'Nyeri','KEN',91258), +(1889,'Bangui','CAF',524000), +(1890,'Shanghai','CHN',9696300), +(1891,'Peking','CHN',7472000), +(1892,'Chongqing','CHN',6351600), +(1893,'Tianjin','CHN',5286800), +(1894,'Wuhan','CHN',4344600), +(1895,'Harbin','CHN',4289800), +(1896,'Shenyang','CHN',4265200), +(1897,'Kanton [Guangzhou]','CHN',4256300), +(1898,'Chengdu','CHN',3361500), +(1899,'Nanking [Nanjing]','CHN',2870300), +(1900,'Changchun','CHN',2812000), +(1901,'Xi´an','CHN',2761400), +(1902,'Dalian','CHN',2697000), +(1903,'Qingdao','CHN',2596000), +(1904,'Jinan','CHN',2278100), +(1905,'Hangzhou','CHN',2190500), +(1906,'Zhengzhou','CHN',2107200), +(1907,'Shijiazhuang','CHN',2041500), +(1908,'Taiyuan','CHN',1968400), +(1909,'Kunming','CHN',1829500), +(1910,'Changsha','CHN',1809800), +(1911,'Nanchang','CHN',1691600), +(1912,'Fuzhou','CHN',1593800), +(1913,'Lanzhou','CHN',1565800), +(1914,'Guiyang','CHN',1465200), +(1915,'Ningbo','CHN',1371200), +(1916,'Hefei','CHN',1369100), +(1917,'Urumti [Ürümqi]','CHN',1310100), +(1918,'Anshan','CHN',1200000), +(1919,'Fushun','CHN',1200000), +(1920,'Nanning','CHN',1161800), +(1921,'Zibo','CHN',1140000), +(1922,'Qiqihar','CHN',1070000), +(1923,'Jilin','CHN',1040000), +(1924,'Tangshan','CHN',1040000), +(1925,'Baotou','CHN',980000), +(1926,'Shenzhen','CHN',950500), +(1927,'Hohhot','CHN',916700), +(1928,'Handan','CHN',840000), +(1929,'Wuxi','CHN',830000), +(1930,'Xuzhou','CHN',810000), +(1931,'Datong','CHN',800000), +(1932,'Yichun','CHN',800000), +(1933,'Benxi','CHN',770000), +(1934,'Luoyang','CHN',760000), +(1935,'Suzhou','CHN',710000), +(1936,'Xining','CHN',700200), +(1937,'Huainan','CHN',700000), +(1938,'Jixi','CHN',683885), +(1939,'Daqing','CHN',660000), +(1940,'Fuxin','CHN',640000), +(1941,'Amoy [Xiamen]','CHN',627500), +(1942,'Liuzhou','CHN',610000), +(1943,'Shantou','CHN',580000), +(1944,'Jinzhou','CHN',570000), +(1945,'Mudanjiang','CHN',570000), +(1946,'Yinchuan','CHN',544500), +(1947,'Changzhou','CHN',530000), +(1948,'Zhangjiakou','CHN',530000), +(1949,'Dandong','CHN',520000), +(1950,'Hegang','CHN',520000), +(1951,'Kaifeng','CHN',510000), +(1952,'Jiamusi','CHN',493409), +(1953,'Liaoyang','CHN',492559), +(1954,'Hengyang','CHN',487148), +(1955,'Baoding','CHN',483155), +(1956,'Hunjiang','CHN',482043), +(1957,'Xinxiang','CHN',473762), +(1958,'Huangshi','CHN',457601), +(1959,'Haikou','CHN',454300), +(1960,'Yantai','CHN',452127), +(1961,'Bengbu','CHN',449245), +(1962,'Xiangtan','CHN',441968), +(1963,'Weifang','CHN',428522), + (1964,'Wuhu','CHN',425740), +(1965,'Pingxiang','CHN',425579), +(1966,'Yingkou','CHN',421589), +(1967,'Anyang','CHN',420332), +(1968,'Panzhihua','CHN',415466), +(1969,'Pingdingshan','CHN',410775), +(1970,'Xiangfan','CHN',410407), +(1971,'Zhuzhou','CHN',409924), +(1972,'Jiaozuo','CHN',409100), +(1973,'Wenzhou','CHN',401871), +(1974,'Zhangjiang','CHN',400997), +(1975,'Zigong','CHN',393184), +(1976,'Shuangyashan','CHN',386081), +(1977,'Zaozhuang','CHN',380846), +(1978,'Yakeshi','CHN',377869), +(1979,'Yichang','CHN',371601), +(1980,'Zhenjiang','CHN',368316), +(1981,'Huaibei','CHN',366549), +(1982,'Qinhuangdao','CHN',364972), +(1983,'Guilin','CHN',364130), +(1984,'Liupanshui','CHN',363954), +(1985,'Panjin','CHN',362773), +(1986,'Yangquan','CHN',362268), +(1987,'Jinxi','CHN',357052), +(1988,'Liaoyuan','CHN',354141), +(1989,'Lianyungang','CHN',354139), +(1990,'Xianyang','CHN',352125), +(1991,'Tai´an','CHN',350696), +(1992,'Chifeng','CHN',350077), +(1993,'Shaoguan','CHN',350043), +(1994,'Nantong','CHN',343341), +(1995,'Leshan','CHN',341128), +(1996,'Baoji','CHN',337765), +(1997,'Linyi','CHN',324720), +(1998,'Tonghua','CHN',324600), +(1999,'Siping','CHN',317223), +(2000,'Changzhi','CHN',317144); +INSERT INTO City VALUES +(2001,'Tengzhou','CHN',315083), +(2002,'Chaozhou','CHN',313469), +(2003,'Yangzhou','CHN',312892), +(2004,'Dongwan','CHN',308669), +(2005,'Ma´anshan','CHN',305421), +(2006,'Foshan','CHN',303160), +(2007,'Yueyang','CHN',302800), +(2008,'Xingtai','CHN',302789), +(2009,'Changde','CHN',301276), +(2010,'Shihezi','CHN',299676), +(2011,'Yancheng','CHN',296831), +(2012,'Jiujiang','CHN',291187), +(2013,'Dongying','CHN',281728), +(2014,'Shashi','CHN',281352), +(2015,'Xintai','CHN',281248), +(2016,'Jingdezhen','CHN',281183), +(2017,'Tongchuan','CHN',280657), +(2018,'Zhongshan','CHN',278829), +(2019,'Shiyan','CHN',273786), +(2020,'Tieli','CHN',265683), +(2021,'Jining','CHN',265248), +(2022,'Wuhai','CHN',264081), +(2023,'Mianyang','CHN',262947), +(2024,'Luzhou','CHN',262892), +(2025,'Zunyi','CHN',261862), +(2026,'Shizuishan','CHN',257862), +(2027,'Neijiang','CHN',256012), +(2028,'Tongliao','CHN',255129), +(2029,'Tieling','CHN',254842), +(2030,'Wafangdian','CHN',251733), +(2031,'Anqing','CHN',250718), +(2032,'Shaoyang','CHN',247227), +(2033,'Laiwu','CHN',246833), +(2034,'Chengde','CHN',246799), +(2035,'Tianshui','CHN',244974), +(2036,'Nanyang','CHN',243303), +(2037,'Cangzhou','CHN',242708), +(2038,'Yibin','CHN',241019), +(2039,'Huaiyin','CHN',239675), +(2040,'Dunhua','CHN',235100), +(2041,'Yanji','CHN',230892), +(2042,'Jiangmen','CHN',230587), +(2043,'Tongling','CHN',228017), +(2044,'Suihua','CHN',227881), +(2045,'Gongziling','CHN',226569), +(2046,'Xiantao','CHN',222884), +(2047,'Chaoyang','CHN',222394), +(2048,'Ganzhou','CHN',220129), +(2049,'Huzhou','CHN',218071), +(2050,'Baicheng','CHN',217987), +(2051,'Shangzi','CHN',215373), +(2052,'Yangjiang','CHN',215196), +(2053,'Qitaihe','CHN',214957), +(2054,'Gejiu','CHN',214294), +(2055,'Jiangyin','CHN',213659), +(2056,'Hebi','CHN',212976), +(2057,'Jiaxing','CHN',211526), +(2058,'Wuzhou','CHN',210452), +(2059,'Meihekou','CHN',209038), +(2060,'Xuchang','CHN',208815), +(2061,'Liaocheng','CHN',207844), +(2062,'Haicheng','CHN',205560), +(2063,'Qianjiang','CHN',205504), +(2064,'Baiyin','CHN',204970), +(2065,'Bei´an','CHN',204899), +(2066,'Yixing','CHN',200824), +(2067,'Laizhou','CHN',198664), +(2068,'Qaramay','CHN',197602), +(2069,'Acheng','CHN',197595), +(2070,'Dezhou','CHN',195485), +(2071,'Nanping','CHN',195064), +(2072,'Zhaoqing','CHN',194784), +(2073,'Beipiao','CHN',194301), +(2074,'Fengcheng','CHN',193784), +(2075,'Fuyu','CHN',192981), +(2076,'Xinyang','CHN',192509), +(2077,'Dongtai','CHN',192247), +(2078,'Yuci','CHN',191356), +(2079,'Honghu','CHN',190772), +(2080,'Ezhou','CHN',190123), +(2081,'Heze','CHN',189293), +(2082,'Daxian','CHN',188101), +(2083,'Linfen','CHN',187309), +(2084,'Tianmen','CHN',186332), +(2085,'Yiyang','CHN',185818), +(2086,'Quanzhou','CHN',185154), +(2087,'Rizhao','CHN',185048), +(2088,'Deyang','CHN',182488), +(2089,'Guangyuan','CHN',182241), +(2090,'Changshu','CHN',181805), +(2091,'Zhangzhou','CHN',181424), +(2092,'Hailar','CHN',180650), +(2093,'Nanchong','CHN',180273), +(2094,'Jiutai','CHN',180130), +(2095,'Zhaodong','CHN',179976), +(2096,'Shaoxing','CHN',179818), +(2097,'Fuyang','CHN',179572), +(2098,'Maoming','CHN',178683), +(2099,'Qujing','CHN',178669), +(2100,'Ghulja','CHN',177193), +(2101,'Jiaohe','CHN',176367), +(2102,'Puyang','CHN',175988), +(2103,'Huadian','CHN',175873), +(2104,'Jiangyou','CHN',175753), +(2105,'Qashqar','CHN',174570), +(2106,'Anshun','CHN',174142), +(2107,'Fuling','CHN',173878), +(2108,'Xinyu','CHN',173524), +(2109,'Hanzhong','CHN',169930), +(2110,'Danyang','CHN',169603), +(2111,'Chenzhou','CHN',169400), +(2112,'Xiaogan','CHN',166280), +(2113,'Shangqiu','CHN',164880), +(2114,'Zhuhai','CHN',164747), +(2115,'Qingyuan','CHN',164641), +(2116,'Aqsu','CHN',164092), +(2117,'Jining','CHN',163552), +(2118,'Xiaoshan','CHN',162930), +(2119,'Zaoyang','CHN',162198), +(2120,'Xinghua','CHN',161910), +(2121,'Hami','CHN',161315), +(2122,'Huizhou','CHN',161023), +(2123,'Jinmen','CHN',160794), +(2124,'Sanming','CHN',160691), +(2125,'Ulanhot','CHN',159538), +(2126,'Korla','CHN',159344), +(2127,'Wanxian','CHN',156823), +(2128,'Rui´an','CHN',156468), +(2129,'Zhoushan','CHN',156317), +(2130,'Liangcheng','CHN',156307), +(2131,'Jiaozhou','CHN',153364), +(2132,'Taizhou','CHN',152442), +(2133,'Suzhou','CHN',151862), +(2134,'Yichun','CHN',151585), +(2135,'Taonan','CHN',150168), +(2136,'Pingdu','CHN',150123), +(2137,'Ji´an','CHN',148583), +(2138,'Longkou','CHN',148362), +(2139,'Langfang','CHN',148105), +(2140,'Zhoukou','CHN',146288), +(2141,'Suining','CHN',146086), +(2142,'Yulin','CHN',144467), +(2143,'Jinhua','CHN',144280), +(2144,'Liu´an','CHN',144248), +(2145,'Shuangcheng','CHN',142659), +(2146,'Suizhou','CHN',142302), +(2147,'Ankang','CHN',142170), +(2148,'Weinan','CHN',140169), +(2149,'Longjing','CHN',139417), +(2150,'Da´an','CHN',138963), +(2151,'Lengshuijiang','CHN',137994), +(2152,'Laiyang','CHN',137080), +(2153,'Xianning','CHN',136811), +(2154,'Dali','CHN',136554), +(2155,'Anda','CHN',136446), +(2156,'Jincheng','CHN',136396), +(2157,'Longyan','CHN',134481), +(2158,'Xichang','CHN',134419), +(2159,'Wendeng','CHN',133910), +(2160,'Hailun','CHN',133565), +(2161,'Binzhou','CHN',133555), +(2162,'Linhe','CHN',133183), +(2163,'Wuwei','CHN',133101), +(2164,'Duyun','CHN',132971), +(2165,'Mishan','CHN',132744), +(2166,'Shangrao','CHN',132455), +(2167,'Changji','CHN',132260), +(2168,'Meixian','CHN',132156), +(2169,'Yushu','CHN',131861), +(2170,'Tiefa','CHN',131807), +(2171,'Huai´an','CHN',131149), +(2172,'Leiyang','CHN',130115), +(2173,'Zalantun','CHN',130031), +(2174,'Weihai','CHN',128888), +(2175,'Loudi','CHN',128418), +(2176,'Qingzhou','CHN',128258), +(2177,'Qidong','CHN',126872), +(2178,'Huaihua','CHN',126785), +(2179,'Luohe','CHN',126438), +(2180,'Chuzhou','CHN',125341), +(2181,'Kaiyuan','CHN',124219), +(2182,'Linqing','CHN',123958), +(2183,'Chaohu','CHN',123676), +(2184,'Laohekou','CHN',123366), +(2185,'Dujiangyan','CHN',123357), +(2186,'Zhumadian','CHN',123232), +(2187,'Linchuan','CHN',121949), +(2188,'Jiaonan','CHN',121397), +(2189,'Sanmenxia','CHN',120523), +(2190,'Heyuan','CHN',120101), +(2191,'Manzhouli','CHN',120023), +(2192,'Lhasa','CHN',120000), +(2193,'Lianyuan','CHN',118858), +(2194,'Kuytun','CHN',118553), +(2195,'Puqi','CHN',117264), +(2196,'Hongjiang','CHN',116188), +(2197,'Qinzhou','CHN',114586), +(2198,'Renqiu','CHN',114256), +(2199,'Yuyao','CHN',114065), +(2200,'Guigang','CHN',114025); +INSERT INTO City VALUES +(2201,'Kaili','CHN',113958), +(2202,'Yan´an','CHN',113277), +(2203,'Beihai','CHN',112673), +(2204,'Xuangzhou','CHN',112673), +(2205,'Quzhou','CHN',112373), +(2206,'Yong´an','CHN',111762), +(2207,'Zixing','CHN',110048), +(2208,'Liyang','CHN',109520), +(2209,'Yizheng','CHN',109268), +(2210,'Yumen','CHN',109234), +(2211,'Liling','CHN',108504), +(2212,'Yuncheng','CHN',108359), +(2213,'Shanwei','CHN',107847), +(2214,'Cixi','CHN',107329), +(2215,'Yuanjiang','CHN',107004), +(2216,'Bozhou','CHN',106346), +(2217,'Jinchang','CHN',105287), +(2218,'Fu´an','CHN',105265), +(2219,'Suqian','CHN',105021), +(2220,'Shishou','CHN',104571), +(2221,'Hengshui','CHN',104269), +(2222,'Danjiangkou','CHN',103211), +(2223,'Fujin','CHN',103104), +(2224,'Sanya','CHN',102820), +(2225,'Guangshui','CHN',102770), +(2226,'Huangshan','CHN',102628), +(2227,'Xingcheng','CHN',102384), +(2228,'Zhucheng','CHN',102134), +(2229,'Kunshan','CHN',102052), +(2230,'Haining','CHN',100478), +(2231,'Pingliang','CHN',99265), +(2232,'Fuqing','CHN',99193), +(2233,'Xinzhou','CHN',98667), +(2234,'Jieyang','CHN',98531), +(2235,'Zhangjiagang','CHN',97994), +(2236,'Tong Xian','CHN',97168), +(2237,'Ya´an','CHN',95900), +(2238,'Jinzhou','CHN',95761), +(2239,'Emeishan','CHN',94000), +(2240,'Enshi','CHN',93056), +(2241,'Bose','CHN',93009), +(2242,'Yuzhou','CHN',92889), +(2243,'Kaiyuan','CHN',91999), +(2244,'Tumen','CHN',91471), +(2245,'Putian','CHN',91030), +(2246,'Linhai','CHN',90870), +(2247,'Xilin Hot','CHN',90646), +(2248,'Shaowu','CHN',90286), +(2249,'Junan','CHN',90222), +(2250,'Huaying','CHN',89400), +(2251,'Pingyi','CHN',89373), +(2252,'Huangyan','CHN',89288), +(2253,'Bishkek','KGZ',589400), +(2254,'Osh','KGZ',222700), +(2255,'Bikenibeu','KIR',5055), +(2256,'Bairiki','KIR',2226), +(2257,'Santafé de Bogotá','COL',6260862), +(2258,'Cali','COL',2077386), +(2259,'Medellín','COL',1861265), +(2260,'Barranquilla','COL',1223260), +(2261,'Cartagena','COL',805757), +(2262,'Cúcuta','COL',606932), +(2263,'Bucaramanga','COL',515555), +(2264,'Ibagué','COL',393664), +(2265,'Pereira','COL',381725), +(2266,'Santa Marta','COL',359147), +(2267,'Manizales','COL',337580), +(2268,'Bello','COL',333470), +(2269,'Pasto','COL',332396), +(2270,'Neiva','COL',300052), +(2271,'Soledad','COL',295058), +(2272,'Armenia','COL',288977), +(2273,'Villavicencio','COL',273140), +(2274,'Soacha','COL',272058), +(2275,'Valledupar','COL',263247), +(2276,'Montería','COL',248245), +(2277,'Itagüí','COL',228985), +(2278,'Palmira','COL',226509), +(2279,'Buenaventura','COL',224336), +(2280,'Floridablanca','COL',221913), +(2281,'Sincelejo','COL',220704), +(2282,'Popayán','COL',200719), +(2283,'Barrancabermeja','COL',178020), +(2284,'Dos Quebradas','COL',159363), +(2285,'Tuluá','COL',152488), +(2286,'Envigado','COL',135848), +(2287,'Cartago','COL',125884), +(2288,'Girardot','COL',110963), +(2289,'Buga','COL',110699), +(2290,'Tunja','COL',109740), +(2291,'Florencia','COL',108574), +(2292,'Maicao','COL',108053), +(2293,'Sogamoso','COL',107728), +(2294,'Giron','COL',90688), +(2295,'Moroni','COM',36000), +(2296,'Brazzaville','COG',950000), +(2297,'Pointe-Noire','COG',500000), +(2298,'Kinshasa','COD',5064000), +(2299,'Lubumbashi','COD',851381), +(2300,'Mbuji-Mayi','COD',806475), +(2301,'Kolwezi','COD',417810), +(2302,'Kisangani','COD',417517), +(2303,'Kananga','COD',393030), +(2304,'Likasi','COD',299118), +(2305,'Bukavu','COD',201569), +(2306,'Kikwit','COD',182142), +(2307,'Tshikapa','COD',180860), +(2308,'Matadi','COD',172730), +(2309,'Mbandaka','COD',169841), +(2310,'Mwene-Ditu','COD',137459), +(2311,'Boma','COD',135284), +(2312,'Uvira','COD',115590), +(2313,'Butembo','COD',109406), +(2314,'Goma','COD',109094), +(2315,'Kalemie','COD',101309), +(2316,'Bantam','CCK',503), +(2317,'West Island','CCK',167), +(2318,'Pyongyang','PRK',2484000), +(2319,'Hamhung','PRK',709730), +(2320,'Chongjin','PRK',582480), +(2321,'Nampo','PRK',566200), +(2322,'Sinuiju','PRK',326011), +(2323,'Wonsan','PRK',300148), +(2324,'Phyongsong','PRK',272934), +(2325,'Sariwon','PRK',254146), +(2326,'Haeju','PRK',229172), +(2327,'Kanggye','PRK',223410), +(2328,'Kimchaek','PRK',179000), +(2329,'Hyesan','PRK',178020), +(2330,'Kaesong','PRK',171500), +(2331,'Seoul','KOR',9981619), +(2332,'Pusan','KOR',3804522), +(2333,'Inchon','KOR',2559424), +(2334,'Taegu','KOR',2548568), +(2335,'Taejon','KOR',1425835), +(2336,'Kwangju','KOR',1368341), +(2337,'Ulsan','KOR',1084891), +(2338,'Songnam','KOR',869094), +(2339,'Puchon','KOR',779412), +(2340,'Suwon','KOR',755550), +(2341,'Anyang','KOR',591106), +(2342,'Chonju','KOR',563153), +(2343,'Chongju','KOR',531376), +(2344,'Koyang','KOR',518282), +(2345,'Ansan','KOR',510314), +(2346,'Pohang','KOR',508899), +(2347,'Chang-won','KOR',481694), +(2348,'Masan','KOR',441242), +(2349,'Kwangmyong','KOR',350914), +(2350,'Chonan','KOR',330259), +(2351,'Chinju','KOR',329886), +(2352,'Iksan','KOR',322685), +(2353,'Pyongtaek','KOR',312927), +(2354,'Kumi','KOR',311431), +(2355,'Uijongbu','KOR',276111), +(2356,'Kyongju','KOR',272968), +(2357,'Kunsan','KOR',266569), +(2358,'Cheju','KOR',258511), +(2359,'Kimhae','KOR',256370), +(2360,'Sunchon','KOR',249263), +(2361,'Mokpo','KOR',247452), +(2362,'Yong-in','KOR',242643), +(2363,'Wonju','KOR',237460), +(2364,'Kunpo','KOR',235233), +(2365,'Chunchon','KOR',234528), +(2366,'Namyangju','KOR',229060), +(2367,'Kangnung','KOR',220403), +(2368,'Chungju','KOR',205206), +(2369,'Andong','KOR',188443), +(2370,'Yosu','KOR',183596), +(2371,'Kyongsan','KOR',173746), +(2372,'Paju','KOR',163379), +(2373,'Yangsan','KOR',163351), +(2374,'Ichon','KOR',155332), +(2375,'Asan','KOR',154663), +(2376,'Koje','KOR',147562), +(2377,'Kimchon','KOR',147027), +(2378,'Nonsan','KOR',146619), +(2379,'Kuri','KOR',142173), +(2380,'Chong-up','KOR',139111), +(2381,'Chechon','KOR',137070), +(2382,'Sosan','KOR',134746), +(2383,'Shihung','KOR',133443), +(2384,'Tong-yong','KOR',131717), +(2385,'Kongju','KOR',131229), +(2386,'Yongju','KOR',131097), +(2387,'Chinhae','KOR',125997), +(2388,'Sangju','KOR',124116), +(2389,'Poryong','KOR',122604), +(2390,'Kwang-yang','KOR',122052), +(2391,'Miryang','KOR',121501), +(2392,'Hanam','KOR',115812), +(2393,'Kimje','KOR',115427), +(2394,'Yongchon','KOR',113511), +(2395,'Sachon','KOR',113494), +(2396,'Uiwang','KOR',108788), +(2397,'Naju','KOR',107831), +(2398,'Namwon','KOR',103544), +(2399,'Tonghae','KOR',95472), +(2400,'Mun-gyong','KOR',92239); +INSERT IGNORE INTO City VALUES +(2401,'Athenai','GRC',772072), +(2402,'Thessaloniki','GRC',383967), +(2403,'Pireus','GRC',182671), +(2404,'Patras','GRC',153344), +(2405,'Peristerion','GRC',137288), +(2406,'Herakleion','GRC',116178), +(2407,'Kallithea','GRC',114233), +(2408,'Larisa','GRC',113090), +(2409,'Zagreb','HRV',706770), +(2410,'Split','HRV',189388), +(2411,'Rijeka','HRV',167964), +(2412,'Osijek','HRV',104761), +(2413,'La Habana','CUB',2256000), +(2414,'Santiago de Cuba','CUB',433180), +(2415,'Camagüey','CUB',298726), +(2416,'Holguín','CUB',249492), +(2417,'Santa Clara','CUB',207350), +(2418,'Guantánamo','CUB',205078), +(2419,'Pinar del Río','CUB',142100), +(2420,'Bayamo','CUB',141000), +(2421,'Cienfuegos','CUB',132770), +(2422,'Victoria de las Tunas','CUB',132350), +(2423,'Matanzas','CUB',123273), +(2424,'Manzanillo','CUB',109350), +(2425,'Sancti-Spíritus','CUB',100751), +(2426,'Ciego de Ávila','CUB',98505), +(2427,'al-Salimiya','KWT',130215), +(2428,'Jalib al-Shuyukh','KWT',102178), +(2429,'Kuwait','KWT',28859), +(2430,'Nicosia','CYP',195000), +(2431,'Limassol','CYP',154400), +(2432,'Vientiane','LAO',531800), +(2433,'Savannakhet','LAO',96652), +(2434,'Riga','LVA',764328), +(2435,'Daugavpils','LVA',114829), +(2436,'Liepaja','LVA',89439), +(2437,'Maseru','LSO',297000), +(2438,'Beirut','LBN',1100000), +(2439,'Tripoli','LBN',240000), +(2440,'Monrovia','LBR',850000), +(2441,'Tripoli','LBY',1682000), +(2442,'Bengasi','LBY',804000), +(2443,'Misrata','LBY',121669), +(2444,'al-Zawiya','LBY',89338), +(2445,'Schaan','LIE',5346), +(2446,'Vaduz','LIE',5043), +(2447,'Vilnius','LTU',577969), +(2448,'Kaunas','LTU',412639), +(2449,'Klaipeda','LTU',202451), +(2450,'iauliai','LTU',146563), +(2451,'Panevezys','LTU',133695), +(2452,'Luxembourg [Luxemburg/Lëtzebuerg]','LUX',80700), +(2453,'El-Aaiún','ESH',169000), +(2454,'Macao','MAC',437500), +(2455,'Antananarivo','MDG',675669), +(2456,'Toamasina','MDG',127441), +(2457,'Antsirabé','MDG',120239), +(2458,'Mahajanga','MDG',100807), +(2459,'Fianarantsoa','MDG',99005), +(2460,'Skopje','MKD',444299), +(2461,'Blantyre','MWI',478155), +(2462,'Lilongwe','MWI',435964), +(2463,'Male','MDV',71000), +(2464,'Kuala Lumpur','MYS',1297526), +(2465,'Ipoh','MYS',382853), +(2466,'Johor Baharu','MYS',328436), +(2467,'Petaling Jaya','MYS',254350), +(2468,'Kelang','MYS',243355), +(2469,'Kuala Terengganu','MYS',228119), +(2470,'Pinang','MYS',219603), +(2471,'Kota Bharu','MYS',219582), +(2472,'Kuantan','MYS',199484), +(2473,'Taiping','MYS',183261), +(2474,'Seremban','MYS',182869), +(2475,'Kuching','MYS',148059), +(2476,'Sibu','MYS',126381), +(2477,'Sandakan','MYS',125841), +(2478,'Alor Setar','MYS',124412), +(2479,'Selayang Baru','MYS',124228), +(2480,'Sungai Petani','MYS',114763), +(2481,'Shah Alam','MYS',102019), +(2482,'Bamako','MLI',809552), +(2483,'Birkirkara','MLT',21445), +(2484,'Valletta','MLT',7073), +(2485,'Casablanca','MAR',2940623), +(2486,'Rabat','MAR',623457), +(2487,'Marrakech','MAR',621914), +(2488,'Fès','MAR',541162), +(2489,'Tanger','MAR',521735), +(2490,'Salé','MAR',504420), +(2491,'Meknès','MAR',460000), +(2492,'Oujda','MAR',365382), +(2493,'Kénitra','MAR',292600), +(2494,'Tétouan','MAR',277516), +(2495,'Safi','MAR',262300), +(2496,'Agadir','MAR',155244), +(2497,'Mohammedia','MAR',154706), +(2498,'Khouribga','MAR',152090), +(2499,'Beni-Mellal','MAR',140212), +(2500,'Témara','MAR',126303), +(2501,'El Jadida','MAR',119083), +(2502,'Nador','MAR',112450), +(2503,'Ksar el Kebir','MAR',107065), +(2504,'Settat','MAR',96200), +(2505,'Taza','MAR',92700), +(2506,'El Araich','MAR',90400), +(2507,'Dalap-Uliga-Darrit','MHL',28000), +(2508,'Fort-de-France','MTQ',94050), +(2509,'Nouakchott','MRT',667300), +(2510,'Nouâdhibou','MRT',97600), +(2511,'Port-Louis','MUS',138200), +(2512,'Beau Bassin-Rose Hill','MUS',100616), +(2513,'Vacoas-Phoenix','MUS',98464), +(2514,'Mamoutzou','MYT',12000), +(2515,'Ciudad de México','MEX',8591309), +(2516,'Guadalajara','MEX',1647720), +(2517,'Ecatepec de Morelos','MEX',1620303), +(2518,'Puebla','MEX',1346176), +(2519,'Nezahualcóyotl','MEX',1224924), +(2520,'Juárez','MEX',1217818), +(2521,'Tijuana','MEX',1212232), +(2522,'León','MEX',1133576), +(2523,'Monterrey','MEX',1108499), +(2524,'Zapopan','MEX',1002239), +(2525,'Naucalpan de Juárez','MEX',857511), +(2526,'Mexicali','MEX',764902), +(2527,'Culiacán','MEX',744859), +(2528,'Acapulco de Juárez','MEX',721011), +(2529,'Tlalnepantla de Baz','MEX',720755), +(2530,'Mérida','MEX',703324), +(2531,'Chihuahua','MEX',670208), +(2532,'San Luis Potosí','MEX',669353), +(2533,'Guadalupe','MEX',668780), +(2534,'Toluca','MEX',665617), +(2535,'Aguascalientes','MEX',643360), +(2536,'Querétaro','MEX',639839), +(2537,'Morelia','MEX',619958), +(2538,'Hermosillo','MEX',608697), +(2539,'Saltillo','MEX',577352), +(2540,'Torreón','MEX',529093), +(2541,'Centro (Villahermosa)','MEX',519873), +(2542,'San Nicolás de los Garza','MEX',495540), +(2543,'Durango','MEX',490524), +(2544,'Chimalhuacán','MEX',490245), +(2545,'Tlaquepaque','MEX',475472), +(2546,'Atizapán de Zaragoza','MEX',467262), +(2547,'Veracruz','MEX',457119), +(2548,'Cuautitlán Izcalli','MEX',452976), +(2549,'Irapuato','MEX',440039), +(2550,'Tuxtla Gutiérrez','MEX',433544), +(2551,'Tultitlán','MEX',432411), +(2552,'Reynosa','MEX',419776), +(2553,'Benito Juárez','MEX',419276), +(2554,'Matamoros','MEX',416428), +(2555,'Xalapa','MEX',390058), +(2556,'Celaya','MEX',382140), +(2557,'Mazatlán','MEX',380265), +(2558,'Ensenada','MEX',369573), +(2559,'Ahome','MEX',358663), +(2560,'Cajeme','MEX',355679), +(2561,'Cuernavaca','MEX',337966), +(2562,'Tonalá','MEX',336109), +(2563,'Valle de Chalco Solidaridad','MEX',323113), +(2564,'Nuevo Laredo','MEX',310277), +(2565,'Tepic','MEX',305025), +(2566,'Tampico','MEX',294789), +(2567,'Ixtapaluca','MEX',293160), +(2568,'Apodaca','MEX',282941), +(2569,'Guasave','MEX',277201), +(2570,'Gómez Palacio','MEX',272806), +(2571,'Tapachula','MEX',271141), +(2572,'Nicolás Romero','MEX',269393), +(2573,'Coatzacoalcos','MEX',267037), +(2574,'Uruapan','MEX',265211), +(2575,'Victoria','MEX',262686), +(2576,'Oaxaca de Juárez','MEX',256848), +(2577,'Coacalco de Berriozábal','MEX',252270), +(2578,'Pachuca de Soto','MEX',244688), +(2579,'General Escobedo','MEX',232961), +(2580,'Salamanca','MEX',226864), +(2581,'Santa Catarina','MEX',226573), +(2582,'Tehuacán','MEX',225943), +(2583,'Chalco','MEX',222201), +(2584,'Cárdenas','MEX',216903), +(2585,'Campeche','MEX',216735), +(2586,'La Paz','MEX',213045), +(2587,'Othón P. Blanco (Chetumal)','MEX',208014), +(2588,'Texcoco','MEX',203681), +(2589,'La Paz','MEX',196708), +(2590,'Metepec','MEX',194265), +(2591,'Monclova','MEX',193657), +(2592,'Huixquilucan','MEX',193156), +(2593,'Chilpancingo de los Bravo','MEX',192509), +(2594,'Puerto Vallarta','MEX',183741), +(2595,'Fresnillo','MEX',182744), +(2596,'Ciudad Madero','MEX',182012), +(2597,'Soledad de Graciano Sánchez','MEX',179956), +(2598,'San Juan del Río','MEX',179300), +(2599,'San Felipe del Progreso','MEX',177330), +(2600,'Córdoba','MEX',176952); +INSERT INTO City VALUES +(2601,'Tecámac','MEX',172410), +(2602,'Ocosingo','MEX',171495), +(2603,'Carmen','MEX',171367), +(2604,'Lázaro Cárdenas','MEX',170878), +(2605,'Jiutepec','MEX',170428), +(2606,'Papantla','MEX',170123), +(2607,'Comalcalco','MEX',164640), +(2608,'Zamora','MEX',161191), +(2609,'Nogales','MEX',159103), +(2610,'Huimanguillo','MEX',158335), +(2611,'Cuautla','MEX',153132), +(2612,'Minatitlán','MEX',152983), +(2613,'Poza Rica de Hidalgo','MEX',152678), +(2614,'Ciudad Valles','MEX',146411), +(2615,'Navolato','MEX',145396), +(2616,'San Luis Río Colorado','MEX',145276), +(2617,'Pénjamo','MEX',143927), +(2618,'San Andrés Tuxtla','MEX',142251), +(2619,'Guanajuato','MEX',141215), +(2620,'Navojoa','MEX',140495), +(2621,'Zitácuaro','MEX',137970), +(2622,'Boca del Río','MEX',135721), +(2623,'Allende','MEX',134645), +(2624,'Silao','MEX',134037), +(2625,'Macuspana','MEX',133795), +(2626,'San Juan Bautista Tuxtepec','MEX',133675), +(2627,'San Cristóbal de las Casas','MEX',132317), +(2628,'Valle de Santiago','MEX',130557), +(2629,'Guaymas','MEX',130108), +(2630,'Colima','MEX',129454), +(2631,'Dolores Hidalgo','MEX',128675), +(2632,'Lagos de Moreno','MEX',127949), +(2633,'Piedras Negras','MEX',127898), +(2634,'Altamira','MEX',127490), +(2635,'Túxpam','MEX',126475), +(2636,'San Pedro Garza García','MEX',126147), +(2637,'Cuauhtémoc','MEX',124279), +(2638,'Manzanillo','MEX',124014), +(2639,'Iguala de la Independencia','MEX',123883), +(2640,'Zacatecas','MEX',123700), +(2641,'Tlajomulco de Zúñiga','MEX',123220), +(2642,'Tulancingo de Bravo','MEX',121946), +(2643,'Zinacantepec','MEX',121715), +(2644,'San Martín Texmelucan','MEX',121093), +(2645,'Tepatitlán de Morelos','MEX',118948), +(2646,'Martínez de la Torre','MEX',118815), +(2647,'Orizaba','MEX',118488), +(2648,'Apatzingán','MEX',117849), +(2649,'Atlixco','MEX',117019), +(2650,'Delicias','MEX',116132), +(2651,'Ixtlahuaca','MEX',115548), +(2652,'El Mante','MEX',112453), +(2653,'Lerdo','MEX',112272), +(2654,'Almoloya de Juárez','MEX',110550), +(2655,'Acámbaro','MEX',110487), +(2656,'Acuña','MEX',110388), +(2657,'Guadalupe','MEX',108881), +(2658,'Huejutla de Reyes','MEX',108017), +(2659,'Hidalgo','MEX',106198), +(2660,'Los Cabos','MEX',105199), +(2661,'Comitán de Domínguez','MEX',104986), +(2662,'Cunduacán','MEX',104164), +(2663,'Río Bravo','MEX',103901), +(2664,'Temapache','MEX',102824), +(2665,'Chilapa de Alvarez','MEX',102716), +(2666,'Hidalgo del Parral','MEX',100881), +(2667,'San Francisco del Rincón','MEX',100149), +(2668,'Taxco de Alarcón','MEX',99907), +(2669,'Zumpango','MEX',99781), +(2670,'San Pedro Cholula','MEX',99734), +(2671,'Lerma','MEX',99714), +(2672,'Tecomán','MEX',99296), +(2673,'Las Margaritas','MEX',97389), +(2674,'Cosoleacaque','MEX',97199), +(2675,'San Luis de la Paz','MEX',96763), +(2676,'José Azueta','MEX',95448), +(2677,'Santiago Ixcuintla','MEX',95311), +(2678,'San Felipe','MEX',95305), +(2679,'Tejupilco','MEX',94934), +(2680,'Tantoyuca','MEX',94709), +(2681,'Salvatierra','MEX',94322), +(2682,'Tultepec','MEX',93364), +(2683,'Temixco','MEX',92686), +(2684,'Matamoros','MEX',91858), +(2685,'Pánuco','MEX',90551), +(2686,'El Fuerte','MEX',89556), +(2687,'Tierra Blanca','MEX',89143), +(2688,'Weno','FSM',22000), +(2689,'Palikir','FSM',8600), +(2690,'Chisinau','MDA',719900), +(2691,'Tiraspol','MDA',194300), +(2692,'Balti','MDA',153400), +(2693,'Bender (Tîghina)','MDA',125700), +(2694,'Monte-Carlo','MCO',13154), +(2695,'Monaco-Ville','MCO',1234), +(2696,'Ulan Bator','MNG',773700), +(2697,'Plymouth','MSR',2000), +(2698,'Maputo','MOZ',1018938), +(2699,'Matola','MOZ',424662), +(2700,'Beira','MOZ',397368), +(2701,'Nampula','MOZ',303346), +(2702,'Chimoio','MOZ',171056), +(2703,'Naçala-Porto','MOZ',158248), +(2704,'Quelimane','MOZ',150116), +(2705,'Mocuba','MOZ',124700), +(2706,'Tete','MOZ',101984), +(2707,'Xai-Xai','MOZ',99442), +(2708,'Gurue','MOZ',99300), +(2709,'Maxixe','MOZ',93985), +(2710,'Rangoon (Yangon)','MMR',3361700), +(2711,'Mandalay','MMR',885300), +(2712,'Moulmein (Mawlamyine)','MMR',307900), +(2713,'Pegu (Bago)','MMR',190900), +(2714,'Bassein (Pathein)','MMR',183900), +(2715,'Monywa','MMR',138600), +(2716,'Sittwe (Akyab)','MMR',137600), +(2717,'Taunggyi (Taunggye)','MMR',131500), +(2718,'Meikhtila','MMR',129700), +(2719,'Mergui (Myeik)','MMR',122700), +(2720,'Lashio (Lasho)','MMR',107600), +(2721,'Prome (Pyay)','MMR',105700), +(2722,'Henzada (Hinthada)','MMR',104700), +(2723,'Myingyan','MMR',103600), +(2724,'Tavoy (Dawei)','MMR',96800), +(2725,'Pagakku (Pakokku)','MMR',94800), +(2726,'Windhoek','NAM',169000), +(2727,'Yangor','NRU',4050), +(2728,'Yaren','NRU',559), +(2729,'Kathmandu','NPL',591835), +(2730,'Biratnagar','NPL',157764), +(2731,'Pokhara','NPL',146318), +(2732,'Lalitapur','NPL',145847), +(2733,'Birgunj','NPL',90639), +(2734,'Managua','NIC',959000), +(2735,'León','NIC',123865), +(2736,'Chinandega','NIC',97387), +(2737,'Masaya','NIC',88971), +(2738,'Niamey','NER',420000), +(2739,'Zinder','NER',120892), +(2740,'Maradi','NER',112965), +(2741,'Lagos','NGA',1518000), +(2742,'Ibadan','NGA',1432000), +(2743,'Ogbomosho','NGA',730000), +(2744,'Kano','NGA',674100), +(2745,'Oshogbo','NGA',476800), +(2746,'Ilorin','NGA',475800), +(2747,'Abeokuta','NGA',427400), +(2748,'Port Harcourt','NGA',410000), +(2749,'Zaria','NGA',379200), +(2750,'Ilesha','NGA',378400), +(2751,'Onitsha','NGA',371900), +(2752,'Iwo','NGA',362000), +(2753,'Ado-Ekiti','NGA',359400), +(2754,'Abuja','NGA',350100), +(2755,'Kaduna','NGA',342200), +(2756,'Mushin','NGA',333200), +(2757,'Maiduguri','NGA',320000), +(2758,'Enugu','NGA',316100), +(2759,'Ede','NGA',307100), +(2760,'Aba','NGA',298900), +(2761,'Ife','NGA',296800), +(2762,'Ila','NGA',264000), +(2763,'Oyo','NGA',256400), +(2764,'Ikerre','NGA',244600), +(2765,'Benin City','NGA',229400), +(2766,'Iseyin','NGA',217300), +(2767,'Katsina','NGA',206500), +(2768,'Jos','NGA',206300), +(2769,'Sokoto','NGA',204900), +(2770,'Ilobu','NGA',199000), +(2771,'Offa','NGA',197200), +(2772,'Ikorodu','NGA',184900), +(2773,'Ilawe-Ekiti','NGA',184500), +(2774,'Owo','NGA',183500), +(2775,'Ikirun','NGA',181400), +(2776,'Shaki','NGA',174500), +(2777,'Calabar','NGA',174400), +(2778,'Ondo','NGA',173600), +(2779,'Akure','NGA',162300), +(2780,'Gusau','NGA',158000), +(2781,'Ijebu-Ode','NGA',156400), +(2782,'Effon-Alaiye','NGA',153100), +(2783,'Kumo','NGA',148000), +(2784,'Shomolu','NGA',147700), +(2785,'Oka-Akoko','NGA',142900), +(2786,'Ikare','NGA',140800), +(2787,'Sapele','NGA',139200), +(2788,'Deba Habe','NGA',138600), +(2789,'Minna','NGA',136900), +(2790,'Warri','NGA',126100), +(2791,'Bida','NGA',125500), +(2792,'Ikire','NGA',123300), +(2793,'Makurdi','NGA',123100), +(2794,'Lafia','NGA',122500), +(2795,'Inisa','NGA',119800), +(2796,'Shagamu','NGA',117200), +(2797,'Awka','NGA',111200), +(2798,'Gombe','NGA',107800), +(2799,'Igboho','NGA',106800), +(2800,'Ejigbo','NGA',105900); +INSERT INTO City VALUES +(2801,'Agege','NGA',105000), +(2802,'Ise-Ekiti','NGA',103400), +(2803,'Ugep','NGA',102600), +(2804,'Epe','NGA',101000), +(2805,'Alofi','NIU',682), +(2806,'Kingston','NFK',800), +(2807,'Oslo','NOR',508726), +(2808,'Bergen','NOR',230948), +(2809,'Trondheim','NOR',150166), +(2810,'Stavanger','NOR',108848), +(2811,'Bærum','NOR',101340), +(2812,'Abidjan','CIV',2500000), +(2813,'Bouaké','CIV',329850), +(2814,'Yamoussoukro','CIV',130000), +(2815,'Daloa','CIV',121842), +(2816,'Korhogo','CIV',109445), +(2817,'al-Sib','OMN',155000), +(2818,'Salala','OMN',131813), +(2819,'Bawshar','OMN',107500), +(2820,'Suhar','OMN',90814), +(2821,'Masqat','OMN',51969), +(2822,'Karachi','PAK',9269265), +(2823,'Lahore','PAK',5063499), +(2824,'Faisalabad','PAK',1977246), +(2825,'Rawalpindi','PAK',1406214), +(2826,'Multan','PAK',1182441), +(2827,'Hyderabad','PAK',1151274), +(2828,'Gujranwala','PAK',1124749), +(2829,'Peshawar','PAK',988005), +(2830,'Quetta','PAK',560307), +(2831,'Islamabad','PAK',524500), +(2832,'Sargodha','PAK',455360), +(2833,'Sialkot','PAK',417597), +(2834,'Bahawalpur','PAK',403408), +(2835,'Sukkur','PAK',329176), +(2836,'Jhang','PAK',292214), +(2837,'Sheikhupura','PAK',271875), +(2838,'Larkana','PAK',270366), +(2839,'Gujrat','PAK',250121), +(2840,'Mardan','PAK',244511), +(2841,'Kasur','PAK',241649), +(2842,'Rahim Yar Khan','PAK',228479), +(2843,'Sahiwal','PAK',207388), +(2844,'Okara','PAK',200901), +(2845,'Wah','PAK',198400), +(2846,'Dera Ghazi Khan','PAK',188100), +(2847,'Mirpur Khas','PAK',184500), +(2848,'Nawabshah','PAK',183100), +(2849,'Mingora','PAK',174500), +(2850,'Chiniot','PAK',169300), +(2851,'Kamoke','PAK',151000), +(2852,'Mandi Burewala','PAK',149900), +(2853,'Jhelum','PAK',145800), +(2854,'Sadiqabad','PAK',141500), +(2855,'Jacobabad','PAK',137700), +(2856,'Shikarpur','PAK',133300), +(2857,'Khanewal','PAK',133000), +(2858,'Hafizabad','PAK',130200), +(2859,'Kohat','PAK',125300), +(2860,'Muzaffargarh','PAK',121600), +(2861,'Khanpur','PAK',117800), +(2862,'Gojra','PAK',115000), +(2863,'Bahawalnagar','PAK',109600), +(2864,'Muridke','PAK',108600), +(2865,'Pak Pattan','PAK',107800), +(2866,'Abottabad','PAK',106000), +(2867,'Tando Adam','PAK',103400), +(2868,'Jaranwala','PAK',103300), +(2869,'Khairpur','PAK',102200), +(2870,'Chishtian Mandi','PAK',101700), +(2871,'Daska','PAK',101500), +(2872,'Dadu','PAK',98600), +(2873,'Mandi Bahauddin','PAK',97300), +(2874,'Ahmadpur East','PAK',96000), +(2875,'Kamalia','PAK',95300), +(2876,'Khuzdar','PAK',93100), +(2877,'Vihari','PAK',92300), +(2878,'Dera Ismail Khan','PAK',90400), +(2879,'Wazirabad','PAK',89700), +(2880,'Nowshera','PAK',89400), +(2881,'Koror','PLW',12000), +(2882,'Ciudad de Panamá','PAN',471373), +(2883,'San Miguelito','PAN',315382), +(2884,'Port Moresby','PNG',247000), +(2885,'Asunción','PRY',557776), +(2886,'Ciudad del Este','PRY',133881), +(2887,'San Lorenzo','PRY',133395), +(2888,'Lambaré','PRY',99681), +(2889,'Fernando de la Mora','PRY',95287), +(2890,'Lima','PER',6464693), +(2891,'Arequipa','PER',762000), +(2892,'Trujillo','PER',652000), +(2893,'Chiclayo','PER',517000), +(2894,'Callao','PER',424294), +(2895,'Iquitos','PER',367000), +(2896,'Chimbote','PER',336000), +(2897,'Huancayo','PER',327000), +(2898,'Piura','PER',325000), +(2899,'Cusco','PER',291000), +(2900,'Pucallpa','PER',220866), +(2901,'Tacna','PER',215683), +(2902,'Ica','PER',194820), +(2903,'Sullana','PER',147361), +(2904,'Juliaca','PER',142576), +(2905,'Huánuco','PER',129688), +(2906,'Ayacucho','PER',118960), +(2907,'Chincha Alta','PER',110016), +(2908,'Cajamarca','PER',108009), +(2909,'Puno','PER',101578), +(2910,'Ventanilla','PER',101056), +(2911,'Castilla','PER',90642), +(2912,'Adamstown','PCN',42), +(2913,'Garapan','MNP',9200), +(2914,'Lisboa','PRT',563210), +(2915,'Porto','PRT',273060), +(2916,'Amadora','PRT',122106), +(2917,'Coímbra','PRT',96100), +(2918,'Braga','PRT',90535), +(2919,'San Juan','PRI',434374), +(2920,'Bayamón','PRI',224044), +(2921,'Ponce','PRI',186475), +(2922,'Carolina','PRI',186076), +(2923,'Caguas','PRI',140502), +(2924,'Arecibo','PRI',100131), +(2925,'Guaynabo','PRI',100053), +(2926,'Mayagüez','PRI',98434), +(2927,'Toa Baja','PRI',94085), +(2928,'Warszawa','POL',1615369), +(2929,'Lódz','POL',800110), +(2930,'Kraków','POL',738150), +(2931,'Wroclaw','POL',636765), +(2932,'Poznan','POL',576899), +(2933,'Gdansk','POL',458988), +(2934,'Szczecin','POL',416988), +(2935,'Bydgoszcz','POL',386855), +(2936,'Lublin','POL',356251), +(2937,'Katowice','POL',345934), +(2938,'Bialystok','POL',283937), +(2939,'Czestochowa','POL',257812), +(2940,'Gdynia','POL',253521), +(2941,'Sosnowiec','POL',244102), +(2942,'Radom','POL',232262), +(2943,'Kielce','POL',212383), +(2944,'Gliwice','POL',212164), +(2945,'Torun','POL',206158), +(2946,'Bytom','POL',205560), +(2947,'Zabrze','POL',200177), +(2948,'Bielsko-Biala','POL',180307), +(2949,'Olsztyn','POL',170904), +(2950,'Rzeszów','POL',162049), +(2951,'Ruda Slaska','POL',159665), +(2952,'Rybnik','POL',144582), +(2953,'Walbrzych','POL',136923), +(2954,'Tychy','POL',133178), +(2955,'Dabrowa Górnicza','POL',131037), +(2956,'Plock','POL',131011), +(2957,'Elblag','POL',129782), +(2958,'Opole','POL',129553), +(2959,'Gorzów Wielkopolski','POL',126019), +(2960,'Wloclawek','POL',123373), +(2961,'Chorzów','POL',121708), +(2962,'Tarnów','POL',121494), +(2963,'Zielona Góra','POL',118182), +(2964,'Koszalin','POL',112375), +(2965,'Legnica','POL',109335), +(2966,'Kalisz','POL',106641), +(2967,'Grudziadz','POL',102434), +(2968,'Slupsk','POL',102370), +(2969,'Jastrzebie-Zdrój','POL',102294), +(2970,'Jaworzno','POL',97929), +(2971,'Jelenia Góra','POL',93901), +(2972,'Malabo','GNQ',40000), +(2973,'Doha','QAT',355000), +(2974,'Paris','FRA',2125246), +(2975,'Marseille','FRA',798430), +(2976,'Lyon','FRA',445452), +(2977,'Toulouse','FRA',390350), +(2978,'Nice','FRA',342738), +(2979,'Nantes','FRA',270251), +(2980,'Strasbourg','FRA',264115), +(2981,'Montpellier','FRA',225392), +(2982,'Bordeaux','FRA',215363), +(2983,'Rennes','FRA',206229), +(2984,'Le Havre','FRA',190905), +(2985,'Reims','FRA',187206), +(2986,'Lille','FRA',184657), +(2987,'St-Étienne','FRA',180210), +(2988,'Toulon','FRA',160639), +(2989,'Grenoble','FRA',153317), +(2990,'Angers','FRA',151279), +(2991,'Dijon','FRA',149867), +(2992,'Brest','FRA',149634), +(2993,'Le Mans','FRA',146105), +(2994,'Clermont-Ferrand','FRA',137140), +(2995,'Amiens','FRA',135501), +(2996,'Aix-en-Provence','FRA',134222), +(2997,'Limoges','FRA',133968), +(2998,'Nîmes','FRA',133424), +(2999,'Tours','FRA',132820), +(3000,'Villeurbanne','FRA',124215); +INSERT INTO City VALUES +(3001,'Metz','FRA',123776), +(3002,'Besançon','FRA',117733), +(3003,'Caen','FRA',113987), +(3004,'Orléans','FRA',113126), +(3005,'Mulhouse','FRA',110359), +(3006,'Rouen','FRA',106592), +(3007,'Boulogne-Billancourt','FRA',106367), +(3008,'Perpignan','FRA',105115), +(3009,'Nancy','FRA',103605), +(3010,'Roubaix','FRA',96984), +(3011,'Argenteuil','FRA',93961), +(3012,'Tourcoing','FRA',93540), +(3013,'Montreuil','FRA',90674), +(3014,'Cayenne','GUF',50699), +(3015,'Faaa','PYF',25888), +(3016,'Papeete','PYF',25553), +(3017,'Saint-Denis','REU',131480), +(3018,'Bucuresti','ROM',2016131), +(3019,'Iasi','ROM',348070), +(3020,'Constanta','ROM',342264), +(3021,'Cluj-Napoca','ROM',332498), +(3022,'Galati','ROM',330276), +(3023,'Timisoara','ROM',324304), +(3024,'Brasov','ROM',314225), +(3025,'Craiova','ROM',313530), +(3026,'Ploiesti','ROM',251348), +(3027,'Braila','ROM',233756), +(3028,'Oradea','ROM',222239), +(3029,'Bacau','ROM',209235), +(3030,'Pitesti','ROM',187170), +(3031,'Arad','ROM',184408), +(3032,'Sibiu','ROM',169611), +(3033,'Târgu Mures','ROM',165153), +(3034,'Baia Mare','ROM',149665), +(3035,'Buzau','ROM',148372), +(3036,'Satu Mare','ROM',130059), +(3037,'Botosani','ROM',128730), +(3038,'Piatra Neamt','ROM',125070), +(3039,'Râmnicu Vâlcea','ROM',119741), +(3040,'Suceava','ROM',118549), +(3041,'Drobeta-Turnu Severin','ROM',117865), +(3042,'Târgoviste','ROM',98980), +(3043,'Focsani','ROM',98979), +(3044,'Târgu Jiu','ROM',98524), +(3045,'Tulcea','ROM',96278), +(3046,'Resita','ROM',93976), +(3047,'Kigali','RWA',286000), +(3048,'Stockholm','SWE',750348), +(3049,'Gothenburg [Göteborg]','SWE',466990), +(3050,'Malmö','SWE',259579), +(3051,'Uppsala','SWE',189569), +(3052,'Linköping','SWE',133168), +(3053,'Västerås','SWE',126328), +(3054,'Örebro','SWE',124207), +(3055,'Norrköping','SWE',122199), +(3056,'Helsingborg','SWE',117737), +(3057,'Jönköping','SWE',117095), +(3058,'Umeå','SWE',104512), +(3059,'Lund','SWE',98948), +(3060,'Borås','SWE',96883), +(3061,'Sundsvall','SWE',93126), +(3062,'Gävle','SWE',90742), +(3063,'Jamestown','SHN',1500), +(3064,'Basseterre','KNA',11600), +(3065,'Castries','LCA',2301), +(3066,'Kingstown','VCT',17100), +(3067,'Saint-Pierre','SPM',5808), +(3068,'Berlin','DEU',3386667), +(3069,'Hamburg','DEU',1704735), +(3070,'Munich [München]','DEU',1194560), +(3071,'Köln','DEU',962507), +(3072,'Frankfurt am Main','DEU',643821), +(3073,'Essen','DEU',599515), +(3074,'Dortmund','DEU',590213), +(3075,'Stuttgart','DEU',582443), +(3076,'Düsseldorf','DEU',568855), +(3077,'Bremen','DEU',540330), +(3078,'Duisburg','DEU',519793), +(3079,'Hannover','DEU',514718), +(3080,'Leipzig','DEU',489532), +(3081,'Nürnberg','DEU',486628), +(3082,'Dresden','DEU',476668), +(3083,'Bochum','DEU',392830), +(3084,'Wuppertal','DEU',368993), +(3085,'Bielefeld','DEU',321125), +(3086,'Mannheim','DEU',307730), +(3087,'Bonn','DEU',301048), +(3088,'Gelsenkirchen','DEU',281979), +(3089,'Karlsruhe','DEU',277204), +(3090,'Wiesbaden','DEU',268716), +(3091,'Münster','DEU',264670), +(3092,'Mönchengladbach','DEU',263697), +(3093,'Chemnitz','DEU',263222), +(3094,'Augsburg','DEU',254867), +(3095,'Halle/Saale','DEU',254360), +(3096,'Braunschweig','DEU',246322), +(3097,'Aachen','DEU',243825), +(3098,'Krefeld','DEU',241769), +(3099,'Magdeburg','DEU',235073), +(3100,'Kiel','DEU',233795), +(3101,'Oberhausen','DEU',222349), +(3102,'Lübeck','DEU',213326), +(3103,'Hagen','DEU',205201), +(3104,'Rostock','DEU',203279), +(3105,'Freiburg im Breisgau','DEU',202455), +(3106,'Erfurt','DEU',201267), +(3107,'Kassel','DEU',196211), +(3108,'Saarbrücken','DEU',183836), +(3109,'Mainz','DEU',183134), +(3110,'Hamm','DEU',181804), +(3111,'Herne','DEU',175661), +(3112,'Mülheim an der Ruhr','DEU',173895), +(3113,'Solingen','DEU',165583), +(3114,'Osnabrück','DEU',164539), +(3115,'Ludwigshafen am Rhein','DEU',163771), +(3116,'Leverkusen','DEU',160841), +(3117,'Oldenburg','DEU',154125), +(3118,'Neuss','DEU',149702), +(3119,'Heidelberg','DEU',139672), +(3120,'Darmstadt','DEU',137776), +(3121,'Paderborn','DEU',137647), +(3122,'Potsdam','DEU',128983), +(3123,'Würzburg','DEU',127350), +(3124,'Regensburg','DEU',125236), +(3125,'Recklinghausen','DEU',125022), +(3126,'Göttingen','DEU',124775), +(3127,'Bremerhaven','DEU',122735), +(3128,'Wolfsburg','DEU',121954), +(3129,'Bottrop','DEU',121097), +(3130,'Remscheid','DEU',120125), +(3131,'Heilbronn','DEU',119526), +(3132,'Pforzheim','DEU',117227), +(3133,'Offenbach am Main','DEU',116627), +(3134,'Ulm','DEU',116103), +(3135,'Ingolstadt','DEU',114826), +(3136,'Gera','DEU',114718), +(3137,'Salzgitter','DEU',112934), +(3138,'Cottbus','DEU',110894), +(3139,'Reutlingen','DEU',110343), +(3140,'Fürth','DEU',109771), +(3141,'Siegen','DEU',109225), +(3142,'Koblenz','DEU',108003), +(3143,'Moers','DEU',106837), +(3144,'Bergisch Gladbach','DEU',106150), +(3145,'Zwickau','DEU',104146), +(3146,'Hildesheim','DEU',104013), +(3147,'Witten','DEU',103384), +(3148,'Schwerin','DEU',102878), +(3149,'Erlangen','DEU',100750), +(3150,'Kaiserslautern','DEU',100025), +(3151,'Trier','DEU',99891), +(3152,'Jena','DEU',99779), +(3153,'Iserlohn','DEU',99474), +(3154,'Gütersloh','DEU',95028), +(3155,'Marl','DEU',93735), +(3156,'Lünen','DEU',92044), +(3157,'Düren','DEU',91092), +(3158,'Ratingen','DEU',90951), +(3159,'Velbert','DEU',89881), +(3160,'Esslingen am Neckar','DEU',89667), +(3161,'Honiara','SLB',50100), +(3162,'Lusaka','ZMB',1317000), +(3163,'Ndola','ZMB',329200), +(3164,'Kitwe','ZMB',288600), +(3165,'Kabwe','ZMB',154300), +(3166,'Chingola','ZMB',142400), +(3167,'Mufulira','ZMB',123900), +(3168,'Luanshya','ZMB',118100), +(3169,'Apia','WSM',35900), +(3170,'Serravalle','SMR',4802), +(3171,'San Marino','SMR',2294), +(3172,'São Tomé','STP',49541), +(3173,'Riyadh','SAU',3324000), +(3174,'Jedda','SAU',2046300), +(3175,'Mekka','SAU',965700), +(3176,'Medina','SAU',608300), +(3177,'al-Dammam','SAU',482300), +(3178,'al-Taif','SAU',416100), +(3179,'Tabuk','SAU',292600), +(3180,'Burayda','SAU',248600), +(3181,'al-Hufuf','SAU',225800), +(3182,'al-Mubarraz','SAU',219100), +(3183,'Khamis Mushayt','SAU',217900), +(3184,'Hail','SAU',176800), +(3185,'al-Kharj','SAU',152100), +(3186,'al-Khubar','SAU',141700), +(3187,'Jubayl','SAU',140800), +(3188,'Hafar al-Batin','SAU',137800), +(3189,'al-Tuqba','SAU',125700), +(3190,'Yanbu','SAU',119800), +(3191,'Abha','SAU',112300), +(3192,'Ara´ar','SAU',108100), +(3193,'al-Qatif','SAU',98900), +(3194,'al-Hawiya','SAU',93900), +(3195,'Unayza','SAU',91100), +(3196,'Najran','SAU',91000), +(3197,'Pikine','SEN',855287), +(3198,'Dakar','SEN',785071), +(3199,'Thiès','SEN',248000), +(3200,'Kaolack','SEN',199000); +INSERT IGNORE INTO City VALUES +(3201,'Ziguinchor','SEN',192000), +(3202,'Rufisque','SEN',150000), +(3203,'Saint-Louis','SEN',132400), +(3204,'Mbour','SEN',109300), +(3205,'Diourbel','SEN',99400), +(3206,'Victoria','SYC',41000), +(3207,'Freetown','SLE',850000), +(3208,'Singapore','SGP',4017733), +(3209,'Bratislava','SVK',448292), +(3210,'Koice','SVK',241874), +(3211,'Preov','SVK',93977), +(3212,'Ljubljana','SVN',270986), +(3213,'Maribor','SVN',115532), +(3214,'Mogadishu','SOM',997000), +(3215,'Hargeysa','SOM',90000), +(3216,'Kismaayo','SOM',90000), +(3217,'Colombo','LKA',645000), +(3218,'Dehiwala','LKA',203000), +(3219,'Moratuwa','LKA',190000), +(3220,'Jaffna','LKA',149000), +(3221,'Kandy','LKA',140000), +(3222,'Sri Jayawardenepura Kotte','LKA',118000), +(3223,'Negombo','LKA',100000), +(3224,'Omdurman','SDN',1271403), +(3225,'Khartum','SDN',947483), +(3226,'Sharq al-Nil','SDN',700887), +(3227,'Port Sudan','SDN',308195), +(3228,'Kassala','SDN',234622), +(3229,'Obeid','SDN',229425), +(3230,'Nyala','SDN',227183), +(3231,'Wad Madani','SDN',211362), +(3232,'al-Qadarif','SDN',191164), +(3233,'Kusti','SDN',173599), +(3234,'al-Fashir','SDN',141884), +(3235,'Juba','SDN',114980), +(3236,'Helsinki [Helsingfors]','FIN',555474), +(3237,'Espoo','FIN',213271), +(3238,'Tampere','FIN',195468), +(3239,'Vantaa','FIN',178471), +(3240,'Turku [Åbo]','FIN',172561), +(3241,'Oulu','FIN',120753), +(3242,'Lahti','FIN',96921), +(3243,'Paramaribo','SUR',112000), +(3244,'Mbabane','SWZ',61000), +(3245,'Zürich','CHE',336800), +(3246,'Geneve','CHE',173500), +(3247,'Basel','CHE',166700), +(3248,'Bern','CHE',122700), +(3249,'Lausanne','CHE',114500), +(3250,'Damascus','SYR',1347000), +(3251,'Aleppo','SYR',1261983), +(3252,'Hims','SYR',507404), +(3253,'Hama','SYR',343361), +(3254,'Latakia','SYR',264563), +(3255,'al-Qamishliya','SYR',144286), +(3256,'Dayr al-Zawr','SYR',140459), +(3257,'Jaramana','SYR',138469), +(3258,'Duma','SYR',131158), +(3259,'al-Raqqa','SYR',108020), +(3260,'Idlib','SYR',91081), +(3261,'Dushanbe','TJK',524000), +(3262,'Khujand','TJK',161500), +(3263,'Taipei','TWN',2641312), +(3264,'Kaohsiung','TWN',1475505), +(3265,'Taichung','TWN',940589), +(3266,'Tainan','TWN',728060), +(3267,'Panchiao','TWN',523850), +(3268,'Chungho','TWN',392176), +(3269,'Keelung (Chilung)','TWN',385201), +(3270,'Sanchung','TWN',380084), +(3271,'Hsinchuang','TWN',365048), +(3272,'Hsinchu','TWN',361958), +(3273,'Chungli','TWN',318649), +(3274,'Fengshan','TWN',318562), +(3275,'Taoyuan','TWN',316438), +(3276,'Chiayi','TWN',265109), +(3277,'Hsintien','TWN',263603), +(3278,'Changhwa','TWN',227715), +(3279,'Yungho','TWN',227700), +(3280,'Tucheng','TWN',224897), +(3281,'Pingtung','TWN',214727), +(3282,'Yungkang','TWN',193005), +(3283,'Pingchen','TWN',188344), +(3284,'Tali','TWN',171940), +(3285,'Taiping','TWN',165524), +(3286,'Pate','TWN',161700), +(3287,'Fengyuan','TWN',161032), +(3288,'Luchou','TWN',160516), +(3289,'Hsichuh','TWN',154976), +(3290,'Shulin','TWN',151260), +(3291,'Yuanlin','TWN',126402), +(3292,'Yangmei','TWN',126323), +(3293,'Taliao','TWN',115897), +(3294,'Kueishan','TWN',112195), +(3295,'Tanshui','TWN',111882), +(3296,'Taitung','TWN',111039), +(3297,'Hualien','TWN',108407), +(3298,'Nantou','TWN',104723), +(3299,'Lungtan','TWN',103088), +(3300,'Touliu','TWN',98900), +(3301,'Tsaotun','TWN',96800), +(3302,'Kangshan','TWN',92200), +(3303,'Ilan','TWN',92000), +(3304,'Miaoli','TWN',90000), +(3305,'Dar es Salaam','TZA',1747000), +(3306,'Dodoma','TZA',189000), +(3307,'Mwanza','TZA',172300), +(3308,'Zanzibar','TZA',157634), +(3309,'Tanga','TZA',137400), +(3310,'Mbeya','TZA',130800), +(3311,'Morogoro','TZA',117800), +(3312,'Arusha','TZA',102500), +(3313,'Moshi','TZA',96800), +(3314,'Tabora','TZA',92800), +(3315,'København','DNK',495699), +(3316,'Århus','DNK',284846), +(3317,'Odense','DNK',183912), +(3318,'Aalborg','DNK',161161), +(3319,'Frederiksberg','DNK',90327), +(3320,'Bangkok','THA',6320174), +(3321,'Nonthaburi','THA',292100), +(3322,'Nakhon Ratchasima','THA',181400), +(3323,'Chiang Mai','THA',171100), +(3324,'Udon Thani','THA',158100), +(3325,'Hat Yai','THA',148632), +(3326,'Khon Kaen','THA',126500), +(3327,'Pak Kret','THA',126055), +(3328,'Nakhon Sawan','THA',123800), +(3329,'Ubon Ratchathani','THA',116300), +(3330,'Songkhla','THA',94900), +(3331,'Nakhon Pathom','THA',94100), +(3332,'Lomé','TGO',375000), +(3333,'Fakaofo','TKL',300), +(3334,'Nuku´alofa','TON',22400), +(3335,'Chaguanas','TTO',56601), +(3336,'Port-of-Spain','TTO',43396), +(3337,'N´Djaména','TCD',530965), +(3338,'Moundou','TCD',99500), +(3339,'Praha','CZE',1181126), +(3340,'Brno','CZE',381862), +(3341,'Ostrava','CZE',320041), +(3342,'Plzen','CZE',166759), +(3343,'Olomouc','CZE',102702), +(3344,'Liberec','CZE',99155), +(3345,'Ceské Budejovice','CZE',98186), +(3346,'Hradec Králové','CZE',98080), +(3347,'Ústí nad Labem','CZE',95491), +(3348,'Pardubice','CZE',91309), +(3349,'Tunis','TUN',690600), +(3350,'Sfax','TUN',257800), +(3351,'Ariana','TUN',197000), +(3352,'Ettadhamen','TUN',178600), +(3353,'Sousse','TUN',145900), +(3354,'Kairouan','TUN',113100), +(3355,'Biserta','TUN',108900), +(3356,'Gabès','TUN',106600), +(3357,'Istanbul','TUR',8787958), +(3358,'Ankara','TUR',3038159), +(3359,'Izmir','TUR',2130359), +(3360,'Adana','TUR',1131198), +(3361,'Bursa','TUR',1095842), +(3362,'Gaziantep','TUR',789056), +(3363,'Konya','TUR',628364), +(3364,'Mersin (Içel)','TUR',587212), +(3365,'Antalya','TUR',564914), +(3366,'Diyarbakir','TUR',479884), +(3367,'Kayseri','TUR',475657), +(3368,'Eskisehir','TUR',470781), +(3369,'Sanliurfa','TUR',405905), +(3370,'Samsun','TUR',339871), +(3371,'Malatya','TUR',330312), +(3372,'Gebze','TUR',264170), +(3373,'Denizli','TUR',253848), +(3374,'Sivas','TUR',246642), +(3375,'Erzurum','TUR',246535), +(3376,'Tarsus','TUR',246206), +(3377,'Kahramanmaras','TUR',245772), +(3378,'Elâzig','TUR',228815), +(3379,'Van','TUR',219319), +(3380,'Sultanbeyli','TUR',211068), +(3381,'Izmit (Kocaeli)','TUR',210068), +(3382,'Manisa','TUR',207148), +(3383,'Batman','TUR',203793), +(3384,'Balikesir','TUR',196382), +(3385,'Sakarya (Adapazari)','TUR',190641), +(3386,'Iskenderun','TUR',153022), +(3387,'Osmaniye','TUR',146003), +(3388,'Çorum','TUR',145495), +(3389,'Kütahya','TUR',144761), +(3390,'Hatay (Antakya)','TUR',143982), +(3391,'Kirikkale','TUR',142044), +(3392,'Adiyaman','TUR',141529), +(3393,'Trabzon','TUR',138234), +(3394,'Ordu','TUR',133642), +(3395,'Aydin','TUR',128651), +(3396,'Usak','TUR',128162), +(3397,'Edirne','TUR',123383), +(3398,'Çorlu','TUR',123300), +(3399,'Isparta','TUR',121911), +(3400,'Karabük','TUR',118285); +INSERT IGNORE INTO City VALUES +(3401,'Kilis','TUR',118245), +(3402,'Alanya','TUR',117300), +(3403,'Kiziltepe','TUR',112000), +(3404,'Zonguldak','TUR',111542), +(3405,'Siirt','TUR',107100), +(3406,'Viransehir','TUR',106400), +(3407,'Tekirdag','TUR',106077), +(3408,'Karaman','TUR',104200), +(3409,'Afyon','TUR',103984), +(3410,'Aksaray','TUR',102681), +(3411,'Ceyhan','TUR',102412), +(3412,'Erzincan','TUR',102304), +(3413,'Bismil','TUR',101400), +(3414,'Nazilli','TUR',99900), +(3415,'Tokat','TUR',99500), +(3416,'Kars','TUR',93000), +(3417,'Inegöl','TUR',90500), +(3418,'Bandirma','TUR',90200), +(3419,'Ashgabat','TKM',540600), +(3420,'Chärjew','TKM',189200), +(3421,'Dashhowuz','TKM',141800), +(3422,'Mary','TKM',101000), +(3423,'Cockburn Town','TCA',4800), +(3424,'Funafuti','TUV',4600), +(3425,'Kampala','UGA',890800), +(3426,'Kyiv','UKR',2624000), +(3427,'Harkova [Harkiv]','UKR',1500000), +(3428,'Dnipropetrovsk','UKR',1103000), +(3429,'Donetsk','UKR',1050000), +(3430,'Odesa','UKR',1011000), +(3431,'Zaporizzja','UKR',848000), +(3432,'Lviv','UKR',788000), +(3433,'Kryvyi Rig','UKR',703000), +(3434,'Mykolajiv','UKR',508000), +(3435,'Mariupol','UKR',490000), +(3436,'Lugansk','UKR',469000), +(3437,'Vinnytsja','UKR',391000), +(3438,'Makijivka','UKR',384000), +(3439,'Herson','UKR',353000), +(3440,'Sevastopol','UKR',348000), +(3441,'Simferopol','UKR',339000), +(3442,'Pultava [Poltava]','UKR',313000), +(3443,'Ternigiv','UKR',313000), +(3444,'Terkasy','UKR',309000), +(3445,'Gorlivka','UKR',299000), +(3446,'Zytomyr','UKR',297000), +(3447,'Sumy','UKR',294000), +(3448,'Dniprodzerzynsk','UKR',270000), +(3449,'Kirovograd','UKR',265000), +(3450,'Hmelnytskyi','UKR',262000), +(3451,'Ternivtsi','UKR',259000), +(3452,'Rivne','UKR',245000), +(3453,'Krementuk','UKR',239000), +(3454,'Ivano-Frankivsk','UKR',237000), +(3455,'Ternopil','UKR',236000), +(3456,'Lutsk','UKR',217000), +(3457,'Bila Tserkva','UKR',215000), +(3458,'Kramatorsk','UKR',186000), +(3459,'Melitopol','UKR',169000), +(3460,'Kert','UKR',162000), +(3461,'Nikopol','UKR',149000), +(3462,'Berdjansk','UKR',130000), +(3463,'Pavlograd','UKR',127000), +(3464,'Sjeverodonetsk','UKR',127000), +(3465,'Slovjansk','UKR',127000), +(3466,'Uzgorod','UKR',127000), +(3467,'Altevsk','UKR',119000), +(3468,'Lysytansk','UKR',116000), +(3469,'Jevpatorija','UKR',112000), +(3470,'Kamjanets-Podilskyi','UKR',109000), +(3471,'Jenakijeve','UKR',105000), +(3472,'Krasnyi Lut','UKR',101000), +(3473,'Stahanov','UKR',101000), +(3474,'Oleksandrija','UKR',99000), +(3475,'Konotop','UKR',96000), +(3476,'Kostjantynivka','UKR',95000), +(3477,'Berdytiv','UKR',90000), +(3478,'Izmajil','UKR',90000), +(3479,'ostka','UKR',90000), +(3480,'Uman','UKR',90000), +(3481,'Brovary','UKR',89000), +(3482,'Mukateve','UKR',89000), +(3483,'Budapest','HUN',1811552), +(3484,'Debrecen','HUN',203648), +(3485,'Miskolc','HUN',172357), +(3486,'Szeged','HUN',158158), +(3487,'Pécs','HUN',157332), +(3488,'Györ','HUN',127119), +(3489,'Nyiregyháza','HUN',112419), +(3490,'Kecskemét','HUN',105606), +(3491,'Székesfehérvár','HUN',105119), +(3492,'Montevideo','URY',1236000), +(3493,'Nouméa','NCL',76293), +(3494,'Auckland','NZL',381800), +(3495,'Christchurch','NZL',324200), +(3496,'Manukau','NZL',281800), +(3497,'North Shore','NZL',187700), +(3498,'Waitakere','NZL',170600), +(3499,'Wellington','NZL',166700), +(3500,'Dunedin','NZL',119600), +(3501,'Hamilton','NZL',117100), +(3502,'Lower Hutt','NZL',98100), +(3503,'Toskent','UZB',2117500), +(3504,'Namangan','UZB',370500), +(3505,'Samarkand','UZB',361800), +(3506,'Andijon','UZB',318600), +(3507,'Buhoro','UZB',237100), +(3508,'Karsi','UZB',194100), +(3509,'Nukus','UZB',194100), +(3510,'Kükon','UZB',190100), +(3511,'Fargona','UZB',180500), +(3512,'Circik','UZB',146400), +(3513,'Margilon','UZB',140800), +(3514,'Ürgenc','UZB',138900), +(3515,'Angren','UZB',128000), +(3516,'Cizah','UZB',124800), +(3517,'Navoi','UZB',116300), +(3518,'Olmalik','UZB',114900), +(3519,'Termiz','UZB',109500), +(3520,'Minsk','BLR',1674000), +(3521,'Gomel','BLR',475000), +(3522,'Mogiljov','BLR',356000), +(3523,'Vitebsk','BLR',340000), +(3524,'Grodno','BLR',302000), +(3525,'Brest','BLR',286000), +(3526,'Bobruisk','BLR',221000), +(3527,'Baranoviti','BLR',167000), +(3528,'Borisov','BLR',151000), +(3529,'Pinsk','BLR',130000), +(3530,'Ora','BLR',124000), +(3531,'Mozyr','BLR',110000), +(3532,'Novopolotsk','BLR',106000), +(3533,'Lida','BLR',101000), +(3534,'Soligorsk','BLR',101000), +(3535,'Molodetno','BLR',97000), +(3536,'Mata-Utu','WLF',1137), +(3537,'Port-Vila','VUT',33700), +(3538,'Città del Vaticano','VAT',455), +(3539,'Caracas','VEN',1975294), +(3540,'Maracaíbo','VEN',1304776), +(3541,'Barquisimeto','VEN',877239), +(3542,'Valencia','VEN',794246), +(3543,'Ciudad Guayana','VEN',663713), +(3544,'Petare','VEN',488868), +(3545,'Maracay','VEN',444443), +(3546,'Barcelona','VEN',322267), +(3547,'Maturín','VEN',319726), +(3548,'San Cristóbal','VEN',319373), +(3549,'Ciudad Bolívar','VEN',301107), +(3550,'Cumaná','VEN',293105), +(3551,'Mérida','VEN',224887), +(3552,'Cabimas','VEN',221329), +(3553,'Barinas','VEN',217831), +(3554,'Turmero','VEN',217499), +(3555,'Baruta','VEN',207290), +(3556,'Puerto Cabello','VEN',187722), +(3557,'Santa Ana de Coro','VEN',185766), +(3558,'Los Teques','VEN',178784), +(3559,'Punto Fijo','VEN',167215), +(3560,'Guarenas','VEN',165889), +(3561,'Acarigua','VEN',158954), +(3562,'Puerto La Cruz','VEN',155700), +(3563,'Ciudad Losada','VEN',134501), +(3564,'Guacara','VEN',131334), +(3565,'Valera','VEN',130281), +(3566,'Guanare','VEN',125621), +(3567,'Carúpano','VEN',119639), +(3568,'Catia La Mar','VEN',117012), +(3569,'El Tigre','VEN',116256), +(3570,'Guatire','VEN',109121), +(3571,'Calabozo','VEN',107146), +(3572,'Pozuelos','VEN',105690), +(3573,'Ciudad Ojeda','VEN',99354), +(3574,'Ocumare del Tuy','VEN',97168), +(3575,'Valle de la Pascua','VEN',95927), +(3576,'Araure','VEN',94269), +(3577,'San Fernando de Apure','VEN',93809), +(3578,'San Felipe','VEN',90940), +(3579,'El Limón','VEN',90000), +(3580,'Moscow','RUS',8389200), +(3581,'St Petersburg','RUS',4694000), +(3582,'Novosibirsk','RUS',1398800), +(3583,'Nizni Novgorod','RUS',1357000), +(3584,'Jekaterinburg','RUS',1266300), +(3585,'Samara','RUS',1156100), +(3586,'Omsk','RUS',1148900), +(3587,'Kazan','RUS',1101000), +(3588,'Ufa','RUS',1091200), +(3589,'Teljabinsk','RUS',1083200), +(3590,'Rostov-na-Donu','RUS',1012700), +(3591,'Perm','RUS',1009700), +(3592,'Volgograd','RUS',993400), +(3593,'Voronez','RUS',907700), +(3594,'Krasnojarsk','RUS',875500), +(3595,'Saratov','RUS',874000), +(3596,'Toljatti','RUS',722900), +(3597,'Uljanovsk','RUS',667400), +(3598,'Izevsk','RUS',652800), +(3599,'Krasnodar','RUS',639000), +(3600,'Jaroslavl','RUS',616700); +INSERT IGNORE INTO City VALUES +(3601,'Habarovsk','RUS',609400), +(3602,'Vladivostok','RUS',606200), +(3603,'Irkutsk','RUS',593700), +(3604,'Barnaul','RUS',580100), +(3605,'Novokuznetsk','RUS',561600), +(3606,'Penza','RUS',532200), +(3607,'Rjazan','RUS',529900), +(3608,'Orenburg','RUS',523600), +(3609,'Lipetsk','RUS',521000), +(3610,'Nabereznyje Telny','RUS',514700), +(3611,'Tula','RUS',506100), +(3612,'Tjumen','RUS',503400), +(3613,'Kemerovo','RUS',492700), +(3614,'Astrahan','RUS',486100), +(3615,'Tomsk','RUS',482100), +(3616,'Kirov','RUS',466200), +(3617,'Ivanovo','RUS',459200), +(3618,'Teboksary','RUS',459200), +(3619,'Brjansk','RUS',457400), +(3620,'Tver','RUS',454900), +(3621,'Kursk','RUS',443500), +(3622,'Magnitogorsk','RUS',427900), +(3623,'Kaliningrad','RUS',424400), +(3624,'Nizni Tagil','RUS',390900), +(3625,'Murmansk','RUS',376300), +(3626,'Ulan-Ude','RUS',370400), +(3627,'Kurgan','RUS',364700), +(3628,'Arkangeli','RUS',361800), +(3629,'Soti','RUS',358600), +(3630,'Smolensk','RUS',353400), +(3631,'Orjol','RUS',344500), +(3632,'Stavropol','RUS',343300), +(3633,'Belgorod','RUS',342000), +(3634,'Kaluga','RUS',339300), +(3635,'Vladimir','RUS',337100), +(3636,'Mahatkala','RUS',332800), +(3637,'Terepovets','RUS',324400), +(3638,'Saransk','RUS',314800), +(3639,'Tambov','RUS',312000), +(3640,'Vladikavkaz','RUS',310100), +(3641,'Tita','RUS',309900), +(3642,'Vologda','RUS',302500), +(3643,'Veliki Novgorod','RUS',299500), +(3644,'Komsomolsk-na-Amure','RUS',291600), +(3645,'Kostroma','RUS',288100), +(3646,'Volzski','RUS',286900), +(3647,'Taganrog','RUS',284400), +(3648,'Petroskoi','RUS',282100), +(3649,'Bratsk','RUS',277600), +(3650,'Dzerzinsk','RUS',277100), +(3651,'Surgut','RUS',274900), +(3652,'Orsk','RUS',273900), +(3653,'Sterlitamak','RUS',265200), +(3654,'Angarsk','RUS',264700), +(3655,'Jokar-Ola','RUS',249200), +(3656,'Rybinsk','RUS',239600), +(3657,'Prokopjevsk','RUS',237300), +(3658,'Niznevartovsk','RUS',233900), +(3659,'Naltik','RUS',233400), +(3660,'Syktyvkar','RUS',229700), +(3661,'Severodvinsk','RUS',229300), +(3662,'Bijsk','RUS',225000), +(3663,'Niznekamsk','RUS',223400), +(3664,'Blagovetensk','RUS',222000), +(3665,'ahty','RUS',221800), +(3666,'Staryi Oskol','RUS',213800), +(3667,'Zelenograd','RUS',207100), +(3668,'Balakovo','RUS',206000), +(3669,'Novorossijsk','RUS',203300), +(3670,'Pihkova','RUS',201500), +(3671,'Zlatoust','RUS',196900), +(3672,'Jakutsk','RUS',195400), +(3673,'Podolsk','RUS',194300), +(3674,'Petropavlovsk-Kamtatski','RUS',194100), +(3675,'Kamensk-Uralski','RUS',190600), +(3676,'Engels','RUS',189000), +(3677,'Syzran','RUS',186900), +(3678,'Grozny','RUS',186000), +(3679,'Novoterkassk','RUS',184400), +(3680,'Berezniki','RUS',181900), +(3681,'Juzno-Sahalinsk','RUS',179200), +(3682,'Volgodonsk','RUS',178200), +(3683,'Abakan','RUS',169200), +(3684,'Maikop','RUS',167300), +(3685,'Miass','RUS',166200), +(3686,'Armavir','RUS',164900), +(3687,'Ljubertsy','RUS',163900), +(3688,'Rubtsovsk','RUS',162600), +(3689,'Kovrov','RUS',159900), +(3690,'Nahodka','RUS',157700), +(3691,'Ussurijsk','RUS',157300), +(3692,'Salavat','RUS',156800), +(3693,'Mytiti','RUS',155700), +(3694,'Kolomna','RUS',150700), +(3695,'Elektrostal','RUS',147000), +(3696,'Murom','RUS',142400), +(3697,'Kolpino','RUS',141200), +(3698,'Norilsk','RUS',140800), +(3699,'Almetjevsk','RUS',140700), +(3700,'Novomoskovsk','RUS',138100), +(3701,'Dimitrovgrad','RUS',137000), +(3702,'Pervouralsk','RUS',136100), +(3703,'Himki','RUS',133700), +(3704,'Balaiha','RUS',132900), +(3705,'Nevinnomyssk','RUS',132600), +(3706,'Pjatigorsk','RUS',132500), +(3707,'Korolev','RUS',132400), +(3708,'Serpuhov','RUS',132000), +(3709,'Odintsovo','RUS',127400), +(3710,'Orehovo-Zujevo','RUS',124900), +(3711,'Kamyin','RUS',124600), +(3712,'Novoteboksarsk','RUS',123400), +(3713,'Terkessk','RUS',121700), +(3714,'Atinsk','RUS',121600), +(3715,'Magadan','RUS',121000), +(3716,'Miturinsk','RUS',120700), +(3717,'Kislovodsk','RUS',120400), +(3718,'Jelets','RUS',119400), +(3719,'Seversk','RUS',118600), +(3720,'Noginsk','RUS',117200), +(3721,'Velikije Luki','RUS',116300), +(3722,'Novokuibyevsk','RUS',116200), +(3723,'Neftekamsk','RUS',115700), +(3724,'Leninsk-Kuznetski','RUS',113800), +(3725,'Oktjabrski','RUS',111500), +(3726,'Sergijev Posad','RUS',111100), +(3727,'Arzamas','RUS',110700), +(3728,'Kiseljovsk','RUS',110000), +(3729,'Novotroitsk','RUS',109600), +(3730,'Obninsk','RUS',108300), +(3731,'Kansk','RUS',107400), +(3732,'Glazov','RUS',106300), +(3733,'Solikamsk','RUS',106000), +(3734,'Sarapul','RUS',105700), +(3735,'Ust-Ilimsk','RUS',105200), +(3736,'tolkovo','RUS',104900), +(3737,'Mezduretensk','RUS',104400), +(3738,'Usolje-Sibirskoje','RUS',103500), +(3739,'Elista','RUS',103300), +(3740,'Novoahtinsk','RUS',101900), +(3741,'Votkinsk','RUS',101700), +(3742,'Kyzyl','RUS',101100), +(3743,'Serov','RUS',100400), +(3744,'Zelenodolsk','RUS',100200), +(3745,'Zeleznodoroznyi','RUS',100100), +(3746,'Kinema','RUS',100000), +(3747,'Kuznetsk','RUS',98200), +(3748,'Uhta','RUS',98000), +(3749,'Jessentuki','RUS',97900), +(3750,'Tobolsk','RUS',97600), +(3751,'Neftejugansk','RUS',97400), +(3752,'Bataisk','RUS',97300), +(3753,'Nojabrsk','RUS',97300), +(3754,'Balaov','RUS',97100), +(3755,'Zeleznogorsk','RUS',96900), +(3756,'Zukovski','RUS',96500), +(3757,'Anzero-Sudzensk','RUS',96100), +(3758,'Bugulma','RUS',94100), +(3759,'Zeleznogorsk','RUS',94000), +(3760,'Novouralsk','RUS',93300), +(3761,'Pukin','RUS',92900), +(3762,'Vorkuta','RUS',92600), +(3763,'Derbent','RUS',92300), +(3764,'Kirovo-Tepetsk','RUS',91600), +(3765,'Krasnogorsk','RUS',91000), +(3766,'Klin','RUS',90000), +(3767,'Taikovski','RUS',90000), +(3768,'Novyi Urengoi','RUS',89800), +(3769,'Ho Chi Minh City','VNM',3980000), +(3770,'Hanoi','VNM',1410000), +(3771,'Haiphong','VNM',783133), +(3772,'Da Nang','VNM',382674), +(3773,'Biên Hoa','VNM',282095), +(3774,'Nha Trang','VNM',221331), +(3775,'Hue','VNM',219149), +(3776,'Can Tho','VNM',215587), +(3777,'Cam Pha','VNM',209086), +(3778,'Nam Dinh','VNM',171699), +(3779,'Quy Nhon','VNM',163385), +(3780,'Vung Tau','VNM',145145), +(3781,'Rach Gia','VNM',141132), +(3782,'Long Xuyen','VNM',132681), +(3783,'Thai Nguyen','VNM',127643), +(3784,'Hong Gai','VNM',127484), +(3785,'Phan Thiêt','VNM',114236), +(3786,'Cam Ranh','VNM',114041), +(3787,'Vinh','VNM',112455), +(3788,'My Tho','VNM',108404), +(3789,'Da Lat','VNM',106409), +(3790,'Buon Ma Thuot','VNM',97044), +(3791,'Tallinn','EST',403981), +(3792,'Tartu','EST',101246), +(3793,'New York','USA',8008278), +(3794,'Los Angeles','USA',3694820), +(3795,'Chicago','USA',2896016), +(3796,'Houston','USA',1953631), +(3797,'Philadelphia','USA',1517550), +(3798,'Phoenix','USA',1321045), +(3799,'San Diego','USA',1223400), +(3800,'Dallas','USA',1188580); +INSERT INTO City VALUES +(3801,'San Antonio','USA',1144646), +(3802,'Detroit','USA',951270), +(3803,'San Jose','USA',894943), +(3804,'Indianapolis','USA',791926), +(3805,'San Francisco','USA',776733), +(3806,'Jacksonville','USA',735167), +(3807,'Columbus','USA',711470), +(3808,'Austin','USA',656562), +(3809,'Baltimore','USA',651154), +(3810,'Memphis','USA',650100), +(3811,'Milwaukee','USA',596974), +(3812,'Boston','USA',589141), +(3813,'Washington','USA',572059), +(3814,'Nashville-Davidson','USA',569891), +(3815,'El Paso','USA',563662), +(3816,'Seattle','USA',563374), +(3817,'Denver','USA',554636), +(3818,'Charlotte','USA',540828), +(3819,'Fort Worth','USA',534694), +(3820,'Portland','USA',529121), +(3821,'Oklahoma City','USA',506132), +(3822,'Tucson','USA',486699), +(3823,'New Orleans','USA',484674), +(3824,'Las Vegas','USA',478434), +(3825,'Cleveland','USA',478403), +(3826,'Long Beach','USA',461522), +(3827,'Albuquerque','USA',448607), +(3828,'Kansas City','USA',441545), +(3829,'Fresno','USA',427652), +(3830,'Virginia Beach','USA',425257), +(3831,'Atlanta','USA',416474), +(3832,'Sacramento','USA',407018), +(3833,'Oakland','USA',399484), +(3834,'Mesa','USA',396375), +(3835,'Tulsa','USA',393049), +(3836,'Omaha','USA',390007), +(3837,'Minneapolis','USA',382618), +(3838,'Honolulu','USA',371657), +(3839,'Miami','USA',362470), +(3840,'Colorado Springs','USA',360890), +(3841,'Saint Louis','USA',348189), +(3842,'Wichita','USA',344284), +(3843,'Santa Ana','USA',337977), +(3844,'Pittsburgh','USA',334563), +(3845,'Arlington','USA',332969), +(3846,'Cincinnati','USA',331285), +(3847,'Anaheim','USA',328014), +(3848,'Toledo','USA',313619), +(3849,'Tampa','USA',303447), +(3850,'Buffalo','USA',292648), +(3851,'Saint Paul','USA',287151), +(3852,'Corpus Christi','USA',277454), +(3853,'Aurora','USA',276393), +(3854,'Raleigh','USA',276093), +(3855,'Newark','USA',273546), +(3856,'Lexington-Fayette','USA',260512), +(3857,'Anchorage','USA',260283), +(3858,'Louisville','USA',256231), +(3859,'Riverside','USA',255166), +(3860,'Saint Petersburg','USA',248232), +(3861,'Bakersfield','USA',247057), +(3862,'Stockton','USA',243771), +(3863,'Birmingham','USA',242820), +(3864,'Jersey City','USA',240055), +(3865,'Norfolk','USA',234403), +(3866,'Baton Rouge','USA',227818), +(3867,'Hialeah','USA',226419), +(3868,'Lincoln','USA',225581), +(3869,'Greensboro','USA',223891), +(3870,'Plano','USA',222030), +(3871,'Rochester','USA',219773), +(3872,'Glendale','USA',218812), +(3873,'Akron','USA',217074), +(3874,'Garland','USA',215768), +(3875,'Madison','USA',208054), +(3876,'Fort Wayne','USA',205727), +(3877,'Fremont','USA',203413), +(3878,'Scottsdale','USA',202705), +(3879,'Montgomery','USA',201568), +(3880,'Shreveport','USA',200145), +(3881,'Augusta-Richmond County','USA',199775), +(3882,'Lubbock','USA',199564), +(3883,'Chesapeake','USA',199184), +(3884,'Mobile','USA',198915), +(3885,'Des Moines','USA',198682), +(3886,'Grand Rapids','USA',197800), +(3887,'Richmond','USA',197790), +(3888,'Yonkers','USA',196086), +(3889,'Spokane','USA',195629), +(3890,'Glendale','USA',194973), +(3891,'Tacoma','USA',193556), +(3892,'Irving','USA',191615), +(3893,'Huntington Beach','USA',189594), +(3894,'Modesto','USA',188856), +(3895,'Durham','USA',187035), +(3896,'Columbus','USA',186291), +(3897,'Orlando','USA',185951), +(3898,'Boise City','USA',185787), +(3899,'Winston-Salem','USA',185776), +(3900,'San Bernardino','USA',185401), +(3901,'Jackson','USA',184256), +(3902,'Little Rock','USA',183133), +(3903,'Salt Lake City','USA',181743), +(3904,'Reno','USA',180480), +(3905,'Newport News','USA',180150), +(3906,'Chandler','USA',176581), +(3907,'Laredo','USA',176576), +(3908,'Henderson','USA',175381), +(3909,'Arlington','USA',174838), +(3910,'Knoxville','USA',173890), +(3911,'Amarillo','USA',173627), +(3912,'Providence','USA',173618), +(3913,'Chula Vista','USA',173556), +(3914,'Worcester','USA',172648), +(3915,'Oxnard','USA',170358), +(3916,'Dayton','USA',166179), +(3917,'Garden Grove','USA',165196), +(3918,'Oceanside','USA',161029), +(3919,'Tempe','USA',158625), +(3920,'Huntsville','USA',158216), +(3921,'Ontario','USA',158007), +(3922,'Chattanooga','USA',155554), +(3923,'Fort Lauderdale','USA',152397), +(3924,'Springfield','USA',152082), +(3925,'Springfield','USA',151580), +(3926,'Santa Clarita','USA',151088), +(3927,'Salinas','USA',151060), +(3928,'Tallahassee','USA',150624), +(3929,'Rockford','USA',150115), +(3930,'Pomona','USA',149473), +(3931,'Metairie','USA',149428), +(3932,'Paterson','USA',149222), +(3933,'Overland Park','USA',149080), +(3934,'Santa Rosa','USA',147595), +(3935,'Syracuse','USA',147306), +(3936,'Kansas City','USA',146866), +(3937,'Hampton','USA',146437), +(3938,'Lakewood','USA',144126), +(3939,'Vancouver','USA',143560), +(3940,'Irvine','USA',143072), +(3941,'Aurora','USA',142990), +(3942,'Moreno Valley','USA',142381), +(3943,'Pasadena','USA',141674), +(3944,'Hayward','USA',140030), +(3945,'Brownsville','USA',139722), +(3946,'Bridgeport','USA',139529), +(3947,'Hollywood','USA',139357), +(3948,'Warren','USA',138247), +(3949,'Torrance','USA',137946), +(3950,'Eugene','USA',137893), +(3951,'Pembroke Pines','USA',137427), +(3952,'Salem','USA',136924), +(3953,'Pasadena','USA',133936), +(3954,'Escondido','USA',133559), +(3955,'Sunnyvale','USA',131760), +(3956,'Savannah','USA',131510), +(3957,'Fontana','USA',128929), +(3958,'Orange','USA',128821), +(3959,'Naperville','USA',128358), +(3960,'Alexandria','USA',128283), +(3961,'Rancho Cucamonga','USA',127743), +(3962,'Grand Prairie','USA',127427), +(3963,'East Los Angeles','USA',126379), +(3964,'Fullerton','USA',126003), +(3965,'Corona','USA',124966), +(3966,'Flint','USA',124943), +(3967,'Paradise','USA',124682), +(3968,'Mesquite','USA',124523), +(3969,'Sterling Heights','USA',124471), +(3970,'Sioux Falls','USA',123975), +(3971,'New Haven','USA',123626), +(3972,'Topeka','USA',122377), +(3973,'Concord','USA',121780), +(3974,'Evansville','USA',121582), +(3975,'Hartford','USA',121578), +(3976,'Fayetteville','USA',121015), +(3977,'Cedar Rapids','USA',120758), +(3978,'Elizabeth','USA',120568), +(3979,'Lansing','USA',119128), +(3980,'Lancaster','USA',118718), +(3981,'Fort Collins','USA',118652), +(3982,'Coral Springs','USA',117549), +(3983,'Stamford','USA',117083), +(3984,'Thousand Oaks','USA',117005), +(3985,'Vallejo','USA',116760), +(3986,'Palmdale','USA',116670), +(3987,'Columbia','USA',116278), +(3988,'El Monte','USA',115965), +(3989,'Abilene','USA',115930), +(3990,'North Las Vegas','USA',115488), +(3991,'Ann Arbor','USA',114024), +(3992,'Beaumont','USA',113866), +(3993,'Waco','USA',113726), +(3994,'Macon','USA',113336), +(3995,'Independence','USA',113288), +(3996,'Peoria','USA',112936), +(3997,'Inglewood','USA',112580), +(3998,'Springfield','USA',111454), +(3999,'Simi Valley','USA',111351), +(4000,'Lafayette','USA',110257); +INSERT INTO City VALUES +(4001,'Gilbert','USA',109697), +(4002,'Carrollton','USA',109576), +(4003,'Bellevue','USA',109569), +(4004,'West Valley City','USA',108896), +(4005,'Clarksville','USA',108787), +(4006,'Costa Mesa','USA',108724), +(4007,'Peoria','USA',108364), +(4008,'South Bend','USA',107789), +(4009,'Downey','USA',107323), +(4010,'Waterbury','USA',107271), +(4011,'Manchester','USA',107006), +(4012,'Allentown','USA',106632), +(4013,'McAllen','USA',106414), +(4014,'Joliet','USA',106221), +(4015,'Lowell','USA',105167), +(4016,'Provo','USA',105166), +(4017,'West Covina','USA',105080), +(4018,'Wichita Falls','USA',104197), +(4019,'Erie','USA',103717), +(4020,'Daly City','USA',103621), +(4021,'Citrus Heights','USA',103455), +(4022,'Norwalk','USA',103298), +(4023,'Gary','USA',102746), +(4024,'Berkeley','USA',102743), +(4025,'Santa Clara','USA',102361), +(4026,'Green Bay','USA',102313), +(4027,'Cape Coral','USA',102286), +(4028,'Arvada','USA',102153), +(4029,'Pueblo','USA',102121), +(4030,'Sandy','USA',101853), +(4031,'Athens-Clarke County','USA',101489), +(4032,'Cambridge','USA',101355), +(4033,'Westminster','USA',100940), +(4034,'San Buenaventura','USA',100916), +(4035,'Portsmouth','USA',100565), +(4036,'Livonia','USA',100545), +(4037,'Burbank','USA',100316), +(4038,'Clearwater','USA',99936), +(4039,'Midland','USA',98293), +(4040,'Davenport','USA',98256), +(4041,'Mission Viejo','USA',98049), +(4042,'Miami Beach','USA',97855), +(4043,'Sunrise Manor','USA',95362), +(4044,'New Bedford','USA',94780), +(4045,'El Cajon','USA',94578), +(4046,'Norman','USA',94193), +(4047,'Richmond','USA',94100), +(4048,'Albany','USA',93994), +(4049,'Brockton','USA',93653), +(4050,'Roanoke','USA',93357), +(4051,'Billings','USA',92988), +(4052,'Compton','USA',92864), +(4053,'Gainesville','USA',92291), +(4054,'Fairfield','USA',92256), +(4055,'Arden-Arcade','USA',92040), +(4056,'San Mateo','USA',91799), +(4057,'Visalia','USA',91762), +(4058,'Boulder','USA',91238), +(4059,'Cary','USA',91213), +(4060,'Santa Monica','USA',91084), +(4061,'Fall River','USA',90555), +(4062,'Kenosha','USA',89447), +(4063,'Elgin','USA',89408), +(4064,'Odessa','USA',89293), +(4065,'Carson','USA',89089), +(4066,'Charleston','USA',89063), +(4067,'Charlotte Amalie','VIR',13000), +(4068,'Harare','ZWE',1410000), +(4069,'Bulawayo','ZWE',621742), +(4070,'Chitungwiza','ZWE',274912), +(4071,'Mount Darwin','ZWE',164362), +(4072,'Mutare','ZWE',131367), +(4073,'Gweru','ZWE',128037), +(4074,'Gaza','PSE',353632), +(4075,'Khan Yunis','PSE',123175), +(4076,'Hebron','PSE',119401), +(4077,'Jabaliya','PSE',113901), +(4078,'Nablus','PSE',100231), +(4079,'Rafah','PSE',92020); + +# Table CountryLanguage + +INSERT IGNORE INTO CountryLanguage VALUES +('AFG','Pashto',52.4), +('NLD','Dutch',95.6), +('ANT','Papiamento',86.2), +('ALB','Albaniana',97.9), +('DZA','Arabic',86.0), +('ASM','Samoan',90.6), +('AND','Spanish',44.6), +('AGO','Ovimbundu',37.2), +('AIA','English',0.0), +('ATG','Creole English',95.7), +('ARE','Arabic',42.0), +('ARG','Spanish',96.8), +('ARM','Armenian',93.4), +('ABW','Papiamento',76.7), +('AUS','English',81.2), +('AZE','Azerbaijani',89.0), +('BHS','Creole English',89.7), +('BHR','Arabic',67.7), +('BGD','Bengali',97.7), +('BRB','Bajan',95.1), +('BEL','Dutch',59.2), +('BLZ','English',50.8), +('BEN','Fon',39.8), +('BMU','English',100.0), +('BTN','Dzongkha',50.0), +('BOL','Spanish',87.7), +('BIH','Serbo-Croatian',99.2), +('BWA','Tswana',75.5), +('BRA','Portuguese',97.5), +('GBR','English',97.3), +('VGB','English',0.0), +('BRN','Malay',45.5), +('BGR','Bulgariana',83.2), +('BFA','Mossi',50.2), +('BDI','Kirundi',98.1), +('CYM','English',0.0), +('CHL','Spanish',89.7), +('COK','Maori',0.0), +('CRI','Spanish',97.5), +('DJI','Somali',43.9), +('DMA','Creole English',100.0), +('DOM','Spanish',98.0), +('ECU','Spanish',93.0), +('EGY','Arabic',98.8), +('SLV','Spanish',100.0), +('ERI','Tigrinja',49.1), +('ESP','Spanish',74.4), +('ZAF','Zulu',22.7), +('ETH','Oromo',31.0), +('FLK','English',0.0), +('FJI','Fijian',50.8), +('PHL','Pilipino',29.3), +('FRO','Faroese',100.0), +('GAB','Fang',35.8), +('GMB','Malinke',34.1), +('GEO','Georgiana',71.7), +('GHA','Akan',52.4), +('GIB','English',88.9), +('GRD','Creole English',100.0), +('GRL','Greenlandic',87.5), +('GLP','Creole French',95.0), +('GUM','English',37.5), +('GTM','Spanish',64.7), +('GIN','Ful',38.6), +('GNB','Crioulo',36.4), +('GUY','Creole English',96.4), +('HTI','Haiti Creole',100.0), +('HND','Spanish',97.2), +('HKG','Canton Chinese',88.7), +('SJM','Norwegian',0.0), +('IDN','Javanese',39.4), +('IND','Hindi',39.9), +('IRQ','Arabic',77.2), +('IRN','Persian',45.7), +('IRL','English',98.4), +('ISL','Icelandic',95.7), +('ISR','Hebrew',63.1), +('ITA','Italian',94.1), +('TMP','Sunda',0.0), +('AUT','German',92.0), +('JAM','Creole English',94.2), +('JPN','Japanese',99.1), +('YEM','Arabic',99.6), +('JOR','Arabic',97.9), +('CXR','Chinese',0.0), +('YUG','Serbo-Croatian',75.2), +('KHM','Khmer',88.6), +('CMR','Fang',19.7), +('CAN','English',60.4), +('CPV','Crioulo',100.0), +('KAZ','Kazakh',46.0), +('KEN','Kikuyu',20.9), +('CAF','Gbaya',23.8), +('CHN','Chinese',92.0), +('KGZ','Kirgiz',59.7), +('KIR','Kiribati',98.9), +('COL','Spanish',99.0), +('COM','Comorian',75.0), +('COG','Kongo',51.5), +('COD','Luba',18.0), +('CCK','Malay',0.0), +('PRK','Korean',99.9), +('KOR','Korean',99.9), +('GRC','Greek',98.5), +('HRV','Serbo-Croatian',95.9), +('CUB','Spanish',100.0), +('KWT','Arabic',78.1), +('CYP','Greek',74.1), +('LAO','Lao',67.2), +('LVA','Latvian',55.1), +('LSO','Sotho',85.0), +('LBN','Arabic',93.0), +('LBR','Kpelle',19.5), +('LBY','Arabic',96.0), +('LIE','German',89.0), +('LTU','Lithuanian',81.6), +('LUX','Luxembourgish',64.4), +('ESH','Arabic',100.0), +('MAC','Canton Chinese',85.6), +('MDG','Malagasy',98.9), +('MKD','Macedonian',66.5), +('MWI','Chichewa',58.3), +('MDV','Dhivehi',100.0), +('MYS','Malay',58.4), +('MLI','Bambara',31.8), +('MLT','Maltese',95.8), +('MAR','Arabic',65.0), +('MHL','Marshallese',96.8), +('MTQ','Creole French',96.6), +('MRT','Hassaniya',81.7), +('MUS','Creole French',70.6), +('MYT','Mahoré',41.9), +('MEX','Spanish',92.1), +('FSM','Trukese',41.6), +('MDA','Romanian',61.9), +('MCO','French',41.9), +('MNG','Mongolian',78.8), +('MSR','English',0.0), +('MOZ','Makua',27.8), +('MMR','Burmese',69.0), +('NAM','Ovambo',50.7), +('NRU','Nauru',57.5), +('NPL','Nepali',50.4), +('NIC','Spanish',97.6), +('NER','Hausa',53.1), +('NGA','Joruba',21.4), +('NIU','Niue',0.0), +('NFK','English',0.0), +('NOR','Norwegian',96.6), +('CIV','Akan',30.0), +('OMN','Arabic',76.7), +('PAK','Punjabi',48.2), +('PLW','Palau',82.2), +('PAN','Spanish',76.8), +('PNG','Papuan Languages',78.1), +('PRY','Spanish',55.1), +('PER','Spanish',79.8), +('PCN','Pitcairnese',0.0), +('MNP','Philippene Languages',34.1), +('PRT','Portuguese',99.0), +('PRI','Spanish',51.3), +('POL','Polish',97.6), +('GNQ','Fang',84.8), +('QAT','Arabic',40.7), +('FRA','French',93.6), +('GUF','Creole French',94.3), +('PYF','Tahitian',46.4), +('REU','Creole French',91.5), +('ROM','Romanian',90.7), +('RWA','Rwanda',100.0), +('SWE','Swedish',89.5), +('SHN','English',0.0), +('KNA','Creole English',100.0), +('LCA','Creole French',80.0), +('VCT','Creole English',99.1), +('SPM','French',0.0), +('DEU','German',91.3), +('SLB','Malenasian Languages',85.6), +('ZMB','Bemba',29.7), +('WSM','Samoan-English',52.0), +('SMR','Italian',100.0), +('STP','Crioulo',86.3), +('SAU','Arabic',95.0), +('SEN','Wolof',48.1), +('SYC','Seselwa',91.3), +('SLE','Mende',34.8), +('SGP','Chinese',77.1), +('SVK','Slovak',85.6), +('SVN','Slovene',87.9), +('SOM','Somali',98.3), +('LKA','Singali',60.3), +('SDN','Arabic',49.4), +('FIN','Finnish',92.7), +('SUR','Sranantonga',81.0), +('SWZ','Swazi',89.9), +('CHE','German',63.6), +('SYR','Arabic',90.0), +('TJK','Tadzhik',62.2), +('TWN','Min',66.7), +('TZA','Nyamwesi',21.1); +INSERT IGNORE INTO CountryLanguage VALUES +('DNK','Danish',93.5), +('THA','Thai',52.6), +('TGO','Ewe',23.2), +('TKL','Tokelau',0.0), +('TON','Tongan',98.3), +('TTO','English',93.5), +('TCD','Sara',27.7), +('CZE','Czech',81.2), +('TUN','Arabic',69.9), +('TUR','Turkish',87.6), +('TKM','Turkmenian',76.7), +('TCA','English',0.0), +('TUV','Tuvalu',92.5), +('UGA','Ganda',18.1), +('UKR','Ukrainian',64.7), +('HUN','Hungarian',98.5), +('URY','Spanish',95.7), +('NCL','Malenasian Languages',45.4), +('NZL','English',87.0), +('UZB','Uzbek',72.6), +('BLR','Belorussian',65.6), +('WLF','Wallis',0.0), +('VUT','Bislama',56.6), +('VAT','Italian',0.0), +('VEN','Spanish',96.9), +('RUS','Russian',86.6), +('VNM','Vietnamese',86.8), +('EST','Estonian',65.3), +('USA','English',86.2), +('VIR','English',81.7), +('UMI','English',0.0), +('ZWE','Shona',72.1), +('PSE','Arabic',95.9), +('AFG','Dari',32.1), +('NLD','Fries',3.7), +('ANT','English',7.8), +('ALB','Greek',1.8), +('DZA','Berberi',14.0), +('ASM','English',3.1), +('AND','Catalan',32.3), +('AGO','Mbundu',21.6), +('ATG','English',0.0), +('ARE','Hindi',0.0), +('ARG','Italian',1.7), +('ARM','Azerbaijani',2.6), +('ABW','English',9.5), +('AUS','Italian',2.2), +('AZE','Russian',3.0), +('BHS','Creole French',10.3), +('BHR','English',0.0), +('BGD','Chakma',0.4), +('BRB','English',0.0), +('BEL','French',32.6), +('BLZ','Spanish',31.6), +('BEN','Joruba',12.2), +('BTN','Nepali',34.8), +('BOL','Ketua',8.1), +('BWA','Shona',12.3), +('BRA','German',0.5), +('GBR','Kymri',0.9), +('BRN','Malay-English',28.8), +('BGR','Turkish',9.4), +('BFA','Ful',9.7), +('BDI','French',0.0), +('CHL','Araucan',9.6), +('COK','English',0.0), +('CRI','Creole English',2.0), +('DJI','Afar',34.8), +('DMA','Creole French',0.0), +('DOM','Creole French',2.0), +('ECU','Ketua',7.0), +('EGY','Sinaberberi',0.0), +('SLV','Nahua',0.0), +('ERI','Tigre',31.7), +('ESP','Catalan',16.9), +('ZAF','Xhosa',17.7), +('ETH','Amhara',30.0), +('FJI','Hindi',43.7), +('PHL','Cebuano',23.3), +('FRO','Danish',0.0), +('GAB','Punu-sira-nzebi',17.1), +('GMB','Ful',16.2), +('GEO','Russian',8.8), +('GHA','Mossi',15.8), +('GIB','Arabic',7.4), +('GRL','Danish',12.5), +('GLP','French',0.0), +('GUM','Chamorro',29.6), +('GTM','Quiché',10.1), +('GIN','Malinke',23.2), +('GNB','Ful',16.6), +('GUY','Caribbean',2.2), +('HTI','French',0.0), +('HND','Garifuna',1.3), +('HKG','English',2.2), +('SJM','Russian',0.0), +('IDN','Sunda',15.8), +('IND','Bengali',8.2), +('IRQ','Kurdish',19.0), +('IRN','Azerbaijani',16.8), +('IRL','Irish',1.6), +('ISL','English',0.0), +('ISR','Arabic',18.0), +('ITA','Sardinian',2.7), +('TMP','Portuguese',0.0), +('AUT','Serbo-Croatian',2.2), +('JAM','Hindi',1.9), +('JPN','Korean',0.5), +('YEM','Soqutri',0.0), +('JOR','Circassian',1.0), +('CXR','English',0.0), +('YUG','Albaniana',16.5), +('KHM','Vietnamese',5.5), +('CMR','Bamileke-bamum',18.6), +('CAN','French',23.4), +('CPV','Portuguese',0.0), +('KAZ','Russian',34.7), +('KEN','Luhya',13.8), +('CAF','Banda',23.5), +('CHN','Zhuang',1.4), +('KGZ','Russian',16.2), +('KIR','Tuvalu',0.5), +('COL','Chibcha',0.4), +('COM','Comorian-French',12.9), +('COG','Teke',17.3), +('COD','Kongo',16.0), +('CCK','English',0.0), +('PRK','Chinese',0.1), +('KOR','Chinese',0.1), +('GRC','Turkish',0.9), +('HRV','Slovene',0.0), +('KWT','English',0.0), +('CYP','Turkish',22.4), +('LAO','Mon-khmer',16.5), +('LVA','Russian',32.5), +('LSO','Zulu',15.0), +('LBN','Armenian',5.9), +('LBR','Bassa',13.7), +('LBY','Berberi',1.0), +('LIE','Italian',2.5), +('LTU','Russian',8.1), +('LUX','Portuguese',13.0), +('MAC','Portuguese',2.3), +('MDG','French',0.0), +('MKD','Albaniana',22.9), +('MWI','Lomwe',18.4), +('MDV','English',0.0), +('MYS','Chinese',9.0), +('MLI','Ful',13.9), +('MLT','English',2.1), +('MAR','Berberi',33.0), +('MHL','English',0.0), +('MTQ','French',0.0), +('MRT','Wolof',6.6), +('MUS','Bhojpuri',21.1), +('MYT','French',20.3), +('MEX','Náhuatl',1.8), +('FSM','Pohnpei',23.8), +('MDA','Russian',23.2), +('MCO','Monegasque',16.1), +('MNG','Kazakh',5.9), +('MOZ','Tsonga',12.4), +('MMR','Shan',8.5), +('NAM','Nama',12.4), +('NRU','Kiribati',17.9), +('NPL','Maithili',11.9), +('NIC','Miskito',1.6), +('NER','Songhai-zerma',21.2), +('NGA','Hausa',21.1), +('NIU','English',0.0), +('NOR','English',0.5), +('CIV','Gur',11.7), +('OMN','Balochi',0.0), +('PAK','Pashto',13.1), +('PLW','Philippene Languages',9.2), +('PAN','Creole English',14.0), +('PNG','Malenasian Languages',20.0), +('PRY','Guaraní',40.1), +('PER','Ketua',16.4), +('MNP','Chamorro',30.0), +('PRI','English',47.4), +('POL','German',1.3), +('GNQ','Bubi',8.7), +('QAT','Urdu',0.0), +('FRA','Arabic',2.5), +('GUF','Indian Languages',1.9), +('PYF','French',40.8), +('REU','Chinese',2.8), +('ROM','Hungarian',7.2), +('RWA','French',0.0), +('SWE','Finnish',2.4), +('KNA','English',0.0), +('LCA','English',20.0), +('VCT','English',0.0), +('DEU','Turkish',2.6), +('SLB','Papuan Languages',8.6), +('ZMB','Tongan',11.0), +('WSM','Samoan',47.5), +('STP','French',0.7), +('SEN','Ful',21.7); +INSERT IGNORE INTO CountryLanguage VALUES +('SYC','English',3.8), +('SLE','Temne',31.8), +('SGP','Malay',14.1), +('SVK','Hungarian',10.5), +('SVN','Serbo-Croatian',7.9), +('SOM','Arabic',0.0), +('LKA','Tamil',19.6), +('SDN','Dinka',11.5), +('FIN','Swedish',5.7), +('SUR','Hindi',0.0), +('SWZ','Zulu',2.0), +('CHE','French',19.2), +('SYR','Kurdish',9.0), +('TJK','Uzbek',23.2), +('TWN','Mandarin Chinese',20.1), +('TZA','Swahili',8.8), +('DNK','Turkish',0.8), +('THA','Lao',26.9), +('TGO','Kabyé',13.8), +('TKL','English',0.0), +('TON','English',0.0), +('TTO','Hindi',3.4), +('TCD','Arabic',12.3), +('CZE','Moravian',12.9), +('TUN','Arabic-French',26.3), +('TUR','Kurdish',10.6), +('TKM','Uzbek',9.2), +('TUV','Kiribati',7.5), +('UGA','Nkole',10.7), +('UKR','Russian',32.9), +('HUN','Romani',0.5), +('NCL','French',34.3), +('NZL','Maori',4.3), +('UZB','Russian',10.9), +('BLR','Russian',32.0), +('WLF','Futuna',0.0), +('VUT','English',28.3), +('VEN','Goajiro',0.4), +('RUS','Tatar',3.2), +('VNM','Tho',1.8), +('EST','Russian',27.8), +('USA','Spanish',7.5), +('VIR','Spanish',13.3), +('ZWE','Ndebele',16.2), +('PSE','Hebrew',4.1), +('AFG','Uzbek',8.8), +('NLD','Arabic',0.9), +('ANT','Dutch',0.0), +('ALB','Macedonian',0.1), +('ASM','Tongan',3.1), +('AND','Portuguese',10.8), +('AGO','Kongo',13.2), +('ARG','Indian Languages',0.3), +('ABW','Spanish',7.4), +('AUS','Greek',1.6), +('AZE','Lezgian',2.3), +('BGD','Marma',0.2), +('BEL','Italian',2.4), +('BLZ','Maya Languages',9.6), +('BEN','Adja',11.1), +('BTN','Asami',15.2), +('BOL','Aimará',3.2), +('BWA','San',3.5), +('BRA','Italian',0.4), +('GBR','Gaeli',0.1), +('BRN','Chinese',9.3), +('BGR','Romani',3.7), +('BFA','Gurma',5.7), +('BDI','Swahili',0.0), +('CHL','Aimará',0.5), +('CRI','Chibcha',0.3), +('DJI','Arabic',10.6), +('ERI','Afar',4.3), +('ESP','Galecian',6.4), +('ZAF','Afrikaans',14.3), +('ETH','Tigrinja',7.2), +('PHL','Ilocano',9.3), +('GAB','Mpongwe',14.6), +('GMB','Wolof',12.6), +('GEO','Armenian',6.8), +('GHA','Ewe',11.9), +('GUM','Philippene Languages',19.7), +('GTM','Cakchiquel',8.9), +('GIN','Susu',11.0), +('GNB','Balante',14.6), +('GUY','Arawakan',1.4), +('HND','Creole English',0.2), +('HKG','Fukien',1.9), +('IDN','Malay',12.1), +('IND','Telugu',7.8), +('IRQ','Azerbaijani',1.7), +('IRN','Kurdish',9.1), +('ISR','Russian',8.9), +('ITA','Friuli',1.2), +('AUT','Turkish',1.5), +('JPN','Chinese',0.2), +('JOR','Armenian',1.0), +('YUG','Hungarian',3.4), +('KHM','Chinese',3.1), +('CMR','Duala',10.9), +('CAN','Chinese',2.5), +('KAZ','Ukrainian',5.0), +('KEN','Luo',12.8), +('CAF','Mandjia',14.8), +('CHN','Mantu',0.9), +('KGZ','Uzbek',14.1), +('COL','Creole English',0.1), +('COM','Comorian-madagassi',5.5), +('COG','Mboshi',11.4), +('COD','Mongo',13.5), +('LAO','Thai',7.8), +('LVA','Belorussian',4.1), +('LSO','English',0.0), +('LBN','French',0.0), +('LBR','Grebo',8.9), +('LIE','Turkish',2.5), +('LTU','Polish',7.0), +('LUX','Italian',4.6), +('MAC','Mandarin Chinese',1.2), +('MKD','Turkish',4.0), +('MWI','Yao',13.2), +('MYS','Tamil',3.9), +('MLI','Senufo and Minianka',12.0), +('MRT','Tukulor',5.4), +('MUS','French',3.4), +('MYT','Malagasy',16.1), +('MEX','Yucatec',1.1), +('FSM','Mortlock',7.6), +('MDA','Ukrainian',8.6), +('MCO','Italian',16.1), +('MNG','Dorbet',2.7), +('MOZ','Sena',9.4), +('MMR','Karen',6.2), +('NAM','Kavango',9.7), +('NRU','Chinese',8.5), +('NPL','Bhojpuri',7.5), +('NIC','Creole English',0.5), +('NER','Tamashek',10.4), +('NGA','Ibo',18.1), +('NOR','Danish',0.4), +('CIV','Malinke',11.4), +('PAK','Sindhi',11.8), +('PLW','English',3.2), +('PAN','Guaymí',5.3), +('PRY','Portuguese',3.2), +('PER','Aimará',2.3), +('MNP','Chinese',7.1), +('POL','Ukrainian',0.6), +('FRA','Portuguese',1.2), +('PYF','Chinese',2.9), +('REU','Comorian',2.8), +('ROM','Romani',0.7), +('SWE','Southern Slavic Languages',1.3), +('DEU','Southern Slavic Languages',1.4), +('SLB','Polynesian Languages',3.8), +('ZMB','Nyanja',7.8), +('WSM','English',0.6), +('SEN','Serer',12.5), +('SYC','French',1.3), +('SLE','Limba',8.3), +('SGP','Tamil',7.4), +('SVK','Romani',1.7), +('SVN','Hungarian',0.5), +('LKA','Mixed Languages',19.6), +('SDN','Nubian Languages',8.1), +('FIN','Russian',0.4), +('CHE','Italian',7.7), +('TJK','Russian',9.7), +('TWN','Hakka',11.0), +('TZA','Hehet',6.9), +('DNK','Arabic',0.7), +('THA','Chinese',12.1), +('TGO','Watyi',10.3), +('TTO','Creole English',2.9), +('TCD','Mayo-kebbi',11.5), +('CZE','Slovak',3.1), +('TUN','Arabic-French-English',3.2), +('TUR','Arabic',1.4), +('TKM','Russian',6.7), +('TUV','English',0.0), +('UGA','Kiga',8.3), +('UKR','Romanian',0.7), +('HUN','German',0.4), +('NCL','Polynesian Languages',11.6), +('UZB','Tadzhik',4.4), +('BLR','Ukrainian',1.3), +('VUT','French',14.2), +('VEN','Warrau',0.1), +('RUS','Ukrainian',1.3), +('VNM','Thai',1.6), +('EST','Ukrainian',2.8), +('USA','French',0.7), +('VIR','French',2.5), +('ZWE','English',2.2), +('AFG','Turkmenian',1.9), +('NLD','Turkish',0.8), +('AND','French',6.2), +('AGO','Luimbe-nganguela',5.4), +('ABW','Dutch',5.3), +('AUS','Canton Chinese',1.1); +INSERT IGNORE INTO CountryLanguage VALUES +('AZE','Armenian',2.0), +('BGD','Garo',0.1), +('BEL','Arabic',1.6), +('BLZ','Garifuna',6.8), +('BEN','Aizo',8.7), +('BOL','Guaraní',0.1), +('BWA','Khoekhoe',2.5), +('BRA','Japanese',0.4), +('BRN','English',3.1), +('BGR','Macedonian',2.6), +('BFA','Busansi',3.5), +('CHL','Rapa nui',0.2), +('CRI','Chinese',0.2), +('ERI','Hadareb',3.8), +('ESP','Basque',1.6), +('ZAF','Northsotho',9.1), +('ETH','Gurage',4.7), +('PHL','Hiligaynon',9.1), +('GAB','Mbete',13.8), +('GMB','Diola',9.2), +('GEO','Azerbaijani',5.5), +('GHA','Ga-adangme',7.8), +('GUM','Korean',3.3), +('GTM','Kekchí',4.9), +('GIN','Kissi',6.0), +('GNB','Portuguese',8.1), +('HND','Miskito',0.2), +('HKG','Hakka',1.6), +('IDN','Madura',4.3), +('IND','Marathi',7.4), +('IRQ','Assyrian',0.8), +('IRN','Gilaki',5.3), +('ITA','French',0.5), +('AUT','Hungarian',0.4), +('JPN','English',0.1), +('YUG','Romani',1.4), +('KHM','Tam',2.4), +('CMR','Ful',9.6), +('CAN','Italian',1.7), +('KAZ','German',3.1), +('KEN','Kamba',11.2), +('CAF','Ngbaka',7.5), +('CHN','Hui',0.8), +('KGZ','Ukrainian',1.7), +('COL','Arawakan',0.1), +('COM','Comorian-Arabic',1.6), +('COG','Mbete',4.8), +('COD','Rwanda',10.3), +('LAO','Lao-Soung',5.2), +('LVA','Ukrainian',2.9), +('LBR','Gio',7.9), +('LTU','Belorussian',1.4), +('LUX','French',4.2), +('MAC','English',0.5), +('MKD','Romani',2.3), +('MWI','Ngoni',6.7), +('MYS','Iban',2.8), +('MLI','Soninke',8.7), +('MRT','Soninke',2.7), +('MUS','Hindi',1.2), +('MEX','Zapotec',0.6), +('FSM','Kosrean',7.3), +('MDA','Gagauzi',3.2), +('MCO','English',6.5), +('MNG','Bajad',1.9), +('MOZ','Lomwe',7.8), +('MMR','Rakhine',4.5), +('NAM','Afrikaans',9.5), +('NRU','Tuvalu',8.5), +('NPL','Tharu',5.4), +('NIC','Sumo',0.2), +('NER','Ful',9.7), +('NGA','Ful',11.3), +('NOR','Swedish',0.3), +('CIV','Kru',10.5), +('PAK','Saraiki',9.8), +('PLW','Chinese',1.6), +('PAN','Cuna',2.0), +('PRY','German',0.9), +('MNP','Korean',6.5), +('POL','Belorussian',0.5), +('FRA','Italian',0.4), +('REU','Malagasy',1.4), +('ROM','German',0.4), +('SWE','Arabic',0.8), +('DEU','Italian',0.7), +('ZMB','Lozi',6.4), +('SEN','Diola',5.0), +('SLE','Kono-vai',5.1), +('SVK','Czech and Moravian',1.1), +('SDN','Beja',6.4), +('FIN','Estonian',0.2), +('CHE','Romansh',0.6), +('TWN','Ami',0.6), +('TZA','Haya',5.9), +('DNK','German',0.5), +('THA','Malay',3.6), +('TGO','Kotokoli',5.7), +('TCD','Kanem-bornu',9.0), +('CZE','Polish',0.6), +('TKM','Kazakh',2.0), +('UGA','Soga',8.2), +('UKR','Bulgariana',0.3), +('HUN','Serbo-Croatian',0.2), +('UZB','Kazakh',3.8), +('BLR','Polish',0.6), +('RUS','Chuvash',0.9), +('VNM','Muong',1.5), +('EST','Belorussian',1.4), +('USA','German',0.7), +('ZWE','Nyanja',2.2), +('AFG','Balochi',0.9), +('AGO','Nyaneka-nkhumbi',5.4), +('AUS','Arabic',1.0), +('BGD','Khasi',0.1), +('BEL','German',1.0), +('BEN','Bariba',8.7), +('BWA','Ndebele',1.3), +('BRA','Indian Languages',0.2), +('BFA','Dagara',3.1), +('ERI','Bilin',3.0), +('ZAF','English',8.5), +('ETH','Somali',4.1), +('PHL','Bicol',5.7), +('GMB','Soninke',7.6), +('GEO','Osseetti',2.4), +('GHA','Gurma',3.3), +('GUM','Japanese',2.0), +('GTM','Mam',2.7), +('GIN','Kpelle',4.6), +('GNB','Malinke',6.9), +('HKG','Chiu chau',1.4), +('IDN','Minangkabau',2.4), +('IND','Tamil',6.3), +('IRQ','Persian',0.8), +('IRN','Luri',4.3), +('ITA','German',0.5), +('AUT','Slovene',0.4), +('JPN','Philippene Languages',0.1), +('YUG','Slovak',0.7), +('CMR','Tikar',7.4), +('CAN','German',1.6), +('KAZ','Uzbek',2.3), +('KEN','Kalenjin',10.8), +('CAF','Sara',6.4), +('CHN','Miao',0.7), +('KGZ','Tatar',1.3), +('COL','Caribbean',0.1), +('COM','Comorian-Swahili',0.5), +('COG','Punu',2.9), +('COD','Zande',6.1), +('LVA','Polish',2.1), +('LBR','Kru',7.2), +('LTU','Ukrainian',1.1), +('LUX','German',2.3), +('MKD','Serbo-Croatian',2.0), +('MYS','English',1.6), +('MLI','Tamashek',7.3), +('MRT','Ful',1.2), +('MUS','Tamil',0.8), +('MEX','Mixtec',0.6), +('FSM','Yap',5.8), +('MDA','Bulgariana',1.6), +('MNG','Buryat',1.7), +('MOZ','Shona',6.5), +('MMR','Mon',2.4), +('NAM','Herero',8.0), +('NRU','English',7.5), +('NPL','Tamang',4.9), +('NER','Kanuri',4.4), +('NGA','Ibibio',5.6), +('NOR','Saame',0.0), +('CIV','[South]Mande',7.7), +('PAK','Urdu',7.6), +('PAN','Embera',0.6), +('MNP','English',4.8), +('FRA','Spanish',0.4), +('REU','Tamil',0.0), +('ROM','Ukrainian',0.3), +('SWE','Spanish',0.6), +('DEU','Greek',0.4), +('ZMB','Chewa',5.7), +('SEN','Malinke',3.8), +('SLE','Bullom-sherbro',3.8), +('SVK','Ukrainian and Russian',0.6), +('SDN','Nuer',4.9), +('FIN','Saame',0.0), +('TWN','Atayal',0.4), +('TZA','Makonde',5.9), +('DNK','English',0.3), +('THA','Khmer',1.3), +('TGO','Ane',5.7), +('TCD','Ouaddai',8.7), +('CZE','German',0.5), +('UGA','Teso',6.0), +('UKR','Hungarian',0.3), +('HUN','Romanian',0.1), +('UZB','Karakalpak',2.0), +('RUS','Bashkir',0.7), +('VNM','Chinese',1.4); +INSERT INTO CountryLanguage VALUES +('EST','Finnish',0.7), +('USA','Italian',0.6), +('AGO','Chokwe',4.2), +('AUS','Vietnamese',0.8), +('BGD','Santhali',0.1), +('BEL','Turkish',0.9), +('BEN','Somba',6.7), +('BFA','Dyula',2.6), +('ERI','Saho',3.0), +('ZAF','Tswana',8.1), +('ETH','Sidamo',3.2), +('PHL','Waray-waray',3.8), +('GEO','Abhyasi',1.7), +('GHA','Joruba',1.3), +('GIN','Yalunka',2.9), +('GNB','Mandyako',4.9), +('IDN','Batakki',2.2), +('IND','Urdu',5.1), +('IRN','Mazandarani',3.6), +('ITA','Albaniana',0.2), +('AUT','Polish',0.2), +('JPN','Ainu',0.0), +('YUG','Macedonian',0.5), +('CMR','Mandara',5.7), +('CAN','Polish',0.7), +('KAZ','Tatar',2.0), +('KEN','Gusii',6.1), +('CAF','Mbum',6.4), +('CHN','Uighur',0.6), +('KGZ','Kazakh',0.8), +('COG','Sango',2.6), +('COD','Ngala and Bangi',5.8), +('LVA','Lithuanian',1.2), +('LBR','Mano',7.2), +('MYS','Dusun',1.1), +('MLI','Songhai',6.9), +('MRT','Zenaga',1.2), +('MUS','Marathi',0.7), +('MEX','Otomí',0.4), +('FSM','Wolea',3.7), +('MNG','Dariganga',1.4), +('MOZ','Tswa',6.0), +('MMR','Chin',2.2), +('NAM','Caprivi',4.7), +('NPL','Newari',3.7), +('NGA','Kanuri',4.1), +('PAK','Balochi',3.0), +('PAN','Arabic',0.6), +('MNP','Carolinian',4.8), +('FRA','Turkish',0.4), +('ROM','Serbo-Croatian',0.1), +('SWE','Norwegian',0.5), +('DEU','Polish',0.3), +('ZMB','Nsenga',4.3), +('SEN','Soninke',1.3), +('SLE','Ful',3.8), +('SDN','Zande',2.7), +('TWN','Paiwan',0.3), +('TZA','Nyakusa',5.4), +('DNK','Swedish',0.3), +('THA','Kuy',1.1), +('TGO','Moba',5.4), +('TCD','Hadjarai',6.7), +('CZE','Silesiana',0.4), +('UGA','Lango',5.9), +('UKR','Belorussian',0.3), +('HUN','Slovak',0.1), +('UZB','Tatar',1.8), +('RUS','Chechen',0.6), +('VNM','Khmer',1.4), +('USA','Chinese',0.6), +('AGO','Luvale',3.6), +('AUS','Serbo-Croatian',0.6), +('BGD','Tripuri',0.1), +('BEN','Ful',5.6), +('ZAF','Southsotho',7.6), +('ETH','Walaita',2.8), +('PHL','Pampango',3.0), +('GIN','Loma',2.3), +('IDN','Bugi',2.2), +('IND','Gujarati',4.8), +('IRN','Balochi',2.3), +('ITA','Slovene',0.2), +('AUT','Czech',0.2), +('CMR','Maka',4.9), +('CAN','Spanish',0.7), +('KEN','Meru',5.5), +('CHN','Yi',0.6), +('KGZ','Tadzhik',0.8), +('COD','Rundi',3.8), +('LBR','Loma',5.8), +('MOZ','Chuabo',5.7), +('MMR','Kachin',1.4), +('NAM','San',1.9), +('NPL','Hindi',3.0), +('NGA','Edo',3.3), +('PAK','Hindko',2.4), +('SLE','Kuranko',3.4), +('SDN','Bari',2.5), +('TZA','Chaga and Pare',4.9), +('DNK','Norwegian',0.3), +('TGO','Naudemba',4.1), +('TCD','Tandjile',6.5), +('CZE','Romani',0.3), +('UGA','Lugbara',4.7), +('UKR','Polish',0.1), +('RUS','Mordva',0.5), +('VNM','Nung',1.1), +('USA','Tagalog',0.4), +('AGO','Ambo',2.4), +('AUS','German',0.6), +('ZAF','Tsonga',4.3), +('PHL','Pangasinan',1.8), +('IDN','Banja',1.8), +('IND','Kannada',3.9), +('IRN','Arabic',2.2), +('ITA','Romani',0.2), +('AUT','Romanian',0.2), +('CMR','Masana',3.9), +('CAN','Portuguese',0.7), +('KEN','Nyika',4.8), +('CHN','Tujia',0.5), +('COD','Teke',2.7), +('LBR','Malinke',5.1), +('MOZ','Ronga',3.7), +('MMR','Kayah',0.4), +('NAM','German',0.9), +('NGA','Tiv',2.3), +('PAK','Brahui',1.2), +('SLE','Yalunka',3.4), +('SDN','Fur',2.1), +('TZA','Luguru',4.9), +('TGO','Gurma',3.4), +('TCD','Gorane',6.2), +('CZE','Hungarian',0.2), +('UGA','Gisu',4.5), +('RUS','Kazakh',0.4), +('VNM','Miao',0.9), +('USA','Polish',0.3), +('AGO','Luchazi',2.4), +('ZAF','Swazi',2.5), +('PHL','Maguindanao',1.4), +('IDN','Bali',1.7), +('IND','Malajalam',3.6), +('IRN','Bakhtyari',1.7), +('CAN','Punjabi',0.7), +('KEN','Masai',1.6), +('CHN','Mongolian',0.4), +('COD','Boa',2.3), +('MOZ','Marendje',3.5), +('NGA','Ijo',1.8), +('SDN','Chilluk',1.7), +('TZA','Shambala',4.3), +('UGA','Acholi',4.4), +('RUS','Avarian',0.4), +('VNM','Man',0.7), +('USA','Korean',0.3), +('ZAF','Venda',2.2), +('PHL','Maranao',1.3), +('IND','Orija',3.3), +('IRN','Turkmenian',1.6), +('CAN','Ukrainian',0.6), +('KEN','Turkana',1.4), +('CHN','Tibetan',0.4), +('COD','Chokwe',1.8), +('MOZ','Nyanja',3.3), +('NGA','Bura',1.6), +('SDN','Lotuko',1.5), +('TZA','Gogo',3.9), +('UGA','Rwanda',3.2), +('RUS','Mari',0.4), +('USA','Vietnamese',0.2), +('ZAF','Ndebele',1.5), +('IND','Punjabi',2.8), +('CAN','Dutch',0.5), +('CHN','Puyi',0.2), +('TZA','Ha',3.5), +('RUS','Udmur',0.3), +('USA','Japanese',0.2), +('IND','Asami',1.5), +('CAN','Eskimo Languages',0.1), +('CHN','Dong',0.2), +('RUS','Belorussian',0.3), +('USA','Portuguese',0.2); + +ANALYZE TABLE Country, City, CountryLanguage; diff --git a/mysql-test/include/world_schema.inc b/mysql-test/include/world_schema.inc new file mode 100644 index 00000000..c683faf0 --- /dev/null +++ b/mysql-test/include/world_schema.inc @@ -0,0 +1,25 @@ +CREATE TABLE Country ( + Code char(3) NOT NULL default '', + Name char(52) NOT NULL default '', + SurfaceArea float(10,2) NOT NULL default '0.00', + Population int(11) NOT NULL default '0', + Capital int(11) default NULL, + PRIMARY KEY (Code), + UNIQUE INDEX (Name) +); +CREATE TABLE City ( + ID int(11) NOT NULL auto_increment, + Name char(35) NOT NULL default '', + Country char(3) NOT NULL default '', + Population int(11) NOT NULL default '0', + PRIMARY KEY (ID), + INDEX (Population), + INDEX (Country) +); +CREATE TABLE CountryLanguage ( + Country char(3) NOT NULL default '', + Language char(30) NOT NULL default '', + Percentage float(3,1) NOT NULL default '0.0', + PRIMARY KEY (Country, Language), + INDEX (Percentage) +); diff --git a/mysql-test/include/world_schema1.inc b/mysql-test/include/world_schema1.inc new file mode 100644 index 00000000..172e79a7 --- /dev/null +++ b/mysql-test/include/world_schema1.inc @@ -0,0 +1,18 @@ +CREATE TABLE Country ( + Code char(3) NOT NULL default '', + Name char(52) NOT NULL default '', + SurfaceArea float(10,2) NOT NULL default '0.00', + Population int(11) NOT NULL default '0', + Capital int(11) default NULL +); +CREATE TABLE City ( + ID int(11) NOT NULL, + Name char(35) NOT NULL default '', + Country char(3) NOT NULL default '', + Population int(11) NOT NULL default '0' +); +CREATE TABLE CountryLanguage ( + Country char(3) NOT NULL default '', + Language char(30) NOT NULL default '', + Percentage float(3,1) NOT NULL default '0.0' +); diff --git a/mysql-test/include/world_schema_utf8.inc b/mysql-test/include/world_schema_utf8.inc new file mode 100644 index 00000000..2a09c5d3 --- /dev/null +++ b/mysql-test/include/world_schema_utf8.inc @@ -0,0 +1,25 @@ +CREATE TABLE Country ( + Code char(3) NOT NULL default '', + Name char(52) NOT NULL default '', + SurfaceArea float(10,2) NOT NULL default '0.00', + Population int(11) NOT NULL default '0', + Capital int(11) default NULL, + PRIMARY KEY (Code), + UNIQUE INDEX (Name) +) CHARACTER SET utf8 COLLATE utf8_bin; +CREATE TABLE City ( + ID int(11) NOT NULL auto_increment, + Name char(35) NOT NULL default '', + Country char(3) NOT NULL default '', + Population int(11) NOT NULL default '0', + PRIMARY KEY (ID), + INDEX (Population), + INDEX (Country) +) CHARACTER SET utf8 COLLATE utf8_bin; +CREATE TABLE CountryLanguage ( + Country char(3) NOT NULL default '', + Language char(30) NOT NULL default '', + Percentage float(3,1) NOT NULL default '0.0', + PRIMARY KEY (Country, Language), + INDEX (Percentage) +) CHARACTER SET utf8 COLLATE utf8_bin; diff --git a/mysql-test/include/write_result_to_file.inc b/mysql-test/include/write_result_to_file.inc new file mode 100644 index 00000000..3e2ddf48 --- /dev/null +++ b/mysql-test/include/write_result_to_file.inc @@ -0,0 +1,77 @@ +# ==== Purpose ==== +# +# Execute a statement and write the result to a file. This is useful +# if the output needs more advanced parsing than can be done by +# mysqltest commands. +# +# ==== Usage ==== +# +# --let $statement= <STATEMENT> +# --let $output_file= {<FILE>|GENERATE} +# [--let $server_number= <NUMBER>] +# [--let $dont_print_statement= 1] +# --source include/write_result_to_file.inc +# +# Parameters: +# $statement +# The statement to execute. +# +# $server_number +# 1 for the master, 2 for the slave, 3 for next server, etc. +# If omitted, uses current connection. +# +# $output_file +# Name of file to write. If omitted, generates a new filename and +# stores the name both in the mysqltest variable $output_file and +# in the environment variable $OUTPUT_FILE. +# +# $dont_print_statement +# By default, the statement is echoed to the result log. If the +# statement contains non-deterministic output, set this variable +# to suppress it. + +--let _WRTF_SERVER_NUMBER= $server_number +if (!$server_number) +{ + --let _WRTF_SERVER_NUMBER= `SELECT 1 + @@PORT - $MASTER_MYPORT` +} + +--let $_write_result_msg= [server=$_WRTF_SERVER_NUMBER] +if (!$dont_print_statement) +{ + --let $_write_result_msg= [server=$_WRTF_SERVER_NUMBER statement=$statement] +} + +--let $include_filename= write_result_to_file.inc $_write_result_msg +--source include/begin_include_file.inc + +if ($statement == '') +{ + --die !!!ERROR IN TEST: mysqltest variable 'statement' not set in write_result_to_file.inc +} +--let _WRTF_STATEMENT= $statement + +if (!$output_file) +{ + --die !!!ERROR IN TEST: mysqltest variable 'output_file' not set in write_result_to_file.inc +} +if ($output_file == GENERATE) +{ + --let $output_file= `SELECT UUID()` + --let $output_file= $MYSQLTEST_VARDIR/tmp/_stmt_file_$output_file +} +--let _WRTF_OUTPUT_FILE= $output_file + +perl; + my $stmt= $ENV{'_WRTF_STATEMENT'}; + my $server_number= $ENV{'_WRTF_SERVER_NUMBER'}; + my $mysql = $ENV{'MYSQL'}; + $mysql =~ s/( --|$)/ --defaults-group-suffix=.$server_number$1/; + my $outfile = $ENV{'_WRTF_OUTPUT_FILE'}; + open MYSQL, "| $mysql > $outfile" or die "Failed to open pipe to client on server '$server_number': $!"; + print MYSQL $stmt, ';' or die "Error printing statement to MYSQL pipe: $!"; + close MYSQL or die "Error closing MYSQL pipe: $!"; +EOF + +--let $include_filename= write_result_to_file.inc [$write_result_msg] +--source include/end_include_file.inc diff --git a/mysql-test/include/write_var_to_file.inc b/mysql-test/include/write_var_to_file.inc new file mode 100644 index 00000000..58bdac6f --- /dev/null +++ b/mysql-test/include/write_var_to_file.inc @@ -0,0 +1,58 @@ +# ==== Purpose ==== +# +# Write the contents of $write_var to file $write_to_file. +# +# +# ==== Usage ==== +# +# --let $write_var = <value> +# --let $write_to_file = [<file>|GENERATE] +# --source include/write_var_to_file.inc +# +# $write_var is evaluated in sql 'string' context, so escapes like \n +# are interpolated. +# +# $write_to_file can be either a filename, or the special string +# GENERATE. If it is GENERATE, a unique filename is generated (based +# on UUID()). The filename is saved in $write_to_file so that it can +# be retrieved later. +# +# +# ==== Implementation ==== +# +# We can't use mysqltest's write_file because it does not evaluate +# variables. We can't use '--exec echo $write_var > $write_file' +# because it will use \n\r line terminator under windows. So the only +# working way is mysql's SELECT INTO DUMPFILE, which is subject to +# @@secure_file_priv. That makes this more complex than you might +# expect. + +if (!$write_to_file) +{ + --die You must set the mysqltest variable \$write_to_file before you source include/write_var_to_file.inc +} + +if ($write_to_file == 'GENERATE') +{ + --let $_wvtf_suffix= `SELECT UUID()` + --let $write_to_file= $MYSQLTEST_VARDIR/tmp/_var_file_$_wvtf_suffix.inc +} + +--error 0,1 +--remove_file $write_to_file + +if (`SELECT LENGTH(@@secure_file_priv) > 0`) +{ + --let $_wvtf_suffix= `SELECT UUID()` + --let $_wvtf_tmp_file= $MYSQLTEST_VARDIR/_wvtf_$_wvtf_suffix + + --disable_ps2_protocol + --eval SELECT '$write_var' INTO DUMPFILE '$_wvtf_tmp_file' + --enable_ps2_protocol + --copy_file $_wvtf_tmp_file $write_to_file + --remove_file $_wvtf_tmp_file +} +if (`SELECT LENGTH(@@secure_file_priv) = 0`) +{ + --eval SELECT '$write_var' INTO DUMPFILE '$write_to_file' +} diff --git a/mysql-test/include/wsrep_wait_condition.inc b/mysql-test/include/wsrep_wait_condition.inc new file mode 100644 index 00000000..89b31047 --- /dev/null +++ b/mysql-test/include/wsrep_wait_condition.inc @@ -0,0 +1,23 @@ +# Helper script to allow to wait for condition on a node that may become +# non-primary. It attempts to preserve wsrep_sync_wait and wsrep_on session +# variables. +# +# We are forced to restore a global value for the session wsrep_sync_wait +# here because we can not always issue a SELECT query to obtain the original +# value and then restore it + +disable_query_log; +SET SESSION wsrep_sync_wait = 8; +let $restore_wsrep_sync_wait = `SELECT @@GLOBAL.wsrep_sync_wait`; +let $restore_wsrep_on = `SELECT @@wsrep_on`; +SET SESSION wsrep_on = OFF; + +--source include/wait_condition.inc + +if ($restore_wsrep_on == 1) +{ + --eval SET SESSION wsrep_on = ON +} +--eval SET SESSION wsrep_sync_wait = $restore_wsrep_sync_wait + +enable_query_log; diff --git a/mysql-test/include/wsrep_wait_disconnect.inc b/mysql-test/include/wsrep_wait_disconnect.inc new file mode 100644 index 00000000..504e8069 --- /dev/null +++ b/mysql-test/include/wsrep_wait_disconnect.inc @@ -0,0 +1,2 @@ +let $wait_condition = SELECT 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_ready' AND VARIABLE_VALUE = 'OFF'; +--source include/wsrep_wait_condition.inc diff --git a/mysql-test/include/wsrep_wait_membership.inc b/mysql-test/include/wsrep_wait_membership.inc new file mode 100644 index 00000000..8bc1920d --- /dev/null +++ b/mysql-test/include/wsrep_wait_membership.inc @@ -0,0 +1,10 @@ +# Waits for N members in the cluster +# +# Usage: +# --let $members=1 +# --source wsrep_wait_membership.inc +# + +let $wait_condition = SELECT VARIABLE_VALUE = $members FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; + +--source include/wsrep_wait_condition.inc |