mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge bk-internal.mysql.com:/data0/bk/mysql-5.0
into bk-internal.mysql.com:/data0/bk/mysql-5.0-opt
This commit is contained in:
@ -2535,15 +2535,18 @@ static void dump_table(char *table, char *db)
|
|||||||
plus 2 bytes for '0x' prefix.
|
plus 2 bytes for '0x' prefix.
|
||||||
- In non-HEX mode we need up to 2 bytes per character,
|
- In non-HEX mode we need up to 2 bytes per character,
|
||||||
plus 2 bytes for leading and trailing '\'' characters.
|
plus 2 bytes for leading and trailing '\'' characters.
|
||||||
|
Also we need to reserve 1 byte for terminating '\0'.
|
||||||
*/
|
*/
|
||||||
dynstr_realloc_checked(&extended_row,length * 2+2);
|
dynstr_realloc_checked(&extended_row,length * 2 + 2 + 1);
|
||||||
if (opt_hex_blob && is_blob)
|
if (opt_hex_blob && is_blob)
|
||||||
{
|
{
|
||||||
dynstr_append_checked(&extended_row, "0x");
|
dynstr_append_checked(&extended_row, "0x");
|
||||||
extended_row.length+= mysql_hex_string(extended_row.str +
|
extended_row.length+= mysql_hex_string(extended_row.str +
|
||||||
extended_row.length,
|
extended_row.length,
|
||||||
row[i], length);
|
row[i], length);
|
||||||
extended_row.str[extended_row.length]= '\0';
|
DBUG_ASSERT(extended_row.length+1 <= extended_row.max_length);
|
||||||
|
/* mysql_hex_string() already terminated string by '\0' */
|
||||||
|
DBUG_ASSERT(extended_row.str[extended_row.length] == '\0');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -884,3 +884,22 @@ id
|
|||||||
50
|
50
|
||||||
51
|
51
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
set @orig_sql_mode = @@sql_mode;
|
||||||
|
set sql_mode="no_zero_date";
|
||||||
|
create table t1(f1 int);
|
||||||
|
alter table t1 add column f2 datetime not null, add column f21 date not null;
|
||||||
|
insert into t1 values(1,'2000-01-01','2000-01-01');
|
||||||
|
alter table t1 add column f3 datetime not null;
|
||||||
|
ERROR 22007: Incorrect datetime value: '0000-00-00 00:00:00' for column 'f3' at row 1
|
||||||
|
alter table t1 add column f3 date not null;
|
||||||
|
ERROR 22007: Incorrect date value: '0000-00-00' for column 'f3' at row 1
|
||||||
|
alter table t1 add column f4 datetime not null default '2002-02-02',
|
||||||
|
add column f41 date not null;
|
||||||
|
ERROR 22007: Incorrect date value: '0000-00-00' for column 'f41' at row 1
|
||||||
|
alter table t1 add column f4 datetime not null default '2002-02-02',
|
||||||
|
add column f41 date not null default '2002-02-02';
|
||||||
|
select * from t1;
|
||||||
|
f1 f2 f21 f4 f41
|
||||||
|
1 2000-01-01 00:00:00 2000-01-01 2002-02-02 00:00:00 2002-02-02
|
||||||
|
drop table t1;
|
||||||
|
set sql_mode= @orig_sql_mode;
|
||||||
|
@ -763,4 +763,51 @@ Warnings:
|
|||||||
Warning 1260 1 line(s) were cut by GROUP_CONCAT()
|
Warning 1260 1 line(s) were cut by GROUP_CONCAT()
|
||||||
SET group_concat_max_len = DEFAULT;
|
SET group_concat_max_len = DEFAULT;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
SET group_concat_max_len= 65535;
|
||||||
|
CREATE TABLE t1( a TEXT, b INTEGER );
|
||||||
|
INSERT INTO t1 VALUES ( 'a', 0 ), ( 'b', 1 );
|
||||||
|
SELECT GROUP_CONCAT( a ORDER BY b ) FROM t1;
|
||||||
|
GROUP_CONCAT( a ORDER BY b )
|
||||||
|
a,b
|
||||||
|
SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1;
|
||||||
|
GROUP_CONCAT(DISTINCT a ORDER BY b)
|
||||||
|
a,b
|
||||||
|
SELECT GROUP_CONCAT(DISTINCT a) FROM t1;
|
||||||
|
GROUP_CONCAT(DISTINCT a)
|
||||||
|
a,b
|
||||||
|
SET group_concat_max_len= 10;
|
||||||
|
SELECT GROUP_CONCAT(a ORDER BY b) FROM t1;
|
||||||
|
GROUP_CONCAT(a ORDER BY b)
|
||||||
|
a,b
|
||||||
|
SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1;
|
||||||
|
GROUP_CONCAT(DISTINCT a ORDER BY b)
|
||||||
|
a,b
|
||||||
|
SELECT GROUP_CONCAT(DISTINCT a) FROM t1;
|
||||||
|
GROUP_CONCAT(DISTINCT a)
|
||||||
|
a,b
|
||||||
|
SET group_concat_max_len= 65535;
|
||||||
|
CREATE TABLE t2( a TEXT );
|
||||||
|
INSERT INTO t2 VALUES( REPEAT( 'a', 5000 ) );
|
||||||
|
INSERT INTO t2 VALUES( REPEAT( 'b', 5000 ) );
|
||||||
|
INSERT INTO t2 VALUES( REPEAT( 'a', 5000 ) );
|
||||||
|
SELECT LENGTH( GROUP_CONCAT( DISTINCT a ) ) FROM t2;
|
||||||
|
LENGTH( GROUP_CONCAT( DISTINCT a ) )
|
||||||
|
10001
|
||||||
|
CREATE TABLE t3( a TEXT, b INT );
|
||||||
|
INSERT INTO t3 VALUES( REPEAT( 'a', 65534 ), 1 );
|
||||||
|
INSERT INTO t3 VALUES( REPEAT( 'a', 65535 ), 2 );
|
||||||
|
INSERT INTO t3 VALUES( REPEAT( 'a', 65536 ), 3 );
|
||||||
|
Warnings:
|
||||||
|
Warning 1265 Data truncated for column 'a' at row 1
|
||||||
|
SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 1;
|
||||||
|
LENGTH( GROUP_CONCAT( a ) )
|
||||||
|
65534
|
||||||
|
SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 2;
|
||||||
|
LENGTH( GROUP_CONCAT( a ) )
|
||||||
|
65535
|
||||||
|
SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 3;
|
||||||
|
LENGTH( GROUP_CONCAT( a ) )
|
||||||
|
65535
|
||||||
|
SET group_concat_max_len= DEFAULT;
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -1239,3 +1239,18 @@ Handler_read_prev 0
|
|||||||
Handler_read_rnd 0
|
Handler_read_rnd 0
|
||||||
Handler_read_rnd_next 6
|
Handler_read_rnd_next 6
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (c int PRIMARY KEY, e int NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (1,0), (2,1);
|
||||||
|
CREATE TABLE t2 (d int PRIMARY KEY);
|
||||||
|
INSERT INTO t2 VALUES (1), (2), (3);
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d IS NULL;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1
|
||||||
|
1 SIMPLE t2 index NULL PRIMARY 4 NULL 3 Using where; Using index; Not exists
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d IS NULL;
|
||||||
|
c e d
|
||||||
|
1 0 NULL
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d<=>NULL;
|
||||||
|
c e d
|
||||||
|
1 0 NULL
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
@ -455,3 +455,11 @@ ORDER BY c.b, c.d
|
|||||||
a b c d e f g h i j a b c d
|
a b c d e f g h i j a b c d
|
||||||
2 2 1 2004-11-30 12:00:00 1 0 0 0 0 0 2 3388000 -553000 NULL
|
2 2 1 2004-11-30 12:00:00 1 0 0 0 0 0 2 3388000 -553000 NULL
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
CREATE TABLE t1( a TINYINT, KEY(a) ) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES( 1 );
|
||||||
|
ALTER TABLE t1 DISABLE KEYS;
|
||||||
|
EXPLAIN SELECT MAX(a) FROM t1 FORCE INDEX(a);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||||
|
DROP TABLE t1;
|
||||||
|
End of 5.0 tests.
|
||||||
|
@ -41,3 +41,85 @@ select 1;
|
|||||||
select RELEASE_LOCK("a");
|
select RELEASE_LOCK("a");
|
||||||
RELEASE_LOCK("a")
|
RELEASE_LOCK("a")
|
||||||
1
|
1
|
||||||
|
create table t1(f1 int);
|
||||||
|
create function bug27563() returns int(11)
|
||||||
|
deterministic
|
||||||
|
begin
|
||||||
|
declare continue handler for sqlstate '70100' set @a:= 'killed';
|
||||||
|
declare continue handler for sqlexception set @a:= 'exception';
|
||||||
|
set @a= get_lock("lock27563", 10);
|
||||||
|
return 1;
|
||||||
|
end|
|
||||||
|
select get_lock("lock27563",10);
|
||||||
|
get_lock("lock27563",10)
|
||||||
|
1
|
||||||
|
insert into t1 values (bug27563());
|
||||||
|
ERROR 70100: Query execution was interrupted
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
NULL
|
||||||
|
select * from t1;
|
||||||
|
f1
|
||||||
|
insert into t1 values(0);
|
||||||
|
update t1 set f1= bug27563();
|
||||||
|
ERROR 70100: Query execution was interrupted
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
NULL
|
||||||
|
select * from t1;
|
||||||
|
f1
|
||||||
|
0
|
||||||
|
insert into t1 values(1);
|
||||||
|
delete from t1 where bug27563() is null;
|
||||||
|
ERROR 70100: Query execution was interrupted
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
NULL
|
||||||
|
select * from t1;
|
||||||
|
f1
|
||||||
|
0
|
||||||
|
1
|
||||||
|
select * from t1 where f1= bug27563();
|
||||||
|
ERROR 70100: Query execution was interrupted
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
NULL
|
||||||
|
create procedure proc27563()
|
||||||
|
begin
|
||||||
|
declare continue handler for sqlstate '70100' set @a:= 'killed';
|
||||||
|
declare continue handler for sqlexception set @a:= 'exception';
|
||||||
|
select get_lock("lock27563",10);
|
||||||
|
select "shouldn't be selected";
|
||||||
|
end|
|
||||||
|
call proc27563();
|
||||||
|
get_lock("lock27563",10)
|
||||||
|
NULL
|
||||||
|
ERROR 70100: Query execution was interrupted
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
NULL
|
||||||
|
create table t2 (f2 int);
|
||||||
|
create trigger trg27563 before insert on t1 for each row
|
||||||
|
begin
|
||||||
|
declare continue handler for sqlstate '70100' set @a:= 'killed';
|
||||||
|
declare continue handler for sqlexception set @a:= 'exception';
|
||||||
|
set @a:= get_lock("lock27563",10);
|
||||||
|
insert into t2 values(1);
|
||||||
|
end|
|
||||||
|
insert into t1 values(2),(3);
|
||||||
|
ERROR 70100: Query execution was interrupted
|
||||||
|
select @a;
|
||||||
|
@a
|
||||||
|
NULL
|
||||||
|
select * from t1;
|
||||||
|
f1
|
||||||
|
0
|
||||||
|
1
|
||||||
|
select * from t2;
|
||||||
|
f2
|
||||||
|
select release_lock("lock27563");
|
||||||
|
release_lock("lock27563")
|
||||||
|
1
|
||||||
|
drop table t1, t2;
|
||||||
|
drop function bug27563;
|
||||||
|
drop procedure proc27563;
|
||||||
|
@ -1780,4 +1780,30 @@ create table t3 (c1 int) engine=myisam pack_keys=default;
|
|||||||
create table t4 (c1 int) engine=myisam pack_keys=2;
|
create table t4 (c1 int) engine=myisam pack_keys=2;
|
||||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2' at line 1
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2' at line 1
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
|
CREATE TABLE t1(a INT, b INT, KEY inx (a), UNIQUE KEY uinx (b)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1(a,b) VALUES (1,1),(2,2),(3,3),(4,4),(5,5);
|
||||||
|
SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
ALTER TABLE t1 DISABLE KEYS;
|
||||||
|
SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
SELECT a FROM t1 USE INDEX (inx) WHERE a=1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
SELECT b FROM t1 FORCE INDEX (uinx) WHERE b=1;
|
||||||
|
b
|
||||||
|
1
|
||||||
|
SELECT b FROM t1 USE INDEX (uinx) WHERE b=1;
|
||||||
|
b
|
||||||
|
1
|
||||||
|
SELECT a FROM t1 FORCE INDEX (inx,uinx) WHERE a=1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
ALTER TABLE t1 ENABLE KEYS;
|
||||||
|
SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -3310,5 +3310,16 @@ drop user user1;
|
|||||||
drop user user2;
|
drop user user2;
|
||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
#
|
#
|
||||||
|
# Bug #28522: buffer overrun by '\0' byte using --hex-blob.
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (c1 INT, c2 LONGBLOB);
|
||||||
|
INSERT INTO t1 SET c1=11, c2=REPEAT('q',509);
|
||||||
|
CREATE TABLE `t1` (
|
||||||
|
`c1` int(11) default NULL,
|
||||||
|
`c2` longblob
|
||||||
|
);
|
||||||
|
INSERT INTO `t1` VALUES (11,0x7171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171717171);
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# End of 5.0 tests
|
# End of 5.0 tests
|
||||||
#
|
#
|
||||||
|
@ -1927,8 +1927,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -1974,8 +1974,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2024,8 +2024,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2064,8 +2064,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2112,8 +2112,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2156,8 +2156,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2202,8 +2202,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2240,8 +2240,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
|
@ -1910,8 +1910,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -1957,8 +1957,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2007,8 +2007,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2047,8 +2047,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2095,8 +2095,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2139,8 +2139,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2185,8 +2185,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2223,8 +2223,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
|
@ -1911,8 +1911,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -1958,8 +1958,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2008,8 +2008,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2048,8 +2048,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2096,8 +2096,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2140,8 +2140,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2186,8 +2186,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2224,8 +2224,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
|
@ -1847,8 +1847,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -1894,8 +1894,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -1944,8 +1944,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -1984,8 +1984,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2032,8 +2032,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2076,8 +2076,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2122,8 +2122,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2160,8 +2160,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -4868,8 +4868,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -4915,8 +4915,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -4965,8 +4965,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -5005,8 +5005,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -5053,8 +5053,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -5097,8 +5097,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -5143,8 +5143,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -5181,8 +5181,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
|
@ -1910,8 +1910,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -1957,8 +1957,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2007,8 +2007,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2047,8 +2047,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2095,8 +2095,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2139,8 +2139,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2185,8 +2185,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2223,8 +2223,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
|
@ -1910,8 +1910,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -1957,8 +1957,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2007,8 +2007,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2047,8 +2047,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2095,8 +2095,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2139,8 +2139,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2185,8 +2185,8 @@ def @arg07 253 23 1 Y 128 31 63
|
|||||||
def @arg08 253 23 1 Y 128 31 63
|
def @arg08 253 23 1 Y 128 31 63
|
||||||
def @arg09 253 23 1 Y 128 31 63
|
def @arg09 253 23 1 Y 128 31 63
|
||||||
def @arg10 253 23 1 Y 128 31 63
|
def @arg10 253 23 1 Y 128 31 63
|
||||||
def @arg11 253 67 6 Y 128 30 63
|
def @arg11 253 83 6 Y 128 30 63
|
||||||
def @arg12 253 67 6 Y 128 30 63
|
def @arg12 253 83 6 Y 128 30 63
|
||||||
def @arg13 253 8192 10 Y 128 31 63
|
def @arg13 253 8192 10 Y 128 31 63
|
||||||
def @arg14 253 8192 19 Y 128 31 63
|
def @arg14 253 8192 19 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
@ -2223,8 +2223,8 @@ def @arg07 253 23 0 Y 128 31 63
|
|||||||
def @arg08 253 23 0 Y 128 31 63
|
def @arg08 253 23 0 Y 128 31 63
|
||||||
def @arg09 253 23 0 Y 128 31 63
|
def @arg09 253 23 0 Y 128 31 63
|
||||||
def @arg10 253 23 0 Y 128 31 63
|
def @arg10 253 23 0 Y 128 31 63
|
||||||
def @arg11 253 67 0 Y 128 30 63
|
def @arg11 253 83 0 Y 128 30 63
|
||||||
def @arg12 253 67 0 Y 128 30 63
|
def @arg12 253 83 0 Y 128 30 63
|
||||||
def @arg13 253 8192 0 Y 128 31 63
|
def @arg13 253 8192 0 Y 128 31 63
|
||||||
def @arg14 253 8192 0 Y 128 31 63
|
def @arg14 253 8192 0 Y 128 31 63
|
||||||
def @arg15 253 8192 19 Y 128 31 63
|
def @arg15 253 8192 19 Y 128 31 63
|
||||||
|
@ -742,3 +742,21 @@ x
|
|||||||
0
|
0
|
||||||
0
|
0
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
CREATE TABLE t1 (a INT NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (1),(-1), (65),(66);
|
||||||
|
CREATE TABLE t2 (a INT UNSIGNED NOT NULL PRIMARY KEY);
|
||||||
|
INSERT INTO t2 VALUES (65),(66);
|
||||||
|
SELECT a FROM t1 WHERE a NOT IN (65,66);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
-1
|
||||||
|
SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
-1
|
||||||
|
EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2);
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where
|
||||||
|
2 DEPENDENT SUBQUERY t2 unique_subquery PRIMARY PRIMARY 4 func 1 Using index
|
||||||
|
DROP TABLE t1;
|
||||||
|
End of 5.0 tests
|
||||||
|
@ -1465,4 +1465,10 @@ Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at r
|
|||||||
Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
|
Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
|
Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
|
Error 1264 Out of range value adjusted for column 'cast(a as DECIMAL(3,2))' at row 1
|
||||||
|
create table t1 (s varchar(100));
|
||||||
|
insert into t1 values (0.00000000010000000000000000364321973154977415791655470655996396089904010295867919921875);
|
||||||
|
drop table t1;
|
||||||
|
SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
|
||||||
|
a b
|
||||||
|
0.9999999999999800000000000000 0.9999999999999800000000000000
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
|
@ -3367,4 +3367,14 @@ SHOW CREATE VIEW v1;
|
|||||||
View Create View
|
View Create View
|
||||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(1.23456789 as decimal(8,0)) AS `col`
|
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(1.23456789 as decimal(8,0)) AS `col`
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
CREATE TABLE t1 (id int);
|
||||||
|
CREATE TABLE t2 (id int, c int DEFAULT 0);
|
||||||
|
INSERT INTO t1 (id) VALUES (1);
|
||||||
|
INSERT INTO t2 (id) VALUES (1);
|
||||||
|
CREATE VIEW v1 AS
|
||||||
|
SELECT t2.c FROM t1, t2
|
||||||
|
WHERE t1.id=t2.id AND 1 IN (SELECT id FROM t1) WITH CHECK OPTION;
|
||||||
|
UPDATE v1 SET c=1;
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
|
@ -662,3 +662,25 @@ insert into t1 values (null);
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#27507: Wrong DATETIME value was allowed by ALTER TABLE in the
|
||||||
|
# NO_ZERO_DATE mode.
|
||||||
|
#
|
||||||
|
set @orig_sql_mode = @@sql_mode;
|
||||||
|
set sql_mode="no_zero_date";
|
||||||
|
create table t1(f1 int);
|
||||||
|
alter table t1 add column f2 datetime not null, add column f21 date not null;
|
||||||
|
insert into t1 values(1,'2000-01-01','2000-01-01');
|
||||||
|
--error 1292
|
||||||
|
alter table t1 add column f3 datetime not null;
|
||||||
|
--error 1292
|
||||||
|
alter table t1 add column f3 date not null;
|
||||||
|
--error 1292
|
||||||
|
alter table t1 add column f4 datetime not null default '2002-02-02',
|
||||||
|
add column f41 date not null;
|
||||||
|
alter table t1 add column f4 datetime not null default '2002-02-02',
|
||||||
|
add column f41 date not null default '2002-02-02';
|
||||||
|
select * from t1;
|
||||||
|
drop table t1;
|
||||||
|
set sql_mode= @orig_sql_mode;
|
||||||
|
@ -520,5 +520,35 @@ SELECT GROUP_CONCAT( a ORDER BY b ) FROM t1;
|
|||||||
SELECT GROUP_CONCAT( DISTINCT a ORDER BY b ) FROM t1;
|
SELECT GROUP_CONCAT( DISTINCT a ORDER BY b ) FROM t1;
|
||||||
SET group_concat_max_len = DEFAULT;
|
SET group_concat_max_len = DEFAULT;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
# Bug #23856:GROUP_CONCAT and ORDER BY: junk from previous rows for query on I_S
|
||||||
|
#
|
||||||
|
SET group_concat_max_len= 65535;
|
||||||
|
CREATE TABLE t1( a TEXT, b INTEGER );
|
||||||
|
INSERT INTO t1 VALUES ( 'a', 0 ), ( 'b', 1 );
|
||||||
|
SELECT GROUP_CONCAT( a ORDER BY b ) FROM t1;
|
||||||
|
SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1;
|
||||||
|
SELECT GROUP_CONCAT(DISTINCT a) FROM t1;
|
||||||
|
SET group_concat_max_len= 10;
|
||||||
|
SELECT GROUP_CONCAT(a ORDER BY b) FROM t1;
|
||||||
|
SELECT GROUP_CONCAT(DISTINCT a ORDER BY b) FROM t1;
|
||||||
|
SELECT GROUP_CONCAT(DISTINCT a) FROM t1;
|
||||||
|
|
||||||
|
SET group_concat_max_len= 65535;
|
||||||
|
CREATE TABLE t2( a TEXT );
|
||||||
|
INSERT INTO t2 VALUES( REPEAT( 'a', 5000 ) );
|
||||||
|
INSERT INTO t2 VALUES( REPEAT( 'b', 5000 ) );
|
||||||
|
INSERT INTO t2 VALUES( REPEAT( 'a', 5000 ) );
|
||||||
|
SELECT LENGTH( GROUP_CONCAT( DISTINCT a ) ) FROM t2;
|
||||||
|
|
||||||
|
CREATE TABLE t3( a TEXT, b INT );
|
||||||
|
INSERT INTO t3 VALUES( REPEAT( 'a', 65534 ), 1 );
|
||||||
|
INSERT INTO t3 VALUES( REPEAT( 'a', 65535 ), 2 );
|
||||||
|
INSERT INTO t3 VALUES( REPEAT( 'a', 65536 ), 3 );
|
||||||
|
SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 1;
|
||||||
|
SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 2;
|
||||||
|
SELECT LENGTH( GROUP_CONCAT( a ) ) FROM t3 WHERE b = 3;
|
||||||
|
|
||||||
|
SET group_concat_max_len= DEFAULT;
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -845,3 +845,19 @@ SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
|||||||
show status like 'Handler_read%';
|
show status like 'Handler_read%';
|
||||||
|
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug 28571: outer join with false on condition over constant tables
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (c int PRIMARY KEY, e int NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (1,0), (2,1);
|
||||||
|
CREATE TABLE t2 (d int PRIMARY KEY);
|
||||||
|
INSERT INTO t2 VALUES (1), (2), (3);
|
||||||
|
|
||||||
|
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d IS NULL;
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d IS NULL;
|
||||||
|
SELECT * FROM t1 LEFT JOIN t2 ON e<>0 WHERE c=1 AND d<=>NULL;
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
@ -432,3 +432,15 @@ ORDER BY c.b, c.d
|
|||||||
;
|
;
|
||||||
|
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #20604: Test for disabled keys with aggregate functions and FORCE INDEX.
|
||||||
|
#
|
||||||
|
CREATE TABLE t1( a TINYINT, KEY(a) ) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES( 1 );
|
||||||
|
ALTER TABLE t1 DISABLE KEYS;
|
||||||
|
EXPLAIN SELECT MAX(a) FROM t1 FORCE INDEX(a);
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo End of 5.0 tests.
|
||||||
|
@ -117,3 +117,135 @@ reap;
|
|||||||
select 1;
|
select 1;
|
||||||
connection con1;
|
connection con1;
|
||||||
select RELEASE_LOCK("a");
|
select RELEASE_LOCK("a");
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#27563: Stored functions and triggers wasn't throwing an error when killed.
|
||||||
|
#
|
||||||
|
create table t1(f1 int);
|
||||||
|
delimiter |;
|
||||||
|
create function bug27563() returns int(11)
|
||||||
|
deterministic
|
||||||
|
begin
|
||||||
|
declare continue handler for sqlstate '70100' set @a:= 'killed';
|
||||||
|
declare continue handler for sqlexception set @a:= 'exception';
|
||||||
|
set @a= get_lock("lock27563", 10);
|
||||||
|
return 1;
|
||||||
|
end|
|
||||||
|
delimiter ;|
|
||||||
|
# Test stored functions
|
||||||
|
# Test INSERT
|
||||||
|
connection con1;
|
||||||
|
select get_lock("lock27563",10);
|
||||||
|
connection con2;
|
||||||
|
let $ID= `select connection_id()`;
|
||||||
|
send insert into t1 values (bug27563());
|
||||||
|
real_sleep 2;
|
||||||
|
connection con1;
|
||||||
|
disable_query_log;
|
||||||
|
eval kill query $ID;
|
||||||
|
enable_query_log;
|
||||||
|
connection con2;
|
||||||
|
--error 1317
|
||||||
|
reap;
|
||||||
|
select @a;
|
||||||
|
connection con1;
|
||||||
|
select * from t1;
|
||||||
|
|
||||||
|
# Test UPDATE
|
||||||
|
insert into t1 values(0);
|
||||||
|
connection con2;
|
||||||
|
send update t1 set f1= bug27563();
|
||||||
|
real_sleep 2;
|
||||||
|
connection con1;
|
||||||
|
disable_query_log;
|
||||||
|
eval kill query $ID;
|
||||||
|
enable_query_log;
|
||||||
|
connection con2;
|
||||||
|
--error 1317
|
||||||
|
reap;
|
||||||
|
select @a;
|
||||||
|
connection con1;
|
||||||
|
select * from t1;
|
||||||
|
|
||||||
|
# Test DELETE
|
||||||
|
insert into t1 values(1);
|
||||||
|
connection con2;
|
||||||
|
send delete from t1 where bug27563() is null;
|
||||||
|
real_sleep 2;
|
||||||
|
connection con1;
|
||||||
|
disable_query_log;
|
||||||
|
eval kill query $ID;
|
||||||
|
enable_query_log;
|
||||||
|
connection con2;
|
||||||
|
--error 1317
|
||||||
|
reap;
|
||||||
|
select @a;
|
||||||
|
connection con1;
|
||||||
|
select * from t1;
|
||||||
|
|
||||||
|
# Test SELECT
|
||||||
|
connection con2;
|
||||||
|
send select * from t1 where f1= bug27563();
|
||||||
|
real_sleep 2;
|
||||||
|
connection con1;
|
||||||
|
disable_query_log;
|
||||||
|
eval kill query $ID;
|
||||||
|
enable_query_log;
|
||||||
|
connection con2;
|
||||||
|
--error 1317
|
||||||
|
reap;
|
||||||
|
select @a;
|
||||||
|
|
||||||
|
# Test PROCEDURE
|
||||||
|
connection con2;
|
||||||
|
delimiter |;
|
||||||
|
create procedure proc27563()
|
||||||
|
begin
|
||||||
|
declare continue handler for sqlstate '70100' set @a:= 'killed';
|
||||||
|
declare continue handler for sqlexception set @a:= 'exception';
|
||||||
|
select get_lock("lock27563",10);
|
||||||
|
select "shouldn't be selected";
|
||||||
|
end|
|
||||||
|
delimiter ;|
|
||||||
|
send call proc27563();
|
||||||
|
real_sleep 2;
|
||||||
|
connection con1;
|
||||||
|
disable_query_log;
|
||||||
|
eval kill query $ID;
|
||||||
|
enable_query_log;
|
||||||
|
connection con2;
|
||||||
|
--error 1317
|
||||||
|
reap;
|
||||||
|
select @a;
|
||||||
|
|
||||||
|
# Test TRIGGERS
|
||||||
|
connection con2;
|
||||||
|
create table t2 (f2 int);
|
||||||
|
delimiter |;
|
||||||
|
create trigger trg27563 before insert on t1 for each row
|
||||||
|
begin
|
||||||
|
declare continue handler for sqlstate '70100' set @a:= 'killed';
|
||||||
|
declare continue handler for sqlexception set @a:= 'exception';
|
||||||
|
set @a:= get_lock("lock27563",10);
|
||||||
|
insert into t2 values(1);
|
||||||
|
end|
|
||||||
|
delimiter ;|
|
||||||
|
send insert into t1 values(2),(3);
|
||||||
|
real_sleep 2;
|
||||||
|
connection con1;
|
||||||
|
disable_query_log;
|
||||||
|
eval kill query $ID;
|
||||||
|
enable_query_log;
|
||||||
|
connection con2;
|
||||||
|
--error 1317
|
||||||
|
reap;
|
||||||
|
select @a;
|
||||||
|
connection con1;
|
||||||
|
select * from t1;
|
||||||
|
select * from t2;
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
select release_lock("lock27563");
|
||||||
|
drop table t1, t2;
|
||||||
|
drop function bug27563;
|
||||||
|
drop procedure proc27563;
|
||||||
|
@ -1145,4 +1145,20 @@ create table t3 (c1 int) engine=myisam pack_keys=default;
|
|||||||
create table t4 (c1 int) engine=myisam pack_keys=2;
|
create table t4 (c1 int) engine=myisam pack_keys=2;
|
||||||
drop table t1, t2, t3;
|
drop table t1, t2, t3;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#28476: force index on a disabled myisam index gives error 124
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(a INT, b INT, KEY inx (a), UNIQUE KEY uinx (b)) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1(a,b) VALUES (1,1),(2,2),(3,3),(4,4),(5,5);
|
||||||
|
SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
|
||||||
|
ALTER TABLE t1 DISABLE KEYS;
|
||||||
|
SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
|
||||||
|
SELECT a FROM t1 USE INDEX (inx) WHERE a=1;
|
||||||
|
SELECT b FROM t1 FORCE INDEX (uinx) WHERE b=1;
|
||||||
|
SELECT b FROM t1 USE INDEX (uinx) WHERE b=1;
|
||||||
|
SELECT a FROM t1 FORCE INDEX (inx,uinx) WHERE a=1;
|
||||||
|
ALTER TABLE t1 ENABLE KEYS;
|
||||||
|
SELECT a FROM t1 FORCE INDEX (inx) WHERE a=1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -1528,7 +1528,14 @@ drop user user2;
|
|||||||
|
|
||||||
drop database mysqldump_test_db;
|
drop database mysqldump_test_db;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug #28522: buffer overrun by '\0' byte using --hex-blob.
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (c1 INT, c2 LONGBLOB);
|
||||||
|
INSERT INTO t1 SET c1=11, c2=REPEAT('q',509);
|
||||||
|
--exec $MYSQL_DUMP --skip-create --compact --hex-blob test t1
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 5.0 tests
|
--echo # End of 5.0 tests
|
||||||
|
@ -571,3 +571,21 @@ SELECT (t1.id IN (SELECT t2.id FROM t2,t3
|
|||||||
FROM t1;
|
FROM t1;
|
||||||
|
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #22855: Optimizer doesn't rewrite NOT IN subselects to a correlated
|
||||||
|
# subquery
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT NOT NULL);
|
||||||
|
INSERT INTO t1 VALUES (1),(-1), (65),(66);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (a INT UNSIGNED NOT NULL PRIMARY KEY);
|
||||||
|
INSERT INTO t2 VALUES (65),(66);
|
||||||
|
|
||||||
|
SELECT a FROM t1 WHERE a NOT IN (65,66);
|
||||||
|
SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2);
|
||||||
|
EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2);
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
@ -1149,4 +1149,17 @@ select cast(a as DECIMAL(3,2)), count(*)
|
|||||||
UNION select 12.1234
|
UNION select 12.1234
|
||||||
) t group by 1;
|
) t group by 1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #28361 Buffer overflow in DECIMAL code on Windows
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t1 (s varchar(100));
|
||||||
|
insert into t1 values (0.00000000010000000000000000364321973154977415791655470655996396089904010295867919921875);
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #27984 Long Decimal Maths produces truncated results
|
||||||
|
#
|
||||||
|
|
||||||
|
SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
@ -3233,4 +3233,23 @@ CREATE VIEW v1 AS SELECT CAST(1.23456789 AS DECIMAL(8,0)) AS col;
|
|||||||
SHOW CREATE VIEW v1;
|
SHOW CREATE VIEW v1;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #28561: update on multi-table view with CHECK OPTION and
|
||||||
|
# a subquery in WHERE condition
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (id int);
|
||||||
|
CREATE TABLE t2 (id int, c int DEFAULT 0);
|
||||||
|
INSERT INTO t1 (id) VALUES (1);
|
||||||
|
INSERT INTO t2 (id) VALUES (1);
|
||||||
|
|
||||||
|
CREATE VIEW v1 AS
|
||||||
|
SELECT t2.c FROM t1, t2
|
||||||
|
WHERE t1.id=t2.id AND 1 IN (SELECT id FROM t1) WITH CHECK OPTION;
|
||||||
|
|
||||||
|
UPDATE v1 SET c=1;
|
||||||
|
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
--echo End of 5.0 tests.
|
--echo End of 5.0 tests.
|
||||||
|
@ -1108,6 +1108,11 @@ public:
|
|||||||
|
|
||||||
class Field_varstring :public Field_longstr {
|
class Field_varstring :public Field_longstr {
|
||||||
public:
|
public:
|
||||||
|
/*
|
||||||
|
The maximum space available in a Field_varstring, in bytes. See
|
||||||
|
length_bytes.
|
||||||
|
*/
|
||||||
|
static const uint MAX_SIZE= UINT_MAX16;
|
||||||
/* Store number of bytes used to store length (1 or 2) */
|
/* Store number of bytes used to store length (1 or 2) */
|
||||||
uint32 length_bytes;
|
uint32 length_bytes;
|
||||||
Field_varstring(char *ptr_arg,
|
Field_varstring(char *ptr_arg,
|
||||||
|
@ -530,7 +530,21 @@ void Copy_field::set(char *to,Field *from)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
To do:
|
||||||
|
|
||||||
|
If 'save\ is set to true and the 'from' is a blob field, do_copy is set to
|
||||||
|
do_save_blob rather than do_conv_blob. The only differences between them
|
||||||
|
appears to be:
|
||||||
|
|
||||||
|
- do_save_blob allocates and uses an intermediate buffer before calling
|
||||||
|
Field_blob::store. Is this in order to trigger the call to
|
||||||
|
well_formed_copy_nchars, by changing the pointer copy->tmp.ptr()?
|
||||||
|
That call will take place anyway in all known cases.
|
||||||
|
|
||||||
|
- The above causes a truncation to MAX_FIELD_WIDTH. Is this the intended
|
||||||
|
effect? Truncation is handled by well_formed_copy_nchars anyway.
|
||||||
|
*/
|
||||||
void Copy_field::set(Field *to,Field *from,bool save)
|
void Copy_field::set(Field *to,Field *from,bool save)
|
||||||
{
|
{
|
||||||
if (to->type() == FIELD_TYPE_NULL)
|
if (to->type() == FIELD_TYPE_NULL)
|
||||||
|
@ -5347,6 +5347,8 @@ Item_func_sp::execute()
|
|||||||
{
|
{
|
||||||
null_value= 1;
|
null_value= 1;
|
||||||
context->process_error(thd);
|
context->process_error(thd);
|
||||||
|
if (thd->killed)
|
||||||
|
thd->send_kill_message();
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -775,6 +775,11 @@ bool Item_in_subselect::val_bool()
|
|||||||
if (exec())
|
if (exec())
|
||||||
{
|
{
|
||||||
reset();
|
reset();
|
||||||
|
/*
|
||||||
|
Must mark the IN predicate as NULL so as to make sure an enclosing NOT
|
||||||
|
predicate will return FALSE. See the comments in
|
||||||
|
subselect_uniquesubquery_engine::copy_ref_key for further details.
|
||||||
|
*/
|
||||||
null_value= 1;
|
null_value= 1;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1936,10 +1941,38 @@ int subselect_uniquesubquery_engine::scan_table()
|
|||||||
|
|
||||||
DESCRIPTION
|
DESCRIPTION
|
||||||
Copy ref key and check for null parts in it.
|
Copy ref key and check for null parts in it.
|
||||||
|
Depending on the nullability and conversion problems this function
|
||||||
|
recognizes and processes the following states :
|
||||||
|
1. Partial match on top level. This means IN has a value of FALSE
|
||||||
|
regardless of the data in the subquery table.
|
||||||
|
Detected by finding a NULL in the left IN operand of a top level
|
||||||
|
expression.
|
||||||
|
We may actually skip reading the subquery, so return TRUE to skip
|
||||||
|
the table scan in subselect_uniquesubquery_engine::exec and make
|
||||||
|
the value of the IN predicate a NULL (that is equal to FALSE on
|
||||||
|
top level).
|
||||||
|
2. No exact match when IN is nested inside another predicate.
|
||||||
|
Detected by finding a NULL in the left IN operand when IN is not
|
||||||
|
a top level predicate.
|
||||||
|
We cannot have an exact match. But we must proceed further with a
|
||||||
|
table scan to find out if it's a partial match (and IN has a value
|
||||||
|
of NULL) or no match (and IN has a value of FALSE).
|
||||||
|
So we return FALSE to continue with the scan and see if there are
|
||||||
|
any record that would constitute a partial match (as we cannot
|
||||||
|
determine that from the index).
|
||||||
|
3. Error converting the left IN operand to the column type of the
|
||||||
|
right IN operand. This counts as no match (and IN has the value of
|
||||||
|
FALSE). We mark the subquery table cursor as having no more rows
|
||||||
|
(to ensure that the processing that follows will not find a match)
|
||||||
|
and return FALSE, so IN is not treated as returning NULL.
|
||||||
|
|
||||||
|
|
||||||
RETURN
|
RETURN
|
||||||
FALSE - ok, index lookup key without keys copied.
|
FALSE - The value of the IN predicate is not known. Proceed to find the
|
||||||
TRUE - an error occured while copying the key
|
value of the IN predicate using the determined values of
|
||||||
|
null_keypart and table->status.
|
||||||
|
TRUE - IN predicate has a value of NULL. Stop the processing right there
|
||||||
|
and return NULL to the outer predicates.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool subselect_uniquesubquery_engine::copy_ref_key()
|
bool subselect_uniquesubquery_engine::copy_ref_key()
|
||||||
@ -1959,13 +1992,37 @@ bool subselect_uniquesubquery_engine::copy_ref_key()
|
|||||||
function.
|
function.
|
||||||
*/
|
*/
|
||||||
null_keypart= (*copy)->null_key;
|
null_keypart= (*copy)->null_key;
|
||||||
bool top_level= ((Item_in_subselect *) item)->is_top_level_item();
|
if (null_keypart)
|
||||||
if (null_keypart && !top_level)
|
|
||||||
break;
|
|
||||||
if ((tab->ref.key_err) & 1 || (null_keypart && top_level))
|
|
||||||
{
|
{
|
||||||
|
bool top_level= ((Item_in_subselect *) item)->is_top_level_item();
|
||||||
|
if (top_level)
|
||||||
|
{
|
||||||
|
/* Partial match on top level */
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/* No exact match when IN is nested inside another predicate */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Check if the error is equal to STORE_KEY_FATAL. This is not expressed
|
||||||
|
using the store_key::store_key_result enum because ref.key_err is a
|
||||||
|
boolean and we want to detect both TRUE and STORE_KEY_FATAL from the
|
||||||
|
space of the union of the values of [TRUE, FALSE] and
|
||||||
|
store_key::store_key_result.
|
||||||
|
TODO: fix the variable an return types.
|
||||||
|
*/
|
||||||
|
if (tab->ref.key_err & 1)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Error converting the left IN operand to the column type of the right
|
||||||
|
IN operand.
|
||||||
|
*/
|
||||||
tab->table->status= STATUS_NOT_FOUND;
|
tab->table->status= STATUS_NOT_FOUND;
|
||||||
DBUG_RETURN(1);
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
@ -2008,10 +2065,20 @@ int subselect_uniquesubquery_engine::exec()
|
|||||||
int error;
|
int error;
|
||||||
TABLE *table= tab->table;
|
TABLE *table= tab->table;
|
||||||
empty_result_set= TRUE;
|
empty_result_set= TRUE;
|
||||||
|
table->status= 0;
|
||||||
|
|
||||||
/* TODO: change to use of 'full_scan' here? */
|
/* TODO: change to use of 'full_scan' here? */
|
||||||
if (copy_ref_key())
|
if (copy_ref_key())
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
|
if (table->status)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
We know that there will be no rows even if we scan.
|
||||||
|
Can be set in copy_ref_key.
|
||||||
|
*/
|
||||||
|
((Item_in_subselect *) item)->value= 0;
|
||||||
|
DBUG_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
if (null_keypart)
|
if (null_keypart)
|
||||||
DBUG_RETURN(scan_table());
|
DBUG_RETURN(scan_table());
|
||||||
|
@ -432,7 +432,7 @@ Field *Item_sum::create_tmp_field(bool group, TABLE *table,
|
|||||||
2-byte lenght.
|
2-byte lenght.
|
||||||
*/
|
*/
|
||||||
if (max_length/collation.collation->mbmaxlen > 255 &&
|
if (max_length/collation.collation->mbmaxlen > 255 &&
|
||||||
convert_blob_length < UINT_MAX16 && convert_blob_length)
|
convert_blob_length <= Field_varstring::MAX_SIZE && convert_blob_length)
|
||||||
return new Field_varstring(convert_blob_length, maybe_null,
|
return new Field_varstring(convert_blob_length, maybe_null,
|
||||||
name, table,
|
name, table,
|
||||||
collation.collation);
|
collation.collation);
|
||||||
@ -3268,15 +3268,21 @@ bool Item_func_group_concat::setup(THD *thd)
|
|||||||
count_field_types(tmp_table_param,all_fields,0);
|
count_field_types(tmp_table_param,all_fields,0);
|
||||||
tmp_table_param->force_copy_fields= force_copy_fields;
|
tmp_table_param->force_copy_fields= force_copy_fields;
|
||||||
DBUG_ASSERT(table == 0);
|
DBUG_ASSERT(table == 0);
|
||||||
|
/*
|
||||||
|
Currently we have to force conversion of BLOB values to VARCHAR's
|
||||||
|
if we are to store them in TREE objects used for ORDER BY and
|
||||||
|
DISTINCT. This leads to truncation if the BLOB's size exceeds
|
||||||
|
Field_varstring::MAX_SIZE.
|
||||||
|
*/
|
||||||
|
if (arg_count_order > 0 || distinct)
|
||||||
|
set_if_smaller(tmp_table_param->convert_blob_length,
|
||||||
|
Field_varstring::MAX_SIZE);
|
||||||
/*
|
/*
|
||||||
We have to create a temporary table to get descriptions of fields
|
We have to create a temporary table to get descriptions of fields
|
||||||
(types, sizes and so on).
|
(types, sizes and so on).
|
||||||
|
|
||||||
Note that in the table, we first have the ORDER BY fields, then the
|
Note that in the table, we first have the ORDER BY fields, then the
|
||||||
field list.
|
field list.
|
||||||
|
|
||||||
We need to set set_sum_field in true for storing value of blob in buffer
|
|
||||||
of a record instead of a pointer of one.
|
|
||||||
*/
|
*/
|
||||||
if (!(table= create_tmp_table(thd, tmp_table_param, all_fields,
|
if (!(table= create_tmp_table(thd, tmp_table_param, all_fields,
|
||||||
(ORDER*) 0, 0, TRUE,
|
(ORDER*) 0, 0, TRUE,
|
||||||
|
@ -36,13 +36,17 @@ C_MODE_END
|
|||||||
|
|
||||||
/* maximum length of buffer in our big digits (uint32) */
|
/* maximum length of buffer in our big digits (uint32) */
|
||||||
#define DECIMAL_BUFF_LENGTH 9
|
#define DECIMAL_BUFF_LENGTH 9
|
||||||
|
|
||||||
|
/* the number of digits that my_decimal can possibly contain */
|
||||||
|
#define DECIMAL_MAX_POSSIBLE_PRECISION (DECIMAL_BUFF_LENGTH * 9)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
maximum guaranteed precision of number in decimal digits (number of our
|
maximum guaranteed precision of number in decimal digits (number of our
|
||||||
digits * number of decimal digits in one our big digit - number of decimal
|
digits * number of decimal digits in one our big digit - number of decimal
|
||||||
digits in one our big digit decreased on 1 (because we always put decimal
|
digits in one our big digit decreased by 1 (because we always put decimal
|
||||||
point on the border of our big digits))
|
point on the border of our big digits))
|
||||||
*/
|
*/
|
||||||
#define DECIMAL_MAX_PRECISION ((DECIMAL_BUFF_LENGTH * 9) - 8*2)
|
#define DECIMAL_MAX_PRECISION (DECIMAL_MAX_POSSIBLE_PRECISION - 8*2)
|
||||||
#define DECIMAL_MAX_SCALE 30
|
#define DECIMAL_MAX_SCALE 30
|
||||||
#define DECIMAL_NOT_SPECIFIED 31
|
#define DECIMAL_NOT_SPECIFIED 31
|
||||||
|
|
||||||
@ -50,7 +54,7 @@ C_MODE_END
|
|||||||
maximum length of string representation (number of maximum decimal
|
maximum length of string representation (number of maximum decimal
|
||||||
digits + 1 position for sign + 1 position for decimal point)
|
digits + 1 position for sign + 1 position for decimal point)
|
||||||
*/
|
*/
|
||||||
#define DECIMAL_MAX_STR_LENGTH (DECIMAL_MAX_PRECISION + 2)
|
#define DECIMAL_MAX_STR_LENGTH (DECIMAL_MAX_POSSIBLE_PRECISION + 2)
|
||||||
/*
|
/*
|
||||||
maximum size of packet length
|
maximum size of packet length
|
||||||
*/
|
*/
|
||||||
|
@ -1321,6 +1321,9 @@ err_with_cleanup:
|
|||||||
free_root(&call_mem_root, MYF(0));
|
free_root(&call_mem_root, MYF(0));
|
||||||
thd->spcont= octx;
|
thd->spcont= octx;
|
||||||
|
|
||||||
|
if (thd->killed)
|
||||||
|
thd->send_kill_message();
|
||||||
|
|
||||||
DBUG_RETURN(err_status);
|
DBUG_RETURN(err_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5167,7 +5167,12 @@ bool setup_tables(THD *thd, Name_resolution_context *context,
|
|||||||
get_key_map_from_key_list(&map, table, table_list->use_index);
|
get_key_map_from_key_list(&map, table, table_list->use_index);
|
||||||
if (map.is_set_all())
|
if (map.is_set_all())
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
table->keys_in_use_for_query=map;
|
/*
|
||||||
|
Don't introduce keys in keys_in_use_for_query that weren't there
|
||||||
|
before. FORCE/USE INDEX should not add keys, it should only remove
|
||||||
|
all keys except the key(s) specified in the hint.
|
||||||
|
*/
|
||||||
|
table->keys_in_use_for_query.intersect(map);
|
||||||
}
|
}
|
||||||
if (table_list->ignore_index)
|
if (table_list->ignore_index)
|
||||||
{
|
{
|
||||||
@ -5800,7 +5805,7 @@ fill_record(THD *thd, Field **ptr, List<Item> &values, bool ignore_errors)
|
|||||||
table= (*ptr)->table;
|
table= (*ptr)->table;
|
||||||
table->auto_increment_field_not_null= FALSE;
|
table->auto_increment_field_not_null= FALSE;
|
||||||
}
|
}
|
||||||
while ((field = *ptr++))
|
while ((field = *ptr++) && !thd->net.report_error)
|
||||||
{
|
{
|
||||||
value=v++;
|
value=v++;
|
||||||
table= field->table;
|
table= field->table;
|
||||||
|
@ -5666,28 +5666,6 @@ make_join_select(JOIN *join,SQL_SELECT *select,COND *cond)
|
|||||||
join->const_table_map,
|
join->const_table_map,
|
||||||
(table_map) 0);
|
(table_map) 0);
|
||||||
DBUG_EXECUTE("where",print_where(const_cond,"constants"););
|
DBUG_EXECUTE("where",print_where(const_cond,"constants"););
|
||||||
for (JOIN_TAB *tab= join->join_tab+join->const_tables;
|
|
||||||
tab < join->join_tab+join->tables ; tab++)
|
|
||||||
{
|
|
||||||
if (*tab->on_expr_ref)
|
|
||||||
{
|
|
||||||
JOIN_TAB *cond_tab= tab->first_inner;
|
|
||||||
COND *tmp= make_cond_for_table(*tab->on_expr_ref,
|
|
||||||
join->const_table_map,
|
|
||||||
( table_map) 0);
|
|
||||||
if (!tmp)
|
|
||||||
continue;
|
|
||||||
tmp= new Item_func_trig_cond(tmp, &cond_tab->not_null_compl);
|
|
||||||
if (!tmp)
|
|
||||||
DBUG_RETURN(1);
|
|
||||||
tmp->quick_fix_field();
|
|
||||||
cond_tab->select_cond= !cond_tab->select_cond ? tmp :
|
|
||||||
new Item_cond_and(cond_tab->select_cond,tmp);
|
|
||||||
if (!cond_tab->select_cond)
|
|
||||||
DBUG_RETURN(1);
|
|
||||||
cond_tab->select_cond->quick_fix_field();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (const_cond && !const_cond->val_int())
|
if (const_cond && !const_cond->val_int())
|
||||||
{
|
{
|
||||||
DBUG_PRINT("info",("Found impossible WHERE condition"));
|
DBUG_PRINT("info",("Found impossible WHERE condition"));
|
||||||
@ -5918,13 +5896,39 @@ make_join_select(JOIN *join,SQL_SELECT *select,COND *cond)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Push down all predicates from on expressions.
|
Push down conditions from all on expressions.
|
||||||
Each of these predicated are guarded by a variable
|
Each of these conditions are guarded by a variable
|
||||||
that turns if off just before null complemented row for
|
that turns if off just before null complemented row for
|
||||||
outer joins is formed. Thus, the predicates from an
|
outer joins is formed. Thus, the condition from an
|
||||||
'on expression' are guaranteed not to be checked for
|
'on expression' are guaranteed not to be checked for
|
||||||
the null complemented row.
|
the null complemented row.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* First push down constant conditions from on expressions */
|
||||||
|
for (JOIN_TAB *join_tab= join->join_tab+join->const_tables;
|
||||||
|
join_tab < join->join_tab+join->tables ; join_tab++)
|
||||||
|
{
|
||||||
|
if (*join_tab->on_expr_ref)
|
||||||
|
{
|
||||||
|
JOIN_TAB *cond_tab= join_tab->first_inner;
|
||||||
|
COND *tmp= make_cond_for_table(*join_tab->on_expr_ref,
|
||||||
|
join->const_table_map,
|
||||||
|
(table_map) 0);
|
||||||
|
if (!tmp)
|
||||||
|
continue;
|
||||||
|
tmp= new Item_func_trig_cond(tmp, &cond_tab->not_null_compl);
|
||||||
|
if (!tmp)
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
tmp->quick_fix_field();
|
||||||
|
cond_tab->select_cond= !cond_tab->select_cond ? tmp :
|
||||||
|
new Item_cond_and(cond_tab->select_cond,tmp);
|
||||||
|
if (!cond_tab->select_cond)
|
||||||
|
DBUG_RETURN(1);
|
||||||
|
cond_tab->select_cond->quick_fix_field();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Push down non-constant conditions from on expressions */
|
||||||
JOIN_TAB *last_tab= tab;
|
JOIN_TAB *last_tab= tab;
|
||||||
while (first_inner_tab && first_inner_tab->last_inner == last_tab)
|
while (first_inner_tab && first_inner_tab->last_inner == last_tab)
|
||||||
{
|
{
|
||||||
@ -6375,7 +6379,6 @@ void JOIN::cleanup(bool full)
|
|||||||
for (tab= join_tab, end= tab+tables; tab != end; tab++)
|
for (tab= join_tab, end= tab+tables; tab != end; tab++)
|
||||||
tab->cleanup();
|
tab->cleanup();
|
||||||
table= 0;
|
table= 0;
|
||||||
tables= 0;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -8800,7 +8803,7 @@ Field* create_tmp_field_from_field(THD *thd, Field* org_field,
|
|||||||
Make sure that the blob fits into a Field_varstring which has
|
Make sure that the blob fits into a Field_varstring which has
|
||||||
2-byte lenght.
|
2-byte lenght.
|
||||||
*/
|
*/
|
||||||
if (convert_blob_length && convert_blob_length < UINT_MAX16 &&
|
if (convert_blob_length && convert_blob_length <= Field_varstring::MAX_SIZE &&
|
||||||
(org_field->flags & BLOB_FLAG))
|
(org_field->flags & BLOB_FLAG))
|
||||||
new_field= new Field_varstring(convert_blob_length,
|
new_field= new Field_varstring(convert_blob_length,
|
||||||
org_field->maybe_null(),
|
org_field->maybe_null(),
|
||||||
@ -8891,7 +8894,8 @@ static Field *create_tmp_field_from_item(THD *thd, Item *item, TABLE *table,
|
|||||||
2-byte lenght.
|
2-byte lenght.
|
||||||
*/
|
*/
|
||||||
else if (item->max_length/item->collation.collation->mbmaxlen > 255 &&
|
else if (item->max_length/item->collation.collation->mbmaxlen > 255 &&
|
||||||
convert_blob_length < UINT_MAX16 && convert_blob_length)
|
convert_blob_length <= Field_varstring::MAX_SIZE &&
|
||||||
|
convert_blob_length)
|
||||||
new_field= new Field_varstring(convert_blob_length, maybe_null,
|
new_field= new Field_varstring(convert_blob_length, maybe_null,
|
||||||
item->name, table,
|
item->name, table,
|
||||||
item->collation.collation);
|
item->collation.collation);
|
||||||
@ -12246,10 +12250,11 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit,
|
|||||||
LINT_INIT(ref_key_parts);
|
LINT_INIT(ref_key_parts);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Check which keys can be used to resolve ORDER BY.
|
Keys disabled by ALTER TABLE ... DISABLE KEYS should have already
|
||||||
We must not try to use disabled keys.
|
been taken into account.
|
||||||
*/
|
*/
|
||||||
usable_keys= table->s->keys_in_use;
|
usable_keys= table->keys_in_use_for_query;
|
||||||
|
DBUG_ASSERT(usable_keys.is_subset(table->s->keys_in_use));
|
||||||
|
|
||||||
for (ORDER *tmp_order=order; tmp_order ; tmp_order=tmp_order->next)
|
for (ORDER *tmp_order=order; tmp_order ; tmp_order=tmp_order->next)
|
||||||
{
|
{
|
||||||
|
@ -37,7 +37,8 @@ static int copy_data_between_tables(TABLE *from,TABLE *to,
|
|||||||
List<create_field> &create, bool ignore,
|
List<create_field> &create, bool ignore,
|
||||||
uint order_num, ORDER *order,
|
uint order_num, ORDER *order,
|
||||||
ha_rows *copied,ha_rows *deleted,
|
ha_rows *copied,ha_rows *deleted,
|
||||||
enum enum_enable_or_disable keys_onoff);
|
enum enum_enable_or_disable keys_onoff,
|
||||||
|
bool error_if_not_empty);
|
||||||
|
|
||||||
static bool prepare_blob_field(THD *thd, create_field *sql_field);
|
static bool prepare_blob_field(THD *thd, create_field *sql_field);
|
||||||
static bool check_engine(THD *thd, const char *table_name,
|
static bool check_engine(THD *thd, const char *table_name,
|
||||||
@ -3077,6 +3078,16 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||||||
bool need_copy_table;
|
bool need_copy_table;
|
||||||
bool no_table_reopen= FALSE, varchar= FALSE;
|
bool no_table_reopen= FALSE, varchar= FALSE;
|
||||||
frm_type_enum frm_type;
|
frm_type_enum frm_type;
|
||||||
|
/*
|
||||||
|
Throw an error if the table to be altered isn't empty.
|
||||||
|
Used in DATE/DATETIME fields default value checking.
|
||||||
|
*/
|
||||||
|
bool error_if_not_empty= FALSE;
|
||||||
|
/*
|
||||||
|
A field used for error reporting in DATE/DATETIME fields default
|
||||||
|
value checking.
|
||||||
|
*/
|
||||||
|
create_field *new_datetime_field= 0;
|
||||||
DBUG_ENTER("mysql_alter_table");
|
DBUG_ENTER("mysql_alter_table");
|
||||||
|
|
||||||
thd->proc_info="init";
|
thd->proc_info="init";
|
||||||
@ -3445,6 +3456,22 @@ view_err:
|
|||||||
my_error(ER_BAD_FIELD_ERROR, MYF(0), def->change, table_name);
|
my_error(ER_BAD_FIELD_ERROR, MYF(0), def->change, table_name);
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
Check that the DATE/DATETIME not null field we are going to add is
|
||||||
|
either has a default value or the '0000-00-00' is allowed by the
|
||||||
|
set sql mode.
|
||||||
|
If the '0000-00-00' value isn't allowed then raise the error_if_not_empty
|
||||||
|
flag to allow ALTER TABLE only if the table to be altered is empty.
|
||||||
|
*/
|
||||||
|
if ((def->sql_type == MYSQL_TYPE_DATE ||
|
||||||
|
def->sql_type == MYSQL_TYPE_NEWDATE ||
|
||||||
|
def->sql_type == MYSQL_TYPE_DATETIME) && !new_datetime_field &&
|
||||||
|
!(~def->flags & (NO_DEFAULT_VALUE_FLAG | NOT_NULL_FLAG)) &&
|
||||||
|
thd->variables.sql_mode & MODE_NO_ZERO_DATE)
|
||||||
|
{
|
||||||
|
new_datetime_field= def;
|
||||||
|
error_if_not_empty= TRUE;
|
||||||
|
}
|
||||||
if (!def->after)
|
if (!def->after)
|
||||||
new_info.create_list.push_back(def);
|
new_info.create_list.push_back(def);
|
||||||
else if (def->after == first_keyword)
|
else if (def->after == first_keyword)
|
||||||
@ -3765,7 +3792,8 @@ view_err:
|
|||||||
new_table->next_number_field=new_table->found_next_number_field;
|
new_table->next_number_field=new_table->found_next_number_field;
|
||||||
error= copy_data_between_tables(table, new_table, new_info.create_list,
|
error= copy_data_between_tables(table, new_table, new_info.create_list,
|
||||||
ignore, order_num, order,
|
ignore, order_num, order,
|
||||||
&copied, &deleted, alter_info->keys_onoff);
|
&copied, &deleted, alter_info->keys_onoff,
|
||||||
|
error_if_not_empty);
|
||||||
}
|
}
|
||||||
else if (!new_table)
|
else if (!new_table)
|
||||||
{
|
{
|
||||||
@ -3999,6 +4027,37 @@ end_temporary:
|
|||||||
DBUG_RETURN(FALSE);
|
DBUG_RETURN(FALSE);
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
/*
|
||||||
|
No default value was provided for a DATE/DATETIME field, the
|
||||||
|
current sql_mode doesn't allow the '0000-00-00' value and
|
||||||
|
the table to be altered isn't empty.
|
||||||
|
Report error here.
|
||||||
|
*/
|
||||||
|
if (error_if_not_empty && thd->row_count)
|
||||||
|
{
|
||||||
|
const char *f_val= 0;
|
||||||
|
enum enum_mysql_timestamp_type t_type= MYSQL_TIMESTAMP_DATE;
|
||||||
|
switch (new_datetime_field->sql_type)
|
||||||
|
{
|
||||||
|
case MYSQL_TYPE_DATE:
|
||||||
|
case MYSQL_TYPE_NEWDATE:
|
||||||
|
f_val= "0000-00-00";
|
||||||
|
t_type= MYSQL_TIMESTAMP_DATE;
|
||||||
|
break;
|
||||||
|
case MYSQL_TYPE_DATETIME:
|
||||||
|
f_val= "0000-00-00 00:00:00";
|
||||||
|
t_type= MYSQL_TIMESTAMP_DATETIME;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
/* Shouldn't get here. */
|
||||||
|
DBUG_ASSERT(0);
|
||||||
|
}
|
||||||
|
bool save_abort_on_warning= thd->abort_on_warning;
|
||||||
|
thd->abort_on_warning= TRUE;
|
||||||
|
make_truncated_value_warning(thd, f_val, strlength(f_val), t_type,
|
||||||
|
new_datetime_field->field_name);
|
||||||
|
thd->abort_on_warning= save_abort_on_warning;
|
||||||
|
}
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4010,7 +4069,8 @@ copy_data_between_tables(TABLE *from,TABLE *to,
|
|||||||
uint order_num, ORDER *order,
|
uint order_num, ORDER *order,
|
||||||
ha_rows *copied,
|
ha_rows *copied,
|
||||||
ha_rows *deleted,
|
ha_rows *deleted,
|
||||||
enum enum_enable_or_disable keys_onoff)
|
enum enum_enable_or_disable keys_onoff,
|
||||||
|
bool error_if_not_empty)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
Copy_field *copy,*copy_end;
|
Copy_field *copy,*copy_end;
|
||||||
@ -4125,6 +4185,12 @@ copy_data_between_tables(TABLE *from,TABLE *to,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
thd->row_count++;
|
thd->row_count++;
|
||||||
|
/* Return error if source table isn't empty. */
|
||||||
|
if (error_if_not_empty)
|
||||||
|
{
|
||||||
|
error= 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (to->next_number_field)
|
if (to->next_number_field)
|
||||||
{
|
{
|
||||||
if (auto_increment_field_copied)
|
if (auto_increment_field_copied)
|
||||||
|
23
sql/table.h
23
sql/table.h
@ -137,7 +137,12 @@ typedef struct st_table_share
|
|||||||
const char *table_name; /* Table name (for open) */
|
const char *table_name; /* Table name (for open) */
|
||||||
const char *path; /* Path to .frm file (from datadir) */
|
const char *path; /* Path to .frm file (from datadir) */
|
||||||
LEX_STRING connect_string;
|
LEX_STRING connect_string;
|
||||||
key_map keys_in_use; /* Keys in use for table */
|
|
||||||
|
/*
|
||||||
|
Set of keys in use, implemented as a Bitmap.
|
||||||
|
Excludes keys disabled by ALTER TABLE ... DISABLE KEYS.
|
||||||
|
*/
|
||||||
|
key_map keys_in_use;
|
||||||
key_map keys_for_keyread;
|
key_map keys_for_keyread;
|
||||||
ulong avg_row_length; /* create information */
|
ulong avg_row_length; /* create information */
|
||||||
ulong raid_chunksize;
|
ulong raid_chunksize;
|
||||||
@ -208,7 +213,21 @@ struct st_table {
|
|||||||
|
|
||||||
byte *record[2]; /* Pointer to records */
|
byte *record[2]; /* Pointer to records */
|
||||||
byte *insert_values; /* used by INSERT ... UPDATE */
|
byte *insert_values; /* used by INSERT ... UPDATE */
|
||||||
key_map quick_keys, used_keys, keys_in_use_for_query;
|
key_map quick_keys, used_keys;
|
||||||
|
|
||||||
|
/*
|
||||||
|
A set of keys that can be used in the query that references this
|
||||||
|
table
|
||||||
|
|
||||||
|
All indexes disabled on the table's TABLE_SHARE (see TABLE::s) will be
|
||||||
|
subtracted from this set upon instantiation. Thus for any TABLE t it holds
|
||||||
|
that t.keys_in_use_for_query is a subset of t.s.keys_in_use. Generally we
|
||||||
|
must not introduce any new keys here (see setup_tables).
|
||||||
|
|
||||||
|
The set is implemented as a bitmap.
|
||||||
|
*/
|
||||||
|
key_map keys_in_use_for_query;
|
||||||
|
key_map merge_keys;
|
||||||
KEY *key_info; /* data of keys in database */
|
KEY *key_info; /* data of keys in database */
|
||||||
|
|
||||||
Field *next_number_field, /* Set if next_number is activated */
|
Field *next_number_field, /* Set if next_number is activated */
|
||||||
|
@ -1517,9 +1517,10 @@ decimal_round(decimal_t *from, decimal_t *to, int scale,
|
|||||||
dec1 *p0= buf0+intg0+max(frac1, frac0);
|
dec1 *p0= buf0+intg0+max(frac1, frac0);
|
||||||
dec1 *p1= buf1+intg1+max(frac1, frac0);
|
dec1 *p1= buf1+intg1+max(frac1, frac0);
|
||||||
|
|
||||||
to->buf[0]= 0;
|
|
||||||
while (buf0 < p0)
|
while (buf0 < p0)
|
||||||
*(--p1) = *(--p0);
|
*(--p1) = *(--p0);
|
||||||
|
if (unlikely(intg1 > intg0))
|
||||||
|
to->buf[0]= 0;
|
||||||
|
|
||||||
intg0= intg1;
|
intg0= intg1;
|
||||||
buf0=to->buf;
|
buf0=to->buf;
|
||||||
|
Reference in New Issue
Block a user