Merge bk-internal.mysql.com:/home/bk/mysql-5.1

into  vajra.(none):/opt/local/work/mysql-5.1-runtime
This commit is contained in:
kostja@vajra.(none) 2007-05-24 19:34:14 +04:00
commit 0162745cff
56 changed files with 2667 additions and 2046 deletions

View file

@ -411,16 +411,7 @@ inline double ulonglong2double(ulonglong value)
#ifdef __NT__ /* This should also work on Win98 but .. */
#define thread_safe_add(V,C,L) InterlockedExchangeAdd((long*) &(V),(C))
#define thread_safe_sub(V,C,L) InterlockedExchangeAdd((long*) &(V),-(long) (C))
#define statistic_add(V,C,L) thread_safe_add((V),(C),(L))
#else
#define thread_safe_add(V,C,L) \
pthread_mutex_lock((L)); (V)+=(C); pthread_mutex_unlock((L));
#define thread_safe_sub(V,C,L) \
pthread_mutex_lock((L)); (V)-=(C); pthread_mutex_unlock((L));
#define statistic_add(V,C,L) (V)+=(C)
#endif
#define statistic_increment(V,L) thread_safe_increment((V),(L))
#define statistic_decrement(V,L) thread_safe_decrement((V),(L))
#define shared_memory_buffer_length 16000
#define default_shared_memory_base_name "MYSQL"

View file

@ -441,17 +441,7 @@ C_MODE_END
#ifdef HAVE_ALLOCA_H
#include <alloca.h>
#endif
#ifdef HAVE_ATOMIC_ADD
#define new my_arg_new
#define need_to_restore_new 1
C_MODE_START
#include <asm/atomic.h>
C_MODE_END
#ifdef need_to_restore_new /* probably safer than #ifdef new */
#undef new
#undef need_to_restore_new
#endif
#endif
#include <errno.h> /* Recommended by debian */
/* We need the following to go around a problem with openssl on solaris */
#if defined(HAVE_CRYPT_H)
@ -1448,10 +1438,13 @@ do { doubleget_union _tmp; \
#ifndef THREAD
#define thread_safe_increment(V,L) (V)++
#define thread_safe_decrement(V,L) (V)--
#define thread_safe_add(V,C,L) (V)+=(C)
#define thread_safe_sub(V,C,L) (V)-=(C)
#define statistic_increment(V,L) (V)++
#define statistic_decrement(V,L) (V)--
#define statistic_add(V,C,L) (V)+=(C)
#define statistic_sub(V,C,L) (V)-=(C)
#endif
#ifdef HAVE_CHARSET_utf8

View file

@ -710,33 +710,68 @@ extern uint my_thread_end_wait_time;
extern uint thd_lib_detected;
/* statistics_xxx functions are for not essential statistic */
/*
thread_safe_xxx functions are for critical statistic or counters.
The implementation is guaranteed to be thread safe, on all platforms.
Note that the calling code should *not* assume the counter is protected
by the mutex given, as the implementation of these helpers may change
to use my_atomic operations instead.
*/
/*
Warning:
When compiling without threads, this file is not included.
See the *other* declarations of thread_safe_xxx in include/my_global.h
Second warning:
See include/config-win.h, for yet another implementation.
*/
#ifdef THREAD
#ifndef thread_safe_increment
#ifdef HAVE_ATOMIC_ADD
#define thread_safe_increment(V,L) atomic_inc((atomic_t*) &V)
#define thread_safe_decrement(V,L) atomic_dec((atomic_t*) &V)
#define thread_safe_add(V,C,L) atomic_add((C),(atomic_t*) &V)
#define thread_safe_sub(V,C,L) atomic_sub((C),(atomic_t*) &V)
#else
#define thread_safe_increment(V,L) \
(pthread_mutex_lock((L)), (V)++, pthread_mutex_unlock((L)))
#define thread_safe_decrement(V,L) \
(pthread_mutex_lock((L)), (V)--, pthread_mutex_unlock((L)))
#define thread_safe_add(V,C,L) (pthread_mutex_lock((L)), (V)+=(C), pthread_mutex_unlock((L)))
#endif
#ifndef thread_safe_add
#define thread_safe_add(V,C,L) \
(pthread_mutex_lock((L)), (V)+=(C), pthread_mutex_unlock((L)))
#define thread_safe_sub(V,C,L) \
(pthread_mutex_lock((L)), (V)-=(C), pthread_mutex_unlock((L)))
#endif /* HAVE_ATOMIC_ADD */
#endif
#endif
/*
statistics_xxx functions are for non critical statistic,
maintained in global variables.
When compiling with SAFE_STATISTICS:
- race conditions can not occur.
- some locking occurs, which may cause performance degradation.
When compiling without SAFE_STATISTICS:
- race conditions can occur, making the result slightly inaccurate.
- the lock given is not honored.
*/
#ifdef SAFE_STATISTICS
#define statistic_increment(V,L) thread_safe_increment((V),(L))
#define statistic_decrement(V,L) thread_safe_decrement((V),(L))
#define statistic_add(V,C,L) thread_safe_add((V),(C),(L))
#define statistic_increment(V,L) thread_safe_increment((V),(L))
#define statistic_decrement(V,L) thread_safe_decrement((V),(L))
#define statistic_add(V,C,L) thread_safe_add((V),(C),(L))
#define statistic_sub(V,C,L) thread_safe_sub((V),(C),(L))
#else
#define statistic_decrement(V,L) (V)--
#define statistic_increment(V,L) (V)++
#define statistic_add(V,C,L) (V)+=(C)
#define statistic_sub(V,C,L) (V)-=(C)
#endif /* SAFE_STATISTICS */
#endif /* thread_safe_increment */
/*
No locking needed, the counter is owned by the thread
*/
#define status_var_increment(V) (V)++
#define status_var_decrement(V) (V)--
#define status_var_add(V,C) (V)+=(C)
#define status_var_sub(V,C) (V)-=(C)
#ifdef __cplusplus
}

View file

@ -787,4 +787,33 @@ alter table t2 modify i int default 4, rename t1;
unlock tables;
drop table t1;
#
# Some more tests for ALTER TABLE and LOCK TABLES for transactional tables.
#
# Table which is altered under LOCK TABLES should stay in list of locked
# tables and be available after alter takes place unless ALTER contains
# RENAME clause. We should see the new definition of table, of course.
# Before 5.1 this behavior was inconsistent across the platforms and
# different engines. See also tests in alter_table.test
#
--disable_warnings
drop table if exists t1;
--enable_warnings
create table t1 (i int);
insert into t1 values ();
lock table t1 write;
# Example of so-called 'fast' ALTER TABLE
alter table t1 modify i int default 1;
insert into t1 values ();
select * from t1;
# And now full-blown ALTER TABLE
alter table t1 change i c char(10) default "Two";
insert into t1 values ();
select * from t1;
unlock tables;
select * from t1;
drop tables t1;
--echo End of 5.1 tests

View file

