Merge
This commit is contained in:
commit
6ac61bbe40
@ -1921,3 +1921,4 @@ sql/share/ukrainian
|
||||
libmysqld/examples/mysqltest.cc
|
||||
extra/libevent/event-config.h
|
||||
libmysqld/opt_table_elimination.cc
|
||||
libmysqld/ha_federatedx.cc
|
||||
|
@ -146,6 +146,13 @@ then
|
||||
debug_cflags="$debug_cflags $debug_extra_cflags"
|
||||
fi
|
||||
|
||||
static_link="--with-mysqld-ldflags=-all-static "
|
||||
static_link="$static_link --with-client-ldflags=-all-static"
|
||||
# we need local-infile in all binaries for rpl000001
|
||||
# if you need to disable local-infile in the client, write a build script
|
||||
# and unset local_infile_configs
|
||||
local_infile_configs="--enable-local-infile"
|
||||
|
||||
#
|
||||
# Configuration options.
|
||||
#
|
||||
@ -154,6 +161,8 @@ base_configs="$base_configs --with-extra-charsets=complex "
|
||||
base_configs="$base_configs --enable-thread-safe-client "
|
||||
base_configs="$base_configs --with-big-tables"
|
||||
base_configs="$base_configs --with-plugin-maria --with-maria-tmp-tables --without-plugin-innodb_plugin"
|
||||
# Compile our client programs with static libraries to allow them to be moved
|
||||
base_configs="$base_configs --with-mysqld-ldflags=-static --with-client-ldflags=-static"
|
||||
|
||||
if test -d "$path/../cmd-line-utils/readline"
|
||||
then
|
||||
@ -163,14 +172,6 @@ then
|
||||
base_configs="$base_configs --with-libedit"
|
||||
fi
|
||||
|
||||
static_link="--with-mysqld-ldflags=-all-static "
|
||||
static_link="$static_link --with-client-ldflags=-all-static"
|
||||
# we need local-infile in all binaries for rpl000001
|
||||
# if you need to disable local-infile in the client, write a build script
|
||||
# and unset local_infile_configs
|
||||
local_infile_configs="--enable-local-infile"
|
||||
|
||||
|
||||
max_no_embedded_configs="$SSL_LIBRARY --with-plugins=max"
|
||||
max_no_qc_configs="$SSL_LIBRARY --with-plugins=max --without-query-cache"
|
||||
max_no_ndb_configs="$SSL_LIBRARY --with-plugins=max-no-ndb --with-embedded-server --with-libevent"
|
||||
|
@ -1043,7 +1043,7 @@ static int drop_db(MYSQL *mysql, const char *db)
|
||||
printf("Do you really want to drop the '%s' database [y/N] ",db);
|
||||
fflush(stdout);
|
||||
if (fgets(buf,sizeof(buf)-1,stdin) == 0 ||
|
||||
(*buf != 'y') && (*buf != 'Y'))
|
||||
((*buf != 'y') && (*buf != 'Y')))
|
||||
{
|
||||
puts("\nOK, aborting database drop!");
|
||||
return -1;
|
||||
|
@ -55,6 +55,7 @@ void Twofish::Process(byte* out, const byte* in, word32 sz)
|
||||
in += BLOCK_SIZE;
|
||||
}
|
||||
else if (mode_ == CBC)
|
||||
{
|
||||
if (dir_ == ENCRYPTION)
|
||||
while (blocks--) {
|
||||
r_[0] ^= *(word32*)in;
|
||||
@ -82,6 +83,7 @@ void Twofish::Process(byte* out, const byte* in, word32 sz)
|
||||
out += BLOCK_SIZE;
|
||||
in += BLOCK_SIZE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DO_TWOFISH_ASM
|
||||
|
@ -124,7 +124,7 @@ handler.o: handler.cc
|
||||
# found to append fileslists that collected by configure
|
||||
# to the sources list
|
||||
|
||||
ha_federated.o:ha_federated.cc
|
||||
ha_federatedx.o:ha_federatedx.cc
|
||||
$(CXXCOMPILE) $(LM_CFLAGS) -c $<
|
||||
|
||||
ha_heap.o:ha_heap.cc
|
||||
|
@ -127,7 +127,6 @@ my $path_config_file; # The generated config file, var/my.cnf
|
||||
our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
|
||||
|
||||
my $DEFAULT_SUITES= "binlog,federated,main,maria,rpl,innodb,parts";
|
||||
my $opt_suites;
|
||||
|
||||
our $opt_usage;
|
||||
our $opt_list_options;
|
||||
|
@ -143,16 +143,6 @@ t1 1 n4 1 n4 A NULL NULL NULL YES BTREE disabled
|
||||
t1 1 n4 2 n1 A NULL NULL NULL BTREE disabled
|
||||
t1 1 n4 3 n2 A NULL NULL NULL YES BTREE disabled
|
||||
t1 1 n4 4 n3 A NULL NULL NULL YES BTREE disabled
|
||||
insert into t1 values(10,RAND()*1000,RAND()*1000,RAND());
|
||||
insert into t1 values(9,RAND()*1000,RAND()*1000,RAND());
|
||||
insert into t1 values(8,RAND()*1000,RAND()*1000,RAND());
|
||||
insert into t1 values(7,RAND()*1000,RAND()*1000,RAND());
|
||||
insert into t1 values(6,RAND()*1000,RAND()*1000,RAND());
|
||||
insert into t1 values(5,RAND()*1000,RAND()*1000,RAND());
|
||||
insert into t1 values(4,RAND()*1000,RAND()*1000,RAND());
|
||||
insert into t1 values(3,RAND()*1000,RAND()*1000,RAND());
|
||||
insert into t1 values(2,RAND()*1000,RAND()*1000,RAND());
|
||||
insert into t1 values(1,RAND()*1000,RAND()*1000,RAND());
|
||||
alter table t1 enable keys;
|
||||
show keys from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
@ -183,106 +173,6 @@ i int(10) unsigned NO PRI NULL auto_increment
|
||||
c char(10) YES NULL
|
||||
drop table t1;
|
||||
create table t1 (a int, b int);
|
||||
insert into t1 values(1,100), (2,100), (3, 100);
|
||||
insert into t1 values(1,99), (2,99), (3, 99);
|
||||
insert into t1 values(1,98), (2,98), (3, 98);
|
||||
insert into t1 values(1,97), (2,97), (3, 97);
|
||||
insert into t1 values(1,96), (2,96), (3, 96);
|
||||
insert into t1 values(1,95), (2,95), (3, 95);
|
||||
insert into t1 values(1,94), (2,94), (3, 94);
|
||||
insert into t1 values(1,93), (2,93), (3, 93);
|
||||
insert into t1 values(1,92), (2,92), (3, 92);
|
||||
insert into t1 values(1,91), (2,91), (3, 91);
|
||||
insert into t1 values(1,90), (2,90), (3, 90);
|
||||
insert into t1 values(1,89), (2,89), (3, 89);
|
||||
insert into t1 values(1,88), (2,88), (3, 88);
|
||||
insert into t1 values(1,87), (2,87), (3, 87);
|
||||
insert into t1 values(1,86), (2,86), (3, 86);
|
||||
insert into t1 values(1,85), (2,85), (3, 85);
|
||||
insert into t1 values(1,84), (2,84), (3, 84);
|
||||
insert into t1 values(1,83), (2,83), (3, 83);
|
||||
insert into t1 values(1,82), (2,82), (3, 82);
|
||||
insert into t1 values(1,81), (2,81), (3, 81);
|
||||
insert into t1 values(1,80), (2,80), (3, 80);
|
||||
insert into t1 values(1,79), (2,79), (3, 79);
|
||||
insert into t1 values(1,78), (2,78), (3, 78);
|
||||
insert into t1 values(1,77), (2,77), (3, 77);
|
||||
insert into t1 values(1,76), (2,76), (3, 76);
|
||||
insert into t1 values(1,75), (2,75), (3, 75);
|
||||
insert into t1 values(1,74), (2,74), (3, 74);
|
||||
insert into t1 values(1,73), (2,73), (3, 73);
|
||||
insert into t1 values(1,72), (2,72), (3, 72);
|
||||
insert into t1 values(1,71), (2,71), (3, 71);
|
||||
insert into t1 values(1,70), (2,70), (3, 70);
|
||||
insert into t1 values(1,69), (2,69), (3, 69);
|
||||
insert into t1 values(1,68), (2,68), (3, 68);
|
||||
insert into t1 values(1,67), (2,67), (3, 67);
|
||||
insert into t1 values(1,66), (2,66), (3, 66);
|
||||
insert into t1 values(1,65), (2,65), (3, 65);
|
||||
insert into t1 values(1,64), (2,64), (3, 64);
|
||||
insert into t1 values(1,63), (2,63), (3, 63);
|
||||
insert into t1 values(1,62), (2,62), (3, 62);
|
||||
insert into t1 values(1,61), (2,61), (3, 61);
|
||||
insert into t1 values(1,60), (2,60), (3, 60);
|
||||
insert into t1 values(1,59), (2,59), (3, 59);
|
||||
insert into t1 values(1,58), (2,58), (3, 58);
|
||||
insert into t1 values(1,57), (2,57), (3, 57);
|
||||
insert into t1 values(1,56), (2,56), (3, 56);
|
||||
insert into t1 values(1,55), (2,55), (3, 55);
|
||||
insert into t1 values(1,54), (2,54), (3, 54);
|
||||
insert into t1 values(1,53), (2,53), (3, 53);
|
||||
insert into t1 values(1,52), (2,52), (3, 52);
|
||||
insert into t1 values(1,51), (2,51), (3, 51);
|
||||
insert into t1 values(1,50), (2,50), (3, 50);
|
||||
insert into t1 values(1,49), (2,49), (3, 49);
|
||||
insert into t1 values(1,48), (2,48), (3, 48);
|
||||
insert into t1 values(1,47), (2,47), (3, 47);
|
||||
insert into t1 values(1,46), (2,46), (3, 46);
|
||||
insert into t1 values(1,45), (2,45), (3, 45);
|
||||
insert into t1 values(1,44), (2,44), (3, 44);
|
||||
insert into t1 values(1,43), (2,43), (3, 43);
|
||||
insert into t1 values(1,42), (2,42), (3, 42);
|
||||
insert into t1 values(1,41), (2,41), (3, 41);
|
||||
insert into t1 values(1,40), (2,40), (3, 40);
|
||||
insert into t1 values(1,39), (2,39), (3, 39);
|
||||
insert into t1 values(1,38), (2,38), (3, 38);
|
||||
insert into t1 values(1,37), (2,37), (3, 37);
|
||||
insert into t1 values(1,36), (2,36), (3, 36);
|
||||
insert into t1 values(1,35), (2,35), (3, 35);
|
||||
insert into t1 values(1,34), (2,34), (3, 34);
|
||||
insert into t1 values(1,33), (2,33), (3, 33);
|
||||
insert into t1 values(1,32), (2,32), (3, 32);
|
||||
insert into t1 values(1,31), (2,31), (3, 31);
|
||||
insert into t1 values(1,30), (2,30), (3, 30);
|
||||
insert into t1 values(1,29), (2,29), (3, 29);
|
||||
insert into t1 values(1,28), (2,28), (3, 28);
|
||||
insert into t1 values(1,27), (2,27), (3, 27);
|
||||
insert into t1 values(1,26), (2,26), (3, 26);
|
||||
insert into t1 values(1,25), (2,25), (3, 25);
|
||||
insert into t1 values(1,24), (2,24), (3, 24);
|
||||
insert into t1 values(1,23), (2,23), (3, 23);
|
||||
insert into t1 values(1,22), (2,22), (3, 22);
|
||||
insert into t1 values(1,21), (2,21), (3, 21);
|
||||
insert into t1 values(1,20), (2,20), (3, 20);
|
||||
insert into t1 values(1,19), (2,19), (3, 19);
|
||||
insert into t1 values(1,18), (2,18), (3, 18);
|
||||
insert into t1 values(1,17), (2,17), (3, 17);
|
||||
insert into t1 values(1,16), (2,16), (3, 16);
|
||||
insert into t1 values(1,15), (2,15), (3, 15);
|
||||
insert into t1 values(1,14), (2,14), (3, 14);
|
||||
insert into t1 values(1,13), (2,13), (3, 13);
|
||||
insert into t1 values(1,12), (2,12), (3, 12);
|
||||
insert into t1 values(1,11), (2,11), (3, 11);
|
||||
insert into t1 values(1,10), (2,10), (3, 10);
|
||||
insert into t1 values(1,9), (2,9), (3, 9);
|
||||
insert into t1 values(1,8), (2,8), (3, 8);
|
||||
insert into t1 values(1,7), (2,7), (3, 7);
|
||||
insert into t1 values(1,6), (2,6), (3, 6);
|
||||
insert into t1 values(1,5), (2,5), (3, 5);
|
||||
insert into t1 values(1,4), (2,4), (3, 4);
|
||||
insert into t1 values(1,3), (2,3), (3, 3);
|
||||
insert into t1 values(1,2), (2,2), (3, 2);
|
||||
insert into t1 values(1,1), (2,1), (3, 1);
|
||||
alter table t1 add unique (a,b), add key (b);
|
||||
show keys from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
|
@ -116,10 +116,6 @@ CREATE TEMPORARY TABLE t_history (attempt SMALLINT,
|
||||
start_ts DATETIME, end_ts DATETIME,
|
||||
start_cached INTEGER, end_cached INTEGER);
|
||||
CREATE TABLE t1 (f1 BIGINT);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t_history
|
||||
SET attempt = 4 - 4 + 1, start_ts = NOW(),
|
||||
start_cached = 0;
|
||||
|
@ -12,156 +12,6 @@ t1 CREATE TABLE `t1` (
|
||||
PRIMARY KEY (`fid`),
|
||||
SPATIAL KEY `g` (`g`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(150 150, 150 150)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(149 149, 151 151)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(148 148, 152 152)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(147 147, 153 153)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(146 146, 154 154)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(145 145, 155 155)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(144 144, 156 156)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(143 143, 157 157)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(142 142, 158 158)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(141 141, 159 159)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(140 140, 160 160)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(139 139, 161 161)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(138 138, 162 162)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(137 137, 163 163)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(136 136, 164 164)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(135 135, 165 165)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(134 134, 166 166)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(133 133, 167 167)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(132 132, 168 168)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(131 131, 169 169)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(130 130, 170 170)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(129 129, 171 171)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(128 128, 172 172)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(127 127, 173 173)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(126 126, 174 174)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(125 125, 175 175)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(124 124, 176 176)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(123 123, 177 177)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(122 122, 178 178)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(121 121, 179 179)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(120 120, 180 180)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(119 119, 181 181)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(118 118, 182 182)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(117 117, 183 183)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(116 116, 184 184)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(115 115, 185 185)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(114 114, 186 186)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(113 113, 187 187)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(112 112, 188 188)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(111 111, 189 189)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(110 110, 190 190)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(109 109, 191 191)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(108 108, 192 192)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(107 107, 193 193)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(106 106, 194 194)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(105 105, 195 195)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(104 104, 196 196)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(103 103, 197 197)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(102 102, 198 198)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(101 101, 199 199)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(100 100, 200 200)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(99 99, 201 201)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(98 98, 202 202)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(97 97, 203 203)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(96 96, 204 204)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(95 95, 205 205)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(94 94, 206 206)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(93 93, 207 207)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(92 92, 208 208)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(91 91, 209 209)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(90 90, 210 210)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(89 89, 211 211)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(88 88, 212 212)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(87 87, 213 213)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(86 86, 214 214)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(85 85, 215 215)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(84 84, 216 216)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(83 83, 217 217)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(82 82, 218 218)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(81 81, 219 219)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(80 80, 220 220)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(79 79, 221 221)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(78 78, 222 222)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(77 77, 223 223)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(76 76, 224 224)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(75 75, 225 225)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(74 74, 226 226)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(73 73, 227 227)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(72 72, 228 228)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(71 71, 229 229)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(70 70, 230 230)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(69 69, 231 231)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(68 68, 232 232)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(67 67, 233 233)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(66 66, 234 234)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(65 65, 235 235)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(64 64, 236 236)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(63 63, 237 237)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(62 62, 238 238)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(61 61, 239 239)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(60 60, 240 240)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(59 59, 241 241)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(58 58, 242 242)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(57 57, 243 243)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(56 56, 244 244)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(55 55, 245 245)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(54 54, 246 246)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(53 53, 247 247)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(52 52, 248 248)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(51 51, 249 249)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(50 50, 250 250)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(49 49, 251 251)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(48 48, 252 252)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(47 47, 253 253)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(46 46, 254 254)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(45 45, 255 255)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(44 44, 256 256)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(43 43, 257 257)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(42 42, 258 258)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(41 41, 259 259)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(40 40, 260 260)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(39 39, 261 261)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(38 38, 262 262)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(37 37, 263 263)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(36 36, 264 264)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(35 35, 265 265)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(34 34, 266 266)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(33 33, 267 267)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(32 32, 268 268)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(31 31, 269 269)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(30 30, 270 270)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(29 29, 271 271)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(28 28, 272 272)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(27 27, 273 273)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(26 26, 274 274)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(25 25, 275 275)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(24 24, 276 276)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(23 23, 277 277)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(22 22, 278 278)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(21 21, 279 279)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(20 20, 280 280)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(19 19, 281 281)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(18 18, 282 282)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(17 17, 283 283)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(16 16, 284 284)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(15 15, 285 285)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(14 14, 286 286)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(13 13, 287 287)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(12 12, 288 288)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(11 11, 289 289)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(10 10, 290 290)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(9 9, 291 291)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(8 8, 292 292)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(7 7, 293 293)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(6 6, 294 294)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(5 5, 295 295)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(4 4, 296 296)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(3 3, 297 297)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(2 2, 298 298)'));
|
||||
INSERT INTO t1 (g) VALUES (GeomFromText('LineString(1 1, 299 299)'));
|
||||
SELECT count(*) FROM t1;
|
||||
count(*)
|
||||
150
|
||||
@ -186,106 +36,6 @@ CREATE TABLE t2 (
|
||||
fid INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
g GEOMETRY NOT NULL
|
||||
) ENGINE=MyISAM;
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 7 * 10 - 9), Point(10 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 6 * 10 - 9), Point(10 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 5 * 10 - 9), Point(10 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 4 * 10 - 9), Point(10 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 3 * 10 - 9), Point(10 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 2 * 10 - 9), Point(10 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(10 * 10 - 9, 1 * 10 - 9), Point(10 * 10, 1 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 10 * 10 - 9), Point(9 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 9 * 10 - 9), Point(9 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 8 * 10 - 9), Point(9 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 7 * 10 - 9), Point(9 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 6 * 10 - 9), Point(9 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 5 * 10 - 9), Point(9 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 4 * 10 - 9), Point(9 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 3 * 10 - 9), Point(9 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 2 * 10 - 9), Point(9 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(9 * 10 - 9, 1 * 10 - 9), Point(9 * 10, 1 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 10 * 10 - 9), Point(8 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 9 * 10 - 9), Point(8 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 8 * 10 - 9), Point(8 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 7 * 10 - 9), Point(8 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 6 * 10 - 9), Point(8 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 5 * 10 - 9), Point(8 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 4 * 10 - 9), Point(8 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 3 * 10 - 9), Point(8 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 2 * 10 - 9), Point(8 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(8 * 10 - 9, 1 * 10 - 9), Point(8 * 10, 1 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 10 * 10 - 9), Point(7 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 9 * 10 - 9), Point(7 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 8 * 10 - 9), Point(7 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 7 * 10 - 9), Point(7 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 6 * 10 - 9), Point(7 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 5 * 10 - 9), Point(7 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 4 * 10 - 9), Point(7 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 3 * 10 - 9), Point(7 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 2 * 10 - 9), Point(7 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(7 * 10 - 9, 1 * 10 - 9), Point(7 * 10, 1 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 10 * 10 - 9), Point(6 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 9 * 10 - 9), Point(6 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 8 * 10 - 9), Point(6 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 7 * 10 - 9), Point(6 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 6 * 10 - 9), Point(6 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 5 * 10 - 9), Point(6 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 4 * 10 - 9), Point(6 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 3 * 10 - 9), Point(6 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 2 * 10 - 9), Point(6 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(6 * 10 - 9, 1 * 10 - 9), Point(6 * 10, 1 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 10 * 10 - 9), Point(5 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 9 * 10 - 9), Point(5 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 8 * 10 - 9), Point(5 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 7 * 10 - 9), Point(5 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 6 * 10 - 9), Point(5 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 5 * 10 - 9), Point(5 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 4 * 10 - 9), Point(5 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 3 * 10 - 9), Point(5 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 2 * 10 - 9), Point(5 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(5 * 10 - 9, 1 * 10 - 9), Point(5 * 10, 1 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 10 * 10 - 9), Point(4 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 9 * 10 - 9), Point(4 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 8 * 10 - 9), Point(4 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 7 * 10 - 9), Point(4 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 6 * 10 - 9), Point(4 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 5 * 10 - 9), Point(4 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 4 * 10 - 9), Point(4 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 3 * 10 - 9), Point(4 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 2 * 10 - 9), Point(4 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(4 * 10 - 9, 1 * 10 - 9), Point(4 * 10, 1 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 10 * 10 - 9), Point(3 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 9 * 10 - 9), Point(3 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 8 * 10 - 9), Point(3 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 7 * 10 - 9), Point(3 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 6 * 10 - 9), Point(3 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 5 * 10 - 9), Point(3 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 4 * 10 - 9), Point(3 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 3 * 10 - 9), Point(3 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 2 * 10 - 9), Point(3 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(3 * 10 - 9, 1 * 10 - 9), Point(3 * 10, 1 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 10 * 10 - 9), Point(2 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 9 * 10 - 9), Point(2 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 8 * 10 - 9), Point(2 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 7 * 10 - 9), Point(2 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 6 * 10 - 9), Point(2 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 5 * 10 - 9), Point(2 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 4 * 10 - 9), Point(2 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 3 * 10 - 9), Point(2 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 2 * 10 - 9), Point(2 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(2 * 10 - 9, 1 * 10 - 9), Point(2 * 10, 1 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 10 * 10 - 9), Point(1 * 10, 10 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 9 * 10 - 9), Point(1 * 10, 9 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 8 * 10 - 9), Point(1 * 10, 8 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 7 * 10 - 9), Point(1 * 10, 7 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 6 * 10 - 9), Point(1 * 10, 6 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 5 * 10 - 9), Point(1 * 10, 5 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 4 * 10 - 9), Point(1 * 10, 4 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 3 * 10 - 9), Point(1 * 10, 3 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 2 * 10 - 9), Point(1 * 10, 2 * 10)));
|
||||
INSERT INTO t2 (g) VALUES (LineString(Point(1 * 10 - 9, 1 * 10 - 9), Point(1 * 10, 1 * 10)));
|
||||
ALTER TABLE t2 ADD SPATIAL KEY(g);
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
@ -309,404 +59,204 @@ fid AsText(g)
|
||||
56 LINESTRING(41 41,50 50)
|
||||
45 LINESTRING(51 51,60 60)
|
||||
55 LINESTRING(41 51,50 60)
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 10 * 10 - 9), Point(10 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 9 * 10 - 9), Point(10 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 8 * 10 - 9), Point(10 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 7 * 10 - 9), Point(10 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 6 * 10 - 9), Point(10 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 5 * 10 - 9), Point(10 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 4 * 10 - 9), Point(10 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 3 * 10 - 9), Point(10 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 2 * 10 - 9), Point(10 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(10 * 10 - 9, 1 * 10 - 9), Point(10 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 10 * 10 - 9), Point(9 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 9 * 10 - 9), Point(9 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 8 * 10 - 9), Point(9 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 7 * 10 - 9), Point(9 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 6 * 10 - 9), Point(9 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 5 * 10 - 9), Point(9 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 4 * 10 - 9), Point(9 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 3 * 10 - 9), Point(9 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 2 * 10 - 9), Point(9 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(9 * 10 - 9, 1 * 10 - 9), Point(9 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 10 * 10 - 9), Point(8 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 9 * 10 - 9), Point(8 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 8 * 10 - 9), Point(8 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 7 * 10 - 9), Point(8 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 6 * 10 - 9), Point(8 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 5 * 10 - 9), Point(8 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 4 * 10 - 9), Point(8 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 3 * 10 - 9), Point(8 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 2 * 10 - 9), Point(8 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(8 * 10 - 9, 1 * 10 - 9), Point(8 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 10 * 10 - 9), Point(7 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 9 * 10 - 9), Point(7 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 8 * 10 - 9), Point(7 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 7 * 10 - 9), Point(7 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 6 * 10 - 9), Point(7 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 5 * 10 - 9), Point(7 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 4 * 10 - 9), Point(7 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 3 * 10 - 9), Point(7 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 2 * 10 - 9), Point(7 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(7 * 10 - 9, 1 * 10 - 9), Point(7 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 10 * 10 - 9), Point(6 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 9 * 10 - 9), Point(6 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 8 * 10 - 9), Point(6 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 7 * 10 - 9), Point(6 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 6 * 10 - 9), Point(6 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 5 * 10 - 9), Point(6 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 4 * 10 - 9), Point(6 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 3 * 10 - 9), Point(6 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 2 * 10 - 9), Point(6 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(6 * 10 - 9, 1 * 10 - 9), Point(6 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 10 * 10 - 9), Point(5 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 9 * 10 - 9), Point(5 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 8 * 10 - 9), Point(5 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 7 * 10 - 9), Point(5 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 6 * 10 - 9), Point(5 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 5 * 10 - 9), Point(5 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 4 * 10 - 9), Point(5 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 3 * 10 - 9), Point(5 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 2 * 10 - 9), Point(5 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(5 * 10 - 9, 1 * 10 - 9), Point(5 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 10 * 10 - 9), Point(4 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 9 * 10 - 9), Point(4 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 8 * 10 - 9), Point(4 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 7 * 10 - 9), Point(4 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 6 * 10 - 9), Point(4 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 5 * 10 - 9), Point(4 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 4 * 10 - 9), Point(4 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 3 * 10 - 9), Point(4 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 2 * 10 - 9), Point(4 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(4 * 10 - 9, 1 * 10 - 9), Point(4 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 10 * 10 - 9), Point(3 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 9 * 10 - 9), Point(3 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 8 * 10 - 9), Point(3 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 7 * 10 - 9), Point(3 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 6 * 10 - 9), Point(3 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 5 * 10 - 9), Point(3 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 4 * 10 - 9), Point(3 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 3 * 10 - 9), Point(3 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 2 * 10 - 9), Point(3 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(3 * 10 - 9, 1 * 10 - 9), Point(3 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 10 * 10 - 9), Point(2 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 9 * 10 - 9), Point(2 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 8 * 10 - 9), Point(2 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 7 * 10 - 9), Point(2 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 6 * 10 - 9), Point(2 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 5 * 10 - 9), Point(2 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 4 * 10 - 9), Point(2 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 3 * 10 - 9), Point(2 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 2 * 10 - 9), Point(2 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(2 * 10 - 9, 1 * 10 - 9), Point(2 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 10 * 10 - 9), Point(1 * 10, 10 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 9 * 10 - 9), Point(1 * 10, 9 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 8 * 10 - 9), Point(1 * 10, 8 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 7 * 10 - 9), Point(1 * 10, 7 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 6 * 10 - 9), Point(1 * 10, 6 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 5 * 10 - 9), Point(1 * 10, 5 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 4 * 10 - 9), Point(1 * 10, 4 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 3 * 10 - 9), Point(1 * 10, 3 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 2 * 10 - 9), Point(1 * 10, 2 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DELETE FROM t2 WHERE Within(g, Envelope(GeometryFromWKB(Point(1 * 10 - 9, 1 * 10 - 9), Point(1 * 10, 1 * 10))));
|
||||
SELECT count(*) FROM t2;
|
||||
count(*)
|
||||
100
|
||||
DROP TABLE t2;
|
||||
|
@ -3,3 +3,30 @@ SET @old_innodb_file_per_table=@@innodb_file_per_table;
|
||||
SET @old_innodb_file_format_check=@@innodb_file_format_check;
|
||||
SET GLOBAL innodb_file_format='Barracuda';
|
||||
SET GLOBAL innodb_file_per_table=ON;
|
||||
DROP TABLE IF EXISTS `test1`;
|
||||
CREATE TABLE IF NOT EXISTS `test1` (
|
||||
`a` int primary key auto_increment,
|
||||
`b` int default 0,
|
||||
`c` char(100) default 'testtest'
|
||||
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
|
||||
set autocommit=0;
|
||||
CREATE PROCEDURE insert_many(p1 int)
|
||||
BEGIN
|
||||
SET @x = 0;
|
||||
SET @y = 0;
|
||||
REPEAT
|
||||
insert into test1 set b=1;
|
||||
SET @x = @x + 1;
|
||||
SET @y = @y + 1;
|
||||
IF @y >= 1000 THEN
|
||||
commit;
|
||||
SET @y = 0;
|
||||
END IF;
|
||||
UNTIL @x >= p1 END REPEAT;
|
||||
END|
|
||||
DROP PROCEDURE insert_many;
|
||||
ALTER TABLE test1 ENGINE=MyISAM;
|
||||
DROP TABLE test1;
|
||||
SET GLOBAL innodb_file_format=@old_innodb_file_format;
|
||||
SET GLOBAL innodb_file_per_table=@old_innodb_file_per_table;
|
||||
SET GLOBAL innodb_file_format_check=@old_innodb_file_format_check;
|
||||
|
@ -1846,56 +1846,6 @@ c1
|
||||
DROP TABLE t1, t2, t3;
|
||||
CREATE TABLE t1 (id INTEGER, grp TINYINT, id_rev INTEGER);
|
||||
SET @rnd_max= 2147483647;
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
SET @rnd= RAND();
|
||||
SET @id = CAST(@rnd * @rnd_max AS UNSIGNED);
|
||||
SET @id_rev= @rnd_max - @id;
|
||||
SET @grp= CAST(127.0 * @rnd AS UNSIGNED);
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
set @@read_buffer_size=2*1024*1024;
|
||||
CREATE TABLE t2 SELECT * FROM t1;
|
||||
INSERT INTO t1 (id, grp, id_rev) SELECT id, grp, id_rev FROM t2;
|
||||
|
@ -12,16 +12,6 @@ CREATE TABLE `t2` (
|
||||
KEY (id1), KEY(id)
|
||||
) ENGINE=MyISAM;
|
||||
INSERT INTO t2 (id) VALUES (123);
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
# Switch to insert Connection
|
||||
SET SESSION debug='+d,wait_in_enable_indexes';
|
||||
# Send insert data
|
||||
|
22
mysql-test/r/table_elim_debug.result
Normal file
22
mysql-test/r/table_elim_debug.result
Normal file
@ -0,0 +1,22 @@
|
||||
drop table if exists t1, t2;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (0),(1),(2),(3);
|
||||
create table t2 (a int primary key, b int)
|
||||
as select a, a as b from t1 where a in (1,2);
|
||||
explain select t1.a from t1 left join t2 on t2.a=t1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
||||
set optimizer_switch='table_elimination=off';
|
||||
explain select t1.a from t1 left join t2 on t2.a=t1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index
|
||||
set optimizer_switch='table_elimination=on';
|
||||
explain select t1.a from t1 left join t2 on t2.a=t1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
||||
set optimizer_switch='table_elimination=default';
|
||||
explain select t1.a from t1 left join t2 on t2.a=t1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4
|
||||
drop table t1, t2;
|
@ -9,4 +9,5 @@
|
||||
# Do not use any TAB characters for whitespace.
|
||||
#
|
||||
##############################################################################
|
||||
federated_transactions : Bug#29523 Transactions do not work
|
||||
federated_server : needs fixup
|
||||
|
||||
|
@ -47,9 +47,10 @@ CREATE TABLE federated.t1 (
|
||||
)
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t3';
|
||||
SELECT * FROM federated.t1;
|
||||
ERROR HY000: The foreign data source you are trying to reference does not exist. Data source error: error: 1146 'Table 'federated.t3' doesn't exist'
|
||||
DROP TABLE federated.t1;
|
||||
ERROR HY000: Can't create federated table. Foreign data src error: database: 'federated' username: 'root' hostname: '127.0.0.1'
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`group` int NOT NULL default 0,
|
||||
@ -59,9 +60,10 @@ CREATE TABLE federated.t1 (
|
||||
)
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
CONNECTION='mysql://user:pass@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||
SELECT * FROM federated.t1;
|
||||
ERROR HY000: Unable to connect to foreign data source: Access denied for user 'user'@'localhost' (using password: YES)
|
||||
DROP TABLE federated.t1;
|
||||
ERROR HY000: Can't create federated table. Foreign data src error: database: 'federated' username: 'user' hostname: '127.0.0.1'
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`group` int NOT NULL default 0,
|
||||
@ -1944,15 +1946,7 @@ Bug#18287 create federated table always times out, error 1159 ' '
|
||||
|
||||
Test that self-references work
|
||||
|
||||
create table federated.t1 (a int primary key);
|
||||
create table federated.t2 (a int primary key)
|
||||
ENGINE=FEDERATED
|
||||
connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||
insert into federated.t1 (a) values (1);
|
||||
select * from federated.t2;
|
||||
a
|
||||
1
|
||||
drop table federated.t1, federated.t2;
|
||||
fix LOCK_open before reenabling test for Bug#18287
|
||||
CREATE TABLE federated.t1 (a INT PRIMARY KEY) DEFAULT CHARSET=utf8;
|
||||
CREATE TABLE federated.t1 (a INT PRIMARY KEY)
|
||||
ENGINE=FEDERATED
|
||||
@ -1960,13 +1954,11 @@ CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1'
|
||||
DEFAULT CHARSET=utf8;
|
||||
SELECT transactions FROM information_schema.engines WHERE engine="FEDERATED";
|
||||
transactions
|
||||
NO
|
||||
YES
|
||||
INSERT INTO federated.t1 VALUES (1);
|
||||
SET autocommit=0;
|
||||
INSERT INTO federated.t1 VALUES (2);
|
||||
ROLLBACK;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
SET autocommit=1;
|
||||
SELECT * FROM federated.t1;
|
||||
a
|
||||
@ -2157,6 +2149,6 @@ End of 5.1 tests
|
||||
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT;
|
||||
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
|
@ -57,6 +57,7 @@ CREATE TABLE federated.t1 (
|
||||
|
||||
# test non-existant table
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
--error ER_CANT_CREATE_FEDERATED_TABLE
|
||||
eval CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`group` int NOT NULL default 0,
|
||||
@ -66,12 +67,11 @@ eval CREATE TABLE federated.t1 (
|
||||
)
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t3';
|
||||
--error ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST
|
||||
SELECT * FROM federated.t1;
|
||||
DROP TABLE federated.t1;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
|
||||
# test bad user/password
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
--error ER_CANT_CREATE_FEDERATED_TABLE
|
||||
eval CREATE TABLE federated.t1 (
|
||||
`id` int(20) NOT NULL,
|
||||
`group` int NOT NULL default 0,
|
||||
@ -81,9 +81,7 @@ eval CREATE TABLE federated.t1 (
|
||||
)
|
||||
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
|
||||
CONNECTION='mysql://user:pass@127.0.0.1:$SLAVE_MYPORT/federated/t1';
|
||||
--error ER_CONNECT_TO_FOREIGN_DATA_SOURCE
|
||||
SELECT * FROM federated.t1;
|
||||
DROP TABLE federated.t1;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
|
||||
# # correct connection, same named tables
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
@ -1806,6 +1804,8 @@ drop table federated.t1;
|
||||
--echo
|
||||
--echo Test that self-references work
|
||||
--echo
|
||||
--echo fix LOCK_open before reenabling test for Bug#18287
|
||||
--disable_parsing
|
||||
connection slave;
|
||||
create table federated.t1 (a int primary key);
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
@ -1815,7 +1815,7 @@ eval create table federated.t2 (a int primary key)
|
||||
insert into federated.t1 (a) values (1);
|
||||
select * from federated.t2;
|
||||
drop table federated.t1, federated.t2;
|
||||
|
||||
--enable_parsing
|
||||
#
|
||||
# BUG#29875 Disable support for transactions
|
||||
#
|
||||
|
@ -34,6 +34,6 @@ id name
|
||||
DROP TABLE federated.t1;
|
||||
DROP TABLE federated.archive_table;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
|
@ -25,6 +25,6 @@ foo bar
|
||||
DROP TABLE federated.t1;
|
||||
DROP TABLE federated.bug_13118_table;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
|
@ -48,6 +48,6 @@ SET @@GLOBAL.CONCURRENT_INSERT= @OLD_MASTER_CONCURRENT_INSERT;
|
||||
DROP TABLE federated.t1;
|
||||
SET @@GLOBAL.CONCURRENT_INSERT= @OLD_SLAVE_CONCURRENT_INSERT;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
|
@ -1,9 +1,9 @@
|
||||
connection master;
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
|
||||
connection slave;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
--enable_warnings
|
||||
|
@ -20,6 +20,6 @@ a b
|
||||
drop table federated.t1;
|
||||
drop table federated.t1;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
DROP DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
|
@ -178,8 +178,8 @@ INSERT INTO db_bogus.t1 VALUES ('2','this is bogus');
|
||||
create server 's1' foreign data wrapper 'mysql' options
|
||||
(HOST '127.0.0.1',
|
||||
DATABASE 'db_legitimate',
|
||||
USER 'root',
|
||||
PASSWORD '',
|
||||
USER 'test_fed',
|
||||
PASSWORD 'foo',
|
||||
PORT SLAVE_PORT,
|
||||
SOCKET '',
|
||||
OWNER 'root');
|
||||
|
@ -3,6 +3,7 @@
|
||||
|
||||
# Slow test, don't run during staging part
|
||||
-- source include/not_staging.inc
|
||||
-- source include/big_test.inc
|
||||
-- source federated.inc
|
||||
|
||||
connection slave;
|
||||
@ -182,13 +183,17 @@ CREATE TABLE db_bogus.t1 (
|
||||
;
|
||||
INSERT INTO db_bogus.t1 VALUES ('2','this is bogus');
|
||||
|
||||
connection slave;
|
||||
create user test_fed@localhost identified by 'foo';
|
||||
grant all on db_legitimate.* to test_fed@localhost;
|
||||
|
||||
connection master;
|
||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||
eval create server 's1' foreign data wrapper 'mysql' options
|
||||
(HOST '127.0.0.1',
|
||||
DATABASE 'db_legitimate',
|
||||
USER 'root',
|
||||
PASSWORD '',
|
||||
USER 'test_fed',
|
||||
PASSWORD 'foo',
|
||||
PORT $SLAVE_MYPORT,
|
||||
SOCKET '',
|
||||
OWNER 'root');
|
||||
|
@ -1,13 +1,4 @@
|
||||
stop slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
stop slave;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
CREATE DATABASE federated;
|
||||
DROP DATABASE IF EXISTS federated;
|
||||
CREATE DATABASE federated;
|
||||
DROP TABLE IF EXISTS federated.t1;
|
||||
Warnings:
|
||||
|
@ -152,6 +152,7 @@ ENGINE = MEMORY;
|
||||
--echo # Logging of <max_row> INSERTs into t0_template suppressed
|
||||
--disable_query_log
|
||||
let $num= `SELECT @max_row`;
|
||||
begin;
|
||||
while ($num)
|
||||
{
|
||||
eval INSERT INTO t0_template
|
||||
@ -160,6 +161,7 @@ f_charbig = '===$num===';
|
||||
|
||||
dec $num;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
# Auxiliary table used for comparisons of table definitions and file lists
|
||||
|
@ -32,11 +32,13 @@ delete from t2;
|
||||
let $count=$maxrows;
|
||||
--echo $maxrows inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values ($count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
drop table t2;
|
||||
|
@ -22,13 +22,16 @@ show create table t2;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
select hex(a) from t2;
|
||||
drop table t2;
|
||||
@ -48,13 +51,16 @@ show create table t3;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select hex(a) from t3;
|
||||
drop table t3;
|
||||
@ -73,14 +79,16 @@ show create table t4;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select hex(a) from t4;
|
||||
drop table t4;
|
||||
|
@ -74,11 +74,13 @@ show create table t3;
|
||||
let $count=255;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values ($count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select hex(a) from t3 where a=b'01010101';
|
||||
delete from t3 where a=b'01010101';
|
||||
@ -96,11 +98,13 @@ show create table t4;
|
||||
let $count=32;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values ($count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select hex(a) from t4 where a=b'00000001';
|
||||
delete from t4 where a=b'00000001';
|
||||
|
@ -21,13 +21,16 @@ show create table t2;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
select * from t2;
|
||||
drop table t2;
|
||||
@ -47,13 +50,16 @@ show create table t3;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select a from t3;
|
||||
drop table t3;
|
||||
@ -71,13 +77,16 @@ show create table t4;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select a from t4;
|
||||
drop table t4;
|
||||
|
@ -23,7 +23,8 @@ select * from t2;
|
||||
delete from t2;
|
||||
let $count=28;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values (19700101+$count-1);
|
||||
@ -31,7 +32,8 @@ eval insert into t2 values (19700201+$count-1);
|
||||
eval insert into t2 values (19700301+$count-1);
|
||||
dec $count;
|
||||
}
|
||||
#--enable_query_log
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
select * from t2;
|
||||
drop table t2;
|
||||
@ -47,11 +49,15 @@ partition quarter4 values less than (13)
|
||||
show create table t3;
|
||||
let $count=12;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values (adddate(19700101,interval $count-1 month));
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select * from t3;
|
||||
drop table t3;
|
||||
@ -67,11 +73,15 @@ partition quarter4 values in (10,11,12)
|
||||
show create table t4;
|
||||
let $count=12;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values (adddate(19700101,interval $count-1 month));
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select * from t4;
|
||||
drop table t4;
|
||||
|
@ -23,12 +23,15 @@ select * from t2;
|
||||
delete from t2;
|
||||
let $count=59;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values (19700101000000+$count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
select * from t2;
|
||||
drop table t2;
|
||||
@ -44,11 +47,15 @@ partition quarter4 values less than (13)
|
||||
show create table t3;
|
||||
let $count=12;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values (adddate(19700101000000,interval $count-1 month));
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select * from t3;
|
||||
drop table t3;
|
||||
@ -64,11 +71,15 @@ partition quarter4 values in (10,11,12)
|
||||
show create table t4;
|
||||
let $count=12;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values (adddate(19700101000000,interval $count-1 month));
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select * from t4;
|
||||
drop table t4;
|
||||
|
@ -24,6 +24,7 @@ delete from t2;
|
||||
let $count=$maxrows;
|
||||
--echo $count*3 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values ($count);
|
||||
@ -31,6 +32,7 @@ eval insert into t2 values ($count+0.333333333);
|
||||
eval insert into t2 values ($count+0.755555555);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
drop table t2;
|
||||
@ -53,6 +55,8 @@ partition pa10 values less than (10)
|
||||
show create table t3;
|
||||
let $count=9;
|
||||
--echo $count*3 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values ($count);
|
||||
@ -60,6 +64,7 @@ eval insert into t3 values ($count+0.333333333);
|
||||
eval insert into t3 values ($count+0.755555555);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
drop table t3;
|
||||
@ -75,6 +80,8 @@ partition pa10 values in (9,10)
|
||||
show create table t4;
|
||||
let $count=9;
|
||||
--echo $count*3 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values ($count);
|
||||
@ -82,6 +89,7 @@ eval insert into t4 values ($count+0.333333333);
|
||||
eval insert into t4 values ($count+0.755555555);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
drop table t4;
|
||||
|
@ -24,6 +24,7 @@ delete from t2;
|
||||
let $count=$maxrows;
|
||||
--echo $maxrows*3 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values ($count);
|
||||
@ -31,6 +32,7 @@ eval insert into t2 values ($count+0.33);
|
||||
eval insert into t2 values ($count+0.75);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
drop table t2;
|
||||
@ -52,6 +54,8 @@ partition pa10 values less than (10)
|
||||
show create table t3;
|
||||
let $count=9;
|
||||
--echo $count*3 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values ($count);
|
||||
@ -59,6 +63,8 @@ eval insert into t3 values ($count+0.33);
|
||||
eval insert into t3 values ($count+0.75);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select * from t3;
|
||||
drop table t3;
|
||||
@ -72,6 +78,8 @@ partition pa10 values in (7,8,9,10)
|
||||
show create table t4;
|
||||
let $count=9;
|
||||
--echo $count*3 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values ($count);
|
||||
@ -79,6 +87,8 @@ eval insert into t4 values ($count+0.33);
|
||||
eval insert into t4 values ($count+0.75);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select * from t4;
|
||||
drop table t4;
|
||||
|
@ -26,12 +26,15 @@ partition by key (a) partitions 27;
|
||||
show create table t2;
|
||||
let $letter=26;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($letter)
|
||||
{
|
||||
eval insert into t2 values (char(ascii('A')+$letter));
|
||||
dec $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
insert into t2 values ('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8'),('9'),('0');
|
||||
select count(*) from t2;
|
||||
select * from t2;
|
||||
@ -55,12 +58,15 @@ partition pa36 values less than (37)
|
||||
show create table t3;
|
||||
let $letter=36;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($letter)
|
||||
{
|
||||
#eval insert into t3 values ($letter);
|
||||
dec $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select * from t3;
|
||||
drop table t3;
|
||||
|
@ -28,6 +28,7 @@ delete from t2;
|
||||
let $count=$maxrows;
|
||||
--echo $maxrows*3 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values ($count);
|
||||
@ -35,6 +36,7 @@ eval insert into t2 values ($count+0.33);
|
||||
eval insert into t2 values ($count+0.75);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
drop table t2;
|
||||
@ -55,6 +57,8 @@ partition pa10 values less than (10)
|
||||
show create table t3;
|
||||
let $count=9;
|
||||
--echo $count*3 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values ($count);
|
||||
@ -62,6 +66,8 @@ eval insert into t3 values ($count+0.33);
|
||||
eval insert into t3 values ($count+0.75);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select * from t3;
|
||||
drop table t3;
|
||||
@ -75,6 +81,8 @@ partition pa10 values in (7,8,9,10)
|
||||
show create table t4;
|
||||
let $count=9;
|
||||
--echo $count*3 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values ($count);
|
||||
@ -82,6 +90,8 @@ eval insert into t4 values ($count+0.33);
|
||||
eval insert into t4 values ($count+0.75);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select * from t4;
|
||||
drop table t4;
|
||||
|
@ -28,11 +28,13 @@ delete from t2;
|
||||
let $count=$maxrows;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values ($count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
drop table t2;
|
||||
|
@ -28,11 +28,13 @@ delete from t2;
|
||||
let $count=$maxrows;
|
||||
--echo $maxrows inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values ($count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
drop table t2;
|
||||
|
@ -28,11 +28,13 @@ delete from t2;
|
||||
let $count=$maxrows;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values ($count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
drop table t2;
|
||||
|
@ -23,12 +23,15 @@ select * from t2;
|
||||
delete from t2;
|
||||
let $count=59;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values (000100+$count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
select * from t2;
|
||||
drop table t2;
|
||||
@ -44,11 +47,15 @@ partition quarter4 values less than (61)
|
||||
show create table t3;
|
||||
let $count=59;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values (100000+$count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select * from t3;
|
||||
drop table t3;
|
||||
@ -64,11 +71,15 @@ partition quarter4 values in (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60)
|
||||
show create table t4;
|
||||
let $count=59;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values (100000+$count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select * from t4;
|
||||
drop table t4;
|
||||
|
@ -23,12 +23,15 @@ select * from t2;
|
||||
delete from t2;
|
||||
let $count=59;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values (19710101000000+$count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
select * from t2;
|
||||
drop table t2;
|
||||
@ -44,11 +47,15 @@ partition quarter4 values less than (13)
|
||||
show create table t3;
|
||||
let $count=12;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values (date_add('1970-01-01 00:00:00',interval $count-1 month));
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select * from t3;
|
||||
drop table t3;
|
||||
@ -64,11 +71,15 @@ partition quarter4 values in (10,11,12)
|
||||
show create table t4;
|
||||
let $count=12;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values (date_add('1970-01-01 00:00:00',interval $count-1 month));
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select * from t4;
|
||||
drop table t4;
|
||||
|
@ -28,11 +28,13 @@ delete from t2;
|
||||
let $count=255;
|
||||
--echo 255 inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values ($count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
drop table t2;
|
||||
|
@ -21,13 +21,16 @@ show create table t2;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values (repeat(char(ascii('a')+$letter),$count*$count));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
select * from t2;
|
||||
drop table t2;
|
||||
@ -47,13 +50,16 @@ show create table t3;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select hex(a) from t3;
|
||||
drop table t3;
|
||||
@ -71,13 +77,16 @@ show create table t4;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select hex(a) from t4;
|
||||
drop table t4;
|
||||
|
@ -21,13 +21,16 @@ show create table t2;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values (repeat(char(ascii('a')+$letter),$count*$count));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
select * from t2;
|
||||
drop table t2;
|
||||
@ -46,13 +49,16 @@ show create table t3;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t3 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t3;
|
||||
select * from t3;
|
||||
drop table t3;
|
||||
@ -70,13 +76,16 @@ show create table t4;
|
||||
let $count=26;
|
||||
let $letter=0;
|
||||
--echo $count inserts;
|
||||
#--disable_query_log
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t4 values (repeat(char(ascii('a')+$letter),$count+54));
|
||||
dec $count;
|
||||
inc $letter;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t4;
|
||||
select * from t4;
|
||||
drop table t4;
|
||||
|
@ -24,11 +24,13 @@ delete from t2;
|
||||
let $count=255;
|
||||
--echo $count inserts;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval insert into t2 values (1901+$count);
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(*) from t2;
|
||||
select * from t2;
|
||||
|
Binary file not shown.
Binary file not shown.
@ -60,65 +60,6 @@ a
|
||||
2020-12-31 10:11:12
|
||||
delete from t2;
|
||||
59 inserts;
|
||||
insert into t2 values (19710101000000+59);
|
||||
insert into t2 values (19710101000000+58);
|
||||
insert into t2 values (19710101000000+57);
|
||||
insert into t2 values (19710101000000+56);
|
||||
insert into t2 values (19710101000000+55);
|
||||
insert into t2 values (19710101000000+54);
|
||||
insert into t2 values (19710101000000+53);
|
||||
insert into t2 values (19710101000000+52);
|
||||
insert into t2 values (19710101000000+51);
|
||||
insert into t2 values (19710101000000+50);
|
||||
insert into t2 values (19710101000000+49);
|
||||
insert into t2 values (19710101000000+48);
|
||||
insert into t2 values (19710101000000+47);
|
||||
insert into t2 values (19710101000000+46);
|
||||
insert into t2 values (19710101000000+45);
|
||||
insert into t2 values (19710101000000+44);
|
||||
insert into t2 values (19710101000000+43);
|
||||
insert into t2 values (19710101000000+42);
|
||||
insert into t2 values (19710101000000+41);
|
||||
insert into t2 values (19710101000000+40);
|
||||
insert into t2 values (19710101000000+39);
|
||||
insert into t2 values (19710101000000+38);
|
||||
insert into t2 values (19710101000000+37);
|
||||
insert into t2 values (19710101000000+36);
|
||||
insert into t2 values (19710101000000+35);
|
||||
insert into t2 values (19710101000000+34);
|
||||
insert into t2 values (19710101000000+33);
|
||||
insert into t2 values (19710101000000+32);
|
||||
insert into t2 values (19710101000000+31);
|
||||
insert into t2 values (19710101000000+30);
|
||||
insert into t2 values (19710101000000+29);
|
||||
insert into t2 values (19710101000000+28);
|
||||
insert into t2 values (19710101000000+27);
|
||||
insert into t2 values (19710101000000+26);
|
||||
insert into t2 values (19710101000000+25);
|
||||
insert into t2 values (19710101000000+24);
|
||||
insert into t2 values (19710101000000+23);
|
||||
insert into t2 values (19710101000000+22);
|
||||
insert into t2 values (19710101000000+21);
|
||||
insert into t2 values (19710101000000+20);
|
||||
insert into t2 values (19710101000000+19);
|
||||
insert into t2 values (19710101000000+18);
|
||||
insert into t2 values (19710101000000+17);
|
||||
insert into t2 values (19710101000000+16);
|
||||
insert into t2 values (19710101000000+15);
|
||||
insert into t2 values (19710101000000+14);
|
||||
insert into t2 values (19710101000000+13);
|
||||
insert into t2 values (19710101000000+12);
|
||||
insert into t2 values (19710101000000+11);
|
||||
insert into t2 values (19710101000000+10);
|
||||
insert into t2 values (19710101000000+9);
|
||||
insert into t2 values (19710101000000+8);
|
||||
insert into t2 values (19710101000000+7);
|
||||
insert into t2 values (19710101000000+6);
|
||||
insert into t2 values (19710101000000+5);
|
||||
insert into t2 values (19710101000000+4);
|
||||
insert into t2 values (19710101000000+3);
|
||||
insert into t2 values (19710101000000+2);
|
||||
insert into t2 values (19710101000000+1);
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
59
|
||||
@ -206,18 +147,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB,
|
||||
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
|
||||
12 inserts;
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 10-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 9-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 8-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 7-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 6-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 5-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 4-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 3-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 2-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 1-1 month));
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
select count(*) from t3;
|
||||
@ -260,18 +189,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB,
|
||||
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
|
||||
12 inserts;
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 10-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 9-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 8-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 7-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 6-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 5-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 4-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 3-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 2-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 1-1 month));
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
select count(*) from t4;
|
||||
@ -354,90 +271,6 @@ a
|
||||
2020-12-31
|
||||
delete from t2;
|
||||
28 inserts;
|
||||
insert into t2 values (19700101+28-1);
|
||||
insert into t2 values (19700201+28-1);
|
||||
insert into t2 values (19700301+28-1);
|
||||
insert into t2 values (19700101+27-1);
|
||||
insert into t2 values (19700201+27-1);
|
||||
insert into t2 values (19700301+27-1);
|
||||
insert into t2 values (19700101+26-1);
|
||||
insert into t2 values (19700201+26-1);
|
||||
insert into t2 values (19700301+26-1);
|
||||
insert into t2 values (19700101+25-1);
|
||||
insert into t2 values (19700201+25-1);
|
||||
insert into t2 values (19700301+25-1);
|
||||
insert into t2 values (19700101+24-1);
|
||||
insert into t2 values (19700201+24-1);
|
||||
insert into t2 values (19700301+24-1);
|
||||
insert into t2 values (19700101+23-1);
|
||||
insert into t2 values (19700201+23-1);
|
||||
insert into t2 values (19700301+23-1);
|
||||
insert into t2 values (19700101+22-1);
|
||||
insert into t2 values (19700201+22-1);
|
||||
insert into t2 values (19700301+22-1);
|
||||
insert into t2 values (19700101+21-1);
|
||||
insert into t2 values (19700201+21-1);
|
||||
insert into t2 values (19700301+21-1);
|
||||
insert into t2 values (19700101+20-1);
|
||||
insert into t2 values (19700201+20-1);
|
||||
insert into t2 values (19700301+20-1);
|
||||
insert into t2 values (19700101+19-1);
|
||||
insert into t2 values (19700201+19-1);
|
||||
insert into t2 values (19700301+19-1);
|
||||
insert into t2 values (19700101+18-1);
|
||||
insert into t2 values (19700201+18-1);
|
||||
insert into t2 values (19700301+18-1);
|
||||
insert into t2 values (19700101+17-1);
|
||||
insert into t2 values (19700201+17-1);
|
||||
insert into t2 values (19700301+17-1);
|
||||
insert into t2 values (19700101+16-1);
|
||||
insert into t2 values (19700201+16-1);
|
||||
insert into t2 values (19700301+16-1);
|
||||
insert into t2 values (19700101+15-1);
|
||||
insert into t2 values (19700201+15-1);
|
||||
insert into t2 values (19700301+15-1);
|
||||
insert into t2 values (19700101+14-1);
|
||||
insert into t2 values (19700201+14-1);
|
||||
insert into t2 values (19700301+14-1);
|
||||
insert into t2 values (19700101+13-1);
|
||||
insert into t2 values (19700201+13-1);
|
||||
insert into t2 values (19700301+13-1);
|
||||
insert into t2 values (19700101+12-1);
|
||||
insert into t2 values (19700201+12-1);
|
||||
insert into t2 values (19700301+12-1);
|
||||
insert into t2 values (19700101+11-1);
|
||||
insert into t2 values (19700201+11-1);
|
||||
insert into t2 values (19700301+11-1);
|
||||
insert into t2 values (19700101+10-1);
|
||||
insert into t2 values (19700201+10-1);
|
||||
insert into t2 values (19700301+10-1);
|
||||
insert into t2 values (19700101+9-1);
|
||||
insert into t2 values (19700201+9-1);
|
||||
insert into t2 values (19700301+9-1);
|
||||
insert into t2 values (19700101+8-1);
|
||||
insert into t2 values (19700201+8-1);
|
||||
insert into t2 values (19700301+8-1);
|
||||
insert into t2 values (19700101+7-1);
|
||||
insert into t2 values (19700201+7-1);
|
||||
insert into t2 values (19700301+7-1);
|
||||
insert into t2 values (19700101+6-1);
|
||||
insert into t2 values (19700201+6-1);
|
||||
insert into t2 values (19700301+6-1);
|
||||
insert into t2 values (19700101+5-1);
|
||||
insert into t2 values (19700201+5-1);
|
||||
insert into t2 values (19700301+5-1);
|
||||
insert into t2 values (19700101+4-1);
|
||||
insert into t2 values (19700201+4-1);
|
||||
insert into t2 values (19700301+4-1);
|
||||
insert into t2 values (19700101+3-1);
|
||||
insert into t2 values (19700201+3-1);
|
||||
insert into t2 values (19700301+3-1);
|
||||
insert into t2 values (19700101+2-1);
|
||||
insert into t2 values (19700201+2-1);
|
||||
insert into t2 values (19700301+2-1);
|
||||
insert into t2 values (19700101+1-1);
|
||||
insert into t2 values (19700201+1-1);
|
||||
insert into t2 values (19700301+1-1);
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
84
|
||||
@ -550,18 +383,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB,
|
||||
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
|
||||
12 inserts;
|
||||
insert into t3 values (adddate(19700101,interval 12-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 11-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 10-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 9-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 8-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 7-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 6-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 5-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 4-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 3-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 2-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 1-1 month));
|
||||
select count(*) from t3;
|
||||
count(*)
|
||||
12
|
||||
@ -602,18 +423,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB,
|
||||
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
|
||||
12 inserts;
|
||||
insert into t4 values (adddate(19700101,interval 12-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 11-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 10-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 9-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 8-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 7-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 6-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 5-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 4-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 3-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 2-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 1-1 month));
|
||||
select count(*) from t4;
|
||||
count(*)
|
||||
12
|
||||
@ -694,65 +503,6 @@ a
|
||||
14:15:16
|
||||
delete from t2;
|
||||
59 inserts;
|
||||
insert into t2 values (000100+59);
|
||||
insert into t2 values (000100+58);
|
||||
insert into t2 values (000100+57);
|
||||
insert into t2 values (000100+56);
|
||||
insert into t2 values (000100+55);
|
||||
insert into t2 values (000100+54);
|
||||
insert into t2 values (000100+53);
|
||||
insert into t2 values (000100+52);
|
||||
insert into t2 values (000100+51);
|
||||
insert into t2 values (000100+50);
|
||||
insert into t2 values (000100+49);
|
||||
insert into t2 values (000100+48);
|
||||
insert into t2 values (000100+47);
|
||||
insert into t2 values (000100+46);
|
||||
insert into t2 values (000100+45);
|
||||
insert into t2 values (000100+44);
|
||||
insert into t2 values (000100+43);
|
||||
insert into t2 values (000100+42);
|
||||
insert into t2 values (000100+41);
|
||||
insert into t2 values (000100+40);
|
||||
insert into t2 values (000100+39);
|
||||
insert into t2 values (000100+38);
|
||||
insert into t2 values (000100+37);
|
||||
insert into t2 values (000100+36);
|
||||
insert into t2 values (000100+35);
|
||||
insert into t2 values (000100+34);
|
||||
insert into t2 values (000100+33);
|
||||
insert into t2 values (000100+32);
|
||||
insert into t2 values (000100+31);
|
||||
insert into t2 values (000100+30);
|
||||
insert into t2 values (000100+29);
|
||||
insert into t2 values (000100+28);
|
||||
insert into t2 values (000100+27);
|
||||
insert into t2 values (000100+26);
|
||||
insert into t2 values (000100+25);
|
||||
insert into t2 values (000100+24);
|
||||
insert into t2 values (000100+23);
|
||||
insert into t2 values (000100+22);
|
||||
insert into t2 values (000100+21);
|
||||
insert into t2 values (000100+20);
|
||||
insert into t2 values (000100+19);
|
||||
insert into t2 values (000100+18);
|
||||
insert into t2 values (000100+17);
|
||||
insert into t2 values (000100+16);
|
||||
insert into t2 values (000100+15);
|
||||
insert into t2 values (000100+14);
|
||||
insert into t2 values (000100+13);
|
||||
insert into t2 values (000100+12);
|
||||
insert into t2 values (000100+11);
|
||||
insert into t2 values (000100+10);
|
||||
insert into t2 values (000100+9);
|
||||
insert into t2 values (000100+8);
|
||||
insert into t2 values (000100+7);
|
||||
insert into t2 values (000100+6);
|
||||
insert into t2 values (000100+5);
|
||||
insert into t2 values (000100+4);
|
||||
insert into t2 values (000100+3);
|
||||
insert into t2 values (000100+2);
|
||||
insert into t2 values (000100+1);
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
59
|
||||
@ -840,65 +590,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES LESS THAN (46) ENGINE = InnoDB,
|
||||
PARTITION quarter4 VALUES LESS THAN (61) ENGINE = InnoDB) */
|
||||
59 inserts;
|
||||
insert into t3 values (100000+59);
|
||||
insert into t3 values (100000+58);
|
||||
insert into t3 values (100000+57);
|
||||
insert into t3 values (100000+56);
|
||||
insert into t3 values (100000+55);
|
||||
insert into t3 values (100000+54);
|
||||
insert into t3 values (100000+53);
|
||||
insert into t3 values (100000+52);
|
||||
insert into t3 values (100000+51);
|
||||
insert into t3 values (100000+50);
|
||||
insert into t3 values (100000+49);
|
||||
insert into t3 values (100000+48);
|
||||
insert into t3 values (100000+47);
|
||||
insert into t3 values (100000+46);
|
||||
insert into t3 values (100000+45);
|
||||
insert into t3 values (100000+44);
|
||||
insert into t3 values (100000+43);
|
||||
insert into t3 values (100000+42);
|
||||
insert into t3 values (100000+41);
|
||||
insert into t3 values (100000+40);
|
||||
insert into t3 values (100000+39);
|
||||
insert into t3 values (100000+38);
|
||||
insert into t3 values (100000+37);
|
||||
insert into t3 values (100000+36);
|
||||
insert into t3 values (100000+35);
|
||||
insert into t3 values (100000+34);
|
||||
insert into t3 values (100000+33);
|
||||
insert into t3 values (100000+32);
|
||||
insert into t3 values (100000+31);
|
||||
insert into t3 values (100000+30);
|
||||
insert into t3 values (100000+29);
|
||||
insert into t3 values (100000+28);
|
||||
insert into t3 values (100000+27);
|
||||
insert into t3 values (100000+26);
|
||||
insert into t3 values (100000+25);
|
||||
insert into t3 values (100000+24);
|
||||
insert into t3 values (100000+23);
|
||||
insert into t3 values (100000+22);
|
||||
insert into t3 values (100000+21);
|
||||
insert into t3 values (100000+20);
|
||||
insert into t3 values (100000+19);
|
||||
insert into t3 values (100000+18);
|
||||
insert into t3 values (100000+17);
|
||||
insert into t3 values (100000+16);
|
||||
insert into t3 values (100000+15);
|
||||
insert into t3 values (100000+14);
|
||||
insert into t3 values (100000+13);
|
||||
insert into t3 values (100000+12);
|
||||
insert into t3 values (100000+11);
|
||||
insert into t3 values (100000+10);
|
||||
insert into t3 values (100000+9);
|
||||
insert into t3 values (100000+8);
|
||||
insert into t3 values (100000+7);
|
||||
insert into t3 values (100000+6);
|
||||
insert into t3 values (100000+5);
|
||||
insert into t3 values (100000+4);
|
||||
insert into t3 values (100000+3);
|
||||
insert into t3 values (100000+2);
|
||||
insert into t3 values (100000+1);
|
||||
select count(*) from t3;
|
||||
count(*)
|
||||
59
|
||||
@ -986,65 +677,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = InnoDB,
|
||||
PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = InnoDB) */
|
||||
59 inserts;
|
||||
insert into t4 values (100000+59);
|
||||
insert into t4 values (100000+58);
|
||||
insert into t4 values (100000+57);
|
||||
insert into t4 values (100000+56);
|
||||
insert into t4 values (100000+55);
|
||||
insert into t4 values (100000+54);
|
||||
insert into t4 values (100000+53);
|
||||
insert into t4 values (100000+52);
|
||||
insert into t4 values (100000+51);
|
||||
insert into t4 values (100000+50);
|
||||
insert into t4 values (100000+49);
|
||||
insert into t4 values (100000+48);
|
||||
insert into t4 values (100000+47);
|
||||
insert into t4 values (100000+46);
|
||||
insert into t4 values (100000+45);
|
||||
insert into t4 values (100000+44);
|
||||
insert into t4 values (100000+43);
|
||||
insert into t4 values (100000+42);
|
||||
insert into t4 values (100000+41);
|
||||
insert into t4 values (100000+40);
|
||||
insert into t4 values (100000+39);
|
||||
insert into t4 values (100000+38);
|
||||
insert into t4 values (100000+37);
|
||||
insert into t4 values (100000+36);
|
||||
insert into t4 values (100000+35);
|
||||
insert into t4 values (100000+34);
|
||||
insert into t4 values (100000+33);
|
||||
insert into t4 values (100000+32);
|
||||
insert into t4 values (100000+31);
|
||||
insert into t4 values (100000+30);
|
||||
insert into t4 values (100000+29);
|
||||
insert into t4 values (100000+28);
|
||||
insert into t4 values (100000+27);
|
||||
insert into t4 values (100000+26);
|
||||
insert into t4 values (100000+25);
|
||||
insert into t4 values (100000+24);
|
||||
insert into t4 values (100000+23);
|
||||
insert into t4 values (100000+22);
|
||||
insert into t4 values (100000+21);
|
||||
insert into t4 values (100000+20);
|
||||
insert into t4 values (100000+19);
|
||||
insert into t4 values (100000+18);
|
||||
insert into t4 values (100000+17);
|
||||
insert into t4 values (100000+16);
|
||||
insert into t4 values (100000+15);
|
||||
insert into t4 values (100000+14);
|
||||
insert into t4 values (100000+13);
|
||||
insert into t4 values (100000+12);
|
||||
insert into t4 values (100000+11);
|
||||
insert into t4 values (100000+10);
|
||||
insert into t4 values (100000+9);
|
||||
insert into t4 values (100000+8);
|
||||
insert into t4 values (100000+7);
|
||||
insert into t4 values (100000+6);
|
||||
insert into t4 values (100000+5);
|
||||
insert into t4 values (100000+4);
|
||||
insert into t4 values (100000+3);
|
||||
insert into t4 values (100000+2);
|
||||
insert into t4 values (100000+1);
|
||||
select count(*) from t4;
|
||||
count(*)
|
||||
59
|
||||
@ -1172,65 +804,6 @@ a
|
||||
2020-12-31 10:11:12
|
||||
delete from t2;
|
||||
59 inserts;
|
||||
insert into t2 values (19700101000000+59);
|
||||
insert into t2 values (19700101000000+58);
|
||||
insert into t2 values (19700101000000+57);
|
||||
insert into t2 values (19700101000000+56);
|
||||
insert into t2 values (19700101000000+55);
|
||||
insert into t2 values (19700101000000+54);
|
||||
insert into t2 values (19700101000000+53);
|
||||
insert into t2 values (19700101000000+52);
|
||||
insert into t2 values (19700101000000+51);
|
||||
insert into t2 values (19700101000000+50);
|
||||
insert into t2 values (19700101000000+49);
|
||||
insert into t2 values (19700101000000+48);
|
||||
insert into t2 values (19700101000000+47);
|
||||
insert into t2 values (19700101000000+46);
|
||||
insert into t2 values (19700101000000+45);
|
||||
insert into t2 values (19700101000000+44);
|
||||
insert into t2 values (19700101000000+43);
|
||||
insert into t2 values (19700101000000+42);
|
||||
insert into t2 values (19700101000000+41);
|
||||
insert into t2 values (19700101000000+40);
|
||||
insert into t2 values (19700101000000+39);
|
||||
insert into t2 values (19700101000000+38);
|
||||
insert into t2 values (19700101000000+37);
|
||||
insert into t2 values (19700101000000+36);
|
||||
insert into t2 values (19700101000000+35);
|
||||
insert into t2 values (19700101000000+34);
|
||||
insert into t2 values (19700101000000+33);
|
||||
insert into t2 values (19700101000000+32);
|
||||
insert into t2 values (19700101000000+31);
|
||||
insert into t2 values (19700101000000+30);
|
||||
insert into t2 values (19700101000000+29);
|
||||
insert into t2 values (19700101000000+28);
|
||||
insert into t2 values (19700101000000+27);
|
||||
insert into t2 values (19700101000000+26);
|
||||
insert into t2 values (19700101000000+25);
|
||||
insert into t2 values (19700101000000+24);
|
||||
insert into t2 values (19700101000000+23);
|
||||
insert into t2 values (19700101000000+22);
|
||||
insert into t2 values (19700101000000+21);
|
||||
insert into t2 values (19700101000000+20);
|
||||
insert into t2 values (19700101000000+19);
|
||||
insert into t2 values (19700101000000+18);
|
||||
insert into t2 values (19700101000000+17);
|
||||
insert into t2 values (19700101000000+16);
|
||||
insert into t2 values (19700101000000+15);
|
||||
insert into t2 values (19700101000000+14);
|
||||
insert into t2 values (19700101000000+13);
|
||||
insert into t2 values (19700101000000+12);
|
||||
insert into t2 values (19700101000000+11);
|
||||
insert into t2 values (19700101000000+10);
|
||||
insert into t2 values (19700101000000+9);
|
||||
insert into t2 values (19700101000000+8);
|
||||
insert into t2 values (19700101000000+7);
|
||||
insert into t2 values (19700101000000+6);
|
||||
insert into t2 values (19700101000000+5);
|
||||
insert into t2 values (19700101000000+4);
|
||||
insert into t2 values (19700101000000+3);
|
||||
insert into t2 values (19700101000000+2);
|
||||
insert into t2 values (19700101000000+1);
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
59
|
||||
@ -1318,18 +891,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = InnoDB,
|
||||
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = InnoDB) */
|
||||
12 inserts;
|
||||
insert into t3 values (adddate(19700101000000,interval 12-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 11-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 10-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 9-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 8-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 7-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 6-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 5-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 4-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 3-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 2-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 1-1 month));
|
||||
select count(*) from t3;
|
||||
count(*)
|
||||
12
|
||||
@ -1370,18 +931,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = InnoDB,
|
||||
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = InnoDB) */
|
||||
12 inserts;
|
||||
insert into t4 values (adddate(19700101000000,interval 12-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 11-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 10-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 9-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 8-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 7-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 6-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 5-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 4-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 3-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 2-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 1-1 month));
|
||||
select count(*) from t4;
|
||||
count(*)
|
||||
12
|
||||
|
@ -60,65 +60,6 @@ a
|
||||
2020-12-31 10:11:12
|
||||
delete from t2;
|
||||
59 inserts;
|
||||
insert into t2 values (19710101000000+59);
|
||||
insert into t2 values (19710101000000+58);
|
||||
insert into t2 values (19710101000000+57);
|
||||
insert into t2 values (19710101000000+56);
|
||||
insert into t2 values (19710101000000+55);
|
||||
insert into t2 values (19710101000000+54);
|
||||
insert into t2 values (19710101000000+53);
|
||||
insert into t2 values (19710101000000+52);
|
||||
insert into t2 values (19710101000000+51);
|
||||
insert into t2 values (19710101000000+50);
|
||||
insert into t2 values (19710101000000+49);
|
||||
insert into t2 values (19710101000000+48);
|
||||
insert into t2 values (19710101000000+47);
|
||||
insert into t2 values (19710101000000+46);
|
||||
insert into t2 values (19710101000000+45);
|
||||
insert into t2 values (19710101000000+44);
|
||||
insert into t2 values (19710101000000+43);
|
||||
insert into t2 values (19710101000000+42);
|
||||
insert into t2 values (19710101000000+41);
|
||||
insert into t2 values (19710101000000+40);
|
||||
insert into t2 values (19710101000000+39);
|
||||
insert into t2 values (19710101000000+38);
|
||||
insert into t2 values (19710101000000+37);
|
||||
insert into t2 values (19710101000000+36);
|
||||
insert into t2 values (19710101000000+35);
|
||||
insert into t2 values (19710101000000+34);
|
||||
insert into t2 values (19710101000000+33);
|
||||
insert into t2 values (19710101000000+32);
|
||||
insert into t2 values (19710101000000+31);
|
||||
insert into t2 values (19710101000000+30);
|
||||
insert into t2 values (19710101000000+29);
|
||||
insert into t2 values (19710101000000+28);
|
||||
insert into t2 values (19710101000000+27);
|
||||
insert into t2 values (19710101000000+26);
|
||||
insert into t2 values (19710101000000+25);
|
||||
insert into t2 values (19710101000000+24);
|
||||
insert into t2 values (19710101000000+23);
|
||||
insert into t2 values (19710101000000+22);
|
||||
insert into t2 values (19710101000000+21);
|
||||
insert into t2 values (19710101000000+20);
|
||||
insert into t2 values (19710101000000+19);
|
||||
insert into t2 values (19710101000000+18);
|
||||
insert into t2 values (19710101000000+17);
|
||||
insert into t2 values (19710101000000+16);
|
||||
insert into t2 values (19710101000000+15);
|
||||
insert into t2 values (19710101000000+14);
|
||||
insert into t2 values (19710101000000+13);
|
||||
insert into t2 values (19710101000000+12);
|
||||
insert into t2 values (19710101000000+11);
|
||||
insert into t2 values (19710101000000+10);
|
||||
insert into t2 values (19710101000000+9);
|
||||
insert into t2 values (19710101000000+8);
|
||||
insert into t2 values (19710101000000+7);
|
||||
insert into t2 values (19710101000000+6);
|
||||
insert into t2 values (19710101000000+5);
|
||||
insert into t2 values (19710101000000+4);
|
||||
insert into t2 values (19710101000000+3);
|
||||
insert into t2 values (19710101000000+2);
|
||||
insert into t2 values (19710101000000+1);
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
59
|
||||
@ -206,18 +147,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM,
|
||||
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
|
||||
12 inserts;
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 10-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 9-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 8-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 7-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 6-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 5-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 4-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 3-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 2-1 month));
|
||||
insert into t3 values (date_add('1970-01-01 00:00:00',interval 1-1 month));
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
select count(*) from t3;
|
||||
@ -260,18 +189,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM,
|
||||
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
|
||||
12 inserts;
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 12-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 11-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 10-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 9-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 8-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 7-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 6-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 5-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 4-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 3-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 2-1 month));
|
||||
insert into t4 values (date_add('1970-01-01 00:00:00',interval 1-1 month));
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
select count(*) from t4;
|
||||
@ -354,90 +271,6 @@ a
|
||||
2020-12-31
|
||||
delete from t2;
|
||||
28 inserts;
|
||||
insert into t2 values (19700101+28-1);
|
||||
insert into t2 values (19700201+28-1);
|
||||
insert into t2 values (19700301+28-1);
|
||||
insert into t2 values (19700101+27-1);
|
||||
insert into t2 values (19700201+27-1);
|
||||
insert into t2 values (19700301+27-1);
|
||||
insert into t2 values (19700101+26-1);
|
||||
insert into t2 values (19700201+26-1);
|
||||
insert into t2 values (19700301+26-1);
|
||||
insert into t2 values (19700101+25-1);
|
||||
insert into t2 values (19700201+25-1);
|
||||
insert into t2 values (19700301+25-1);
|
||||
insert into t2 values (19700101+24-1);
|
||||
insert into t2 values (19700201+24-1);
|
||||
insert into t2 values (19700301+24-1);
|
||||
insert into t2 values (19700101+23-1);
|
||||
insert into t2 values (19700201+23-1);
|
||||
insert into t2 values (19700301+23-1);
|
||||
insert into t2 values (19700101+22-1);
|
||||
insert into t2 values (19700201+22-1);
|
||||
insert into t2 values (19700301+22-1);
|
||||
insert into t2 values (19700101+21-1);
|
||||
insert into t2 values (19700201+21-1);
|
||||
insert into t2 values (19700301+21-1);
|
||||
insert into t2 values (19700101+20-1);
|
||||
insert into t2 values (19700201+20-1);
|
||||
insert into t2 values (19700301+20-1);
|
||||
insert into t2 values (19700101+19-1);
|
||||
insert into t2 values (19700201+19-1);
|
||||
insert into t2 values (19700301+19-1);
|
||||
insert into t2 values (19700101+18-1);
|
||||
insert into t2 values (19700201+18-1);
|
||||
insert into t2 values (19700301+18-1);
|
||||
insert into t2 values (19700101+17-1);
|
||||
insert into t2 values (19700201+17-1);
|
||||
insert into t2 values (19700301+17-1);
|
||||
insert into t2 values (19700101+16-1);
|
||||
insert into t2 values (19700201+16-1);
|
||||
insert into t2 values (19700301+16-1);
|
||||
insert into t2 values (19700101+15-1);
|
||||
insert into t2 values (19700201+15-1);
|
||||
insert into t2 values (19700301+15-1);
|
||||
insert into t2 values (19700101+14-1);
|
||||
insert into t2 values (19700201+14-1);
|
||||
insert into t2 values (19700301+14-1);
|
||||
insert into t2 values (19700101+13-1);
|
||||
insert into t2 values (19700201+13-1);
|
||||
insert into t2 values (19700301+13-1);
|
||||
insert into t2 values (19700101+12-1);
|
||||
insert into t2 values (19700201+12-1);
|
||||
insert into t2 values (19700301+12-1);
|
||||
insert into t2 values (19700101+11-1);
|
||||
insert into t2 values (19700201+11-1);
|
||||
insert into t2 values (19700301+11-1);
|
||||
insert into t2 values (19700101+10-1);
|
||||
insert into t2 values (19700201+10-1);
|
||||
insert into t2 values (19700301+10-1);
|
||||
insert into t2 values (19700101+9-1);
|
||||
insert into t2 values (19700201+9-1);
|
||||
insert into t2 values (19700301+9-1);
|
||||
insert into t2 values (19700101+8-1);
|
||||
insert into t2 values (19700201+8-1);
|
||||
insert into t2 values (19700301+8-1);
|
||||
insert into t2 values (19700101+7-1);
|
||||
insert into t2 values (19700201+7-1);
|
||||
insert into t2 values (19700301+7-1);
|
||||
insert into t2 values (19700101+6-1);
|
||||
insert into t2 values (19700201+6-1);
|
||||
insert into t2 values (19700301+6-1);
|
||||
insert into t2 values (19700101+5-1);
|
||||
insert into t2 values (19700201+5-1);
|
||||
insert into t2 values (19700301+5-1);
|
||||
insert into t2 values (19700101+4-1);
|
||||
insert into t2 values (19700201+4-1);
|
||||
insert into t2 values (19700301+4-1);
|
||||
insert into t2 values (19700101+3-1);
|
||||
insert into t2 values (19700201+3-1);
|
||||
insert into t2 values (19700301+3-1);
|
||||
insert into t2 values (19700101+2-1);
|
||||
insert into t2 values (19700201+2-1);
|
||||
insert into t2 values (19700301+2-1);
|
||||
insert into t2 values (19700101+1-1);
|
||||
insert into t2 values (19700201+1-1);
|
||||
insert into t2 values (19700301+1-1);
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
84
|
||||
@ -550,18 +383,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM,
|
||||
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
|
||||
12 inserts;
|
||||
insert into t3 values (adddate(19700101,interval 12-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 11-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 10-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 9-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 8-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 7-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 6-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 5-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 4-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 3-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 2-1 month));
|
||||
insert into t3 values (adddate(19700101,interval 1-1 month));
|
||||
select count(*) from t3;
|
||||
count(*)
|
||||
12
|
||||
@ -602,18 +423,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM,
|
||||
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
|
||||
12 inserts;
|
||||
insert into t4 values (adddate(19700101,interval 12-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 11-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 10-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 9-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 8-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 7-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 6-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 5-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 4-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 3-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 2-1 month));
|
||||
insert into t4 values (adddate(19700101,interval 1-1 month));
|
||||
select count(*) from t4;
|
||||
count(*)
|
||||
12
|
||||
@ -694,65 +503,6 @@ a
|
||||
14:15:16
|
||||
delete from t2;
|
||||
59 inserts;
|
||||
insert into t2 values (000100+59);
|
||||
insert into t2 values (000100+58);
|
||||
insert into t2 values (000100+57);
|
||||
insert into t2 values (000100+56);
|
||||
insert into t2 values (000100+55);
|
||||
insert into t2 values (000100+54);
|
||||
insert into t2 values (000100+53);
|
||||
insert into t2 values (000100+52);
|
||||
insert into t2 values (000100+51);
|
||||
insert into t2 values (000100+50);
|
||||
insert into t2 values (000100+49);
|
||||
insert into t2 values (000100+48);
|
||||
insert into t2 values (000100+47);
|
||||
insert into t2 values (000100+46);
|
||||
insert into t2 values (000100+45);
|
||||
insert into t2 values (000100+44);
|
||||
insert into t2 values (000100+43);
|
||||
insert into t2 values (000100+42);
|
||||
insert into t2 values (000100+41);
|
||||
insert into t2 values (000100+40);
|
||||
insert into t2 values (000100+39);
|
||||
insert into t2 values (000100+38);
|
||||
insert into t2 values (000100+37);
|
||||
insert into t2 values (000100+36);
|
||||
insert into t2 values (000100+35);
|
||||
insert into t2 values (000100+34);
|
||||
insert into t2 values (000100+33);
|
||||
insert into t2 values (000100+32);
|
||||
insert into t2 values (000100+31);
|
||||
insert into t2 values (000100+30);
|
||||
insert into t2 values (000100+29);
|
||||
insert into t2 values (000100+28);
|
||||
insert into t2 values (000100+27);
|
||||
insert into t2 values (000100+26);
|
||||
insert into t2 values (000100+25);
|
||||
insert into t2 values (000100+24);
|
||||
insert into t2 values (000100+23);
|
||||
insert into t2 values (000100+22);
|
||||
insert into t2 values (000100+21);
|
||||
insert into t2 values (000100+20);
|
||||
insert into t2 values (000100+19);
|
||||
insert into t2 values (000100+18);
|
||||
insert into t2 values (000100+17);
|
||||
insert into t2 values (000100+16);
|
||||
insert into t2 values (000100+15);
|
||||
insert into t2 values (000100+14);
|
||||
insert into t2 values (000100+13);
|
||||
insert into t2 values (000100+12);
|
||||
insert into t2 values (000100+11);
|
||||
insert into t2 values (000100+10);
|
||||
insert into t2 values (000100+9);
|
||||
insert into t2 values (000100+8);
|
||||
insert into t2 values (000100+7);
|
||||
insert into t2 values (000100+6);
|
||||
insert into t2 values (000100+5);
|
||||
insert into t2 values (000100+4);
|
||||
insert into t2 values (000100+3);
|
||||
insert into t2 values (000100+2);
|
||||
insert into t2 values (000100+1);
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
59
|
||||
@ -840,65 +590,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES LESS THAN (46) ENGINE = MyISAM,
|
||||
PARTITION quarter4 VALUES LESS THAN (61) ENGINE = MyISAM) */
|
||||
59 inserts;
|
||||
insert into t3 values (100000+59);
|
||||
insert into t3 values (100000+58);
|
||||
insert into t3 values (100000+57);
|
||||
insert into t3 values (100000+56);
|
||||
insert into t3 values (100000+55);
|
||||
insert into t3 values (100000+54);
|
||||
insert into t3 values (100000+53);
|
||||
insert into t3 values (100000+52);
|
||||
insert into t3 values (100000+51);
|
||||
insert into t3 values (100000+50);
|
||||
insert into t3 values (100000+49);
|
||||
insert into t3 values (100000+48);
|
||||
insert into t3 values (100000+47);
|
||||
insert into t3 values (100000+46);
|
||||
insert into t3 values (100000+45);
|
||||
insert into t3 values (100000+44);
|
||||
insert into t3 values (100000+43);
|
||||
insert into t3 values (100000+42);
|
||||
insert into t3 values (100000+41);
|
||||
insert into t3 values (100000+40);
|
||||
insert into t3 values (100000+39);
|
||||
insert into t3 values (100000+38);
|
||||
insert into t3 values (100000+37);
|
||||
insert into t3 values (100000+36);
|
||||
insert into t3 values (100000+35);
|
||||
insert into t3 values (100000+34);
|
||||
insert into t3 values (100000+33);
|
||||
insert into t3 values (100000+32);
|
||||
insert into t3 values (100000+31);
|
||||
insert into t3 values (100000+30);
|
||||
insert into t3 values (100000+29);
|
||||
insert into t3 values (100000+28);
|
||||
insert into t3 values (100000+27);
|
||||
insert into t3 values (100000+26);
|
||||
insert into t3 values (100000+25);
|
||||
insert into t3 values (100000+24);
|
||||
insert into t3 values (100000+23);
|
||||
insert into t3 values (100000+22);
|
||||
insert into t3 values (100000+21);
|
||||
insert into t3 values (100000+20);
|
||||
insert into t3 values (100000+19);
|
||||
insert into t3 values (100000+18);
|
||||
insert into t3 values (100000+17);
|
||||
insert into t3 values (100000+16);
|
||||
insert into t3 values (100000+15);
|
||||
insert into t3 values (100000+14);
|
||||
insert into t3 values (100000+13);
|
||||
insert into t3 values (100000+12);
|
||||
insert into t3 values (100000+11);
|
||||
insert into t3 values (100000+10);
|
||||
insert into t3 values (100000+9);
|
||||
insert into t3 values (100000+8);
|
||||
insert into t3 values (100000+7);
|
||||
insert into t3 values (100000+6);
|
||||
insert into t3 values (100000+5);
|
||||
insert into t3 values (100000+4);
|
||||
insert into t3 values (100000+3);
|
||||
insert into t3 values (100000+2);
|
||||
insert into t3 values (100000+1);
|
||||
select count(*) from t3;
|
||||
count(*)
|
||||
59
|
||||
@ -986,65 +677,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES IN (31,32,33,34,35,36,37,38,39,40,41,42,43,44,45) ENGINE = MyISAM,
|
||||
PARTITION quarter4 VALUES IN (46,47,48,49,50,51,52,53,54,55,56,57,58,59,60) ENGINE = MyISAM) */
|
||||
59 inserts;
|
||||
insert into t4 values (100000+59);
|
||||
insert into t4 values (100000+58);
|
||||
insert into t4 values (100000+57);
|
||||
insert into t4 values (100000+56);
|
||||
insert into t4 values (100000+55);
|
||||
insert into t4 values (100000+54);
|
||||
insert into t4 values (100000+53);
|
||||
insert into t4 values (100000+52);
|
||||
insert into t4 values (100000+51);
|
||||
insert into t4 values (100000+50);
|
||||
insert into t4 values (100000+49);
|
||||
insert into t4 values (100000+48);
|
||||
insert into t4 values (100000+47);
|
||||
insert into t4 values (100000+46);
|
||||
insert into t4 values (100000+45);
|
||||
insert into t4 values (100000+44);
|
||||
insert into t4 values (100000+43);
|
||||
insert into t4 values (100000+42);
|
||||
insert into t4 values (100000+41);
|
||||
insert into t4 values (100000+40);
|
||||
insert into t4 values (100000+39);
|
||||
insert into t4 values (100000+38);
|
||||
insert into t4 values (100000+37);
|
||||
insert into t4 values (100000+36);
|
||||
insert into t4 values (100000+35);
|
||||
insert into t4 values (100000+34);
|
||||
insert into t4 values (100000+33);
|
||||
insert into t4 values (100000+32);
|
||||
insert into t4 values (100000+31);
|
||||
insert into t4 values (100000+30);
|
||||
insert into t4 values (100000+29);
|
||||
insert into t4 values (100000+28);
|
||||
insert into t4 values (100000+27);
|
||||
insert into t4 values (100000+26);
|
||||
insert into t4 values (100000+25);
|
||||
insert into t4 values (100000+24);
|
||||
insert into t4 values (100000+23);
|
||||
insert into t4 values (100000+22);
|
||||
insert into t4 values (100000+21);
|
||||
insert into t4 values (100000+20);
|
||||
insert into t4 values (100000+19);
|
||||
insert into t4 values (100000+18);
|
||||
insert into t4 values (100000+17);
|
||||
insert into t4 values (100000+16);
|
||||
insert into t4 values (100000+15);
|
||||
insert into t4 values (100000+14);
|
||||
insert into t4 values (100000+13);
|
||||
insert into t4 values (100000+12);
|
||||
insert into t4 values (100000+11);
|
||||
insert into t4 values (100000+10);
|
||||
insert into t4 values (100000+9);
|
||||
insert into t4 values (100000+8);
|
||||
insert into t4 values (100000+7);
|
||||
insert into t4 values (100000+6);
|
||||
insert into t4 values (100000+5);
|
||||
insert into t4 values (100000+4);
|
||||
insert into t4 values (100000+3);
|
||||
insert into t4 values (100000+2);
|
||||
insert into t4 values (100000+1);
|
||||
select count(*) from t4;
|
||||
count(*)
|
||||
59
|
||||
@ -1172,65 +804,6 @@ a
|
||||
2020-12-31 10:11:12
|
||||
delete from t2;
|
||||
59 inserts;
|
||||
insert into t2 values (19700101000000+59);
|
||||
insert into t2 values (19700101000000+58);
|
||||
insert into t2 values (19700101000000+57);
|
||||
insert into t2 values (19700101000000+56);
|
||||
insert into t2 values (19700101000000+55);
|
||||
insert into t2 values (19700101000000+54);
|
||||
insert into t2 values (19700101000000+53);
|
||||
insert into t2 values (19700101000000+52);
|
||||
insert into t2 values (19700101000000+51);
|
||||
insert into t2 values (19700101000000+50);
|
||||
insert into t2 values (19700101000000+49);
|
||||
insert into t2 values (19700101000000+48);
|
||||
insert into t2 values (19700101000000+47);
|
||||
insert into t2 values (19700101000000+46);
|
||||
insert into t2 values (19700101000000+45);
|
||||
insert into t2 values (19700101000000+44);
|
||||
insert into t2 values (19700101000000+43);
|
||||
insert into t2 values (19700101000000+42);
|
||||
insert into t2 values (19700101000000+41);
|
||||
insert into t2 values (19700101000000+40);
|
||||
insert into t2 values (19700101000000+39);
|
||||
insert into t2 values (19700101000000+38);
|
||||
insert into t2 values (19700101000000+37);
|
||||
insert into t2 values (19700101000000+36);
|
||||
insert into t2 values (19700101000000+35);
|
||||
insert into t2 values (19700101000000+34);
|
||||
insert into t2 values (19700101000000+33);
|
||||
insert into t2 values (19700101000000+32);
|
||||
insert into t2 values (19700101000000+31);
|
||||
insert into t2 values (19700101000000+30);
|
||||
insert into t2 values (19700101000000+29);
|
||||
insert into t2 values (19700101000000+28);
|
||||
insert into t2 values (19700101000000+27);
|
||||
insert into t2 values (19700101000000+26);
|
||||
insert into t2 values (19700101000000+25);
|
||||
insert into t2 values (19700101000000+24);
|
||||
insert into t2 values (19700101000000+23);
|
||||
insert into t2 values (19700101000000+22);
|
||||
insert into t2 values (19700101000000+21);
|
||||
insert into t2 values (19700101000000+20);
|
||||
insert into t2 values (19700101000000+19);
|
||||
insert into t2 values (19700101000000+18);
|
||||
insert into t2 values (19700101000000+17);
|
||||
insert into t2 values (19700101000000+16);
|
||||
insert into t2 values (19700101000000+15);
|
||||
insert into t2 values (19700101000000+14);
|
||||
insert into t2 values (19700101000000+13);
|
||||
insert into t2 values (19700101000000+12);
|
||||
insert into t2 values (19700101000000+11);
|
||||
insert into t2 values (19700101000000+10);
|
||||
insert into t2 values (19700101000000+9);
|
||||
insert into t2 values (19700101000000+8);
|
||||
insert into t2 values (19700101000000+7);
|
||||
insert into t2 values (19700101000000+6);
|
||||
insert into t2 values (19700101000000+5);
|
||||
insert into t2 values (19700101000000+4);
|
||||
insert into t2 values (19700101000000+3);
|
||||
insert into t2 values (19700101000000+2);
|
||||
insert into t2 values (19700101000000+1);
|
||||
select count(*) from t2;
|
||||
count(*)
|
||||
59
|
||||
@ -1318,18 +891,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES LESS THAN (10) ENGINE = MyISAM,
|
||||
PARTITION quarter4 VALUES LESS THAN (13) ENGINE = MyISAM) */
|
||||
12 inserts;
|
||||
insert into t3 values (adddate(19700101000000,interval 12-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 11-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 10-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 9-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 8-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 7-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 6-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 5-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 4-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 3-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 2-1 month));
|
||||
insert into t3 values (adddate(19700101000000,interval 1-1 month));
|
||||
select count(*) from t3;
|
||||
count(*)
|
||||
12
|
||||
@ -1370,18 +931,6 @@ SUBPARTITIONS 3
|
||||
PARTITION quarter3 VALUES IN (7,8,9) ENGINE = MyISAM,
|
||||
PARTITION quarter4 VALUES IN (10,11,12) ENGINE = MyISAM) */
|
||||
12 inserts;
|
||||
insert into t4 values (adddate(19700101000000,interval 12-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 11-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 10-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 9-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 8-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 7-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 6-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 5-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 4-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 3-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 2-1 month));
|
||||
insert into t4 values (adddate(19700101000000,interval 1-1 month));
|
||||
select count(*) from t4;
|
||||
count(*)
|
||||
12
|
||||
|
@ -25,6 +25,8 @@
|
||||
let $debug= 0;
|
||||
let $do_long_tests= 1;
|
||||
|
||||
#
|
||||
--source include/big_test.inc
|
||||
# The server must support partitioning.
|
||||
--source include/have_partition.inc
|
||||
|
||||
|
@ -43,6 +43,8 @@ SET @max_row = 20;
|
||||
let $more_trigger_tests= 0;
|
||||
let $more_pk_ui_tests= 0;
|
||||
|
||||
# Slow running test
|
||||
--source include/big_test.inc
|
||||
# This test relies on connecting externally from mysqltest, doesn't
|
||||
# work with embedded.
|
||||
--source include/not_embedded.inc
|
||||
|
@ -40,6 +40,8 @@ SET @max_row = 20;
|
||||
let $more_trigger_tests= 0;
|
||||
let $more_pk_ui_tests= 0;
|
||||
|
||||
# Slow running test
|
||||
--source include/big_test.inc
|
||||
# This test relies on connecting externally from mysqltest, doesn't
|
||||
# work with embedded.
|
||||
--source include/not_embedded.inc
|
||||
|
@ -11,11 +11,13 @@ CREATE TABLE t1 (a int auto_increment primary key not null, b longtext) ENGINE=M
|
||||
|
||||
--disable_query_log
|
||||
let $1= 303;
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
INSERT INTO t1 SET b=repeat('a',200);
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
DELETE FROM t1 WHERE a=1 or a=5;
|
||||
|
@ -121,11 +121,15 @@ alter table t1 disable keys;
|
||||
show keys from t1;
|
||||
#let $1=10000;
|
||||
let $1=10;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values($1,RAND()*1000,RAND()*1000,RAND());
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
alter table t1 enable keys;
|
||||
show keys from t1;
|
||||
drop table t1;
|
||||
@ -144,11 +148,15 @@ drop table t1;
|
||||
|
||||
create table t1 (a int, b int);
|
||||
let $1=100;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values(1,$1), (2,$1), (3, $1);
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
alter table t1 add unique (a,b), add key (b);
|
||||
show keys from t1;
|
||||
analyze table t1;
|
||||
@ -966,12 +974,14 @@ DROP TABLE t1;
|
||||
create table t1(f1 int not null, f2 int not null, key (f1), key (f2));
|
||||
let $count= 50;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
EVAL insert into t1 values (1,1),(1,1),(1,1),(1,1),(1,1);
|
||||
EVAL insert into t1 values (2,2),(2,2),(2,2),(2,2),(2,2);
|
||||
dec $count ;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
select index_length into @unpaked_keys_size from
|
||||
|
@ -1576,11 +1576,13 @@ CREATE TABLE t1(a VARCHAR(510)) ENGINE = ARCHIVE;
|
||||
|
||||
let $bug31036=41;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while($bug31036)
|
||||
{
|
||||
INSERT INTO t1(a) VALUES (REPEAT('a', 510));
|
||||
dec $bug31036;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
INSERT INTO t1(a) VALUES ('');
|
||||
|
||||
|
@ -7,14 +7,16 @@ drop table if exists t1;
|
||||
--enable_warnings
|
||||
create table t1(n int not null, key(n)) delay_key_write = 1;
|
||||
let $1=100;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values($1);
|
||||
eval insert into t1 values($1);
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
select count(distinct n) from t1;
|
||||
explain extended select count(distinct n) from t1;
|
||||
drop table t1;
|
||||
|
@ -57,13 +57,13 @@ FLUSH STATUS;
|
||||
--disable_query_log
|
||||
|
||||
let $i = 100;
|
||||
|
||||
begin;
|
||||
while ($i)
|
||||
{
|
||||
dec $i;
|
||||
|
||||
SELECT 1;
|
||||
}
|
||||
commit;
|
||||
|
||||
--enable_query_log
|
||||
--enable_result_log
|
||||
|
@ -12,13 +12,15 @@ drop view if exists v1;
|
||||
# Add a lot of keys to slow down check
|
||||
create table t1(n int not null, key(n), key(n), key(n), key(n));
|
||||
let $1=10000;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values ($1);
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
send check table t1 extended;
|
||||
connection con2;
|
||||
insert into t1 values (200000);
|
||||
|
@ -51,13 +51,15 @@ drop table t1;
|
||||
# test the conversion from tree to MyISAM
|
||||
create table t1 (n int default NULL);
|
||||
let $1=5000;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values($1);
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
flush status;
|
||||
select count(distinct n) from t1;
|
||||
@ -67,13 +69,15 @@ drop table t1;
|
||||
# Test use of MyISAM tmp tables
|
||||
create table t1 (s text);
|
||||
let $1=5000;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values('$1');
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
flush status;
|
||||
select count(distinct s) from t1;
|
||||
show status like 'Created_tmp_disk_tables';
|
||||
|
@ -14,6 +14,7 @@ CREATE TABLE t1 (id INTEGER, grp TINYINT, id_rev INTEGER);
|
||||
--disable_query_log
|
||||
SET @rnd_max= 2147483647;
|
||||
let $1 = 1000;
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
SET @rnd= RAND();
|
||||
@ -23,7 +24,7 @@ while ($1)
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
dec $1;
|
||||
}
|
||||
|
||||
commit;
|
||||
# We increase the size of t1 here.
|
||||
SET @orig_myisam_sort_buffer_size = @@session.myisam_sort_buffer_size;
|
||||
SET session myisam_sort_buffer_size=20000000;
|
||||
|
@ -77,11 +77,13 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1 (a binary(1), key(a));
|
||||
--disable_query_log
|
||||
let $1=255;
|
||||
begin;
|
||||
while($1)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES (unhex(hex($1)));
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
CREATE TABLE t2 (s VARCHAR(4), a VARCHAR(1) CHARACTER SET euckr);
|
||||
|
@ -45,14 +45,16 @@ select * from (select * from t1 where t1.a=(select t2.a from t2 where t2.a=t1.a)
|
||||
explain select * from (select t1.*, t2.a as t2a from t1,t2 where t1.a=t2.a) t1;
|
||||
drop table t1, t2;
|
||||
create table t1(a int not null, t char(8), index(a));
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1 = 10000;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values ($1,'$1');
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
SELECT * FROM (SELECT * FROM t1) as b ORDER BY a ASC LIMIT 0,20;
|
||||
explain select count(*) from t1 as tt1, (select * from t1) as tt2;
|
||||
drop table t1;
|
||||
|
@ -118,6 +118,7 @@ INSERT INTO mysql.time_zone_transition_type
|
||||
let $transition_unix_time= `SELECT @unix_time`;
|
||||
let $count= 30;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
eval INSERT INTO mysql.time_zone_transition
|
||||
@ -126,6 +127,7 @@ while ($count)
|
||||
let $transition_unix_time= `SELECT $transition_unix_time + @step3`;
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
let $tz_name = `SELECT CONCAT('b16420_a',UNIX_TIMESTAMP())`;
|
||||
--replace_result $tz_name <TZ_NAME_1>
|
||||
|
@ -18,6 +18,7 @@ CREATE TABLE t1 (
|
||||
|
||||
# two-level entry, second-level tree with depth 2
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1=260;
|
||||
while ($1)
|
||||
{
|
||||
@ -40,6 +41,7 @@ while ($1)
|
||||
eval insert t1 (a) values ('aaayyy');
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
# converting to two-level
|
||||
@ -113,6 +115,7 @@ CREATE TABLE t1 (
|
||||
# two-level entry, second-level tree with depth 2
|
||||
--disable_query_log
|
||||
let $1=260;
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert t1 (a) values ('aaaxxx');
|
||||
@ -130,6 +133,7 @@ while ($1)
|
||||
eval insert t1 (a) values ('aaayyy');
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
select count(*) from t1 where match a against ('aaaxxx');
|
||||
|
@ -213,11 +213,15 @@ start_ts DATETIME, end_ts DATETIME,
|
||||
start_cached INTEGER, end_cached INTEGER);
|
||||
CREATE TABLE t1 (f1 BIGINT);
|
||||
let $num = `SELECT @row_count`;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($num)
|
||||
{
|
||||
INSERT INTO t1 VALUES (1);
|
||||
dec $num;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
let $loops = 4;
|
||||
let $num = $loops;
|
||||
|
@ -17,12 +17,16 @@ SHOW CREATE TABLE t1;
|
||||
|
||||
let $1=150;
|
||||
let $2=150;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval INSERT INTO t1 (g) VALUES (GeomFromText('LineString($1 $1, $2 $2)'));
|
||||
dec $1;
|
||||
inc $2;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
SELECT count(*) FROM t1;
|
||||
EXPLAIN SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
|
||||
@ -35,6 +39,8 @@ CREATE TABLE t2 (
|
||||
g GEOMETRY NOT NULL
|
||||
) ENGINE=MyISAM;
|
||||
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1=10;
|
||||
while ($1)
|
||||
{
|
||||
@ -46,6 +52,8 @@ while ($1)
|
||||
}
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
ALTER TABLE t2 ADD SPATIAL KEY(g);
|
||||
SHOW CREATE TABLE t2;
|
||||
@ -55,6 +63,8 @@ EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g,
|
||||
SELECT fid, AsText(g) FROM t2 WHERE Within(g,
|
||||
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
|
||||
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1=10;
|
||||
while ($1)
|
||||
{
|
||||
@ -67,6 +77,8 @@ while ($1)
|
||||
}
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
DROP TABLE t2;
|
||||
|
||||
|
@ -234,7 +234,8 @@ drop table t1,t2,t3;
|
||||
#
|
||||
create table t1 (v varchar(10), c char(10), t varchar(50), key(v), key(c), key(t(10)));
|
||||
show create table t1;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1=10;
|
||||
while ($1)
|
||||
{
|
||||
@ -248,7 +249,9 @@ while ($1)
|
||||
}
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--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';
|
||||
@ -318,7 +321,8 @@ drop table t1;
|
||||
|
||||
create table t1 (v varchar(10), c char(10), t varchar(50), key using btree (v), key using btree (c), key using btree (t(10)));
|
||||
show create table t1;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1=10;
|
||||
while ($1)
|
||||
{
|
||||
@ -332,7 +336,8 @@ while ($1)
|
||||
}
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--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';
|
||||
|
@ -1,4 +1,3 @@
|
||||
--source include/big_test.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
SET @old_innodb_file_format=@@innodb_file_format;
|
||||
@ -7,16 +6,16 @@ SET @old_innodb_file_format_check=@@innodb_file_format_check;
|
||||
SET GLOBAL innodb_file_format='Barracuda';
|
||||
SET GLOBAL innodb_file_per_table=ON;
|
||||
|
||||
-- disable_query_log
|
||||
-- disable_result_log
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS `test1`;
|
||||
--enable_warnings
|
||||
CREATE TABLE IF NOT EXISTS `test1` (
|
||||
`a` int primary key auto_increment,
|
||||
`b` int default 0,
|
||||
`c` char(100) default 'testtest'
|
||||
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
|
||||
|
||||
set autocommit=0;
|
||||
delimiter |;
|
||||
CREATE PROCEDURE insert_many(p1 int)
|
||||
BEGIN
|
||||
@ -26,14 +25,18 @@ REPEAT
|
||||
insert into test1 set b=1;
|
||||
SET @x = @x + 1;
|
||||
SET @y = @y + 1;
|
||||
IF @y >= 100 THEN
|
||||
IF @y >= 1000 THEN
|
||||
commit;
|
||||
SET @y = 0;
|
||||
END IF;
|
||||
UNTIL @x >= p1 END REPEAT;
|
||||
END|
|
||||
delimiter ;|
|
||||
--disable_query_log
|
||||
--disable_result_log
|
||||
call insert_many(100000);
|
||||
--enable_query_log
|
||||
--enable_result_log
|
||||
DROP PROCEDURE insert_many;
|
||||
|
||||
# The bug is hangup at the following statement
|
||||
|
@ -151,7 +151,8 @@ drop table t1;
|
||||
create table t1(id1 int not null auto_increment primary key, t char(12));
|
||||
create table t2(id2 int not null, t char(12));
|
||||
create table t3(id3 int not null, t char(12), index(id3));
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1 = 100;
|
||||
while ($1)
|
||||
{
|
||||
@ -170,7 +171,9 @@ while ($1)
|
||||
}
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
select count(*) from t2;
|
||||
insert into t2 select t1.* from t1, t2 t, t3 where t1.id1 = t.id2 and t.id2 = t3.id3;
|
||||
select count(*) from t2;
|
||||
|
@ -67,12 +67,14 @@ connection conn1;
|
||||
|
||||
-- disable_result_log
|
||||
-- disable_query_log
|
||||
begin;
|
||||
let $1 = 4096;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values ($1);
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
-- enable_query_log
|
||||
-- enable_result_log
|
||||
|
||||
@ -265,6 +267,8 @@ connection con1;
|
||||
let $ID= `select connection_id()`;
|
||||
let $tab_count= 40;
|
||||
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $i= $tab_count;
|
||||
while ($i)
|
||||
{
|
||||
@ -272,6 +276,8 @@ while ($i)
|
||||
eval INSERT INTO t$i VALUES (1),(2),(3),(4),(5),(6),(7);
|
||||
dec $i ;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
set session optimizer_search_depth=0;
|
||||
|
||||
let $i=$tab_count;
|
||||
|
@ -1274,6 +1274,8 @@ DROP TABLE t1, t2, t3;
|
||||
CREATE TABLE t1 (id INTEGER, grp TINYINT, id_rev INTEGER);
|
||||
SET @rnd_max= 2147483647;
|
||||
let $1 = 10;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
SET @rnd= RAND();
|
||||
@ -1283,6 +1285,8 @@ while ($1)
|
||||
INSERT INTO t1 (id, grp, id_rev) VALUES (@id, @grp, @id_rev);
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
set @@read_buffer_size=2*1024*1024;
|
||||
CREATE TABLE t2 SELECT * FROM t1;
|
||||
INSERT INTO t1 (id, grp, id_rev) SELECT id, grp, id_rev FROM t2;
|
||||
|
@ -20,7 +20,8 @@ delete from mysql.user where user=_binary'mysqltest_1';
|
||||
create table t1(id1 int not null auto_increment primary key, t char(12));
|
||||
create table t2(id2 int not null, t char(12));
|
||||
create table t3(id3 int not null, t char(12), index(id3));
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1 = 100;
|
||||
while ($1)
|
||||
{
|
||||
@ -39,7 +40,8 @@ while ($1)
|
||||
}
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
select count(*) from t1 where id1 > 95;
|
||||
select count(*) from t2 where id2 > 95;
|
||||
@ -75,7 +77,8 @@ drop table t1,t2,t3;
|
||||
|
||||
create table t1(id1 int not null primary key, t varchar(100)) pack_keys = 1;
|
||||
create table t2(id2 int not null, t varchar(100), index(id2)) pack_keys = 1;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1 = 1000;
|
||||
while ($1)
|
||||
{
|
||||
@ -88,7 +91,8 @@ while ($1)
|
||||
}
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
delete t1 from t1,t2 where t1.id1 = t2.id2 and t1.id1 > 500;
|
||||
drop table t1,t2;
|
||||
|
||||
|
@ -48,13 +48,14 @@ CREATE TABLE t1 ( a INT NOT NULL, b INT NOT NULL) ;
|
||||
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4);
|
||||
let $1=19;
|
||||
set @d=4;
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval INSERT INTO t1 SELECT a+@d,b+@d FROM t1;
|
||||
eval SET @d=@d*2;
|
||||
dec $1;
|
||||
}
|
||||
|
||||
commit;
|
||||
--enable_query_log
|
||||
ALTER TABLE t1 ADD INDEX i1(a);
|
||||
DELETE FROM t1 WHERE a > 2000000;
|
||||
|
@ -33,7 +33,8 @@ drop table t1;
|
||||
create table t1 (a tinyint not null auto_increment, b blob not null, primary key (a));
|
||||
|
||||
let $1=100;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
--disable_warnings
|
||||
SET SQL_WARNINGS=0;
|
||||
while ($1)
|
||||
@ -41,9 +42,10 @@ while ($1)
|
||||
eval insert into t1 (b) values(repeat(char(65+$1),65550-$1));
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
SET SQL_WARNINGS=1;
|
||||
--enable_warnings
|
||||
enable_query_log;
|
||||
--enable_query_log
|
||||
check table t1;
|
||||
repair table t1;
|
||||
delete from t1 where (a & 1);
|
||||
@ -380,14 +382,16 @@ check table t1;
|
||||
# check updating with keys
|
||||
#
|
||||
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1 = 100;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 (b) values (repeat(char(($1 & 32)+65), $1));
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
update t1 set b=repeat(left(b,1),255) where a between 1 and 5;
|
||||
update t1 set b=repeat(left(b,1),10) where a between 32 and 43;
|
||||
update t1 set b=repeat(left(b,1),2) where a between 64 and 66;
|
||||
@ -551,11 +555,13 @@ create table t2 (a int);
|
||||
let $i=1000;
|
||||
set @@rand_seed1=31415926,@@rand_seed2=2718281828;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($i)
|
||||
{
|
||||
dec $i;
|
||||
insert t2 values (rand()*100000);
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
insert t1 select * from t2;
|
||||
show keys from t1;
|
||||
@ -1360,11 +1366,13 @@ CREATE TABLE t1 (
|
||||
--disable_query_log
|
||||
let $count= 100;
|
||||
--echo # Insert $count rows. Query log disabled.
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
INSERT INTO t1 VALUES ('a', 'b');
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
#
|
||||
# Change most of the rows into long character values with > 127 characters.
|
||||
@ -1444,11 +1452,13 @@ CREATE TABLE t1 (
|
||||
--disable_query_log
|
||||
let $count= 100;
|
||||
--echo # Insert $count rows. Query log disabled.
|
||||
begin;
|
||||
while ($count)
|
||||
{
|
||||
INSERT INTO t1 VALUES ('a', 'b');
|
||||
dec $count;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
#
|
||||
# Change most of the rows into long character values with > 42 characters.
|
||||
|
@ -24,11 +24,15 @@ CREATE TABLE `t2` (
|
||||
INSERT INTO t2 (id) VALUES (123);
|
||||
|
||||
let $i = 10;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($i)
|
||||
{
|
||||
INSERT INTO t2 (id) SELECT id FROM t2;
|
||||
dec $i;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
--echo # Switch to insert Connection
|
||||
CONNECTION insertConn;
|
||||
|
@ -69,11 +69,13 @@ CREATE TABLE t1(f1 VARCHAR(200), f2 TEXT);
|
||||
INSERT INTO t1 VALUES ('foo', 'foo1'), ('bar', 'bar1');
|
||||
let $i=9;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($i)
|
||||
{
|
||||
INSERT INTO t1 SELECT * FROM t1;
|
||||
dec $i;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
FLUSH TABLE t1;
|
||||
--echo # Compress the table using MYISAMPACK tool
|
||||
|
@ -374,14 +374,16 @@ DROP TABLE t1;
|
||||
#
|
||||
|
||||
create table t1(id int not null auto_increment primary key, t char(12));
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1 = 1000;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1(t) values ('$1');
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
explain select id,t from t1 order by id;
|
||||
explain select id,t from t1 force index (primary) order by id;
|
||||
drop table t1;
|
||||
|
@ -12,13 +12,15 @@ CREATE TABLE `t1` (
|
||||
`id2` int(11) NOT NULL default '0',
|
||||
`id3` int(11) NOT NULL default '0');
|
||||
let $1=4000;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 (id,id2,id3) values ($1,$1,$1);
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
create table t2 select id2 from t1 order by id3;
|
||||
select count(*) from t2;
|
||||
drop table t1,t2;
|
||||
|
@ -1680,6 +1680,7 @@ create table t1
|
||||
|
||||
insert into t1 values (null,null);
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $cnt= 1000;
|
||||
while ($cnt)
|
||||
{
|
||||
@ -1687,6 +1688,7 @@ while ($cnt)
|
||||
update t1 set s2 = 2;
|
||||
dec $cnt;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
drop table t1;
|
||||
@ -1804,11 +1806,13 @@ CREATE TABLE t1(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||
PARTITION pa11 values less than MAXVALUE);
|
||||
--disable_query_log
|
||||
let $n= 15;
|
||||
begin;
|
||||
while ($n)
|
||||
{
|
||||
insert into t1 (user) values ('mysql');
|
||||
dec $n;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
@ -94,11 +94,13 @@ CREATE TABLE t1(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||
|
||||
--disable_query_log
|
||||
let $n= 100;
|
||||
begin;
|
||||
while ($n)
|
||||
{
|
||||
insert into t1 (f1) values (repeat('a',25));
|
||||
dec $n;
|
||||
}
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
show create table t1;
|
||||
|
@ -54,7 +54,8 @@ CREATE TABLE t2 (
|
||||
UNIQUE KEY e_n (email,name)
|
||||
);
|
||||
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1=200;
|
||||
let $2=0;
|
||||
while ($1)
|
||||
@ -63,7 +64,8 @@ while ($1)
|
||||
eval INSERT INTO t2 VALUES ($2,'name$2','email$2');
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
EXPLAIN SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
|
||||
SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
|
||||
|
@ -43,11 +43,13 @@ create table t2 like t1;
|
||||
let $1=8;
|
||||
--disable_query_log
|
||||
--disable_result_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 select * from t1;
|
||||
dec $1;
|
||||
}
|
||||
commit;
|
||||
--enable_result_log
|
||||
--enable_query_log
|
||||
select count(*) from t1;
|
||||
|
@ -811,7 +811,8 @@ create table t1 (a int, b int, index a (a,b));
|
||||
create table t2 (a int, index a (a));
|
||||
create table t3 (a int, b int, index a (a));
|
||||
insert into t1 values (1,10), (2,20), (3,30), (4,40);
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
# making table large enough
|
||||
let $1 = 10000;
|
||||
while ($1)
|
||||
@ -819,7 +820,8 @@ while ($1)
|
||||
eval insert into t1 values (rand()*100000+200,rand()*100000);
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
insert into t2 values (2), (3), (4), (5);
|
||||
insert into t3 values (10,3), (20,4), (30,5);
|
||||
select * from t2 where t2.a in (select a from t1);
|
||||
@ -2607,7 +2609,8 @@ CREATE TABLE t1 (a int, b int auto_increment, PRIMARY KEY (b));
|
||||
CREATE TABLE t2 (x int auto_increment, y int, z int,
|
||||
PRIMARY KEY (x), FOREIGN KEY (y) REFERENCES t1 (b));
|
||||
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
let $1=3000;
|
||||
while ($1)
|
||||
{
|
||||
@ -2621,7 +2624,8 @@ while ($1)
|
||||
}
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
|
||||
SET SESSION sort_buffer_size = 32 * 1024;
|
||||
SELECT SQL_NO_CACHE COUNT(*)
|
||||
@ -3222,11 +3226,13 @@ insert into t1 values(1,1),(2,2), (3, 3);
|
||||
let $i=10000;
|
||||
--disable_query_log
|
||||
--disable_warnings
|
||||
begin;
|
||||
while ($i)
|
||||
{
|
||||
eval insert into t2 values (-1 , $i/5000 + 1, '$i');
|
||||
dec $i;
|
||||
}
|
||||
commit;
|
||||
--enable_warnings
|
||||
--enable_query_log
|
||||
set session sort_buffer_size= 33*1024;
|
||||
|
27
mysql-test/t/table_elim_debug.test
Normal file
27
mysql-test/t/table_elim_debug.test
Normal file
@ -0,0 +1,27 @@
|
||||
#
|
||||
# Table elimination (MWL#17) tests that need debug build
|
||||
#
|
||||
--source include/have_debug.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
# Check if optimizer_switch works
|
||||
|
||||
create table t1 (a int);
|
||||
insert into t1 values (0),(1),(2),(3);
|
||||
|
||||
create table t2 (a int primary key, b int)
|
||||
as select a, a as b from t1 where a in (1,2);
|
||||
|
||||
explain select t1.a from t1 left join t2 on t2.a=t1.a;
|
||||
|
||||
set optimizer_switch='table_elimination=off';
|
||||
explain select t1.a from t1 left join t2 on t2.a=t1.a;
|
||||
set optimizer_switch='table_elimination=on';
|
||||
explain select t1.a from t1 left join t2 on t2.a=t1.a;
|
||||
set optimizer_switch='table_elimination=default';
|
||||
explain select t1.a from t1 left join t2 on t2.a=t1.a;
|
||||
|
||||
drop table t1, t2;
|
@ -82,13 +82,15 @@ drop table t1, t2;
|
||||
|
||||
create table t1(a char(10));
|
||||
let $1=50;
|
||||
disable_query_log;
|
||||
--disable_query_log
|
||||
begin;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t1 values('mysql ab');
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
commit;
|
||||
--enable_query_log
|
||||
alter table t1 add b char;
|
||||
set max_error_count=10;
|
||||
update t1 set b=a;
|
||||
|
@ -880,3 +880,17 @@
|
||||
fun:nptl_pthread_exit_hack_handler
|
||||
fun:start_thread
|
||||
}
|
||||
|
||||
#
|
||||
# Problem with glibc and gethostbyaddr_r
|
||||
#
|
||||
|
||||
{
|
||||
libc_res_nsend: Conditional jump or move depends on uninitialised value
|
||||
Memcheck:Cond
|
||||
fun: __libc_res_nsend
|
||||
fun: __libc_res_nquery
|
||||
obj: /lib64/libnss_dns-*so)
|
||||
obj: /lib64/libnss_dns-*so)
|
||||
fun: gethostbyaddr_r
|
||||
}
|
||||
|
@ -231,6 +231,18 @@ if [ x"$BASE_SYSTEM" != x"netware" ] ; then
|
||||
# ----------------------------------------------------------------------
|
||||
set -e
|
||||
|
||||
#
|
||||
# Check that the client is compiled with libmysqlclient.a
|
||||
#
|
||||
if test -f ./client/.libs/mysql
|
||||
then
|
||||
echo ""
|
||||
echo "The MySQL clients are compiled dynamicly, which is not allowed for"
|
||||
echo "a MySQL binary tar file. Please configure with"
|
||||
echo "--with-client-ldflags=-all-static and try again"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Really ugly, one script, "mysql_install_db", needs prefix set to ".",
|
||||
# i.e. makes access relative the current directory. This matches
|
||||
@ -293,11 +305,6 @@ if [ x"$BASE_SYSTEM" != x"netware" ] ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# FIXME let this script be in "bin/", where it is in the RPMs?
|
||||
# http://dev.mysql.com/doc/refman/5.1/en/mysql-install-db-problems.html
|
||||
mkdir $DEST/scripts
|
||||
mv $DEST/bin/mysql_install_db $DEST/scripts/
|
||||
|
||||
# Note, no legacy "safe_mysqld" link to "mysqld_safe" in 5.1
|
||||
|
||||
# Copy readme and license files
|
||||
@ -330,18 +337,25 @@ if [ x"$BASE_SYSTEM" != x"netware" ] ; then
|
||||
#
|
||||
# Move things to make them easier to find in tar installation
|
||||
#
|
||||
mv $DEST/libexec/* $DEST/bin
|
||||
|
||||
# The following test is needed if the original configure was done with
|
||||
# something like --libexecdir=/usr/local/mysql/bin
|
||||
if test -f $DEST/libexec/mysqld
|
||||
then
|
||||
mv $DEST/libexec/* $DEST/bin
|
||||
rmdir $DEST/libexec
|
||||
fi
|
||||
mv $DEST/share/man $DEST
|
||||
mv $DEST/share/mysql/binary-configure $DEST/configure
|
||||
mv $DEST/share/mysql/*.sql $DEST/share
|
||||
mv $DEST/share/mysql/*.cnf $DEST/share/mysql/*.server $DEST/share/mysql/mysql-log-rotate $DEST/support-files
|
||||
rmdir $DEST/libexec
|
||||
|
||||
#
|
||||
# Move some scripts that are only run once to 'scripts' directory
|
||||
# but add symbolic links instead to old place for compatibility
|
||||
#
|
||||
for i in mysql_secure_installation mysql_fix_extensions mysql_fix_privilege_tables
|
||||
mkdir $DEST/scripts
|
||||
for i in mysql_secure_installation mysql_fix_extensions mysql_fix_privilege_tables mysql_install_db
|
||||
do
|
||||
mv $DEST/bin/$i $DEST/scripts
|
||||
ln -s "../scripts/$i" $DEST/bin/$i
|
||||
|
@ -1889,7 +1889,9 @@ void close_connection(THD *thd, uint errcode, bool lock)
|
||||
extern "C" sig_handler end_mysqld_signal(int sig __attribute__((unused)))
|
||||
{
|
||||
DBUG_ENTER("end_mysqld_signal");
|
||||
kill_mysql(); // Take down mysqld nicely
|
||||
/* Don't call kill_mysql() if signal thread is not running */
|
||||
if (signal_thread_in_use)
|
||||
kill_mysql(); // Take down mysqld nicely
|
||||
DBUG_VOID_RETURN; /* purecov: deadcode */
|
||||
}
|
||||
|
||||
@ -8082,7 +8084,7 @@ mysqld_get_one_option(int optid,
|
||||
switch(optid) {
|
||||
#ifndef DBUG_OFF
|
||||
case OPT_DEBUG_FLUSH:
|
||||
argument= IF_WIN(default_dbug_option, (char*) "d:t:i:O,/tmp/mysqld.trace");
|
||||
argument= IF_WIN((char*) default_dbug_option, (char*) "d:t:i:O,/tmp/mysqld.trace");
|
||||
/* fall through */
|
||||
case '#':
|
||||
if (!argument)
|
||||
|
@ -3226,7 +3226,6 @@ static int test_plugin_options(MEM_ROOT *tmp_root, struct st_plugin_int *tmp,
|
||||
my_bool can_disable;
|
||||
bool disable_plugin;
|
||||
enum_plugin_load_policy plugin_load_policy= PLUGIN_ON;
|
||||
|
||||
MEM_ROOT *mem_root= alloc_root_inited(&tmp->mem_root) ?
|
||||
&tmp->mem_root : &plugin_mem_root;
|
||||
st_mysql_sys_var **opt;
|
||||
@ -3240,13 +3239,13 @@ static int test_plugin_options(MEM_ROOT *tmp_root, struct st_plugin_int *tmp,
|
||||
DBUG_ENTER("test_plugin_options");
|
||||
DBUG_ASSERT(tmp->plugin && tmp->name.str);
|
||||
|
||||
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
|
||||
/*
|
||||
The 'federated' and 'ndbcluster' storage engines are always disabled by
|
||||
default.
|
||||
The 'ndbcluster' storage engines is always disabled by default.
|
||||
*/
|
||||
if (!(my_strcasecmp(&my_charset_latin1, tmp->name.str, "federated") &&
|
||||
my_strcasecmp(&my_charset_latin1, tmp->name.str, "ndbcluster")))
|
||||
if (!my_strcasecmp(&my_charset_latin1, tmp->name.str, "ndbcluster"))
|
||||
plugin_load_policy= PLUGIN_OFF;
|
||||
#endif
|
||||
|
||||
for (opt= tmp->plugin->system_vars; opt && *opt; opt++)
|
||||
count+= 2; /* --{plugin}-{optname} and --plugin-{plugin}-{optname} */
|
||||
@ -3295,6 +3294,11 @@ static int test_plugin_options(MEM_ROOT *tmp_root, struct st_plugin_int *tmp,
|
||||
can_disable=
|
||||
my_strcasecmp(&my_charset_latin1, tmp->name.str, "MyISAM") &&
|
||||
my_strcasecmp(&my_charset_latin1, tmp->name.str, "MEMORY");
|
||||
#ifdef USE_MARIA_FOR_TMP_TABLES
|
||||
if (!can_disable)
|
||||
can_disable= (my_strcasecmp(&my_charset_latin1, tmp->name.str, "Maria")
|
||||
!= 0);
|
||||
#endif
|
||||
|
||||
tmp->is_mandatory= (plugin_load_policy == PLUGIN_FORCE) || !can_disable;
|
||||
|
||||
|
7
storage/federated/README
Normal file
7
storage/federated/README
Normal file
@ -0,0 +1,7 @@
|
||||
The files in this directory are not used by MariaDB
|
||||
|
||||
MariaDB uses the new federated storage engine that can be found in the
|
||||
federatedx directory.
|
||||
|
||||
This directory is only kept around to make it easy to merge code from the
|
||||
MySQL source repositories that uses the old and disabled federated code.
|
11
storage/federatedx/AUTHORS
Normal file
11
storage/federatedx/AUTHORS
Normal file
@ -0,0 +1,11 @@
|
||||
FederatedX
|
||||
|
||||
Patrick Galbraith <patg@patg.net> - Federated
|
||||
|
||||
Pluggable Storage Engine Skeleton setup
|
||||
|
||||
Brian Aker <brian@mysql.com> | <brian@tangent.org> - Original Design
|
||||
Calvin Sun - Windows Support
|
||||
Brian Miezejewski - Bug fixes
|
||||
Antony T Curtis - Help in inital development, transactions and various help
|
||||
Michael Widenius - Bug fixes and some simple early optimizations
|
3
storage/federatedx/CMakeLists.txt
Normal file
3
storage/federatedx/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
INCLUDE("${PROJECT_SOURCE_DIR}/storage/mysql_storage_engine.cmake")
|
||||
SET(FEDERATEDX_SOURCES ha_federatedx.cc federatedx_txn.cc federatedx_io.cc federatedx_io_null.cc federatedx_io_mysql.cc)
|
||||
MYSQL_STORAGE_ENGINE(FEDERATEDX)
|
18
storage/federatedx/ChangeLog
Normal file
18
storage/federatedx/ChangeLog
Normal file
@ -0,0 +1,18 @@
|
||||
0.2 - Thu March 8 00:00:00 EST 2008
|
||||
|
||||
- Fixed bug #30051 "CREATE TABLE does not connect and check existence of remote table"
|
||||
Modified "real_connect" to take a share and create flag to in order to not rely
|
||||
on any settings that are later instantiated and/or set by get_share
|
||||
Also, put logic in the code to not attempt this if a localhost. There's an annoying
|
||||
functionality that if federated tries to connect to itself during creater table, you
|
||||
get 1159 error (timeout) - only when local. This prevents having this functionality
|
||||
and is probably part of the reason it was removed.
|
||||
|
||||
0.1 - Thu Feb 1 00:00:00 EST 2008
|
||||
|
||||
- This is the FederatedX Storage Engine,
|
||||
first release.
|
||||
- Added documentation
|
||||
- Added simple test and README file to explain
|
||||
how to run the test
|
||||
- Added FAQ
|
40
storage/federatedx/FAQ
Normal file
40
storage/federatedx/FAQ
Normal file
@ -0,0 +1,40 @@
|
||||
Q. What is the FederatedX pluggable storage engine?
|
||||
|
||||
A. It is a fork of the Federated Storage Engine that Brian Aker and I
|
||||
(Patrick Galbraith) developed originally . It is a storage engine that
|
||||
uses a client connection to a remote MySQL data source as its data
|
||||
source instead of a local file on disk.
|
||||
|
||||
Q. Why did you fork from Federated?
|
||||
|
||||
A. To enhance the storage engine independently of the
|
||||
MySQL Server release schedule. Many people have been
|
||||
mentioning their dissatisfaction with the limitations
|
||||
of Federated. I think the engine is a great concept and
|
||||
have a sense of obligation to continue to improve it.
|
||||
There are some patches already that are in dire need
|
||||
of being applied and tested.
|
||||
|
||||
Q. What do you plan to do with FederatedX?
|
||||
|
||||
A. Many things need addressing:
|
||||
|
||||
- Outstanding bugs
|
||||
- How do deal with huge result sets
|
||||
- Pushdown conditions (being able to pass things like LIMIT
|
||||
to the remote connection to keep from returning huge
|
||||
result sets).
|
||||
- Better transactional support
|
||||
- Other connection mechanisms (ODBC, JDBC, native drivers
|
||||
of other RDBMSs)
|
||||
|
||||
Q. What FederatedX is and is not?
|
||||
|
||||
A. FederatedX is not yet a complete "federated" solution in
|
||||
the sense that other venders have developed (IBM, etc). It
|
||||
is essentially a networked storage engine. It is my hope
|
||||
to make it a real federated solution.
|
||||
|
||||
Q. In which MySQL distributions/forks/branches can I find FederateX
|
||||
|
||||
A. MariaDB (http://www.mariadb.com)
|
64
storage/federatedx/Makefile.am
Normal file
64
storage/federatedx/Makefile.am
Normal file
@ -0,0 +1,64 @@
|
||||
# Used to build Makefile.in
|
||||
|
||||
MYSQLDATAdir = $(localstatedir)
|
||||
MYSQLSHAREdir = $(pkgdatadir)
|
||||
MYSQLBASEdir= $(prefix)
|
||||
MYSQLLIBdir= $(pkglibdir)
|
||||
pkgplugindir = $(pkglibdir)/plugin
|
||||
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/regex \
|
||||
-I$(top_srcdir)/sql \
|
||||
-I$(srcdir)
|
||||
WRAPLIBS=
|
||||
|
||||
LDADD =
|
||||
|
||||
DEFS = @DEFS@
|
||||
|
||||
noinst_HEADERS = ha_federatedx.h federatedx_probes.h
|
||||
|
||||
EXTRA_LTLIBRARIES = ha_federatedx.la
|
||||
pkgplugin_LTLIBRARIES = @plugin_federated_shared_target@
|
||||
ha_federatedx_la_LDFLAGS = -module -rpath $(pkgplugindir)
|
||||
ha_federatedx_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_federatedx_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ha_federatedx_la_SOURCES = ha_federatedx.cc
|
||||
|
||||
|
||||
EXTRA_LIBRARIES = libfederatedx.a
|
||||
noinst_LIBRARIES = @plugin_federated_static_target@
|
||||
libfederatedx_a_CXXFLAGS = $(AM_CFLAGS)
|
||||
libfederatedx_a_CFLAGS = $(AM_CFLAGS)
|
||||
libfederatedx_a_SOURCES= ha_federatedx.cc federatedx_txn.cc \
|
||||
federatedx_io.cc federatedx_io_null.cc \
|
||||
federatedx_io_mysql.cc
|
||||
|
||||
EXTRA_DIST = CMakeLists.txt plug.in ha_federatedx.h \
|
||||
federatedx_probes.h
|
||||
|
||||
ha_federatedx_la_SOURCES = ha_federatedx.cc federatedx_txn.cc \
|
||||
federatedx_io.cc federatedx_io_null.cc \
|
||||
federatedx_io_mysql.cc $(top_srcdir)/mysys/string.c
|
||||
ha_federatedx_la_LIBADD =
|
||||
|
||||
#DTRACE = @DTRACE@
|
||||
#DTRACEFLAGS = @DTRACEFLAGS@
|
||||
#DTRACEFILES = .libs/libfederatedx_engine_la-ha_federatedx.o
|
||||
|
||||
# #if HAVE_DTRACE
|
||||
# # libfederatedx_engine_la_LIBADD += federatedx_probes.o
|
||||
# #endif
|
||||
|
||||
# federatedx_probes.h: federatedx_probes.d
|
||||
# $(DTRACE) $(DTRACEFLAGS) -h -s federatedx_probes.d
|
||||
# mv federatedx_probes.h federatedx_probes.h.bak
|
||||
# sed "s/#include <unistd.h>//g" federatedx_probes.h.bak > federatedx_probes.h
|
||||
# rm federatedx_probes.h.bak
|
||||
|
||||
#federatedx_probes.o:
|
||||
# $(DTRACE) $(DTRACEFLAGS) -G -s federatedx_probes.d $(DTRACEFILES)
|
||||
|
||||
# End
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
33
storage/federatedx/README
Normal file
33
storage/federatedx/README
Normal file
@ -0,0 +1,33 @@
|
||||
This is the FederatedX Storage Engine, developed as an external storage engine.
|
||||
|
||||
NOTE:
|
||||
|
||||
The following is only relevant if you use it for MySQL. MariaDB already comes
|
||||
with the latest version of FederatedX.
|
||||
|
||||
To install, grab a copy of the mysql source code and run this:
|
||||
|
||||
./configure --with-mysql=/path/to/src/mysql-5.x --libdir=/usr/local/lib/mysql/
|
||||
|
||||
make install
|
||||
|
||||
And then inside of MySQL:
|
||||
|
||||
mysql> INSTALL PLUGIN federatedx SONAME 'libfederatedx_engine.so';
|
||||
|
||||
mysql> CREATE TABLE `d` (`a` varchar(125), b text, primary key(a)) ENGINE=FEDERATEDX CONNECTION="mysql://root@host/schema/table"
|
||||
|
||||
or
|
||||
|
||||
mysql> CREATE TABLE `d` (`a` varchar(125), b text, primary key(a)) ENGINE=FEDERATEDX CONNECTION="server" CHARSET=latin1;
|
||||
|
||||
You will probably need to edit the Makefile.am in the src/ tree if you want
|
||||
to build on anything other then Linux (and the Makefile assumes that the
|
||||
server was not compiled for debug). The reason for the two possible
|
||||
configure lines is that libdir is dependent on where MySQL was installed. If
|
||||
you run the "INSTALL PLUGIN ..." and you get a file not found, check that
|
||||
your configured this directory correctly.
|
||||
|
||||
For Solaris you can enable DTrace probes by adding to configure
|
||||
--enable-dtrace
|
||||
|
23
storage/federatedx/README.windows
Normal file
23
storage/federatedx/README.windows
Normal file
@ -0,0 +1,23 @@
|
||||
The following files are changed in order to build a new engine on Windows:
|
||||
|
||||
- Update win\configure.js with
|
||||
case "WITH_FEDERATEDX_STORAGE_ENGINE":
|
||||
to make sure it will pass WITH_FEDERATEDX_STORAGE_ENGINE in.
|
||||
|
||||
- Update CMakeFiles.txt under mysql root:
|
||||
IF(WITH_FEDERATEDX_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_FEDERATEDX_STORAGE_ENGINE)
|
||||
SET (mysql_plugin_defs
|
||||
"${mysql_plugin_defs},builtin_skeleton_plugin")
|
||||
ENDIF(WITH_FEDERATEDX_STORAGE_ENGINE)
|
||||
|
||||
and,
|
||||
|
||||
IF(WITH_FEDERATEDX_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/skeleton/src)
|
||||
ENDIF(WITH_FEDERATEDX_STORAGE_ENGINE)
|
||||
|
||||
- Update CMakeFiles.txt under sql:
|
||||
IF(WITH_FEDERATEDX_STORAGE_ENGINE)
|
||||
TARGET_LINK_LIBRARIES(mysqld skeleton)
|
||||
ENDIF(WITH_FEDERATEDX_STORAGE_ENGINE)
|
30
storage/federatedx/TODO
Normal file
30
storage/federatedx/TODO
Normal file
@ -0,0 +1,30 @@
|
||||
Features
|
||||
|
||||
* Add Pushdown conditions
|
||||
* Add other network driver interfaces
|
||||
* Handle large result sets
|
||||
* Auto-discovery of tables on foreign data sources
|
||||
|
||||
Bugs (http://bugs.mysql.com)
|
||||
|
||||
20026 2006-05-23 FEDERATED lacks support for auto_increment_increment and auto_increment_offset
|
||||
20724 2006-06-27 FEDERATED does not honour SET INSERT_ID
|
||||
28269 2007-05-06 Any FEDERATED engine fails to quote reserved words for field names
|
||||
25509 2007-01-10 Federated: Failure with non-ASCII characters
|
||||
26697 2007-02-27 Every query to a federated table results in a full scan of MyISAM table.
|
||||
21360 2006-07-31 Microsoft Windows (Windows/Linux) mysqldump error on federated tables
|
||||
34189 2008-01-31 Any ALTER TABLE t1 ENGINE=FEDERATED CONNECTION='connectionString' on MyISAM fails
|
||||
31757 2007-10-22 Any Federated tables break replication Antony Curtis
|
||||
33953 2008-01-21 Any mysqld dies on search federated table using nullable index with < or <= operator
|
||||
34015 2008-01-23 Linux Problems with float fields using federated tables
|
||||
21583 2006-08-11 Linux (Linux) Federated table returns broken strings.
|
||||
33702 2008-01-05 Accessing a federated table with a non existing server returns random error code
|
||||
25512 2007-01-10 Federated: CREATE failures
|
||||
32426 2007-11-16 Any FEDERATED query returns corrupt results for ORDER BY on a TEXT field
|
||||
25510 2007-01-10 Federated: double trigger activation
|
||||
33250 2007-12-14 SELECT * FROM really_big_federated_table eats lots of virtual memory (OOM)
|
||||
14874 2005-11-11 Error 2013: Lost connection to MySQL server with Federated table
|
||||
25508 2007-01-10 Federated: Failure to Remove Partitioning
|
||||
27180 2007-03-15 #1030 - Got error 1 from storage engine with big tables
|
||||
33947 2008-01-20 Any Join on Federated tables with Unique index and IS NOT NULL crashes server
|
||||
30051 (fixed) CREATE TABLE does not connect and check existence of remote table
|
103
storage/federatedx/federatedx_io.cc
Normal file
103
storage/federatedx/federatedx_io.cc
Normal file
@ -0,0 +1,103 @@
|
||||
/*
|
||||
Copyright (c) 2007, Antony T Curtis
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Neither the name of FederatedX nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
/*#define MYSQL_SERVER 1*/
|
||||
#include "mysql_priv.h"
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
#include "ha_federatedx.h"
|
||||
|
||||
#include "m_string.h"
|
||||
|
||||
#ifdef USE_PRAGMA_IMPLEMENTATION
|
||||
#pragma implementation // gcc: Class implementation
|
||||
#endif
|
||||
|
||||
typedef federatedx_io *(*instantiate_io_type)(MEM_ROOT *server_root,
|
||||
FEDERATEDX_SERVER *server);
|
||||
struct io_schemes_st
|
||||
{
|
||||
const char *scheme;
|
||||
instantiate_io_type instantiate;
|
||||
};
|
||||
|
||||
|
||||
static const io_schemes_st federated_io_schemes[] =
|
||||
{
|
||||
{ "mysql", &instantiate_io_mysql },
|
||||
{ "null", instantiate_io_null } /* must be last element */
|
||||
};
|
||||
|
||||
const uint federated_io_schemes_count= array_elements(federated_io_schemes);
|
||||
|
||||
federatedx_io::federatedx_io(FEDERATEDX_SERVER *aserver)
|
||||
: server(aserver), owner_ptr(0), txn_next(0), idle_next(0),
|
||||
active(FALSE), busy(FALSE), readonly(TRUE)
|
||||
{
|
||||
DBUG_ENTER("federatedx_io::federatedx_io");
|
||||
DBUG_ASSERT(server);
|
||||
|
||||
safe_mutex_assert_owner(&server->mutex);
|
||||
server->io_count++;
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
federatedx_io::~federatedx_io()
|
||||
{
|
||||
DBUG_ENTER("federatedx_io::~federatedx_io");
|
||||
|
||||
server->io_count--;
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
bool federatedx_io::handles_scheme(const char *scheme)
|
||||
{
|
||||
const io_schemes_st *ptr = federated_io_schemes;
|
||||
const io_schemes_st *end = ptr + array_elements(federated_io_schemes);
|
||||
while (ptr != end && strcasecmp(scheme, ptr->scheme))
|
||||
++ptr;
|
||||
return ptr != end;
|
||||
}
|
||||
|
||||
|
||||
federatedx_io *federatedx_io::construct(MEM_ROOT *server_root,
|
||||
FEDERATEDX_SERVER *server)
|
||||
{
|
||||
const io_schemes_st *ptr = federated_io_schemes;
|
||||
const io_schemes_st *end = ptr + (array_elements(federated_io_schemes) - 1);
|
||||
while (ptr != end && strcasecmp(server->scheme, ptr->scheme))
|
||||
++ptr;
|
||||
return ptr->instantiate(server_root, server);
|
||||
}
|
||||
|
||||
|
592
storage/federatedx/federatedx_io_mysql.cc
Normal file
592
storage/federatedx/federatedx_io_mysql.cc
Normal file
@ -0,0 +1,592 @@
|
||||
/*
|
||||
Copyright (c) 2007, Antony T Curtis
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Neither the name of FederatedX nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
|
||||
/*#define MYSQL_SERVER 1*/
|
||||
#include "mysql_priv.h"
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
#include "ha_federatedx.h"
|
||||
|
||||
#include "m_string.h"
|
||||
|
||||
#ifdef USE_PRAGMA_IMPLEMENTATION
|
||||
#pragma implementation // gcc: Class implementation
|
||||
#endif
|
||||
|
||||
|
||||
#define SAVEPOINT_REALIZED 1
|
||||
#define SAVEPOINT_RESTRICT 2
|
||||
#define SAVEPOINT_EMITTED 4
|
||||
|
||||
|
||||
typedef struct federatedx_savepoint
|
||||
{
|
||||
ulong level;
|
||||
uint flags;
|
||||
} SAVEPT;
|
||||
|
||||
|
||||
class federatedx_io_mysql :public federatedx_io
|
||||
{
|
||||
MYSQL mysql; /* MySQL connection */
|
||||
DYNAMIC_ARRAY savepoints;
|
||||
bool requested_autocommit;
|
||||
bool actual_autocommit;
|
||||
|
||||
int actual_query(const char *buffer, uint length);
|
||||
bool test_all_restrict() const;
|
||||
public:
|
||||
federatedx_io_mysql(FEDERATEDX_SERVER *);
|
||||
~federatedx_io_mysql();
|
||||
|
||||
int simple_query(const char *fmt, ...);
|
||||
int query(const char *buffer, uint length);
|
||||
virtual FEDERATEDX_IO_RESULT *store_result();
|
||||
|
||||
virtual size_t max_query_size() const;
|
||||
|
||||
virtual my_ulonglong affected_rows() const;
|
||||
virtual my_ulonglong last_insert_id() const;
|
||||
|
||||
virtual int error_code();
|
||||
virtual const char *error_str();
|
||||
|
||||
void reset();
|
||||
int commit();
|
||||
int rollback();
|
||||
|
||||
int savepoint_set(ulong sp);
|
||||
ulong savepoint_release(ulong sp);
|
||||
ulong savepoint_rollback(ulong sp);
|
||||
void savepoint_restrict(ulong sp);
|
||||
|
||||
ulong last_savepoint() const;
|
||||
ulong actual_savepoint() const;
|
||||
bool is_autocommit() const;
|
||||
|
||||
bool table_metadata(ha_statistics *stats, const char *table_name,
|
||||
uint table_name_length, uint flag);
|
||||
|
||||
/* resultset operations */
|
||||
|
||||
virtual void free_result(FEDERATEDX_IO_RESULT *io_result);
|
||||
virtual unsigned int get_num_fields(FEDERATEDX_IO_RESULT *io_result);
|
||||
virtual my_ulonglong get_num_rows(FEDERATEDX_IO_RESULT *io_result);
|
||||
virtual FEDERATEDX_IO_ROW *fetch_row(FEDERATEDX_IO_RESULT *io_result);
|
||||
virtual ulong *fetch_lengths(FEDERATEDX_IO_RESULT *io_result);
|
||||
virtual const char *get_column_data(FEDERATEDX_IO_ROW *row,
|
||||
unsigned int column);
|
||||
virtual bool is_column_null(const FEDERATEDX_IO_ROW *row,
|
||||
unsigned int column) const;
|
||||
};
|
||||
|
||||
|
||||
federatedx_io *instantiate_io_mysql(MEM_ROOT *server_root,
|
||||
FEDERATEDX_SERVER *server)
|
||||
{
|
||||
return new (server_root) federatedx_io_mysql(server);
|
||||
}
|
||||
|
||||
|
||||
federatedx_io_mysql::federatedx_io_mysql(FEDERATEDX_SERVER *aserver)
|
||||
: federatedx_io(aserver),
|
||||
requested_autocommit(TRUE), actual_autocommit(TRUE)
|
||||
{
|
||||
DBUG_ENTER("federatedx_io_mysql::federatedx_io_mysql");
|
||||
|
||||
bzero(&mysql, sizeof(MYSQL));
|
||||
bzero(&savepoints, sizeof(DYNAMIC_ARRAY));
|
||||
|
||||
my_init_dynamic_array(&savepoints, sizeof(SAVEPT), 16, 16);
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
federatedx_io_mysql::~federatedx_io_mysql()
|
||||
{
|
||||
DBUG_ENTER("federatedx_io_mysql::~federatedx_io_mysql");
|
||||
|
||||
mysql_close(&mysql);
|
||||
delete_dynamic(&savepoints);
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
void federatedx_io_mysql::reset()
|
||||
{
|
||||
reset_dynamic(&savepoints);
|
||||
set_active(FALSE);
|
||||
|
||||
requested_autocommit= TRUE;
|
||||
mysql.reconnect= 1;
|
||||
}
|
||||
|
||||
|
||||
int federatedx_io_mysql::commit()
|
||||
{
|
||||
int error= 0;
|
||||
DBUG_ENTER("federatedx_io_mysql::commit");
|
||||
|
||||
if (!actual_autocommit && (error= actual_query("COMMIT", 6)))
|
||||
rollback();
|
||||
|
||||
reset();
|
||||
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
int federatedx_io_mysql::rollback()
|
||||
{
|
||||
int error= 0;
|
||||
DBUG_ENTER("federatedx_io_mysql::rollback");
|
||||
|
||||
if (!actual_autocommit)
|
||||
error= actual_query("ROLLBACK", 8);
|
||||
else
|
||||
error= ER_WARNING_NOT_COMPLETE_ROLLBACK;
|
||||
|
||||
reset();
|
||||
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
||||
ulong federatedx_io_mysql::last_savepoint() const
|
||||
{
|
||||
SAVEPT *savept= NULL;
|
||||
DBUG_ENTER("federatedx_io_mysql::last_savepoint");
|
||||
|
||||
if (savepoints.elements)
|
||||
savept= dynamic_element(&savepoints, savepoints.elements - 1, SAVEPT *);
|
||||
|
||||
DBUG_RETURN(savept ? savept->level : 0);
|
||||
}
|
||||
|
||||
|
||||
ulong federatedx_io_mysql::actual_savepoint() const
|
||||
{
|
||||
SAVEPT *savept= NULL;
|
||||
uint index= savepoints.elements;
|
||||
DBUG_ENTER("federatedx_io_mysql::last_savepoint");
|
||||
|
||||
while (index)
|
||||
{
|
||||
savept= dynamic_element(&savepoints, --index, SAVEPT *);
|
||||
if (savept->flags & SAVEPOINT_REALIZED)
|
||||
break;
|
||||
savept= NULL;
|
||||
}
|
||||
|
||||
DBUG_RETURN(savept ? savept->level : 0);
|
||||
}
|
||||
|
||||
bool federatedx_io_mysql::is_autocommit() const
|
||||
{
|
||||
return actual_autocommit;
|
||||
}
|
||||
|
||||
|
||||
int federatedx_io_mysql::savepoint_set(ulong sp)
|
||||
{
|
||||
int error;
|
||||
SAVEPT savept;
|
||||
DBUG_ENTER("federatedx_io_mysql::savepoint_set");
|
||||
DBUG_PRINT("info",("savepoint=%lu", sp));
|
||||
DBUG_ASSERT(sp > last_savepoint());
|
||||
|
||||
savept.level= sp;
|
||||
savept.flags= 0;
|
||||
|
||||
if ((error= insert_dynamic(&savepoints, (uchar*) &savept) ? -1 : 0))
|
||||
goto err;
|
||||
|
||||
set_active(TRUE);
|
||||
mysql.reconnect= 0;
|
||||
requested_autocommit= FALSE;
|
||||
|
||||
err:
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
||||
ulong federatedx_io_mysql::savepoint_release(ulong sp)
|
||||
{
|
||||
SAVEPT *savept, *last= NULL;
|
||||
DBUG_ENTER("federatedx_io_mysql::savepoint_release");
|
||||
DBUG_PRINT("info",("savepoint=%lu", sp));
|
||||
|
||||
while (savepoints.elements)
|
||||
{
|
||||
savept= dynamic_element(&savepoints, savepoints.elements - 1, SAVEPT *);
|
||||
if (savept->level < sp)
|
||||
break;
|
||||
if ((savept->flags & (SAVEPOINT_REALIZED |
|
||||
SAVEPOINT_RESTRICT)) == SAVEPOINT_REALIZED)
|
||||
last= savept;
|
||||
savepoints.elements--;
|
||||
}
|
||||
|
||||
if (last)
|
||||
{
|
||||
char buffer[STRING_BUFFER_USUAL_SIZE];
|
||||
int length= my_snprintf(buffer, sizeof(buffer),
|
||||
"RELEASE SAVEPOINT save%lu", last->level);
|
||||
actual_query(buffer, length);
|
||||
}
|
||||
|
||||
DBUG_RETURN(last_savepoint());
|
||||
}
|
||||
|
||||
|
||||
ulong federatedx_io_mysql::savepoint_rollback(ulong sp)
|
||||
{
|
||||
SAVEPT *savept;
|
||||
uint index;
|
||||
DBUG_ENTER("federatedx_io_mysql::savepoint_release");
|
||||
DBUG_PRINT("info",("savepoint=%lu", sp));
|
||||
|
||||
while (savepoints.elements)
|
||||
{
|
||||
savept= dynamic_element(&savepoints, savepoints.elements - 1, SAVEPT *);
|
||||
if (savept->level <= sp)
|
||||
break;
|
||||
savepoints.elements--;
|
||||
}
|
||||
|
||||
for (index= savepoints.elements, savept= NULL; index;)
|
||||
{
|
||||
savept= dynamic_element(&savepoints, --index, SAVEPT *);
|
||||
if (savept->flags & SAVEPOINT_REALIZED)
|
||||
break;
|
||||
savept= NULL;
|
||||
}
|
||||
|
||||
if (savept && !(savept->flags & SAVEPOINT_RESTRICT))
|
||||
{
|
||||
char buffer[STRING_BUFFER_USUAL_SIZE];
|
||||
int length= my_snprintf(buffer, sizeof(buffer),
|
||||
"ROLLBACK TO SAVEPOINT save%lu", savept->level);
|
||||
actual_query(buffer, length);
|
||||
}
|
||||
|
||||
DBUG_RETURN(last_savepoint());
|
||||
}
|
||||
|
||||
|
||||
void federatedx_io_mysql::savepoint_restrict(ulong sp)
|
||||
{
|
||||
SAVEPT *savept;
|
||||
uint index= savepoints.elements;
|
||||
DBUG_ENTER("federatedx_io_mysql::savepoint_restrict");
|
||||
|
||||
while (index)
|
||||
{
|
||||
savept= dynamic_element(&savepoints, --index, SAVEPT *);
|
||||
if (savept->level > sp)
|
||||
continue;
|
||||
if (savept->level < sp)
|
||||
break;
|
||||
savept->flags|= SAVEPOINT_RESTRICT;
|
||||
break;
|
||||
}
|
||||
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
int federatedx_io_mysql::simple_query(const char *fmt, ...)
|
||||
{
|
||||
char buffer[STRING_BUFFER_USUAL_SIZE];
|
||||
int length, error;
|
||||
va_list arg;
|
||||
DBUG_ENTER("federatedx_io_mysql::simple_query");
|
||||
|
||||
va_start(arg, fmt);
|
||||
length= my_vsnprintf(buffer, sizeof(buffer), fmt, arg);
|
||||
va_end(arg);
|
||||
|
||||
error= query(buffer, length);
|
||||
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
||||
bool federatedx_io_mysql::test_all_restrict() const
|
||||
{
|
||||
bool result= FALSE;
|
||||
SAVEPT *savept;
|
||||
uint index= savepoints.elements;
|
||||
DBUG_ENTER("federatedx_io_mysql::test_all_restrict");
|
||||
|
||||
while (index)
|
||||
{
|
||||
savept= dynamic_element(&savepoints, --index, SAVEPT *);
|
||||
if ((savept->flags & (SAVEPOINT_REALIZED |
|
||||
SAVEPOINT_RESTRICT)) == SAVEPOINT_REALIZED ||
|
||||
(savept->flags & SAVEPOINT_EMITTED))
|
||||
DBUG_RETURN(FALSE);
|
||||
if (savept->flags & SAVEPOINT_RESTRICT)
|
||||
result= TRUE;
|
||||
}
|
||||
|
||||
DBUG_RETURN(result);
|
||||
}
|
||||
|
||||
|
||||
int federatedx_io_mysql::query(const char *buffer, uint length)
|
||||
{
|
||||
int error;
|
||||
bool wants_autocommit= requested_autocommit | is_readonly();
|
||||
DBUG_ENTER("federatedx_io_mysql::query");
|
||||
|
||||
if (!wants_autocommit && test_all_restrict())
|
||||
wants_autocommit= TRUE;
|
||||
|
||||
if (wants_autocommit != actual_autocommit)
|
||||
{
|
||||
if ((error= actual_query(wants_autocommit ? "SET AUTOCOMMIT=1"
|
||||
: "SET AUTOCOMMIT=0", 16)))
|
||||
DBUG_RETURN(error);
|
||||
mysql.reconnect= wants_autocommit ? 1 : 0;
|
||||
actual_autocommit= wants_autocommit;
|
||||
}
|
||||
|
||||
if (!actual_autocommit && last_savepoint() != actual_savepoint())
|
||||
{
|
||||
SAVEPT *savept= dynamic_element(&savepoints, savepoints.elements - 1,
|
||||
SAVEPT *);
|
||||
if (!(savept->flags & SAVEPOINT_RESTRICT))
|
||||
{
|
||||
char buf[STRING_BUFFER_USUAL_SIZE];
|
||||
int len= my_snprintf(buf, sizeof(buf),
|
||||
"SAVEPOINT save%lu", savept->level);
|
||||
if ((error= actual_query(buf, len)))
|
||||
DBUG_RETURN(error);
|
||||
set_active(TRUE);
|
||||
savept->flags|= SAVEPOINT_EMITTED;
|
||||
}
|
||||
savept->flags|= SAVEPOINT_REALIZED;
|
||||
}
|
||||
|
||||
if (!(error= actual_query(buffer, length)))
|
||||
set_active(is_active() || !actual_autocommit);
|
||||
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
||||
int federatedx_io_mysql::actual_query(const char *buffer, uint length)
|
||||
{
|
||||
int error;
|
||||
DBUG_ENTER("federatedx_io_mysql::actual_query");
|
||||
|
||||
if (!mysql.master)
|
||||
{
|
||||
if (!(mysql_init(&mysql)))
|
||||
DBUG_RETURN(-1);
|
||||
|
||||
/*
|
||||
BUG# 17044 Federated Storage Engine is not UTF8 clean
|
||||
Add set names to whatever charset the table is at open
|
||||
of table
|
||||
*/
|
||||
/* this sets the csname like 'set names utf8' */
|
||||
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, get_charsetname());
|
||||
|
||||
if (!mysql_real_connect(&mysql,
|
||||
get_hostname(),
|
||||
get_username(),
|
||||
get_password(),
|
||||
get_database(),
|
||||
get_port(),
|
||||
get_socket(), 0))
|
||||
DBUG_RETURN(ER_CONNECT_TO_FOREIGN_DATA_SOURCE);
|
||||
mysql.reconnect= 1;
|
||||
}
|
||||
|
||||
error= mysql_real_query(&mysql, buffer, length);
|
||||
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
size_t federatedx_io_mysql::max_query_size() const
|
||||
{
|
||||
return mysql.net.max_packet_size;
|
||||
}
|
||||
|
||||
|
||||
my_ulonglong federatedx_io_mysql::affected_rows() const
|
||||
{
|
||||
return mysql.affected_rows;
|
||||
}
|
||||
|
||||
|
||||
my_ulonglong federatedx_io_mysql::last_insert_id() const
|
||||
{
|
||||
return mysql.last_used_con->insert_id;
|
||||
}
|
||||
|
||||
|
||||
int federatedx_io_mysql::error_code()
|
||||
{
|
||||
return mysql_errno(&mysql);
|
||||
}
|
||||
|
||||
|
||||
const char *federatedx_io_mysql::error_str()
|
||||
{
|
||||
return mysql_error(&mysql);
|
||||
}
|
||||
|
||||
|
||||
FEDERATEDX_IO_RESULT *federatedx_io_mysql::store_result()
|
||||
{
|
||||
FEDERATEDX_IO_RESULT *result;
|
||||
DBUG_ENTER("federatedx_io_mysql::store_result");
|
||||
|
||||
result= (FEDERATEDX_IO_RESULT *) mysql_store_result(&mysql);
|
||||
|
||||
DBUG_RETURN(result);
|
||||
}
|
||||
|
||||
|
||||
void federatedx_io_mysql::free_result(FEDERATEDX_IO_RESULT *io_result)
|
||||
{
|
||||
mysql_free_result((MYSQL_RES *) io_result);
|
||||
}
|
||||
|
||||
|
||||
unsigned int federatedx_io_mysql::get_num_fields(FEDERATEDX_IO_RESULT *io_result)
|
||||
{
|
||||
return mysql_num_fields((MYSQL_RES *) io_result);
|
||||
}
|
||||
|
||||
|
||||
my_ulonglong federatedx_io_mysql::get_num_rows(FEDERATEDX_IO_RESULT *io_result)
|
||||
{
|
||||
return mysql_num_rows((MYSQL_RES *) io_result);
|
||||
}
|
||||
|
||||
|
||||
FEDERATEDX_IO_ROW *federatedx_io_mysql::fetch_row(FEDERATEDX_IO_RESULT *io_result)
|
||||
{
|
||||
return (FEDERATEDX_IO_ROW *) mysql_fetch_row((MYSQL_RES *) io_result);
|
||||
}
|
||||
|
||||
|
||||
ulong *federatedx_io_mysql::fetch_lengths(FEDERATEDX_IO_RESULT *io_result)
|
||||
{
|
||||
return mysql_fetch_lengths((MYSQL_RES *) io_result);
|
||||
}
|
||||
|
||||
|
||||
const char *federatedx_io_mysql::get_column_data(FEDERATEDX_IO_ROW *row,
|
||||
unsigned int column)
|
||||
{
|
||||
return ((MYSQL_ROW)row)[column];
|
||||
}
|
||||
|
||||
|
||||
bool federatedx_io_mysql::is_column_null(const FEDERATEDX_IO_ROW *row,
|
||||
unsigned int column) const
|
||||
{
|
||||
return !((MYSQL_ROW)row)[column];
|
||||
}
|
||||
|
||||
bool federatedx_io_mysql::table_metadata(ha_statistics *stats,
|
||||
const char *table_name,
|
||||
uint table_name_length, uint flag)
|
||||
{
|
||||
char status_buf[FEDERATEDX_QUERY_BUFFER_SIZE];
|
||||
FEDERATEDX_IO_RESULT *result= 0;
|
||||
FEDERATEDX_IO_ROW *row;
|
||||
String status_query_string(status_buf, sizeof(status_buf), &my_charset_bin);
|
||||
int error;
|
||||
|
||||
status_query_string.length(0);
|
||||
status_query_string.append(STRING_WITH_LEN("SHOW TABLE STATUS LIKE "));
|
||||
append_ident(&status_query_string, table_name,
|
||||
table_name_length, value_quote_char);
|
||||
|
||||
if (query(status_query_string.ptr(), status_query_string.length()))
|
||||
goto error;
|
||||
|
||||
status_query_string.length(0);
|
||||
|
||||
result= store_result();
|
||||
|
||||
/*
|
||||
We're going to use fields num. 4, 12 and 13 of the resultset,
|
||||
so make sure we have these fields.
|
||||
*/
|
||||
if (!result || (get_num_fields(result) < 14))
|
||||
goto error;
|
||||
|
||||
if (!get_num_rows(result))
|
||||
goto error;
|
||||
|
||||
if (!(row= fetch_row(result)))
|
||||
goto error;
|
||||
|
||||
/*
|
||||
deleted is set in ha_federatedx::info
|
||||
*/
|
||||
/*
|
||||
need to figure out what this means as far as federatedx is concerned,
|
||||
since we don't have a "file"
|
||||
|
||||
data_file_length = ?
|
||||
index_file_length = ?
|
||||
delete_length = ?
|
||||
*/
|
||||
if (!is_column_null(row, 4))
|
||||
stats->records= (ha_rows) my_strtoll10(get_column_data(row, 4),
|
||||
(char**) 0, &error);
|
||||
if (!is_column_null(row, 5))
|
||||
stats->mean_rec_length= (ulong) my_strtoll10(get_column_data(row, 5),
|
||||
(char**) 0, &error);
|
||||
|
||||
stats->data_file_length= stats->records * stats->mean_rec_length;
|
||||
|
||||
if (!is_column_null(row, 12))
|
||||
stats->update_time= (time_t) my_strtoll10(get_column_data(row, 12),
|
||||
(char**) 0, &error);
|
||||
if (!is_column_null(row, 13))
|
||||
stats->check_time= (time_t) my_strtoll10(get_column_data(row, 13),
|
||||
(char**) 0, &error);
|
||||
|
||||
free_result(result);
|
||||
return 0;
|
||||
|
||||
error:
|
||||
free_result(result);
|
||||
return 1;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user