Merge sita.local:/Users/tsmith/m/bk/51
into sita.local:/Users/tsmith/m/bk/maint/51 This merge requires a post-merge fix to remove rpl_udf from suite/rpl/t/disabled.def.
This commit is contained in:
commit
5f12f35c34
@ -38,9 +38,9 @@
|
|||||||
*/.libs/*
|
*/.libs/*
|
||||||
*/.pure
|
*/.pure
|
||||||
*/debug/*
|
*/debug/*
|
||||||
|
*/minsizerel/*
|
||||||
*/release/*
|
*/release/*
|
||||||
*/relwithdebinfo/*
|
*/relwithdebinfo/*
|
||||||
*/minsizerel/*
|
|
||||||
*~
|
*~
|
||||||
.*.swp
|
.*.swp
|
||||||
./CMakeCache.txt
|
./CMakeCache.txt
|
||||||
@ -584,6 +584,7 @@ heap/hp_test2
|
|||||||
help
|
help
|
||||||
help.c
|
help.c
|
||||||
help.h
|
help.h
|
||||||
|
include/abi_check
|
||||||
include/check_abi
|
include/check_abi
|
||||||
include/link_sources
|
include/link_sources
|
||||||
include/my_config.h
|
include/my_config.h
|
||||||
@ -1021,8 +1022,8 @@ libmysqld/.deps/unireg.Po
|
|||||||
libmysqld/backup_dir
|
libmysqld/backup_dir
|
||||||
libmysqld/client.c
|
libmysqld/client.c
|
||||||
libmysqld/client_settings.h
|
libmysqld/client_settings.h
|
||||||
libmysqld/convert.cc
|
|
||||||
libmysqld/cmake_dummy.c
|
libmysqld/cmake_dummy.c
|
||||||
|
libmysqld/convert.cc
|
||||||
libmysqld/derror.cc
|
libmysqld/derror.cc
|
||||||
libmysqld/discover.cc
|
libmysqld/discover.cc
|
||||||
libmysqld/emb_qcache.cpp
|
libmysqld/emb_qcache.cpp
|
||||||
|
@ -26,8 +26,9 @@ export LDFLAGS="-fprofile-arcs -ftest-coverage"
|
|||||||
|
|
||||||
# The -fprofile-arcs and -ftest-coverage options cause GCC to instrument the
|
# The -fprofile-arcs and -ftest-coverage options cause GCC to instrument the
|
||||||
# code with profiling information used by gcov.
|
# code with profiling information used by gcov.
|
||||||
# the -DDISABLE_TAO_ASM is needed to avoid build failures in Yassl.
|
# The -DDISABLE_TAO_ASM is needed to avoid build failures in Yassl.
|
||||||
extra_flags="$pentium_cflags -fprofile-arcs -ftest-coverage -DDISABLE_TAO_ASM -DHAVE_MUTEX_THREAD_ONLY $debug_extra_flags $debug_cflags $max_cflags -DMYSQL_SERVER_SUFFIX=-gcov"
|
# The -DHAVE_gcov enables code to write out coverage info even when crashing.
|
||||||
|
extra_flags="$pentium_cflags -fprofile-arcs -ftest-coverage -DDISABLE_TAO_ASM -DHAVE_MUTEX_THREAD_ONLY $debug_extra_flags $debug_cflags $max_cflags -DMYSQL_SERVER_SUFFIX=-gcov -DHAVE_gcov"
|
||||||
extra_configs="$pentium_configs $debug_configs --disable-shared $static_link"
|
extra_configs="$pentium_configs $debug_configs --disable-shared $static_link"
|
||||||
extra_configs="$extra_configs $max_configs"
|
extra_configs="$extra_configs $max_configs"
|
||||||
c_warnings="$c_warnings $debug_extra_warnings"
|
c_warnings="$c_warnings $debug_extra_warnings"
|
||||||
|
16
configure.in
16
configure.in
@ -71,14 +71,22 @@ AC_SUBST(AVAILABLE_LANGUAGES)
|
|||||||
|
|
||||||
|
|
||||||
# Canonicalize the configuration name.
|
# Canonicalize the configuration name.
|
||||||
SYSTEM_TYPE="$host_vendor-$host_os"
|
|
||||||
MACHINE_TYPE="$host_cpu"
|
# Check whether --with-system-type or --without-system-type was given.
|
||||||
|
AC_ARG_WITH(system-type,
|
||||||
|
[ --with-system-type Set the system type, like "sun-solaris10"],
|
||||||
|
[SYSTEM_TYPE="$withval"],
|
||||||
|
[SYSTEM_TYPE="$host_vendor-$host_os"])
|
||||||
|
AC_ARG_WITH(machine-type,
|
||||||
|
[ --with-machine-type Set the machine type, like "powerpc"],
|
||||||
|
[MACHINE_TYPE="$withval"],
|
||||||
|
[MACHINE_TYPE="$host_cpu"])
|
||||||
AC_SUBST(SYSTEM_TYPE)
|
AC_SUBST(SYSTEM_TYPE)
|
||||||
AC_DEFINE_UNQUOTED([SYSTEM_TYPE], ["$SYSTEM_TYPE"],
|
AC_DEFINE_UNQUOTED([SYSTEM_TYPE], ["$SYSTEM_TYPE"],
|
||||||
[Name of system, eg solaris])
|
[Name of system, eg sun-solaris])
|
||||||
AC_SUBST(MACHINE_TYPE)
|
AC_SUBST(MACHINE_TYPE)
|
||||||
AC_DEFINE_UNQUOTED([MACHINE_TYPE], ["$MACHINE_TYPE"],
|
AC_DEFINE_UNQUOTED([MACHINE_TYPE], ["$MACHINE_TYPE"],
|
||||||
[Machine type name, eg sun10])
|
[Machine type name, eg sparc])
|
||||||
|
|
||||||
# Detect intel x86 like processor
|
# Detect intel x86 like processor
|
||||||
BASE_MACHINE_TYPE=$MACHINE_TYPE
|
BASE_MACHINE_TYPE=$MACHINE_TYPE
|
||||||
|
@ -180,7 +180,12 @@ enum ha_extra_function {
|
|||||||
These flags are reset by the handler::extra(HA_EXTRA_RESET) call.
|
These flags are reset by the handler::extra(HA_EXTRA_RESET) call.
|
||||||
*/
|
*/
|
||||||
HA_EXTRA_DELETE_CANNOT_BATCH,
|
HA_EXTRA_DELETE_CANNOT_BATCH,
|
||||||
HA_EXTRA_UPDATE_CANNOT_BATCH
|
HA_EXTRA_UPDATE_CANNOT_BATCH,
|
||||||
|
/*
|
||||||
|
Inform handler that an "INSERT...ON DUPLICATE KEY UPDATE" will be
|
||||||
|
executed. This condition is unset by HA_EXTRA_NO_IGNORE_DUP_KEY.
|
||||||
|
*/
|
||||||
|
HA_EXTRA_INSERT_WITH_UPDATE
|
||||||
};
|
};
|
||||||
|
|
||||||
/* The following is parameter to ha_panic() */
|
/* The following is parameter to ha_panic() */
|
||||||
|
@ -103,6 +103,17 @@ extern void bitmap_lock_invert(MY_BITMAP *map);
|
|||||||
&= ~ (1 << ((BIT) & 7)))
|
&= ~ (1 << ((BIT) & 7)))
|
||||||
#define _bitmap_is_set(MAP, BIT) (uint) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \
|
#define _bitmap_is_set(MAP, BIT) (uint) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \
|
||||||
& (1 << ((BIT) & 7)))
|
& (1 << ((BIT) & 7)))
|
||||||
|
/*
|
||||||
|
WARNING!
|
||||||
|
|
||||||
|
The below symbols are inline functions in DEBUG builds and macros in
|
||||||
|
non-DEBUG builds. The latter evaluate their 'bit' argument twice.
|
||||||
|
|
||||||
|
NEVER use an increment/decrement operator with the 'bit' argument.
|
||||||
|
It would work with DEBUG builds, but fails later in production builds!
|
||||||
|
|
||||||
|
FORBIDDEN: bitmap_set_bit($my_bitmap, (field++)->field_index);
|
||||||
|
*/
|
||||||
#ifndef DBUG_OFF
|
#ifndef DBUG_OFF
|
||||||
static inline void
|
static inline void
|
||||||
bitmap_set_bit(MY_BITMAP *map,uint bit)
|
bitmap_set_bit(MY_BITMAP *map,uint bit)
|
||||||
|
@ -168,8 +168,23 @@ int STDCALL mysql_server_init(int argc __attribute__((unused)),
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Free all memory and resources used by the client library
|
||||||
|
|
||||||
|
NOTES
|
||||||
|
When calling this there should not be any other threads using
|
||||||
|
the library.
|
||||||
|
|
||||||
|
To make things simpler when used with windows dll's (which calls this
|
||||||
|
function automaticly), it's safe to call this function multiple times.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
void STDCALL mysql_server_end()
|
void STDCALL mysql_server_end()
|
||||||
{
|
{
|
||||||
|
if (!mysql_client_init)
|
||||||
|
return;
|
||||||
|
|
||||||
#ifdef EMBEDDED_LIBRARY
|
#ifdef EMBEDDED_LIBRARY
|
||||||
end_embedded_server();
|
end_embedded_server();
|
||||||
#endif
|
#endif
|
||||||
|
@ -164,8 +164,8 @@ CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=INNODB;
|
|||||||
--error ER_DUP_ENTRY
|
--error ER_DUP_ENTRY
|
||||||
LOAD DATA INFILE "../std_data_ln/words.dat" INTO TABLE t1;
|
LOAD DATA INFILE "../std_data_ln/words.dat" INTO TABLE t1;
|
||||||
|
|
||||||
--disable warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
--enable warnings
|
--enable_warnings
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
eval SET SESSION STORAGE_ENGINE = $engine_type;
|
eval SET SESSION STORAGE_ENGINE = $engine_type;
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
drop table if exists t1,t2,t1m,t1i,t2m,t2i,t4;
|
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
|
|
||||||
@ -672,6 +672,20 @@ SELECT * FROM t3 WHERE a = 'uk';
|
|||||||
|
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test bug when trying to drop data file which no InnoDB directory entry
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t1 (a int) engine=innodb;
|
||||||
|
copy_file $MYSQLTEST_VARDIR/master-data/test/t1.frm $MYSQLTEST_VARDIR/master-data/test/t2.frm;
|
||||||
|
--error 1146
|
||||||
|
select * from t2;
|
||||||
|
drop table t1;
|
||||||
|
--error 1051
|
||||||
|
drop table t2;
|
||||||
|
create table t2 (a int);
|
||||||
|
drop table t2;
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #29154: LOCK TABLES is not atomic when >1 InnoDB tables are locked
|
# Bug #29154: LOCK TABLES is not atomic when >1 InnoDB tables are locked
|
||||||
@ -707,6 +721,64 @@ DISCONNECT c2;
|
|||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #25798: a query with forced index merge returns wrong result
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id int NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
b int NOT NULL,
|
||||||
|
c datetime NOT NULL,
|
||||||
|
INDEX idx_b(b),
|
||||||
|
INDEX idx_c(c)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
b int NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
c datetime NOT NULL
|
||||||
|
) ENGINE= MyISAM;
|
||||||
|
|
||||||
|
INSERT INTO t2(c) VALUES ('2007-01-01');
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
|
||||||
|
INSERT INTO t1(b,c) SELECT b,c FROM t2;
|
||||||
|
UPDATE t2 SET c='2007-01-02';
|
||||||
|
INSERT INTO t1(b,c) SELECT b,c FROM t2;
|
||||||
|
UPDATE t2 SET c='2007-01-03';
|
||||||
|
INSERT INTO t1(b,c) SELECT b,c FROM t2;
|
||||||
|
|
||||||
|
set @@sort_buffer_size=8192;
|
||||||
|
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
|
||||||
|
--replace_column 9 #
|
||||||
|
EXPLAIN
|
||||||
|
SELECT COUNT(*) FROM t1
|
||||||
|
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
|
||||||
|
SELECT COUNT(*) FROM t1
|
||||||
|
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
|
||||||
|
|
||||||
|
--replace_column 9 #
|
||||||
|
EXPLAIN
|
||||||
|
SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c)
|
||||||
|
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
|
||||||
|
SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c)
|
||||||
|
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
|
||||||
|
|
||||||
|
set @@sort_buffer_size=default;
|
||||||
|
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -345,6 +345,10 @@ sub mtr_report_stats ($) {
|
|||||||
/skip-name-resolve mode/ or
|
/skip-name-resolve mode/ or
|
||||||
/slave SQL thread aborted/ or
|
/slave SQL thread aborted/ or
|
||||||
/Slave: .*Duplicate entry/ or
|
/Slave: .*Duplicate entry/ or
|
||||||
|
# Special case for Bug #26402 in show_check.test
|
||||||
|
# Question marks are not valid file name parts
|
||||||
|
# on Windows platforms. Ignore this error message.
|
||||||
|
/\QCan't find file: '.\test\????????.frm'\E/ or
|
||||||
# Special case, made as specific as possible, for:
|
# Special case, made as specific as possible, for:
|
||||||
# Bug #28436: Incorrect position in SHOW BINLOG EVENTS causes
|
# Bug #28436: Incorrect position in SHOW BINLOG EVENTS causes
|
||||||
# server coredump
|
# server coredump
|
||||||
|
19
mysql-test/r/archive-big.result
Normal file
19
mysql-test/r/archive-big.result
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
CREATE TABLE t1(a BLOB) ENGINE=ARCHIVE;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
INSERT INTO t1 SELECT * FROM t1;
|
||||||
|
DROP TABLE t1;
|
@ -12675,3 +12675,10 @@ select * from t1;
|
|||||||
i
|
i
|
||||||
1
|
1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1(a longblob) engine=archive;
|
||||||
|
insert into t1 set a='';
|
||||||
|
insert into t1 set a='a';
|
||||||
|
check table t1 extended;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 check status OK
|
||||||
|
drop table t1;
|
||||||
|
@ -36,7 +36,7 @@ restore table t1 from '../bogus';
|
|||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
t1 restore error Failed copying .frm file
|
t1 restore error Failed copying .frm file
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1543 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
Warning 1287 The syntax 'RESTORE TABLE' is deprecated and will be removed in MySQL 5.2. Please use MySQL Administrator (mysqldump, mysql) instead
|
||||||
Error 29 File 'MYSQLTEST_VARDIR/bogus/t1.frm' not found (Errcode: X)
|
Error 29 File 'MYSQLTEST_VARDIR/bogus/t1.frm' not found (Errcode: X)
|
||||||
restore table t1 from '../tmp';
|
restore table t1 from '../tmp';
|
||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
|
@ -5259,6 +5259,14 @@ CREATE TABLE `bug21328` (
|
|||||||
insert into bug21328 values (1,NULL,NULL);
|
insert into bug21328 values (1,NULL,NULL);
|
||||||
alter table bug21328 engine=myisam;
|
alter table bug21328 engine=myisam;
|
||||||
drop table bug21328;
|
drop table bug21328;
|
||||||
|
create table t1(a blob, b int) engine=csv;
|
||||||
|
insert into t1 values('a', 1);
|
||||||
|
flush tables;
|
||||||
|
update t1 set b=2;
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
a 2
|
||||||
|
drop table t1;
|
||||||
create table t1(a int) engine=csv;
|
create table t1(a int) engine=csv;
|
||||||
insert into t1 values(-1), (-123.34), (2), (-23);
|
insert into t1 values(-1), (-123.34), (2), (-23);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
|
@ -31,7 +31,7 @@ create event e_55 on schedule at 10000101000000 do drop table t;
|
|||||||
ERROR HY000: Incorrect AT value: '10000101000000'
|
ERROR HY000: Incorrect AT value: '10000101000000'
|
||||||
create event e_55 on schedule at 20000101000000 do drop table t;
|
create event e_55 on schedule at 20000101000000 do drop table t;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1584 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
Note 1585 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
||||||
show events;
|
show events;
|
||||||
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
||||||
create event e_55 on schedule at 20200101000000 starts 10000101000000 do drop table t;
|
create event e_55 on schedule at 20200101000000 starts 10000101000000 do drop table t;
|
||||||
@ -457,22 +457,22 @@ CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
|
|||||||
DO
|
DO
|
||||||
SELECT 1;
|
SELECT 1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1584 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
Note 1585 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
||||||
CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
|
CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
|
||||||
ENDS '1999-01-02 00:00:00' DISABLE
|
ENDS '1999-01-02 00:00:00' DISABLE
|
||||||
DO
|
DO
|
||||||
SELECT 1;
|
SELECT 1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1584 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
Note 1585 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
||||||
CREATE EVENT e4 ON SCHEDULE AT '1999-01-01 00:00:00' DO
|
CREATE EVENT e4 ON SCHEDULE AT '1999-01-01 00:00:00' DO
|
||||||
SELECT 1;
|
SELECT 1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1584 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
Note 1585 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
||||||
CREATE EVENT e4 ON SCHEDULE AT '1999-01-01 00:00:00' DISABLE
|
CREATE EVENT e4 ON SCHEDULE AT '1999-01-01 00:00:00' DISABLE
|
||||||
DO
|
DO
|
||||||
SELECT 1;
|
SELECT 1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1584 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
Note 1585 Event execution time is in the past and ON COMPLETION NOT PRESERVE is set. Event has not been created
|
||||||
SHOW EVENTS;
|
SHOW EVENTS;
|
||||||
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
Db Name Definer Time zone Type Execute at Interval value Interval field Starts Ends Status Originator character_set_client collation_connection Database Collation
|
||||||
events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
events_test e1 root@localhost +05:00 RECURRING NULL 1 DAY 2006-01-01 00:00:00 NULL ENABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||||
@ -482,19 +482,19 @@ The following should succeed giving a warning.
|
|||||||
ALTER EVENT e1 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
|
ALTER EVENT e1 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
|
||||||
ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE;
|
ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1533 Event execution time is in the past. Event has been disabled
|
Note 1541 Event execution time is in the past. Event has been disabled
|
||||||
CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
|
CREATE EVENT e4 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
|
||||||
ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE
|
ENDS '1999-01-02 00:00:00' ON COMPLETION PRESERVE
|
||||||
DO
|
DO
|
||||||
SELECT 1;
|
SELECT 1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1533 Event execution time is in the past. Event has been disabled
|
Note 1541 Event execution time is in the past. Event has been disabled
|
||||||
CREATE EVENT e5 ON SCHEDULE AT '1999-01-01 00:00:00'
|
CREATE EVENT e5 ON SCHEDULE AT '1999-01-01 00:00:00'
|
||||||
ON COMPLETION PRESERVE
|
ON COMPLETION PRESERVE
|
||||||
DO
|
DO
|
||||||
SELECT 1;
|
SELECT 1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1533 Event execution time is in the past. Event has been disabled
|
Note 1541 Event execution time is in the past. Event has been disabled
|
||||||
The following should succeed without warnings.
|
The following should succeed without warnings.
|
||||||
ALTER EVENT e2 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00';
|
ALTER EVENT e2 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00';
|
||||||
ALTER EVENT e3 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
|
ALTER EVENT e3 ON SCHEDULE EVERY 1 HOUR STARTS '1999-01-01 00:00:00'
|
||||||
|
@ -63,7 +63,7 @@ begin work;
|
|||||||
insert into t1 (a) values ("OK: create event if not exists");
|
insert into t1 (a) values ("OK: create event if not exists");
|
||||||
create event if not exists e1 on schedule every 2 day do select 2;
|
create event if not exists e1 on schedule every 2 day do select 2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1526 Event 'e1' already exists
|
Note 1534 Event 'e1' already exists
|
||||||
rollback work;
|
rollback work;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
a
|
a
|
||||||
|
@ -1843,6 +1843,45 @@ C3A4C3B6C3BCC39F
|
|||||||
D18DD184D184D0B5D0BAD182D0B8D0B2D0BDD183D18E
|
D18DD184D184D0B5D0BAD182D0B8D0B2D0BDD183D18E
|
||||||
drop table federated.t1;
|
drop table federated.t1;
|
||||||
drop table federated.t1;
|
drop table federated.t1;
|
||||||
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
DEFAULT CHARSET=utf8;
|
||||||
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
ENGINE=FEDERATED
|
||||||
|
connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1'
|
||||||
|
DEFAULT CHARSET=utf8;
|
||||||
|
insert ignore into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
|
||||||
|
select * from federated.t1;
|
||||||
|
a b
|
||||||
|
1 Larry
|
||||||
|
2 Curly
|
||||||
|
truncate federated.t1;
|
||||||
|
replace into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
|
||||||
|
select * from federated.t1;
|
||||||
|
a b
|
||||||
|
1 Moe
|
||||||
|
2 Curly
|
||||||
|
update ignore federated.t1 set a=a+1;
|
||||||
|
select * from federated.t1;
|
||||||
|
a b
|
||||||
|
1 Moe
|
||||||
|
3 Curly
|
||||||
|
drop table federated.t1;
|
||||||
|
drop table federated.t1;
|
||||||
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
DEFAULT CHARSET=utf8;
|
||||||
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
ENGINE=FEDERATED
|
||||||
|
connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1'
|
||||||
|
DEFAULT CHARSET=utf8;
|
||||||
|
insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe")
|
||||||
|
on duplicate key update a=a+100;
|
||||||
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
|
select * from federated.t1;
|
||||||
|
a b
|
||||||
|
1 Larry
|
||||||
|
2 Curly
|
||||||
|
drop table federated.t1;
|
||||||
|
drop table federated.t1;
|
||||||
DROP TABLE IF EXISTS federated.t1;
|
DROP TABLE IF EXISTS federated.t1;
|
||||||
DROP DATABASE IF EXISTS federated;
|
DROP DATABASE IF EXISTS federated;
|
||||||
DROP TABLE IF EXISTS federated.t1;
|
DROP TABLE IF EXISTS federated.t1;
|
||||||
|
34
mysql-test/r/federated_innodb.result
Normal file
34
mysql-test/r/federated_innodb.result
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
stop slave;
|
||||||
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||||
|
reset master;
|
||||||
|
reset slave;
|
||||||
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||||
|
start slave;
|
||||||
|
stop slave;
|
||||||
|
DROP DATABASE IF EXISTS federated;
|
||||||
|
CREATE DATABASE federated;
|
||||||
|
DROP DATABASE IF EXISTS federated;
|
||||||
|
CREATE DATABASE federated;
|
||||||
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
engine=myisam;
|
||||||
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
engine=federated
|
||||||
|
connection='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
|
||||||
|
insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
|
||||||
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
|
select * from federated.t1;
|
||||||
|
a b
|
||||||
|
1 Larry
|
||||||
|
2 Curly
|
||||||
|
truncate federated.t1;
|
||||||
|
alter table federated.t1 engine=innodb;
|
||||||
|
insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
|
||||||
|
ERROR 23000: Can't write; duplicate key in table 't1'
|
||||||
|
select * from federated.t1;
|
||||||
|
a b
|
||||||
|
drop table federated.t1;
|
||||||
|
drop table federated.t1;
|
||||||
|
DROP TABLE IF EXISTS federated.t1;
|
||||||
|
DROP DATABASE IF EXISTS federated;
|
||||||
|
DROP TABLE IF EXISTS federated.t1;
|
||||||
|
DROP DATABASE IF EXISTS federated;
|
13
mysql-test/r/fulltext3.result
Normal file
13
mysql-test/r/fulltext3.result
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
CREATE TABLE t1(a VARCHAR(255) CHARACTER SET gbk, FULLTEXT(a));
|
||||||
|
SET NAMES utf8;
|
||||||
|
INSERT INTO t1 VALUES(0xF043616161),(0xBEF361616197C22061616161);
|
||||||
|
SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST(0x97C22061616161 IN BOOLEAN MODE);
|
||||||
|
HEX(a)
|
||||||
|
BEF361616197C22061616161
|
||||||
|
DELETE FROM t1 LIMIT 1;
|
||||||
|
CHECK TABLE t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 check status OK
|
||||||
|
SET NAMES latin1;
|
||||||
|
DROP TABLE t1;
|
@ -886,6 +886,9 @@ AsText(a)
|
|||||||
POINT(1 1)
|
POINT(1 1)
|
||||||
LINESTRING(0 0,1 1,2 2)
|
LINESTRING(0 0,1 1,2 2)
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
SELECT 1;
|
||||||
|
1
|
||||||
|
1
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
|
create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
|
||||||
create view v1 as select * from t1;
|
create view v1 as select * from t1;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
SET SESSION STORAGE_ENGINE = InnoDB;
|
SET SESSION STORAGE_ENGINE = InnoDB;
|
||||||
drop table if exists t1,t2,t1m,t1i,t2m,t2i,t4;
|
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
|
||||||
create table t1 (
|
create table t1 (
|
||||||
c_id int(11) not null default '0',
|
c_id int(11) not null default '0',
|
||||||
org_id int(11) default null,
|
org_id int(11) default null,
|
||||||
@ -665,6 +665,14 @@ UPDATE t3 SET a = 'us' WHERE a = 'uk';
|
|||||||
SELECT * FROM t3 WHERE a = 'uk';
|
SELECT * FROM t3 WHERE a = 'uk';
|
||||||
a
|
a
|
||||||
DROP TABLE t1,t2,t3;
|
DROP TABLE t1,t2,t3;
|
||||||
|
create table t1 (a int) engine=innodb;
|
||||||
|
select * from t2;
|
||||||
|
ERROR 42S02: Table 'test.t2' doesn't exist
|
||||||
|
drop table t1;
|
||||||
|
drop table t2;
|
||||||
|
ERROR 42S02: Unknown table 't2'
|
||||||
|
create table t2 (a int);
|
||||||
|
drop table t2;
|
||||||
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
|
||||||
CREATE TABLE t2 (a INT) ENGINE=InnoDB;
|
CREATE TABLE t2 (a INT) ENGINE=InnoDB;
|
||||||
switch to connection c1
|
switch to connection c1
|
||||||
@ -680,6 +688,57 @@ INSERT INTO t1 VALUES (1);
|
|||||||
switch to connection default
|
switch to connection default
|
||||||
SET AUTOCOMMIT=default;
|
SET AUTOCOMMIT=default;
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id int NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
b int NOT NULL,
|
||||||
|
c datetime NOT NULL,
|
||||||
|
INDEX idx_b(b),
|
||||||
|
INDEX idx_c(c)
|
||||||
|
) ENGINE=InnoDB;
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
b int NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
c datetime NOT NULL
|
||||||
|
) ENGINE= MyISAM;
|
||||||
|
INSERT INTO t2(c) VALUES ('2007-01-01');
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t2(c) SELECT c FROM t2;
|
||||||
|
INSERT INTO t1(b,c) SELECT b,c FROM t2;
|
||||||
|
UPDATE t2 SET c='2007-01-02';
|
||||||
|
INSERT INTO t1(b,c) SELECT b,c FROM t2;
|
||||||
|
UPDATE t2 SET c='2007-01-03';
|
||||||
|
INSERT INTO t1(b,c) SELECT b,c FROM t2;
|
||||||
|
set @@sort_buffer_size=8192;
|
||||||
|
SELECT COUNT(*) FROM t1;
|
||||||
|
COUNT(*)
|
||||||
|
3072
|
||||||
|
EXPLAIN
|
||||||
|
SELECT COUNT(*) FROM t1
|
||||||
|
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 ALL idx_b,idx_c NULL NULL NULL # Using where
|
||||||
|
SELECT COUNT(*) FROM t1
|
||||||
|
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
|
||||||
|
COUNT(*)
|
||||||
|
3072
|
||||||
|
EXPLAIN
|
||||||
|
SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c)
|
||||||
|
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 index_merge idx_b,idx_c idx_c,idx_b 8,4 NULL # Using sort_union(idx_c,idx_b); Using where
|
||||||
|
SELECT COUNT(*) FROM t1 FORCE INDEX(idx_b, idx_c)
|
||||||
|
WHERE (c >= '2007-01-02' AND c <= '2007-01-03') OR b >= 1;
|
||||||
|
COUNT(*)
|
||||||
|
3072
|
||||||
|
set @@sort_buffer_size=default;
|
||||||
|
DROP TABLE t1,t2;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
CREATE TABLE t1 (a int, b int);
|
CREATE TABLE t1 (a int, b int);
|
||||||
insert into t1 values (1,1),(1,2);
|
insert into t1 values (1,1),(1,2);
|
||||||
|
@ -86,6 +86,60 @@ field1 field2
|
|||||||
a"b cd"ef
|
a"b cd"ef
|
||||||
a"b c"d"e
|
a"b c"d"e
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
c1 VARCHAR(255)
|
||||||
|
);
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
id INT,
|
||||||
|
c2 VARCHAR(255)
|
||||||
|
);
|
||||||
|
INSERT INTO t1 (c1) VALUES
|
||||||
|
('r'), ('rr'), ('rrr'), ('rrrr'),
|
||||||
|
('.r'), ('.rr'), ('.rrr'), ('.rrrr'),
|
||||||
|
('r.'), ('rr.'), ('rrr.'), ('rrrr.'),
|
||||||
|
('.r.'), ('.rr.'), ('.rrr.'), ('.rrrr.');
|
||||||
|
SELECT * FROM t1;
|
||||||
|
id c1
|
||||||
|
1 r
|
||||||
|
2 rr
|
||||||
|
3 rrr
|
||||||
|
4 rrrr
|
||||||
|
5 .r
|
||||||
|
6 .rr
|
||||||
|
7 .rrr
|
||||||
|
8 .rrrr
|
||||||
|
9 r.
|
||||||
|
10 rr.
|
||||||
|
11 rrr.
|
||||||
|
12 rrrr.
|
||||||
|
13 .r.
|
||||||
|
14 .rr.
|
||||||
|
15 .rrr.
|
||||||
|
16 .rrrr.
|
||||||
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY 'r' FROM t1;
|
||||||
|
r1r rrrr
|
||||||
|
r2r rrrrrr
|
||||||
|
r3r rrrrrrrr
|
||||||
|
r4r rrrrrrrrrr
|
||||||
|
r5r r.rrr
|
||||||
|
r6r r.rrrrr
|
||||||
|
r7r r.rrrrrrr
|
||||||
|
r8r r.rrrrrrrrr
|
||||||
|
r9r rrr.r
|
||||||
|
r10r rrrrr.r
|
||||||
|
r11r rrrrrrr.r
|
||||||
|
r12r rrrrrrrrr.r
|
||||||
|
r13r r.rr.r
|
||||||
|
r14r r.rrrr.r
|
||||||
|
r15r r.rrrrrr.r
|
||||||
|
r16r r.rrrrrrrr.r
|
||||||
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t2 FIELDS ENCLOSED BY 'r';
|
||||||
|
SELECT t1.id, c1, c2 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE c1 != c2;
|
||||||
|
id c1 c2
|
||||||
|
SELECT t1.id, c1, c2 FROM t1 RIGHT JOIN t2 ON t1.id=t2.id WHERE c1 != c2;
|
||||||
|
id c1 c2
|
||||||
|
DROP TABLE t1,t2;
|
||||||
create table t1 (a int default 100, b int, c varchar(60));
|
create table t1 (a int default 100, b int, c varchar(60));
|
||||||
load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (a, @b) set b=@b+10, c=concat("b=",@b);
|
load data infile '../std_data_ln/rpl_loaddata.dat' into table t1 (a, @b) set b=@b+10, c=concat("b=",@b);
|
||||||
select * from t1;
|
select * from t1;
|
||||||
@ -193,6 +247,20 @@ f1
|
|||||||
1
|
1
|
||||||
2
|
2
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
CREATE TABLE t1 (c1 INT, c2 TIMESTAMP, c3 REAL, c4 DOUBLE);
|
||||||
|
INSERT INTO t1 (c1, c2, c3, c4) VALUES (10, '1970-02-01 01:02:03', 1.1E-100, 1.1E+100);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1 c2 c3 c4
|
||||||
|
10 1970-02-01 01:02:03 1.1e-100 1.1e+100
|
||||||
|
SELECT * INTO OUTFILE 'MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY '-' FROM t1;
|
||||||
|
-10- -1970\-02\-01 01:02:03- -1.1e\-100- -1.1e+100-
|
||||||
|
EOF
|
||||||
|
TRUNCATE t1;
|
||||||
|
LOAD DATA INFILE 'MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t1 FIELDS ENCLOSED BY '-';
|
||||||
|
SELECT * FROM t1;
|
||||||
|
c1 c2 c3 c4
|
||||||
|
10 1970-02-01 01:02:03 1.1e-100 1.1e+100
|
||||||
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (a int);
|
CREATE TABLE t1 (a int);
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
SET NAMES latin1;
|
SET NAMES latin1;
|
||||||
|
@ -1267,14 +1267,4 @@ ALTER TABLE general_log PARTITION BY RANGE (TO_DAYS(event_time))
|
|||||||
ERROR HY000: Incorrect usage of PARTITION and log table
|
ERROR HY000: Incorrect usage of PARTITION and log table
|
||||||
ALTER TABLE general_log ENGINE = CSV;
|
ALTER TABLE general_log ENGINE = CSV;
|
||||||
SET GLOBAL general_log = default;
|
SET GLOBAL general_log = default;
|
||||||
CREATE TABLE `t1` ( `a` varchar(1)) ENGINE=MyISAM
|
|
||||||
PARTITION BY LIST (CASE a WHEN 'a' THEN 1
|
|
||||||
WHEN 'b' THEN 2
|
|
||||||
WHEN 'c' THEN 3
|
|
||||||
END) (
|
|
||||||
PARTITION a VALUES IN (1),
|
|
||||||
PARTITION b VALUES IN (2),
|
|
||||||
PARTITION c VALUES IN (3)
|
|
||||||
);
|
|
||||||
DROP TABLE t1;
|
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
173
mysql-test/r/partition_bug18198.result
Normal file
173
mysql-test/r/partition_bug18198.result
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
drop table if exists t1;
|
||||||
|
create table t1 (col1 datetime)
|
||||||
|
partition by range(datediff(col1,col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
drop table t1;
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(greatest(col1,10))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(isnull(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(least(col1,12))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(case when col1>0 then 10 else 20 end)
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(ifnull(col1,5))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(nullif(col1,5))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(bit_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(bit_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(char_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(char_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(character_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(find_in_set(col1,1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(find_in_set(col1,'1'))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(instr(col1,3))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(instr(col1,'3'))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(locate(1,col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(locate(1,col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(octet_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(position(1 in col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(position(1 in col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(strcmp(col1,2))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(strcmp(col1,2))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(crc32(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(round(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(sign(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 datetime)
|
||||||
|
partition by range(period_add(col1,5))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 datetime, col2 datetime)
|
||||||
|
partition by range(period_diff(col1,col2))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int, col2 int)
|
||||||
|
partition by range(period_diff(col1,col2))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 datetime)
|
||||||
|
partition by range(timestampdiff(day,5,col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 date)
|
||||||
|
partition by range(unix_timestamp(col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 datetime)
|
||||||
|
partition by range(week(col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 varchar(25))
|
||||||
|
partition by range(cast(col1 as signed))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 varchar(25))
|
||||||
|
partition by range(convert(col1,unsigned))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 | 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 & 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 ^ 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 << 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 >> 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(~col1)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(bit_count(col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(inet_aton(col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
@ -16,3 +16,7 @@ s1
|
|||||||
1
|
1
|
||||||
3
|
3
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (a varchar(1), primary key (a))
|
||||||
|
partition by list (ascii(a))
|
||||||
|
(partition p1 values in (65));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
@ -25,7 +25,7 @@ partitions 3
|
|||||||
(partition x1 values in (1,2,9,4) tablespace ts1,
|
(partition x1 values in (1,2,9,4) tablespace ts1,
|
||||||
partition x2 values in (3, 11, 5, 7) tablespace ts2,
|
partition x2 values in (3, 11, 5, 7) tablespace ts2,
|
||||||
partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3);
|
partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3);
|
||||||
ERROR HY000: The PARTITION function returns the wrong type
|
ERROR HY000: This partition function is not allowed
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a int not null,
|
a int not null,
|
||||||
b int not null,
|
b int not null,
|
||||||
@ -89,7 +89,7 @@ partitions 3
|
|||||||
(partition x1 tablespace ts1,
|
(partition x1 tablespace ts1,
|
||||||
partition x2 tablespace ts2,
|
partition x2 tablespace ts2,
|
||||||
partition x3 tablespace ts3);
|
partition x3 tablespace ts3);
|
||||||
ERROR HY000: The PARTITION function returns the wrong type
|
ERROR HY000: This partition function is not allowed
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a int not null,
|
a int not null,
|
||||||
b int not null,
|
b int not null,
|
||||||
@ -422,7 +422,7 @@ partition by range (sin(a))
|
|||||||
partitions 2
|
partitions 2
|
||||||
(partition x1 values less than (4),
|
(partition x1 values less than (4),
|
||||||
partition x2 values less than (5));
|
partition x2 values less than (5));
|
||||||
ERROR HY000: The PARTITION function returns the wrong type
|
ERROR HY000: This partition function is not allowed
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a int not null,
|
a int not null,
|
||||||
b int not null,
|
b int not null,
|
||||||
@ -600,7 +600,7 @@ ERROR HY000: Partition constant is out of partition function domain
|
|||||||
create table t1 (v varchar(12))
|
create table t1 (v varchar(12))
|
||||||
partition by range (ascii(v))
|
partition by range (ascii(v))
|
||||||
(partition p0 values less than (10));
|
(partition p0 values less than (10));
|
||||||
drop table t1;
|
ERROR HY000: This partition function is not allowed
|
||||||
create table t1 (a int)
|
create table t1 (a int)
|
||||||
partition by hash (rand(a));
|
partition by hash (rand(a));
|
||||||
ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
|
ERROR 42000: Constant/Random expression in (sub)partitioning function is not allowed near ')' at line 2
|
||||||
@ -619,4 +619,4 @@ partition by range (a + (select count(*) from t1))
|
|||||||
ERROR HY000: This partition function is not allowed
|
ERROR HY000: This partition function is not allowed
|
||||||
create table t1 (a char(10))
|
create table t1 (a char(10))
|
||||||
partition by hash (extractvalue(a,'a'));
|
partition by hash (extractvalue(a,'a'));
|
||||||
ERROR HY000: The PARTITION function returns the wrong type
|
ERROR HY000: This partition function is not allowed
|
||||||
|
@ -1,18 +1,4 @@
|
|||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin)
|
|
||||||
partition by hash(length(a))
|
|
||||||
partitions 10;
|
|
||||||
insert into t1 values (''),(' '),('a'),('a '),('a ');
|
|
||||||
explain partitions select * from t1 where a='a ';
|
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
||||||
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 5 Using where
|
|
||||||
explain partitions select * from t1 where a='a';
|
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
||||||
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 5 Using where
|
|
||||||
explain partitions select * from t1 where a='a ' OR a='a';
|
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
||||||
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 5 Using where
|
|
||||||
drop table t1;
|
|
||||||
create table t1 (a int unsigned)
|
create table t1 (a int unsigned)
|
||||||
partition by hash(a div 2)
|
partition by hash(a div 2)
|
||||||
partitions 4;
|
partitions 4;
|
||||||
|
@ -295,3 +295,7 @@ select * from t1;
|
|||||||
a
|
a
|
||||||
100
|
100
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
create table t1 (a char(1))
|
||||||
|
partition by list (ascii(ucase(a)))
|
||||||
|
(partition p1 values in (2));
|
||||||
|
ERROR HY000: This partition function is not allowed
|
||||||
|
@ -10,13 +10,13 @@ subpartition sp01, subpartition sp02));
|
|||||||
ERROR HY000: Wrong number of subpartitions defined, mismatch with previous setting
|
ERROR HY000: Wrong number of subpartitions defined, mismatch with previous setting
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (f_date DATE, f_varchar VARCHAR(30))
|
CREATE TABLE t1 (f_date DATE, f_varchar VARCHAR(30))
|
||||||
PARTITION BY HASH(CAST(YEAR(f_date) AS SIGNED INTEGER)) PARTITIONS 2;
|
PARTITION BY HASH(YEAR(f_date)) PARTITIONS 2;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
`f_date` date DEFAULT NULL,
|
`f_date` date DEFAULT NULL,
|
||||||
`f_varchar` varchar(30) DEFAULT NULL
|
`f_varchar` varchar(30) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) PARTITIONS 2 */
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) PARTITIONS 2 */
|
||||||
hello/master-data/test/t1#P#p0.MYD
|
hello/master-data/test/t1#P#p0.MYD
|
||||||
hello/master-data/test/t1#P#p0.MYI
|
hello/master-data/test/t1#P#p0.MYI
|
||||||
hello/master-data/test/t1#P#p1.MYD
|
hello/master-data/test/t1#P#p1.MYD
|
||||||
@ -29,7 +29,7 @@ Table Create Table
|
|||||||
t1 CREATE TABLE `t1` (
|
t1 CREATE TABLE `t1` (
|
||||||
`f_date` date DEFAULT NULL,
|
`f_date` date DEFAULT NULL,
|
||||||
`f_varchar` varchar(30) DEFAULT NULL
|
`f_varchar` varchar(30) DEFAULT NULL
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (CAST(YEAR(f_date) AS SIGNED INTEGER)) PARTITIONS 1 */
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (YEAR(f_date)) PARTITIONS 1 */
|
||||||
hello/master-data/test/t1#P#p0.MYD
|
hello/master-data/test/t1#P#p0.MYD
|
||||||
hello/master-data/test/t1#P#p0.MYI
|
hello/master-data/test/t1#P#p0.MYI
|
||||||
hello/master-data/test/t1.frm
|
hello/master-data/test/t1.frm
|
||||||
|
@ -676,25 +676,6 @@ f_int1 f_int2
|
|||||||
8 8
|
8 8
|
||||||
9 9
|
9 9
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a char(10) binary)
|
|
||||||
partition by list(length(a))
|
|
||||||
(partition p1 values in (1),
|
|
||||||
partition p2 values in (2),
|
|
||||||
partition p3 values in (3),
|
|
||||||
partition p4 values in (4),
|
|
||||||
partition p5 values in (5)
|
|
||||||
);
|
|
||||||
insert into t1 values ('a'),('bb'),('ccc'),('dddd'),('eeEee');
|
|
||||||
select * from t1 where a>='a' and a <= 'dddd';
|
|
||||||
a
|
|
||||||
a
|
|
||||||
bb
|
|
||||||
ccc
|
|
||||||
dddd
|
|
||||||
explain partitions select * from t1 where a>='a' and a <= 'dddd';
|
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
||||||
1 SIMPLE t1 p1,p2,p3,p4,p5 ALL NULL NULL NULL NULL 5 Using where
|
|
||||||
drop table t1;
|
|
||||||
create table t1 (f_int1 integer) partition by list(abs(mod(f_int1,2)))
|
create table t1 (f_int1 integer) partition by list(abs(mod(f_int1,2)))
|
||||||
subpartition by hash(f_int1) subpartitions 2
|
subpartition by hash(f_int1) subpartitions 2
|
||||||
(
|
(
|
||||||
@ -848,22 +829,57 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
drop table t1;
|
drop table t1;
|
||||||
create table t1 (a int)
|
create table t1 (a int)
|
||||||
partition by range((a & 0xFF) << 56) (
|
partition by range(a) (
|
||||||
partition p0 values less than (0x40 << 56),
|
partition p0 values less than (64),
|
||||||
partition p1 values less than (0x80 << 56),
|
partition p1 values less than (128),
|
||||||
partition p2 values less than (0xFF << 56)
|
partition p2 values less than (255)
|
||||||
|
);
|
||||||
|
create table t2 (a int)
|
||||||
|
partition by range(a+0) (
|
||||||
|
partition p0 values less than (64),
|
||||||
|
partition p1 values less than (128),
|
||||||
|
partition p2 values less than (255)
|
||||||
);
|
);
|
||||||
insert into t1 values (0x20), (0x20), (0x41), (0x41), (0xFE), (0xFE);
|
insert into t1 values (0x20), (0x20), (0x41), (0x41), (0xFE), (0xFE);
|
||||||
|
insert into t2 values (0x20), (0x20), (0x41), (0x41), (0xFE), (0xFE);
|
||||||
explain partitions select * from t1 where a=0;
|
explain partitions select * from t1 where a=0;
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 2 Using where
|
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
explain partitions select * from t2 where a=0;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 p0 ALL NULL NULL NULL NULL 2 Using where
|
||||||
explain partitions select * from t1 where a=0xFE;
|
explain partitions select * from t1 where a=0xFE;
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 p2 ALL NULL NULL NULL NULL 2 Using where
|
1 SIMPLE t1 p2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
explain partitions select * from t1 where a>0xFE and a<= 0xFF;
|
explain partitions select * from t2 where a=0xFE;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 p2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
explain partitions select * from t1 where a > 0xFE AND a <= 0xFF;
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
explain partitions select * from t2 where a > 0xFE AND a <= 0xFF;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
|
explain partitions select * from t1 where a >= 0xFE AND a <= 0xFF;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 p2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
explain partitions select * from t2 where a >= 0xFE AND a <= 0xFF;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 p2 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
explain partitions select * from t1 where a < 64 AND a >= 63;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 p0 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
explain partitions select * from t2 where a < 64 AND a >= 63;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 p0 ALL NULL NULL NULL NULL 2 Using where
|
||||||
|
explain partitions select * from t1 where a <= 64 AND a >= 63;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t1 p0,p1 ALL NULL NULL NULL NULL 4 Using where
|
||||||
|
explain partitions select * from t2 where a <= 64 AND a >= 63;
|
||||||
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t2 p0,p1 ALL NULL NULL NULL NULL 4 Using where
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
drop table t2;
|
||||||
create table t1(a bigint unsigned not null) partition by range(a+0) (
|
create table t1(a bigint unsigned not null) partition by range(a+0) (
|
||||||
partition p1 values less than (10),
|
partition p1 values less than (10),
|
||||||
partition p2 values less than (20),
|
partition p2 values less than (20),
|
||||||
|
@ -1,38 +1,4 @@
|
|||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin, b int)
|
|
||||||
partition by range (length(a) * b)
|
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
|
||||||
insert into t1 values ('a ', 2),('a',3);
|
|
||||||
drop table t1;
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin, b int)
|
|
||||||
partition by range (b* length(a) * b)
|
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
|
||||||
insert into t1 values ('a ', 2),('a',3);
|
|
||||||
drop table t1;
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
|
||||||
b varchar(10) charset latin1 collate latin1_bin)
|
|
||||||
partition by range (length(b) * length(a))
|
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
|
||||||
insert into t1 values ('a ', 'b '),('a','b');
|
|
||||||
drop table t1;
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
|
||||||
b varchar(10) charset latin1 collate latin1_bin)
|
|
||||||
partition by range (length(a) * length(b))
|
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
|
||||||
insert into t1 values ('a ', 'b '),('a','b');
|
|
||||||
drop table t1;
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
|
||||||
b varchar(10) charset latin1 collate latin1_bin, c int)
|
|
||||||
partition by range (length(a) * c)
|
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
|
||||||
insert into t1 values ('a ', 'b ', 2),('a','b', 3);
|
|
||||||
drop table t1;
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
|
||||||
b varchar(10) charset latin1 collate latin1_bin, c int)
|
|
||||||
partition by range (c * length(a))
|
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
|
||||||
insert into t1 values ('a ', 'b ', 2),('a','b', 3);
|
|
||||||
drop table t1;
|
|
||||||
create table t1 (a int unsigned)
|
create table t1 (a int unsigned)
|
||||||
partition by range (a)
|
partition by range (a)
|
||||||
(partition pnull values less than (0),
|
(partition pnull values less than (0),
|
||||||
@ -109,7 +75,7 @@ id select_type table partitions type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 pnull_pnullsp0,pnull_pnullsp1,p0_p0sp0,p0_p0sp1 ALL NULL NULL NULL NULL 4 Using where
|
1 SIMPLE t1 pnull_pnullsp0,pnull_pnullsp1,p0_p0sp0,p0_p0sp1 ALL NULL NULL NULL NULL 4 Using where
|
||||||
explain partitions select * from t1 where a > 1;
|
explain partitions select * from t1 where a > 1;
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 p1_p1sp0,p1_p1sp1 ALL NULL NULL NULL NULL 2 Using where
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||||
drop table t1;
|
drop table t1;
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a int not null,
|
a int not null,
|
||||||
@ -743,45 +709,3 @@ WHERE (a >= '2004-07-01' AND a <= '2004-09-30') OR
|
|||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
id select_type table partitions type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 p407,p408,p409,p507,p508,p509 ALL NULL NULL NULL NULL 18 Using where
|
1 SIMPLE t1 p407,p408,p409,p507,p508,p509 ALL NULL NULL NULL NULL 18 Using where
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
create table t1 (a varchar(20))
|
|
||||||
partition by range (crc32(md5(a)))
|
|
||||||
(partition p0 values less than (100),
|
|
||||||
partition p1 values less than maxvalue);
|
|
||||||
insert into t1 values ("12345678901234567890");
|
|
||||||
insert into t1 values ("A2345678901234567890");
|
|
||||||
insert into t1 values ("B2345678901234567890");
|
|
||||||
insert into t1 values ("1234567890123456789");
|
|
||||||
insert into t1 values ("1234567890123456");
|
|
||||||
select * from t1;
|
|
||||||
a
|
|
||||||
12345678901234567890
|
|
||||||
A2345678901234567890
|
|
||||||
B2345678901234567890
|
|
||||||
1234567890123456789
|
|
||||||
1234567890123456
|
|
||||||
explain partitions select * from t1 where a = "12345678901234567890";
|
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
||||||
1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 5 Using where
|
|
||||||
explain partitions select * from t1 where a = "12345678901234567890" OR
|
|
||||||
a = "A2345678901234567890" OR
|
|
||||||
a = "B2345678901234567890" OR
|
|
||||||
a = "C2345678901234567890";
|
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
||||||
1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 5 Using where
|
|
||||||
explain partitions select * from t1 where a = "01234567890123456";
|
|
||||||
id select_type table partitions type possible_keys key key_len ref rows Extra
|
|
||||||
1 SIMPLE t1 p1 ALL NULL NULL NULL NULL 5 Using where
|
|
||||||
select * from t1 where a = "01234567890123456";
|
|
||||||
a
|
|
||||||
select * from t1 where a = "12345678901234567890" OR
|
|
||||||
a = "A2345678901234567890" OR
|
|
||||||
a = "B2345678901234567890" OR
|
|
||||||
a = "C2345678901234567890";
|
|
||||||
a
|
|
||||||
12345678901234567890
|
|
||||||
A2345678901234567890
|
|
||||||
B2345678901234567890
|
|
||||||
select * from t1 where a = "12345678901234567890";
|
|
||||||
a
|
|
||||||
12345678901234567890
|
|
||||||
drop table t1;
|
|
||||||
|
@ -3492,7 +3492,7 @@ SELECT 0.9888889889 * 1.011111411911;
|
|||||||
0.9998769417899202067879
|
0.9998769417899202067879
|
||||||
prepare stmt from 'select 1 as " a "';
|
prepare stmt from 'select 1 as " a "';
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1548 Leading spaces are removed from name ' a '
|
Warning 1466 Leading spaces are removed from name ' a '
|
||||||
execute stmt;
|
execute stmt;
|
||||||
a
|
a
|
||||||
1
|
1
|
||||||
|
@ -1198,7 +1198,7 @@ drop database mysqltest;
|
|||||||
show full plugin;
|
show full plugin;
|
||||||
show warnings;
|
show warnings;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Warning 1543 The syntax 'SHOW PLUGIN' is deprecated and will be removed in MySQL 5.2. Please use 'SHOW PLUGINS' instead
|
Warning 1287 The syntax 'SHOW PLUGIN' is deprecated and will be removed in MySQL 5.2. Please use 'SHOW PLUGINS' instead
|
||||||
show plugin;
|
show plugin;
|
||||||
show plugins;
|
show plugins;
|
||||||
create database `mysqlttest\1`;
|
create database `mysqlttest\1`;
|
||||||
|
@ -5665,7 +5665,7 @@ drop function if exists pi;
|
|||||||
create function pi() returns varchar(50)
|
create function pi() returns varchar(50)
|
||||||
return "pie, my favorite desert.";
|
return "pie, my favorite desert.";
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1581 This function 'pi' has the same name as a native function
|
Note 1582 This function 'pi' has the same name as a native function
|
||||||
SET @save_sql_mode=@@sql_mode;
|
SET @save_sql_mode=@@sql_mode;
|
||||||
SET SQL_MODE='IGNORE_SPACE';
|
SET SQL_MODE='IGNORE_SPACE';
|
||||||
select pi(), pi ();
|
select pi(), pi ();
|
||||||
@ -5714,15 +5714,15 @@ use test;
|
|||||||
create function `database`() returns varchar(50)
|
create function `database`() returns varchar(50)
|
||||||
return "Stored function database";
|
return "Stored function database";
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1581 This function 'database' has the same name as a native function
|
Note 1582 This function 'database' has the same name as a native function
|
||||||
create function `current_user`() returns varchar(50)
|
create function `current_user`() returns varchar(50)
|
||||||
return "Stored function current_user";
|
return "Stored function current_user";
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1581 This function 'current_user' has the same name as a native function
|
Note 1582 This function 'current_user' has the same name as a native function
|
||||||
create function md5(x varchar(50)) returns varchar(50)
|
create function md5(x varchar(50)) returns varchar(50)
|
||||||
return "Stored function md5";
|
return "Stored function md5";
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1581 This function 'md5' has the same name as a native function
|
Note 1582 This function 'md5' has the same name as a native function
|
||||||
SET SQL_MODE='IGNORE_SPACE';
|
SET SQL_MODE='IGNORE_SPACE';
|
||||||
select database(), database ();
|
select database(), database ();
|
||||||
database() database ()
|
database() database ()
|
||||||
|
@ -7,11 +7,11 @@ return 1;
|
|||||||
create function x() returns int
|
create function x() returns int
|
||||||
return 2;
|
return 2;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1581 This function 'x' has the same name as a native function
|
Note 1582 This function 'x' has the same name as a native function
|
||||||
create function y() returns int
|
create function y() returns int
|
||||||
return 3;
|
return 3;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1581 This function 'y' has the same name as a native function
|
Note 1582 This function 'y' has the same name as a native function
|
||||||
select a();
|
select a();
|
||||||
a()
|
a()
|
||||||
1
|
1
|
||||||
|
@ -535,7 +535,7 @@ use db_bug7787|
|
|||||||
CREATE PROCEDURE p1()
|
CREATE PROCEDURE p1()
|
||||||
SHOW INNODB STATUS; |
|
SHOW INNODB STATUS; |
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1543 The syntax 'SHOW INNODB STATUS' is deprecated and will be removed in MySQL 5.2. Please use 'SHOW ENGINE INNODB STATUS' instead
|
Warning 1287 The syntax 'SHOW INNODB STATUS' is deprecated and will be removed in MySQL 5.2. Please use 'SHOW ENGINE INNODB STATUS' instead
|
||||||
GRANT EXECUTE ON PROCEDURE p1 TO user_bug7787@localhost|
|
GRANT EXECUTE ON PROCEDURE p1 TO user_bug7787@localhost|
|
||||||
DROP DATABASE db_bug7787|
|
DROP DATABASE db_bug7787|
|
||||||
drop user user_bug7787@localhost|
|
drop user user_bug7787@localhost|
|
||||||
|
@ -1481,6 +1481,34 @@ drop table t1;
|
|||||||
SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
|
SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
|
||||||
a b
|
a b
|
||||||
0.9999999999999800000000000000 0.9999999999999800000000000000
|
0.9999999999999800000000000000 0.9999999999999800000000000000
|
||||||
|
SELECT CAST(1 AS decimal(65,10));
|
||||||
|
CAST(1 AS decimal(65,10))
|
||||||
|
1.0000000000
|
||||||
|
SELECT CAST(1 AS decimal(66,10));
|
||||||
|
ERROR 42000: Too big precision 66 specified for column '1'. Maximum is 65.
|
||||||
|
SELECT CAST(1 AS decimal(65,30));
|
||||||
|
CAST(1 AS decimal(65,30))
|
||||||
|
1.000000000000000000000000000000
|
||||||
|
SELECT CAST(1 AS decimal(65,31));
|
||||||
|
ERROR 42000: Too big scale 31 specified for column '1'. Maximum is 30.
|
||||||
|
CREATE TABLE t1 (a int DEFAULT NULL, b int DEFAULT NULL);
|
||||||
|
INSERT INTO t1 VALUES (3,30), (1,10), (2,10);
|
||||||
|
SELECT a+CAST(1 AS decimal(65,30)) AS aa, SUM(b) FROM t1 GROUP BY aa;
|
||||||
|
aa SUM(b)
|
||||||
|
2.000000000000000000000000000000 10
|
||||||
|
3.000000000000000000000000000000 10
|
||||||
|
4.000000000000000000000000000000 30
|
||||||
|
SELECT a+CAST(1 AS decimal(65,31)) AS aa, SUM(b) FROM t1 GROUP BY aa;
|
||||||
|
ERROR 42000: Too big scale 31 specified for column '1'. Maximum is 30.
|
||||||
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (a int DEFAULT NULL, b int DEFAULT NULL);
|
||||||
|
INSERT INTO t1 VALUES (3,30), (1,10), (2,10);
|
||||||
|
SET @a= CAST(1 AS decimal);
|
||||||
|
SELECT 1 FROM t1 GROUP BY @b := @a, @b;
|
||||||
|
1
|
||||||
|
1
|
||||||
|
1
|
||||||
|
DROP TABLE t1;
|
||||||
End of 5.0 tests
|
End of 5.0 tests
|
||||||
select cast(143.481 as decimal(4,1));
|
select cast(143.481 as decimal(4,1));
|
||||||
cast(143.481 as decimal(4,1))
|
cast(143.481 as decimal(4,1))
|
||||||
|
@ -101,13 +101,13 @@ create table t1 (t2 timestamp(2), t4 timestamp(4), t6 timestamp(6),
|
|||||||
t8 timestamp(8), t10 timestamp(10), t12 timestamp(12),
|
t8 timestamp(8), t10 timestamp(10), t12 timestamp(12),
|
||||||
t14 timestamp(14));
|
t14 timestamp(14));
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1543 The syntax 'TIMESTAMP(2)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
Warning 1287 The syntax 'TIMESTAMP(2)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||||
Warning 1543 The syntax 'TIMESTAMP(4)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
Warning 1287 The syntax 'TIMESTAMP(4)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||||
Warning 1543 The syntax 'TIMESTAMP(6)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
Warning 1287 The syntax 'TIMESTAMP(6)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||||
Warning 1543 The syntax 'TIMESTAMP(8)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
Warning 1287 The syntax 'TIMESTAMP(8)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||||
Warning 1543 The syntax 'TIMESTAMP(10)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
Warning 1287 The syntax 'TIMESTAMP(10)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||||
Warning 1543 The syntax 'TIMESTAMP(12)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
Warning 1287 The syntax 'TIMESTAMP(12)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||||
Warning 1543 The syntax 'TIMESTAMP(14)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
Warning 1287 The syntax 'TIMESTAMP(14)' is deprecated and will be removed in MySQL 5.2. Please use 'TIMESTAMP' instead
|
||||||
insert t1 values (0,0,0,0,0,0,0),
|
insert t1 values (0,0,0,0,0,0,0),
|
||||||
("1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
|
("1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
|
||||||
"1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
|
"1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
|
||||||
|
@ -3497,6 +3497,53 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
|
1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
person_id int NOT NULL PRIMARY KEY,
|
||||||
|
username varchar(40) default NULL,
|
||||||
|
status_flg char(1) NOT NULL default 'A'
|
||||||
|
);
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
person_role_id int NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
role_id int NOT NULL,
|
||||||
|
person_id int NOT NULL,
|
||||||
|
INDEX idx_person_id (person_id),
|
||||||
|
INDEX idx_role_id (role_id)
|
||||||
|
);
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
role_id int NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
role_name varchar(100) default NULL,
|
||||||
|
app_name varchar(40) NOT NULL,
|
||||||
|
INDEX idx_app_name(app_name)
|
||||||
|
);
|
||||||
|
CREATE VIEW v1 AS
|
||||||
|
SELECT profile.person_id AS person_id
|
||||||
|
FROM t1 profile, t2 userrole, t3 role
|
||||||
|
WHERE userrole.person_id = profile.person_id AND
|
||||||
|
role.role_id = userrole.role_id AND
|
||||||
|
profile.status_flg = 'A'
|
||||||
|
ORDER BY profile.person_id,role.app_name,role.role_name;
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(6,'Sw','A'), (-1136332546,'ols','e'), (0,' *\n','0'),
|
||||||
|
(-717462680,'ENTS Ta','0'), (-904346964,'ndard SQL\n','0');
|
||||||
|
INSERT INTO t2 VALUES
|
||||||
|
(1,3,6),(2,4,7),(3,5,8),(4,6,9),(5,1,6),(6,1,7),(7,1,8),(8,1,9),(9,1,10);
|
||||||
|
INSERT INTO t3 VALUES
|
||||||
|
(1,'NUCANS_APP_USER','NUCANSAPP'),(2,'NUCANS_TRGAPP_USER','NUCANSAPP'),
|
||||||
|
(3,'IA_INTAKE_COORDINATOR','IACANS'),(4,'IA_SCREENER','IACANS'),
|
||||||
|
(5,'IA_SUPERVISOR','IACANS'),(6,'IA_READONLY','IACANS'),
|
||||||
|
(7,'SOC_USER','SOCCANS'),(8,'CAYIT_USER','CAYITCANS'),
|
||||||
|
(9,'RTOS_DCFSPOS_SUPERVISOR','RTOS');
|
||||||
|
EXPLAIN SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE profile const PRIMARY PRIMARY 4 const 1 Using temporary; Using filesort
|
||||||
|
1 SIMPLE userrole ref idx_person_id,idx_role_id idx_person_id 4 const 2
|
||||||
|
1 SIMPLE role eq_ref PRIMARY PRIMARY 4 test.userrole.role_id 1
|
||||||
|
SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6;
|
||||||
|
a b
|
||||||
|
6 6
|
||||||
|
6 6
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
End of 5.0 tests.
|
End of 5.0 tests.
|
||||||
DROP DATABASE IF EXISTS `d-1`;
|
DROP DATABASE IF EXISTS `d-1`;
|
||||||
CREATE DATABASE `d-1`;
|
CREATE DATABASE `d-1`;
|
||||||
|
@ -168,7 +168,7 @@ max_error_count 10
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
set table_type=MYISAM;
|
set table_type=MYISAM;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1543 The syntax 'table_type' is deprecated and will be removed in MySQL 5.2. Please use 'storage_engine' instead
|
Warning 1287 The syntax 'table_type' is deprecated and will be removed in MySQL 5.2. Please use 'storage_engine' instead
|
||||||
create table t1 (a int);
|
create table t1 (a int);
|
||||||
insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
|
insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
|
||||||
update t1 set a='abc';
|
update t1 set a='abc';
|
||||||
|
@ -647,32 +647,32 @@ select extractValue('<a>a','/a');
|
|||||||
extractValue('<a>a','/a')
|
extractValue('<a>a','/a')
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1513 Incorrect XML value: 'parse error at line 1 pos 5: unexpected END-OF-INPUT'
|
Warning 1522 Incorrect XML value: 'parse error at line 1 pos 5: unexpected END-OF-INPUT'
|
||||||
select extractValue('<a>a<','/a');
|
select extractValue('<a>a<','/a');
|
||||||
extractValue('<a>a<','/a')
|
extractValue('<a>a<','/a')
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1513 Incorrect XML value: 'parse error at line 1 pos 6: END-OF-INPUT unexpected (ident or '/' wanted)'
|
Warning 1522 Incorrect XML value: 'parse error at line 1 pos 6: END-OF-INPUT unexpected (ident or '/' wanted)'
|
||||||
select extractValue('<a>a</','/a');
|
select extractValue('<a>a</','/a');
|
||||||
extractValue('<a>a</','/a')
|
extractValue('<a>a</','/a')
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1513 Incorrect XML value: 'parse error at line 1 pos 7: END-OF-INPUT unexpected (ident wanted)'
|
Warning 1522 Incorrect XML value: 'parse error at line 1 pos 7: END-OF-INPUT unexpected (ident wanted)'
|
||||||
select extractValue('<a>a</a','/a');
|
select extractValue('<a>a</a','/a');
|
||||||
extractValue('<a>a</a','/a')
|
extractValue('<a>a</a','/a')
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1513 Incorrect XML value: 'parse error at line 1 pos 8: END-OF-INPUT unexpected ('>' wanted)'
|
Warning 1522 Incorrect XML value: 'parse error at line 1 pos 8: END-OF-INPUT unexpected ('>' wanted)'
|
||||||
select extractValue('<a>a</a></b>','/a');
|
select extractValue('<a>a</a></b>','/a');
|
||||||
extractValue('<a>a</a></b>','/a')
|
extractValue('<a>a</a></b>','/a')
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1513 Incorrect XML value: 'parse error at line 1 pos 12: '</b>' unexpected (END-OF-INPUT wanted)'
|
Warning 1522 Incorrect XML value: 'parse error at line 1 pos 12: '</b>' unexpected (END-OF-INPUT wanted)'
|
||||||
select extractValue('<a b=>a</a>','/a');
|
select extractValue('<a b=>a</a>','/a');
|
||||||
extractValue('<a b=>a</a>','/a')
|
extractValue('<a b=>a</a>','/a')
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1513 Incorrect XML value: 'parse error at line 1 pos 7: '>' unexpected (ident or string wanted)'
|
Warning 1522 Incorrect XML value: 'parse error at line 1 pos 7: '>' unexpected (ident or string wanted)'
|
||||||
select extractValue('<e>1</e>','position()');
|
select extractValue('<e>1</e>','position()');
|
||||||
ERROR HY000: XPATH syntax error: ''
|
ERROR HY000: XPATH syntax error: ''
|
||||||
select extractValue('<e>1</e>','last()');
|
select extractValue('<e>1</e>','last()');
|
||||||
@ -723,17 +723,17 @@ select extractValue('<zot><tim0><01>10:39:15</01><02>140</02></tim0></zot>','//*
|
|||||||
extractValue('<zot><tim0><01>10:39:15</01><02>140</02></tim0></zot>','//*')
|
extractValue('<zot><tim0><01>10:39:15</01><02>140</02></tim0></zot>','//*')
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1513 Incorrect XML value: 'parse error at line 1 pos 13: unknown token unexpected (ident or '/' wanted)'
|
Warning 1522 Incorrect XML value: 'parse error at line 1 pos 13: unknown token unexpected (ident or '/' wanted)'
|
||||||
select extractValue('<.>test</.>','//*');
|
select extractValue('<.>test</.>','//*');
|
||||||
extractValue('<.>test</.>','//*')
|
extractValue('<.>test</.>','//*')
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1513 Incorrect XML value: 'parse error at line 1 pos 2: unknown token unexpected (ident or '/' wanted)'
|
Warning 1522 Incorrect XML value: 'parse error at line 1 pos 2: unknown token unexpected (ident or '/' wanted)'
|
||||||
select extractValue('<->test</->','//*');
|
select extractValue('<->test</->','//*');
|
||||||
extractValue('<->test</->','//*')
|
extractValue('<->test</->','//*')
|
||||||
NULL
|
NULL
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1513 Incorrect XML value: 'parse error at line 1 pos 2: unknown token unexpected (ident or '/' wanted)'
|
Warning 1522 Incorrect XML value: 'parse error at line 1 pos 2: unknown token unexpected (ident or '/' wanted)'
|
||||||
select extractValue('<:>test</:>','//*');
|
select extractValue('<:>test</:>','//*');
|
||||||
extractValue('<:>test</:>','//*')
|
extractValue('<:>test</:>','//*')
|
||||||
test
|
test
|
||||||
|
@ -5,20 +5,20 @@ INITIAL_SIZE 16M
|
|||||||
UNDO_BUFFER_SIZE = 1M
|
UNDO_BUFFER_SIZE = 1M
|
||||||
ENGINE=MYISAM;
|
ENGINE=MYISAM;
|
||||||
Warnings:
|
Warnings:
|
||||||
Error 1466 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP'
|
Error 1475 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP'
|
||||||
ALTER LOGFILE GROUP lg1
|
ALTER LOGFILE GROUP lg1
|
||||||
ADD UNDOFILE 'undofile02.dat'
|
ADD UNDOFILE 'undofile02.dat'
|
||||||
INITIAL_SIZE = 4M
|
INITIAL_SIZE = 4M
|
||||||
ENGINE=XYZ;
|
ENGINE=XYZ;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1286 Unknown table engine 'XYZ'
|
Warning 1286 Unknown table engine 'XYZ'
|
||||||
Error 1466 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP'
|
Error 1475 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP'
|
||||||
CREATE TABLESPACE ts1
|
CREATE TABLESPACE ts1
|
||||||
ADD DATAFILE 'datafile.dat'
|
ADD DATAFILE 'datafile.dat'
|
||||||
USE LOGFILE GROUP lg1
|
USE LOGFILE GROUP lg1
|
||||||
INITIAL_SIZE 12M;
|
INITIAL_SIZE 12M;
|
||||||
Warnings:
|
Warnings:
|
||||||
Error 1466 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP'
|
Error 1475 Table storage engine 'MyISAM' does not support the create option 'TABLESPACE or LOGFILE GROUP'
|
||||||
set storage_engine=ndb;
|
set storage_engine=ndb;
|
||||||
CREATE LOGFILE GROUP lg1
|
CREATE LOGFILE GROUP lg1
|
||||||
ADD UNDOFILE 'undofile.dat'
|
ADD UNDOFILE 'undofile.dat'
|
||||||
|
@ -16,7 +16,7 @@ ERROR HY000: Failed to create LOGFILE GROUP
|
|||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Error 1296 Got error 1514 'Currently there is a limit of one logfile group' from NDB
|
Error 1296 Got error 1514 'Currently there is a limit of one logfile group' from NDB
|
||||||
Error 1516 Failed to create LOGFILE GROUP
|
Error 1525 Failed to create LOGFILE GROUP
|
||||||
CREATE LOGFILE GROUP lg1
|
CREATE LOGFILE GROUP lg1
|
||||||
ADD UNDOFILE 'undofile.dat'
|
ADD UNDOFILE 'undofile.dat'
|
||||||
INITIAL_SIZE 1M
|
INITIAL_SIZE 1M
|
||||||
|
@ -463,7 +463,7 @@ drop table t1;
|
|||||||
End of 4.1 tests
|
End of 4.1 tests
|
||||||
CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
|
CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
|
||||||
Warnings:
|
Warnings:
|
||||||
Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
|
Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
|
||||||
INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
|
INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
|
||||||
INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
|
INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
|
||||||
INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
|
INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
|
||||||
@ -1013,7 +1013,7 @@ drop table t1;
|
|||||||
End of 4.1 tests
|
End of 4.1 tests
|
||||||
CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
|
CREATE TABLE t1 (name VARCHAR(100), square GEOMETRY);
|
||||||
Warnings:
|
Warnings:
|
||||||
Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
|
Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Binlog of table with BLOB attribute and no PK'
|
||||||
INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
|
INSERT INTO t1 VALUES("center", GeomFromText('POLYGON (( 0 0, 0 2, 2 2, 2 0, 0 0))'));
|
||||||
INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
|
INSERT INTO t1 VALUES("small", GeomFromText('POLYGON (( 0 0, 0 1, 1 1, 1 0, 0 0))'));
|
||||||
INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
|
INSERT INTO t1 VALUES("big", GeomFromText('POLYGON (( 0 0, 0 3, 3 3, 3 0, 0 0))'));
|
||||||
|
@ -8,7 +8,7 @@ ENGINE=NDB;
|
|||||||
ERROR HY000: Can't create table 'test.t1' (errno: 138)
|
ERROR HY000: Can't create table 'test.t1' (errno: 138)
|
||||||
SHOW WARNINGS;
|
SHOW WARNINGS;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Error 1466 Table storage engine 'ndbcluster' does not support the create option 'Row format FIXED incompatible with variable sized attribute'
|
Error 1475 Table storage engine 'ndbcluster' does not support the create option 'Row format FIXED incompatible with variable sized attribute'
|
||||||
Error 1005 Can't create table 'test.t1' (errno: 138)
|
Error 1005 Can't create table 'test.t1' (errno: 138)
|
||||||
CREATE TABLE t1
|
CREATE TABLE t1
|
||||||
( a INT KEY,
|
( a INT KEY,
|
||||||
|
@ -11,7 +11,7 @@ ERROR HY000: Failed to create LOGFILE GROUP
|
|||||||
show warnings;
|
show warnings;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
||||||
Error 1516 Failed to create LOGFILE GROUP
|
Error 1525 Failed to create LOGFILE GROUP
|
||||||
create table t1 (a int key, b int unique, c int) engine ndb;
|
create table t1 (a int key, b int unique, c int) engine ndb;
|
||||||
CREATE LOGFILE GROUP lg1
|
CREATE LOGFILE GROUP lg1
|
||||||
ADD UNDOFILE 'undofile.dat'
|
ADD UNDOFILE 'undofile.dat'
|
||||||
@ -27,14 +27,14 @@ ERROR HY000: Failed to create TABLESPACE
|
|||||||
show warnings;
|
show warnings;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
||||||
Error 1516 Failed to create TABLESPACE
|
Error 1525 Failed to create TABLESPACE
|
||||||
DROP LOGFILE GROUP lg1
|
DROP LOGFILE GROUP lg1
|
||||||
ENGINE =NDB;
|
ENGINE =NDB;
|
||||||
ERROR HY000: Failed to drop LOGFILE GROUP
|
ERROR HY000: Failed to drop LOGFILE GROUP
|
||||||
show warnings;
|
show warnings;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
||||||
Error 1517 Failed to drop LOGFILE GROUP
|
Error 1526 Failed to drop LOGFILE GROUP
|
||||||
CREATE TABLESPACE ts1
|
CREATE TABLESPACE ts1
|
||||||
ADD DATAFILE 'datafile.dat'
|
ADD DATAFILE 'datafile.dat'
|
||||||
USE LOGFILE GROUP lg1
|
USE LOGFILE GROUP lg1
|
||||||
@ -47,7 +47,7 @@ ERROR HY000: Failed to alter: DROP DATAFILE
|
|||||||
show warnings;
|
show warnings;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
||||||
Error 1521 Failed to alter: DROP DATAFILE
|
Error 1530 Failed to alter: DROP DATAFILE
|
||||||
ALTER TABLESPACE ts1
|
ALTER TABLESPACE ts1
|
||||||
DROP DATAFILE 'datafile.dat'
|
DROP DATAFILE 'datafile.dat'
|
||||||
ENGINE NDB;
|
ENGINE NDB;
|
||||||
@ -57,7 +57,7 @@ ERROR HY000: Failed to drop TABLESPACE
|
|||||||
show warnings;
|
show warnings;
|
||||||
Level Code Message
|
Level Code Message
|
||||||
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
Error 1296 Got error 299 'Operation not allowed or aborted due to single user mode' from NDB
|
||||||
Error 1517 Failed to drop TABLESPACE
|
Error 1526 Failed to drop TABLESPACE
|
||||||
DROP TABLESPACE ts1
|
DROP TABLESPACE ts1
|
||||||
ENGINE NDB;
|
ENGINE NDB;
|
||||||
DROP LOGFILE GROUP lg1
|
DROP LOGFILE GROUP lg1
|
||||||
|
@ -25,7 +25,7 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
|
|||||||
create table t1 (a int key, b int unique, c int) engine ndb;
|
create table t1 (a int key, b int unique, c int) engine ndb;
|
||||||
# Bug #27712 Single user mode. Creating logfile group and tablespace is allowed
|
# Bug #27712 Single user mode. Creating logfile group and tablespace is allowed
|
||||||
# - before bug fix these would succeed
|
# - before bug fix these would succeed
|
||||||
--error 1516
|
--error ER_CREATE_FILEGROUP_FAILED
|
||||||
CREATE LOGFILE GROUP lg1
|
CREATE LOGFILE GROUP lg1
|
||||||
ADD UNDOFILE 'undofile.dat'
|
ADD UNDOFILE 'undofile.dat'
|
||||||
INITIAL_SIZE 16M
|
INITIAL_SIZE 16M
|
||||||
|
@ -72,7 +72,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -90,7 +90,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -134,7 +134,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -152,7 +152,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -196,7 +196,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
Last_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -214,7 +214,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
Last_SQL_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -257,7 +257,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
Last_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -275,7 +275,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
Last_SQL_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
|
||||||
*** Drop t6 ***
|
*** Drop t6 ***
|
||||||
@ -369,7 +369,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -387,7 +387,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -430,7 +430,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -448,7 +448,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -755,7 +755,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -773,7 +773,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
|
@ -72,7 +72,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -90,7 +90,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -134,7 +134,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -152,7 +152,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -196,7 +196,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
Last_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -214,7 +214,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
Last_SQL_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -257,7 +257,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
Last_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -275,7 +275,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
Last_SQL_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
|
||||||
*** Drop t6 ***
|
*** Drop t6 ***
|
||||||
@ -369,7 +369,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -387,7 +387,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -430,7 +430,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -448,7 +448,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -755,7 +755,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -773,7 +773,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
|
@ -44,7 +44,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1586
|
Last_Errno 1587
|
||||||
Last_Error The incident LOST_EVENTS occured on the master. Message: <none>
|
Last_Error The incident LOST_EVENTS occured on the master. Message: <none>
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -62,7 +62,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1586
|
Last_SQL_Errno 1587
|
||||||
Last_SQL_Error The incident LOST_EVENTS occured on the master. Message: <none>
|
Last_SQL_Error The incident LOST_EVENTS occured on the master. Message: <none>
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
|
@ -165,7 +165,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Table width mismatch - received 2 columns, test.t2 has 1 columns
|
Last_Error Table definition on master and slave does not match: Table width mismatch - received 2 columns, test.t2 has 1 columns
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -183,7 +183,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Table width mismatch - received 2 columns, test.t2 has 1 columns
|
Last_SQL_Error Table definition on master and slave does not match: Table width mismatch - received 2 columns, test.t2 has 1 columns
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -208,7 +208,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -226,7 +226,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -251,7 +251,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
|
Last_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -269,7 +269,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
|
Last_SQL_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -294,7 +294,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
|
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -312,7 +312,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
|
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
|
@ -165,7 +165,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Table width mismatch - received 2 columns, test.t2 has 1 columns
|
Last_Error Table definition on master and slave does not match: Table width mismatch - received 2 columns, test.t2 has 1 columns
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -183,7 +183,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Table width mismatch - received 2 columns, test.t2 has 1 columns
|
Last_SQL_Error Table definition on master and slave does not match: Table width mismatch - received 2 columns, test.t2 has 1 columns
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -208,7 +208,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -226,7 +226,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 3, test.t4 has type 4
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -251,7 +251,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
|
Last_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -269,7 +269,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
|
Last_SQL_Error Table definition on master and slave does not match: Column 1 type mismatch - received type 3, test.t5 has type 4
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -294,7 +294,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
|
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -312,7 +312,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
|
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 3, test.t6 has type 4
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
|
@ -193,7 +193,7 @@ end|
|
|||||||
ERROR HY000: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
|
ERROR HY000: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
|
||||||
set global log_bin_trust_routine_creators=1;
|
set global log_bin_trust_routine_creators=1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1543 The syntax 'log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 5.2. Please use 'log_bin_trust_function_creators' instead
|
Warning 1287 The syntax 'log_bin_trust_routine_creators' is deprecated and will be removed in MySQL 5.2. Please use 'log_bin_trust_function_creators' instead
|
||||||
set global log_bin_trust_function_creators=0;
|
set global log_bin_trust_function_creators=0;
|
||||||
set global log_bin_trust_function_creators=1;
|
set global log_bin_trust_function_creators=1;
|
||||||
set global log_bin_trust_function_creators=1;
|
set global log_bin_trust_function_creators=1;
|
||||||
|
@ -72,7 +72,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -90,7 +90,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 252, test.t3 has type 3
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -134,7 +134,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -152,7 +152,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 246, test.t4 has type 3
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -196,7 +196,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
Last_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -214,7 +214,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
Last_SQL_Error Table definition on master and slave does not match: Column 5 type mismatch - received type 4, test.t5 has type 246
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -257,7 +257,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
Last_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -275,7 +275,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
Last_SQL_Error Table definition on master and slave does not match: Column 3 type mismatch - received type 16, test.t6 has type 3
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=3;
|
||||||
*** Drop t6 ***
|
*** Drop t6 ***
|
||||||
@ -369,7 +369,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -387,7 +387,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 254, test.t10 has type 5
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -430,7 +430,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
Last_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -448,7 +448,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
Last_SQL_Error Table definition on master and slave does not match: Column 2 type mismatch - received type 15, test.t11 has type 252
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
@ -756,7 +756,7 @@ Replicate_Do_Table
|
|||||||
Replicate_Ignore_Table
|
Replicate_Ignore_Table
|
||||||
Replicate_Wild_Do_Table
|
Replicate_Wild_Do_Table
|
||||||
Replicate_Wild_Ignore_Table
|
Replicate_Wild_Ignore_Table
|
||||||
Last_Errno 1523
|
Last_Errno 1532
|
||||||
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
Last_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
||||||
Skip_Counter 0
|
Skip_Counter 0
|
||||||
Exec_Master_Log_Pos #
|
Exec_Master_Log_Pos #
|
||||||
@ -774,7 +774,7 @@ Seconds_Behind_Master #
|
|||||||
Master_SSL_Verify_Server_Cert No
|
Master_SSL_Verify_Server_Cert No
|
||||||
Last_IO_Errno 0
|
Last_IO_Errno 0
|
||||||
Last_IO_Error
|
Last_IO_Error
|
||||||
Last_SQL_Errno 1523
|
Last_SQL_Errno 1532
|
||||||
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
Last_SQL_Error Table definition on master and slave does not match: Column 0 type mismatch - received type 8, test.t17 has type 2
|
||||||
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=2;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
|
25
mysql-test/t/archive-big.test
Normal file
25
mysql-test/t/archive-big.test
Normal file
File diff suppressed because one or more lines are too long
@ -1550,3 +1550,12 @@ insert into t1 values (1);
|
|||||||
repair table t1 use_frm;
|
repair table t1 use_frm;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#29207 - archive table reported as corrupt by check table
|
||||||
|
#
|
||||||
|
create table t1(a longblob) engine=archive;
|
||||||
|
insert into t1 set a='';
|
||||||
|
insert into t1 set a='a';
|
||||||
|
check table t1 extended;
|
||||||
|
drop table t1;
|
||||||
|
@ -307,7 +307,7 @@ select -(9223372036854775808);
|
|||||||
select -((9223372036854775808));
|
select -((9223372036854775808));
|
||||||
select -(-(9223372036854775808));
|
select -(-(9223372036854775808));
|
||||||
--disable_metadata
|
--disable_metadata
|
||||||
--endble_ps_protocol
|
--enable_ps_protocol
|
||||||
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
|
select --9223372036854775808, ---9223372036854775808, ----9223372036854775808;
|
||||||
select -(-9223372036854775808), -(-(-9223372036854775808));
|
select -(-9223372036854775808), -(-(-9223372036854775808));
|
||||||
|
|
||||||
|
@ -1675,6 +1675,17 @@ insert into bug21328 values (1,NULL,NULL);
|
|||||||
alter table bug21328 engine=myisam;
|
alter table bug21328 engine=myisam;
|
||||||
drop table bug21328;
|
drop table bug21328;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#28971 - ALTER TABLE followed by UPDATE for a CSV table make server
|
||||||
|
# crash
|
||||||
|
#
|
||||||
|
create table t1(a blob, b int) engine=csv;
|
||||||
|
insert into t1 values('a', 1);
|
||||||
|
flush tables;
|
||||||
|
update t1 set b=2;
|
||||||
|
select * from t1;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug #29353: negative values
|
# Bug #29353: negative values
|
||||||
#
|
#
|
||||||
|
@ -24,3 +24,4 @@ ctype_big5 : BUG#26711 2007-06-21 Lars Test has never worked on Do
|
|||||||
|
|
||||||
|
|
||||||
mysql_upgrade : Bug#28560 test links to /usr/local/mysql/lib libraries, causes non-determinism and failures on ABI breakage
|
mysql_upgrade : Bug#28560 test links to /usr/local/mysql/lib libraries, causes non-determinism and failures on ABI breakage
|
||||||
|
federated_innodb : Bug#29522 failed assertion in binlog_close_connection()
|
||||||
|
@ -1630,4 +1630,57 @@ connection slave;
|
|||||||
drop table federated.t1;
|
drop table federated.t1;
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#21019 Federated Engine does not support REPLACE/INSERT IGNORE/UPDATE IGNORE
|
||||||
|
#
|
||||||
|
connection slave;
|
||||||
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
DEFAULT CHARSET=utf8;
|
||||||
|
connection master;
|
||||||
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
|
eval create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
ENGINE=FEDERATED
|
||||||
|
connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1'
|
||||||
|
DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
insert ignore into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
|
||||||
|
select * from federated.t1;
|
||||||
|
|
||||||
|
truncate federated.t1;
|
||||||
|
replace into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
|
||||||
|
select * from federated.t1;
|
||||||
|
|
||||||
|
update ignore federated.t1 set a=a+1;
|
||||||
|
select * from federated.t1;
|
||||||
|
|
||||||
|
drop table federated.t1;
|
||||||
|
connection slave;
|
||||||
|
drop table federated.t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#25511 Federated Insert failures.
|
||||||
|
#
|
||||||
|
# When the user performs a INSERT...ON DUPLICATE KEY UPDATE, we want
|
||||||
|
# it to fail if a duplicate key exists instead of ignoring it.
|
||||||
|
#
|
||||||
|
connection slave;
|
||||||
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
DEFAULT CHARSET=utf8;
|
||||||
|
connection master;
|
||||||
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
|
eval create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
ENGINE=FEDERATED
|
||||||
|
connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1'
|
||||||
|
DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
--error ER_DUP_KEY
|
||||||
|
insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe")
|
||||||
|
on duplicate key update a=a+100;
|
||||||
|
select * from federated.t1;
|
||||||
|
|
||||||
|
drop table federated.t1;
|
||||||
|
connection slave;
|
||||||
|
drop table federated.t1;
|
||||||
|
|
||||||
|
|
||||||
source include/federated_cleanup.inc;
|
source include/federated_cleanup.inc;
|
||||||
|
1
mysql-test/t/federated_innodb-slave.opt
Normal file
1
mysql-test/t/federated_innodb-slave.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--innodb
|
34
mysql-test/t/federated_innodb.test
Normal file
34
mysql-test/t/federated_innodb.test
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
source include/federated.inc;
|
||||||
|
source include/have_innodb.inc;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#25513 Federated transaction failures
|
||||||
|
#
|
||||||
|
connection slave;
|
||||||
|
create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
engine=myisam;
|
||||||
|
connection master;
|
||||||
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
|
eval create table federated.t1 (a int primary key, b varchar(64))
|
||||||
|
engine=federated
|
||||||
|
connection='mysql://root@127.0.0.1:$SLAVE_MYPORT/federated/t1';
|
||||||
|
|
||||||
|
--error ER_DUP_KEY
|
||||||
|
insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
|
||||||
|
select * from federated.t1;
|
||||||
|
|
||||||
|
connection slave;
|
||||||
|
truncate federated.t1;
|
||||||
|
alter table federated.t1 engine=innodb;
|
||||||
|
connection master;
|
||||||
|
|
||||||
|
--error ER_DUP_KEY
|
||||||
|
insert into federated.t1 values (1,"Larry"), (2,"Curly"), (1,"Moe");
|
||||||
|
select * from federated.t1;
|
||||||
|
|
||||||
|
drop table federated.t1;
|
||||||
|
connection slave;
|
||||||
|
drop table federated.t1;
|
||||||
|
|
||||||
|
|
||||||
|
source include/federated_cleanup.inc;
|
24
mysql-test/t/fulltext3.test
Normal file
24
mysql-test/t/fulltext3.test
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
--source include/have_gbk.inc
|
||||||
|
#
|
||||||
|
# test of new fulltext search features
|
||||||
|
#
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
DROP TABLE IF EXISTS t1;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# BUG#29299 - repeatable myisam fulltext index corruption
|
||||||
|
#
|
||||||
|
CREATE TABLE t1(a VARCHAR(255) CHARACTER SET gbk, FULLTEXT(a));
|
||||||
|
SET NAMES utf8;
|
||||||
|
INSERT INTO t1 VALUES(0xF043616161),(0xBEF361616197C22061616161);
|
||||||
|
SELECT HEX(a) FROM t1 WHERE MATCH(a) AGAINST(0x97C22061616161 IN BOOLEAN MODE);
|
||||||
|
DELETE FROM t1 LIMIT 1;
|
||||||
|
CHECK TABLE t1;
|
||||||
|
SET NAMES latin1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
# End of 5.0 tests
|
||||||
|
|
@ -571,6 +571,26 @@ create table t2 as select f2 as a from t1 union select f3 from t1;
|
|||||||
desc t2;
|
desc t2;
|
||||||
select AsText(a) from t2;
|
select AsText(a) from t2;
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #29166: MYsql crash when query is run
|
||||||
|
#
|
||||||
|
|
||||||
|
# The test query itself is not logged : too large output.
|
||||||
|
# The real test is the second query : see if the first hasn't crashed the
|
||||||
|
# server
|
||||||
|
--disable_query_log
|
||||||
|
--disable_result_log
|
||||||
|
SELECT AsText(GeometryFromText(CONCAT(
|
||||||
|
'MULTIPOLYGON(((',
|
||||||
|
REPEAT ('-0.00000000001234567890123456789012 -0.123456789012345678,', 1000),
|
||||||
|
'-0.00000000001234567890123456789012 -0.123456789012345678',
|
||||||
|
')))'
|
||||||
|
))) AS a;
|
||||||
|
--enable_result_log
|
||||||
|
--enable_query_log
|
||||||
|
SELECT 1;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
|
|
||||||
|
@ -1271,6 +1271,6 @@ grant select on test.* to юзер_юзер@localhost;
|
|||||||
--exec $MYSQL --default-character-set=utf8 --user=юзер_юзер -e "select user()"
|
--exec $MYSQL --default-character-set=utf8 --user=юзер_юзер -e "select user()"
|
||||||
revoke all on test.* from юзер_юзер@localhost;
|
revoke all on test.* from юзер_юзер@localhost;
|
||||||
drop user юзер_юзер@localhost;
|
drop user юзер_юзер@localhost;
|
||||||
--error 1573
|
--error ER_WRONG_STRING_LENGTH
|
||||||
grant select on test.* to очень_длинный_юзер@localhost;
|
grant select on test.* to очень_длинный_юзер@localhost;
|
||||||
set names default;
|
set names default;
|
||||||
|
@ -67,6 +67,41 @@ load data infile '../std_data_ln/loaddata_dq.dat' into table t1 fields terminate
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #29294 SELECT INTO OUTFILE/LOAD DATA INFILE with special
|
||||||
|
# characters in the FIELDS ENCLOSED BY clause
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
c1 VARCHAR(255)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
id INT,
|
||||||
|
c2 VARCHAR(255)
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO t1 (c1) VALUES
|
||||||
|
('r'), ('rr'), ('rrr'), ('rrrr'),
|
||||||
|
('.r'), ('.rr'), ('.rrr'), ('.rrrr'),
|
||||||
|
('r.'), ('rr.'), ('rrr.'), ('rrrr.'),
|
||||||
|
('.r.'), ('.rr.'), ('.rrr.'), ('.rrrr.');
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
--exec rm -f $MYSQLTEST_VARDIR/tmp/t1
|
||||||
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||||
|
eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY 'r' FROM t1;
|
||||||
|
--exec cat $MYSQLTEST_VARDIR/tmp/t1
|
||||||
|
|
||||||
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||||
|
eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t2 FIELDS ENCLOSED BY 'r';
|
||||||
|
SELECT t1.id, c1, c2 FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE c1 != c2;
|
||||||
|
SELECT t1.id, c1, c2 FROM t1 RIGHT JOIN t2 ON t1.id=t2.id WHERE c1 != c2;
|
||||||
|
|
||||||
|
--exec rm $MYSQLTEST_VARDIR/tmp/t1
|
||||||
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# End of 4.1 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -182,6 +217,31 @@ select f1 from t1 where f2 <> '0000-00-00 00:00:00' order by f1;
|
|||||||
--exec rm $MYSQLTEST_VARDIR/tmp/t2
|
--exec rm $MYSQLTEST_VARDIR/tmp/t2
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug#29442: SELECT INTO OUTFILE FIELDS ENCLOSED BY digit, minus sign etc
|
||||||
|
# corrupts non-string fields containing this character.
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (c1 INT, c2 TIMESTAMP, c3 REAL, c4 DOUBLE);
|
||||||
|
|
||||||
|
INSERT INTO t1 (c1, c2, c3, c4) VALUES (10, '1970-02-01 01:02:03', 1.1E-100, 1.1E+100);
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
--exec rm -f $MYSQLTEST_VARDIR/tmp/t1
|
||||||
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||||
|
eval SELECT * INTO OUTFILE '$MYSQLTEST_VARDIR/tmp/t1' FIELDS ENCLOSED BY '-' FROM t1;
|
||||||
|
--exec cat $MYSQLTEST_VARDIR/tmp/t1
|
||||||
|
--exec echo EOF
|
||||||
|
|
||||||
|
TRUNCATE t1;
|
||||||
|
|
||||||
|
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||||
|
eval LOAD DATA INFILE '$MYSQLTEST_VARDIR/tmp/t1' INTO TABLE t1 FIELDS ENCLOSED BY '-';
|
||||||
|
SELECT * FROM t1;
|
||||||
|
|
||||||
|
--exec rm $MYSQLTEST_VARDIR/tmp/t1
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
# End of 5.0 tests
|
# End of 5.0 tests
|
||||||
|
|
||||||
|
|
||||||
|
@ -1496,17 +1496,7 @@ SET GLOBAL general_log = default;
|
|||||||
|
|
||||||
#
|
#
|
||||||
# Bug #27084 partitioning by list seems failing when using case
|
# Bug #27084 partitioning by list seems failing when using case
|
||||||
|
# BUG #18198: Case no longer supported, test case removed
|
||||||
#
|
#
|
||||||
CREATE TABLE `t1` ( `a` varchar(1)) ENGINE=MyISAM
|
|
||||||
PARTITION BY LIST (CASE a WHEN 'a' THEN 1
|
|
||||||
WHEN 'b' THEN 2
|
|
||||||
WHEN 'c' THEN 3
|
|
||||||
END) (
|
|
||||||
PARTITION a VALUES IN (1),
|
|
||||||
PARTITION b VALUES IN (2),
|
|
||||||
PARTITION c VALUES IN (3)
|
|
||||||
);
|
|
||||||
|
|
||||||
DROP TABLE t1;
|
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
--echo End of 5.1 tests
|
||||||
|
219
mysql-test/t/partition_bug18198.test
Normal file
219
mysql-test/t/partition_bug18198.test
Normal file
@ -0,0 +1,219 @@
|
|||||||
|
-- source include/have_partition.inc
|
||||||
|
--disable_warnings
|
||||||
|
drop table if exists t1;
|
||||||
|
--enable_warnings
|
||||||
|
|
||||||
|
create table t1 (col1 datetime)
|
||||||
|
partition by range(datediff(col1,col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(greatest(col1,10))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(isnull(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(least(col1,12))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(case when col1>0 then 10 else 20 end)
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(ifnull(col1,5))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(nullif(col1,5))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(bit_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(bit_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(char_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(char_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(character_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(find_in_set(col1,1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(find_in_set(col1,'1'))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(instr(col1,3))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(instr(col1,'3'))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(locate(1,col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(locate(1,col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(octet_length(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(position(1 in col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(position(1 in col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 char(5))
|
||||||
|
partition by range(strcmp(col1,2))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(strcmp(col1,2))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(crc32(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(round(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(sign(col1))
|
||||||
|
(partition p0 values less than (2), partition p1 values less than (6));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 datetime)
|
||||||
|
partition by range(period_add(col1,5))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 datetime, col2 datetime)
|
||||||
|
partition by range(period_diff(col1,col2))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int, col2 int)
|
||||||
|
partition by range(period_diff(col1,col2))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 datetime)
|
||||||
|
partition by range(timestampdiff(day,5,col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 date)
|
||||||
|
partition by range(unix_timestamp(col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 datetime)
|
||||||
|
partition by range(week(col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 varchar(25))
|
||||||
|
partition by range(cast(col1 as signed))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 varchar(25))
|
||||||
|
partition by range(convert(col1,unsigned))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 | 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 & 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 ^ 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 << 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(col1 >> 20)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(~col1)
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(bit_count(col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (col1 int)
|
||||||
|
partition by range(inet_aton(col1))
|
||||||
|
(partition p0 values less than (10), partition p1 values less than (30));
|
@ -19,3 +19,11 @@ flush tables;
|
|||||||
set names latin1;
|
set names latin1;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (a varchar(1), primary key (a))
|
||||||
|
partition by list (ascii(a))
|
||||||
|
(partition p1 values in (65));
|
||||||
|
#insert into t1 values ('A');
|
||||||
|
#replace into t1 values ('A');
|
||||||
|
#drop table t1;
|
||||||
|
@ -33,7 +33,7 @@ partitions 2;
|
|||||||
#
|
#
|
||||||
# Partition by key list, wrong result type
|
# Partition by key list, wrong result type
|
||||||
#
|
#
|
||||||
--error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
|
--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a int not null,
|
a int not null,
|
||||||
b int not null,
|
b int not null,
|
||||||
@ -109,7 +109,7 @@ partitions 3
|
|||||||
#
|
#
|
||||||
# Partition by hash, invalid result type
|
# Partition by hash, invalid result type
|
||||||
#
|
#
|
||||||
--error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
|
--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a int not null,
|
a int not null,
|
||||||
b int not null,
|
b int not null,
|
||||||
@ -533,7 +533,7 @@ partitions 2
|
|||||||
#
|
#
|
||||||
# Partition by range, wrong result type of partition function
|
# Partition by range, wrong result type of partition function
|
||||||
#
|
#
|
||||||
--error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
|
--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
a int not null,
|
a int not null,
|
||||||
b int not null,
|
b int not null,
|
||||||
@ -769,10 +769,11 @@ partition by range (a)
|
|||||||
#
|
#
|
||||||
# Bug 18198 Partitions: Verify that erroneus partition functions doesn't work
|
# Bug 18198 Partitions: Verify that erroneus partition functions doesn't work
|
||||||
#
|
#
|
||||||
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
create table t1 (v varchar(12))
|
create table t1 (v varchar(12))
|
||||||
partition by range (ascii(v))
|
partition by range (ascii(v))
|
||||||
(partition p0 values less than (10));
|
(partition p0 values less than (10));
|
||||||
drop table t1;
|
#drop table t1;
|
||||||
|
|
||||||
-- error 1064
|
-- error 1064
|
||||||
create table t1 (a int)
|
create table t1 (a int)
|
||||||
@ -790,7 +791,7 @@ partition by hash (extract(hour from convert_tz(a, '+00:00', '+00:00')));
|
|||||||
create table t1 (a int)
|
create table t1 (a int)
|
||||||
partition by range (a + (select count(*) from t1))
|
partition by range (a + (select count(*) from t1))
|
||||||
(partition p1 values less than (1));
|
(partition p1 values less than (1));
|
||||||
-- error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
|
-- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
create table t1 (a char(10))
|
create table t1 (a char(10))
|
||||||
partition by hash (extractvalue(a,'a'));
|
partition by hash (extractvalue(a,'a'));
|
||||||
|
|
||||||
|
@ -63,13 +63,13 @@ insert into t1 values (1);
|
|||||||
grant alter on mysqltest_1.* to mysqltest_1@localhost;
|
grant alter on mysqltest_1.* to mysqltest_1@localhost;
|
||||||
connect (conn4,localhost,mysqltest_1,,mysqltest_1);
|
connect (conn4,localhost,mysqltest_1,,mysqltest_1);
|
||||||
connection conn4;
|
connection conn4;
|
||||||
--error 1514
|
--error ER_NO_PARTITION_FOR_GIVEN_VALUE
|
||||||
alter table t1 partition by list (s1) (partition p1 values in (2));
|
alter table t1 partition by list (s1) (partition p1 values in (2));
|
||||||
connection default;
|
connection default;
|
||||||
grant select, alter on mysqltest_1.* to mysqltest_1@localhost;
|
grant select, alter on mysqltest_1.* to mysqltest_1@localhost;
|
||||||
disconnect conn4;
|
disconnect conn4;
|
||||||
connect (conn5,localhost,mysqltest_1,,mysqltest_1);
|
connect (conn5,localhost,mysqltest_1,,mysqltest_1);
|
||||||
--error 1514
|
--error ER_NO_PARTITION_FOR_GIVEN_VALUE
|
||||||
alter table t1 partition by list (s1) (partition p1 values in (2));
|
alter table t1 partition by list (s1) (partition p1 values in (2));
|
||||||
disconnect conn5;
|
disconnect conn5;
|
||||||
connection default;
|
connection default;
|
||||||
|
@ -9,18 +9,6 @@
|
|||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
--enable_warnings
|
--enable_warnings
|
||||||
|
|
||||||
#
|
|
||||||
# BUG 18198: Partition functions handling
|
|
||||||
#
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin)
|
|
||||||
partition by hash(length(a))
|
|
||||||
partitions 10;
|
|
||||||
insert into t1 values (''),(' '),('a'),('a '),('a ');
|
|
||||||
explain partitions select * from t1 where a='a ';
|
|
||||||
explain partitions select * from t1 where a='a';
|
|
||||||
explain partitions select * from t1 where a='a ' OR a='a';
|
|
||||||
drop table t1;
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# More partition pruning tests, especially on interval walking
|
# More partition pruning tests, especially on interval walking
|
||||||
#
|
#
|
||||||
|
@ -179,4 +179,8 @@ insert into t1 values (null);
|
|||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
|
||||||
|
create table t1 (a char(1))
|
||||||
|
partition by list (ascii(ucase(a)))
|
||||||
|
(partition p1 values in (2));
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ subpartition sp01, subpartition sp02));
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
CREATE TABLE t1 (f_date DATE, f_varchar VARCHAR(30))
|
CREATE TABLE t1 (f_date DATE, f_varchar VARCHAR(30))
|
||||||
PARTITION BY HASH(CAST(YEAR(f_date) AS SIGNED INTEGER)) PARTITIONS 2;
|
PARTITION BY HASH(YEAR(f_date)) PARTITIONS 2;
|
||||||
SHOW CREATE TABLE t1;
|
SHOW CREATE TABLE t1;
|
||||||
|
|
||||||
--replace_result $MYSQLTEST_VARDIR "hello"
|
--replace_result $MYSQLTEST_VARDIR "hello"
|
||||||
|
@ -538,18 +538,17 @@ select * from t1 where f_int1 between 5 and 15 order by f_int1;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
# part2: bug in pruning code
|
# part2: bug in pruning code
|
||||||
create table t1 (a char(10) binary)
|
#create table t1 (a char(10) binary)
|
||||||
partition by list(length(a))
|
#partition by list(ascii(a))
|
||||||
(partition p1 values in (1),
|
# (partition p1 values in (ascii('a')),
|
||||||
partition p2 values in (2),
|
# partition p2 values in (ascii('b')),
|
||||||
partition p3 values in (3),
|
# partition p3 values in (ascii('c')),
|
||||||
partition p4 values in (4),
|
# partition p4 values in (ascii('d')),
|
||||||
partition p5 values in (5)
|
# partition p5 values in (ascii('e')));
|
||||||
);
|
#insert into t1 values ('a'),('bb'),('ccc'),('dddd'),('eeEee');
|
||||||
insert into t1 values ('a'),('bb'),('ccc'),('dddd'),('eeEee');
|
#select * from t1 where a>='a' and a <= 'dddd';
|
||||||
select * from t1 where a>='a' and a <= 'dddd';
|
#explain partitions select * from t1 where a>='a' and a <= 'dddd';
|
||||||
explain partitions select * from t1 where a>='a' and a <= 'dddd';
|
#drop table t1;
|
||||||
drop table t1;
|
|
||||||
|
|
||||||
# BUG#18659: Assertion failure when subpartitioning is used and partition is
|
# BUG#18659: Assertion failure when subpartitioning is used and partition is
|
||||||
# "IS NULL"
|
# "IS NULL"
|
||||||
@ -692,19 +691,46 @@ explain partitions select * from t1 where a = 18446744073709551000;
|
|||||||
explain partitions select * from t1 where a = 18446744073709551613;
|
explain partitions select * from t1 where a = 18446744073709551613;
|
||||||
explain partitions select * from t1 where a = 18446744073709551614;
|
explain partitions select * from t1 where a = 18446744073709551614;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# Test all variants of usage for interval_via_mapping
|
||||||
|
# and interval_via_walking
|
||||||
|
#
|
||||||
|
# t1 will use interval_via_mapping since it uses a
|
||||||
|
# monotonic function, whereas t2 will use
|
||||||
|
# interval_via_walking since the intervals are short
|
||||||
|
# and the function isn't monotonic (it is, but it isn't
|
||||||
|
# discovered in this version).
|
||||||
|
#
|
||||||
|
create table t1 (a int)
|
||||||
|
partition by range(a) (
|
||||||
|
partition p0 values less than (64),
|
||||||
|
partition p1 values less than (128),
|
||||||
|
partition p2 values less than (255)
|
||||||
|
);
|
||||||
|
|
||||||
create table t1 (a int)
|
create table t2 (a int)
|
||||||
partition by range((a & 0xFF) << 56) (
|
partition by range(a+0) (
|
||||||
partition p0 values less than (0x40 << 56),
|
partition p0 values less than (64),
|
||||||
partition p1 values less than (0x80 << 56),
|
partition p1 values less than (128),
|
||||||
partition p2 values less than (0xFF << 56)
|
partition p2 values less than (255)
|
||||||
);
|
);
|
||||||
|
|
||||||
insert into t1 values (0x20), (0x20), (0x41), (0x41), (0xFE), (0xFE);
|
insert into t1 values (0x20), (0x20), (0x41), (0x41), (0xFE), (0xFE);
|
||||||
|
insert into t2 values (0x20), (0x20), (0x41), (0x41), (0xFE), (0xFE);
|
||||||
explain partitions select * from t1 where a=0;
|
explain partitions select * from t1 where a=0;
|
||||||
|
explain partitions select * from t2 where a=0;
|
||||||
explain partitions select * from t1 where a=0xFE;
|
explain partitions select * from t1 where a=0xFE;
|
||||||
explain partitions select * from t1 where a>0xFE and a<= 0xFF;
|
explain partitions select * from t2 where a=0xFE;
|
||||||
|
explain partitions select * from t1 where a > 0xFE AND a <= 0xFF;
|
||||||
|
explain partitions select * from t2 where a > 0xFE AND a <= 0xFF;
|
||||||
|
explain partitions select * from t1 where a >= 0xFE AND a <= 0xFF;
|
||||||
|
explain partitions select * from t2 where a >= 0xFE AND a <= 0xFF;
|
||||||
|
explain partitions select * from t1 where a < 64 AND a >= 63;
|
||||||
|
explain partitions select * from t2 where a < 64 AND a >= 63;
|
||||||
|
explain partitions select * from t1 where a <= 64 AND a >= 63;
|
||||||
|
explain partitions select * from t2 where a <= 64 AND a >= 63;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
drop table t2;
|
||||||
|
|
||||||
create table t1(a bigint unsigned not null) partition by range(a+0) (
|
create table t1(a bigint unsigned not null) partition by range(a+0) (
|
||||||
partition p1 values less than (10),
|
partition p1 values less than (10),
|
||||||
|
@ -12,45 +12,45 @@ drop table if exists t1;
|
|||||||
#
|
#
|
||||||
# BUG 18198: Various tests for partition functions
|
# BUG 18198: Various tests for partition functions
|
||||||
#
|
#
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin, b int)
|
#create table t1 (a varchar(10) charset latin1 collate latin1_bin, b int)
|
||||||
partition by range (length(a) * b)
|
#partition by range (ascii(a) * b)
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
#(partition p0 values less than (2), partition p1 values less than (4000));
|
||||||
insert into t1 values ('a ', 2),('a',3);
|
#insert into t1 values ('a ', 2),('a',3);
|
||||||
drop table t1;
|
#drop table t1;
|
||||||
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin, b int)
|
#create table t1 (a varchar(10) charset latin1 collate latin1_bin, b int)
|
||||||
partition by range (b* length(a) * b)
|
#partition by range (b* ascii(a) * b)
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
#(partition p0 values less than (2), partition p1 values less than (4000));
|
||||||
insert into t1 values ('a ', 2),('a',3);
|
#insert into t1 values ('a ', 2),('a',3);
|
||||||
drop table t1;
|
#drop table t1;
|
||||||
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
#create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
||||||
b varchar(10) charset latin1 collate latin1_bin)
|
# b varchar(10) charset latin1 collate latin1_bin)
|
||||||
partition by range (length(b) * length(a))
|
#partition by range (ascii(b) * ascii(a))
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
#(partition p0 values less than (2), partition p1 values less than (40000));
|
||||||
insert into t1 values ('a ', 'b '),('a','b');
|
#insert into t1 values ('a ', 'b '),('a','b');
|
||||||
drop table t1;
|
#drop table t1;
|
||||||
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
#create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
||||||
b varchar(10) charset latin1 collate latin1_bin)
|
# b varchar(10) charset latin1 collate latin1_bin)
|
||||||
partition by range (length(a) * length(b))
|
#partition by range (ascii(a) * ascii(b))
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
#(partition p0 values less than (2), partition p1 values less than (40000));
|
||||||
insert into t1 values ('a ', 'b '),('a','b');
|
#insert into t1 values ('a ', 'b '),('a','b');
|
||||||
drop table t1;
|
#drop table t1;
|
||||||
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
#create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
||||||
b varchar(10) charset latin1 collate latin1_bin, c int)
|
# b varchar(10) charset latin1 collate latin1_bin, c int)
|
||||||
partition by range (length(a) * c)
|
#partition by range (ascii(a) * c)
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
#(partition p0 values less than (2), partition p1 values less than (4000));
|
||||||
insert into t1 values ('a ', 'b ', 2),('a','b', 3);
|
#insert into t1 values ('a ', 'b ', 2),('a','b', 3);
|
||||||
drop table t1;
|
#drop table t1;
|
||||||
|
|
||||||
create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
#create table t1 (a varchar(10) charset latin1 collate latin1_bin,
|
||||||
b varchar(10) charset latin1 collate latin1_bin, c int)
|
# b varchar(10) charset latin1 collate latin1_bin, c int)
|
||||||
partition by range (c * length(a))
|
#partition by range (c * ascii(a))
|
||||||
(partition p0 values less than (2), partition p1 values less than (400));
|
#(partition p0 values less than (2), partition p1 values less than (4000));
|
||||||
insert into t1 values ('a ', 'b ', 2),('a','b', 3);
|
#insert into t1 values ('a ', 'b ', 2),('a','b', 3);
|
||||||
drop table t1;
|
#drop table t1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# More checks for partition pruning
|
# More checks for partition pruning
|
||||||
@ -733,29 +733,27 @@ DROP TABLE t1;
|
|||||||
#
|
#
|
||||||
# Bug 18198: Try with a couple of cases using VARCHAR fields in
|
# Bug 18198: Try with a couple of cases using VARCHAR fields in
|
||||||
# partition function.
|
# partition function.
|
||||||
create table t1 (a varchar(20))
|
#create table t1 (a varchar(20))
|
||||||
partition by range (crc32(md5(a)))
|
#partition by range (ascii(a))
|
||||||
(partition p0 values less than (100),
|
#(partition p0 values less than (100),
|
||||||
partition p1 values less than maxvalue);
|
# partition p1 values less than maxvalue);
|
||||||
|
|
||||||
insert into t1 values ("12345678901234567890");
|
#insert into t1 values ("12345678901234567890");
|
||||||
insert into t1 values ("A2345678901234567890");
|
#insert into t1 values ("A2345678901234567890");
|
||||||
insert into t1 values ("B2345678901234567890");
|
#insert into t1 values ("B2345678901234567890");
|
||||||
insert into t1 values ("1234567890123456789");
|
#insert into t1 values ("1234567890123456789");
|
||||||
insert into t1 values ("1234567890123456");
|
#insert into t1 values ("1234567890123456");
|
||||||
select * from t1;
|
#select * from t1;
|
||||||
explain partitions select * from t1 where a = "12345678901234567890";
|
#explain partitions select * from t1 where a = "12345678901234567890";
|
||||||
explain partitions select * from t1 where a = "12345678901234567890" OR
|
#explain partitions select * from t1 where a = "12345678901234567890" OR
|
||||||
a = "A2345678901234567890" OR
|
# a = "A2345678901234567890" OR
|
||||||
a = "B2345678901234567890" OR
|
# a = "B2345678901234567890" OR
|
||||||
a = "C2345678901234567890";
|
# a = "C2345678901234567890";
|
||||||
explain partitions select * from t1 where a = "01234567890123456";
|
#explain partitions select * from t1 where a = "01234567890123456";
|
||||||
select * from t1 where a = "01234567890123456";
|
#select * from t1 where a = "01234567890123456";
|
||||||
select * from t1 where a = "12345678901234567890" OR
|
#select * from t1 where a = "12345678901234567890" OR
|
||||||
a = "A2345678901234567890" OR
|
# a = "A2345678901234567890" OR
|
||||||
a = "B2345678901234567890" OR
|
# a = "B2345678901234567890" OR
|
||||||
a = "C2345678901234567890";
|
# a = "C2345678901234567890";
|
||||||
select * from t1 where a = "12345678901234567890";
|
#select * from t1 where a = "12345678901234567890";
|
||||||
|
#drop table t1;
|
||||||
|
|
||||||
drop table t1;
|
|
||||||
|
@ -1172,6 +1172,39 @@ drop table t1;
|
|||||||
#
|
#
|
||||||
|
|
||||||
SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
|
SELECT 1.000000000000 * 99.999999999998 / 100 a,1.000000000000 * (99.999999999998 / 100) b;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #29415: CAST AS DECIMAL(P,S) with too big precision/scale
|
||||||
|
#
|
||||||
|
|
||||||
|
SELECT CAST(1 AS decimal(65,10));
|
||||||
|
--error ER_TOO_BIG_PRECISION
|
||||||
|
SELECT CAST(1 AS decimal(66,10));
|
||||||
|
|
||||||
|
SELECT CAST(1 AS decimal(65,30));
|
||||||
|
--error ER_TOO_BIG_SCALE
|
||||||
|
SELECT CAST(1 AS decimal(65,31));
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a int DEFAULT NULL, b int DEFAULT NULL);
|
||||||
|
INSERT INTO t1 VALUES (3,30), (1,10), (2,10);
|
||||||
|
SELECT a+CAST(1 AS decimal(65,30)) AS aa, SUM(b) FROM t1 GROUP BY aa;
|
||||||
|
--error ER_TOO_BIG_SCALE
|
||||||
|
SELECT a+CAST(1 AS decimal(65,31)) AS aa, SUM(b) FROM t1 GROUP BY aa;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #29417: assertion abort for a grouping query with decimal user variable
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a int DEFAULT NULL, b int DEFAULT NULL);
|
||||||
|
INSERT INTO t1 VALUES (3,30), (1,10), (2,10);
|
||||||
|
|
||||||
|
SET @a= CAST(1 AS decimal);
|
||||||
|
SELECT 1 FROM t1 GROUP BY @b := @a, @b;
|
||||||
|
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo End of 5.0 tests
|
--echo End of 5.0 tests
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -3348,6 +3348,60 @@ EXPLAIN SELECT a, SUM(b) FROM v1 WHERE a=1 GROUP BY a;
|
|||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #29392: SELECT over a multi-table view with ORDER BY
|
||||||
|
# selecting the same view column with two different aliases
|
||||||
|
#
|
||||||
|
|
||||||
|
CREATE TABLE t1 (
|
||||||
|
person_id int NOT NULL PRIMARY KEY,
|
||||||
|
username varchar(40) default NULL,
|
||||||
|
status_flg char(1) NOT NULL default 'A'
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (
|
||||||
|
person_role_id int NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
role_id int NOT NULL,
|
||||||
|
person_id int NOT NULL,
|
||||||
|
INDEX idx_person_id (person_id),
|
||||||
|
INDEX idx_role_id (role_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
role_id int NOT NULL auto_increment PRIMARY KEY,
|
||||||
|
role_name varchar(100) default NULL,
|
||||||
|
app_name varchar(40) NOT NULL,
|
||||||
|
INDEX idx_app_name(app_name)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE VIEW v1 AS
|
||||||
|
SELECT profile.person_id AS person_id
|
||||||
|
FROM t1 profile, t2 userrole, t3 role
|
||||||
|
WHERE userrole.person_id = profile.person_id AND
|
||||||
|
role.role_id = userrole.role_id AND
|
||||||
|
profile.status_flg = 'A'
|
||||||
|
ORDER BY profile.person_id,role.app_name,role.role_name;
|
||||||
|
|
||||||
|
INSERT INTO t1 VALUES
|
||||||
|
(6,'Sw','A'), (-1136332546,'ols','e'), (0,' *\n','0'),
|
||||||
|
(-717462680,'ENTS Ta','0'), (-904346964,'ndard SQL\n','0');
|
||||||
|
|
||||||
|
INSERT INTO t2 VALUES
|
||||||
|
(1,3,6),(2,4,7),(3,5,8),(4,6,9),(5,1,6),(6,1,7),(7,1,8),(8,1,9),(9,1,10);
|
||||||
|
|
||||||
|
INSERT INTO t3 VALUES
|
||||||
|
(1,'NUCANS_APP_USER','NUCANSAPP'),(2,'NUCANS_TRGAPP_USER','NUCANSAPP'),
|
||||||
|
(3,'IA_INTAKE_COORDINATOR','IACANS'),(4,'IA_SCREENER','IACANS'),
|
||||||
|
(5,'IA_SUPERVISOR','IACANS'),(6,'IA_READONLY','IACANS'),
|
||||||
|
(7,'SOC_USER','SOCCANS'),(8,'CAYIT_USER','CAYITCANS'),
|
||||||
|
(9,'RTOS_DCFSPOS_SUPERVISOR','RTOS');
|
||||||
|
|
||||||
|
EXPLAIN SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6;
|
||||||
|
SELECT t.person_id AS a, t.person_id AS b FROM v1 t WHERE t.person_id=6;
|
||||||
|
|
||||||
|
DROP VIEW v1;
|
||||||
|
DROP TABLE t1,t2,t3;
|
||||||
|
|
||||||
--echo End of 5.0 tests.
|
--echo End of 5.0 tests.
|
||||||
|
|
||||||
#
|
#
|
||||||
|
19
mysys/hash.c
19
mysys/hash.c
@ -593,6 +593,25 @@ my_bool hash_update(HASH *hash, uchar *record, uchar *old_key,
|
|||||||
previous->next=pos->next; /* unlink pos */
|
previous->next=pos->next; /* unlink pos */
|
||||||
|
|
||||||
/* Move data to correct position */
|
/* Move data to correct position */
|
||||||
|
if (new_index == empty)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
At this point record is unlinked from the old chain, thus it holds
|
||||||
|
random position. By the chance this position is equal to position
|
||||||
|
for the first element in the new chain. That means updated record
|
||||||
|
is the only record in the new chain.
|
||||||
|
*/
|
||||||
|
if (empty != idx)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Record was moved while unlinking it from the old chain.
|
||||||
|
Copy data to a new position.
|
||||||
|
*/
|
||||||
|
data[empty]= org_link;
|
||||||
|
}
|
||||||
|
data[empty].next= NO_RECORD;
|
||||||
|
DBUG_RETURN(0);
|
||||||
|
}
|
||||||
pos=data+new_index;
|
pos=data+new_index;
|
||||||
new_pos_index=hash_rec_mask(hash,pos,blength,records);
|
new_pos_index=hash_rec_mask(hash,pos,blength,records);
|
||||||
if (new_index != new_pos_index)
|
if (new_index != new_pos_index)
|
||||||
|
@ -2328,6 +2328,7 @@ Field_new_decimal::Field_new_decimal(uchar *ptr_arg,
|
|||||||
unireg_check_arg, field_name_arg, dec_arg, zero_arg, unsigned_arg)
|
unireg_check_arg, field_name_arg, dec_arg, zero_arg, unsigned_arg)
|
||||||
{
|
{
|
||||||
precision= my_decimal_length_to_precision(len_arg, dec_arg, unsigned_arg);
|
precision= my_decimal_length_to_precision(len_arg, dec_arg, unsigned_arg);
|
||||||
|
set_if_smaller(precision, DECIMAL_MAX_PRECISION);
|
||||||
DBUG_ASSERT((precision <= DECIMAL_MAX_PRECISION) &&
|
DBUG_ASSERT((precision <= DECIMAL_MAX_PRECISION) &&
|
||||||
(dec <= DECIMAL_MAX_SCALE));
|
(dec <= DECIMAL_MAX_SCALE));
|
||||||
bin_size= my_decimal_get_binary_size(precision, dec);
|
bin_size= my_decimal_get_binary_size(precision, dec);
|
||||||
@ -2344,6 +2345,7 @@ Field_new_decimal::Field_new_decimal(uint32 len_arg,
|
|||||||
NONE, name, dec_arg, 0, unsigned_arg)
|
NONE, name, dec_arg, 0, unsigned_arg)
|
||||||
{
|
{
|
||||||
precision= my_decimal_length_to_precision(len_arg, dec_arg, unsigned_arg);
|
precision= my_decimal_length_to_precision(len_arg, dec_arg, unsigned_arg);
|
||||||
|
set_if_smaller(precision, DECIMAL_MAX_PRECISION);
|
||||||
DBUG_ASSERT((precision <= DECIMAL_MAX_PRECISION) &&
|
DBUG_ASSERT((precision <= DECIMAL_MAX_PRECISION) &&
|
||||||
(dec <= DECIMAL_MAX_SCALE));
|
(dec <= DECIMAL_MAX_SCALE));
|
||||||
bin_size= my_decimal_get_binary_size(precision, dec);
|
bin_size= my_decimal_get_binary_size(precision, dec);
|
||||||
@ -6469,6 +6471,7 @@ Field *Field_string::new_field(MEM_ROOT *root, struct st_table *new_table,
|
|||||||
is 2.
|
is 2.
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
const uint Field_varstring::MAX_SIZE= UINT_MAX16;
|
||||||
|
|
||||||
int Field_varstring::store(const char *from,uint length,CHARSET_INFO *cs)
|
int Field_varstring::store(const char *from,uint length,CHARSET_INFO *cs)
|
||||||
{
|
{
|
||||||
|
@ -1185,7 +1185,7 @@ public:
|
|||||||
The maximum space available in a Field_varstring, in bytes. See
|
The maximum space available in a Field_varstring, in bytes. See
|
||||||
length_bytes.
|
length_bytes.
|
||||||
*/
|
*/
|
||||||
static const uint MAX_SIZE= UINT_MAX16;
|
static const uint MAX_SIZE;
|
||||||
/* Store number of bytes used to store length (1 or 2) */
|
/* Store number of bytes used to store length (1 or 2) */
|
||||||
uint32 length_bytes;
|
uint32 length_bytes;
|
||||||
Field_varstring(uchar *ptr_arg,
|
Field_varstring(uchar *ptr_arg,
|
||||||
|
@ -1128,6 +1128,7 @@ int merge_buffers(SORTPARAM *param, IO_CACHE *from_file,
|
|||||||
BUFFPEK *buffpek;
|
BUFFPEK *buffpek;
|
||||||
QUEUE queue;
|
QUEUE queue;
|
||||||
qsort2_cmp cmp;
|
qsort2_cmp cmp;
|
||||||
|
void *first_cmp_arg;
|
||||||
volatile THD::killed_state *killed= ¤t_thd->killed;
|
volatile THD::killed_state *killed= ¤t_thd->killed;
|
||||||
THD::killed_state not_killable;
|
THD::killed_state not_killable;
|
||||||
DBUG_ENTER("merge_buffers");
|
DBUG_ENTER("merge_buffers");
|
||||||
@ -1152,9 +1153,18 @@ int merge_buffers(SORTPARAM *param, IO_CACHE *from_file,
|
|||||||
/* The following will fire if there is not enough space in sort_buffer */
|
/* The following will fire if there is not enough space in sort_buffer */
|
||||||
DBUG_ASSERT(maxcount!=0);
|
DBUG_ASSERT(maxcount!=0);
|
||||||
|
|
||||||
|
if (param->unique_buff)
|
||||||
|
{
|
||||||
|
cmp= param->compare;
|
||||||
|
first_cmp_arg= (void *) ¶m->cmp_context;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cmp= get_ptr_compare(sort_length);
|
||||||
|
first_cmp_arg= (void*) &sort_length;
|
||||||
|
}
|
||||||
if (init_queue(&queue, (uint) (Tb-Fb)+1, offsetof(BUFFPEK,key), 0,
|
if (init_queue(&queue, (uint) (Tb-Fb)+1, offsetof(BUFFPEK,key), 0,
|
||||||
(queue_compare) (cmp= get_ptr_compare(sort_length)),
|
(queue_compare) cmp, first_cmp_arg))
|
||||||
(void*) &sort_length))
|
|
||||||
DBUG_RETURN(1); /* purecov: inspected */
|
DBUG_RETURN(1); /* purecov: inspected */
|
||||||
for (buffpek= Fb ; buffpek <= Tb ; buffpek++)
|
for (buffpek= Fb ; buffpek <= Tb ; buffpek++)
|
||||||
{
|
{
|
||||||
@ -1207,7 +1217,7 @@ int merge_buffers(SORTPARAM *param, IO_CACHE *from_file,
|
|||||||
buffpek= (BUFFPEK*) queue_top(&queue);
|
buffpek= (BUFFPEK*) queue_top(&queue);
|
||||||
if (cmp) // Remove duplicates
|
if (cmp) // Remove duplicates
|
||||||
{
|
{
|
||||||
if (!(*cmp)(&sort_length, &(param->unique_buff),
|
if (!(*cmp)(first_cmp_arg, &(param->unique_buff),
|
||||||
(uchar**) &buffpek->key))
|
(uchar**) &buffpek->key))
|
||||||
goto skip_duplicate;
|
goto skip_duplicate;
|
||||||
memcpy(param->unique_buff, (uchar*) buffpek->key, rec_length);
|
memcpy(param->unique_buff, (uchar*) buffpek->key, rec_length);
|
||||||
@ -1259,7 +1269,7 @@ int merge_buffers(SORTPARAM *param, IO_CACHE *from_file,
|
|||||||
*/
|
*/
|
||||||
if (cmp)
|
if (cmp)
|
||||||
{
|
{
|
||||||
if (!(*cmp)(&sort_length, &(param->unique_buff), (uchar**) &buffpek->key))
|
if (!(*cmp)(first_cmp_arg, &(param->unique_buff), (uchar**) &buffpek->key))
|
||||||
{
|
{
|
||||||
buffpek->key+= rec_length; // Remove duplicate
|
buffpek->key+= rec_length; // Remove duplicate
|
||||||
--buffpek->mem_count;
|
--buffpek->mem_count;
|
||||||
|
@ -2961,7 +2961,33 @@ int ha_partition::rnd_init(bool scan)
|
|||||||
uint32 part_id;
|
uint32 part_id;
|
||||||
DBUG_ENTER("ha_partition::rnd_init");
|
DBUG_ENTER("ha_partition::rnd_init");
|
||||||
|
|
||||||
include_partition_fields_in_used_fields();
|
/*
|
||||||
|
For operations that may need to change data, we may need to extend
|
||||||
|
read_set.
|
||||||
|
*/
|
||||||
|
if (m_lock_type == F_WRLCK)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
If write_set contains any of the fields used in partition and
|
||||||
|
subpartition expression, we need to set all bits in read_set because
|
||||||
|
the row may need to be inserted in a different [sub]partition. In
|
||||||
|
other words update_row() can be converted into write_row(), which
|
||||||
|
requires a complete record.
|
||||||
|
*/
|
||||||
|
if (bitmap_is_overlapping(&m_part_info->full_part_field_set,
|
||||||
|
table->write_set))
|
||||||
|
bitmap_set_all(table->read_set);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
Some handlers only read fields as specified by the bitmap for the
|
||||||
|
read set. For partitioned handlers we always require that the
|
||||||
|
fields of the partition functions are read such that we can
|
||||||
|
calculate the partition id to place updated and deleted records.
|
||||||
|
*/
|
||||||
|
bitmap_union(table->read_set, &m_part_info->full_part_field_set);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Now we see what the index of our first important partition is */
|
/* Now we see what the index of our first important partition is */
|
||||||
DBUG_PRINT("info", ("m_part_info->used_partitions: 0x%lx",
|
DBUG_PRINT("info", ("m_part_info->used_partitions: 0x%lx",
|
||||||
@ -3118,7 +3144,7 @@ int ha_partition::rnd_next(uchar *buf)
|
|||||||
continue; // Probably MyISAM
|
continue; // Probably MyISAM
|
||||||
|
|
||||||
if (result != HA_ERR_END_OF_FILE)
|
if (result != HA_ERR_END_OF_FILE)
|
||||||
break; // Return error
|
goto end_dont_reset_start_part; // Return error
|
||||||
|
|
||||||
/* End current partition */
|
/* End current partition */
|
||||||
late_extra_no_cache(part_id);
|
late_extra_no_cache(part_id);
|
||||||
@ -3144,6 +3170,7 @@ int ha_partition::rnd_next(uchar *buf)
|
|||||||
|
|
||||||
end:
|
end:
|
||||||
m_part_spec.start_part= NO_CURRENT_PART_ID;
|
m_part_spec.start_part= NO_CURRENT_PART_ID;
|
||||||
|
end_dont_reset_start_part:
|
||||||
table->status= STATUS_NOT_FOUND;
|
table->status= STATUS_NOT_FOUND;
|
||||||
DBUG_RETURN(result);
|
DBUG_RETURN(result);
|
||||||
}
|
}
|
||||||
@ -3275,7 +3302,15 @@ int ha_partition::index_init(uint inx, bool sorted)
|
|||||||
m_start_key.length= 0;
|
m_start_key.length= 0;
|
||||||
m_ordered= sorted;
|
m_ordered= sorted;
|
||||||
m_curr_key_info= table->key_info+inx;
|
m_curr_key_info= table->key_info+inx;
|
||||||
include_partition_fields_in_used_fields();
|
/*
|
||||||
|
Some handlers only read fields as specified by the bitmap for the
|
||||||
|
read set. For partitioned handlers we always require that the
|
||||||
|
fields of the partition functions are read such that we can
|
||||||
|
calculate the partition id to place updated and deleted records.
|
||||||
|
But this is required for operations that may need to change data only.
|
||||||
|
*/
|
||||||
|
if (m_lock_type == F_WRLCK)
|
||||||
|
bitmap_union(table->read_set, &m_part_info->full_part_field_set);
|
||||||
file= m_file;
|
file= m_file;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@ -4144,35 +4179,6 @@ int ha_partition::handle_ordered_prev(uchar *buf)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Set fields in partition functions in read set for underlying handlers
|
|
||||||
|
|
||||||
SYNOPSIS
|
|
||||||
include_partition_fields_in_used_fields()
|
|
||||||
|
|
||||||
RETURN VALUE
|
|
||||||
NONE
|
|
||||||
|
|
||||||
DESCRIPTION
|
|
||||||
Some handlers only read fields as specified by the bitmap for the
|
|
||||||
read set. For partitioned handlers we always require that the
|
|
||||||
fields of the partition functions are read such that we can
|
|
||||||
calculate the partition id to place updated and deleted records.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void ha_partition::include_partition_fields_in_used_fields()
|
|
||||||
{
|
|
||||||
Field **ptr= m_part_field_array;
|
|
||||||
DBUG_ENTER("ha_partition::include_partition_fields_in_used_fields");
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
bitmap_set_bit(table->read_set, (*ptr)->field_index);
|
|
||||||
} while (*(++ptr));
|
|
||||||
DBUG_VOID_RETURN;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
MODULE information calls
|
MODULE information calls
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@ -4714,6 +4720,12 @@ void ha_partition::get_dynamic_partition_info(PARTITION_INFO *stat_info,
|
|||||||
HA_EXTRA_KEY_CACHE:
|
HA_EXTRA_KEY_CACHE:
|
||||||
HA_EXTRA_NO_KEY_CACHE:
|
HA_EXTRA_NO_KEY_CACHE:
|
||||||
This parameters are no longer used and could be removed.
|
This parameters are no longer used and could be removed.
|
||||||
|
|
||||||
|
7) Parameters only used by federated tables for query processing
|
||||||
|
----------------------------------------------------------------
|
||||||
|
HA_EXTRA_INSERT_WITH_UPDATE:
|
||||||
|
Inform handler that an "INSERT...ON DUPLICATE KEY UPDATE" will be
|
||||||
|
executed. This condition is unset by HA_EXTRA_NO_IGNORE_DUP_KEY.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int ha_partition::extra(enum ha_extra_function operation)
|
int ha_partition::extra(enum ha_extra_function operation)
|
||||||
@ -4795,6 +4807,9 @@ int ha_partition::extra(enum ha_extra_function operation)
|
|||||||
*/
|
*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
/* Category 7), used by federated handlers */
|
||||||
|
case HA_EXTRA_INSERT_WITH_UPDATE:
|
||||||
|
DBUG_RETURN(loop_extra(operation));
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
/* Temporary crash to discover what is wrong */
|
/* Temporary crash to discover what is wrong */
|
||||||
|
@ -449,7 +449,6 @@ private:
|
|||||||
int handle_ordered_next(uchar * buf, bool next_same);
|
int handle_ordered_next(uchar * buf, bool next_same);
|
||||||
int handle_ordered_prev(uchar * buf);
|
int handle_ordered_prev(uchar * buf);
|
||||||
void return_top_record(uchar * buf);
|
void return_top_record(uchar * buf);
|
||||||
void include_partition_fields_in_used_fields();
|
|
||||||
public:
|
public:
|
||||||
/*
|
/*
|
||||||
-------------------------------------------------------------------------
|
-------------------------------------------------------------------------
|
||||||
|
16
sql/item.h
16
sql/item.h
@ -843,8 +843,7 @@ public:
|
|||||||
german character for double s is equal to 2 s.
|
german character for double s is equal to 2 s.
|
||||||
|
|
||||||
The default is that an item is not allowed
|
The default is that an item is not allowed
|
||||||
in a partition function. However all mathematical functions, string
|
in a partition function. Allowed functions
|
||||||
manipulation functions, date functions are allowed. Allowed functions
|
|
||||||
can never depend on server version, they cannot depend on anything
|
can never depend on server version, they cannot depend on anything
|
||||||
related to the environment. They can also only depend on a set of
|
related to the environment. They can also only depend on a set of
|
||||||
fields in the table itself. They cannot depend on other tables and
|
fields in the table itself. They cannot depend on other tables and
|
||||||
@ -1633,6 +1632,7 @@ public:
|
|||||||
uint decimal_precision() const
|
uint decimal_precision() const
|
||||||
{ return (uint)(max_length - test(value < 0)); }
|
{ return (uint)(max_length - test(value < 0)); }
|
||||||
bool eq(const Item *, bool binary_cmp) const;
|
bool eq(const Item *, bool binary_cmp) const;
|
||||||
|
bool check_partition_func_processor(uchar *bool_arg) { return FALSE;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1650,6 +1650,7 @@ public:
|
|||||||
void print(String *str);
|
void print(String *str);
|
||||||
Item_num *neg ();
|
Item_num *neg ();
|
||||||
uint decimal_precision() const { return max_length; }
|
uint decimal_precision() const { return max_length; }
|
||||||
|
bool check_partition_func_processor(uchar *bool_arg) { return FALSE;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1692,6 +1693,7 @@ public:
|
|||||||
uint decimal_precision() const { return decimal_value.precision(); }
|
uint decimal_precision() const { return decimal_value.precision(); }
|
||||||
bool eq(const Item *, bool binary_cmp) const;
|
bool eq(const Item *, bool binary_cmp) const;
|
||||||
void set_decimal_value(my_decimal *value_par);
|
void set_decimal_value(my_decimal *value_par);
|
||||||
|
bool check_partition_func_processor(uchar *bool_arg) { return FALSE;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1752,7 +1754,6 @@ public:
|
|||||||
{}
|
{}
|
||||||
void print(String *str) { str->append(func_name); }
|
void print(String *str) { str->append(func_name); }
|
||||||
Item *safe_charset_converter(CHARSET_INFO *tocs);
|
Item *safe_charset_converter(CHARSET_INFO *tocs);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return TRUE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1861,7 +1862,6 @@ public:
|
|||||||
CHARSET_INFO *cs= NULL):
|
CHARSET_INFO *cs= NULL):
|
||||||
Item_string(name, length, cs)
|
Item_string(name, length, cs)
|
||||||
{}
|
{}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return TRUE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1915,7 +1915,6 @@ public:
|
|||||||
unsigned_flag=1;
|
unsigned_flag=1;
|
||||||
}
|
}
|
||||||
enum_field_types field_type() const { return int_field_type; }
|
enum_field_types field_type() const { return int_field_type; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return TRUE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -2116,6 +2115,12 @@ public:
|
|||||||
|
|
||||||
bool fix_fields(THD *, Item **);
|
bool fix_fields(THD *, Item **);
|
||||||
bool eq(const Item *item, bool binary_cmp) const;
|
bool eq(const Item *item, bool binary_cmp) const;
|
||||||
|
Item *get_tmp_table_item(THD *thd)
|
||||||
|
{
|
||||||
|
Item *item= Item_ref::get_tmp_table_item(thd);
|
||||||
|
item->name= name;
|
||||||
|
return item;
|
||||||
|
}
|
||||||
virtual Ref_Type ref_type() { return VIEW_REF; }
|
virtual Ref_Type ref_type() { return VIEW_REF; }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2237,7 +2242,6 @@ public:
|
|||||||
}
|
}
|
||||||
Item *clone_item();
|
Item *clone_item();
|
||||||
virtual Item *real_item() { return ref; }
|
virtual Item *real_item() { return ref; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return TRUE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef MYSQL_SERVER
|
#ifdef MYSQL_SERVER
|
||||||
|
@ -355,7 +355,6 @@ public:
|
|||||||
}
|
}
|
||||||
Item *neg_transformer(THD *thd);
|
Item *neg_transformer(THD *thd);
|
||||||
virtual Item *negated_item();
|
virtual Item *negated_item();
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
bool subst_argument_checker(uchar **arg) { return TRUE; }
|
bool subst_argument_checker(uchar **arg) { return TRUE; }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -367,7 +366,6 @@ public:
|
|||||||
enum Functype functype() const { return NOT_FUNC; }
|
enum Functype functype() const { return NOT_FUNC; }
|
||||||
const char *func_name() const { return "not"; }
|
const char *func_name() const { return "not"; }
|
||||||
Item *neg_transformer(THD *thd);
|
Item *neg_transformer(THD *thd);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
void print(String *str);
|
void print(String *str);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -598,7 +596,6 @@ public:
|
|||||||
bool is_bool_func() { return 1; }
|
bool is_bool_func() { return 1; }
|
||||||
CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
|
CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
|
||||||
uint decimal_precision() const { return 1; }
|
uint decimal_precision() const { return 1; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -610,7 +607,6 @@ public:
|
|||||||
optimize_type select_optimize() const { return OPTIMIZE_NONE; }
|
optimize_type select_optimize() const { return OPTIMIZE_NONE; }
|
||||||
const char *func_name() const { return "strcmp"; }
|
const char *func_name() const { return "strcmp"; }
|
||||||
void print(String *str) { Item_func::print(str); }
|
void print(String *str) { Item_func::print(str); }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -673,7 +669,6 @@ public:
|
|||||||
const char *func_name() const { return "ifnull"; }
|
const char *func_name() const { return "ifnull"; }
|
||||||
Field *tmp_table_field(TABLE *table);
|
Field *tmp_table_field(TABLE *table);
|
||||||
uint decimal_precision() const;
|
uint decimal_precision() const;
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -714,7 +709,6 @@ public:
|
|||||||
void print(String *str) { Item_func::print(str); }
|
void print(String *str) { Item_func::print(str); }
|
||||||
table_map not_null_tables() const { return 0; }
|
table_map not_null_tables() const { return 0; }
|
||||||
bool is_null();
|
bool is_null();
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Functions to handle the optimized IN */
|
/* Functions to handle the optimized IN */
|
||||||
@ -1141,7 +1135,6 @@ public:
|
|||||||
void print(String *str);
|
void print(String *str);
|
||||||
Item *find_item(String *str);
|
Item *find_item(String *str);
|
||||||
CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
|
CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
|
||||||
bool check_partition_func_processor(uchar *bool_arg) { return FALSE;}
|
|
||||||
void cleanup();
|
void cleanup();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1211,7 +1204,6 @@ public:
|
|||||||
bool nulls_in_row();
|
bool nulls_in_row();
|
||||||
bool is_bool_func() { return 1; }
|
bool is_bool_func() { return 1; }
|
||||||
CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
|
CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class cmp_item_row :public cmp_item
|
class cmp_item_row :public cmp_item
|
||||||
@ -1283,7 +1275,6 @@ public:
|
|||||||
optimize_type select_optimize() const { return OPTIMIZE_NULL; }
|
optimize_type select_optimize() const { return OPTIMIZE_NULL; }
|
||||||
Item *neg_transformer(THD *thd);
|
Item *neg_transformer(THD *thd);
|
||||||
CHARSET_INFO *compare_collation() { return args[0]->collation.collation; }
|
CHARSET_INFO *compare_collation() { return args[0]->collation.collation; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Functions used by HAVING for rewriting IN subquery */
|
/* Functions used by HAVING for rewriting IN subquery */
|
||||||
@ -1310,7 +1301,6 @@ public:
|
|||||||
*/
|
*/
|
||||||
table_map used_tables() const
|
table_map used_tables() const
|
||||||
{ return used_tables_cache | RAND_TABLE_BIT; }
|
{ return used_tables_cache | RAND_TABLE_BIT; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return TRUE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1333,7 +1323,6 @@ public:
|
|||||||
void print(String *str);
|
void print(String *str);
|
||||||
CHARSET_INFO *compare_collation() { return args[0]->collation.collation; }
|
CHARSET_INFO *compare_collation() { return args[0]->collation.collation; }
|
||||||
void top_level_item() { abort_on_null=1; }
|
void top_level_item() { abort_on_null=1; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1372,7 +1361,6 @@ public:
|
|||||||
const char *func_name() const { return "like"; }
|
const char *func_name() const { return "like"; }
|
||||||
bool fix_fields(THD *thd, Item **ref);
|
bool fix_fields(THD *thd, Item **ref);
|
||||||
void cleanup();
|
void cleanup();
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef USE_REGEX
|
#ifdef USE_REGEX
|
||||||
@ -1395,7 +1383,6 @@ public:
|
|||||||
const char *func_name() const { return "regexp"; }
|
const char *func_name() const { return "regexp"; }
|
||||||
void print(String *str) { print_op(str); }
|
void print(String *str) { print_op(str); }
|
||||||
CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
|
CHARSET_INFO *compare_collation() { return cmp_collation.collation; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@ -1452,7 +1439,6 @@ public:
|
|||||||
Item *transform(Item_transformer transformer, uchar *arg);
|
Item *transform(Item_transformer transformer, uchar *arg);
|
||||||
void traverse_cond(Cond_traverser, void *arg, traverse_order order);
|
void traverse_cond(Cond_traverser, void *arg, traverse_order order);
|
||||||
void neg_arguments(THD *thd);
|
void neg_arguments(THD *thd);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
bool subst_argument_checker(uchar **arg) { return TRUE; }
|
bool subst_argument_checker(uchar **arg) { return TRUE; }
|
||||||
Item *compile(Item_analyzer analyzer, uchar **arg_p,
|
Item *compile(Item_analyzer analyzer, uchar **arg_p,
|
||||||
Item_transformer transformer, uchar *arg_t);
|
Item_transformer transformer, uchar *arg_t);
|
||||||
|
@ -5039,6 +5039,18 @@ create_func_cast(THD *thd, Item *a, Cast_target cast_type,
|
|||||||
my_error(ER_M_BIGGER_THAN_D, MYF(0), "");
|
my_error(ER_M_BIGGER_THAN_D, MYF(0), "");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (len > DECIMAL_MAX_PRECISION)
|
||||||
|
{
|
||||||
|
my_error(ER_TOO_BIG_PRECISION, MYF(0), len, a->name,
|
||||||
|
DECIMAL_MAX_PRECISION);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (dec > DECIMAL_MAX_SCALE)
|
||||||
|
{
|
||||||
|
my_error(ER_TOO_BIG_SCALE, MYF(0), dec, a->name,
|
||||||
|
DECIMAL_MAX_SCALE);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
res= new (thd->mem_root) Item_decimal_typecast(a, len, dec);
|
res= new (thd->mem_root) Item_decimal_typecast(a, len, dec);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -253,7 +253,6 @@ public:
|
|||||||
void fix_num_length_and_dec();
|
void fix_num_length_and_dec();
|
||||||
void find_num_type();
|
void find_num_type();
|
||||||
String *str_op(String *str) { DBUG_ASSERT(0); return 0; }
|
String *str_op(String *str) { DBUG_ASSERT(0); return 0; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -311,7 +310,6 @@ public:
|
|||||||
{ max_length=args[0]->max_length; unsigned_flag=0; }
|
{ max_length=args[0]->max_length; unsigned_flag=0; }
|
||||||
void print(String *str);
|
void print(String *str);
|
||||||
uint decimal_precision() const { return args[0]->decimal_precision(); }
|
uint decimal_precision() const { return args[0]->decimal_precision(); }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -345,7 +343,6 @@ public:
|
|||||||
void fix_length_and_dec() {};
|
void fix_length_and_dec() {};
|
||||||
const char *func_name() const { return "decimal_typecast"; }
|
const char *func_name() const { return "decimal_typecast"; }
|
||||||
void print(String *);
|
void print(String *);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -442,6 +439,7 @@ public:
|
|||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
void fix_num_length_and_dec();
|
void fix_num_length_and_dec();
|
||||||
uint decimal_precision() const { return args[0]->decimal_precision(); }
|
uint decimal_precision() const { return args[0]->decimal_precision(); }
|
||||||
|
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -454,6 +452,7 @@ public:
|
|||||||
my_decimal *decimal_op(my_decimal *);
|
my_decimal *decimal_op(my_decimal *);
|
||||||
const char *func_name() const { return "abs"; }
|
const char *func_name() const { return "abs"; }
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
|
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
||||||
};
|
};
|
||||||
|
|
||||||
// A class to handle logarithmic and trigonometric functions
|
// A class to handle logarithmic and trigonometric functions
|
||||||
@ -488,7 +487,6 @@ public:
|
|||||||
Item_func_exp(Item *a) :Item_dec_func(a) {}
|
Item_func_exp(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "exp"; }
|
const char *func_name() const { return "exp"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -498,7 +496,6 @@ public:
|
|||||||
Item_func_ln(Item *a) :Item_dec_func(a) {}
|
Item_func_ln(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "ln"; }
|
const char *func_name() const { return "ln"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -509,7 +506,6 @@ public:
|
|||||||
Item_func_log(Item *a,Item *b) :Item_dec_func(a,b) {}
|
Item_func_log(Item *a,Item *b) :Item_dec_func(a,b) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "log"; }
|
const char *func_name() const { return "log"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -519,7 +515,6 @@ public:
|
|||||||
Item_func_log2(Item *a) :Item_dec_func(a) {}
|
Item_func_log2(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "log2"; }
|
const char *func_name() const { return "log2"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -529,7 +524,6 @@ public:
|
|||||||
Item_func_log10(Item *a) :Item_dec_func(a) {}
|
Item_func_log10(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "log10"; }
|
const char *func_name() const { return "log10"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -539,7 +533,6 @@ public:
|
|||||||
Item_func_sqrt(Item *a) :Item_dec_func(a) {}
|
Item_func_sqrt(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "sqrt"; }
|
const char *func_name() const { return "sqrt"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -549,7 +542,6 @@ public:
|
|||||||
Item_func_pow(Item *a,Item *b) :Item_dec_func(a,b) {}
|
Item_func_pow(Item *a,Item *b) :Item_dec_func(a,b) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "pow"; }
|
const char *func_name() const { return "pow"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -559,7 +551,6 @@ public:
|
|||||||
Item_func_acos(Item *a) :Item_dec_func(a) {}
|
Item_func_acos(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "acos"; }
|
const char *func_name() const { return "acos"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_asin :public Item_dec_func
|
class Item_func_asin :public Item_dec_func
|
||||||
@ -568,7 +559,6 @@ public:
|
|||||||
Item_func_asin(Item *a) :Item_dec_func(a) {}
|
Item_func_asin(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "asin"; }
|
const char *func_name() const { return "asin"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_atan :public Item_dec_func
|
class Item_func_atan :public Item_dec_func
|
||||||
@ -578,7 +568,6 @@ public:
|
|||||||
Item_func_atan(Item *a,Item *b) :Item_dec_func(a,b) {}
|
Item_func_atan(Item *a,Item *b) :Item_dec_func(a,b) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "atan"; }
|
const char *func_name() const { return "atan"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_cos :public Item_dec_func
|
class Item_func_cos :public Item_dec_func
|
||||||
@ -587,7 +576,6 @@ public:
|
|||||||
Item_func_cos(Item *a) :Item_dec_func(a) {}
|
Item_func_cos(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "cos"; }
|
const char *func_name() const { return "cos"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_sin :public Item_dec_func
|
class Item_func_sin :public Item_dec_func
|
||||||
@ -596,7 +584,6 @@ public:
|
|||||||
Item_func_sin(Item *a) :Item_dec_func(a) {}
|
Item_func_sin(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "sin"; }
|
const char *func_name() const { return "sin"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_tan :public Item_dec_func
|
class Item_func_tan :public Item_dec_func
|
||||||
@ -605,7 +592,6 @@ public:
|
|||||||
Item_func_tan(Item *a) :Item_dec_func(a) {}
|
Item_func_tan(Item *a) :Item_dec_func(a) {}
|
||||||
double val_real();
|
double val_real();
|
||||||
const char *func_name() const { return "tan"; }
|
const char *func_name() const { return "tan"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_integer :public Item_int_func
|
class Item_func_integer :public Item_int_func
|
||||||
@ -633,6 +619,7 @@ public:
|
|||||||
longlong int_op();
|
longlong int_op();
|
||||||
double real_op();
|
double real_op();
|
||||||
my_decimal *decimal_op(my_decimal *);
|
my_decimal *decimal_op(my_decimal *);
|
||||||
|
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -644,6 +631,7 @@ public:
|
|||||||
longlong int_op();
|
longlong int_op();
|
||||||
double real_op();
|
double real_op();
|
||||||
my_decimal *decimal_op(my_decimal *);
|
my_decimal *decimal_op(my_decimal *);
|
||||||
|
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* This handles round and truncate */
|
/* This handles round and truncate */
|
||||||
@ -684,7 +672,6 @@ public:
|
|||||||
Item_func_sign(Item *a) :Item_int_func(a) {}
|
Item_func_sign(Item *a) :Item_int_func(a) {}
|
||||||
const char *func_name() const { return "sign"; }
|
const char *func_name() const { return "sign"; }
|
||||||
longlong val_int();
|
longlong val_int();
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -699,7 +686,6 @@ public:
|
|||||||
const char *func_name() const { return name; }
|
const char *func_name() const { return name; }
|
||||||
void fix_length_and_dec()
|
void fix_length_and_dec()
|
||||||
{ decimals= NOT_FIXED_DEC; max_length= float_length(decimals); }
|
{ decimals= NOT_FIXED_DEC; max_length= float_length(decimals); }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -725,7 +711,6 @@ public:
|
|||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
enum Item_result result_type () const { return cmp_type; }
|
enum Item_result result_type () const { return cmp_type; }
|
||||||
bool result_as_longlong() { return compare_as_dates; };
|
bool result_as_longlong() { return compare_as_dates; };
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
uint cmp_datetimes(ulonglong *value);
|
uint cmp_datetimes(ulonglong *value);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -781,7 +766,6 @@ public:
|
|||||||
longlong val_int();
|
longlong val_int();
|
||||||
const char *func_name() const { return "length"; }
|
const char *func_name() const { return "length"; }
|
||||||
void fix_length_and_dec() { max_length=10; }
|
void fix_length_and_dec() { max_length=10; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_bit_length :public Item_func_length
|
class Item_func_bit_length :public Item_func_length
|
||||||
@ -801,7 +785,6 @@ public:
|
|||||||
longlong val_int();
|
longlong val_int();
|
||||||
const char *func_name() const { return "char_length"; }
|
const char *func_name() const { return "char_length"; }
|
||||||
void fix_length_and_dec() { max_length=10; }
|
void fix_length_and_dec() { max_length=10; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_coercibility :public Item_int_func
|
class Item_func_coercibility :public Item_int_func
|
||||||
@ -825,7 +808,6 @@ public:
|
|||||||
longlong val_int();
|
longlong val_int();
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
void print(String *str);
|
void print(String *str);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -850,7 +832,6 @@ public:
|
|||||||
longlong val_int();
|
longlong val_int();
|
||||||
const char *func_name() const { return "ascii"; }
|
const char *func_name() const { return "ascii"; }
|
||||||
void fix_length_and_dec() { max_length=3; }
|
void fix_length_and_dec() { max_length=3; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_ord :public Item_int_func
|
class Item_func_ord :public Item_int_func
|
||||||
@ -860,7 +841,6 @@ public:
|
|||||||
Item_func_ord(Item *a) :Item_int_func(a) {}
|
Item_func_ord(Item *a) :Item_int_func(a) {}
|
||||||
longlong val_int();
|
longlong val_int();
|
||||||
const char *func_name() const { return "ord"; }
|
const char *func_name() const { return "ord"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_find_in_set :public Item_int_func
|
class Item_func_find_in_set :public Item_int_func
|
||||||
@ -874,7 +854,6 @@ public:
|
|||||||
longlong val_int();
|
longlong val_int();
|
||||||
const char *func_name() const { return "find_in_set"; }
|
const char *func_name() const { return "find_in_set"; }
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Base class for all bit functions: '~', '|', '^', '&', '>>', '<<' */
|
/* Base class for all bit functions: '~', '|', '^', '&', '>>', '<<' */
|
||||||
@ -886,7 +865,6 @@ public:
|
|||||||
Item_func_bit(Item *a) :Item_int_func(a) {}
|
Item_func_bit(Item *a) :Item_int_func(a) {}
|
||||||
void fix_length_and_dec() { unsigned_flag= 1; }
|
void fix_length_and_dec() { unsigned_flag= 1; }
|
||||||
void print(String *str) { print_op(str); }
|
void print(String *str) { print_op(str); }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_bit_or :public Item_func_bit
|
class Item_func_bit_or :public Item_func_bit
|
||||||
@ -912,7 +890,6 @@ public:
|
|||||||
longlong val_int();
|
longlong val_int();
|
||||||
const char *func_name() const { return "bit_count"; }
|
const char *func_name() const { return "bit_count"; }
|
||||||
void fix_length_and_dec() { max_length=2; }
|
void fix_length_and_dec() { max_length=2; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_shift_left :public Item_func_bit
|
class Item_func_shift_left :public Item_func_bit
|
||||||
@ -1363,7 +1340,6 @@ public:
|
|||||||
longlong val_int();
|
longlong val_int();
|
||||||
const char *func_name() const { return "inet_aton"; }
|
const char *func_name() const { return "inet_aton"; }
|
||||||
void fix_length_and_dec() { decimals= 0; max_length= 21; maybe_null= 1; unsigned_flag= 1;}
|
void fix_length_and_dec() { decimals= 0; max_length= 21; maybe_null= 1; unsigned_flag= 1;}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,7 +50,6 @@ public:
|
|||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
const char *func_name() const { return "md5"; }
|
const char *func_name() const { return "md5"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +93,6 @@ public:
|
|||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
const char *func_name() const { return "concat"; }
|
const char *func_name() const { return "concat"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_concat_ws :public Item_str_func
|
class Item_func_concat_ws :public Item_str_func
|
||||||
@ -116,7 +114,6 @@ public:
|
|||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
const char *func_name() const { return "reverse"; }
|
const char *func_name() const { return "reverse"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -154,7 +151,6 @@ protected:
|
|||||||
public:
|
public:
|
||||||
Item_str_conv(Item *item) :Item_str_func(item) {}
|
Item_str_conv(Item *item) :Item_str_func(item) {}
|
||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -455,7 +451,6 @@ public:
|
|||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
const char *func_name() const { return "soundex"; }
|
const char *func_name() const { return "soundex"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -549,7 +544,6 @@ public:
|
|||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
const char *func_name() const { return "rpad"; }
|
const char *func_name() const { return "rpad"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -562,7 +556,6 @@ public:
|
|||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
const char *func_name() const { return "lpad"; }
|
const char *func_name() const { return "lpad"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -577,7 +570,6 @@ public:
|
|||||||
collation.set(default_charset());
|
collation.set(default_charset());
|
||||||
max_length= 64;
|
max_length= 64;
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -594,7 +586,6 @@ public:
|
|||||||
decimals=0;
|
decimals=0;
|
||||||
max_length=args[0]->max_length*2*collation.collation->mbmaxlen;
|
max_length=args[0]->max_length*2*collation.collation->mbmaxlen;
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_unhex :public Item_str_func
|
class Item_func_unhex :public Item_str_func
|
||||||
@ -614,7 +605,6 @@ public:
|
|||||||
decimals=0;
|
decimals=0;
|
||||||
max_length=(1+args[0]->max_length)/2;
|
max_length=(1+args[0]->max_length)/2;
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -638,7 +628,6 @@ public:
|
|||||||
}
|
}
|
||||||
void print(String *str);
|
void print(String *str);
|
||||||
const char *func_name() const { return "cast_as_binary"; }
|
const char *func_name() const { return "cast_as_binary"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -678,7 +667,6 @@ public:
|
|||||||
String* val_str(String* str);
|
String* val_str(String* str);
|
||||||
const char *func_name() const { return "inet_ntoa"; }
|
const char *func_name() const { return "inet_ntoa"; }
|
||||||
void fix_length_and_dec() { decimals = 0; max_length=3*8+7; }
|
void fix_length_and_dec() { decimals = 0; max_length=3*8+7; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_quote :public Item_str_func
|
class Item_func_quote :public Item_str_func
|
||||||
@ -693,7 +681,6 @@ public:
|
|||||||
collation.set(args[0]->collation);
|
collation.set(args[0]->collation);
|
||||||
max_length= args[0]->max_length * 2 + 2;
|
max_length= args[0]->max_length * 2 + 2;
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_conv_charset :public Item_str_func
|
class Item_func_conv_charset :public Item_str_func
|
||||||
@ -794,7 +781,6 @@ public:
|
|||||||
const char *func_name() const { return "crc32"; }
|
const char *func_name() const { return "crc32"; }
|
||||||
void fix_length_and_dec() { max_length=10; }
|
void fix_length_and_dec() { max_length=10; }
|
||||||
longlong val_int();
|
longlong val_int();
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_uncompressed_length : public Item_int_func
|
class Item_func_uncompressed_length : public Item_int_func
|
||||||
|
@ -38,7 +38,6 @@ public:
|
|||||||
{
|
{
|
||||||
max_length=6*MY_CHARSET_BIN_MB_MAXLEN;
|
max_length=6*MY_CHARSET_BIN_MB_MAXLEN;
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -53,7 +52,6 @@ public:
|
|||||||
decimals=0;
|
decimals=0;
|
||||||
max_length=6*MY_CHARSET_BIN_MB_MAXLEN;
|
max_length=6*MY_CHARSET_BIN_MB_MAXLEN;
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -129,6 +127,7 @@ public:
|
|||||||
max_length=10*my_charset_bin.mbmaxlen;
|
max_length=10*my_charset_bin.mbmaxlen;
|
||||||
maybe_null=1;
|
maybe_null=1;
|
||||||
}
|
}
|
||||||
|
bool check_partition_func_processor(uchar *int_arg) {return TRUE;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -224,7 +223,6 @@ public:
|
|||||||
max_length=2*MY_CHARSET_BIN_MB_MAXLEN;
|
max_length=2*MY_CHARSET_BIN_MB_MAXLEN;
|
||||||
maybe_null=1;
|
maybe_null=1;
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_yearweek :public Item_int_func
|
class Item_func_yearweek :public Item_int_func
|
||||||
@ -303,6 +301,7 @@ class Item_func_dayname :public Item_func_weekday
|
|||||||
max_length=9*MY_CHARSET_BIN_MB_MAXLEN;
|
max_length=9*MY_CHARSET_BIN_MB_MAXLEN;
|
||||||
maybe_null=1;
|
maybe_null=1;
|
||||||
}
|
}
|
||||||
|
bool check_partition_func_processor(uchar *int_arg) {return TRUE;}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -319,7 +318,6 @@ public:
|
|||||||
decimals=0;
|
decimals=0;
|
||||||
max_length=10*MY_CHARSET_BIN_MB_MAXLEN;
|
max_length=10*MY_CHARSET_BIN_MB_MAXLEN;
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -603,7 +601,6 @@ public:
|
|||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
uint format_length(const String *format);
|
uint format_length(const String *format);
|
||||||
bool eq(const Item *item, bool binary_cmp) const;
|
bool eq(const Item *item, bool binary_cmp) const;
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -617,7 +614,6 @@ class Item_func_from_unixtime :public Item_date_func
|
|||||||
const char *func_name() const { return "from_unixtime"; }
|
const char *func_name() const { return "from_unixtime"; }
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
bool get_date(MYSQL_TIME *res, uint fuzzy_date);
|
bool get_date(MYSQL_TIME *res, uint fuzzy_date);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -676,7 +672,6 @@ public:
|
|||||||
}
|
}
|
||||||
const char *func_name() const { return "sec_to_time"; }
|
const char *func_name() const { return "sec_to_time"; }
|
||||||
bool result_as_longlong() { return TRUE; }
|
bool result_as_longlong() { return TRUE; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -698,7 +693,6 @@ public:
|
|||||||
bool get_date(MYSQL_TIME *res, uint fuzzy_date);
|
bool get_date(MYSQL_TIME *res, uint fuzzy_date);
|
||||||
bool eq(const Item *item, bool binary_cmp) const;
|
bool eq(const Item *item, bool binary_cmp) const;
|
||||||
void print(String *str);
|
void print(String *str);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -753,7 +747,6 @@ public:
|
|||||||
max_length=args[0]->max_length;
|
max_length=args[0]->max_length;
|
||||||
maybe_null= 1;
|
maybe_null= 1;
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -773,7 +766,6 @@ public:
|
|||||||
String *val_str(String *a);
|
String *val_str(String *a);
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
void print(String *str);
|
void print(String *str);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -884,7 +876,6 @@ public:
|
|||||||
max_length=MAX_DATE_WIDTH*MY_CHARSET_BIN_MB_MAXLEN;
|
max_length=MAX_DATE_WIDTH*MY_CHARSET_BIN_MB_MAXLEN;
|
||||||
}
|
}
|
||||||
longlong val_int();
|
longlong val_int();
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -907,7 +898,6 @@ public:
|
|||||||
}
|
}
|
||||||
void print(String *str);
|
void print(String *str);
|
||||||
const char *func_name() const { return "add_time"; }
|
const char *func_name() const { return "add_time"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
double val_real() { return val_real_from_decimal(); }
|
double val_real() { return val_real_from_decimal(); }
|
||||||
my_decimal *val_decimal(my_decimal *decimal_value)
|
my_decimal *val_decimal(my_decimal *decimal_value)
|
||||||
{
|
{
|
||||||
@ -949,7 +939,6 @@ public:
|
|||||||
:Item_str_timefunc(a, b ,c) {}
|
:Item_str_timefunc(a, b ,c) {}
|
||||||
String *val_str(String *str);
|
String *val_str(String *str);
|
||||||
const char *func_name() const { return "maketime"; }
|
const char *func_name() const { return "maketime"; }
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_microsecond :public Item_int_func
|
class Item_func_microsecond :public Item_int_func
|
||||||
@ -981,7 +970,6 @@ public:
|
|||||||
maybe_null=1;
|
maybe_null=1;
|
||||||
}
|
}
|
||||||
void print(String *str);
|
void print(String *str);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -1028,7 +1016,6 @@ public:
|
|||||||
{
|
{
|
||||||
return tmp_table_field_from_field_type(table, 1);
|
return tmp_table_field_from_field_type(table, 1);
|
||||||
}
|
}
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -41,7 +41,6 @@ public:
|
|||||||
Item_func_xml_extractvalue(Item *a,Item *b) :Item_xml_str_func(a,b) {}
|
Item_func_xml_extractvalue(Item *a,Item *b) :Item_xml_str_func(a,b) {}
|
||||||
const char *func_name() const { return "extractvalue"; }
|
const char *func_name() const { return "extractvalue"; }
|
||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
bool check_partition_func_processor(uchar *int_arg) {return FALSE;}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1445,7 +1445,7 @@ static int binlog_close_connection(handlerton *hton, THD *thd)
|
|||||||
{
|
{
|
||||||
binlog_trx_data *const trx_data=
|
binlog_trx_data *const trx_data=
|
||||||
(binlog_trx_data*) thd->ha_data[binlog_hton->slot];
|
(binlog_trx_data*) thd->ha_data[binlog_hton->slot];
|
||||||
DBUG_ASSERT(mysql_bin_log.is_open() && trx_data->empty());
|
DBUG_ASSERT(trx_data->empty());
|
||||||
thd->ha_data[binlog_hton->slot]= 0;
|
thd->ha_data[binlog_hton->slot]= 0;
|
||||||
trx_data->~binlog_trx_data();
|
trx_data->~binlog_trx_data();
|
||||||
my_free((uchar*)trx_data, MYF(0));
|
my_free((uchar*)trx_data, MYF(0));
|
||||||
@ -1570,7 +1570,6 @@ static int binlog_commit(handlerton *hton, THD *thd, bool all)
|
|||||||
DBUG_ENTER("binlog_commit");
|
DBUG_ENTER("binlog_commit");
|
||||||
binlog_trx_data *const trx_data=
|
binlog_trx_data *const trx_data=
|
||||||
(binlog_trx_data*) thd->ha_data[binlog_hton->slot];
|
(binlog_trx_data*) thd->ha_data[binlog_hton->slot];
|
||||||
DBUG_ASSERT(mysql_bin_log.is_open());
|
|
||||||
|
|
||||||
if (trx_data->empty())
|
if (trx_data->empty())
|
||||||
{
|
{
|
||||||
@ -1598,7 +1597,6 @@ static int binlog_rollback(handlerton *hton, THD *thd, bool all)
|
|||||||
int error=0;
|
int error=0;
|
||||||
binlog_trx_data *const trx_data=
|
binlog_trx_data *const trx_data=
|
||||||
(binlog_trx_data*) thd->ha_data[binlog_hton->slot];
|
(binlog_trx_data*) thd->ha_data[binlog_hton->slot];
|
||||||
DBUG_ASSERT(mysql_bin_log.is_open());
|
|
||||||
|
|
||||||
if (trx_data->empty()) {
|
if (trx_data->empty()) {
|
||||||
trx_data->reset();
|
trx_data->reset();
|
||||||
@ -1659,7 +1657,6 @@ static int binlog_savepoint_set(handlerton *hton, THD *thd, void *sv)
|
|||||||
static int binlog_savepoint_rollback(handlerton *hton, THD *thd, void *sv)
|
static int binlog_savepoint_rollback(handlerton *hton, THD *thd, void *sv)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("binlog_savepoint_rollback");
|
DBUG_ENTER("binlog_savepoint_rollback");
|
||||||
DBUG_ASSERT(mysql_bin_log.is_open());
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Write ROLLBACK TO SAVEPOINT to the binlog cache if we have updated some
|
Write ROLLBACK TO SAVEPOINT to the binlog cache if we have updated some
|
||||||
|
@ -98,7 +98,7 @@ char* query_table_status(THD *thd,const char *db,const char *table_name);
|
|||||||
DBUG_ASSERT(strncmp(Ver, MYSQL_SERVER_VERSION, sizeof(Ver)-1) > 0); \
|
DBUG_ASSERT(strncmp(Ver, MYSQL_SERVER_VERSION, sizeof(Ver)-1) > 0); \
|
||||||
if (((uchar*)Thd) != NULL) \
|
if (((uchar*)Thd) != NULL) \
|
||||||
push_warning_printf(((THD *)Thd), MYSQL_ERROR::WARN_LEVEL_WARN, \
|
push_warning_printf(((THD *)Thd), MYSQL_ERROR::WARN_LEVEL_WARN, \
|
||||||
ER_WARN_DEPRECATED_SYNTAX, ER(ER_WARN_DEPRECATED_SYNTAX), \
|
ER_WARN_DEPRECATED_SYNTAX, ER(ER_WARN_DEPRECATED_SYNTAX_WITH_VER), \
|
||||||
(Old), (Ver), (New)); \
|
(Old), (Ver), (New)); \
|
||||||
else \
|
else \
|
||||||
sql_print_warning("The syntax '%s' is deprecated and will be removed " \
|
sql_print_warning("The syntax '%s' is deprecated and will be removed " \
|
||||||
|
@ -905,7 +905,6 @@ bool partition_info::set_up_charset_field_preps()
|
|||||||
Field *field, **ptr;
|
Field *field, **ptr;
|
||||||
uchar **char_ptrs;
|
uchar **char_ptrs;
|
||||||
unsigned i;
|
unsigned i;
|
||||||
bool found;
|
|
||||||
size_t size;
|
size_t size;
|
||||||
uint tot_fields= 0;
|
uint tot_fields= 0;
|
||||||
uint tot_part_fields= 0;
|
uint tot_part_fields= 0;
|
||||||
@ -918,7 +917,6 @@ bool partition_info::set_up_charset_field_preps()
|
|||||||
{
|
{
|
||||||
ptr= part_field_array;
|
ptr= part_field_array;
|
||||||
/* Set up arrays and buffers for those fields */
|
/* Set up arrays and buffers for those fields */
|
||||||
i= 0;
|
|
||||||
while ((field= *(ptr++)))
|
while ((field= *(ptr++)))
|
||||||
{
|
{
|
||||||
if (field_is_partition_charset(field))
|
if (field_is_partition_charset(field))
|
||||||
@ -954,7 +952,7 @@ bool partition_info::set_up_charset_field_preps()
|
|||||||
}
|
}
|
||||||
part_charset_field_array[i]= NULL;
|
part_charset_field_array[i]= NULL;
|
||||||
}
|
}
|
||||||
if (is_sub_partitioned() && list_of_subpart_fields &&
|
if (is_sub_partitioned() && !list_of_subpart_fields &&
|
||||||
check_part_func_fields(subpart_field_array, FALSE))
|
check_part_func_fields(subpart_field_array, FALSE))
|
||||||
{
|
{
|
||||||
/* Set up arrays and buffers for those fields */
|
/* Set up arrays and buffers for those fields */
|
||||||
@ -962,7 +960,10 @@ bool partition_info::set_up_charset_field_preps()
|
|||||||
while ((field= *(ptr++)))
|
while ((field= *(ptr++)))
|
||||||
{
|
{
|
||||||
if (field_is_partition_charset(field))
|
if (field_is_partition_charset(field))
|
||||||
|
{
|
||||||
tot_subpart_fields++;
|
tot_subpart_fields++;
|
||||||
|
tot_fields++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
size= tot_subpart_fields * sizeof(char*);
|
size= tot_subpart_fields * sizeof(char*);
|
||||||
if (!(char_ptrs= (uchar**) sql_calloc(size)))
|
if (!(char_ptrs= (uchar**) sql_calloc(size)))
|
||||||
@ -975,10 +976,10 @@ bool partition_info::set_up_charset_field_preps()
|
|||||||
if (!(char_ptrs= (uchar**) sql_alloc(size)))
|
if (!(char_ptrs= (uchar**) sql_alloc(size)))
|
||||||
goto error;
|
goto error;
|
||||||
subpart_charset_field_array= (Field**)char_ptrs;
|
subpart_charset_field_array= (Field**)char_ptrs;
|
||||||
|
ptr= subpart_field_array;
|
||||||
i= 0;
|
i= 0;
|
||||||
while ((field= *(ptr++)))
|
while ((field= *(ptr++)))
|
||||||
{
|
{
|
||||||
unsigned j= 0;
|
|
||||||
CHARSET_INFO *cs;
|
CHARSET_INFO *cs;
|
||||||
uchar *field_buf;
|
uchar *field_buf;
|
||||||
LINT_INIT(field_buf);
|
LINT_INIT(field_buf);
|
||||||
@ -987,28 +988,16 @@ bool partition_info::set_up_charset_field_preps()
|
|||||||
continue;
|
continue;
|
||||||
cs= ((Field_str*)field)->charset();
|
cs= ((Field_str*)field)->charset();
|
||||||
size= field->pack_length();
|
size= field->pack_length();
|
||||||
found= FALSE;
|
if (!(field_buf= (uchar*) sql_calloc(size)))
|
||||||
for (j= 0; j < tot_part_fields; j++)
|
goto error;
|
||||||
{
|
subpart_charset_field_array[i]= field;
|
||||||
if (field == part_charset_field_array[i])
|
|
||||||
found= TRUE;
|
|
||||||
}
|
|
||||||
if (!found)
|
|
||||||
{
|
|
||||||
tot_fields++;
|
|
||||||
if (!(field_buf= (uchar*) sql_calloc(size)))
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
subpart_field_buffers[i++]= field_buf;
|
subpart_field_buffers[i++]= field_buf;
|
||||||
}
|
}
|
||||||
if (!(char_ptrs= (uchar**) sql_calloc(size)))
|
subpart_charset_field_array[i]= NULL;
|
||||||
goto error;
|
|
||||||
restore_subpart_field_ptrs= char_ptrs;
|
|
||||||
}
|
}
|
||||||
if (tot_fields)
|
if (tot_fields)
|
||||||
{
|
{
|
||||||
uint j,k,l;
|
uint k;
|
||||||
|
|
||||||
size= tot_fields*sizeof(char**);
|
size= tot_fields*sizeof(char**);
|
||||||
if (!(char_ptrs= (uchar**)sql_calloc(size)))
|
if (!(char_ptrs= (uchar**)sql_calloc(size)))
|
||||||
goto error;
|
goto error;
|
||||||
@ -1026,11 +1015,12 @@ bool partition_info::set_up_charset_field_preps()
|
|||||||
full_part_field_buffers[i]= part_field_buffers[i];
|
full_part_field_buffers[i]= part_field_buffers[i];
|
||||||
}
|
}
|
||||||
k= tot_part_fields;
|
k= tot_part_fields;
|
||||||
l= 0;
|
|
||||||
for (i= 0; i < tot_subpart_fields; i++)
|
for (i= 0; i < tot_subpart_fields; i++)
|
||||||
{
|
{
|
||||||
|
uint j;
|
||||||
|
bool found= FALSE;
|
||||||
field= subpart_charset_field_array[i];
|
field= subpart_charset_field_array[i];
|
||||||
found= FALSE;
|
|
||||||
for (j= 0; j < tot_part_fields; j++)
|
for (j= 0; j < tot_part_fields; j++)
|
||||||
{
|
{
|
||||||
if (field == part_charset_field_array[i])
|
if (field == part_charset_field_array[i])
|
||||||
@ -1038,12 +1028,12 @@ bool partition_info::set_up_charset_field_preps()
|
|||||||
}
|
}
|
||||||
if (!found)
|
if (!found)
|
||||||
{
|
{
|
||||||
full_part_charset_field_array[l]= subpart_charset_field_array[k];
|
full_part_charset_field_array[k]= subpart_charset_field_array[i];
|
||||||
full_part_field_buffers[l]= subpart_field_buffers[k];
|
full_part_field_buffers[k]= subpart_field_buffers[i];
|
||||||
k++; l++;
|
k++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
full_part_charset_field_array[tot_fields]= NULL;
|
full_part_charset_field_array[k]= NULL;
|
||||||
}
|
}
|
||||||
DBUG_RETURN(FALSE);
|
DBUG_RETURN(FALSE);
|
||||||
error:
|
error:
|
||||||
|
@ -81,6 +81,13 @@ public:
|
|||||||
*/
|
*/
|
||||||
Field **full_part_field_array;
|
Field **full_part_field_array;
|
||||||
Field **full_part_charset_field_array;
|
Field **full_part_charset_field_array;
|
||||||
|
/*
|
||||||
|
Set of all fields used in partition and subpartition expression.
|
||||||
|
Required for testing of partition fields in write_set when
|
||||||
|
updating. We need to set all bits in read_set because the row may
|
||||||
|
need to be inserted in a different [sub]partition.
|
||||||
|
*/
|
||||||
|
MY_BITMAP full_part_field_set;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
When we have a field that requires transformation before calling the
|
When we have a field that requires transformation before calling the
|
||||||
|
@ -1478,6 +1478,8 @@ ER_DUP_KEYNAME 42000 S1009
|
|||||||
spa "Nombre de clave duplicado '%-.192s'"
|
spa "Nombre de clave duplicado '%-.192s'"
|
||||||
swe "Nyckelnamn '%-.192s' finns flera gånger"
|
swe "Nyckelnamn '%-.192s' finns flera gånger"
|
||||||
ukr "äÕÂÌÀÀÞÅ ¦Í'Ñ ËÌÀÞÁ '%-.192s'"
|
ukr "äÕÂÌÀÀÞÅ ¦Í'Ñ ËÌÀÞÁ '%-.192s'"
|
||||||
|
# When using this error code, please use ER(ER_DUP_ENTRY_WITH_KEY_NAME)
|
||||||
|
# for the message string. See, for example, code in handler.cc.
|
||||||
ER_DUP_ENTRY 23000 S1009
|
ER_DUP_ENTRY 23000 S1009
|
||||||
cze "Zdvojen-Bý klíè '%-.192s' (èíslo klíèe %d)"
|
cze "Zdvojen-Bý klíè '%-.192s' (èíslo klíèe %d)"
|
||||||
dan "Ens værdier '%-.192s' for indeks %d"
|
dan "Ens værdier '%-.192s' for indeks %d"
|
||||||
@ -5022,7 +5024,9 @@ ER_UNKNOWN_STORAGE_ENGINE 42000
|
|||||||
ger "Unbekannte Speicher-Engine '%s'"
|
ger "Unbekannte Speicher-Engine '%s'"
|
||||||
por "Motor de tabela desconhecido '%s'"
|
por "Motor de tabela desconhecido '%s'"
|
||||||
spa "Desconocido motor de tabla '%s'"
|
spa "Desconocido motor de tabla '%s'"
|
||||||
ER_UNUSED_1
|
# When using this error code, use ER(ER_WARN_DEPRECATED_SYNTAX_WITH_VER)
|
||||||
|
# for the message string. See, for example, code in mysql_priv.h.
|
||||||
|
ER_WARN_DEPRECATED_SYNTAX
|
||||||
eng "'%s' is deprecated; use '%s' instead"
|
eng "'%s' is deprecated; use '%s' instead"
|
||||||
ger "'%s' ist veraltet. Bitte benutzen Sie '%s'"
|
ger "'%s' ist veraltet. Bitte benutzen Sie '%s'"
|
||||||
por "'%s' é desatualizado. Use '%s' em seu lugar"
|
por "'%s' é desatualizado. Use '%s' em seu lugar"
|
||||||
@ -5606,8 +5610,6 @@ ER_SP_RECURSION_LIMIT
|
|||||||
ER_SP_PROC_TABLE_CORRUPT
|
ER_SP_PROC_TABLE_CORRUPT
|
||||||
eng "Failed to load routine %-.192s. The table mysql.proc is missing, corrupt, or contains bad data (internal code %d)"
|
eng "Failed to load routine %-.192s. The table mysql.proc is missing, corrupt, or contains bad data (internal code %d)"
|
||||||
ger "Routine %-.192s konnte nicht geladen werden. Die Tabelle mysql.proc fehlt, ist beschädigt, oder enthält fehlerhaften Daten (interner Code: %d)"
|
ger "Routine %-.192s konnte nicht geladen werden. Die Tabelle mysql.proc fehlt, ist beschädigt, oder enthält fehlerhaften Daten (interner Code: %d)"
|
||||||
ER_FOREIGN_SERVER_EXISTS
|
|
||||||
eng "The foreign server, %s, you are trying to create already exists."
|
|
||||||
ER_SP_WRONG_NAME 42000
|
ER_SP_WRONG_NAME 42000
|
||||||
eng "Incorrect routine name '%-.192s'"
|
eng "Incorrect routine name '%-.192s'"
|
||||||
ger "Ungültiger Routinenname '%-.192s'"
|
ger "Ungültiger Routinenname '%-.192s'"
|
||||||
@ -5629,6 +5631,34 @@ ER_NON_GROUPING_FIELD_USED 42000
|
|||||||
ER_TABLE_CANT_HANDLE_SPKEYS
|
ER_TABLE_CANT_HANDLE_SPKEYS
|
||||||
eng "The used table type doesn't support SPATIAL indexes"
|
eng "The used table type doesn't support SPATIAL indexes"
|
||||||
ger "Der verwendete Tabellentyp unterstützt keine SPATIAL-Indizes"
|
ger "Der verwendete Tabellentyp unterstützt keine SPATIAL-Indizes"
|
||||||
|
ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
|
||||||
|
eng "Triggers can not be created on system tables"
|
||||||
|
ger "Trigger können nicht auf Systemtabellen erzeugt werden"
|
||||||
|
ER_REMOVED_SPACES
|
||||||
|
eng "Leading spaces are removed from name '%s'"
|
||||||
|
ger "Führende Leerzeichen werden aus dem Namen '%s' entfernt"
|
||||||
|
ER_AUTOINC_READ_FAILED
|
||||||
|
eng "Failed to read auto-increment value from storage engine"
|
||||||
|
ger "Lesen des Autoincrement-Werts von der Speicher-Engine fehlgeschlagen"
|
||||||
|
ER_USERNAME
|
||||||
|
eng "user name"
|
||||||
|
ger "Benutzername"
|
||||||
|
ER_HOSTNAME
|
||||||
|
eng "host name"
|
||||||
|
ger "Hostname"
|
||||||
|
ER_WRONG_STRING_LENGTH
|
||||||
|
eng "String '%-.70s' is too long for %s (should be no longer than %d)"
|
||||||
|
ger "String '%-.70s' ist zu lang für %s (sollte nicht länger sein als %d)"
|
||||||
|
ER_NON_INSERTABLE_TABLE
|
||||||
|
eng "The target table %-.100s of the %s is not insertable-into"
|
||||||
|
ger "Die Zieltabelle %-.100s von %s ist nicht einfügbar"
|
||||||
|
ER_ADMIN_WRONG_MRG_TABLE
|
||||||
|
eng "Table '%-.64s' is differently defined or of non-MyISAM type or doesn't exist"
|
||||||
|
ER_FOREIGN_SERVER_EXISTS
|
||||||
|
eng "The foreign server, %s, you are trying to create already exists."
|
||||||
|
ER_FOREIGN_SERVER_DOESNT_EXIST
|
||||||
|
eng "The foreign server name you are trying to reference does not exist. Data source error: %-.64s"
|
||||||
|
ger "Die externe Verbindung, auf die Sie zugreifen wollen, existiert nicht. Datenquellenfehlermeldung: %-.64s"
|
||||||
ER_ILLEGAL_HA_CREATE_OPTION
|
ER_ILLEGAL_HA_CREATE_OPTION
|
||||||
eng "Table storage engine '%-.64s' does not support the create option '%.64s'"
|
eng "Table storage engine '%-.64s' does not support the create option '%.64s'"
|
||||||
ger "Speicher-Engine '%-.64s' der Tabelle unterstützt die Option '%.64s' nicht"
|
ger "Speicher-Engine '%-.64s' der Tabelle unterstützt die Option '%.64s' nicht"
|
||||||
@ -5848,9 +5878,6 @@ ER_BINLOG_ROW_WRONG_TABLE_DEF
|
|||||||
ER_BINLOG_ROW_RBR_TO_SBR
|
ER_BINLOG_ROW_RBR_TO_SBR
|
||||||
eng "Slave running with --log-slave-updates must use row-based binary logging to be able to replicate row-based binary log events"
|
eng "Slave running with --log-slave-updates must use row-based binary logging to be able to replicate row-based binary log events"
|
||||||
ger "Slave, die mit --log-slave-updates laufen, müssen zeilenbasiertes Loggen verwenden, um zeilenbasierte Binärlog-Ereignisse loggen zu können"
|
ger "Slave, die mit --log-slave-updates laufen, müssen zeilenbasiertes Loggen verwenden, um zeilenbasierte Binärlog-Ereignisse loggen zu können"
|
||||||
ER_FOREIGN_SERVER_DOESNT_EXIST
|
|
||||||
eng "The foreign server name you are trying to reference does not exist. Data source error: %-.64s"
|
|
||||||
ger "Die externe Verbindung, auf die Sie zugreifen wollen, existiert nicht. Datenquellenfehlermeldung: %-.64s"
|
|
||||||
ER_EVENT_ALREADY_EXISTS
|
ER_EVENT_ALREADY_EXISTS
|
||||||
eng "Event '%-.192s' already exists"
|
eng "Event '%-.192s' already exists"
|
||||||
ger "Event '%-.192s' existiert bereits"
|
ger "Event '%-.192s' existiert bereits"
|
||||||
@ -5901,7 +5928,9 @@ ER_EVENT_DATA_TOO_LONG
|
|||||||
ER_DROP_INDEX_FK
|
ER_DROP_INDEX_FK
|
||||||
eng "Cannot drop index '%-.192s': needed in a foreign key constraint"
|
eng "Cannot drop index '%-.192s': needed in a foreign key constraint"
|
||||||
ger "Kann Index '%-.192s' nicht löschen: wird für einen Fremdschlüssel benötigt"
|
ger "Kann Index '%-.192s' nicht löschen: wird für einen Fremdschlüssel benötigt"
|
||||||
ER_WARN_DEPRECATED_SYNTAX
|
# When using this error message, use the ER_WARN_DEPRECATED_SYNTAX error
|
||||||
|
# code. See, for example, code in mysql_priv.h.
|
||||||
|
ER_WARN_DEPRECATED_SYNTAX_WITH_VER
|
||||||
eng "The syntax '%s' is deprecated and will be removed in MySQL %s. Please use %s instead"
|
eng "The syntax '%s' is deprecated and will be removed in MySQL %s. Please use %s instead"
|
||||||
ger "Die Syntax '%s' ist veraltet und wird in MySQL %s entfernt. Bitte benutzen Sie statt dessen %s"
|
ger "Die Syntax '%s' ist veraltet und wird in MySQL %s entfernt. Bitte benutzen Sie statt dessen %s"
|
||||||
ER_CANT_WRITE_LOCK_LOG_TABLE
|
ER_CANT_WRITE_LOCK_LOG_TABLE
|
||||||
@ -5916,9 +5945,6 @@ ER_FOREIGN_DUPLICATE_KEY 23000 S1009
|
|||||||
ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
|
ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE
|
||||||
eng "Column count of mysql.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. Please use mysql_upgrade to fix this error."
|
eng "Column count of mysql.%s is wrong. Expected %d, found %d. Created with MySQL %d, now running %d. Please use mysql_upgrade to fix this error."
|
||||||
ger "Spaltenanzahl von mysql.%s falsch. %d erwartet, aber %d erhalten. Erzeugt mit MySQL %d, jetzt unter %d. Bitte benutzen Sie mysql_upgrade, um den Fehler zu beheben"
|
ger "Spaltenanzahl von mysql.%s falsch. %d erwartet, aber %d erhalten. Erzeugt mit MySQL %d, jetzt unter %d. Bitte benutzen Sie mysql_upgrade, um den Fehler zu beheben"
|
||||||
ER_REMOVED_SPACES
|
|
||||||
eng "Leading spaces are removed from name '%s'"
|
|
||||||
ger "Führende Leerzeichen werden aus dem Namen '%s' entfernt"
|
|
||||||
ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
|
ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR
|
||||||
eng "Cannot switch out of the row-based binary log format when the session has open temporary tables"
|
eng "Cannot switch out of the row-based binary log format when the session has open temporary tables"
|
||||||
ger "Kann nicht aus dem zeilenbasierten Binärlog-Format herauswechseln, wenn die Sitzung offene temporäre Tabellen hat"
|
ger "Kann nicht aus dem zeilenbasierten Binärlog-Format herauswechseln, wenn die Sitzung offene temporäre Tabellen hat"
|
||||||
@ -5975,9 +6001,6 @@ ER_BASE64_DECODE_ERROR
|
|||||||
eng "Decoding of base64 string failed"
|
eng "Decoding of base64 string failed"
|
||||||
swe "Avkodning av base64 sträng misslyckades"
|
swe "Avkodning av base64 sträng misslyckades"
|
||||||
ger "Der Server hat keine zeilenbasierte Replikation"
|
ger "Der Server hat keine zeilenbasierte Replikation"
|
||||||
ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA
|
|
||||||
eng "Triggers can not be created on system tables"
|
|
||||||
ger "Trigger können nicht auf Systemtabellen erzeugt werden"
|
|
||||||
ER_EVENT_RECURSION_FORBIDDEN
|
ER_EVENT_RECURSION_FORBIDDEN
|
||||||
eng "Recursion of EVENT DDL statements is forbidden when body is present"
|
eng "Recursion of EVENT DDL statements is forbidden when body is present"
|
||||||
ger "Rekursivität von EVENT-DDL-Anweisungen ist unzulässig wenn ein Hauptteil (Body) existiert"
|
ger "Rekursivität von EVENT-DDL-Anweisungen ist unzulässig wenn ein Hauptteil (Body) existiert"
|
||||||
@ -5987,27 +6010,12 @@ ER_EVENTS_DB_ERROR
|
|||||||
ER_ONLY_INTEGERS_ALLOWED
|
ER_ONLY_INTEGERS_ALLOWED
|
||||||
eng "Only integers allowed as number here"
|
eng "Only integers allowed as number here"
|
||||||
ger "An dieser Stelle sind nur Ganzzahlen zulässig"
|
ger "An dieser Stelle sind nur Ganzzahlen zulässig"
|
||||||
ER_AUTOINC_READ_FAILED
|
|
||||||
eng "Failed to read auto-increment value from storage engine"
|
|
||||||
ger "Lesen des Autoincrement-Werts von der Speicher-Engine fehlgeschlagen"
|
|
||||||
ER_USERNAME
|
|
||||||
eng "user name"
|
|
||||||
ger "Benutzername"
|
|
||||||
ER_HOSTNAME
|
|
||||||
eng "host name"
|
|
||||||
ger "Hostname"
|
|
||||||
ER_WRONG_STRING_LENGTH
|
|
||||||
eng "String '%-.70s' is too long for %s (should be no longer than %d)"
|
|
||||||
ger "String '%-.70s' ist zu lang für %s (sollte nicht länger sein als %d)"
|
|
||||||
ER_UNSUPORTED_LOG_ENGINE
|
ER_UNSUPORTED_LOG_ENGINE
|
||||||
eng "This storage engine cannot be used for log tables""
|
eng "This storage engine cannot be used for log tables""
|
||||||
ger "Diese Speicher-Engine kann für Logtabellen nicht verwendet werden"
|
ger "Diese Speicher-Engine kann für Logtabellen nicht verwendet werden"
|
||||||
ER_BAD_LOG_STATEMENT
|
ER_BAD_LOG_STATEMENT
|
||||||
eng "You cannot '%s' a log table if logging is enabled"
|
eng "You cannot '%s' a log table if logging is enabled"
|
||||||
ger "Sie können eine Logtabelle nicht '%s', wenn Loggen angeschaltet ist"
|
ger "Sie können eine Logtabelle nicht '%s', wenn Loggen angeschaltet ist"
|
||||||
ER_NON_INSERTABLE_TABLE
|
|
||||||
eng "The target table %-.100s of the %s is not insertable-into"
|
|
||||||
ger "Die Zieltabelle %-.100s von %s ist nicht einfügbar"
|
|
||||||
ER_CANT_RENAME_LOG_TABLE
|
ER_CANT_RENAME_LOG_TABLE
|
||||||
eng "Cannot rename '%s'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to '%s'"
|
eng "Cannot rename '%s'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to '%s'"
|
||||||
ger "Kann '%s' nicht umbenennen. Wenn Loggen angeschaltet ist, müssen beim Umbenennen zu/von einer Logtabelle zwei Tabellen angegeben werden: die Logtabelle zu einer Archivtabelle und eine weitere Tabelle zurück zu '%s'"
|
ger "Kann '%s' nicht umbenennen. Wenn Loggen angeschaltet ist, müssen beim Umbenennen zu/von einer Logtabelle zwei Tabellen angegeben werden: die Logtabelle zu einer Archivtabelle und eine weitere Tabelle zurück zu '%s'"
|
||||||
@ -6023,6 +6031,8 @@ ER_WRONG_PARAMETERS_TO_STORED_FCT 42000
|
|||||||
ER_NATIVE_FCT_NAME_COLLISION
|
ER_NATIVE_FCT_NAME_COLLISION
|
||||||
eng "This function '%-.192s' has the same name as a native function"
|
eng "This function '%-.192s' has the same name as a native function"
|
||||||
ger "Die Funktion '%-.192s' hat denselben Namen wie eine native Funktion"
|
ger "Die Funktion '%-.192s' hat denselben Namen wie eine native Funktion"
|
||||||
|
# When using this error message, use the ER_DUP_ENTRY error code. See, for
|
||||||
|
# example, code in handler.cc.
|
||||||
ER_DUP_ENTRY_WITH_KEY_NAME 23000 S1009
|
ER_DUP_ENTRY_WITH_KEY_NAME 23000 S1009
|
||||||
cze "Zvojen-Bý klíè '%-.64s' (èíslo klíèe '%-.192s')"
|
cze "Zvojen-Bý klíè '%-.64s' (èíslo klíèe '%-.192s')"
|
||||||
dan "Ens værdier '%-.64s' for indeks '%-.192s'"
|
dan "Ens værdier '%-.64s' for indeks '%-.192s'"
|
||||||
@ -6059,8 +6069,6 @@ ER_SLAVE_INCIDENT
|
|||||||
eng "The incident %s occured on the master. Message: %-.64s"
|
eng "The incident %s occured on the master. Message: %-.64s"
|
||||||
ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
|
ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT
|
||||||
eng "Table has no partition for some existing values"
|
eng "Table has no partition for some existing values"
|
||||||
ER_ADMIN_WRONG_MRG_TABLE
|
|
||||||
eng "Table '%-.64s' is differently defined or of non-MyISAM type or doesn't exist"
|
|
||||||
ER_BINLOG_UNSAFE_STATEMENT
|
ER_BINLOG_UNSAFE_STATEMENT
|
||||||
eng "Statement is not safe to log in statement format."
|
eng "Statement is not safe to log in statement format."
|
||||||
swe "Detta är inte säkert att logga i statement-format."
|
swe "Detta är inte säkert att logga i statement-format."
|
||||||
|
@ -17,7 +17,28 @@
|
|||||||
|
|
||||||
#ifdef HAVE_SPATIAL
|
#ifdef HAVE_SPATIAL
|
||||||
|
|
||||||
#define MAX_DIGITS_IN_DOUBLE 16
|
/*
|
||||||
|
exponential notation :
|
||||||
|
1 sign
|
||||||
|
1 number before the decimal point
|
||||||
|
1 decimal point
|
||||||
|
14 number of significant digits (see String::qs_append(double))
|
||||||
|
1 'e' sign
|
||||||
|
1 exponent sign
|
||||||
|
3 exponent digits
|
||||||
|
==
|
||||||
|
22
|
||||||
|
|
||||||
|
"f" notation :
|
||||||
|
1 optional 0
|
||||||
|
1 sign
|
||||||
|
14 number significant digits (see String::qs_append(double) )
|
||||||
|
1 decimal point
|
||||||
|
==
|
||||||
|
17
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define MAX_DIGITS_IN_DOUBLE 22
|
||||||
|
|
||||||
/***************************** Gis_class_info *******************************/
|
/***************************** Gis_class_info *******************************/
|
||||||
|
|
||||||
|
@ -1542,6 +1542,8 @@ select_export::prepare(List<Item> &list, SELECT_LEX_UNIT *u)
|
|||||||
field_sep_char= (exchange->enclosed->length() ? (*exchange->enclosed)[0] :
|
field_sep_char= (exchange->enclosed->length() ? (*exchange->enclosed)[0] :
|
||||||
field_term_length ? (*exchange->field_term)[0] : INT_MAX);
|
field_term_length ? (*exchange->field_term)[0] : INT_MAX);
|
||||||
escape_char= (exchange->escaped->length() ? (*exchange->escaped)[0] : -1);
|
escape_char= (exchange->escaped->length() ? (*exchange->escaped)[0] : -1);
|
||||||
|
is_ambiguous_field_sep= test(strchr(ESCAPE_CHARS, field_sep_char));
|
||||||
|
is_unsafe_field_sep= test(strchr(NUMERIC_CHARS, field_sep_char));
|
||||||
line_sep_char= (exchange->line_term->length() ?
|
line_sep_char= (exchange->line_term->length() ?
|
||||||
(*exchange->line_term)[0] : INT_MAX);
|
(*exchange->line_term)[0] : INT_MAX);
|
||||||
if (!field_term_length)
|
if (!field_term_length)
|
||||||
@ -1616,7 +1618,8 @@ bool select_export::send_data(List<Item> &items)
|
|||||||
used_length=min(res->length(),item->max_length);
|
used_length=min(res->length(),item->max_length);
|
||||||
else
|
else
|
||||||
used_length=res->length();
|
used_length=res->length();
|
||||||
if (result_type == STRING_RESULT && escape_char != -1)
|
if ((result_type == STRING_RESULT || is_unsafe_field_sep) &&
|
||||||
|
escape_char != -1)
|
||||||
{
|
{
|
||||||
char *pos, *start, *end;
|
char *pos, *start, *end;
|
||||||
CHARSET_INFO *res_charset= res->charset();
|
CHARSET_INFO *res_charset= res->charset();
|
||||||
@ -1682,7 +1685,9 @@ bool select_export::send_data(List<Item> &items)
|
|||||||
NEED_ESCAPING(pos[1])))
|
NEED_ESCAPING(pos[1])))
|
||||||
{
|
{
|
||||||
char tmp_buff[2];
|
char tmp_buff[2];
|
||||||
tmp_buff[0]= escape_char;
|
tmp_buff[0]= ((int) *pos == field_sep_char &&
|
||||||
|
is_ambiguous_field_sep) ?
|
||||||
|
field_sep_char : escape_char;
|
||||||
tmp_buff[1]= *pos ? *pos : '0';
|
tmp_buff[1]= *pos ? *pos : '0';
|
||||||
if (my_b_write(&cache,(uchar*) start,(uint) (pos-start)) ||
|
if (my_b_write(&cache,(uchar*) start,(uint) (pos-start)) ||
|
||||||
my_b_write(&cache,(uchar*) tmp_buff,2))
|
my_b_write(&cache,(uchar*) tmp_buff,2))
|
||||||
|
@ -1944,9 +1944,30 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define ESCAPE_CHARS "ntrb0ZN" // keep synchronous with READ_INFO::unescape
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
List of all possible characters of a numeric value text representation.
|
||||||
|
*/
|
||||||
|
#define NUMERIC_CHARS ".0123456789e+-"
|
||||||
|
|
||||||
|
|
||||||
class select_export :public select_to_file {
|
class select_export :public select_to_file {
|
||||||
uint field_term_length;
|
uint field_term_length;
|
||||||
int field_sep_char,escape_char,line_sep_char;
|
int field_sep_char,escape_char,line_sep_char;
|
||||||
|
/*
|
||||||
|
The is_ambiguous_field_sep field is true if a value of the field_sep_char
|
||||||
|
field is one of the 'n', 't', 'r' etc characters
|
||||||
|
(see the READ_INFO::unescape method and the ESCAPE_CHARS constant value).
|
||||||
|
*/
|
||||||
|
bool is_ambiguous_field_sep;
|
||||||
|
/*
|
||||||
|
The is_unsafe_field_sep field is true if a value of the field_sep_char
|
||||||
|
field is one of the '0'..'9', '+', '-', '.' and 'e' characters
|
||||||
|
(see the NUMERIC_CHARS constant value).
|
||||||
|
*/
|
||||||
|
bool is_unsafe_field_sep;
|
||||||
bool fixed_row_size;
|
bool fixed_row_size;
|
||||||
public:
|
public:
|
||||||
select_export(sql_exchange *ex) :select_to_file(ex) {}
|
select_export(sql_exchange *ex) :select_to_file(ex) {}
|
||||||
|
@ -695,6 +695,8 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list,
|
|||||||
if (duplic == DUP_REPLACE &&
|
if (duplic == DUP_REPLACE &&
|
||||||
(!table->triggers || !table->triggers->has_delete_triggers()))
|
(!table->triggers || !table->triggers->has_delete_triggers()))
|
||||||
table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE);
|
table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE);
|
||||||
|
if (duplic == DUP_UPDATE)
|
||||||
|
table->file->extra(HA_EXTRA_INSERT_WITH_UPDATE);
|
||||||
/*
|
/*
|
||||||
let's *try* to start bulk inserts. It won't necessary
|
let's *try* to start bulk inserts. It won't necessary
|
||||||
start them as values_list.elements should be greater than
|
start them as values_list.elements should be greater than
|
||||||
@ -2546,6 +2548,8 @@ bool Delayed_insert::handle_inserts(void)
|
|||||||
table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE);
|
table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE);
|
||||||
using_opt_replace= 1;
|
using_opt_replace= 1;
|
||||||
}
|
}
|
||||||
|
if (info.handle_duplicates == DUP_UPDATE)
|
||||||
|
table->file->extra(HA_EXTRA_INSERT_WITH_UPDATE);
|
||||||
thd.clear_error(); // reset error for binlog
|
thd.clear_error(); // reset error for binlog
|
||||||
if (write_record(&thd, table, &info))
|
if (write_record(&thd, table, &info))
|
||||||
{
|
{
|
||||||
@ -2890,6 +2894,8 @@ select_insert::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
|
|||||||
if (info.handle_duplicates == DUP_REPLACE &&
|
if (info.handle_duplicates == DUP_REPLACE &&
|
||||||
(!table->triggers || !table->triggers->has_delete_triggers()))
|
(!table->triggers || !table->triggers->has_delete_triggers()))
|
||||||
table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE);
|
table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE);
|
||||||
|
if (info.handle_duplicates == DUP_UPDATE)
|
||||||
|
table->file->extra(HA_EXTRA_INSERT_WITH_UPDATE);
|
||||||
thd->no_trans_update.stmt= FALSE;
|
thd->no_trans_update.stmt= FALSE;
|
||||||
thd->abort_on_warning= (!info.ignore &&
|
thd->abort_on_warning= (!info.ignore &&
|
||||||
(thd->variables.sql_mode &
|
(thd->variables.sql_mode &
|
||||||
@ -3481,6 +3487,8 @@ select_create::prepare(List<Item> &values, SELECT_LEX_UNIT *u)
|
|||||||
if (info.handle_duplicates == DUP_REPLACE &&
|
if (info.handle_duplicates == DUP_REPLACE &&
|
||||||
(!table->triggers || !table->triggers->has_delete_triggers()))
|
(!table->triggers || !table->triggers->has_delete_triggers()))
|
||||||
table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE);
|
table->file->extra(HA_EXTRA_WRITE_CAN_REPLACE);
|
||||||
|
if (info.handle_duplicates == DUP_UPDATE)
|
||||||
|
table->file->extra(HA_EXTRA_INSERT_WITH_UPDATE);
|
||||||
if (!thd->prelocked_mode)
|
if (!thd->prelocked_mode)
|
||||||
table->file->ha_start_bulk_insert((ha_rows) 0);
|
table->file->ha_start_bulk_insert((ha_rows) 0);
|
||||||
thd->no_trans_update.stmt= FALSE;
|
thd->no_trans_update.stmt= FALSE;
|
||||||
|
@ -851,6 +851,7 @@ continue_loop:;
|
|||||||
char
|
char
|
||||||
READ_INFO::unescape(char chr)
|
READ_INFO::unescape(char chr)
|
||||||
{
|
{
|
||||||
|
/* keep this switch synchornous with the ESCAPE_CHARS macro */
|
||||||
switch(chr) {
|
switch(chr) {
|
||||||
case 'n': return '\n';
|
case 'n': return '\n';
|
||||||
case 't': return '\t';
|
case 't': return '\t';
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user