@ -278,8 +278,19 @@ sub mtr_report_stats ($) {
mtr_warning("can't read $errlog");
next;
}
my $leak_reports_expected= undef;
while ( <ERR> )
{
# There is a test case that purposely provokes a
# SAFEMALLOC leak report, even though there is no actual
# leak. We need to detect this, and ignore the warning in
# that case.
if (/Begin safemalloc memory dump:/) {
$leak_reports_expected= 1;
} elsif (/End safemalloc memory dump./) {
$leak_reports_expected= undef;
}
# Skip some non fatal warnings from the log files
if ( /Warning:\s+Table:.* on (delete|rename)/ or
/Warning:\s+Setting lower_case_table_names=2/ or
@ -290,6 +301,9 @@ sub mtr_report_stats ($) {
}
if ( /$pattern/ )
{
if ($leak_reports_expected) {
next;
}
$found_problems= 1;
print WARN $_;
}

View file

@ -5,14 +5,53 @@ key (n2, n3, n1),
key (n3, n1, n2));
create table t2 (i int);
alter table t1 disable keys;
insert into t1 values (RAND()*1000, RAND()*1000, RAND()*1000);
reset master;
set session debug="+d,sleep_alter_enable_indexes";
alter table t1 enable keys;;
insert into t2 values (1);
insert into t1 values (1, 1, 1);
show binlog events in 'master-bin.000001' from 102;
set session debug="-d,sleep_alter_enable_indexes";
show binlog events in 'master-bin.000001' from 106;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # use `test`; insert into t2 values (1)
master-bin.000001 # Query 1 # use `test`; alter table t1 enable keys
master-bin.000001 # Query 1 # use `test`; insert into t1 values (1, 1, 1)
drop tables t1, t2;
End of 5.0 tests
drop table if exists t1, t2, t3;
create table t1 (i int);
reset master;
set session debug="+d,sleep_alter_before_main_binlog";
alter table t1 change i c char(10) default 'Test1';;
insert into t1 values ();
select * from t1;
c
Test1
alter table t1 change c vc varchar(100) default 'Test2';;
rename table t1 to t2;
drop table t2;
create table t1 (i int);
alter table t1 change i c char(10) default 'Test3', rename to t2;;
insert into t2 values ();
select * from t2;
c
Test3
alter table t2 change c vc varchar(100) default 'Test2', rename to t1;;
rename table t1 to t3;
drop table t3;
set session debug="-d,sleep_alter_before_main_binlog";
show binlog events in 'master-bin.000001' from 106;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # use `test`; alter table t1 change i c char(10) default 'Test1'
master-bin.000001 # Query 1 # use `test`; insert into t1 values ()
master-bin.000001 # Query 1 # use `test`; alter table t1 change c vc varchar(100) default 'Test2'
master-bin.000001 # Query 1 # use `test`; rename table t1 to t2
master-bin.000001 # Query 1 # use `test`; drop table t2
master-bin.000001 # Query 1 # use `test`; create table t1 (i int)
master-bin.000001 # Query 1 # use `test`; alter table t1 change i c char(10) default 'Test3', rename to t2
master-bin.000001 # Query 1 # use `test`; insert into t2 values ()
master-bin.000001 # Query 1 # use `test`; alter table t2 change c vc varchar(100) default 'Test2', rename to t1
master-bin.000001 # Query 1 # use `test`; rename table t1 to t3
master-bin.000001 # Query 1 # use `test`; drop table t3
End of 5.1 tests

View file

@ -977,6 +977,59 @@ SELECT * FROM t1;
v b
abc 5
DROP TABLE t1;
End of 5.0 tests
drop table if exists t1, t2, t3;
create table t1 (i int);
create table t3 (j int);
insert into t1 values ();
insert into t3 values ();
lock table t1 write, t3 read;
alter table t1 modify i int default 1;
insert into t1 values ();
select * from t1;
i
NULL
1
alter table t1 change i c char(10) default "Two";
insert into t1 values ();
select * from t1;
c
NULL
1
Two
alter table t1 modify c char(10) default "Three", rename to t2;
select * from t1;
ERROR HY000: Table 't1' was not locked with LOCK TABLES
select * from t2;
ERROR HY000: Table 't2' was not locked with LOCK TABLES
select * from t3;
j
NULL
unlock tables;
insert into t2 values ();
select * from t2;
c
NULL
1
Three
lock table t2 write, t3 read;
alter table t2 change c vc varchar(100) default "Four", rename to t1;
select * from t1;
ERROR HY000: Table 't1' was not locked with LOCK TABLES
select * from t2;
ERROR HY000: Table 't2' was not locked with LOCK TABLES
select * from t3;
j
NULL
unlock tables;
insert into t1 values ();
select * from t1;
vc
NULL
1
Three
Four
drop tables t1, t3;
DROP TABLE IF EXISTS `t+1`, `t+2`;
CREATE TABLE `t+1` (c1 INT);
ALTER TABLE `t+1` RENAME `t+2`;

View file

@ -162,3 +162,86 @@ t1 CREATE TABLE `t1` (
`j` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t1, t2, t3;
drop table if exists t1,t2;
create table t1 (i int);
set session debug="+d,sleep_create_like_before_check_if_exists";
reset master;
create table t2 like t1;;
insert into t1 values (1);
drop table t1;
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`i` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t2;
show binlog events in 'master-bin.000001' from 106;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # use `test`; insert into t1 values (1)
master-bin.000001 # Query 1 # use `test`; create table t2 like t1
master-bin.000001 # Query 1 # use `test`; drop table t1
master-bin.000001 # Query 1 # use `test`; drop table t2
create table t1 (i int);
set session debug="-d,sleep_create_like_before_check_if_exists:+d,sleep_create_like_before_copy";
create table t2 like t1;;
create table if not exists t2 (j int);
Warnings:
Note 1050 Table 't2' already exists
show create table t2;
Table Create Table
t2 CREATE TABLE `t2` (
`i` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop table t2;
reset master;
create table t2 like t1;;
drop table t1;
drop table t2;
show binlog events in 'master-bin.000001' from 106;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # use `test`; create table t2 like t1
master-bin.000001 # Query 1 # use `test`; drop table t1
master-bin.000001 # Query 1 # use `test`; drop table t2
create table t1 (i int);
set session debug="-d,sleep_create_like_before_copy:+d,sleep_create_like_before_ha_create";
reset master;
create table t2 like t1;;
insert into t2 values (1);
drop table t2;
create table t2 like t1;;
drop table t2;
create table t2 like t1;;
drop table t1;
drop table t2;
show binlog events in 'master-bin.000001' from 106;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # use `test`; create table t2 like t1
master-bin.000001 # Query 1 # use `test`; insert into t2 values (1)
master-bin.000001 # Query 1 # use `test`; drop table t2
master-bin.000001 # Query 1 # use `test`; create table t2 like t1
master-bin.000001 # Query 1 # use `test`; drop table t2
master-bin.000001 # Query 1 # use `test`; create table t2 like t1
master-bin.000001 # Query 1 # use `test`; drop table t1
master-bin.000001 # Query 1 # use `test`; drop table t2
create table t1 (i int);
set session debug="-d,sleep_create_like_before_ha_create:+d,sleep_create_like_before_binlogging";
reset master;
create table t2 like t1;;
insert into t2 values (1);
drop table t2;
create table t2 like t1;;
drop table t2;
create table t2 like t1;;
drop table t1;
drop table t2;
show binlog events in 'master-bin.000001' from 106;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query 1 # use `test`; create table t2 like t1
master-bin.000001 # Query 1 # use `test`; insert into t2 values (1)
master-bin.000001 # Query 1 # use `test`; drop table t2
master-bin.000001 # Query 1 # use `test`; create table t2 like t1
master-bin.000001 # Query 1 # use `test`; drop table t2
master-bin.000001 # Query 1 # use `test`; create table t2 like t1
master-bin.000001 # Query 1 # use `test`; drop table t1
master-bin.000001 # Query 1 # use `test`; drop table t2
set session debug="-d,sleep_create_like_before_binlogging";

View file

@ -371,7 +371,7 @@ ERROR 42S01: Table 't3' already exists
create table non_existing_database.t1 like t1;
ERROR 42000: Unknown database 'non_existing_database'
create table t3 like non_existing_table;
ERROR 42S02: Unknown table 'non_existing_table'
ERROR 42S02: Table 'test.non_existing_table' doesn't exist
create temporary table t3 like t1;
ERROR 42S01: Table 't3' already exists
drop table t1, t2, t3;

View file

@ -381,3 +381,27 @@ drop table t2;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM `a@`@localhost;
drop user `a@`@localhost;
SET GLOBAL log_bin_trust_function_creators = 0;
drop database if exists mysqltest_1;
drop database if exists mysqltest_2;
drop user mysqltest_u1@localhost;
create database mysqltest_1;
create database mysqltest_2;
grant all on mysqltest_1.* to mysqltest_u1@localhost;
use mysqltest_2;
create table t1 (i int);
show create table mysqltest_2.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1'
create table t1 like mysqltest_2.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1'
grant select on mysqltest_2.t1 to mysqltest_u1@localhost;
show create table mysqltest_2.t1;
Table Create Table
t1 CREATE TABLE `t1` (
`i` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
create table t1 like mysqltest_2.t1;
use test;
drop database mysqltest_1;
drop database mysqltest_2;
drop user mysqltest_u1@localhost;
End of 5.0 tests

View file

@ -817,4 +817,28 @@ lock table t2 write;
alter table t2 modify i int default 4, rename t1;
unlock tables;
drop table t1;
drop table if exists t1;
create table t1 (i int);
insert into t1 values ();
lock table t1 write;
alter table t1 modify i int default 1;
insert into t1 values ();
select * from t1;
i
NULL
1
alter table t1 change i c char(10) default "Two";
insert into t1 values ();
select * from t1;
c
NULL
1
Two
unlock tables;
select * from t1;
c
NULL
1
Two
drop tables t1;
End of 5.1 tests

View file

@ -1917,38 +1917,38 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@ -1964,38 +1964,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@ -2014,38 +2014,38 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
@ -2054,38 +2054,38 @@ execute stmt1 using @my_key ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@ -2102,38 +2102,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@ -2146,38 +2146,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@ -2192,76 +2192,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;

View file

@ -1900,38 +1900,38 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@ -1947,38 +1947,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@ -1997,38 +1997,38 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
@ -2037,38 +2037,38 @@ execute stmt1 using @my_key ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@ -2085,38 +2085,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@ -2129,38 +2129,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@ -2175,76 +2175,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;

View file

@ -1901,38 +1901,38 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 0 31 8
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 0 31 8
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 0 31 8
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 0 31 8
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 0 31 8
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 0 31 8
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 0 31 8
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 0 31 8
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@ -1948,38 +1948,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 0 31 8
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 0 31 8
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 0 31 8
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 0 31 8
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 0 31 8
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 0 31 8
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 0 31 8
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 0 31 8
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@ -1998,38 +1998,38 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 0 31 8
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 0 31 8
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 0 31 8
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 0 31 8
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 0 31 8
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 0 31 8
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 0 31 8
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 0 31 8
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
@ -2038,38 +2038,38 @@ execute stmt1 using @my_key ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 0 31 8
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 0 31 8
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 0 31 8
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 0 31 8
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 0 31 8
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 0 31 8
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 0 31 8
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 0 31 8
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@ -2086,38 +2086,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 0 31 8
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 0 31 8
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 0 31 8
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 0 31 8
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 0 31 8
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 0 31 8
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 0 31 8
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 0 31 8
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@ -2130,38 +2130,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 0 31 8
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 0 31 8
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 0 31 8
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 0 31 8
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 0 31 8
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 0 31 8
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 0 31 8
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 0 31 8
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@ -2176,76 +2176,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 0 31 8
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 0 31 8
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 0 31 8
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 0 31 8
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 0 31 8
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 0 31 8
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 0 31 8
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 0 31 8
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 0 31 8
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 0 31 8
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 0 31 8
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 0 31 8
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 0 31 8
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 0 31 8
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 0 31 8
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 0 31 8
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;

File diff suppressed because it is too large Load diff

View file

@ -1900,38 +1900,38 @@ from t9 where c1= 1 ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select @arg01:= c1, @arg02:= c2, @arg03:= c3, @arg04:= c4,
@ -1947,38 +1947,38 @@ from t9 where c1= 0 ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select
@ -1997,38 +1997,38 @@ execute stmt1 using @my_key ;
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
@ -2037,38 +2037,38 @@ execute stmt1 using @my_key ;
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select ? := c1 from t9 where c1= 1" ;
@ -2085,38 +2085,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 1 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@ -2129,38 +2129,38 @@ into @arg01, @arg02, @arg03, @arg04, @arg05, @arg06, @arg07, @arg08,
from t9 where c1= 0 ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12,
@ -2175,76 +2175,76 @@ set @my_key= 1 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 1 Y 128 0 63
def @arg03 253 20 1 Y 128 0 63
def @arg04 253 20 1 Y 128 0 63
def @arg05 253 20 1 Y 128 0 63
def @arg06 253 20 1 Y 128 0 63
def @arg07 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 @arg10 253 23 1 Y 128 31 63
def @arg11 253 67 6 Y 128 30 63
def @arg12 253 67 6 Y 128 30 63
def @arg13 253 16777216 10 Y 128 31 63
def @arg14 253 16777216 19 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 8 Y 128 31 63
def @arg17 253 20 4 Y 128 0 63
def @arg18 253 20 1 Y 128 0 63
def @arg19 253 20 1 Y 128 0 63
def @arg20 253 16777216 1 Y 0 31 8
def @arg21 253 16777216 10 Y 0 31 8
def @arg22 253 16777216 30 Y 0 31 8
def @arg23 253 16777216 8 Y 128 31 63
def @arg24 253 16777216 8 Y 0 31 8
def @arg25 253 16777216 4 Y 128 31 63
def @arg26 253 16777216 4 Y 0 31 8
def @arg27 253 16777216 10 Y 128 31 63
def @arg28 253 16777216 10 Y 0 31 8
def @arg29 253 16777216 8 Y 128 31 63
def @arg30 253 16777216 8 Y 0 31 8
def @arg31 253 16777216 3 Y 0 31 8
def @arg32 253 16777216 6 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 1 Y 32896 0 63
def @arg03 8 20 1 Y 32896 0 63
def @arg04 8 20 1 Y 32896 0 63
def @arg05 8 20 1 Y 32896 0 63
def @arg06 8 20 1 Y 32896 0 63
def @arg07 5 23 1 Y 32896 31 63
def @arg08 5 23 1 Y 32896 31 63
def @arg09 5 23 1 Y 32896 31 63
def @arg10 5 23 1 Y 32896 31 63
def @arg11 246 67 6 Y 128 30 63
def @arg12 246 67 6 Y 128 30 63
def @arg13 251 16777216 10 Y 128 31 63
def @arg14 251 16777216 19 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 8 Y 128 31 63
def @arg17 8 20 4 Y 32928 0 63
def @arg18 8 20 1 Y 32896 0 63
def @arg19 8 20 1 Y 32896 0 63
def @arg20 251 16777216 1 Y 0 31 8
def @arg21 251 16777216 10 Y 0 31 8
def @arg22 251 16777216 30 Y 0 31 8
def @arg23 251 16777216 8 Y 128 31 63
def @arg24 251 16777216 8 Y 0 31 8
def @arg25 251 16777216 4 Y 128 31 63
def @arg26 251 16777216 4 Y 0 31 8
def @arg27 251 16777216 10 Y 128 31 63
def @arg28 251 16777216 10 Y 0 31 8
def @arg29 251 16777216 8 Y 128 31 63
def @arg30 251 16777216 8 Y 0 31 8
def @arg31 251 16777216 3 Y 0 31 8
def @arg32 251 16777216 6 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
1 1 1 1 1 1 1 1 1 1 1.0000 1.0000 2004-02-29 2004-02-29 11:11:11 2004-02-29 11:11:11 11:11:11 2004 1 1 a 123456789a 123456789a123456789b123456789c tinyblob tinytext blob text mediumblob mediumtext longblob longtext one monday
set @my_key= 0 ;
execute stmt1 using @my_key ;
execute full_info ;
Catalog Database Table Table_alias Column Column_alias Type Length Max length Is_null Flags Decimals Charsetnr
def @arg01 253 20 1 Y 128 0 63
def @arg02 253 20 0 Y 128 0 63
def @arg03 253 20 0 Y 128 0 63
def @arg04 253 20 0 Y 128 0 63
def @arg05 253 20 0 Y 128 0 63
def @arg06 253 20 0 Y 128 0 63
def @arg07 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 @arg10 253 23 0 Y 128 31 63
def @arg11 253 67 0 Y 128 30 63
def @arg12 253 67 0 Y 128 30 63
def @arg13 253 16777216 0 Y 128 31 63
def @arg14 253 16777216 0 Y 128 31 63
def @arg15 253 16777216 19 Y 128 31 63
def @arg16 253 16777216 0 Y 128 31 63
def @arg17 253 20 0 Y 128 0 63
def @arg18 253 20 0 Y 128 0 63
def @arg19 253 20 0 Y 128 0 63
def @arg20 253 16777216 0 Y 0 31 8
def @arg21 253 16777216 0 Y 0 31 8
def @arg22 253 16777216 0 Y 0 31 8
def @arg23 253 16777216 0 Y 128 31 63
def @arg24 253 16777216 0 Y 0 31 8
def @arg25 253 16777216 0 Y 128 31 63
def @arg26 253 16777216 0 Y 0 31 8
def @arg27 253 16777216 0 Y 128 31 63
def @arg28 253 16777216 0 Y 0 31 8
def @arg29 253 16777216 0 Y 128 31 63
def @arg30 253 16777216 0 Y 0 31 8
def @arg31 253 16777216 0 Y 0 31 8
def @arg32 253 16777216 0 Y 0 31 8
def @arg01 8 20 1 Y 32896 0 63
def @arg02 8 20 0 Y 32896 0 63
def @arg03 8 20 0 Y 32896 0 63
def @arg04 8 20 0 Y 32896 0 63
def @arg05 8 20 0 Y 32896 0 63
def @arg06 8 20 0 Y 32896 0 63
def @arg07 5 23 0 Y 32896 31 63
def @arg08 5 23 0 Y 32896 31 63
def @arg09 5 23 0 Y 32896 31 63
def @arg10 5 23 0 Y 32896 31 63
def @arg11 246 67 0 Y 128 30 63
def @arg12 246 67 0 Y 128 30 63
def @arg13 251 16777216 0 Y 128 31 63
def @arg14 251 16777216 0 Y 128 31 63
def @arg15 251 16777216 19 Y 128 31 63
def @arg16 251 16777216 0 Y 128 31 63
def @arg17 8 20 0 Y 32928 0 63
def @arg18 8 20 0 Y 32896 0 63
def @arg19 8 20 0 Y 32896 0 63
def @arg20 251 16777216 0 Y 0 31 8
def @arg21 251 16777216 0 Y 0 31 8
def @arg22 251 16777216 0 Y 0 31 8
def @arg23 251 16777216 0 Y 128 31 63
def @arg24 251 16777216 0 Y 0 31 8
def @arg25 251 16777216 0 Y 128 31 63
def @arg26 251 16777216 0 Y 0 31 8
def @arg27 251 16777216 0 Y 128 31 63
def @arg28 251 16777216 0 Y 0 31 8
def @arg29 251 16777216 0 Y 128 31 63
def @arg30 251 16777216 0 Y 0 31 8
def @arg31 251 16777216 0 Y 0 31 8
def @arg32 251 16777216 0 Y 0 31 8
@arg01 @arg02 @arg03 @arg04 @arg05 @arg06 @arg07 @arg08 @arg09 @arg10 @arg11 @arg12 @arg13 @arg14 @arg15 @arg16 @arg17 @arg18 @arg19 @arg20 @arg21 @arg22 @arg23 @arg24 @arg25 @arg26 @arg27 @arg28 @arg29 @arg30 @arg31 @arg32
0 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1991-01-01 01:01:01 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
prepare stmt1 from "select c1 into ? from t9 where c1= 1" ;

View file

@ -1030,7 +1030,7 @@ select bug12329();
bug12329()
101
execute stmt1;
ERROR HY000: Table 't2' was not locked with LOCK TABLES
ERROR 42S02: Table 'test.t2' doesn't exist
deallocate prepare stmt1;
drop function bug12329;
drop table t1, t2;
@ -1152,12 +1152,12 @@ create trigger t1_ai after insert on t1 for each row insert into t2 values (new.
create view v1 as select * from t1;
drop table t2;
insert into v1 values (1);
ERROR HY000: Table 't2' was not locked with LOCK TABLES
ERROR 42S02: Table 'test.t2' doesn't exist
drop trigger t1_ai;
create function bug11555_1() returns int return (select max(i) from t2);
create trigger t1_ai after insert on t1 for each row set @a:=bug11555_1();
insert into v1 values (2);
ERROR HY000: Table 't2' was not locked with LOCK TABLES
ERROR 42S02: Table 'test.t2' doesn't exist
drop function bug11555_1;
drop table t1;
drop view v1;

View file

@ -254,4 +254,17 @@ execute stmt;
deallocate prepare stmt;
drop function bug19634;
drop table t1, t2, t3;
drop table if exists bug_27907_logs;
drop table if exists bug_27907_t1;
create table bug_27907_logs (a int);
create table bug_27907_t1 (a int);
create trigger bug_27907_t1_ai after insert on bug_27907_t1
for each row
begin
insert into bug_27907_logs (a) values (1);
end|
drop table bug_27907_logs;
insert into bug_27907_t1(a) values (1);
ERROR 42S02: Table 'test.bug_27907_logs' doesn't exist
drop table bug_27907_t1;
End of 5.0 tests

View file

@ -1202,3 +1202,29 @@ after substr str_remainder
after substr b,c
DROP PROCEDURE bug27415_text_test|
DROP PROCEDURE bug27415_text_test2|
drop function if exists f1;
drop table if exists t1;
create function f1() returns int
begin
if @a=1 then set @b='abc';
else set @b=1;
end if;
set @a=1;
return 0;
end|
create table t1 (a int)|
insert into t1 (a) values (1), (2)|
set @b=1|
set @a=0|
select f1(), @b from t1|
f1() @b
0 1
0 0
set @b:='test'|
set @a=0|
select f1(), @b from t1|
f1() @b
0 1
0 abc
drop function f1;
drop table t1;

View file

@ -820,9 +820,9 @@ call p1();
drop trigger t1_bi;
create trigger t1_bi after insert on t1 for each row insert into t3 values (new.id);
execute stmt1;
ERROR HY000: Table 't3' was not locked with LOCK TABLES
ERROR 42S02: Table 'test.t3' doesn't exist
call p1();
ERROR HY000: Table 't3' was not locked with LOCK TABLES
ERROR 42S02: Table 'test.t3' doesn't exist
deallocate prepare stmt1;
drop procedure p1;
drop table t1, t2, t3;

View file

@ -110,15 +110,24 @@ select 1 from t1 where cast('2000-01-01 12:01:01' as datetime) between start_dat
1
1
drop table t1;
select @d:=1111, year(@d), month(@d), day(@d), cast(@d as date);
@d:=1111 year(@d) month(@d) day(@d) cast(@d as date)
1111 2000 11 11 2000-11-11
select @d:=011111, year(@d), month(@d), day(@d), cast(@d as date);
@d:=011111 year(@d) month(@d) day(@d) cast(@d as date)
11111 2001 11 11 2001-11-11
select @d:=1311, year(@d), month(@d), day(@d), cast(@d as date);
@d:=1311 year(@d) month(@d) day(@d) cast(@d as date)
1311 NULL NULL NULL NULL
select @d:=1111;
@d:=1111
1111
select year(@d), month(@d), day(@d), cast(@d as date);
year(@d) month(@d) day(@d) cast(@d as date)
2000 11 11 2000-11-11
select @d:=011111;
@d:=011111
11111
select year(@d), month(@d), day(@d), cast(@d as date);
year(@d) month(@d) day(@d) cast(@d as date)
2001 11 11 2001-11-11
select @d:=1311;
@d:=1311
1311
select year(@d), month(@d), day(@d), cast(@d as date);
year(@d) month(@d) day(@d) cast(@d as date)
NULL NULL NULL NULL
Warnings:
Warning 1292 Incorrect datetime value: '1311'
Warning 1292 Incorrect datetime value: '1311'

View file

@ -91,7 +91,7 @@ NULL test test
set @g=1;
select @g,(@g:=c),@g from t1;
@g (@g:=c) @g
1 test test
1 test 0
select @c, @d, @e, @f;
@c @d @e @f
1 1 2 test

View file

@ -1,7 +1,12 @@
# In order to be more or less robust test for bug#25044 has to take
# significant time (e.g. about 9 seconds on my (Dmitri's) computer)
# so we probably want execute it only in --big-test mode.
#
# Tests for various concurrency-related aspects of ALTER TABLE implemetation
#
# This test takes rather long time so let us run it only in --big-test mode
--source include/big_test.inc
# We are using some debug-only features in this test
--source include/have_debug.inc
# Also we are using SBR to check that statements are executed
# in proper order.
--source include/have_binlog_format_mixed_or_statement.inc
@ -22,27 +27,20 @@ create table t1 (n1 int, n2 int, n3 int,
key (n3, n1, n2));
create table t2 (i int);
# Populating 't1' table with keys disabled, so ALTER TABLE .. ENABLE KEYS
# will run for some time
# Starting from 5.1 we have runtime settable @@debug variable,
# which can be used for introducing delays at certain points of
# statement execution, so we don't need many rows in 't1' to make
# this test repeatable.
alter table t1 disable keys;
--disable_query_log
insert into t1 values (RAND()*1000,RAND()*1000,RAND()*1000);
let $1=19;
while ($1)
{
eval insert into t1 select RAND()*1000,RAND()*1000,RAND()*1000 from t1;
dec $1;
}
--enable_query_log
insert into t1 values (RAND()*1000, RAND()*1000, RAND()*1000);
# Later we use binlog to check the order in which statements are
# executed so let us reset it first.
reset master;
set session debug="+d,sleep_alter_enable_indexes";
--send alter table t1 enable keys;
connection addconroot;
let $show_type= PROCESSLIST;
let $show_pattern= '%Repair by sorting%alter table t1 enable keys%';
--source include/wait_show_pattern.inc
--sleep 2
# This statement should not be blocked by in-flight ALTER and therefore
# should be executed and written to binlog before ALTER TABLE ... ENABLE KEYS
# finishes.
@ -51,12 +49,68 @@ insert into t2 values (1);
insert into t1 values (1, 1, 1);
connection default;
--reap
set session debug="-d,sleep_alter_enable_indexes";
# Check that statements were executed/binlogged in correct order.
--replace_column 2 # 5 #
show binlog events in 'master-bin.000001' from 102;
show binlog events in 'master-bin.000001' from 106;
# Clean up
drop tables t1, t2;
--echo End of 5.0 tests
#
# Additional coverage for the main ALTER TABLE case
#
# We should be sure that table being altered is properly
# locked during statement execution and in particular that
# no DDL or DML statement can sneak in and get access to
# the table when real operation has already taken place
# but this fact has not been noted in binary log yet.
--disable_warnings
drop table if exists t1, t2, t3;
--enable_warnings
create table t1 (i int);
# We are going to check that statements are logged in correct order
reset master;
set session debug="+d,sleep_alter_before_main_binlog";
--send alter table t1 change i c char(10) default 'Test1';
connection addconroot;
--sleep 2
insert into t1 values ();
select * from t1;
connection default;
--reap
--send alter table t1 change c vc varchar(100) default 'Test2';
connection addconroot;
--sleep 2
rename table t1 to t2;
connection default;
--reap
drop table t2;
# And now tests for ALTER TABLE with RENAME clause. In this
# case target table name should be properly locked as well.
create table t1 (i int);
--send alter table t1 change i c char(10) default 'Test3', rename to t2;
connection addconroot;
--sleep 2
insert into t2 values ();
select * from t2;
connection default;
--reap
--send alter table t2 change c vc varchar(100) default 'Test2', rename to t1;
connection addconroot;
--sleep 2
rename table t1 to t3;
connection default;
--reap
drop table t3;
set session debug="-d,sleep_alter_before_main_binlog";
# Check that all statements were logged in correct order
--replace_column 2 # 5 #
show binlog events in 'master-bin.000001' from 106;
--echo End of 5.1 tests

View file

@ -727,7 +727,58 @@ ALTER TABLE t1 MODIFY COLUMN v VARCHAR(4);
SELECT * FROM t1;
DROP TABLE t1;
# End of 5.0 tests
--echo End of 5.0 tests
#
# Extended test coverage for ALTER TABLE behaviour under LOCK TABLES
# It should be consistent across all platforms and for all engines
# (Before 5.1 this was not true as behavior was different between
# Unix/Windows and transactional/non-transactional tables).
# See also innodb_mysql.test
#
--disable_warnings
drop table if exists t1, t2, t3;
--enable_warnings
create table t1 (i int);
create table t3 (j int);
insert into t1 values ();
insert into t3 values ();
# Table which is altered under LOCK TABLES it should stay in list of locked
# tables and be available after alter takes place unless ALTER contains RENAME
# clause. We should see the new definition of table, of course.
lock table t1 write, t3 read;
# Example of so-called 'fast' ALTER TABLE
alter table t1 modify i int default 1;
insert into t1 values ();
select * from t1;
# And now full-blown ALTER TABLE
alter table t1 change i c char(10) default "Two";
insert into t1 values ();
select * from t1;
# If table is renamed then it should be removed from the list
# of locked tables. 'Fast' ALTER TABLE with RENAME clause:
alter table t1 modify c char(10) default "Three", rename to t2;
--error ER_TABLE_NOT_LOCKED
select * from t1;
--error ER_TABLE_NOT_LOCKED
select * from t2;
select * from t3;
unlock tables;
insert into t2 values ();
select * from t2;
lock table t2 write, t3 read;
# Full ALTER TABLE with RENAME
alter table t2 change c vc varchar(100) default "Four", rename to t1;
--error ER_TABLE_NOT_LOCKED
select * from t1;
--error ER_TABLE_NOT_LOCKED
select * from t2;
select * from t3;
unlock tables;
insert into t1 values ();
select * from t1;
drop tables t1, t3;
#
# Bug#18775 - Temporary table from alter table visible to other threads

View file

@ -1,12 +1,17 @@
# Tests for various aspects of CREATE TABLE ... SELECT implementation
# Tests for various concurrency-related aspects of CREATE TABLE ... SELECT
# and CREATE TABLE like implementation.
#
# Note that we don't test general CREATE TABLE ... SELECT functionality here as
# it is already covered by create.test. We are more interested in extreme cases.
# Note that we don't test general CREATE TABLE ... SELECT/LIKE functionality
# here as it is already covered by create.test. We are more interested in
# extreme cases.
#
# This test takes rather long time so let us run it only in --big-test mode
--source include/big_test.inc
# We are using some debug-only features in this test
--source include/have_debug.inc
# Some of tests below also use binlog to check that statements are
# executed and logged in correct order
--source include/have_binlog_format_mixed_or_statement.inc
# Create auxilliary connections
connect (addconroot1, localhost, root,,);
@ -20,7 +25,7 @@ drop table if exists t1,t2,t3,t4,t5;
#
# Tests for concurrency problems.
# Tests for concurrency problems in CREATE TABLE ... SELECT
#
# We introduce delays between various stages of table creation
# and check that other statements dealing with this table cannot
@ -266,3 +271,122 @@ connection default;
select * from t1;
show create table t1;
drop table t1, t2, t3;
# Tests for possible concurrency issues with CREATE TABLE ... LIKE
#
# Bug #18950 "create table like does not obtain LOCK_open"
# Bug #23667 "CREATE TABLE LIKE is not isolated from alteration by other
# connections"
#
# Again the idea of this test is that we introduce artificial delays on
# various stages of table creation and check that concurrent statements
# for tables from CREATE TABLE ... LIKE are not interfering.
--disable_warnings
drop table if exists t1,t2;
--enable_warnings
# What happens if some statements sneak in right after we have
# opened source table ?
create table t1 (i int);
set session debug="+d,sleep_create_like_before_check_if_exists";
# Reset binlog to have clear start
reset master;
--send create table t2 like t1;
connection addconroot1;
--sleep 2
# DML on source table should be allowed to run concurrently
insert into t1 values (1);
# And DDL should wait
drop table t1;
connection default;
--reap
show create table t2;
drop table t2;
# Let us check that statements were executed/binlogged in correct order
--replace_column 2 # 5 #
show binlog events in 'master-bin.000001' from 106;
# Now let us check the gap between check for target table
# existance and copying of .frm file.
create table t1 (i int);
set session debug="-d,sleep_create_like_before_check_if_exists:+d,sleep_create_like_before_copy";
# It should be impossible to create target table concurrently
--send create table t2 like t1;
connection addconroot1;
--sleep 2
create table if not exists t2 (j int);
connection default;
--reap
show create table t2;
drop table t2;
# And concurrent DDL on the source table should be still disallowed
reset master;
--send create table t2 like t1;
connection addconroot1;
--sleep 2
drop table t1;
connection default;
--reap
drop table t2;
--replace_column 2 # 5 #
show binlog events in 'master-bin.000001' from 106;
# And now he gap between copying of .frm file and ha_create_table() call.
create table t1 (i int);
set session debug="-d,sleep_create_like_before_copy:+d,sleep_create_like_before_ha_create";
# Both DML and DDL on target table should wait till operation completes
reset master;
--send create table t2 like t1;
connection addconroot1;
--sleep 2
insert into t2 values (1);
connection default;
--reap
drop table t2;
--send create table t2 like t1;
connection addconroot1;
--sleep 2
drop table t2;
connection default;
--reap
# Concurrent DDL on the source table still waits
--send create table t2 like t1;
connection addconroot1;
--sleep 2
drop table t1;
connection default;
--reap
drop table t2;
--replace_column 2 # 5 #
show binlog events in 'master-bin.000001' from 106;
# Finally we check the gap between ha_create_table() and binlogging
create table t1 (i int);
set session debug="-d,sleep_create_like_before_ha_create:+d,sleep_create_like_before_binlogging";
reset master;
--send create table t2 like t1;
connection addconroot1;
--sleep 2
insert into t2 values (1);
connection default;
--reap
drop table t2;
--send create table t2 like t1;
connection addconroot1;
--sleep 2
drop table t2;
connection default;
--reap
--send create table t2 like t1;
connection addconroot1;
--sleep 2
drop table t1;
connection default;
--reap
drop table t2;
--replace_column 2 # 5 #
show binlog events in 'master-bin.000001' from 106;
set session debug="-d,sleep_create_like_before_binlogging";

View file

@ -306,7 +306,7 @@ create table t3 like t1;
create table t3 like mysqltest.t3;
--error 1049
create table non_existing_database.t1 like t1;
--error 1051
--error ER_NO_SUCH_TABLE
create table t3 like non_existing_table;
--error 1050
create temporary table t3 like t1;

View file

@ -30,7 +30,6 @@ rpl_ddl : BUG#26418 2007-03-01 mleich Slave out of sync after C
rpl_ndb_innodb2ndb : Bug #19710 Cluster replication to partition table fails on DELETE FROM statement
rpl_ndb_myisam2ndb : Bug #19710 Cluster replication to partition table fails on DELETE FROM statement
rpl_row_blob_innodb : BUG#18980 2006-04-10 kent Test fails randomly
synchronization : Bug#24529 Test 'synchronization' fails on Mac pushbuild; Also on Linux 64 bit.
# the below testcase have been reworked to avoid the bug, test contains comment, keep bug open
#ndb_binlog_ddl_multi : BUG#18976 2006-04-10 kent CRBR: multiple binlog, second binlog may miss schema log events

View file

@ -513,3 +513,47 @@ REVOKE ALL PRIVILEGES, GRANT OPTION FROM `a@`@localhost;
drop user `a@`@localhost;
SET GLOBAL log_bin_trust_function_creators = 0;
#
# Bug#25578 "CREATE TABLE LIKE does not require any privileges on source table"
#
--disable_warnings
drop database if exists mysqltest_1;
drop database if exists mysqltest_2;
--enable_warnings
--error 0,ER_CANNOT_USER
drop user mysqltest_u1@localhost;
create database mysqltest_1;
create database mysqltest_2;
grant all on mysqltest_1.* to mysqltest_u1@localhost;
use mysqltest_2;
create table t1 (i int);
# Connect as user with all rights on mysqltest_1 but with no rights on mysqltest_2.
connect (user1,localhost,mysqltest_u1,,mysqltest_1);
connection user1;
# As expected error is emitted
--error ER_TABLEACCESS_DENIED_ERROR
show create table mysqltest_2.t1;
# This should emit error as well
--error ER_TABLEACCESS_DENIED_ERROR
create table t1 like mysqltest_2.t1;
# Now let us check that SELECT privilege on the source is enough
connection default;
grant select on mysqltest_2.t1 to mysqltest_u1@localhost;
connection user1;
show create table mysqltest_2.t1;
create table t1 like mysqltest_2.t1;
# Clean-up
connection default;
use test;
drop database mysqltest_1;
drop database mysqltest_2;
drop user mysqltest_u1@localhost;
--echo End of 5.0 tests

View file

@ -1458,7 +1458,7 @@ select bug12329();
# Until we implement proper mechanism for invalidation of PS/SP when table
# or SP's are changed the following statement will fail with 'Table ... was
# not locked' error (this mechanism should be based on the new TDC).
--error 1100
--error ER_NO_SUCH_TABLE
execute stmt1;
deallocate prepare stmt1;
drop function bug12329;
@ -1643,13 +1643,13 @@ create trigger t1_ai after insert on t1 for each row insert into t2 values (new.
create view v1 as select * from t1;
drop table t2;
# Limitation, the desired error is ER_VIEW_INVALID
--error ER_TABLE_NOT_LOCKED
--error ER_NO_SUCH_TABLE
insert into v1 values (1);
drop trigger t1_ai;
create function bug11555_1() returns int return (select max(i) from t2);
create trigger t1_ai after insert on t1 for each row set @a:=bug11555_1();
# Limitation, the desired error is ER_VIEW_INVALID
--error ER_TABLE_NOT_LOCKED
--error ER_NO_SUCH_TABLE
insert into v1 values (2);
drop function bug11555_1;
drop table t1;

View file

@ -301,5 +301,36 @@ deallocate prepare stmt;
drop function bug19634;
drop table t1, t2, t3;
#
# Bug #27907 Misleading error message when opening/locking tables
#
--disable_warnings
drop table if exists bug_27907_logs;
drop table if exists bug_27907_t1;
--enable_warnings
create table bug_27907_logs (a int);
create table bug_27907_t1 (a int);
delimiter |;
create trigger bug_27907_t1_ai after insert on bug_27907_t1
for each row
begin
insert into bug_27907_logs (a) values (1);
end|
delimiter ;|
drop table bug_27907_logs;
#
# was failing before with error ER_NOT_LOCKED
#
--error ER_NO_SUCH_TABLE
insert into bug_27907_t1(a) values (1);
drop table bug_27907_t1;
--echo End of 5.0 tests

View file

@ -1412,3 +1412,39 @@ DROP PROCEDURE bug27415_text_test2|
DELIMITER ;|
# End of 5.0 tests.
#
# Bug #26277 User variable returns one type in SELECT @v and other for CREATE as SELECT @v
#
--disable_warnings
drop function if exists f1;
drop table if exists t1;
--enable_warnings
delimiter |;
create function f1() returns int
begin
if @a=1 then set @b='abc';
else set @b=1;
end if;
set @a=1;
return 0;
end|
create table t1 (a int)|
insert into t1 (a) values (1), (2)|
set @b=1|
set @a=0|
select f1(), @b from t1|
set @b:='test'|
set @a=0|
select f1(), @b from t1|
delimiter ;|
drop function f1;
drop table t1;
# End of 5.1 tests.

View file

@ -1000,9 +1000,9 @@ create trigger t1_bi after insert on t1 for each row insert into t3 values (new.
# Until we implement proper mechanism for invalidation of PS/SP when table
# or SP's are changed these two statements will fail with 'Table ... was
# not locked' error (this mechanism should be based on the new TDC).
--error 1100 #ER_TABLE_NOT_LOCKED
--error ER_NO_SUCH_TABLE
execute stmt1;
--error 1100 #ER_TABLE_NOT_LOCKED
--error ER_NO_SUCH_TABLE
call p1();
deallocate prepare stmt1;
drop procedure p1;

View file

@ -128,9 +128,12 @@ drop table t1;
# Bug #23093: Implicit conversion of 9912101 to date does not match
# cast(9912101 as date)
#
select @d:=1111, year(@d), month(@d), day(@d), cast(@d as date);
select @d:=011111, year(@d), month(@d), day(@d), cast(@d as date);
select @d:=1311, year(@d), month(@d), day(@d), cast(@d as date);
select @d:=1111;
select year(@d), month(@d), day(@d), cast(@d as date);
select @d:=011111;
select year(@d), month(@d), day(@d), cast(@d as date);
select @d:=1311;
select year(@d), month(@d), day(@d), cast(@d as date);
create table t1 (d date , dt datetime , ts timestamp);
insert into t1 values (9912101,9912101,9912101);
insert into t1 values (11111,11111,11111);

View file

@ -70,15 +70,17 @@ event_queue_element_compare_q(void *vptr, byte* a, byte *b)
*/
Event_queue::Event_queue()
:mutex_last_locked_at_line(0), mutex_last_unlocked_at_line(0),
:next_activation_at(0),
mutex_last_locked_at_line(0),
mutex_last_unlocked_at_line(0),
mutex_last_attempted_lock_at_line(0),
mutex_last_locked_in_func("n/a"),
mutex_last_unlocked_in_func("n/a"),
mutex_last_attempted_lock_in_func("n/a"),
mutex_queue_data_locked(FALSE),
next_activation_at(0),
mutex_queue_data_attempting_lock(FALSE)
mutex_queue_data_attempting_lock(FALSE),
waiting_on_cond(FALSE)
{
mutex_last_unlocked_in_func= mutex_last_locked_in_func=
mutex_last_attempted_lock_in_func= "";
pthread_mutex_init(&LOCK_event_queue, MY_MUTEX_INIT_FAST);
pthread_cond_init(&COND_queue_state, NULL);
}
@ -739,8 +741,11 @@ Event_queue::dump_internal_status()
MYSQL_TIME time;
my_tz_UTC->gmt_sec_to_TIME(&time, next_activation_at);
printf("Next activation : %04d-%02d-%02d %02d:%02d:%02d\n",
time.year, time.month, time.day, time.hour, time.minute, time.second);
if (time.year != 1970)
printf("Next activation : %04d-%02d-%02d %02d:%02d:%02d\n",
time.year, time.month, time.day, time.hour, time.minute, time.second);
else
printf("Next activation : never");
DBUG_VOID_RETURN;
}

View file

@ -104,7 +104,6 @@ private:
bool mutex_queue_data_locked;
bool mutex_queue_data_attempting_lock;
bool waiting_on_cond;
};
#endif /* _EVENT_QUEUE_H_ */

View file

@ -42,7 +42,6 @@ Event_db_repository *Event_worker_thread::db_repository;
static
const LEX_STRING scheduler_states_names[] =
{
{ C_STRING_WITH_LEN("UNINITIALIZED") },
{ C_STRING_WITH_LEN("INITIALIZED") },
{ C_STRING_WITH_LEN("RUNNING") },
{ C_STRING_WITH_LEN("STOPPING") }
@ -331,9 +330,15 @@ end:
Event_scheduler::Event_scheduler(Event_queue *queue_arg)
:state(UNINITIALIZED),
:state(INITIALIZED),
scheduler_thd(NULL),
queue(queue_arg),
mutex_last_locked_at_line(0),
mutex_last_unlocked_at_line(0),
mutex_last_locked_in_func("n/a"),
mutex_last_unlocked_in_func("n/a"),
mutex_scheduler_data_locked(FALSE),
waiting_on_cond(FALSE),
started_events(0)
{
pthread_mutex_init(&LOCK_scheduler_state, MY_MUTEX_INIT_FAST);

View file

@ -111,8 +111,7 @@ private:
enum enum_state
{
UNINITIALIZED = 0,
INITIALIZED,
INITIALIZED = 0,
RUNNING,
STOPPING
};

View file

@ -171,11 +171,11 @@ ha_rows filesort(THD *thd, TABLE *table, SORT_FIELD *sortorder, uint s_length,
if (select && select->quick)
{
statistic_increment(thd->status_var.filesort_range_count, &LOCK_status);
status_var_increment(thd->status_var.filesort_range_count);
}
else
{
statistic_increment(thd->status_var.filesort_scan_count, &LOCK_status);
status_var_increment(thd->status_var.filesort_scan_count);
}
#ifdef CAN_TRUST_RANGE
if (select && select->quick && select->quick->records > 0L)
@ -1129,8 +1129,7 @@ int merge_buffers(SORTPARAM *param, IO_CACHE *from_file,
THD::killed_state not_killable;
DBUG_ENTER("merge_buffers");
statistic_increment(current_thd->status_var.filesort_merge_passes,
&LOCK_status);
status_var_increment(current_thd->status_var.filesort_merge_passes);
if (param->not_killable)
{
killed= &not_killable;

View file

@ -639,7 +639,7 @@ int ha_prepare(THD *thd)
for (; *ht; ht++)
{
int err;
statistic_increment(thd->status_var.ha_prepare_count,&LOCK_status);
status_var_increment(thd->status_var.ha_prepare_count);
if ((*ht)->prepare)
{
if ((err= (*(*ht)->prepare)(*ht, thd, all)))
@ -734,7 +734,7 @@ int ha_commit_trans(THD *thd, bool all)
my_error(ER_ERROR_DURING_COMMIT, MYF(0), err);
error= 1;
}
statistic_increment(thd->status_var.ha_prepare_count,&LOCK_status);
status_var_increment(thd->status_var.ha_prepare_count);
}
DBUG_EXECUTE_IF("crash_commit_after_prepare", abort(););
if (error || (is_real_trans && xid &&
@ -781,7 +781,7 @@ int ha_commit_one_phase(THD *thd, bool all)
my_error(ER_ERROR_DURING_COMMIT, MYF(0), err);
error=1;
}
statistic_increment(thd->status_var.ha_commit_count,&LOCK_status);
status_var_increment(thd->status_var.ha_commit_count);
*ht= 0;
}
trans->nht=0;
@ -837,7 +837,7 @@ int ha_rollback_trans(THD *thd, bool all)
my_error(ER_ERROR_DURING_ROLLBACK, MYF(0), err);
error=1;
}
statistic_increment(thd->status_var.ha_rollback_count,&LOCK_status);
status_var_increment(thd->status_var.ha_rollback_count);
*ht= 0;
}
trans->nht=0;
@ -1252,8 +1252,7 @@ int ha_rollback_to_savepoint(THD *thd, SAVEPOINT *sv)
my_error(ER_ERROR_DURING_ROLLBACK, MYF(0), err);
error=1;
}
statistic_increment(thd->status_var.ha_savepoint_rollback_count,
&LOCK_status);
status_var_increment(thd->status_var.ha_savepoint_rollback_count);
trans->no_2pc|=(*ht)->prepare == 0;
}
/*
@ -1268,7 +1267,7 @@ int ha_rollback_to_savepoint(THD *thd, SAVEPOINT *sv)
my_error(ER_ERROR_DURING_ROLLBACK, MYF(0), err);
error=1;
}
statistic_increment(thd->status_var.ha_rollback_count,&LOCK_status);
status_var_increment(thd->status_var.ha_rollback_count);
*ht=0; // keep it conveniently zero-filled
}
DBUG_RETURN(error);
@ -1301,7 +1300,7 @@ int ha_savepoint(THD *thd, SAVEPOINT *sv)
my_error(ER_GET_ERRNO, MYF(0), err);
error=1;
}
statistic_increment(thd->status_var.ha_savepoint_count,&LOCK_status);
status_var_increment(thd->status_var.ha_savepoint_count);
}
sv->nht=trans->nht;
#endif /* USING_TRANSACTIONS */
@ -1489,7 +1488,7 @@ handler *handler::clone(MEM_ROOT *mem_root)
void handler::ha_statistic_increment(ulong SSV::*offset) const
{
statistic_increment(table->in_use->status_var.*offset, &LOCK_status);
status_var_increment(table->in_use->status_var.*offset);
}
void **handler::ha_data(THD *thd) const
@ -2836,7 +2835,7 @@ int ha_discover(THD *thd, const char *db, const char *name,
error= 0;
if (!error)
statistic_increment(thd->status_var.ha_discover_count,&LOCK_status);
status_var_increment(thd->status_var.ha_discover_count);
DBUG_RETURN(error);
}

View file

@ -223,6 +223,7 @@
#define HA_LEX_CREATE_TMP_TABLE 1
#define HA_LEX_CREATE_IF_NOT_EXISTS 2
#define HA_LEX_CREATE_TABLE_LIKE 4
#define HA_OPTION_NO_CHECKSUM (1L << 17)
#define HA_OPTION_NO_DELAY_KEY_WRITE (1L << 18)
#define HA_MAX_REC_LENGTH 65535

View file

@ -36,7 +36,6 @@
#define sp_restore_security_context(A,B) while (0) {}
#endif
bool check_reserved_words(LEX_STRING *name)
{
if (!my_strcasecmp(system_charset_info, name->str, "GLOBAL") ||
@ -4451,7 +4450,7 @@ int get_var_with_binlog(THD *thd, enum_sql_command sql_command,
> set @a:=1;
> insert into t1 values (@a), (@a:=@a+1), (@a:=@a+1);
We have to write to binlog value @a= 1.
We allocate the user_var_event on user_var_events_alloc pool, not on
the this-statement-execution pool because in SPs user_var_event objects
may need to be valid after current [SP] statement execution pool is
@ -4461,7 +4460,7 @@ int get_var_with_binlog(THD *thd, enum_sql_command sql_command,
if (!(user_var_event= (BINLOG_USER_VAR_EVENT *)
alloc_root(thd->user_var_events_alloc, size)))
goto err;
user_var_event->value= (char*) user_var_event +
ALIGN_SIZE(sizeof(BINLOG_USER_VAR_EVENT));
user_var_event->user_var_event= var_entry;
@ -4483,7 +4482,7 @@ int get_var_with_binlog(THD *thd, enum_sql_command sql_command,
var_entry->used_query_id= thd->query_id;
if (insert_dynamic(&thd->user_var_events, (gptr) &user_var_event))
goto err;
*out_entry= var_entry;
return 0;
@ -4492,7 +4491,6 @@ err:
return 1;
}
void Item_func_get_user_var::fix_length_and_dec()
{
THD *thd=current_thd;
@ -4503,10 +4501,19 @@ void Item_func_get_user_var::fix_length_and_dec()
error= get_var_with_binlog(thd, thd->lex->sql_command, name, &var_entry);
/*
If the variable didn't exist it has been created as a STRING-type.
'var_entry' is NULL only if there occured an error during the call to
get_var_with_binlog.
*/
if (var_entry)
{
m_cached_result_type= var_entry->type;
unsigned_flag= var_entry->unsigned_flag;
max_length= var_entry->length;
collation.set(var_entry->collation);
switch (var_entry->type) {
switch(m_cached_result_type) {
case REAL_RESULT:
max_length= DBL_DIG + 8;
break;
@ -4531,6 +4538,8 @@ void Item_func_get_user_var::fix_length_and_dec()
{
collation.set(&my_charset_bin, DERIVATION_IMPLICIT);
null_value= 1;
m_cached_result_type= STRING_RESULT;
max_length= MAX_BLOB_WIDTH;
}
if (error)
@ -4548,12 +4557,7 @@ bool Item_func_get_user_var::const_item() const
enum Item_result Item_func_get_user_var::result_type() const
{
user_var_entry *entry;
if (!(entry = (user_var_entry*) hash_search(&current_thd->user_vars,
(byte*) name.str,
name.length)))
return STRING_RESULT;
return entry->type;
return m_cached_result_type;
}

View file

@ -1256,11 +1256,12 @@ class Item_func_get_user_var :public Item_func,
private Settable_routine_parameter
{
user_var_entry *var_entry;
Item_result m_cached_result_type;
public:
LEX_STRING name; // keep it public
Item_func_get_user_var(LEX_STRING a):
Item_func(), name(a) {}
Item_func(), name(a), m_cached_result_type(STRING_RESULT) {}
enum Functype functype() const { return GUSERVAR_FUNC; }
LEX_STRING get_name() { return name; }
double val_real();
@ -1274,13 +1275,11 @@ public:
We must always return variables as strings to guard against selects of type
select @t1:=1,@t1,@t:="hello",@t from foo where (@t1:= t2.b)
*/
enum_field_types field_type() const { return MYSQL_TYPE_VARCHAR; }
const char *func_name() const { return "get_user_var"; }
bool const_item() const;
table_map used_tables() const
{ return const_item() ? 0 : RAND_TABLE_BIT; }
bool eq(const Item *item, bool binary_cmp) const;
private:
bool set_value(THD *thd, sp_rcontext *ctx, Item **it);

View file

@ -978,9 +978,8 @@ bool mysql_alter_table(THD *thd, char *new_db, char *new_name,
uint order_num, ORDER *order, bool ignore,
ALTER_INFO *alter_info, bool do_send_ok);
bool mysql_recreate_table(THD *thd, TABLE_LIST *table_list, bool do_send_ok);
bool mysql_create_like_table(THD *thd, TABLE_LIST *table,
HA_CREATE_INFO *create_info,
Table_ident *src_table);
bool mysql_create_like_table(THD *thd, TABLE_LIST *table, TABLE_LIST *src_table,
HA_CREATE_INFO *create_info);
bool mysql_rename_table(handlerton *base, const char *old_db,
const char * old_name, const char *new_db,
const char * new_name, uint flags);
@ -1032,8 +1031,11 @@ TABLE *table_cache_insert_placeholder(THD *thd, const char *key,
bool lock_table_name_if_not_cached(THD *thd, const char *db,
const char *table_name, TABLE **table);
TABLE *find_locked_table(THD *thd, const char *db,const char *table_name);
bool reopen_table(TABLE *table);
bool reopen_tables(THD *thd,bool get_locks,bool in_refresh);
bool close_data_tables(THD *thd,const char *db, const char *table_name);
void close_data_files_and_morph_locks(THD *thd, const char *db,
const char *table_name);
void close_handle_and_leave_table_as_lock(TABLE *table);
bool wait_for_tables(THD *thd);
bool table_is_used(TABLE *table, bool wait_for_name_lock);
TABLE *drop_locked_tables(THD *thd,const char *db, const char *table_name);

View file

@ -933,12 +933,19 @@ static void fix_net_retry_count(THD *thd __attribute__((unused)),
static void fix_query_cache_size(THD *thd, enum_var_type type)
{
#ifdef HAVE_QUERY_CACHE
ulong requested= query_cache_size;
query_cache.resize(query_cache_size);
if (requested != query_cache_size)
ulong new_cache_size= query_cache.resize(query_cache_size);
/*
Note: query_cache_size is a global variable reflecting the
requested cache size. See also query_cache_size_arg
*/
if (query_cache_size != new_cache_size)
push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
ER_WARN_QC_RESIZE, ER(ER_WARN_QC_RESIZE),
requested, query_cache_size);
query_cache_size, new_cache_size);
query_cache_size= new_cache_size;
#endif
}

View file

@ -99,7 +99,6 @@ static bool open_new_frm(THD *thd, TABLE_SHARE *share, const char *alias,
TABLE_LIST *table_desc, MEM_ROOT *mem_root);
static void close_old_data_files(THD *thd, TABLE *table, bool morph_locks,
bool send_refresh);
static bool reopen_table(TABLE *table);
static bool
has_two_write_locked_tables_with_auto_increment(TABLE_LIST *tables);
@ -681,7 +680,7 @@ TABLE_SHARE *get_cached_table_share(const char *db, const char *table_name)
*/
static void close_handle_and_leave_table_as_lock(TABLE *table)
void close_handle_and_leave_table_as_lock(TABLE *table)
{
TABLE_SHARE *share, *old_share= table->s;
char *key_buff;
@ -2393,10 +2392,17 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root,
VOID(pthread_mutex_unlock(&LOCK_open));
}
}
if ((thd->locked_tables) && (thd->locked_tables->lock_count > 0))
my_error(ER_TABLE_NOT_LOCKED, MYF(0), alias);
else
/*
No table in the locked tables list. In case of explicit LOCK TABLES
this can happen if a user did not include the able into the list.
In case of pre-locked mode locked tables list is generated automatically,
so we may only end up here if the table did not exist when
locked tables list was created.
*/
if (thd->prelocked_mode == PRELOCKED)
my_error(ER_NO_SUCH_TABLE, MYF(0), table_list->db, table_list->alias);
else
my_error(ER_TABLE_NOT_LOCKED, MYF(0), alias);
DBUG_RETURN(0);
}
@ -2705,7 +2711,7 @@ TABLE *find_locked_table(THD *thd, const char *db,const char *table_name)
1 error. The old table object is not changed.
*/
static bool reopen_table(TABLE *table)
bool reopen_table(TABLE *table)
{
TABLE tmp;
bool error= 1;
@ -2788,27 +2794,55 @@ static bool reopen_table(TABLE *table)
}
/*
Used with ALTER TABLE:
Close all instanses of table when LOCK TABLES is in used;
Close first all instances of table and then reopen them
/**
@brief Close all instances of a table open by this thread and replace
them with exclusive name-locks.
@param thd Thread context
@param db Database name for the table to be closed
@param table_name Name of the table to be closed
@note This function assumes that if we are not under LOCK TABLES,
then there is only one table open and locked. This means that
the function probably has to be adjusted before it can be used
anywhere outside ALTER TABLE.
*/
bool close_data_tables(THD *thd,const char *db, const char *table_name)
void close_data_files_and_morph_locks(THD *thd, const char *db,
const char *table_name)
{
TABLE *table;
DBUG_ENTER("close_data_tables");
DBUG_ENTER("close_data_files_and_morph_locks");
safe_mutex_assert_owner(&LOCK_open);
if (thd->lock)
{
/*
If we are not under LOCK TABLES we should have only one table
open and locked so it makes sense to remove the lock at once.
*/
mysql_unlock_tables(thd, thd->lock);
thd->lock= 0;
}
/*
Note that open table list may contain a name-lock placeholder
for target table name if we process ALTER TABLE ... RENAME.
So loop below makes sense even if we are not under LOCK TABLES.
*/
for (table=thd->open_tables; table ; table=table->next)
{
if (!strcmp(table->s->table_name.str, table_name) &&
!strcmp(table->s->db.str, db))
{
mysql_lock_remove(thd, thd->locked_tables,table);
if (thd->locked_tables)
mysql_lock_remove(thd, thd->locked_tables, table);
table->open_placeholder= 1;
close_handle_and_leave_table_as_lock(table);
}
}
DBUG_RETURN(0); // For the future
DBUG_VOID_RETURN;
}

View file

@ -799,12 +799,26 @@ ulong Query_cache::resize(ulong query_cache_size_arg)
DBUG_PRINT("qcache", ("from %lu to %lu",query_cache_size,
query_cache_size_arg));
DBUG_ASSERT(initialized);
STRUCT_LOCK(&structure_guard_mutex);
free_cache();
query_cache_size= query_cache_size_arg;
::query_cache_size= init_cache();
while (flush_in_progress)
pthread_cond_wait(&COND_flush_finished, &structure_guard_mutex);
flush_in_progress= TRUE;
STRUCT_UNLOCK(&structure_guard_mutex);
DBUG_RETURN(::query_cache_size);
free_cache();
query_cache_size= query_cache_size_arg;
ulong new_query_cache_size= init_cache();
DBUG_EXECUTE("check_querycache",check_integrity(0););
STRUCT_LOCK(&structure_guard_mutex);
flush_in_progress= FALSE;
pthread_cond_signal(&COND_flush_finished);
STRUCT_UNLOCK(&structure_guard_mutex);
DBUG_RETURN(new_query_cache_size);
}
@ -1585,6 +1599,7 @@ ulong Query_cache::init_cache()
int align;
DBUG_ENTER("Query_cache::init_cache");
approx_additional_data_size = (sizeof(Query_cache) +
sizeof(gptr)*(def_query_hash_size+
def_table_hash_size));
@ -1763,58 +1778,28 @@ void Query_cache::make_disabled()
mem_bin_num= mem_bin_steps= 0;
queries_in_cache= 0;
first_block= 0;
total_blocks= 0;
tables_blocks= 0;
DBUG_VOID_RETURN;
}
/*
free_cache() - free all resources allocated by the cache.
SYNOPSIS
free_cache()
DESCRIPTION
This function frees all resources allocated by the cache. You
have to call init_cache() before using the cache again.
/**
@class Query_cache
@brief Free all resources allocated by the cache.
@details This function frees all resources allocated by the cache. You
have to call init_cache() before using the cache again. This function requires
the structure_guard_mutex to be locked.
*/
void Query_cache::free_cache()
{
DBUG_ENTER("Query_cache::free_cache");
if (query_cache_size > 0)
flush_cache();
/*
There may be two free_cache() calls in progress, because we
release 'structure_guard_mutex' in flush_cache(). When the second
flush_cache() wakes up from the wait on 'COND_flush_finished', the
first call to free_cache() has done its job. So we have to test
'query_cache_size > 0' the second time to see if the cache wasn't
reset by other thread, or if it was reset and was re-enabled then.
If the cache was reset, then we have nothing to do here.
*/
if (query_cache_size > 0)
{
#ifndef DBUG_OFF
if (bins[0].free_blocks == 0)
{
wreck(__LINE__,"no free memory found in (bins[0].free_blocks");
DBUG_VOID_RETURN;
}
#endif
/* Becasue we did a flush, all cache memory must be in one this block */
bins[0].free_blocks->destroy();
total_blocks--;
#ifndef DBUG_OFF
if (free_memory != query_cache_size)
DBUG_PRINT("qcache", ("free memory %lu (should be %lu)",
free_memory , query_cache_size));
#endif
my_free((gptr) cache, MYF(MY_ALLOW_ZERO_PTR));
make_disabled();
hash_free(&queries);
hash_free(&tables);
}
my_free((gptr) cache, MYF(MY_ALLOW_ZERO_PTR));
make_disabled();
hash_free(&queries);
hash_free(&tables);
DBUG_VOID_RETURN;
}

View file

@ -2538,7 +2538,7 @@ bool Delayed_insert::handle_inserts(void)
if (table->s->blob_fields)
free_delayed_insert_blobs(table);
thread_safe_sub(delayed_rows_in_use,1,&LOCK_delayed_status);
thread_safe_decrement(delayed_rows_in_use,&LOCK_delayed_status);
thread_safe_increment(delayed_insert_writes,&LOCK_delayed_status);
pthread_mutex_lock(&mutex);

View file

@ -1066,7 +1066,6 @@ typedef struct st_lex : public Query_tables_list
char *length,*dec,*change;
LEX_STRING name;
Table_ident *like_name;
char *help_arg;
char *backup_dir; /* For RESTORE/BACKUP */
char* to_log; /* For PURGE MASTER LOGS TO */

View file

@ -39,6 +39,7 @@
"FUNCTION" : "PROCEDURE")
static bool execute_sqlcom_select(THD *thd, TABLE_LIST *all_tables);
static bool check_show_create_table_access(THD *thd, TABLE_LIST *table);
const char *any_db="*any*"; // Special symbol for check_access
@ -721,8 +722,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
case COM_INIT_DB:
{
LEX_STRING tmp;
statistic_increment(thd->status_var.com_stat[SQLCOM_CHANGE_DB],
&LOCK_status);
status_var_increment(thd->status_var.com_stat[SQLCOM_CHANGE_DB]);
thd->convert_string(&tmp, system_charset_info,
packet, packet_length-1, thd->charset());
if (!mysql_change_db(thd, &tmp, FALSE))
@ -757,7 +757,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
break;
}
statistic_increment(thd->status_var.com_other, &LOCK_status);
status_var_increment(thd->status_var.com_other);
thd->enable_slow_log= opt_log_slow_admin_statements;
db.str= thd->alloc(db_len + tbl_len + 2);
db.length= db_len;
@ -773,7 +773,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
}
case COM_CHANGE_USER:
{
statistic_increment(thd->status_var.com_other, &LOCK_status);
status_var_increment(thd->status_var.com_other);
char *user= (char*) packet, *packet_end= packet+ packet_length;
char *passwd= strend(user)+1;
@ -956,8 +956,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
/* used as fields initializator */
lex_start(thd);
statistic_increment(thd->status_var.com_stat[SQLCOM_SHOW_FIELDS],
&LOCK_status);
status_var_increment(thd->status_var.com_stat[SQLCOM_SHOW_FIELDS]);
bzero((char*) &table_list,sizeof(table_list));
if (thd->copy_db_to(&table_list.db, &dummy))
break;
@ -1023,8 +1022,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
LEX_STRING db, alias;
HA_CREATE_INFO create_info;
statistic_increment(thd->status_var.com_stat[SQLCOM_CREATE_DB],
&LOCK_status);
status_var_increment(thd->status_var.com_stat[SQLCOM_CREATE_DB]);
if (thd->LEX_STRING_make(&db, packet, packet_length -1) ||
thd->LEX_STRING_make(&alias, db.str, db.length) ||
check_db_name(&db))
@ -1043,8 +1041,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
}
case COM_DROP_DB: // QQ: To be removed
{
statistic_increment(thd->status_var.com_stat[SQLCOM_DROP_DB],
&LOCK_status);
status_var_increment(thd->status_var.com_stat[SQLCOM_DROP_DB]);
LEX_STRING db;
if (thd->LEX_STRING_make(&db, packet, packet_length - 1) ||
@ -1073,7 +1070,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
ushort flags;
uint32 slave_server_id;
statistic_increment(thd->status_var.com_other,&LOCK_status);
status_var_increment(thd->status_var.com_other);
thd->enable_slow_log= opt_log_slow_admin_statements;
if (check_global_access(thd, REPL_SLAVE_ACL))
break;
@ -1099,8 +1096,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
case COM_REFRESH:
{
bool not_used;
statistic_increment(thd->status_var.com_stat[SQLCOM_FLUSH],
&LOCK_status);
status_var_increment(thd->status_var.com_stat[SQLCOM_FLUSH]);
ulong options= (ulong) (uchar) packet[0];
if (check_global_access(thd,RELOAD_ACL))
break;
@ -1112,7 +1108,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
#ifndef EMBEDDED_LIBRARY
case COM_SHUTDOWN:
{
statistic_increment(thd->status_var.com_other, &LOCK_status);
status_var_increment(thd->status_var.com_other);
if (check_global_access(thd,SHUTDOWN_ACL))
break; /* purecov: inspected */
/*
@ -1164,8 +1160,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
#endif
general_log_print(thd, command, NullS);
statistic_increment(thd->status_var.com_stat[SQLCOM_SHOW_STATUS],
&LOCK_status);
status_var_increment(thd->status_var.com_stat[SQLCOM_SHOW_STATUS]);
calc_sum_of_all_status(&current_global_status_var);
if (!(uptime= (ulong) (thd->start_time - server_start_time)))
queries_per_second1000= 0;
@ -1201,12 +1196,11 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
break;
}
case COM_PING:
statistic_increment(thd->status_var.com_other, &LOCK_status);
status_var_increment(thd->status_var.com_other);
send_ok(thd); // Tell client we are alive
break;
case COM_PROCESS_INFO:
statistic_increment(thd->status_var.com_stat[SQLCOM_SHOW_PROCESSLIST],
&LOCK_status);
status_var_increment(thd->status_var.com_stat[SQLCOM_SHOW_PROCESSLIST]);
if (!thd->security_ctx->priv_user[0] &&
check_global_access(thd, PROCESS_ACL))
break;
@ -1217,15 +1211,14 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
break;
case COM_PROCESS_KILL:
{
statistic_increment(thd->status_var.com_stat[SQLCOM_KILL], &LOCK_status);
status_var_increment(thd->status_var.com_stat[SQLCOM_KILL]);
ulong id=(ulong) uint4korr(packet);
sql_kill(thd,id,false);
break;
}
case COM_SET_OPTION:
{
statistic_increment(thd->status_var.com_stat[SQLCOM_SET_OPTION],
&LOCK_status);
status_var_increment(thd->status_var.com_stat[SQLCOM_SET_OPTION]);
uint opt_command= uint2korr(packet);
switch (opt_command) {
@ -1244,7 +1237,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
break;
}
case COM_DEBUG:
statistic_increment(thd->status_var.com_other, &LOCK_status);
status_var_increment(thd->status_var.com_other);
if (check_global_access(thd, SUPER_ACL))
break; /* purecov: inspected */
mysql_print_status();
@ -1783,8 +1776,7 @@ mysql_execute_command(THD *thd)
#ifdef HAVE_REPLICATION
} /* endif unlikely slave */
#endif
statistic_increment(thd->status_var.com_stat[lex->sql_command],
&LOCK_status);
status_var_increment(thd->status_var.com_stat[lex->sql_command]);
switch (lex->sql_command) {
case SQLCOM_SHOW_EVENTS:
@ -2240,9 +2232,9 @@ mysql_execute_command(THD *thd)
if (lex->create_info.options & HA_LEX_CREATE_TMP_TABLE)
thd->options|= OPTION_KEEP_LOG;
/* regular create */
if (lex->like_name)
res= mysql_create_like_table(thd, create_table, &lex->create_info,
lex->like_name);
if (lex->create_info.options & HA_LEX_CREATE_TABLE_LIKE)
res= mysql_create_like_table(thd, create_table, select_tables,
&lex->create_info);
else
{
res= mysql_create_table(thd, create_table->db,
@ -2432,12 +2424,7 @@ end_with_restore_list:
/* Ignore temporary tables if this is "SHOW CREATE VIEW" */
if (lex->only_view)
first_table->skip_temporary= 1;
if (check_access(thd, SELECT_ACL | EXTRA_ACL, first_table->db,
&first_table->grant.privilege, 0, 0,
test(first_table->schema_table)))
goto error;
if (grant_option && check_grant(thd, SELECT_ACL, all_tables, 2, UINT_MAX, 0))
if (check_show_create_table_access(thd, first_table))
goto error;
res= mysqld_show_create(thd, first_table);
break;
@ -6854,6 +6841,25 @@ bool insert_precheck(THD *thd, TABLE_LIST *tables)
}
/**
@brief Check privileges for SHOW CREATE TABLE statement.
@param thd Thread context
@param table Target table
@retval TRUE Failure
@retval FALSE Success
*/
static bool check_show_create_table_access(THD *thd, TABLE_LIST *table)
{
return check_access(thd, SELECT_ACL | EXTRA_ACL, table->db,
&table->grant.privilege, 0, 0,
test(table->schema_table)) ||
grant_option && check_grant(thd, SELECT_ACL, table, 2, UINT_MAX, 0);
}
/*
CREATE TABLE query pre-check
@ -6919,6 +6925,11 @@ bool create_table_precheck(THD *thd, TABLE_LIST *tables,
if (tables && check_table_access(thd, SELECT_ACL, tables,0))
goto err;
}
else if (lex->create_info.options & HA_LEX_CREATE_TABLE_LIKE)
{
if (check_show_create_table_access(thd, tables))
goto err;
}
error= FALSE;
err:

View file

@ -3776,20 +3776,15 @@ bool mysql_unpack_partition(THD *thd,
ha_legacy_type(default_db_type)));
if (is_create_table_ind && old_lex->sql_command == SQLCOM_CREATE_TABLE)
{
if (old_lex->like_name)
if (old_lex->create_info.options & HA_LEX_CREATE_TABLE_LIKE)
{
/*
This code is executed when we do a CREATE TABLE t1 LIKE t2
old_lex->like_name contains the t2 and the table we are opening has
name t1.
This code is executed when we create table in CREATE TABLE t1 LIKE t2.
old_lex->query_tables contains table list element for t2 and the table
we are opening has name t1.
*/
Table_ident *table_ident= old_lex->like_name;
char *src_db= table_ident->db.str ? table_ident->db.str : thd->db;
char *src_table= table_ident->table.str;
char buf[FN_REFLEN];
build_table_filename(buf, sizeof(buf), src_db, src_table, "", 0);
if (partition_default_handling(table, part_info,
FALSE, buf))
if (partition_default_handling(table, part_info, FALSE,
old_lex->query_tables->table->s->path.str))
{
result= TRUE;
goto end;

View file

@ -2430,7 +2430,7 @@ void mysql_stmt_fetch(THD *thd, char *packet, uint packet_length)
/* First of all clear possible warnings from the previous command */
mysql_reset_thd_for_next_command(thd);
statistic_increment(thd->status_var.com_stmt_fetch, &LOCK_status);
status_var_increment(thd->status_var.com_stmt_fetch);
if (!(stmt= find_prepared_statement(thd, stmt_id, "mysql_stmt_fetch")))
DBUG_VOID_RETURN;
@ -2494,7 +2494,7 @@ void mysql_stmt_reset(THD *thd, char *packet)
/* First of all clear possible warnings from the previous command */
mysql_reset_thd_for_next_command(thd);
statistic_increment(thd->status_var.com_stmt_reset, &LOCK_status);
status_var_increment(thd->status_var.com_stmt_reset);
if (!(stmt= find_prepared_statement(thd, stmt_id, "mysql_stmt_reset")))
DBUG_VOID_RETURN;
@ -2598,7 +2598,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length)
#endif
DBUG_ENTER("mysql_stmt_get_longdata");
statistic_increment(thd->status_var.com_stmt_send_long_data, &LOCK_status);
status_var_increment(thd->status_var.com_stmt_send_long_data);
#ifndef EMBEDDED_LIBRARY
/* Minimal size of long data packet is 6 bytes */
if (packet_length <= MYSQL_LONG_DATA_HEADER)
@ -2849,7 +2849,7 @@ bool Prepared_statement::prepare(const char *packet, uint packet_len)
However, it seems handy if com_stmt_prepare is increased always,
no matter what kind of prepare is processed.
*/
statistic_increment(thd->status_var.com_stmt_prepare, &LOCK_status);
status_var_increment(thd->status_var.com_stmt_prepare);
/*
alloc_query() uses thd->memroot && thd->query, so we should call
@ -2972,7 +2972,7 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor)
Query_arena *old_stmt_arena;
bool error= TRUE;
statistic_increment(thd->status_var.com_stmt_execute, &LOCK_status);
status_var_increment(thd->status_var.com_stmt_execute);
/* Check if we got an error when sending long data */
if (state == Query_arena::ERROR)
@ -3094,7 +3094,7 @@ error:
bool Prepared_statement::deallocate()
{
/* We account deallocate in the same manner as mysql_stmt_close */
statistic_increment(thd->status_var.com_stmt_close, &LOCK_status);
status_var_increment(thd->status_var.com_stmt_close);
if (flags & (uint) IS_IN_USE)
{
my_error(ER_PS_NO_RECURSION, MYF(0));

View file

@ -6288,8 +6288,7 @@ make_join_readinfo(JOIN *join, ulonglong options)
join->thd->server_status|=SERVER_QUERY_NO_GOOD_INDEX_USED;
tab->read_first_record= join_init_quick_read_record;
if (statistics)
statistic_increment(join->thd->status_var.select_range_check_count,
&LOCK_status);
status_var_increment(join->thd->status_var.select_range_check_count);
}
else
{
@ -6299,15 +6298,13 @@ make_join_readinfo(JOIN *join, ulonglong options)
if (tab->select && tab->select->quick)
{
if (statistics)
statistic_increment(join->thd->status_var.select_range_count,
&LOCK_status);
status_var_increment(join->thd->status_var.select_range_count);
}
else
{
join->thd->server_status|=SERVER_QUERY_NO_INDEX_USED;
if (statistics)
statistic_increment(join->thd->status_var.select_scan_count,
&LOCK_status);
status_var_increment(join->thd->status_var.select_scan_count);
}
}
else
@ -6315,15 +6312,13 @@ make_join_readinfo(JOIN *join, ulonglong options)
if (tab->select && tab->select->quick)
{
if (statistics)
statistic_increment(join->thd->status_var.select_full_range_join_count,
&LOCK_status);
status_var_increment(join->thd->status_var.select_full_range_join_count);
}
else
{
join->thd->server_status|=SERVER_QUERY_NO_INDEX_USED;
if (statistics)
statistic_increment(join->thd->status_var.select_full_join_count,
&LOCK_status);
status_var_increment(join->thd->status_var.select_full_join_count);
}
}
if (!table->no_keyread)
@ -9382,7 +9377,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
(int) distinct, (int) save_sum_fields,
(ulong) rows_limit,test(group)));
statistic_increment(thd->status_var.created_tmp_tables, &LOCK_status);
status_var_increment(thd->status_var.created_tmp_tables);
if (use_temp_pool && !(test_flags & TEST_KEEP_TMP_TABLES))
temp_pool_slot = bitmap_lock_set_next(&temp_pool);
@ -10254,8 +10249,7 @@ static bool create_myisam_tmp_table(TABLE *table,TMP_TABLE_PARAM *param,
table->db_stat=0;
goto err;
}
statistic_increment(table->in_use->status_var.created_tmp_disk_tables,
&LOCK_status);
status_var_increment(table->in_use->status_var.created_tmp_disk_tables);
share->db_record_offset= 1;
DBUG_RETURN(0);
err:

View file

@ -4670,114 +4670,51 @@ bool mysql_preload_keys(THD* thd, TABLE_LIST* tables)
SYNOPSIS
mysql_create_like_table()
thd Thread object
table Table list (one table only)
table Table list element for target table
src_table Table list element for source table
create_info Create info
table_ident Src table_ident
RETURN VALUES
FALSE OK
TRUE error
*/
bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
HA_CREATE_INFO *lex_create_info,
Table_ident *table_ident)
bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST* src_table,
HA_CREATE_INFO *lex_create_info)
{
TABLE *tmp_table, *name_lock= 0;
TABLE *name_lock= 0;
char src_path[FN_REFLEN], dst_path[FN_REFLEN];
char src_table_name_buff[FN_REFLEN], src_db_name_buff[FN_REFLEN];
uint dst_path_length;
char *db= table->db;
char *table_name= table->table_name;
char *src_db;
char *src_table= table_ident->table.str;
int err;
bool res= TRUE;
enum legacy_db_type not_used;
uint not_used;
HA_CREATE_INFO *create_info;
#ifdef WITH_PARTITION_STORAGE_ENGINE
char tmp_path[FN_REFLEN];
#endif
char ts_name[FN_LEN];
TABLE_LIST src_tables_list;
DBUG_ENTER("mysql_create_like_table");
if (!(create_info= copy_create_info(lex_create_info)))
{
DBUG_RETURN(TRUE);
}
DBUG_ASSERT(table_ident->db.str); /* Must be set in the parser */
src_db= table_ident->db.str;
/* CREATE TABLE ... LIKE is not allowed for views. */
src_table->required_type= FRMTYPE_TABLE;
/*
Validate the source table
By opening source table we guarantee that it exists and no concurrent
DDL operation will mess with it. Later we also take an exclusive
name-lock on target table name, which makes copying of .frm file,
call to ha_create_table() and binlogging atomic against concurrent DML
and DDL operations on target table. Thus by holding both these "locks"
we ensure that our statement is properly isolated from all concurrent
operations which matter.
*/
if (check_string_char_length(&table_ident->table, "", NAME_CHAR_LEN,
system_charset_info, 1) ||
(table_ident->table.length &&
check_table_name(src_table,table_ident->table.length)))
{
my_error(ER_WRONG_TABLE_NAME, MYF(0), src_table);
DBUG_RETURN(TRUE);
}
if (!src_db || check_db_name(&table_ident->db))
{
my_error(ER_WRONG_DB_NAME, MYF(0), src_db ? src_db : "NULL");
DBUG_RETURN(-1);
}
if ((tmp_table= find_temporary_table(thd, src_db, src_table)))
strxmov(src_path, tmp_table->s->path.str, reg_ext, NullS);
else
{
build_table_filename(src_path, sizeof(src_path),
src_db, src_table, reg_ext, 0);
/* Resolve symlinks (for windows) */
unpack_filename(src_path, src_path);
if (lower_case_table_names)
my_casedn_str(files_charset_info, src_path);
if (access(src_path, F_OK))
{
my_error(ER_BAD_TABLE_ERROR, MYF(0), src_table);
goto err;
}
}
/*
create like should be not allowed for Views, Triggers, ...
*/
if (mysql_frm_type(thd, src_path, &not_used) != FRMTYPE_TABLE)
{
my_error(ER_WRONG_OBJECT, MYF(0), src_db, src_table, "BASE TABLE");
goto err;
}
if (lower_case_table_names)
{
if (src_db)
{
strmake(src_db_name_buff, src_db,
min(sizeof(src_db_name_buff) - 1, table_ident->db.length));
my_casedn_str(files_charset_info, src_db_name_buff);
src_db= src_db_name_buff;
}
if (src_table)
{
strmake(src_table_name_buff, src_table,
min(sizeof(src_table_name_buff) - 1, table_ident->table.length));
my_casedn_str(files_charset_info, src_table_name_buff);
src_table= src_table_name_buff;
}
}
bzero((gptr)&src_tables_list, sizeof(src_tables_list));
src_tables_list.db= src_db;
src_tables_list.db_length= table_ident->db.length;
src_tables_list.lock_type= TL_READ;
src_tables_list.table_name= src_table;
src_tables_list.alias= src_table;
if (simple_open_n_lock_tables(thd, &src_tables_list))
if (open_tables(thd, &src_table, &not_used, 0))
DBUG_RETURN(TRUE);
/*
@ -4786,17 +4723,19 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
Add something to get possible tablespace info from src table,
it can get valid tablespace name only for disk-base ndb table
*/
if ((src_tables_list.table->file->get_tablespace_name(thd, ts_name, FN_LEN)))
if ((src_table->table->file->get_tablespace_name(thd, ts_name, FN_LEN)))
{
create_info->tablespace= ts_name;
create_info->storage_media= HA_SM_DISK;
}
/*
Validate the destination table
strxmov(src_path, src_table->table->s->path.str, reg_ext, NullS);
skip the destination table name checking as this is already
validated.
DBUG_EXECUTE_IF("sleep_create_like_before_check_if_exists", my_sleep(6000000););
/*
Check that destination tables does not exist. Note that its name
was already checked when it was added to the table list.
*/
if (create_info->options & HA_LEX_CREATE_TMP_TABLE)
{
@ -4817,15 +4756,29 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
goto table_exists;
}
DBUG_EXECUTE_IF("sleep_create_like_before_copy", my_sleep(6000000););
/*
Create a new table by copying from source table
Altough exclusive name-lock on target table protects us from concurrent
DML and DDL operations on it we still want to wrap .FRM creation and call
to ha_create_table() in critical section protected by LOCK_open in order
to provide minimal atomicity against operations which disregard name-locks,
like I_S implementation, for example. This is a temporary and should not
be copied. Instead we should fix our code to always honor name-locks.
Also some engines (e.g. NDB cluster) require that LOCK_open should be held
during the call to ha_create_table(). See bug #28614 for more info.
*/
VOID(pthread_mutex_lock(&LOCK_open));
if (my_copy(src_path, dst_path, MYF(MY_DONT_OVERWRITE_FILE)))
{
if (my_errno == ENOENT)
my_error(ER_BAD_DB_ERROR,MYF(0),db);
else
my_error(ER_CANT_CREATE_FILE,MYF(0),dst_path,my_errno);
VOID(pthread_mutex_unlock(&LOCK_open));
goto err;
}
@ -4847,10 +4800,12 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
strmov(src_path, tmp_path);
my_copy(src_path, dst_path, MYF(MY_DONT_OVERWRITE_FILE));
#endif
DBUG_EXECUTE_IF("sleep_create_like_before_ha_create", my_sleep(6000000););
dst_path[dst_path_length - reg_ext_length]= '\0'; // Remove .frm
pthread_mutex_lock(&LOCK_open);
err= ha_create_table(thd, dst_path, db, table_name, create_info, 1);
pthread_mutex_unlock(&LOCK_open);
VOID(pthread_mutex_unlock(&LOCK_open));
if (create_info->options & HA_LEX_CREATE_TMP_TABLE)
{
if (err || !open_temporary_table(thd, dst_path, db, table_name, 1))
@ -4867,6 +4822,8 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
goto err; /* purecov: inspected */
}
DBUG_EXECUTE_IF("sleep_create_like_before_binlogging", my_sleep(6000000););
/*
We have to write the query before we unlock the tables.
*/
@ -4886,14 +4843,10 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table,
3 temporary normal Nothing
4 temporary temporary Nothing
==== ========= ========= ==============================
The variable 'tmp_table' below is used to see if the source
table is a temporary table: if it is set, then the source table
was a temporary table and we can take apropriate actions.
*/
if (!(create_info->options & HA_LEX_CREATE_TMP_TABLE))
{
if (tmp_table) // Case 2
if (src_table->table->s->tmp_table) // Case 2
{
char buf[2048];
String query(buf, sizeof(buf), system_charset_info);
@ -5411,7 +5364,7 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
HA_CREATE_INFO *create_info;
frm_type_enum frm_type;
uint need_copy_table= 0;
bool no_table_reopen= FALSE, varchar= FALSE;
bool varchar= FALSE;
#ifdef WITH_PARTITION_STORAGE_ENGINE
uint fast_alter_partition= 0;
bool partition_changed= FALSE;
@ -5670,6 +5623,7 @@ view_err:
VOID(pthread_mutex_lock(&LOCK_open));
wait_while_table_is_used(thd, table, HA_EXTRA_FORCE_REOPEN);
VOID(pthread_mutex_unlock(&LOCK_open));
DBUG_EXECUTE_IF("sleep_alter_enable_indexes", my_sleep(6000000););
error= table->file->enable_indexes(HA_KEY_SWITCH_NONUNIQ_SAVE);
/* COND_refresh will be signaled in close_thread_tables() */
break;
@ -6585,9 +6539,19 @@ view_err:
}
/*
Data is copied. Now we rename the old table to a temp name,
rename the new one to the old name, remove all entries about the old table
from the cache, free all locks, close the old table and remove it.
Data is copied. Now we:
1) Wait until all other threads close old version of table.
2) Close instances of table open by this thread and replace them
with exclusive name-locks.
3) Rename the old table to a temp name, rename the new one to the
old name.
4) If we are under LOCK TABLES and don't do ALTER TABLE ... RENAME
we reopen new version of table.
5) Write statement to the binary log.
6) If we are under LOCK TABLES and do ALTER TABLE ... RENAME we
remove name-locks from list of open tables and table cache.
7) If we are not not under LOCK TABLES we rely on close_thread_tables()
call to remove name-locks from table cache and list of open table.
*/
thd->proc_info="rename result table";
@ -6596,38 +6560,8 @@ view_err:
if (lower_case_table_names)
my_casedn_str(files_charset_info, old_name);
#if !defined( __WIN__)
if (table->file->has_transactions())
#endif
{
/*
Win32 and InnoDB can't drop a table that is in use, so we must
close the original table before doing the rename
*/
close_cached_table(thd, table);
table=0; // Marker that table is closed
no_table_reopen= TRUE;
}
#if !defined( __WIN__)
else
table->file->extra(HA_EXTRA_FORCE_REOPEN); // Don't use this file anymore
#endif
if (new_name != table_name || new_db != db)
{
/*
Check that there is no table with target name. See the
comment describing code for 'simple' ALTER TABLE ... RENAME.
*/
if (!access(new_name_buff,F_OK))
{
error=1;
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), new_name_buff);
VOID(quick_rm_table(new_db_type, new_db, tmp_name, FN_IS_TMP));
VOID(pthread_mutex_unlock(&LOCK_open));
goto err;
}
}
wait_while_table_is_used(thd, table, HA_EXTRA_PREPARE_FOR_DELETE);
close_data_files_and_morph_locks(thd, db, table_name);
error=0;
save_old_db_type= old_db_type;
@ -6672,121 +6606,64 @@ view_err:
if (error)
{
/*
This shouldn't happen. We solve this the safe way by
closing the locked table.
*/
if (table)
{
close_cached_table(thd,table);
}
VOID(pthread_mutex_unlock(&LOCK_open));
goto err;
/* This shouldn't happen. But let us play it safe. */
goto err_with_placeholders;
}
if (! need_copy_table)
{
bool needs_unlink= FALSE;
if (! table)
/*
Now we have to inform handler that new .FRM file is in place.
To do this we need to obtain a handler object for it.
*/
TABLE *t_table;
if (new_name != table_name || new_db != db)
{
if (new_name != table_name || new_db != db)
{
table_list->alias= new_name;
table_list->table_name= new_name;
table_list->table_name_length= strlen(new_name);
table_list->db= new_db;
table_list->db_length= strlen(new_db);
}
else
{
/*
TODO: Creation of name-lock placeholder here is a temporary
work-around. Long term we should change close_cached_table() call
which we invoke before table renaming operation in such way that
it will leave placeholders for table in table cache/THD::open_tables
list. By doing this we will be able easily reopen and relock these
tables later and therefore behave under LOCK TABLES in the same way
on all platforms.
*/
char key[MAX_DBKEY_LENGTH];
uint key_length;
key_length= create_table_def_key(thd, key, table_list, 0);
if (!(name_lock= table_cache_insert_placeholder(thd, key,
key_length)))
{
VOID(pthread_mutex_unlock(&LOCK_open));
goto err;
}
name_lock->next= thd->open_tables;
thd->open_tables= name_lock;
}
table_list->alias= new_name;
table_list->table_name= new_name;
table_list->table_name_length= strlen(new_name);
table_list->db= new_db;
table_list->db_length= strlen(new_db);
table_list->table= name_lock;
if (reopen_name_locked_table(thd, table_list, FALSE))
{
VOID(pthread_mutex_unlock(&LOCK_open));
goto err;
}
table= table_list->table;
/*
We can't rely on later close_cached_table() calls to close
this instance of the table since it was not properly locked.
*/
needs_unlink= TRUE;
goto err_with_placeholders;
t_table= table_list->table;
}
else
{
if (reopen_table(table))
goto err_with_placeholders;
t_table= table;
}
/* Tell the handler that a new frm file is in place. */
if (table->file->create_handler_files(path, NULL, CHF_INDEX_FLAG,
create_info))
if (t_table->file->create_handler_files(path, NULL, CHF_INDEX_FLAG,
create_info))
goto err_with_placeholders;
if (thd->locked_tables && new_name == table_name && new_db == db)
{
VOID(pthread_mutex_unlock(&LOCK_open));
goto err;
}
if (needs_unlink)
{
unlink_open_table(thd, table, FALSE);
table= name_lock= 0;
/*
We are going to reopen table down on the road, so we have to restore
state of the TABLE object which we used for obtaining of handler
object to make it suitable for reopening.
*/
DBUG_ASSERT(t_table == table);
table->open_placeholder= 1;
close_handle_and_leave_table_as_lock(table);
}
}
if (thd->lock || new_name != table_name || no_table_reopen) // True if WIN32
VOID(quick_rm_table(old_db_type, db, old_name, FN_IS_TMP));
if (thd->locked_tables && new_name == table_name && new_db == db)
{
/*
Not table locking or alter table with rename.
Free locks and remove old table
*/
if (table)
{
close_cached_table(thd,table);
}
VOID(quick_rm_table(old_db_type, db, old_name, FN_IS_TMP));
}
else
{
/*
Using LOCK TABLES without rename.
This code is never executed on WIN32!
Remove old renamed table, reopen table and get new locks
*/
if (table)
{
VOID(table->file->extra(HA_EXTRA_FORCE_REOPEN)); // Use new file
/* Mark in-use copies old */
remove_table_from_cache(thd,db,table_name,RTFC_NO_FLAG);
/* end threads waiting on lock */
mysql_lock_abort(thd,table, TRUE);
}
VOID(quick_rm_table(old_db_type, db, old_name, FN_IS_TMP));
if (close_data_tables(thd,db,table_name) ||
reopen_tables(thd,1,0))
{ // This shouldn't happen
if (table)
{
close_cached_table(thd,table); // Remove lock for table
}
VOID(pthread_mutex_unlock(&LOCK_open));
goto err;
}
thd->in_lock_tables= 1;
error= reopen_tables(thd, 1, 0);
thd->in_lock_tables= 0;
if (error)
goto err_with_placeholders;
}
VOID(pthread_mutex_unlock(&LOCK_open));
broadcast_refresh();
/*
The ALTER TABLE is always in its own transaction.
Commit must not be called while LOCK_open is locked. It could call
@ -6803,6 +6680,8 @@ view_err:
}
thd->proc_info="end";
DBUG_EXECUTE_IF("sleep_alter_before_main_binlog", my_sleep(6000000););
ha_binlog_log_query(thd, create_info->db_type, LOGCOM_ALTER_TABLE,
thd->query, thd->query_length,
db, table_name);
@ -6820,12 +6699,13 @@ view_err:
shutdown.
*/
char path[FN_REFLEN];
TABLE *t_table;
build_table_filename(path, sizeof(path), new_db, table_name, "", 0);
table=open_temporary_table(thd, path, new_db, tmp_name,0);
if (table)
t_table= open_temporary_table(thd, path, new_db, tmp_name, 0);
if (t_table)
{
intern_close_table(table);
my_free((char*) table, MYF(0));
intern_close_table(t_table);
my_free((char*) t_table, MYF(0));
}
else
sql_print_warning("Could not open table %s.%s after rename\n",
@ -6835,9 +6715,16 @@ view_err:
table_list->table=0; // For query cache
query_cache_invalidate3(thd, table_list, 0);
if (name_lock)
if (thd->locked_tables && (new_name != table_name || new_db != db))
{
/*
If are we under LOCK TABLES and did ALTER TABLE with RENAME we need
to remove placeholders for the old table and for the target table
from the list of open tables and table cache. If we are not under
LOCK TABLES we can rely on close_thread_tables() doing this job.
*/
pthread_mutex_lock(&LOCK_open);
unlink_open_table(thd, table, FALSE);
unlink_open_table(thd, name_lock, FALSE);
pthread_mutex_unlock(&LOCK_open);
}
@ -6868,6 +6755,18 @@ err:
pthread_mutex_unlock(&LOCK_open);
}
DBUG_RETURN(TRUE);
err_with_placeholders:
/*
An error happened while we were holding exclusive name-lock on table
being altered. To be safe under LOCK TABLES we should remove placeholders
from list of open tables list and table cache.
*/
unlink_open_table(thd, table, FALSE);
if (name_lock)
unlink_open_table(thd, name_lock, FALSE);
VOID(pthread_mutex_unlock(&LOCK_open));
DBUG_RETURN(TRUE);
}
/* mysql_alter_table */

View file

@ -508,7 +508,9 @@ Next alarm time: %lu\n",
display_table_locks();
fflush(stdout);
my_checkmalloc();
fprintf(stdout,"\nBegin safemalloc memory dump:\n"); // tag needed for test suite
TERMINATE(stdout); // Write malloc information
fprintf(stdout,"\nEnd safemalloc memory dump.\n");
#ifdef HAVE_MALLINFO
struct mallinfo info= mallinfo();

View file

@ -1579,7 +1579,6 @@ create:
lex->create_info.default_table_charset= NULL;
lex->name.str= 0;
lex->name.length= 0;
lex->like_name= 0;
}
create2
{
@ -3603,27 +3602,15 @@ create2:
create3 {}
| LIKE table_ident
{
THD *thd= YYTHD;
LEX *lex= thd->lex;
if (!(lex->like_name= $2))
Lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
if (!Lex->select_lex.add_table_to_list(YYTHD, $2, NULL, 0, TL_READ))
MYSQL_YYABORT;
if ($2->db.str == NULL &&
thd->copy_db_to(&($2->db.str), &($2->db.length)))
{
MYSQL_YYABORT;
}
}
| '(' LIKE table_ident ')'
{
THD *thd= YYTHD;
LEX *lex= thd->lex;
if (!(lex->like_name= $3))
Lex->create_info.options|= HA_LEX_CREATE_TABLE_LIKE;
if (!Lex->select_lex.add_table_to_list(YYTHD, $3, NULL, 0, TL_READ))
MYSQL_YYABORT;
if ($3->db.str == NULL &&
thd->copy_db_to(&($3->db.str), &($3->db.length)))
{
MYSQL_YYABORT;
}
}
;
@ -5112,7 +5099,6 @@ alter:
lex->key_list.empty();
lex->col_list.empty();
lex->select_lex.init_order();
lex->like_name= 0;
lex->select_lex.db=
((TABLE_LIST*) lex->select_lex.table_list.first)->db;
bzero((char*) &lex->create_info,sizeof(lex->create_info));

View file

@ -16073,6 +16073,27 @@ static void test_bug24179()
}
/*
Bug#28075 "COM_DEBUG crashes mysqld"
*/
static void test_bug28075()
{
int rc;
DBUG_ENTER("test_bug28075");
myheader("test_bug28075");
rc= mysql_dump_debug_info(mysql);
DIE_UNLESS(rc == 0);
rc= mysql_ping(mysql);
DIE_UNLESS(rc == 0);
DBUG_VOID_RETURN;
}
/*
Read and parse arguments and MySQL options from my.cnf
*/
@ -16357,6 +16378,7 @@ static struct my_tests_st my_tests[]= {
{ "test_status", test_status },
{ "test_bug24179", test_bug24179 },
{ "test_ps_query_cache", test_ps_query_cache },
{ "test_bug28075", test_bug28075 },
{ 0, 0 }
};