mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
remove PBXT
This commit is contained in:
@ -311,7 +311,6 @@ libmysqld/ha_ndbcluster.cc
|
||||
libmysqld/ha_ndbcluster_binlog.cc
|
||||
libmysqld/ha_ndbcluster_cond.cc
|
||||
libmysqld/ha_partition.cc
|
||||
libmysqld/ha_pbxt.cc
|
||||
libmysqld/ha_tina.cc
|
||||
libmysqld/handler.cc
|
||||
libmysqld/handlerton.cc
|
||||
@ -457,7 +456,6 @@ libmysqld/tztime.cc
|
||||
libmysqld/uniques.cc
|
||||
libmysqld/unireg.cc
|
||||
libmysqld/discover_xt.cc
|
||||
libmysqld/ha_pbxt.cc
|
||||
libmysqld/myxt_xt.cc
|
||||
libmysqld/rpl_reporting.cc
|
||||
libmysqld/rpl_utility.cc
|
||||
@ -930,7 +928,6 @@ storage/ndb/tools/ndb_select_count
|
||||
storage/ndb/tools/ndb_show_tables
|
||||
storage/ndb/tools/ndb_test_platform
|
||||
storage/ndb/tools/ndb_waiter
|
||||
storage/pbxt/bin/xtstat
|
||||
storage/xtradb/configure.lineno
|
||||
storage/xtradb/conftest.s1
|
||||
storage/xtradb/conftest.subs
|
||||
@ -1115,7 +1112,6 @@ client/rpl_filter.h
|
||||
client/sql_list.cc
|
||||
client/sql_list.h
|
||||
libmysqld/create_options.cc
|
||||
storage/pbxt/bin/xtstat
|
||||
libmysqld/sql_expression_cache.cc
|
||||
mysql-test/mtr_command
|
||||
scripts/convert-debug-for-diff
|
||||
|
3
debian/mariadb-test-5.5.dirs
vendored
3
debian/mariadb-test-5.5.dirs
vendored
@ -67,9 +67,6 @@ usr/share/mysql/mysql-test/suite/ndb_team
|
||||
usr/share/mysql/mysql-test/suite/ndb_team/t
|
||||
usr/share/mysql/mysql-test/suite/ndb_team/r
|
||||
usr/share/mysql/mysql-test/suite/federated
|
||||
usr/share/mysql/mysql-test/suite/pbxt
|
||||
usr/share/mysql/mysql-test/suite/pbxt/t
|
||||
usr/share/mysql/mysql-test/suite/pbxt/r
|
||||
usr/share/mysql/mysql-test/suite/funcs_1
|
||||
usr/share/mysql/mysql-test/suite/funcs_1/cursors
|
||||
usr/share/mysql/mysql-test/suite/funcs_1/bitdata
|
||||
|
@ -1 +0,0 @@
|
||||
--loose-pbxt
|
@ -43,7 +43,7 @@ create view v1 (c) as
|
||||
SELECT table_name FROM information_schema.TABLES
|
||||
WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') AND
|
||||
table_name not like 'ndb_%' AND table_name not like 'innodb_%' AND
|
||||
table_name not like 'pbxt_%' AND table_name not like 'xtradb_%';
|
||||
table_name not like 'xtradb_%';
|
||||
select * from v1;
|
||||
c
|
||||
CHARACTER_SETS
|
||||
|
@ -1,5 +0,0 @@
|
||||
1,abc
|
||||
2,def
|
||||
3,ghi
|
||||
3,jkl
|
||||
4,opq
|
@ -104,8 +104,6 @@ if (`SELECT IF($query_count > 1, 1, 0)`)
|
||||
# Detect extra rows:
|
||||
# Allow phantoms in some configurations:
|
||||
# - InnoDB default settings
|
||||
# - Falcon's falcon_consistent_read=0 (non-default setting)
|
||||
# (TODO: What about PBXT?)
|
||||
#
|
||||
###########################
|
||||
# TODO: Execute a query against tmp1 and tmp2 which selects new rows (rows
|
||||
|
@ -13,14 +13,6 @@ if (`SELECT @@storage_engine LIKE 'InnoDB' AND @@version LIKE '%6.%'`)
|
||||
--enable_query_log
|
||||
}
|
||||
|
||||
if (`SELECT @@storage_engine LIKE 'PBXT' AND @@version LIKE '%5.1%'`)
|
||||
{
|
||||
--disable_query_log
|
||||
SET SESSION binlog_format = 'MIXED';
|
||||
SET GLOBAL binlog_format = 'MIXED';
|
||||
--enable_query_log
|
||||
}
|
||||
|
||||
# Verify default storage engine.
|
||||
SHOW VARIABLES LIKE 'storage_engine';
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
def information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 32 96 NULL NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
@ -422,7 +421,6 @@ COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
@ -435,7 +433,6 @@ COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
@ -448,7 +445,6 @@ COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
@ -473,7 +469,6 @@ COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
|
@ -12,7 +12,7 @@ AS "user_comment",
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%' AND table_name not like 'xtradb_%'
|
||||
AND table_name not like 'xtradb_%'
|
||||
ORDER BY table_schema,table_name;
|
||||
TABLE_CATALOG def
|
||||
TABLE_SCHEMA information_schema
|
||||
@ -812,7 +812,7 @@ AS "user_comment",
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%' AND table_name not like 'xtradb_%'
|
||||
AND table_name not like 'xtradb_%'
|
||||
ORDER BY table_schema,table_name;
|
||||
TABLE_CATALOG def
|
||||
TABLE_SCHEMA information_schema
|
||||
|
@ -12,7 +12,7 @@ AS "user_comment",
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%' AND table_name not like 'xtradb_%'
|
||||
AND table_name not like 'xtradb_%'
|
||||
ORDER BY table_schema,table_name;
|
||||
TABLE_CATALOG def
|
||||
TABLE_SCHEMA information_schema
|
||||
@ -812,7 +812,7 @@ AS "user_comment",
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%' AND table_name not like 'xtradb_%'
|
||||
AND table_name not like 'xtradb_%'
|
||||
ORDER BY table_schema,table_name;
|
||||
TABLE_CATALOG def
|
||||
TABLE_SCHEMA information_schema
|
||||
|
@ -21,6 +21,5 @@ if (`SELECT VERSION() NOT LIKE '%embedded%'`)
|
||||
}
|
||||
|
||||
let $my_where = WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%';
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%';
|
||||
--source suite/funcs_1/datadict/columns.inc
|
||||
|
@ -15,5 +15,5 @@
|
||||
--source include/not_embedded.inc
|
||||
let $my_where = WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%' AND table_name not like 'xtradb_%';
|
||||
AND table_name not like 'xtradb_%';
|
||||
--source suite/funcs_1/datadict/tables1.inc
|
||||
|
@ -19,5 +19,5 @@ if (`SELECT VERSION() NOT LIKE '%embedded%'`)
|
||||
}
|
||||
let $my_where = WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling' AND table_name not like 'innodb_%'
|
||||
AND table_name not like 'pbxt_%' AND table_name not like 'xtradb_%';
|
||||
AND table_name not like 'xtradb_%';
|
||||
--source suite/funcs_1/datadict/tables1.inc
|
||||
|
@ -51,7 +51,7 @@ create view v1 (c) as
|
||||
SELECT table_name FROM information_schema.TABLES
|
||||
WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') AND
|
||||
table_name not like 'ndb_%' AND table_name not like 'innodb_%' AND
|
||||
table_name not like 'pbxt_%' AND table_name not like 'xtradb_%';
|
||||
table_name not like 'xtradb_%';
|
||||
--sorted_result
|
||||
select * from v1;
|
||||
|
||||
|
@ -26,7 +26,7 @@ perl;
|
||||
@plugins=qw/innodb ndb archive blackhole federated partition ndbcluster
|
||||
feedback debug temp-pool ssl des-key-file
|
||||
xtradb thread-concurrency super-large-pages
|
||||
mutex-deadlock-detector null-audit maria aria pbxt oqgraph
|
||||
mutex-deadlock-detector null-audit maria aria oqgraph
|
||||
sphinx thread-handling thread-pool query-cache-info/;
|
||||
|
||||
# And substitute the content some environment variables with their
|
||||
|
@ -158,11 +158,6 @@ for eng in $MARIA_BINARIES ; do
|
||||
cp storage/maria/$TARGET/$eng.{exe,pdb} $DESTDIR/bin
|
||||
done
|
||||
|
||||
# PBXT
|
||||
if [ -f "storage/pbxt/bin/xtstat.exe" ] ; then
|
||||
cp storage/pbxt/bin/xtstat.{exe,pdb} $DESTDIR/bin
|
||||
fi
|
||||
|
||||
if [ x"$TARGET" != x"release" ] ; then
|
||||
cp client/$TARGET/mysql.pdb $DESTDIR/bin/
|
||||
cp client/$TARGET/mysqladmin.pdb $DESTDIR/bin/
|
||||
|
@ -417,7 +417,7 @@ mysqld_install_cmd_line()
|
||||
{
|
||||
"$mysqld_bootstrap" $defaults "$mysqld_opt" --bootstrap \
|
||||
"--basedir=$basedir" "--datadir=$ldata" --log-warnings=0 --loose-skip-innodb \
|
||||
--loose-skip-ndbcluster --loose-skip-pbxt $args --max_allowed_packet=8M \
|
||||
--loose-skip-ndbcluster $args --max_allowed_packet=8M \
|
||||
--default-storage-engine=myisam \
|
||||
--net_buffer_length=16K
|
||||
}
|
||||
|
@ -191,11 +191,6 @@ sub new
|
||||
{
|
||||
$self->{'transactions'} = 1; # Transactions enabled
|
||||
}
|
||||
if (defined($main::opt_create_options) &&
|
||||
$main::opt_create_options =~ /engine=pbxt/i)
|
||||
{
|
||||
$self->{'transactions'} = 1; # Transactions enabled
|
||||
}
|
||||
if (defined($main::opt_create_options) &&
|
||||
$main::opt_create_options =~ /engine=ndb/i)
|
||||
{
|
||||
|
@ -176,8 +176,7 @@ static struct
|
||||
|
||||
/* we disable few other plugins by default */
|
||||
{ "ndbcluster", PLUGIN_OFF },
|
||||
{ "feedback", PLUGIN_OFF },
|
||||
{ "pbxt", PLUGIN_OFF }
|
||||
{ "feedback", PLUGIN_OFF }
|
||||
};
|
||||
|
||||
/* support for Services */
|
||||
|
@ -1,4 +0,0 @@
|
||||
Paul McCullagh
|
||||
paul.mccullagh@primebase.org
|
||||
http://www.primebase.org
|
||||
http://pbxt.blogspot.com
|
@ -1,99 +0,0 @@
|
||||
# Copyright (c) 2008 PrimeBase Technologies GmbH
|
||||
#
|
||||
# PrimeBase XT
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# 2006-03-22 Paul McCullagh
|
||||
#
|
||||
# H&G2JCtL
|
||||
#
|
||||
# This file is used to make the Windows version
|
||||
|
||||
IF(NOT WITH_PBXT_STORAGE_ENGINE)
|
||||
SET(WITHOUT_PBXT 1)
|
||||
ENDIF(NOT WITH_PBXT_STORAGE_ENGINE)
|
||||
|
||||
|
||||
SET(PBXT_SOURCES
|
||||
src/bsearch_xt.cc
|
||||
src/bsearch_xt.h
|
||||
src/cache_xt.cc
|
||||
src/cache_xt.h
|
||||
src/ccutils_xt.cc
|
||||
src/ccutils_xt.h
|
||||
src/database_xt.cc
|
||||
src/database_xt.h
|
||||
src/datadic_xt.cc
|
||||
src/datadic_xt.h
|
||||
src/datalog_xt.cc
|
||||
src/datalog_xt.h
|
||||
src/discover_xt.cc
|
||||
src/discover_xt.h
|
||||
src/filesys_xt.cc
|
||||
src/filesys_xt.h
|
||||
src/hashtab_xt.cc
|
||||
src/hashtab_xt.h
|
||||
src/ha_pbxt.cc
|
||||
src/ha_pbxt.h
|
||||
src/ha_xtsys.cc
|
||||
src/ha_xtsys.h
|
||||
src/heap_xt.cc
|
||||
src/heap_xt.h
|
||||
src/index_xt.cc
|
||||
src/index_xt.h
|
||||
src/linklist_xt.cc
|
||||
src/linklist_xt.h
|
||||
src/locklist_xt.cc
|
||||
src/locklist_xt.h
|
||||
src/lock_xt.cc
|
||||
src/lock_xt.h
|
||||
src/memory_xt.cc
|
||||
src/memory_xt.h
|
||||
src/myxt_xt.cc
|
||||
src/myxt_xt.h
|
||||
src/pbms.h
|
||||
src/pbms_enabled.cc
|
||||
src/pbms_enabled.h
|
||||
src/pthread_xt.cc
|
||||
src/pthread_xt.h
|
||||
src/restart_xt.cc
|
||||
src/restart_xt.h
|
||||
src/sortedlist_xt.cc
|
||||
src/sortedlist_xt.h
|
||||
src/strutil_xt.cc
|
||||
src/strutil_xt.h
|
||||
src/systab_xt.cc
|
||||
src/systab_xt.h
|
||||
src/tabcache_xt.cc
|
||||
src/tabcache_xt.h
|
||||
src/table_xt.cc
|
||||
src/table_xt.h
|
||||
src/thread_xt.cc
|
||||
src/thread_xt.h
|
||||
src/trace_xt.cc
|
||||
src/trace_xt.h
|
||||
src/util_xt.cc
|
||||
src/util_xt.h
|
||||
src/xaction_xt.cc
|
||||
src/xaction_xt.h
|
||||
src/xactlog_xt.cc
|
||||
src/xactlog_xt.h
|
||||
src/xt_config.h
|
||||
src/xt_defs.h
|
||||
src/xt_errno.h)
|
||||
|
||||
MYSQL_ADD_PLUGIN(pbxt ${PBXT_SOURCES} STORAGE_ENGINE STATIC_ONLY)
|
||||
|
@ -1,964 +0,0 @@
|
||||
PBXT Release Notes
|
||||
==================
|
||||
|
||||
------- 1.0.11-7 Pre-GA - 2010-09-09
|
||||
|
||||
RN336: Compiled and tested with MySQL 5.1.50.
|
||||
|
||||
RN335: Fixed bug #523994: Deleting all records does not update table statistics.
|
||||
|
||||
RN334: Made a change to reduce the time that only temporary tables exist during the ALTER TABLE and REPAIR TABLE statements. This increases the chance of recovery if a crash occurs during these operations.
|
||||
|
||||
RN333: Log name of table when PBXT recovers an index on startup. If an error occurs during index recovery, the index is set to "repair pending".
|
||||
|
||||
RN332: Fixed an inifinite loop when a record in a row is corrupt. Added logging and set the table to "repair pending" in this case.
|
||||
|
||||
RN331: Fixed bug #626890: Crash on truncate table operation.
|
||||
|
||||
RN330: Added additional checks for corruption of the index free list.
|
||||
|
||||
------- 1.0.11-6 Pre-GA - 2010-07-08
|
||||
|
||||
RN329: Fixed bug #601245: make fails. PBXT did not compile if the partition engine was disabled in the MySQL build.
|
||||
|
||||
------- 1.0.11-5 Pre-GA - 2010-06-18
|
||||
|
||||
RN328: Fixed bug #595478: Compile fails (1.0.11-4).
|
||||
|
||||
------- 1.0.11-4 Pre-GA - 2010-06-15
|
||||
|
||||
RN327: Fixed a bug that caused a crash during delete on the index. The crash occurred due to memory overwrite when a long key is promoted after a shorter key is deleted, and the difference causes a node size overflow.
|
||||
|
||||
------- 1.0.11-3 Pre-GA - 2010-06-11
|
||||
|
||||
RN326: Fixed bug #587740: pbxt-1.0.11-pre2-ga first time create partition table error. This was not a new bug. The problem was the PBXT system table's .frm files are corrupted when the first PBXT table created is a partition table.
|
||||
|
||||
RN325: Fixed the "to-sweep" column output in xtstat.
|
||||
|
||||
------- 1.0.11-2 Pre-GA - 2010-05-26
|
||||
|
||||
RN324: Fixed bug #584070:pbxt-1.0.11-pre-ga does not work with mysql 5.1.47. This bug fix removes a hack which was done to avoid running into the LOCK_plugin lock.
|
||||
|
||||
------- 1.0.11-1 Pre-GA - 2010-05-19
|
||||
|
||||
RN323: Detect corruption of a key length in an index page. This bug fix avoids a possible crash due to index page corruption.
|
||||
|
||||
------- 1.0.11 Pre-GA - 2010-05-11
|
||||
|
||||
RN322: Creating a table the references a non-existing table can now only be done if you set: foreign_key_checks = 0. Also fixed a failure when creating tables with recursive foreign key declarations.
|
||||
|
||||
RN321: Added "Extended record count" to the CHECK TABLE output. This indicates the number of records that have a data log component.
|
||||
|
||||
RN320: All tests now run with MySQL 5.1.46.
|
||||
|
||||
------- 1.0.10n RC4 - 2010-04-28
|
||||
|
||||
RN319: Fix RN1/3 and RN1/4 back-ported from 1.1: Fixed a deadlock that could occur during low index cache situations and added some checks for index corruption, and added the try lock variation for R/W locks.
|
||||
|
||||
RN318: Fixed a bug in the atomic R/W lock. This bug occurred on multi-core Linux when under extrem load. The affect was that an index lookup could fail. The index was not corrupted.
|
||||
|
||||
------- 1.0.10m RC4 - 2010-03-29
|
||||
|
||||
RN317: This change prevents a unscheduled checkpoint from occurring when the sweeper has work to do. Checkpoint required due to the Checkpoint threshold reached are done as usual.
|
||||
|
||||
------- 1.0.10k RC4 - 2010-03-29
|
||||
|
||||
RN316: Set the maximum delay, while waiting for previous transactions to commit to 1/100s. This situation occurs when cleanup begins of a long running transaction.
|
||||
|
||||
RN315: Fixed a bug that could lead to a data log error, for example: Data log not found: '.../dlog-129602.xt'. This error occurred after a duplicate key error, dending on the table structure, because the row buffer was not restored after writing an extended record.
|
||||
|
||||
RN314: Server startup time could be very long when data logs become large because the log size was not save in the header when a data log is full.
|
||||
|
||||
------- 1.0.10j RC4 - 2010-03-24
|
||||
|
||||
RN313: Fixed an error in the calculation of the handle data record (.xtd files) size when AVG_ROW_LENGTH is set explicitly to a value less than 12. For example:
|
||||
|
||||
CREATE TABLE objs (
|
||||
id int(10) unsigned NOT NULL,
|
||||
objdata mediumblob NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=PBXT AVG_ROW_LENGTH=10
|
||||
|
||||
This table definition previously lead to corruption of the table because the handle data record was set to 24 (14+10), which is less than the minimum (for variable length records) handle data record size of 26.
|
||||
|
||||
This minimum consists of 14 byte record header and 12 bytes reference to the extended record data (the part of the record in the data log).
|
||||
|
||||
Tip: when setting AVG_ROW_LENGTH you should normally add 12 to the average row length estimate to ensure that the average length part of the record is always in the handle data file. This is important, for example if you wish to make sure that the rows used to build indexes are in the handle data file. CHECK TABLE tells you how many rows are in the "fixed length part" of the record (output in MySQL error log). In the example above, this would be AVG_ROW_LENGTH=17.
|
||||
|
||||
The maximum size of a field can be calculated adding the maximum byte size as described here: http://dev.mysql.com/doc/refman/5.1/en/storage-requirements.html, and then add the following values, depending on the byte size:
|
||||
|
||||
byte size <= 240, add 1
|
||||
byte size < 2^16 (65536), add 3
|
||||
byte size < 2^24 (16777216), add 4
|
||||
byte size > 2^24, add 5
|
||||
|
||||
------- 1.0.10i RC4 - 2010-03-17
|
||||
|
||||
RN312: Fixed bug #534361: Valgrind error: write of uninitialised bytes in xt_flush_indices()
|
||||
|
||||
RN311: Fixed ilog corruption when running out of disk space during an index flush operation, which lead to corruption of the index.
|
||||
|
||||
------- 1.0.10h RC4 - 2010-02-25
|
||||
|
||||
RN310: Fixed Windows atomic INC/DEC operations, which lead to atomic R/W lock not working correctly. The result was that some index entries were not foound.
|
||||
|
||||
RN309: Fixed a bug that caused a crash when the index was corrupted. The crash occurs if the index page in not completely written, and an item in the index has a bad length.
|
||||
|
||||
RN308: Fixed bug #509803: can't run tpcc (cannot compare FKs that rely on indexes of different length).
|
||||
|
||||
------- 1.0.10g RC4 - 2010-02-11
|
||||
|
||||
RN307: 2010-02-15: Set the internal version number 1.0.10g.
|
||||
|
||||
RN306: All tests now run with MySQL 5.1.42.
|
||||
|
||||
RN305: Fixed a bug that could cause a crash in filesort. The problem was that the return row estimate was incorrect, which caused the result of estimate_rows_upper_bound() to overflow to zero. Row estimate has been changed, and no longer takes into account deleted rows (so the row estimate is now a maximum).
|
||||
|
||||
RN304: Fixed bug #513012: On a table with a trigger the same record is updated more than once in one statement
|
||||
|
||||
------- 1.0.10f RC4 - 2010-01-29
|
||||
|
||||
RN303: Fix RN1/10 back-ported from 1.1: Fixed a bug in the record cache that caused PBXT to think it had run out of cache memory. The effect was that PBXT used less and less cache over time. The bug occurs during heavy concurrent access on the record cache. The affect is the PBXT gets slower and slower.
|
||||
|
||||
RN302: Fix RN1/11 back-ported from 1.1: Corrected a problem that sometimes caused a pause in activity when the record cache was full.
|
||||
|
||||
------- 1.0.10e RC4 - 2010-01-25
|
||||
|
||||
RN301: Fixed index statistics calculation. This bug lead to the wrong indices being selected by the optimizer because all indices returned the same cost.
|
||||
|
||||
RN300: Fixed bug #509968: START TRANSACTION WITH CONSISTENT SNAPSHOT breaks transactional flow.
|
||||
|
||||
RN299: Fixed bug #509218: Server asserts with Assertion `mutex->__data.__owner == 0' failed on high concurrency OLTP test.
|
||||
|
||||
------- 1.0.10d RC4 - 2010-01-11
|
||||
|
||||
RN298: Fixed a bug that caused huge amounts of transaction log to be written when pbxt_flush_log_at_trx_commit = 2.
|
||||
|
||||
------- 1.0.10c RC4 - 2009-12-29
|
||||
|
||||
RN297: Updated "LOCK TABLES ... READ LOCAL" behavior to be more restrictive and compatible with InnoDB
|
||||
|
||||
RN296: Fixed bug #499026: START TRANSACTION WITH CONSISTENT SNAPSHOT does not work for PBXT
|
||||
|
||||
------- 1.0.10 RC4 - 2009-12-18
|
||||
|
||||
RN295: PBXT tests now all run with MySQL 5.1.41.
|
||||
|
||||
RN294: Fixed bug #483714: a broken table can prevent other tables from opening
|
||||
|
||||
RN293: Added system variable pbxt_flush_log_at_trx_commit. The value of this variable determines whether the transaction log is written and/or flushed when a transaction is ended. A value of 0 means don't write or flush the transaction log, 1 means write and flush and 2 means write, but do not flush. No matter what the setting is choosen, the transaction log is written and flushed at least once per second.
|
||||
|
||||
------- 1.0.09g RC3 - 2009-12-16
|
||||
|
||||
RN292: Fixed a bug that resulted in 2-phase commit not being used between PBXT and the binlog. This bug was a result of a hack which as added to solve a problem in an pre-release version of MySQL 5.1. The hack was removed.
|
||||
|
||||
------- 1.0.09f RC3 - 2009-11-30
|
||||
|
||||
RN291: Fixed bug #489088: On shutdown MySQL reports: [Warning] Plugin 'PBXT' will be forced to shutdown.
|
||||
|
||||
RN290: Fixed bug #345524: pbxt does not compile on 64 bit windows. Currently atomic operations are not supported on this platform.
|
||||
|
||||
RN286: Fixed a bug introduced in RN281, which could cause an index scan to hang. The original change was to prevent a warning in Valgrind.
|
||||
|
||||
RN285: Merged changes required to compile with Drizzle.
|
||||
|
||||
RN284: Fixed bug that cause the error "[ERROR] Invalid (old?) table or database name 'mysqld.1'", when running temp_table.test under MariaDB (thanks to Monty for his initial bug fix). Added a fix for partition table names as well.
|
||||
|
||||
RN283: Added win_inttypes.h to the distribution. This file is only required for the Windows build.
|
||||
|
||||
RN282: Fixed bug #451101: jump or move depends on uninitialised value in myxt_get_key_length
|
||||
|
||||
RN281: Fixed bug #451080: Uninitialised memory write in XTDatabaseLog::xlog_append
|
||||
|
||||
RN280: Fixed bug #451085: jump or move depends on uninitialised value in my_type_to_string
|
||||
|
||||
RN279: Fixed bug #441000: xtstat crashes with segmentation fault on startup if max_pbxt_threads exceeded.
|
||||
|
||||
------- 1.0.09e RC3 - 2009-11-20
|
||||
|
||||
RN278: Fixed compile error with MySQL 5.1.41.
|
||||
|
||||
------- 1.0.09d RC3 - 2009-09-30
|
||||
|
||||
RN277: Added r/o flag to pbxt_max_threads server variable (this fix is related to bug #430637)
|
||||
|
||||
RN276: Added test case for replication on tables w/o PKs (see bug #430716)
|
||||
|
||||
RN275: Fixed bug #430600: 'Failed to read auto-increment value from storage engine' error.
|
||||
|
||||
RN274: Fixed bug #431240: This report is public edit xtstat fails if no PBXT table has been created. xtstat now accepts --database=information_schema or --database=pbxt. Depending on this setting PBXT will either use the information_schema.pbxt_statistics or the pbxt.statistics table. If information_schema is used, then the statistics are displayed even when no PBXT table exists. Recovery activity is also displayed, unless pbxt_support_xa=1, in which case MySQL will wait for PBXT recovery to complete before allowing connections.
|
||||
|
||||
RN273: Fixed bug #430633: XA_RBDEADLOCK is not returned on XA END after the transacting ended with a deadlock.
|
||||
|
||||
RN272: Fixed bug #430596: Backup/restore does not work well even on a basic PBXT table with auto-increment.
|
||||
|
||||
------- 1.0.09c RC3 - 2009-09-16
|
||||
|
||||
RN271: Windows build update: now you can simply put the pbxt directory under <mysql-root>/storage and build the PBXT engine as a part of the source tree. The engine will be linked statically. Be sure to specify the WITH_PBXT_STORAGE_ENGINE option when running win\configure.js
|
||||
|
||||
RN270: Correctly disabled PBMS so that this version now compiles under Windows. If PBMS_ENABLED is defined, PBXT will not compile under Windows becaause of a getpid() call in pbms.h.
|
||||
|
||||
------- 1.0.09 RC3 - 2009-09-09
|
||||
|
||||
RN269: Implemented online backup. A native online backup driver now performs BACKUP and RESTORE DATABASE operations for PBXT. NOTE: This feature is only supported by MySQL 6.0.9 or later.
|
||||
|
||||
RN268: Implemented XA support. PBXT now supports all XA related MySQL statements. The variable pbxt_support_xa determines if XA support is enabled. Note: due to MySQL bug #47134, enabling XA support could lead to a crash.
|
||||
|
||||
------- 1.0.08d RC2 - 2009-09-02
|
||||
|
||||
RN267: Fixed a bug that caused MySQL to crash on shutdown, after an incorrect command line parameter was given. The crash occurred because the background recovery task was not cleaned up before the PBXT engine was de-initialized.
|
||||
|
||||
------- 1.0.08c RC2 - 2009-08-18
|
||||
|
||||
RN266: Updated BLOB streaming glue, used with the PBMS engine. The glue code is now identical to the version of "1.0.08-rc-pbms" version of PBXT available from http://blobstreaming.org/download.
|
||||
|
||||
RN265: Changes the sequential reading of data log files to skip gaps, instead of returning EOF. This ensures that extended data records are preserved even when something goes wrong with the way the file is written.
|
||||
|
||||
RN264: Fixed a bug that cased an "Data log not found" error after an out of disk space error on a log file. This bug is similar to RN262 in that it allows "gaps" to appear in the data logs.
|
||||
|
||||
RN263: Updated xtstat to compile on Windows/MS Visual C++.
|
||||
|
||||
RN262: Merged changes for PBMS version 0.5.09.
|
||||
|
||||
RN261: Concerning bug #377788: Cannot find index for FK. Fixed buffer overflow which occurred when the error was reported.
|
||||
|
||||
RN260: Fixed bug #377788: Cannot find index for FK. PBXT now correctly uses prefix of an index to support FK references (e.g. if key = (c1, c2) then an index on (c1, c2, c3) will work). Also fixed buffer overflow, which occurred when reporting the error.
|
||||
|
||||
RN259: Fixed bug #309424: xtstat doesn't use my.cnf. You can now add an [xtstat] section to my.cnf, for use with xtstat.
|
||||
|
||||
RN258: updated xt_p_join implementation for Windows to check if a thread has already exited or has not yet started
|
||||
|
||||
RN257: Removed false assertion that could fail during restore if a transaction log page was zero-filled
|
||||
|
||||
RN256: Update datalog eof pointer only if write opearions were sucessful
|
||||
|
||||
RN255: Added re-allocation of of filemap if allocating the of the new map failed. This often happens if there's not enough space on disk.
|
||||
|
||||
RN254: When a table with a corrupted index is detected, PBXT creates a file called 'repair-pending' in the pbxt directory, with the name of the table in it. Each table in the file is listed on a line by itself (the last line has no trailing \n). When the table is repaired (using the REPAIR TABLE command), this entry is removed from the file.
|
||||
|
||||
RN253: Use fcntl(F_FULLFSYNC) instead of fsync on platforms that support it. Improper fsync operation was presumably the reason of index corruption on Mac OS X.
|
||||
|
||||
RN252: Fixed bug #368692: PBXT not reporting data size correctly in information_schema.
|
||||
|
||||
------- 1.0.08 RC2 - 2009-06-30
|
||||
|
||||
RN251: A Windows-specific test update, also removed false assertion that failed on Windows.
|
||||
|
||||
RN250: Fixed a bug that caused recovery to fail when the transaction log ID exceeded 255. The problem was a checksum failed in the log record.
|
||||
|
||||
RN249: Fixed bug #313176: Test case timeout. This happened because record cache pages where not properly freed and as soon as cache filled up the performacne degraded.
|
||||
|
||||
RN248: PBXT now compiles and runs with MySQL 5.1.35. All tests pass.
|
||||
|
||||
RN247: Fixed bug #369086: Incosistent/Incorrect Truncate behavior
|
||||
|
||||
RN246: Fixed bug #378222: Drop sakila causes error: Cannot delete or update a parent row: a foreign key constraint fails
|
||||
|
||||
RN245: Fixed bug #379315: Inconsistent behavior of DELETE IGNORE and FK constraint.
|
||||
|
||||
RN244: Fixed a recovery problem: during the recovery of "record modified" action the table was updated before the old index entries were removed; then the xres_remove_index_entries was supplied the new record which lead to incorrect index update.
|
||||
|
||||
RN243: Fixed a bug that caused a recovery failure if partitioned pbxt tables where present. This happended because the recovery used a MySQL function to open tables and the PBXT handler was not yet registered
|
||||
|
||||
RN242: Fixed a bug that caused a deadlock if pbxt initialization failed. This happened because pbxt ceanup was done from pbxt_init() with PLUGIN_lock being held by MySQL which lead to a deadlock in the freeer thread
|
||||
|
||||
RN241: Fixed a heap corruption bug (writing to a freed memory location). It happened only when memory mapped files were used leading to heap inconsistency and program crash or termination by heap checker. Likely to happen right after or during DROP TABLE but possible in other cases too.
|
||||
|
||||
RN240: Load the record cache on read when no using memory mapped files.
|
||||
|
||||
RN239: Added PBXT variable pbxt_max_threads. This is the maximum number of threads that can be created PBXT. By default this value is set to 0 which means the number of threads is derived from the MySQL variable max_connections. The value used is max_connections+7. Under Drizzle the default value is 500.
|
||||
|
||||
RN238: Added an option to wait for the sweeper to clean up old transactions on a particular connection. This prevents the sweeper from getting too far behind.
|
||||
|
||||
RN237: Added an option to lazy delete fixed length index entries. This means the index entries are just marked for deletion, instead of removing the items from the index page. This has the advantage that an exclusive lock is not always required for deletion.
|
||||
|
||||
RN236: Fixed bug #349177: a bug in configure.in script.
|
||||
|
||||
RN235: Fixed bug 349176: a compiler warning.
|
||||
|
||||
RN234: Completed Drizzle integration. All Drizzle tests now run with PBXT.
|
||||
|
||||
RN233: Fixed bugs which occur when PBXT is used together with PBMS (BLOB Streaming engine).
|
||||
|
||||
RN232: Merged Drizzle-specific changes into the main tree.
|
||||
|
||||
RN231: Fixed a bug that caused bad performance as the number of threads increased. This occurred when the number of open table handles exceeded 'table_open_cache', and MySQL started closing open table handlers. PBXT was flushing a table when all table handlers were closed. PBXT will now only do this when the FLUSH TABLES statement is used.
|
||||
|
||||
RN230: Improved efficiency of conflict resolution: Implemented a queue for threads waiting for a lock. Threads no longer poll to take a lock. If a temp lock is granted because of an update, then the thread granted the temp lock will also wait for the transaction that did the update to quit.
|
||||
|
||||
RN229: Fixed bug #313391: LOAD DATA ... REPLACE broken.
|
||||
|
||||
RN228: Fixed bug #341115: 'Out of memory' error (a bug in key comparison algorithm).
|
||||
|
||||
RN227: Changed conflict handling to use spin locks and improve efficiency.
|
||||
|
||||
RN226: Fixed bug #340316: Issue with bigint unsigned auto-increment field.
|
||||
|
||||
RN225: Fixed bug #308557: UPDATE fails to match all rows in a transactional scenario.
|
||||
|
||||
RN224: Fixed a deadlock which could occur during table scans.
|
||||
|
||||
RN223: Index scans now use handles to cache buffers instead of making a copy of the index page. The handles are "copy-on-write".
|
||||
|
||||
RN222: Fixed a bug that caused the server to hang on startup if PBXT ran out of record cache while waiting for the sweeper to complete.
|
||||
|
||||
RN221: Fixed an index recovery bug. This occurred if the server crashed after operating in low index cache sitations.
|
||||
|
||||
RN220: Improved index selectivity estimation: added scanning from the end of index backwards.
|
||||
|
||||
RN219: Fixed a problem: during intersected range scan not all fields were returned by engine to MySQL.
|
||||
|
||||
RN218: Changed the way row locking (used by SELECT FOR UPDATE) works. Previously we locked a group of rows at once (although there were many groups). However, this caused conflicts even when the same rows were not locked. We now locks individual rows.
|
||||
|
||||
RN217: Fixed bug #315564: Rollbacked inserts remain permanently in table.
|
||||
|
||||
RN216: Added lock tracing. In DEBUG mode, each thread has a list of locks (semaphores, mutexes, r/w locks that it holds).
|
||||
|
||||
RN215: Fixed a bug that caused a crash during restart if an index file was flushed during recovery.
|
||||
|
||||
RN214: Fixed bug #310184: Deadlock when trying to wake up transactions
|
||||
|
||||
RN213: Fixed an index corruption bug on SPARC Solaris. Note this error will occur on any machine that does not use the x86 (little endian) byte order.
|
||||
|
||||
------- 1.0.07 RC - 2008-12-15
|
||||
|
||||
RN212: Fixed build problems on NetBSD.
|
||||
|
||||
RN211: Fixed build problems on FreeBSD.
|
||||
|
||||
RN210: Fixed build problems on OpenSolaris.
|
||||
|
||||
RN209: Added handling of the foreign_key_checks system flag.
|
||||
|
||||
RN208: xtstat will now automatically reconnect if the connection to server is lost.
|
||||
|
||||
RN207: Foreign key references are now checked on CREATE TABLE.
|
||||
|
||||
RN206: Fixed a crash if inserting into a table that has an FK that references a column that has no index on it.
|
||||
|
||||
RN205: Added processing of foreign key action SET DEFAULT.
|
||||
|
||||
RN204: Fixed an index recovery problem: unswept index entries were not recovered correctly
|
||||
|
||||
RN203: Fixed foreign key bug: REPLACE fails with 'on delete cascade'
|
||||
|
||||
RN202: Fixes and updates to tests, now all tests pass on windows and linux.
|
||||
|
||||
RN201: Fixed ref-counting for mmapped files.
|
||||
|
||||
RN200: Fixed an index recovery problem: unswept index entries were not recovered correctly .
|
||||
|
||||
RN199: Recovery now takes place on plug-in startup. Previously recovery occurred when the first PBXT table was accessed.
|
||||
|
||||
RN198: Fixed a recovery bug that caused index entries to get out of sync with the data file.
|
||||
|
||||
RN197: Improved the efficiency of group commit.
|
||||
|
||||
RN196: Changed checkpointing so that it now works during idle time. Every record, row or index file fllush now also contributes to the checkpoint (fuzzy checkpointing). Checkpointing is forced to complete after about 50% of the checkpoint threshold in order to ensure the correct maximum for log reading on recovery.
|
||||
|
||||
RN195: Fixed scheduling bug that caused sweeper to get behind with the cleanup, which caused performance problems in high conflict situations. Foreground threads will now wait if the sweeper gets too far behind.
|
||||
|
||||
RN194: Created the xtstat program which monitors the internal performance of PBXT. Run xtstat --help for more details information of the output.
|
||||
|
||||
RN193: Implemented the pbxt.statistics virtual table. The statistics table returns information about the internal activity of the engine. This includes I/O byte counts, cache hit counts and usage, commit count, etc.
|
||||
|
||||
RN192: Due to timing issues in the engine API it could happen that the client received an OK for a committed transaction before the transaction was actually committed. This problem has been fixed.
|
||||
|
||||
RN191: Fixed a bug that caused a hang when conflicts occured while reading a covering index.
|
||||
|
||||
RN190: Previously the sweeper delayed deletion of transaction structures until all transactions that were running during sweeping have quit. This is now handled by the same code that fixed the bug in RN189.
|
||||
|
||||
RN189: Fixed a bug that could cause a row to go missing due to a visibility issue.
|
||||
|
||||
RN188: Fixed a bug which ocurred when using CREATE TABLE ... AVG_ROW_LENGTH=x, and the table contained BLOBs. In this case, alter table corrupted the table.
|
||||
|
||||
RN187: Windows now stores paths in the location file in UNIX format by converting all '\' characters to '/'. Note that the location file is only cross-platform if the paths are relative (which is the default).
|
||||
|
||||
RN186: Set version number to 1.0.07.
|
||||
|
||||
------- 1.0.06 Beta 2 - 2008-11-06
|
||||
|
||||
RN185: Disabled support for INSERT DELAYED because of MySQL bug #40505
|
||||
|
||||
RN184: Implemented info(flag == HA_STATUS_AUTO) engine API call. This call returns the next value that will be assigned as auto-increment value on the table.
|
||||
|
||||
RN183: Turned off streaming on Windows (see XT_STREAMING macro in sources)
|
||||
|
||||
RN182: Switch code base to the latest version of BLOB streaming engine (PBMS): www.blobstreaming.org.
|
||||
|
||||
RN181: Updated pbxt-test-run default parameters (--force is on, --default-storage-engine is pbxt, --base-dir is set according to config)
|
||||
|
||||
RN180: PBXT can now cope with a missing .xti file (the file that contains the table indexes). This file can be regenerated using REPAIR TABLE.
|
||||
|
||||
RN179: On recovery PBXT now creates a filed called 'recovery-progress' in the pbxt database. The recovery percentage complete is written to this file as recovery progresses. Note that this file will not be created if no recoery is necessary or if PBXT estimates that it will read less then 10MB to do recovery.
|
||||
|
||||
RN178: Fixed a problem in CHECK TABLE that caused memory corruption for fixed-size records
|
||||
|
||||
RN177: Added "crash debugging". When enabled, crash debugging does the following:
|
||||
- Create a core dump on Windows if the server crashes.
|
||||
- Make a backup copy of the datadir directory before recovery if the server crashes.
|
||||
- Keep at least 5 of the previous transaction logs.
|
||||
Currently crash debugging is disabled by default. To disable, create a file called 'no-debug' in the pbxt database folder, and restart the server. When crash debugging is disabled by default, it can be enabled by creating a file called 'crash-debug; in the pbxt database folder.
|
||||
|
||||
RN176: Fixed a bug: a lock was not released appropriately
|
||||
|
||||
RN175: Fixed some debug assertions
|
||||
|
||||
RN174: Fixed some of test/mysql-test tests
|
||||
|
||||
RN173: Fixed a RENAME TABLE bug, that prevented index files from being properly recreated
|
||||
|
||||
RN172: Added the file ./pbxt/lock-pid. This file is locked while the server is running, and contains the process of the server. PBXT will return an error on startup if the file is locked or the process is still running in order to prevent a second server from being started.
|
||||
|
||||
RN171: Implemented the AVG_ROW_LENGTH table attribute. When set, this value determines the size of the fixed length data component of a record. Normally this size is estimated depending on the column definitions. The command CHECK TABLE dumps the current average row length to the log. This can be used to find a suitable value for AVG_ROW_LENGTH.
|
||||
|
||||
RN170: Changed configure so that debug/optimize flags set for building the engine override the flags set for MySQL. If --with-debug is not specified, then the engine will use the flags set when building MySQL. If MySQL was built with --with-debug=full, the DEBUG will be defined for the engine. When building the engine, the following flags can be set:
|
||||
yes - Debug symbols enabled, no optimization, DEBUG not defined.
|
||||
full - Debug symbols enabled, no optimization, DEBUG defined.
|
||||
only - Debug symbols enabled, MySQL flags used, DEBUG not defined.
|
||||
prof - Profile code enabled, optimization on, DEBUG not defined.
|
||||
no - No debug symbols, optimization on, DEBUG not defined.
|
||||
|
||||
RN169: Used MySQL root Makefile instead of config.status in order to extract settings (such as CFLAGS and CXXFLAGS) for the PBXT build.
|
||||
|
||||
RN168: Fixed Windows build after merging changes for Drizzle.
|
||||
|
||||
RN167: Fixed "This table requires primary key" error in sql-bench.
|
||||
|
||||
RN166: Fixed threading problems that caused crashes in sql-bench.
|
||||
|
||||
RN165: Added sql-bench to pbxt source tree.
|
||||
|
||||
RN164: Ported PBXT to Drizzle. To compile for Drizzle DRIZZLED must be defined on the command line. The -drz.am and -drz.in files are must be used when PBXT is embedded in Drizzle.
|
||||
|
||||
RN163: Added "make test" build step. Running "make test" from the root of pbxt source tree will launch test/mysql-test/pbxt-test-run.pl with appropriate options to execute the pbxt functional test suite. On Windows where
|
||||
pbxt is statically linked into mysql server binary pbxt testing works by going to test/mysql-test directory and running ./pbxt-test-run.pl with --base-dir argument pointing to a mysql source tree (mysql binaries are taken
|
||||
from there) and passing the rest of usual arguments (--force --mysqld=--default-storage-engine=pbxt)
|
||||
|
||||
RN162: The 'pbxt' database must now be dropped explicitly. It is automatically created when the first PBXT table is created. After that, the pbxt database can be dropped once all PBXT tables have been dropped. Dropping the pbxt database will also cause all transaction (pbxt/system directory) and data logs (pbxt/data directory) to also be deleted.
|
||||
|
||||
RN161: Added pbxt.location system table. This table can only be dropped when all PBXT tables have been deleted. Dropping the system table will cause all transaction (pbxt/system directory) and data logs (pbxt/data directory) to also be deleted.
|
||||
|
||||
RN160: Made changes to run with MySQL 6.0.6.
|
||||
|
||||
RN159: Changes to configure: added --with-plugindir=<path>, which should be used to specify the plugin directory. This means that --libdir should no longer be used. For backwards compatibility configure will still recognize this options if the path ends with 'plugin'.
|
||||
|
||||
Also updated --help, to include all options, and better desciptions of the options.
|
||||
|
||||
The configure options are now as follows:
|
||||
|
||||
--with-mysql=<path> - (Required) It specifies the path to the MySQL source tree. The source should already be built. All other options will be taken from the MySQL build by default.
|
||||
--with-debug=yes/no - (Optional) Specify if then engine should be built with different debug options to the MySQL source tree.
|
||||
--with-plugindur=<path> - (Optional) Specify an alternative installation directory for the plugin. By default it will be installed in the plugin directory of the MySQL installation.
|
||||
|
||||
|
||||
RN158: Added support for core dumps on Windows. This can be enabled by defining XT_COREDUMP. On by default at the moment. If the server crashes a file called PBXTCore00000001.dmp will be created in the data directory. This file can be openned using MS VS.
|
||||
|
||||
RN157: Fixed a compile problem with tv_nsec which is not supported on all platforms.
|
||||
|
||||
RN156: Updated tests to run with MySQL 5.1.28.
|
||||
|
||||
RN155: Errors during cascade update of VARCHAR values with trailing spaces
|
||||
|
||||
RN154: Fixed a bug: impossible to create a foreign key that referenced an ENUM or SET column
|
||||
|
||||
RN153: Fixed a bug that caused the following problems: #1. Foreign keys: crash if update cascade and autocommit=0 #2. Foreign keys: crash if update cascade and multi-level recursion
|
||||
|
||||
RN152: Fixed missing information about foreign keys in I_S.table_constraints and I_S.referential_constraints
|
||||
|
||||
------- 1.0.05 Beta - 2008-08-30
|
||||
|
||||
RN151: "Quick config": It is now possible to configure the engine by just specifying the mysql source code tree (the --with-mysql option). The --libdir and --with-debug setting will be deduced automatically.
|
||||
|
||||
RN150: Added system variable pbxt_sweeper_priority, 0 = low (default), 1 = normal (same as user threads), 2 = high. The sweeper cleans up deleted records (deleted records also result from an update). If allowed to accumulate, these records can slow searches. Higher priority for the sweeper is recommended on systems with 4 or more cores.
|
||||
|
||||
RN149: Record cleanup is now initiated if a deleted record is found, and the transaction that deleted the record has ended. Since waking up the sweeper is an expensive operation, normally the sweeper will run every 1/10th of a second.
|
||||
|
||||
RN148: Fixed a bug which caused transaction starvation (one transaction was constantly locked out) during high conflict updates. This lead to cleanup of records not being done, which lead to a general slow down.
|
||||
|
||||
RN147: Fixed a problem with TRUNCATE TABLE: a failed TRUNCATE TABLE could put the engine into an invalid state that later caused a crash
|
||||
|
||||
RN146: Fixed a bug that caused the error: "-49: Record format unknown, either corrupted or upgrade required".
|
||||
|
||||
RN145: Added pbxt_db_offline_log_function system variable, 0 = recycle logs (default), 1 = delete logs (default on Mac OS X), 2 = keep logs.
|
||||
|
||||
------- 1.0.04 Alpha - 2008-08-02
|
||||
|
||||
RN144: Completed port and testing of Windows version.
|
||||
|
||||
RN143: Fixed a bug which caused the free-er thread to hang. This was a result of an invalid operation ID, which was the result of the checkpointer flushing the table at the same time as a foreground thread.
|
||||
|
||||
RN142: The fast RW/mutex lock can now handle nested calls. This is possible during a sequential scan.
|
||||
|
||||
RN141: The normal behavior in MySQL is that an auto-increment values will be re-issued if you delete the row containing the current maximum auto-increment value and then restart the server. To prevent this you can use ALTER TABLE my_table AUTO_INCREMENT = <current-max-auto-increment> + 1, before deleting the current maximum auto-increment value.
|
||||
|
||||
A new system variable, pbxt_auto_increment_mode, has been added so that this work around is not necessary. When set to 0 (the default), auto-increment works as described above. When set to 1, the AUTO_INCREMENT value of the table is automatically to prevent previously issued auto-increment values being returned.
|
||||
|
||||
However, if the server crashes, a gap of up to 100 unique values can result, because the table AUTO_INCREMENT value is incremented in steps of 100.
|
||||
|
||||
RN140: Index statistics are now automatically recalculated when the table row count exceeds 200.
|
||||
|
||||
RN139: Fixed a bug that caused index corruption, error: "int idx_push(index_xt.cc:172) -2: Core B-tree too deep".
|
||||
|
||||
RN138: Handle startup and recovery when an index is corrupted.
|
||||
|
||||
RN137: Fixed a bug in the zero wait R/W lock that caused the lock to fail (the state is extremely volatile, and must be written to memory after increment).
|
||||
|
||||
RN136: Fixed a bug that cause the error "int xt_pwrite_file(filesys_xt.cc:789) errno (14): Bad address".
|
||||
|
||||
RN135: Fixed TRUNCATE TABLE that did not work correctly when the table contained BLOBs stored in the BLOB streaming engine (www.blobstreaming.org).
|
||||
|
||||
RN134: Fixed a bug that caused duplicate rows to be returned from an index scan (using a SELECT FOR UPDATE) if a concurrent update was done.
|
||||
|
||||
RN133: Optimised PBXT for multi-processor scale-up. This mostly involved using different types of locks instead of the standard pthread mutex and reader/writer locks [TODO: 0038].
|
||||
|
||||
------- 1.0.03 Alpha - 2008-05-30
|
||||
|
||||
RN132: Fixed bug when using PBXT in conjunction with the BLOB streaming engine (www.blobstreaming.org). Uploaded BLOBs could not be inserted into a table.
|
||||
|
||||
RN131: Fixed wait for background processes on shutdown. Shutdown will wait a maximum of 16 seconds for each process.
|
||||
|
||||
RN130: Fixed calculation of bytes to be read for recovery.
|
||||
|
||||
RN129: Fixed bug in cleanup of unterminated transactions.
|
||||
|
||||
RN128: The writer will now start working when one of the following is true:
|
||||
- it is time for a checkpoint,
|
||||
- the log cache is almost full,
|
||||
- the free'er is waiting for the writer,
|
||||
- there is no other activity.
|
||||
|
||||
RN127: Fixed checkpoint frequency. Checkpointing is now done correctly after 'pbxt_checkpoint_frequency' bytes.
|
||||
|
||||
RN126: Implemented index consistent write [TODO: 0050].
|
||||
|
||||
RN125: Implemented memory mapping for row pointer (.xtr) and handle data files (.xtd).
|
||||
|
||||
RN124: Index files now use direct I/O.
|
||||
|
||||
------- 1.0.02 Alpha - 2008-04-25
|
||||
|
||||
RN123: Fixed compile errors with MySQL 5.1.24.
|
||||
|
||||
------- 1.0.01 Alpha - 2008-03-28
|
||||
|
||||
RN122: ++++ NOTE: This version is not compatible with older versions of PBXT ++++.
|
||||
|
||||
RN121: Transaction logs are now global so that multi-database statements are now possible. This makes it also possible to work PBXT temporary tables.
|
||||
|
||||
RN120: Transaction logs pre-allocated and recycled.
|
||||
|
||||
RN119: Transaction log writes on 512 byte boundaries only.
|
||||
|
||||
------- 1.0.00 Alpha - 2008-03-10
|
||||
|
||||
This version has alpha status because of the large number of changes done for full durability.
|
||||
|
||||
RN118: ++++ NOTE: This version is incompatible to older versions of PBXT ++++.
|
||||
|
||||
RN117: Documentation now avaliable at http://www.primebase.org/documentation.
|
||||
|
||||
RN116: Corrected the plug.in file so that PBXT compiles when dropped into the storage directory in the MySQL source tree.
|
||||
|
||||
RN115: Compiled and tested with MySQL 5.1.23.
|
||||
|
||||
RN114: Increased index block size. Minimum is now 4K. Default is 16K.
|
||||
|
||||
RN113: Calculate index selectivity to return a more accurate value from records_in_range(). NOTE: FLUSH TABLESl will update the index statistics, after data has been inserted or updated.
|
||||
|
||||
RN112: Optimized table storage, saving 8 bytes per row.
|
||||
|
||||
RN111: Optimized search on keys containing 2 or 3 not null integer values.
|
||||
|
||||
RN110: Optimization: store the row ID in the index so that an index entry can be verified as current without loading the record. This is necessary to optimize an access with index coverage.
|
||||
|
||||
RN109: Optimization: only load the record extended data if required.
|
||||
|
||||
RN108: Implemented SHOW ENGINE PBXT STATUS;
|
||||
|
||||
RN107: Added the following system variables:
|
||||
|
||||
pbxt_index_cache_size - The amount of memory allocated to the index cache, used only to cache index data
|
||||
pbxt_record_cache_size - The amount of memory allocated to the record cache used to cache table data
|
||||
pbxt_log_cache_size - The amount of memory allocated to the transaction log cache used to cache on transaction log data
|
||||
pbxt_log_file_threshold - The size of a transaction log before rollover, and a new log is created
|
||||
pbxt_transaction_buffer_size - The size of the global transaction log buffer (the engine allocates 2 buffers of this size)
|
||||
pbxt_log_buffer_size - The size of the buffer used to cache data from transaction and data logs during sequential scans, or when writing a data log
|
||||
pbxt_checkpoint_frequency - The amount of data written to the transaction log before a checkpoint is performed
|
||||
pbxt_data_log_threshold - The maximum size of a data log file
|
||||
pbxt_garbage_threshold - The percentage of garbage in a data log file before it is compacted
|
||||
|
||||
RN106: PBXT now compiles for MySQL 6.0.3.
|
||||
|
||||
RN104: Updates now locks a record temporarily. This prevents most "record changed" errors, however, it makes UPDATE statements a type of "committed read". This means that you may update a different value to that which you selected in repeatable read mode. To avoid this, use SELECT FOR UPDATE if you plan to UPDATE records after reading.
|
||||
|
||||
RN103: Implemented SELECT FOR UPDATE. This is implemented by turning SELECT FOR UPDATE into a type of "committed read". This means that, if you do a SELECT followed by a SELECT FOR UPDATE you can get different results, even in repeatable read mode.
|
||||
|
||||
RN102: Implemented recovery of index entries. Note: indexes are not yet fully consistent. This means that index can become currupted due to a crash. Data, however, cannot be lost. The indices can be rebuild using REPAIR TABLE.
|
||||
|
||||
RN101: Writing and flushing of a single transaction write-ahead log.
|
||||
|
||||
RN100: Automatic rollover of transaction logs as they become full.
|
||||
|
||||
RN99: Implementation of the transaction log cache.
|
||||
|
||||
RN98: Group commit.
|
||||
|
||||
RN97: Implementation of the writer thread that applies changes in the transaction log to the database.
|
||||
|
||||
RN96: Implementation of the checkpointer thread that periodically flushes the database and writes a checkpoint which determines the recovery start point.
|
||||
|
||||
RN95: Implementation of the free'er thread that is responsible for keeping the record cache at a preset level.
|
||||
|
||||
RN94: Modifications to the record cache so that rows are stored in pages, in order to speed up sequence access.
|
||||
|
||||
RN93: Implemented the recovery process which applies changes written to the log that are not in the database, on startup.
|
||||
|
||||
RN92: Modification of the sweeper thread which cleans up rolled-back transactions and deleted data, to use the new transaction log format.
|
||||
|
||||
RN91: Modifications to the data logs so that they use the same record structure as the transaction logs.
|
||||
|
||||
RN90: The data logs are now managed "per database" in order to minimize the work done to flush and commit a transaction.
|
||||
|
||||
RN89: Implementation of a file handle pool for the data logs.
|
||||
|
||||
------- 0.9.91 Beta - 2007-10-30
|
||||
|
||||
RN88: The format of the URL genearated by MyBS has been changed. The format of the BLOB URLs is now as follows:
|
||||
|
||||
'~*' <db-name> '/' <type-char> <table-id> '-' <blob-id> '-' <access-code> '-' <server-id>
|
||||
|
||||
Where <type-char> is '_' or '~'.
|
||||
|
||||
Examples: ~*test/_11-128-fbd590b-0, ~*test/~1-524-3dc45b09-0
|
||||
|
||||
In other words, the characters '>' has been replace by '*', '^' has been replace by '_' and ':' has been replace by '~'. The reason for this is that the characters '>' and '^' are not allowed in URLs, and must be URL-encoded. The character ':' is reserved, but allowed.
|
||||
|
||||
NOTE: This change makes this version incompatible with previous versions of MyBS. If you have a table with BLOB URLs, you can upgrade the URLs as follows:
|
||||
|
||||
UPDATE blob_table SET blob_col = REPLACE(REPLACE(blob_col, '~>', '~*'), '/:', '/~');
|
||||
|
||||
Replacing '^' is not necessary because BLOB URLs with '^' should not appear in tables.
|
||||
|
||||
------- 0.9.90 Beta - 2007-10-17
|
||||
|
||||
RN87: Corrected stack trace of errors passed through the BLOB streaming API.
|
||||
|
||||
RN86: Added new engine API accessor functions that appeared in 5.1.21 (thanks Stewart).
|
||||
|
||||
RN85: Added plug.in file. PBXT now compiles when dropped into the storage directory of the MySQL build tree. However, you have rebuild configure. For example:
|
||||
|
||||
rm -rf autom4te.cache/
|
||||
aclocal
|
||||
autoconf
|
||||
autoheader
|
||||
automake -a
|
||||
./configure --help
|
||||
./configure --with-plugins=max --without-innodb --prefix=/usr/local/mysql --with-debug=full
|
||||
|
||||
NOTE: ./configure --help should show that the PBXT has been included.
|
||||
|
||||
RN84: Fixed several problems with shutdown of PBXT in combiniation with MyBS.
|
||||
|
||||
------- 0.9.89 Beta - 2007-08-17
|
||||
|
||||
RN83 (2007-08-21): Fixed a crash due to a compile bug that does not like the contruct *((xtWordPS *) &(v)) = (xtWordPS) (x) (macro allocr_() and alloczr_()).
|
||||
|
||||
RN82: It is now possible to insert non-URL values into a LONGBLOB field, in the previous version the generated an "Invalid URL" error. Such values can be retrieved as a stream using a field reference.
|
||||
|
||||
RN81: Fixed a bug that caused PBXT to crash during certina operations when MyBS was not installed.
|
||||
|
||||
RN80: Set engine as capable of row-level replication, but not as statement replication. Statement replication does not work because MVCC is not serializable.
|
||||
|
||||
------- 0.9.88 Beta - 2007-07-25
|
||||
|
||||
RN79: Made some corrections in order to compile with MySQL 5.1.20.
|
||||
|
||||
RN78: Support for the features of the MyBS BLOB Streaming engine, version 0.5 Alpha.
|
||||
|
||||
RN77: Bugfix: The server crashes during BLOB data handling. The reason is the table field structure is shared, and may not be changed.
|
||||
|
||||
------- 0.9.87 Beta - 2007-06-19
|
||||
|
||||
RN76: The major feature of this release is support for the BLOB Streaming Engine. The current version enables the download of specific BLOB columns via the Streaming Engine. For example:
|
||||
|
||||
use test;
|
||||
CREATE TABLE notes_tab (
|
||||
n_id INTEGER PRIMARY KEY,
|
||||
n_text BLOB
|
||||
) ENGINE=pbxt;
|
||||
INSERT notes_tab VALUES (1, "This is a BLOB streaming test!");
|
||||
|
||||
The URL:
|
||||
|
||||
http://localhost:8080/test/notes_tab/n_text/n_id=1
|
||||
|
||||
will return the value "This is a BLOB streaming test!"
|
||||
|
||||
RN75: Bugfix: MySQL prints error: "Plugin 'PBXT' will be forced to shutdown". This error was caused by the plug-in having a reference to itself.
|
||||
|
||||
RN74: Added system variable pbxt_index_cache_size and pbxt_record_cache_size. These variable can now be set on the mysqld command line (for example: --pbxt_record_cache_size=50MB). The values are also displayed by SHOW VARIABLES.
|
||||
|
||||
------- 0.9.86 Beta - 2007-04-07
|
||||
|
||||
RN74: ++++ NOTE: This version is incompatible to older versions of PBXT ++++.
|
||||
|
||||
In order to upgrade, install the older version of PBXT. Convert all tables to MyISAM using ALTER TABLE t1 ENGINE=MyISAM. Then install the new version of PBXT and convert back using ALTER TABLE t1 ENGINE=PBXT.
|
||||
|
||||
RN73: Each table will now use a maximum of 4 data log files. This means a maximum of 7 files per table. The minimum is 3 for tables that do not have a variable field that exceeds about 40 bytes in size. This means that under Linux PBXT requires a maximum of 7 file handles per table used. Windows lock of pread/pwrite (atomic seek and read/write) functions means it requires a file handler per file per open table handler. [TODO: 0044]
|
||||
|
||||
RN72: All threads now write to the same data log file. Recovery and compaction take this fact into account. Each thread still writes its own transaction log.
|
||||
|
||||
RN71: Removed all directory scans when creating and dropping table. Increased the table limit to 10000.
|
||||
|
||||
RN70: Changed locking to avoid a deadlock when TRUNCATE TABLE is used together with other DML.
|
||||
|
||||
RN69: procedures and functions are now considered atomic, and execute in a single transaction.
|
||||
|
||||
RN68: Bug fixed: all files are now correctly flushed before commit.
|
||||
|
||||
------- 0.9.85 Beta - 2007-03-15
|
||||
|
||||
RN67: Changed the implementation of the pushsr_ and allocr_ macros because "*((void **) &(v) = " caused a crash due to a compiler error on some platforms (thanks Luciano for your help on this one and RN66).
|
||||
|
||||
RN66: Fixed a bug that caused PBXT to corrupt the index file when the size exceeded 4GB. [TODO: 0031]
|
||||
|
||||
RN65: PBXT now runs under Windows. This source tree must be placed in the MySQL source storage directory in order to compile. Further details of how to build are in the windows-readme.txt file. [TODO: 0027]
|
||||
|
||||
RN64: Improved speed of table lookup by ID after a table has been deleted. The sweeper needs to ignore these records. Scanning the directory each time was too slow.
|
||||
|
||||
RN63: Added checking for repeat update of a record in a statement.
|
||||
|
||||
RN62: Committed read no longer blocks due to a change made by another transaction (the XT_REPEATABLE_READ_BLOCKS define, turns blocking on).
|
||||
|
||||
RN61: Avoid checking for duplicates if an index is not modified by an update.
|
||||
|
||||
RN60: Records updated repeatedly by a transaction are now updated in place. [TODO: 0040]
|
||||
|
||||
------- 0.9.8 Beta - 2007-01-30
|
||||
|
||||
RN59: Reduced the number of file handles used to a maximum of one per file. This assumes that pread() and pwrite() allows multiple threads to use the same file handle (according to my tests, this is the case).
|
||||
|
||||
RN58: Added the configure flag --with-debug=only which compiles a version of the plug-in with debug symbols that will link to an non-debug MySQL server.
|
||||
|
||||
RN57: Changed error number returned on lock from 1205 (lock timeout) to 1020 (optimistic lock failure).
|
||||
|
||||
RN56: Added UNIX environment variable for PBXT system parameters. These must be set before starting mysqld, for example:
|
||||
|
||||
setenv pbxt_index_cache_size 400MB
|
||||
setenv pbxt_record_cache_size "1 GB"
|
||||
|
||||
Values are in bytes unless one of the following units is specified: GB, MB, Kb
|
||||
|
||||
RN55: Fixed a bug which prevented VARCHAR values from being compressed correctly when stored in variable length rows.
|
||||
|
||||
RN54: Fixed a bug which caused a crash when PBXT was used with MySQL 5.1.14. This bug also caused data to be corrupted on insert.
|
||||
|
||||
RN53: Set query caching mode to transactional. [TODO: 0027]
|
||||
|
||||
RN52: Added conditions so that the engine compiles with MySQL 5.1.14 and 5.1.13.
|
||||
|
||||
------- 0.9.74 Beta - 2006-12-14
|
||||
|
||||
RN51: DELETE FROM <table>; is no longer implemented by re-creating the table. This statement now works by deleting all rows. TRUNCATE is implemented as before, by re-creating the table.
|
||||
|
||||
RN50: The test scripts innodb.test and innodb-mysql.test have been modified to run with PBXT.
|
||||
|
||||
RN49: [TODO: 0020] Implemented foreign keys. Functionality is identical to InnoDB with 2 exceptions:
|
||||
|
||||
* Data types of referenced columns must be an exact match (e.g. you cannot mix VARCHAR and CHAR values).
|
||||
* Currently an exact matching index is required on referenced columns (i.e. the index may not have more columns that the columns used in the foreign key definition).
|
||||
|
||||
Also note the following:
|
||||
|
||||
* It is possible to create foreign keys that reference non-existent tables or columns. An error will occur when updating a table with an incorrect foreign key declaration.
|
||||
* If you alter the data-type of a column referenced by a foreign key set you need to set foreign_key_checks=0; or an error will occur.
|
||||
|
||||
RN48: Fixed a bug in the implementation of indexes on ENUM and SET types.
|
||||
|
||||
RN47: Fixed a bug that caused a crash when an index was place on a BLOB column, and data was retrieved from the index directly.
|
||||
|
||||
------- 0.9.73 Beta - 2006-10-31
|
||||
|
||||
RN46: Updated test scripts to run with MySQL 5.1.13.
|
||||
|
||||
------- 0.9.72 Beta - 2006-10-19
|
||||
|
||||
RN45: Corrected compilation errors that occurred due to a change to struct st_mysql_plugin.
|
||||
|
||||
------- 0.9.71 Beta - 2006-10-04
|
||||
|
||||
RN44: Corrected compilation errors that occurred due to changes in the storage engine API.
|
||||
|
||||
------- 0.9.7 Beta - 2006-09-20
|
||||
|
||||
RN43: This is the first Beta release of PrimeBase XT. It has been integrated into MySQL 4.1.21 and is available as a plug-in for MySQL 5.1.12, or later. This version has been extensively tested using mysql-test-run, on various Linux and Mac OS X platforms.
|
||||
|
||||
RN42: ++++ NOTE: This version is incompatible to older versions of PBXT ++++. Files created by older versions cannot be opened by version 0.9.7.
|
||||
|
||||
RN41: Renaming or deleting a table while using a name with different case to the original created name did not work.
|
||||
|
||||
RN40: Fixed a bug when grouping and searching on indexed columns that contain a null.
|
||||
|
||||
RN39: Fixed bugs related to trailing spaces on VARCHAR values. Values that only vary by the number of trailing spaces (for example "aa" and "aa "), are now correctly handled as identical.
|
||||
|
||||
RN38: The default AUTO_INCREMENT value was not correctly preserved during ALTER TABLE.
|
||||
|
||||
RN37: Created a MySQL 5.1 Plugin version of PBXT. [TODO: 0017]
|
||||
|
||||
RN36: Fixed a race condition in the row cache which had the affect that inserted rows dissappeared after cleanup because the cache was out of date. I was only able to reproduce this error on multi-processor machines.
|
||||
|
||||
------- 0.9.6 - 2006-08-05
|
||||
|
||||
RN35: ++++ NOTE: This version is incompatible to older versions of PBXT ++++.
|
||||
|
||||
The disk format of tables and log files has changed slightly in this version. As a result, files created by older versions cannot be opened by version 0.9.6. An error will be generated. If you have data wish to preserve, first start the older version of XT and convert all tables to MyISAM. The stop the server and removed all transaction log file (files of the form xtlog-*.xt). Then start the new version and convert tables back to XT.
|
||||
|
||||
RN34: Implemented READ COMMITTED transaction mode. XT now supports READ COMMITTED and SERIALIZABLE transaction modes. NOTE: if the mode is set to REPEATABLE READ, SERIALIZABLE is used. If the mode is set to READ UNCOMMITTED READ COMMITTED is used.
|
||||
|
||||
RN33: The implementation of AUTO_INCREMENT on a paritial index is non-standard. A unique value is generated without regard to the value of the index prefix. For example, assume we have the following table: CREATE TABLE t1 (c1 CHAR(10) not null, c2 INT not null AUTO_INCREMENT, PRIMARY KEY(c1, c2));
|
||||
|
||||
With the following contents: c1 c2
|
||||
A 8
|
||||
B 1
|
||||
|
||||
After executing the following statement: insert into t1 (c1) values ('B');
|
||||
|
||||
This is the result using PBXT: c1 c2
|
||||
A 8
|
||||
B 1
|
||||
B 9
|
||||
|
||||
The standard result would be: c1 c2
|
||||
A 8
|
||||
B 1
|
||||
B 2
|
||||
|
||||
RN32: PBXT does not permit access to multiple databases within a single transaction. For example:
|
||||
|
||||
begin;
|
||||
update database_1.t1 set a=10;
|
||||
update database_2.t2 set d=10;
|
||||
commit;
|
||||
|
||||
In this case the following error is returned: 1015: Can't lock file (errno: -1)
|
||||
|
||||
RN31: The implementation of COUNT(*) has changed. For effectiency, rows are not counted. The information is taken from the header of the record (.xtr) files. This information is only 100% accurate after transaction cleanup has completed. Which basically means, only when PBXT is idle. ANALYZE TABLE waits for all background activity to stop, so the statement may be executed before a COUNT(*) to ensure an accurate result. NOTE: Other then waiting for background processes, ANALYSE TABLE is not implemented.
|
||||
|
||||
RN30: Two concurrency bugs have been fixed: a shared lock was used instead of an exclusive lock when deleting from a transaction list, the transaction segment semaphore was not initialized. XT now runs correctly in a multi-processor environment. The test used was sysbench on a dual-process, dual-core, AMD 64-bit machine running SUSE Linux 10.0.
|
||||
|
||||
RN29: PBXT compiles and runs on under 64-bit Lunix. [TODO: 0009]
|
||||
|
||||
RN28: ./mysql-test-run --force --mysqld=--default-storage-engine=pbxt will now execute most tests successfully. Changes to the tests and the result have been documented in http://www.primebase.com/xt/download/pbxt-test-run-changes.txt. [TODO: 0004, 0019]
|
||||
|
||||
RN27: Fixed a bug that caused the server to crash if when using tables locks and transactions. For example: LOCK TABLES, BEGIN, COMMIT, SELECT. This sequence now returns an error. The correct sequence is:
|
||||
|
||||
LOCK TABLES, BEGIN, COMMIT, UNLOCK TABLES, SELECT
|
||||
or
|
||||
LOCK TABLES, BEGIN, COMMIT, BEGIN, SELECT COMMIT, UNLOCK TABLES
|
||||
|
||||
RN26: Fixed a concurrency problem which caused a number of threads to hang during the sysbench test - see RN30 above (bug reported by Vadim).
|
||||
|
||||
RN25: Fixed a bug that caused the server to hang when ha_pbxt::create() and ha_pbxt::ha_open() where given different, but equivalent paths for a particular table.
|
||||
|
||||
RN24: Fixed bug in the indexing of blob columns, for example: create table t1(name_id int, name blob, INDEX name_idx (name(5)));
|
||||
|
||||
RN23: When a duplicate key error occurs in auto-commit mode, the transaction is now rolled back.
|
||||
|
||||
RN22: Fixed incorrect duplicate key error. In the case of a unique key which allows NULLs, duplicates are allowed if the inserted key contains a NULL. For example:
|
||||
|
||||
create table t1 (id int not null, str char(10), unique(str));
|
||||
insert into t1 values (1, null),(2, null),(3, "foo"),(4, "bar");
|
||||
|
||||
RN21: PBXT now returns the correct error code on duplicate key: 1062 instead of 1022.
|
||||
|
||||
RN19: Implemented AUTO_INCREMENT on partial keys. However, the XT implementation is non-standard. Increment of partial index works, but the ID generated is incremented like a non-partial index. For example:
|
||||
|
||||
create table t1 (c1 char(10) not null, c2 int not null auto_increment, primary key(c1, c2));
|
||||
select * from t1;
|
||||
c1 c2
|
||||
A 8
|
||||
B 1
|
||||
|
||||
insert into t1 (c1) values ('B');
|
||||
select * from t1;
|
||||
c1 c2
|
||||
A 8
|
||||
B 1
|
||||
B 9
|
||||
|
||||
The standard result would be:
|
||||
c1 c2
|
||||
A 8
|
||||
B 1
|
||||
B 2
|
||||
|
||||
RN18: Implemented TRUNCATE TABLE and DELETE FROM <table>; (i.e. a DELETE without WHERE clause). Previously DELETE FROM <table>; did not cause an error, but no rows where deleted (TRUNCATE TABLE returned an error). [TODO: 0012, 0022]
|
||||
|
||||
RN17: Implemented CREATE TABLE (...) auto_increment=<value>;
|
||||
|
||||
------- 0.9.51 - 2006-07-06
|
||||
|
||||
RN16: Fixed crash which could occur when creating the first table in a database (bug reported by Hakan).
|
||||
|
||||
------- 0.9.5 - 2006-07-03
|
||||
|
||||
RN15: This version concludes the re-structuring of the PBXT implementation. I have made a number of major changes, including:
|
||||
|
||||
- All files except the transaction logs are now associated with a particular table. All table related files begin with the name of the table. The extension indicates the function.
|
||||
|
||||
- I have merged the handle and the fixed length row data for performance reasons.
|
||||
|
||||
- Only the variable size component of a row is stored in the data log files. As a result the data logs can now be considered as a type of "overflow" area.
|
||||
|
||||
- Memory mapped files are no longer used because it is not possible to flush changes to the disk.
|
||||
|
||||
RN14: File names have the following forms:
|
||||
|
||||
[table-name]-[table-id].xtr - These files contains the table row pointers. Each row pointer occupies 8 bytes and refers to a list of records. The file name also contains the table ID. This is a unique number which is used internally by XT to identify the table.
|
||||
|
||||
[table-name].xtd - This file contains the fixed length data of a table. Each data item includes a handle and a record. The handle references a record in the data log file if the table contains variable length records.
|
||||
|
||||
[table-name].xti - This file contains the index data of the table.
|
||||
|
||||
[table-name]-[log-id].xtl - This is a data log file. It contains the variable length data of the table. A table may have any number of data log files, each with a unique ID.
|
||||
|
||||
xtlog-[log-id].xt - These files are the transaction logs. Log entries that specify updates reference a data file record. Each active thread has its own transaction log in order to avoid contension.
|
||||
|
||||
RN13: Fixed the bug "Hang on DROP DATABASE". [TODO: 0016]
|
||||
|
||||
RN12: PBXT currently only supports the "Serializable" transaction isolation level. This is the highest isolation level possible and includes the "repeatable-read" functionality [TODO: 0015]. This is implemented by giving every transaction a snapshot of the database at the point when the transaction is started.
|
||||
|
||||
If the transaction tries to update a record that was updated by some other transaction after the snapshot was taken, a locked error is returned. A deadlock can occur if 2 transactions update the same record in a different order. PBXT can detect all deadlocks.
|
||||
|
||||
RN11: I have implemented write buffering on the table data files. [TODO: 0013]
|
||||
|
||||
RN10: The unique constraint (UNIQUE INDEX/PRIMARY KEY) is now checked correctly. [TODO: 0008]
|
||||
|
||||
RN9: I have implemented a conventional B-tree algorithm for the indices (instead of the Lehman and Yoa B*-link tree). Although this reduces concurrency it improves the performance of queries significantly because of the simplicity of the algorithm. Deletion is also implemented in a very simple manner. [TODO: 0007]
|
||||
|
||||
RN8: PBXT now has only 2 caches [TODO: 0006]:
|
||||
|
||||
The Index Cache (pbxt_index_cache_size): This is the amount of memory the PBXT storage engine uses to cache index data and row pointers. This is all the data in the files with the extensions '.xti' and '.xtr'. This cache is managed in blocks of 2K.
|
||||
|
||||
The Record Cache (pbxt_record_cache_size): This is the amount of memory the PBXT storage engine uses to cache table row data (handles and records). This is all the data in the files with the extension '.xtd'.
|
||||
|
||||
The size of the caches are determined by the values of the system variables pbxt_index_cache_size and pbxt_row_cache_size. By default these values are set to 32MB.
|
||||
|
||||
RN7: Auto-increment is now implemented in memory. This is done by doing a MAX() select when a table is first opened to get the high value. After that, then high value is incremented in memory on INSERT. On UPDATE (or INSERT) the value in memory is adjusted if necessary. This method also makes it possible for rows to be inserted simultaneously on the same table. [TODO: 0005, 0014]
|
||||
|
||||
RN6: ./run-all-tests --create-options=TYPE=PBXT succeeds. [TODO: 0004]
|
||||
|
||||
RN5: Using sql-bench and my own Java based test I have confirmed that PBXT behaves correctly during multi-threaded access. [PARTIALY TODO: 0002]
|
||||
|
||||
RN4: Load/Stability test. Using sql-bench I have tested PBXT under load over a long period of time. [PARTIALY TODO: 0001]
|
||||
|
||||
------- 0.9.2 - 2006-04-01
|
||||
|
||||
RN3: Fixed a bug that cause the error "-6: Handle is out of range: [0:0]".
|
||||
|
||||
RN2: Implemented SET, ENUM and YEAR data types.
|
||||
|
||||
RN1: Fixed a bug in the error reporting when a table is created with a datatype that is not supported. [TODO: 0011]
|
||||
|
||||
|
@ -1,236 +0,0 @@
|
||||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
|
||||
Software Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
those values to create a `Makefile' in each directory of the package.
|
||||
It may also create one or more `.h' files containing system-dependent
|
||||
definitions. Finally, it creates a shell script `config.status' that
|
||||
you can run in the future to recreate the current configuration, and a
|
||||
file `config.log' containing compiler output (useful mainly for
|
||||
debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.)
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
diffs or instructions to the address given in the `README' so they can
|
||||
be considered for the next release. If you are using the cache, and at
|
||||
some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
also a `make maintainer-clean' target, but that is intended mainly
|
||||
for the package's developers. If you use it, you may have to get
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that the
|
||||
`configure' script does not know about. Run `./configure --help' for
|
||||
details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
If you have to use a `make' that does not support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
`README' should mention any `--enable-' and `--with-' options that the
|
||||
package recognizes.
|
||||
|
||||
For packages that use the X Window System, `configure' can usually
|
||||
find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' cannot figure out automatically,
|
||||
but needs to determine by the type of machine the package will run on.
|
||||
Usually, assuming the package is built to be run on the _same_
|
||||
architectures, `configure' can figure that out, but if it prints a
|
||||
message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
CPU-COMPANY-SYSTEM
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
platform different from the build platform, you should specify the
|
||||
"host" platform (i.e., that on which the generated programs will
|
||||
eventually be run) with `--host=TYPE'.
|
||||
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share, you
|
||||
can create a site shell script called `config.site' that gives default
|
||||
values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
A warning: not all `configure' scripts look for a site script.
|
||||
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
overridden in the site shell script). Here is a another example:
|
||||
|
||||
/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
|
||||
configuration-related scripts to be executed by `/bin/bash'.
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
Print the version of Autoconf used to generate the `configure'
|
||||
script, and exit.
|
||||
|
||||
`--cache-file=FILE'
|
||||
Enable the cache: use and save the results of the tests in FILE,
|
||||
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||
disable caching.
|
||||
|
||||
`--config-cache'
|
||||
`-C'
|
||||
Alias for `--cache-file=config.cache'.
|
||||
|
||||
`--quiet'
|
||||
`--silent'
|
||||
`-q'
|
||||
Do not print messages saying which checks are being made. To
|
||||
suppress all normal output, redirect it to `/dev/null' (any error
|
||||
messages will still be shown).
|
||||
|
||||
`--srcdir=DIR'
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
@ -1,19 +0,0 @@
|
||||
PrimeBase XT for MySQL 5.1
|
||||
==========================
|
||||
|
||||
This is the PrimeBase XT (PBXT) transactional storage engine for MySQL. PBXT is "pluggable", which means that it can be loaded dynamically by MySQL at runtime. It uses a unique "write-once" update strategy and MVCC (multi-version concurrency control) to provide optimal performance over a wide range of tasks.
|
||||
|
||||
This package includes the complete source code for the engine. Although this is a standalone project it must be built against a compiled version of the MySQL 5.1 source tree, because it references headers files used internally by the server.
|
||||
|
||||
Details about how to build PBXT both under UNIX or Windows, as a standalone plug-in, or as part of the MySQL source code, is distribed in the documentation which is avaliable online at:
|
||||
|
||||
http://www.primebase.org/documentation
|
||||
|
||||
Bug reports, questions and comments can be sent directly to me.
|
||||
|
||||
Thanks for your support!
|
||||
|
||||
Paul McCullagh
|
||||
SNAP Innovation GmbH
|
||||
paul.mccullagh@primebase.org
|
||||
|
@ -1,195 +0,0 @@
|
||||
PBXT To-Do List
|
||||
===============
|
||||
|
||||
My thanks to all who have downloaded and tested PBXT. If an issue you reported before the date below is not on this list, please e-mail me again.
|
||||
|
||||
------- 2008-12-09
|
||||
|
||||
0063: The option for not using memory mapped files must be fixed.
|
||||
|
||||
0062: Dynamic option for using memory mapping on a table (Dimitri).
|
||||
|
||||
------- 2008-09-12
|
||||
|
||||
0061: Add records per key result to ha_pbxt:info() call (Mark).
|
||||
|
||||
------- 2008-08-31
|
||||
|
||||
0060: Add table option to determine if a table should be memory mapped or not (also requested by Dimitri).
|
||||
|
||||
0059: Add table options:
|
||||
AVG_ROW_LENGTH [=] value
|
||||
DATA DIRECTORY [=] 'absolute path to directory'
|
||||
INDEX DIRECTORY [=] 'absolute path to directory'
|
||||
MAX_ROWS [=] value
|
||||
|
||||
------- 2008-03-28
|
||||
|
||||
0058: Consolidate writes when changes in the log are applied to the database.
|
||||
|
||||
------- 2008-03-07
|
||||
|
||||
0057: Cluster updates onto a single page.
|
||||
|
||||
0056: Add checksum to index and data pages.
|
||||
|
||||
0055: When no index cache is available, the complete index must be flushed (not just single pages).
|
||||
|
||||
0054: Optimize indexes by not creating indexes that are a complete sub-set of some other index. In this case we must be able to identify part of an index as unique. For example: primary key (a, b), index (a, b, c). Here we would just create index (a, b, c), and specify that the part (a, b) must be unique. Operations on (a, b) will be directed to index (a, b, c).
|
||||
|
||||
0053: Check and test lock tables.
|
||||
|
||||
0052: Cache data log data in the handle data cache. Must be purged when a handle data record is written.
|
||||
|
||||
0051: Write data log data alternatively to the transaction log. The compactor must then compact transaction logs.
|
||||
|
||||
0050: [RESOLVED: RN126] Implement consistent write for indexes.
|
||||
|
||||
0049: [RESOLVED: RN114] Set the index block size to 4K, or 16K as used by InnoDB.
|
||||
|
||||
0048: [RESOLVED: RN110] Add row ID to indexes. This should only be set once the row is cleaned by the sweeper. Then the row ID can be used to make a quite check if the row is the most recent version.
|
||||
|
||||
------- 2007-06-19
|
||||
|
||||
0047: Test build with ./configure --with-innodb under Linux (Vadim).
|
||||
|
||||
0046: [RESOLVED: RN85] Add plug.in file to enable drop in compile under Linux.
|
||||
|
||||
0045: Provide libstdc++.so.6 binaries (Vadim).
|
||||
|
||||
0044: [RESOLVED: RN73] Limit number of file handles used per table (Brian).
|
||||
|
||||
0043: XA (two-phase commit) support (Peter).
|
||||
|
||||
------- 2007-03-13
|
||||
|
||||
0042: [RESOLVED: RN108] Implemement STATUS commands.
|
||||
|
||||
0041: Implement index prefix compression.
|
||||
|
||||
------- 2007-03-07
|
||||
|
||||
0040: [RESOLVED: RN60] Update in-place when a transaction updates the same record more than once.
|
||||
|
||||
0039: Set the number and size of the segments dynamically according to the amount of memory in the cache (and the number of CPUs?) (as discussed with: Peter & Vadim).
|
||||
|
||||
0038: [RESOLVED: RN133] Improve the efficiency of the locks by using atomic compare and swap (Peter & Vadim).
|
||||
|
||||
0037: [RESOLVED: RN133] Instead of a global LRU list, use a LRU list for segment of the cache (Peter & Vadim). [ Note: a global list using a TAS lock and change time (so that LRU is not always updated) is most efficient].
|
||||
|
||||
0036: Add support for deferred foreign key checking (requested by: Mark).
|
||||
|
||||
0035: [RESOLVED: RN71] Remove the 2000 table limit (reported by: Hakan).
|
||||
|
||||
------- 2007-02-28
|
||||
|
||||
0035: [RESOLVED: RN74, RN107] Build in the PBXT system parameters (currently they must be set using environment variables.
|
||||
|
||||
0034: [RESOLVED: RN117] Initial documentation (yes, it must be done!)
|
||||
|
||||
0033: Make the error code returned on lock error configurable.
|
||||
|
||||
0032: [RESOLVED: RN65] Create a source code pluggable version for Windows.
|
||||
|
||||
0031: [RESOLVED: RN66] PBXT corrupts the index file when the size exceeds 4 GB (reported by: Luciano)
|
||||
|
||||
0030: [RESOLVED: RN102] Implement pbxt_index_flush_delay. Postpones index writing in order to speed up imports. [Resolution uses that fact hat index entries that are missing are added during recovery. As a result, index flushing can be delayed.]
|
||||
|
||||
0029: [RESOLVED: RN103] Implement SELECT ... FOR UPDATE (recommended by: Robin).
|
||||
|
||||
------- 2007-02-14
|
||||
|
||||
0028: Implement CREATE TABLE ... DATA/INDEX DIRECTORY (suggested by: Robin).
|
||||
|
||||
------- 2006-12-06
|
||||
|
||||
0027: [RESOLVED: RN53] Bug in pbxt with query caching (reported by: Giuseppe) caused violation of transaction isolation.
|
||||
|
||||
------- 2006-08-05
|
||||
|
||||
0026: Implement BACKUP and RESTORE table (planned for the first post release version).
|
||||
|
||||
0025: Implement DISABLE/ENABLE KEYS. Works for FOREIGN KEYs, currently no plans to implement for disabling indexes.
|
||||
|
||||
0024: Implement ANALYZE TABLE (planned for the first post release version).
|
||||
|
||||
0023: Implement CHECK TABLE (planned for the first release candidate).
|
||||
|
||||
0022: [RESOLVED: RN18] Implement TRUNCATE TABLE and DELETE FROM <table>; (i.e. a DELETE without WHERE clause). Currently this function does not cause an error, but no rows are deleted.
|
||||
|
||||
------- 2006-07-06
|
||||
|
||||
0021: [RESOLVED: RN28] .../mysql-test/mysql-test-run --force --mysqld=--default-storage-engine=pbxt produces a number of errors (reported by: Hakan): As far as I can tell some failures are unnessary but others are bugs. All need to be checked.
|
||||
|
||||
------- 2006-07-03
|
||||
|
||||
0020: [RESOLVED: RN49] Implement referential integrity (planned for the first release candidate).
|
||||
|
||||
------- 2006-04-01
|
||||
|
||||
0019: [RESOLVED: RN28] mysql-test-run hangs on alter table (reported by: Hakan): Running a test like ./mysql-test-run.pl --mysqld=--default-storage-engine=pbxt, hangs on ALTER TABLE.
|
||||
|
||||
0018: Implement GEOMETRY date type. Note: There are currently no plans to implement this feature.
|
||||
|
||||
------- 2006-03-31
|
||||
|
||||
0017: [RESOLVED: RN37] MySQL 5.x Version (reported by: Ronald, Giuseppe).
|
||||
|
||||
0016: [RESOLVED: RN13] Hang on "DROP DATABASE" (reported by: Giuseppe). Load the world database (http://downloads.mysql.com/docs/world.sql) and convert all tables into PBXT. Then, the drop database command hangs.
|
||||
|
||||
0015: [RESOLVED: RN12] Implement isolation level "repeatable read" (reported by: Giuseppe). Current PBXT only supports isolation level "committed read". This means committed data can be seen no matter when it was committed. Use SELECT ... FOR UPDATE to guarantee repeatable read, on data already read.
|
||||
|
||||
0014: [RESOLVED: RN7] Two transactions cannot insert simaltaneously if they use auto_increment (reported by: Giuseppe). See also 0005.
|
||||
|
||||
0013: [RESOLVED: RN11] Implement buffered write (reported by: Giuseppe): Lack of buffered write leads to bad performance in operations such as ALTER TABLE ENGINE = PBXT and INSERT ... SELECT.
|
||||
|
||||
0012: [RESOLVED: RN18] TRUNCATE does not work (reported by: Giuseppe)
|
||||
|
||||
0011: [RESOLVED: RN2] Load Sakila Sample Database (reported by: Ronald): ALTER TABLE film ENGINE=PBXT; fails
|
||||
|
||||
0010: [RESOLVED: RN6] sql-bench (reported by: Dmitry): ./run-all-tests --create-options=TYPE=PBXT fails.
|
||||
|
||||
0009: [RESOLVED: RN29] 64-bit Linux (reported by: Hakan): PBXT current does not compile under 64-bit Linux.
|
||||
|
||||
------- 2006-03-16
|
||||
|
||||
0008: [RESOLVED: RN10] Enforcing the unique index constraint:
|
||||
|
||||
An index declared as "unique" must return a "duplicate unique key" error when inserting a duplicate value. The difficulty part of implementing this in PBXT is that we may encounter a duplicate value that has not yet been committed. The index reading thread must then wait for the transaction to commit or abort.
|
||||
|
||||
0007: [RESOLVED: RN9] Cleaning up empty index nodes:
|
||||
|
||||
The Lehman and Yoa algorithm used for indexing does not describe a way of cleaning up empty index nodes on-the-fly. A search of the relevant literature for an algorithm also turns up empty handed (periodic "reorg" is mostly suggested). I have subsequently devised an algorithm that will do the job. This needs to be implemented.
|
||||
|
||||
0006: [RESOLVED: RN8] Cache Balancing:
|
||||
|
||||
PBXT uses a number of small caches in order to improve concurrency (rather than one large cache). A process is required to manage the amount of cache memory used as a whole. The process must distribute the overall amount of memory available for caching over the small caches, according to demand.
|
||||
|
||||
0005: [RESOLVED: RN7] Implement a faster auto-increment method
|
||||
|
||||
Currently the auto-increment is handled by the default method used in MySQL. This is done by performing a "fetch-last" on the index for each insert to find the highest key value. This works well unless there are large number empty index nodes due to the problem described in (2) above.
|
||||
|
||||
PBXT Testing To-Do List
|
||||
|
||||
This is my first take on what still must be tested. My thanks to Ronald Bradford who is working on a generic testing framework that can be used to test PBXT.
|
||||
|
||||
0004: [RESOLVED: RN6, RN28] MySQL Tests:
|
||||
|
||||
Several tests (for mysql-test-run) written for other engines can be adapted and used to test PBXT.
|
||||
|
||||
0003: [RESOLVED: RN30] Multi-processor Test:
|
||||
|
||||
There is a difference between preemptive multitasking and true multitasking, which you have on a multi-processor (or dual core) machine. I don't expect any fundamental problems here, but it must be tested.
|
||||
|
||||
0002: [RESOLVED: RN5, RN30, RN43] Multi-user/locking Test:
|
||||
|
||||
How does the engine perform with a number of concurrent users running various transactions on a number of different tables?
|
||||
This is a difficult test to write because it need to simulate a production situation. To test at least 2 or 3 machines is required. The idea is not to use too much data so that a lot of conflicts may occur.
|
||||
|
||||
0001: [RESOLVED: RN4, RN43] Load/Stability Test:
|
||||
|
||||
How does the engine perform under heavy load over a long period of time? How stable is the engine on power outage, etc?
|
||||
|
||||
The test could use a variation of the test program written for test (3) above. At least 3 test machines would be required. The test must be modified to cause as much activity as possible. The test should monitor the performance under load.
|
||||
|
||||
|
@ -1,819 +0,0 @@
|
||||
/* Copyright (c) 2005 PrimeBase Technologies GmbH
|
||||
*
|
||||
* PrimeBase XT
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* 2008-11-19 Paul McCullagh
|
||||
*
|
||||
* H&G2JCtL
|
||||
*/
|
||||
|
||||
#include "xt_config.h"
|
||||
|
||||
#include <mysql.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "strutil_xt.h"
|
||||
#include "util_xt.h"
|
||||
|
||||
//#define DEBUG_INTERRUPT
|
||||
|
||||
#define OPT_NONE -1
|
||||
#define OPT_HELP 0
|
||||
#define OPT_HOST 1
|
||||
#define OPT_USER 2
|
||||
#define OPT_PASSWORD 3
|
||||
#define OPT_DATABASE 4
|
||||
#define OPT_PORT 5
|
||||
#define OPT_SOCKET 6
|
||||
#define OPT_DELAY 7
|
||||
#define OPT_PROTOCOL 8
|
||||
#define OPT_DISPLAY 9
|
||||
|
||||
#define OPT_HAS_VALUE 1
|
||||
#define OPT_OPTIONAL 2
|
||||
#define OPT_INTEGER 4
|
||||
|
||||
llong record_cache_size;
|
||||
llong index_cache_size;
|
||||
llong log_cache_size;
|
||||
|
||||
llong accumulative_values[XT_STAT_CURRENT_MAX];
|
||||
int columns_used;
|
||||
int use_i_s = 0;
|
||||
|
||||
struct DisplayOrder {
|
||||
int do_statistic;
|
||||
bool do_combo;
|
||||
} display_order[XT_STAT_CURRENT_MAX];
|
||||
|
||||
struct Options {
|
||||
int opt_id;
|
||||
const char opt_char;
|
||||
const char *opt_name;
|
||||
int opt_flags;
|
||||
const char *opt_desc;
|
||||
const char *opt_value_str;
|
||||
int opt_value_int;
|
||||
bool opt_value_bool;
|
||||
} options[] = {
|
||||
{ OPT_HELP, '?', "help", 0,
|
||||
"Prints help text", NULL, 0, false },
|
||||
{ OPT_HOST, 'h', "host", OPT_HAS_VALUE,
|
||||
"Connect to host", NULL, 0, false },
|
||||
{ OPT_USER, 'u', "user", OPT_HAS_VALUE,
|
||||
"User for login if not current user", NULL, 0, false },
|
||||
{ OPT_PASSWORD, 'p', "password", OPT_HAS_VALUE | OPT_OPTIONAL,
|
||||
"Password to use when connecting to server. If password is not given it's asked from the tty", NULL, 0, false },
|
||||
{ OPT_DATABASE, 'd', "database", OPT_HAS_VALUE,
|
||||
"Database to be used (pbxt or information_schema required), default is information_schema", "information_schema", 0, false },
|
||||
{ OPT_PORT, 'P', "port", OPT_HAS_VALUE | OPT_INTEGER,
|
||||
"Port number to use for connection", NULL, 3306, false },
|
||||
{ OPT_SOCKET, 'S', "socket", OPT_HAS_VALUE,
|
||||
"Socket file to use for connection", NULL, 0, false },
|
||||
{ OPT_DELAY, 'D', "delay", OPT_HAS_VALUE | OPT_INTEGER,
|
||||
"Delay in seconds between polls of the database", NULL, 1, false },
|
||||
{ OPT_PROTOCOL, 0, "protocol", OPT_HAS_VALUE,
|
||||
"Connection protocol to use: default/tcp/socket/pipe/memory", "default", MYSQL_PROTOCOL_DEFAULT, false },
|
||||
{ OPT_DISPLAY, 0, "display", OPT_HAS_VALUE,
|
||||
"Columns to display: use short names separated by |, partial match allowed", "time-msec,commt,row-ins,rec,ind,ilog,xlog,data,to,dirty", 0, false },
|
||||
{ OPT_NONE, 0, NULL, 0, NULL, NULL, 0, false }
|
||||
};
|
||||
|
||||
#ifdef XT_WIN
|
||||
#define atoll _atoi64
|
||||
#endif
|
||||
|
||||
void add_statistic(int stat)
|
||||
{
|
||||
/* Check if column has already been added: */
|
||||
for (int i=0; i<columns_used; i++) {
|
||||
if (display_order[i].do_statistic == stat)
|
||||
return;
|
||||
}
|
||||
display_order[columns_used].do_statistic = stat;
|
||||
display_order[columns_used].do_combo = false;
|
||||
columns_used++;
|
||||
}
|
||||
|
||||
void determine_display_order()
|
||||
{
|
||||
const char *cols = options[OPT_DISPLAY].opt_value_str;
|
||||
char column_1[21], column_2[21];
|
||||
int i;
|
||||
bool add, added, add_combo;
|
||||
XTStatMetaDataPtr meta, meta2;
|
||||
|
||||
if (strcmp(cols, "all") == 0)
|
||||
cols = "time,xact,stat,rec,ind,ilog,xlog,data,to,sweep,scan,row";
|
||||
columns_used = 0;
|
||||
while (*cols) {
|
||||
i = 0;
|
||||
while (*cols && *cols != '-' && *cols != ',') {
|
||||
if (i < 20) {
|
||||
column_1[i] = *cols;
|
||||
i++;
|
||||
}
|
||||
cols++;
|
||||
}
|
||||
column_1[i] = 0;
|
||||
|
||||
i = 0;
|
||||
if (*cols == '-') {
|
||||
cols++;
|
||||
while (*cols && *cols != '-' && *cols != ',') {
|
||||
if (i < 20) {
|
||||
column_2[i] = *cols;
|
||||
i++;
|
||||
}
|
||||
cols++;
|
||||
}
|
||||
}
|
||||
column_2[i] = 0;
|
||||
|
||||
if (*cols == ',')
|
||||
cols++;
|
||||
|
||||
if (strcmp(column_1, "ms") == 0)
|
||||
strcpy(column_1, "msec");
|
||||
if (strcmp(column_2, "ms") == 0)
|
||||
strcpy(column_2, "msec");
|
||||
add_combo = false;
|
||||
if (strcmp(column_1, "syncs/ms") == 0) {
|
||||
strcpy(column_1, "syncs");
|
||||
add_combo = true;
|
||||
}
|
||||
if (strcmp(column_2, "syncs/ms") == 0) {
|
||||
strcpy(column_2, "syncs");
|
||||
add_combo = true;
|
||||
}
|
||||
|
||||
added = false;
|
||||
for (i=0; i<XT_STAT_MAXIMUM; i++) {
|
||||
meta = xt_get_stat_meta_data(i);
|
||||
add = false;
|
||||
if (strcmp(meta->sm_short_line_1, column_1) == 0) {
|
||||
if (column_2[0]) {
|
||||
if (strcmp(meta->sm_short_line_2, column_2) == 0)
|
||||
add = true;
|
||||
}
|
||||
else {
|
||||
if (i != XT_STAT_XLOG_CACHE_USAGE)
|
||||
add = true;
|
||||
}
|
||||
}
|
||||
else if (!column_2[0]) {
|
||||
if (strcmp(meta->sm_short_line_2, column_1) == 0) {
|
||||
/* XT_STAT_XLOG_CACHE_USAGE is ignored, unless explicity listed! */
|
||||
if (i != XT_STAT_XLOG_CACHE_USAGE)
|
||||
add = true;
|
||||
}
|
||||
}
|
||||
if (add) {
|
||||
added = true;
|
||||
add_statistic(i);
|
||||
if (add_combo)
|
||||
add_statistic(i+1);
|
||||
}
|
||||
}
|
||||
if (!added) {
|
||||
if (column_2[0])
|
||||
fprintf(stderr, "ERROR: No statistic matches display option: '%s-%s'\n", column_1, column_2);
|
||||
else
|
||||
fprintf(stderr, "ERROR: No statistic matches display option: '%s'\n", column_1);
|
||||
fprintf(stderr, "Display options: %s\n", options[OPT_DISPLAY].opt_value_str);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Setup "combo" fields: */
|
||||
for (i=0; i<columns_used; i++) {
|
||||
meta = xt_get_stat_meta_data(display_order[i].do_statistic);
|
||||
if (meta->sm_flags & XT_STAT_COMBO_FIELD) {
|
||||
if (i+1 < columns_used) {
|
||||
meta2 = xt_get_stat_meta_data(display_order[i+1].do_statistic);
|
||||
if (meta2->sm_flags & XT_STAT_COMBO_FIELD_2) {
|
||||
if (strcmp(meta->sm_short_line_1, meta2->sm_short_line_1) == 0)
|
||||
display_order[i].do_combo = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void format_percent_value(char *buffer, double value, double perc)
|
||||
{
|
||||
value = value * (double) 100 / (double) perc;
|
||||
if (value >= 100)
|
||||
sprintf(buffer, "%.0f", value);
|
||||
else
|
||||
sprintf(buffer, "%.1f", value);
|
||||
buffer[4] = 0;
|
||||
if (buffer[3] == '.')
|
||||
buffer[3] = 0;
|
||||
}
|
||||
|
||||
#define XT_1_K ((double) 1024)
|
||||
#define XT_1_M ((double) 1024 * (double) 1024)
|
||||
#define XT_1_G ((double) 1024 * (double) 1024 * (double) 1024)
|
||||
#define XT_1_T ((double) 1024 * (double) 1024 * (double) 1024 * (double) 1024)
|
||||
#define XT_10000_K ((double) 10000 * XT_1_K)
|
||||
#define XT_10000_M ((double) 10000 * XT_1_M)
|
||||
#define XT_10000_G ((double) 10000 * XT_1_G)
|
||||
|
||||
void format_byte_value(char *buffer, double value)
|
||||
{
|
||||
double dval;
|
||||
char string[100];
|
||||
char ch;
|
||||
|
||||
if (value < (double) 100000) {
|
||||
/* byte value from 0 to 99999: */
|
||||
sprintf(buffer, "%.0f", value);
|
||||
return;
|
||||
}
|
||||
|
||||
if (value < XT_10000_K) {
|
||||
dval = value / XT_1_K;
|
||||
ch = 'K';
|
||||
}
|
||||
else if (value < XT_10000_M) {
|
||||
dval = value / XT_1_M;
|
||||
ch = 'M';
|
||||
}
|
||||
else if (value < XT_10000_G) {
|
||||
dval = value / XT_1_G;
|
||||
ch = 'G';
|
||||
}
|
||||
else {
|
||||
dval = value / XT_1_T;
|
||||
ch = 'T';
|
||||
}
|
||||
|
||||
if (dval < (double) 10.0)
|
||||
sprintf(string, "%.2f", dval);
|
||||
else if (dval < (double) 100.0)
|
||||
sprintf(string, "%.1f", dval);
|
||||
else
|
||||
sprintf(string, "%.0f", dval);
|
||||
if (string[3] == '.')
|
||||
string[3] = 0;
|
||||
else
|
||||
string[4] = 0;
|
||||
sprintf(buffer, "%s%c", string, ch);
|
||||
}
|
||||
|
||||
/*
|
||||
* Uses:
|
||||
* t = thousands
|
||||
* m = millions
|
||||
* b = billions
|
||||
*/
|
||||
void format_mini_count_value(char *buffer, double value)
|
||||
{
|
||||
double dval;
|
||||
char string[100];
|
||||
char ch;
|
||||
|
||||
if (value < (double) 100) {
|
||||
/* Value from 0 to 99: */
|
||||
sprintf(buffer, "%.0f", value);
|
||||
return;
|
||||
}
|
||||
|
||||
if (value < (double) 1000) {
|
||||
sprintf(buffer, "<t");
|
||||
return;
|
||||
}
|
||||
|
||||
if (value < (double) 10000) {
|
||||
/* Value is less than 1m */
|
||||
dval = value / (double) 1000.0;
|
||||
ch = 't';
|
||||
}
|
||||
else if (value < (double) 1000000) {
|
||||
sprintf(buffer, "<m");
|
||||
return;
|
||||
}
|
||||
else if (value < (double) 10000000) {
|
||||
/* Value is less than 1b */
|
||||
dval = value / (double) 1000000.0;
|
||||
ch = 'm';
|
||||
}
|
||||
else if (value < (double) 1000000000) {
|
||||
sprintf(buffer, "<b");
|
||||
return;
|
||||
}
|
||||
else {
|
||||
/* Value is greater than 1 billion */
|
||||
dval = value / (double) 1000000000.0;
|
||||
ch = 'b';
|
||||
}
|
||||
|
||||
sprintf(string, "%1.0f", dval);
|
||||
string[1] = 0;
|
||||
sprintf(buffer, "%s%c", string, ch);
|
||||
}
|
||||
|
||||
#define XT_1_THOUSAND ((double) 1000)
|
||||
#define XT_1_MILLION ((double) 1000 * (double) 1000)
|
||||
#define XT_1_BILLION ((double) 1000 * (double) 1000 * (double) 1000)
|
||||
#define XT_1_TRILLION ((double) 1000 * (double) 1000 * (double) 1000 * (double) 1000)
|
||||
#define XT_10_THOUSAND ((double) 10 * (double) 1000)
|
||||
#define XT_10_MILLION ((double) 10 * (double) 1000 * (double) 1000)
|
||||
#define XT_10_BILLION ((double) 10 * (double) 1000 * (double) 1000 * (double) 1000)
|
||||
#define XT_10_TRILLION ((double) 10 * (double) 1000 * (double) 1000 * (double) 1000 * (double) 1000)
|
||||
|
||||
void format_count_value(char *buffer, double value)
|
||||
{
|
||||
double dval;
|
||||
char string[100];
|
||||
char ch;
|
||||
|
||||
if (value < (double) 0) {
|
||||
strcpy(buffer, "0");
|
||||
return;
|
||||
}
|
||||
|
||||
if (value < XT_10_THOUSAND) {
|
||||
/* byte value from 0 to 99999: */
|
||||
sprintf(buffer, "%.0f", value);
|
||||
return;
|
||||
}
|
||||
|
||||
if (value < XT_10_MILLION) {
|
||||
/* Value is less than 10 million */
|
||||
dval = value / XT_1_THOUSAND;
|
||||
ch = 't';
|
||||
}
|
||||
else if (value < XT_10_BILLION) {
|
||||
/* Value is less than 10 million */
|
||||
dval = value / XT_1_MILLION;
|
||||
ch = 'm';
|
||||
}
|
||||
else if (value < XT_10_TRILLION) {
|
||||
/* Value is less than 10 trillion */
|
||||
dval = value / XT_1_BILLION;
|
||||
ch = 'b';
|
||||
}
|
||||
else {
|
||||
dval = value / XT_1_TRILLION;
|
||||
ch = 't';
|
||||
}
|
||||
|
||||
if (dval < (double) 10.0)
|
||||
sprintf(string, "%.2f", dval);
|
||||
else if (dval < (double) 100.0)
|
||||
sprintf(string, "%.1f", dval);
|
||||
else
|
||||
sprintf(string, "%.0f", dval);
|
||||
if (string[3] == '.')
|
||||
string[3] = 0;
|
||||
else
|
||||
string[4] = 0;
|
||||
sprintf(buffer, "%s%c", string, ch);
|
||||
}
|
||||
|
||||
void print_help()
|
||||
{
|
||||
struct Options *opt;
|
||||
char command[100];
|
||||
|
||||
printf("Usage: xtstat [ options ]\n");
|
||||
printf("e.g. xtstat -D10 : Poll every 10 seconds\n");
|
||||
opt = options;
|
||||
printf("Options :-\n");
|
||||
while (opt->opt_id != OPT_NONE) {
|
||||
strcpy(command, opt->opt_name);
|
||||
if (opt->opt_flags & OPT_HAS_VALUE) {
|
||||
if (opt->opt_flags & OPT_OPTIONAL)
|
||||
strcat(command, "[=value]");
|
||||
else
|
||||
strcat(command, "=value");
|
||||
}
|
||||
if (opt->opt_char)
|
||||
printf("-%c, --%-16s %s.\n", opt->opt_char, command, opt->opt_desc);
|
||||
else
|
||||
printf(" --%-16s %s.\n", command, opt->opt_desc);
|
||||
opt++;
|
||||
}
|
||||
}
|
||||
|
||||
void print_stat_key()
|
||||
{
|
||||
printf("Key :-\n");
|
||||
printf("K = Kilobytes (1,024 bytes)\n");
|
||||
printf("M = Megabytes (1,048,576 bytes)\n");
|
||||
printf("G = Gigabytes (1,073,741,024 bytes)\n");
|
||||
printf("T = Terabytes (1,099,511,627,776 bytes)\n");
|
||||
printf("t = thousands (1,000s)\n");
|
||||
printf("m = millions (1,000,000s)\n");
|
||||
printf("b = billions (1,000,000,000s)\n");
|
||||
}
|
||||
|
||||
void print_stat_info()
|
||||
{
|
||||
XTStatMetaDataPtr meta;
|
||||
char buffer[40];
|
||||
char desc[400];
|
||||
|
||||
printf("Statistics :-\n");
|
||||
for (int i=0; i<XT_STAT_CURRENT_MAX; i++) {
|
||||
meta = xt_get_stat_meta_data(i);
|
||||
sprintf(desc, meta->sm_description, "milli");
|
||||
sprintf(buffer, "%s-%s", meta->sm_short_line_1, meta->sm_short_line_2);
|
||||
if (meta->sm_flags & XT_STAT_COMBO_FIELD) {
|
||||
/* Combine next 2 fields: */
|
||||
i++;
|
||||
strcat(buffer, "/ms");
|
||||
strcat(desc, "/time taken in milliseconds");
|
||||
}
|
||||
printf("%-13s %-21s - %s.\n", buffer, meta->sm_name, desc);
|
||||
}
|
||||
}
|
||||
|
||||
bool match_arg(char *what, const char *opt, char **value)
|
||||
{
|
||||
while (*what && *opt && isalpha(*what)) {
|
||||
if (*what != *opt)
|
||||
return false;
|
||||
what++;
|
||||
opt++;
|
||||
}
|
||||
if (*opt)
|
||||
return false;
|
||||
if (*what == '=')
|
||||
*value = what + 1;
|
||||
else if (*what)
|
||||
return false;
|
||||
else
|
||||
*value = NULL;
|
||||
return true;
|
||||
}
|
||||
|
||||
void parse_args(int argc, char **argv)
|
||||
{
|
||||
char *ptr;
|
||||
char *value;
|
||||
int i = 1;
|
||||
struct Options *opt;
|
||||
bool found;
|
||||
|
||||
while (i < argc) {
|
||||
ptr = argv[i];
|
||||
found = false;
|
||||
if (*ptr == '-') {
|
||||
ptr++;
|
||||
if (*ptr == '-') {
|
||||
ptr++;
|
||||
opt = options;
|
||||
while (opt->opt_id != OPT_NONE) {
|
||||
if (match_arg(ptr, opt->opt_name, &value)) {
|
||||
found = true;
|
||||
opt->opt_value_str = value;
|
||||
opt->opt_value_bool = true;
|
||||
break;
|
||||
}
|
||||
opt++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
opt = options;
|
||||
while (opt->opt_id != OPT_NONE) {
|
||||
if (*ptr == opt->opt_char) {
|
||||
ptr++;
|
||||
if (*ptr)
|
||||
opt->opt_value_str = ptr;
|
||||
else {
|
||||
opt->opt_value_str = NULL;
|
||||
if (i+1 < argc) {
|
||||
ptr = argv[i+1];
|
||||
if (*ptr != '-') {
|
||||
opt->opt_value_str = ptr;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
found = true;
|
||||
opt->opt_value_bool = true;
|
||||
break;
|
||||
}
|
||||
opt++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!found) {
|
||||
fprintf(stderr, "Unknown option: %s\n", argv[i]);
|
||||
print_help();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (opt->opt_flags & OPT_HAS_VALUE) {
|
||||
if (!(opt->opt_flags & OPT_OPTIONAL)) {
|
||||
if (!opt->opt_value_str) {
|
||||
fprintf(stderr, "Option requires a value: %s\n", argv[i]);
|
||||
printf("Use --help for help on commands and usage\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (opt->opt_value_str) {
|
||||
fprintf(stderr, "Option does not accept a value: %s\n", argv[i]);
|
||||
printf("Use --help for help on commands and usage\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (opt->opt_value_str && (opt->opt_flags & OPT_INTEGER))
|
||||
opt->opt_value_int = atoi(opt->opt_value_str);
|
||||
|
||||
if (opt->opt_id == OPT_HELP) {
|
||||
print_help();
|
||||
print_stat_key();
|
||||
print_stat_info();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG_INTERRUPT
|
||||
void interrupt_pbxt(MYSQL *conn)
|
||||
{
|
||||
MYSQL_RES *res;
|
||||
|
||||
if (mysql_query(conn, "show engine pbxt status")) {
|
||||
fprintf(stderr, "%s\n", mysql_error(conn));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
res = mysql_use_result(conn);
|
||||
mysql_free_result(res);
|
||||
}
|
||||
#endif
|
||||
|
||||
static bool display_parameters(MYSQL *conn)
|
||||
{
|
||||
MYSQL_RES *res;
|
||||
MYSQL_ROW row;
|
||||
|
||||
/* send SQL query */
|
||||
if (mysql_query(conn, "show variables like 'pbxt_%'"))
|
||||
return false;
|
||||
|
||||
if (!(res = mysql_use_result(conn)))
|
||||
return false;
|
||||
|
||||
/* output table name */
|
||||
printf("-- PBXT System Variables --\n");
|
||||
while ((row = mysql_fetch_row(res)) != NULL) {
|
||||
if (strcmp(row[0], "pbxt_index_cache_size") == 0)
|
||||
index_cache_size = xt_byte_size_to_int8(row[1]);
|
||||
else if (strcmp(row[0], "pbxt_record_cache_size") == 0)
|
||||
record_cache_size = xt_byte_size_to_int8(row[1]);
|
||||
else if (strcmp(row[0], "pbxt_log_cache_size") == 0)
|
||||
log_cache_size = xt_byte_size_to_int8(row[1]);
|
||||
printf("%-29s= %s\n", row[0], row[1]);
|
||||
}
|
||||
|
||||
mysql_free_result(res);
|
||||
|
||||
for (int i=0; i<XT_STAT_CURRENT_MAX; i++)
|
||||
accumulative_values[i] = 0;
|
||||
|
||||
printf("Display options: %s\n", options[OPT_DISPLAY].opt_value_str);
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool connect(MYSQL *conn)
|
||||
{
|
||||
unsigned int type;
|
||||
|
||||
if (strcasecmp(options[OPT_PROTOCOL].opt_value_str, "tcp") == 0)
|
||||
type = MYSQL_PROTOCOL_TCP;
|
||||
else if (strcasecmp(options[OPT_PROTOCOL].opt_value_str, "socket") == 0)
|
||||
type = MYSQL_PROTOCOL_SOCKET;
|
||||
else if (strcasecmp(options[OPT_PROTOCOL].opt_value_str, "pipe") == 0)
|
||||
type = MYSQL_PROTOCOL_PIPE;
|
||||
else if (strcasecmp(options[OPT_PROTOCOL].opt_value_str, "memory") == 0)
|
||||
type = MYSQL_PROTOCOL_MEMORY;
|
||||
else
|
||||
type = MYSQL_PROTOCOL_DEFAULT;
|
||||
|
||||
if (mysql_options(conn, MYSQL_OPT_PROTOCOL, (char *) &type))
|
||||
return false;
|
||||
|
||||
if (mysql_options(conn, MYSQL_READ_DEFAULT_GROUP, "xtstat"))
|
||||
return false;
|
||||
|
||||
if (strcasecmp(options[OPT_DATABASE].opt_value_str, "pbxt") == 0)
|
||||
use_i_s = FALSE;
|
||||
else if (strcasecmp(options[OPT_DATABASE].opt_value_str, "information_schema") == 0)
|
||||
use_i_s = TRUE;
|
||||
else
|
||||
use_i_s = TRUE;
|
||||
|
||||
/* Connect to database */
|
||||
if (!mysql_real_connect(conn,
|
||||
options[OPT_HOST].opt_value_str,
|
||||
options[OPT_USER].opt_value_str,
|
||||
options[OPT_PASSWORD].opt_value_str,
|
||||
options[OPT_DATABASE].opt_value_str,
|
||||
options[OPT_PORT].opt_value_int,
|
||||
options[OPT_SOCKET].opt_value_str,
|
||||
0))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
MYSQL *conn;
|
||||
MYSQL_RES *res;
|
||||
MYSQL_ROW row;
|
||||
llong current_values[XT_STAT_CURRENT_MAX];
|
||||
double value;
|
||||
char str_value[100];
|
||||
XTStatMetaDataPtr meta;
|
||||
int len;
|
||||
int stat;
|
||||
int err;
|
||||
bool select_worked = true;
|
||||
|
||||
xt_set_time_unit("msec");
|
||||
parse_args(argc, argv);
|
||||
|
||||
determine_display_order();
|
||||
|
||||
if (!(conn = mysql_init(NULL))) {
|
||||
fprintf(stderr, "Insufficient memory\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (!connect(conn) || !display_parameters(conn)) {
|
||||
fprintf(stderr, "%s\n", mysql_error(conn));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
retry:
|
||||
for (int loop = 0; ; loop++) {
|
||||
if (use_i_s)
|
||||
err = mysql_query(conn, "select id, Value from information_schema.pbxt_statistics order by ID");
|
||||
else
|
||||
err = mysql_query(conn, "select id, Value from pbxt.statistics order by ID");
|
||||
if (err)
|
||||
goto reconnect;
|
||||
|
||||
if (!(res = mysql_use_result(conn)))
|
||||
goto reconnect;
|
||||
select_worked = true;
|
||||
|
||||
while ((row = mysql_fetch_row(res)) != NULL) {
|
||||
stat = atoi(row[0])-1;
|
||||
current_values[stat] = atoll(row[1]);
|
||||
}
|
||||
mysql_free_result(res);
|
||||
|
||||
#ifdef DEBUG_INTERRUPT
|
||||
if (current_values[XT_STAT_STAT_WRITES] - accumulative_values[XT_STAT_STAT_WRITES] == 0 &&
|
||||
current_values[XT_STAT_REC_SYNC_TIME] - accumulative_values[XT_STAT_REC_SYNC_TIME] == 0 &&
|
||||
current_values[XT_STAT_IND_SYNC_TIME] - accumulative_values[XT_STAT_IND_SYNC_TIME] == 0)
|
||||
interrupt_pbxt();
|
||||
#endif
|
||||
|
||||
if ((loop % 25) == 0) {
|
||||
for (int column=0; column<columns_used; column++) {
|
||||
len = 5;
|
||||
meta = xt_get_stat_meta_data(display_order[column].do_statistic);
|
||||
strcpy(str_value, meta->sm_short_line_1);
|
||||
if (display_order[column].do_combo) {
|
||||
/* Combine next 2 fields: */
|
||||
len = 8;
|
||||
column++;
|
||||
}
|
||||
else if (meta->sm_flags & XT_STAT_PERCENTAGE)
|
||||
len = 4;
|
||||
else if (meta->sm_flags & XT_STAT_DATE)
|
||||
len = 15;
|
||||
printf("%*s ", len, str_value);
|
||||
}
|
||||
printf("\n");
|
||||
for (int column=0; column<columns_used; column++) {
|
||||
len = 5;
|
||||
meta = xt_get_stat_meta_data(display_order[column].do_statistic);
|
||||
strcpy(str_value, meta->sm_short_line_2);
|
||||
if (display_order[column].do_combo) {
|
||||
/* Combine next 2 fields: */
|
||||
len = 8;
|
||||
column++;
|
||||
strcat(str_value, "/ms");
|
||||
}
|
||||
else if (meta->sm_flags & XT_STAT_PERCENTAGE)
|
||||
len = 4;
|
||||
else if (meta->sm_flags & XT_STAT_DATE)
|
||||
len = 15;
|
||||
printf("%*s ", len, str_value);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
for (int column=0; column<columns_used; column++) {
|
||||
len = 5;
|
||||
stat = display_order[column].do_statistic;
|
||||
meta = xt_get_stat_meta_data(stat);
|
||||
if (meta->sm_flags & XT_STAT_ACCUMULATIVE) {
|
||||
/* Take care of overflow! */
|
||||
if (current_values[stat] < accumulative_values[stat])
|
||||
value = (double) (0xFFFFFFFF - (accumulative_values[stat] - current_values[stat]));
|
||||
else
|
||||
value = (double) (current_values[stat] - accumulative_values[stat]);
|
||||
}
|
||||
else
|
||||
value = (double) current_values[stat];
|
||||
accumulative_values[stat] = current_values[stat];
|
||||
if (meta->sm_flags & XT_STAT_TIME_VALUE)
|
||||
value = value / (double) 1000;
|
||||
if (display_order[column].do_combo) {
|
||||
format_mini_count_value(str_value, value);
|
||||
strcat(str_value, "/");
|
||||
column++;
|
||||
stat = display_order[column].do_statistic;
|
||||
value = (double) (current_values[stat] - accumulative_values[stat]);
|
||||
accumulative_values[stat] = current_values[stat];
|
||||
value = value / (double) 1000;
|
||||
format_count_value(&str_value[strlen(str_value)], value);
|
||||
len = 8;
|
||||
}
|
||||
else if (meta->sm_flags & XT_STAT_PERCENTAGE) {
|
||||
double perc = 100;
|
||||
switch (stat) {
|
||||
case XT_STAT_REC_CACHE_USAGE: perc = (double)record_cache_size; break;
|
||||
case XT_STAT_IND_CACHE_USAGE: perc = (double)index_cache_size; break;
|
||||
case XT_STAT_XLOG_CACHE_USAGE: perc = (double)log_cache_size; break;
|
||||
}
|
||||
format_percent_value(str_value, value, perc);
|
||||
len = 4;
|
||||
}
|
||||
else if (meta->sm_flags & XT_STAT_DATE) {
|
||||
time_t ticks = (time_t) value;
|
||||
const struct tm *ltime = localtime(&ticks);
|
||||
strftime(str_value, 99, "%y%m%d %H:%M:%S", ltime);
|
||||
len = 15;
|
||||
}
|
||||
else if (meta->sm_flags & XT_STAT_BYTE_COUNT)
|
||||
format_byte_value(str_value, value);
|
||||
else
|
||||
format_count_value(str_value, value);
|
||||
if (column == columns_used-1)
|
||||
printf("%*s\n", len, str_value);
|
||||
else
|
||||
printf("%*s ", len, str_value);
|
||||
}
|
||||
|
||||
sleep(options[OPT_DELAY].opt_value_int);
|
||||
}
|
||||
|
||||
/* close connection */
|
||||
mysql_close(conn);
|
||||
return 0;
|
||||
|
||||
reconnect:
|
||||
/* Reconnect... */
|
||||
if (select_worked) {
|
||||
/* Only print message if the SELECT worked.
|
||||
* or we will get a screen full of messages:
|
||||
*/
|
||||
fprintf(stderr, "%s\n", mysql_error(conn));
|
||||
printf("Reconnecting...\n");
|
||||
}
|
||||
mysql_close(conn);
|
||||
if (!(conn = mysql_init(NULL))) {
|
||||
fprintf(stderr, "Insufficient memory\n");
|
||||
exit(1);
|
||||
}
|
||||
do {
|
||||
sleep(2);
|
||||
} while (!connect(conn));
|
||||
select_worked = false;
|
||||
goto retry;
|
||||
}
|
@ -1,22 +0,0 @@
|
||||
There are two ways to make an overlay to test a new storage engine: inclusive
|
||||
and exclusive.
|
||||
|
||||
In the inclusive approach one would create have_pbxt.inc, and the corresponding
|
||||
have_pbxt.opt. And for every test from the main suite that should run in the
|
||||
overlay, one would need a wrapper like
|
||||
|
||||
=====[create.test]======
|
||||
source have_pbxt.inc;
|
||||
source create.test;
|
||||
drop database pbxt;
|
||||
========================
|
||||
|
||||
The last line is needed, because pbxt creates 'pbxt' database automatically,
|
||||
and we need to remove it to pass the after-test check.
|
||||
|
||||
In the exclusive approach, one would create my.cnf or suite.opt - this affects
|
||||
all tests, so mtr would run *all* tests of the main suite with the new options.
|
||||
And one would use disabled.def to selectively disable tests and
|
||||
--init-file option to create the database pbxt before the before-test check
|
||||
(then we won't need to drop it at the end of the test).
|
||||
|
@ -1,161 +0,0 @@
|
||||
#
|
||||
# these tests are disabled to make main-pbxt overlay to pass.
|
||||
# this is just quick'n'dirty list. Many tests here could be fixed to pass.
|
||||
# many other should be disabled, because there's little sense to run them here
|
||||
# some are genuine bugs.
|
||||
#
|
||||
|
||||
create_select_tmp: PBXT requires format=row
|
||||
ctype_cp932_binlog_stm: PBXT requires format=row
|
||||
multi_update: PBXT requires format=row
|
||||
mysqlbinlog-cp932: PBXT requires format=row
|
||||
mysqlbinlog2: PBXT requires format=row
|
||||
mysqlbinlog: PBXT requires format=row
|
||||
mysqldump: PBXT requires format=row
|
||||
mysqldump_restore: PBXT requires format=row
|
||||
mysqltest: PBXT requires format=row
|
||||
partition_binlog: PBXT requires format=row
|
||||
ps: PBXT requires format=row
|
||||
user_var-binlog: PBXT requires format=row
|
||||
|
||||
mysqlbinlog_row: test expects a non-transactional engine
|
||||
|
||||
pool_of_threads: unstable
|
||||
|
||||
merge_recover: meaningless in overlay
|
||||
merge_debug: meaningless in overlay
|
||||
myisam: meaningless in overlay
|
||||
myisam_icp: meaningless in overlay
|
||||
myisampack: meaningless in overlay
|
||||
plugin_innodb: meaningless in overlay
|
||||
preload: meaningless in overlay
|
||||
query_cache_merge: meaningless in overlay
|
||||
status: meaningless in overlay
|
||||
variables: meaningless in overlay
|
||||
#... probably many more tests should be disabled, as meaningless in this overlay
|
||||
|
||||
alter_table: PBXT does not support GEOMETRY
|
||||
gis-precise: PBXT does not support GEOMETRY
|
||||
gis-rtree: PBXT does not support GEOMETRY
|
||||
gis: PBXT does not support GEOMETRY
|
||||
loaddata: PBXT does not support GEOMETRY
|
||||
subselect_cache: PBXT does not support GEOMETRY
|
||||
subselect_gis: PBXT does not support GEOMETRY
|
||||
subselect_sj: PBXT does not support GEOMETRY
|
||||
subselect_sj_jcl6: PBXT does not support GEOMETRY
|
||||
ctype_big5: PBXT does not support FULLTEXT
|
||||
ctype_binary: PBXT does not support FULLTEXT
|
||||
ctype_cp1251: PBXT does not support FULLTEXT
|
||||
ctype_latin1: PBXT does not support FULLTEXT
|
||||
ctype_latin1_de: PBXT does not support FULLTEXT
|
||||
ctype_ldml: PBXT does not support FULLTEXT
|
||||
ctype_ucs: PBXT does not support FULLTEXT
|
||||
fulltext2: PBXT does not support FULLTEXT
|
||||
fulltext3: PBXT does not support FULLTEXT
|
||||
fulltext: PBXT does not support FULLTEXT
|
||||
fulltext_cache: PBXT does not support FULLTEXT
|
||||
fulltext_left_join: PBXT does not support FULLTEXT
|
||||
fulltext_multi: PBXT does not support FULLTEXT
|
||||
fulltext_order_by: PBXT does not support FULLTEXT
|
||||
fulltext_update: PBXT does not support FULLTEXT
|
||||
fulltext_var: PBXT does not support FULLTEXT
|
||||
gcc296: PBXT does not support FULLTEXT
|
||||
key_cache: PBXT does not support FULLTEXT
|
||||
query_cache: PBXT does not support FULLTEXT
|
||||
select: PBXT does not support FULLTEXT
|
||||
select_jcl6: PBXT does not support FULLTEXT
|
||||
select_pkeycache: PBXT does not support FULLTEXT
|
||||
subselect: PBXT does not support FULLTEXT
|
||||
subselect_no_mat: PBXT does not support FULLTEXT
|
||||
subselect_no_opts: PBXT does not support FULLTEXT
|
||||
subselect_no_scache: PBXT does not support FULLTEXT
|
||||
subselect_no_semijoin: PBXT does not support FULLTEXT
|
||||
view: PBXT does not support FULLTEXT
|
||||
|
||||
sp-lock: PBXT does not support savepoints
|
||||
#
|
||||
# Tests below are either genuine bugs
|
||||
# or need some minor tweaks like --sorted_results somewhere in the test file.
|
||||
#
|
||||
alter_table_online: ???
|
||||
analyze: ???
|
||||
auto_increment: ???
|
||||
compress: ???
|
||||
ctype_collate: ???
|
||||
ctype_many: ???
|
||||
ctype_uca: ???
|
||||
ctype_ucs2_def: ???
|
||||
ctype_ujis_ucs2: ???
|
||||
ctype_utf16: ???
|
||||
ctype_utf16_def: ???
|
||||
ctype_utf16_uca: ???
|
||||
ctype_utf32: ???
|
||||
delete: ???
|
||||
drop-no_root: ???
|
||||
error_simulation: ???
|
||||
events_bugs: ???
|
||||
explain: ???
|
||||
flush: ???
|
||||
foreign_key: ???
|
||||
func_gconcat: ???
|
||||
having: ???
|
||||
insert: ???
|
||||
insert_notembedded: ???
|
||||
insert_update: ???
|
||||
join_cache: ???
|
||||
join_nested_jcl6: ???
|
||||
key: ???
|
||||
kill: ???
|
||||
limit: ???
|
||||
lock: ???
|
||||
lock_multi: ???
|
||||
log_tables_upgrade: ???
|
||||
metadata: ???
|
||||
mrr_icp_extra: ???
|
||||
multi_statement: ???
|
||||
multi_update_tiny_hash: ???
|
||||
myisam_mrr: ???
|
||||
mysqlcheck: ???
|
||||
mysql_upgrade: ???
|
||||
mysql_upgrade_ssl: ???
|
||||
negation_elimination: ???
|
||||
order_by: ???
|
||||
outfile: ???
|
||||
partition_key_cache: ???
|
||||
partition_list: ???
|
||||
partition_mgm: ???
|
||||
partition_range: ???
|
||||
partition_rename_longfilename: ???
|
||||
profiling: ???
|
||||
ps_10nestset: ???
|
||||
query_cache_debug: ???
|
||||
query_cache_notembedded: ???
|
||||
range_mrr_icp: ???
|
||||
range_vs_index_merge: ???
|
||||
read_only: ???
|
||||
repair: ???
|
||||
replace: ???
|
||||
row: ???
|
||||
select_safe: ???
|
||||
sp: ???
|
||||
sp_notembedded: ???
|
||||
ssl: ???
|
||||
ssl_compress: ???
|
||||
subselect3_jcl6: ???
|
||||
subselect4: ???
|
||||
subselect_mat_cost: ???
|
||||
subselect_sj2_jcl6: ???
|
||||
symlink: ???
|
||||
trigger: ???
|
||||
trigger_notembedded: ???
|
||||
truncate_coverage: ???
|
||||
type_blob: ???
|
||||
type_newdecimal: ???
|
||||
type_timestamp: ???
|
||||
union: ???
|
||||
range: ???
|
||||
upgrade: ???
|
||||
update: ???
|
||||
view_grant: ???
|
||||
warnings: ???
|
||||
|
@ -1,11 +0,0 @@
|
||||
#
|
||||
# Normally, PBXT creates pbxt database automatically, on the first use.
|
||||
# but if we let it to do so in mysql-test, then the after-test check
|
||||
# will complain that the test did not restore the enviroment properly
|
||||
# (did not delete 'pbxt' database, that was created during the test).
|
||||
# One solution would be to patch all test files and add "drop database"
|
||||
# at the end,
|
||||
# Another one - use --init-file to create the database *before* the
|
||||
# before-test check.
|
||||
#
|
||||
create database pbxt;
|
@ -1,10 +0,0 @@
|
||||
--- r/1st.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/1st.reject 2012-02-10 15:02:56.000000000 +0100
|
||||
@@ -3,6 +3,7 @@
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
show tables in mysql;
|
@ -1,33 +0,0 @@
|
||||
--- r/ansi.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ansi.reject 2012-02-10 15:07:15.000000000 +0100
|
||||
@@ -23,26 +23,26 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`i` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`i`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SET @@SQL_MODE="MYSQL323";
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`i` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`i`)
|
||||
-) TYPE=MyISAM
|
||||
+) TYPE=PBXT
|
||||
SET @@SQL_MODE="MYSQL40";
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`i` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`i`)
|
||||
-) TYPE=MyISAM
|
||||
+) TYPE=PBXT
|
||||
SET @@SQL_MODE="NO_FIELD_OPTIONS";
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`i` int(11) NOT NULL,
|
||||
PRIMARY KEY (`i`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
@ -1,11 +0,0 @@
|
||||
--- r/bench_count_distinct.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/bench_count_distinct.reject 2012-02-10 15:08:20.000000000 +0100
|
||||
@@ -5,7 +5,7 @@
|
||||
100
|
||||
explain extended select count(distinct n) from t1;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t1 range NULL n 4 NULL 10 100.00 Using index for group-by
|
||||
+1 SIMPLE t1 range NULL n 4 NULL 201 99.50 Using index for group-by (scanning)
|
||||
Warnings:
|
||||
Note 1003 select count(distinct `test`.`t1`.`n`) AS `count(distinct n)` from `test`.`t1`
|
||||
drop table t1;
|
@ -1,19 +0,0 @@
|
||||
--- r/bigint.result 2011-10-21 23:35:26.000000000 +0200
|
||||
+++ r/bigint.reject 2012-02-10 15:08:57.000000000 +0100
|
||||
@@ -181,14 +181,14 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(1) NOT NULL DEFAULT '0'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 select 9223372036854775809 as 'a';
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` bigint(19) unsigned NOT NULL DEFAULT '0'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
select * from t1;
|
||||
a
|
||||
9223372036854775809
|
@ -1,11 +0,0 @@
|
||||
--- r/binary.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/binary.reject 2012-02-10 15:09:29.000000000 +0100
|
||||
@@ -139,7 +139,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` binary(1) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (col1 binary(4));
|
||||
insert into t1 values ('a'),('a ');
|
@ -1,20 +0,0 @@
|
||||
--- r/case.result 2011-11-22 18:50:25.000000000 +0100
|
||||
+++ r/case.reject 2012-02-10 15:12:23.000000000 +0100
|
||||
@@ -111,7 +111,7 @@
|
||||
`c10` double NOT NULL DEFAULT '0',
|
||||
`c11` double NOT NULL DEFAULT '0',
|
||||
`c12` varchar(5) NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
SELECT CASE
|
||||
WHEN 1
|
||||
@@ -158,7 +158,7 @@
|
||||
`COALESCE(1,'1')` varchar(1) NOT NULL DEFAULT '',
|
||||
`COALESCE(1.1,'1')` varchar(4) NOT NULL DEFAULT '',
|
||||
`COALESCE('a' COLLATE latin1_bin,'b')` varchar(1) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 SELECT IFNULL('a' COLLATE latin1_swedish_ci, 'b' COLLATE latin1_bin);
|
||||
ERROR HY000: Illegal mix of collations (latin1_swedish_ci,EXPLICIT) and (latin1_bin,EXPLICIT) for operation 'ifnull'
|
@ -1,38 +0,0 @@
|
||||
--- r/cast.result 2012-01-11 21:08:05.000000000 +0100
|
||||
+++ r/cast.reject 2012-02-10 15:13:13.000000000 +0100
|
||||
@@ -404,7 +404,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`t` varchar(4) CHARACTER SET cp1251 NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select
|
||||
cast(_latin1'ab' AS char) as c1,
|
||||
@@ -442,7 +442,7 @@
|
||||
`c3` varbinary(2) NOT NULL DEFAULT '',
|
||||
`c4` varbinary(2) NOT NULL DEFAULT '',
|
||||
`c5` varbinary(2) NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select
|
||||
cast(_koi8r'<27><>' AS nchar) as c1,
|
||||
@@ -475,7 +475,7 @@
|
||||
`c3` varchar(2) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`c4` varchar(2) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`c5` varchar(2) CHARACTER SET utf8 NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (a binary(4), b char(4) character set koi8r);
|
||||
insert into t1 values (_binary'<27><><EFBFBD><EFBFBD>',_binary'<27><><EFBFBD><EFBFBD>');
|
||||
@@ -590,7 +590,7 @@
|
||||
`cast("2001-1-1" as DATE)` date DEFAULT NULL,
|
||||
`cast("2001-1-1" as DATETIME)` datetime DEFAULT NULL,
|
||||
`cast("1:2:3" as TIME)` time DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (f1 double);
|
||||
INSERT INTO t1 SET f1 = -1.0e+30 ;
|
@ -1,10 +0,0 @@
|
||||
--- r/check.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/check.reject 2012-02-10 15:13:37.000000000 +0100
|
||||
@@ -21,6 +21,7 @@
|
||||
test.t1 check status OK
|
||||
REPAIR TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
+test.t1 repair note Table does not support optimize, doing recreate + analyze instead
|
||||
test.t1 repair status OK
|
||||
DROP TABLE t1;
|
||||
#
|
@ -1,11 +0,0 @@
|
||||
--- r/constraints.result 2011-12-13 12:00:39.000000000 +0100
|
||||
+++ r/constraints.reject 2012-02-10 15:16:24.000000000 +0100
|
||||
@@ -25,7 +25,7 @@
|
||||
UNIQUE KEY `constraint_1` (`a`),
|
||||
UNIQUE KEY `key_1` (`a`),
|
||||
UNIQUE KEY `key_2` (`a`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
drop table if exists t_illegal;
|
||||
create table t_illegal (a int, b int, check a>b);
|
@ -1,18 +0,0 @@
|
||||
--- r/create-uca.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/create-uca.reject 2012-02-10 15:20:48.000000000 +0100
|
||||
@@ -16,7 +16,7 @@
|
||||
`c4` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT 'a',
|
||||
`c5` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT 'b',
|
||||
`c6` varchar(255) COLLATE latin1_bin DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_bin
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1 COLLATE=latin1_bin
|
||||
CREATE TABLE t2 AS SELECT * FROM t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
@@ -27,5 +27,5 @@
|
||||
`c4` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT 'a',
|
||||
`c5` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT 'b',
|
||||
`c6` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1,t2;
|
@ -1,315 +0,0 @@
|
||||
--- r/create.result 2012-02-23 16:01:40.000000000 +0100
|
||||
+++ /usr/home/serg/Abk/mysql/5.5-mtr/storage/pbxt/mysql-test/main/r/create.reject 2012-02-23 22:58:32.000000000 +0100
|
||||
@@ -46,7 +46,7 @@
|
||||
Table Create Table
|
||||
a/a CREATE TABLE `a/a` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
create table t1 like `a/a`;
|
||||
drop table `a/a`;
|
||||
drop table `t1`;
|
||||
@@ -113,7 +113,7 @@
|
||||
create table t2 (key (b)) select * from t1;
|
||||
explain select * from t2 where b="world";
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 ref B B 21 const 1 Using index condition
|
||||
+1 SIMPLE t2 ref B B 21 const 1 Using where
|
||||
select * from t2 where b="world";
|
||||
a B
|
||||
3 world
|
||||
@@ -216,7 +216,7 @@
|
||||
KEY `b_29` (`b`),
|
||||
KEY `b_30` (`b`),
|
||||
KEY `b_31` (`b`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 select if(1,'1','0'), month("2002-08-02");
|
||||
drop table t1;
|
||||
@@ -291,7 +291,7 @@
|
||||
Note 1050 Table 't1' already exists
|
||||
show status like "Opened_tables";
|
||||
Variable_name Value
|
||||
-Opened_tables 2
|
||||
+Opened_tables 3
|
||||
select * from t1;
|
||||
a b
|
||||
1 1
|
||||
@@ -321,7 +321,7 @@
|
||||
t3 CREATE TABLE `t3` (
|
||||
`id` int(11) NOT NULL,
|
||||
`name` char(20) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
select * from t3;
|
||||
id name
|
||||
create table if not exists t3 like t1;
|
||||
@@ -335,7 +335,7 @@
|
||||
Table Create Table
|
||||
t3 CREATE TEMPORARY TABLE `t3` (
|
||||
`id` int(11) NOT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
select * from t3;
|
||||
id
|
||||
drop table t3;
|
||||
@@ -344,7 +344,7 @@
|
||||
t3 CREATE TABLE `t3` (
|
||||
`id` int(11) NOT NULL,
|
||||
`name` char(20) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
select * from t3;
|
||||
id name
|
||||
drop table t2, t3;
|
||||
@@ -356,14 +356,14 @@
|
||||
t3 CREATE TEMPORARY TABLE `t3` (
|
||||
`id` int(11) NOT NULL,
|
||||
`name` char(20) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
create table t2 like t3;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`id` int(11) NOT NULL,
|
||||
`name` char(20) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
select * from t2;
|
||||
id name
|
||||
create table t3 like t1;
|
||||
@@ -482,7 +482,7 @@
|
||||
`ifnull(m,m)` varchar(1) DEFAULT NULL,
|
||||
`ifnull(n,n)` varchar(3) DEFAULT NULL,
|
||||
`ifnull(o,o)` varchar(10) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1,t2;
|
||||
create table t1(str varchar(10) default 'def',strnull varchar(10),intg int default '10',rel double default '3.14');
|
||||
insert into t1 values ('','',0,0.0);
|
||||
@@ -550,14 +550,14 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`primary` int(11) DEFAULT NULL,
|
||||
KEY `primary_2` (`primary`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
create table t2 (`PRIMARY` int, index(`PRIMARY`));
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`PRIMARY` int(11) DEFAULT NULL,
|
||||
KEY `PRIMARY_2` (`PRIMARY`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
create table t3 (a int);
|
||||
alter table t3 add index `primary` (a);
|
||||
ERROR 42000: Incorrect index name 'primary'
|
||||
@@ -570,7 +570,7 @@
|
||||
t4 CREATE TABLE `t4` (
|
||||
`primary` int(11) DEFAULT NULL,
|
||||
KEY `primary_2` (`primary`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
create table t5 (`PRIMARY` int);
|
||||
alter table t5 add index(`PRIMARY`);
|
||||
show create table t5;
|
||||
@@ -578,7 +578,7 @@
|
||||
t5 CREATE TABLE `t5` (
|
||||
`PRIMARY` int(11) DEFAULT NULL,
|
||||
KEY `PRIMARY_2` (`PRIMARY`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1, t2, t3, t4, t5;
|
||||
CREATE TABLE t1(id varchar(10) NOT NULL PRIMARY KEY, dsc longtext);
|
||||
INSERT INTO t1 VALUES ('5000000001', NULL),('5000000003', 'Test'),('5000000004', NULL);
|
||||
@@ -666,7 +666,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` varchar(112) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
CREATE TABLE t2 (
|
||||
a int(11) default NULL
|
||||
@@ -682,7 +682,7 @@
|
||||
`a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`b` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||
@@ -697,7 +697,7 @@
|
||||
`a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`c` int(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`a`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||
@@ -710,7 +710,7 @@
|
||||
`a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`c` int(1) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`a`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||
@@ -722,7 +722,7 @@
|
||||
`a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
|
||||
`b` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin,
|
||||
@@ -734,7 +734,7 @@
|
||||
`a` varchar(12) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`b` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1, t2;
|
||||
create table t1 (
|
||||
a1 int not null,
|
||||
@@ -771,7 +771,7 @@
|
||||
`b` int(11) DEFAULT '3',
|
||||
`a1` int(11) DEFAULT NULL,
|
||||
`a2` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1, t2;
|
||||
create table t1(a set("a,b","c,d") not null);
|
||||
ERROR 22007: Illegal set 'a,b' value found during parsing
|
||||
@@ -1095,7 +1095,7 @@
|
||||
KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
|
||||
KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
|
||||
KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
flush tables;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
@@ -1180,7 +1180,7 @@
|
||||
KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
|
||||
KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
|
||||
KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (c1 int, c2 int, c3 int, c4 int, c5 int, c6 int, c7 int,
|
||||
c8 int, c9 int, c10 int, c11 int, c12 int, c13 int, c14 int, c15 int, c16 int);
|
||||
@@ -1396,7 +1396,7 @@
|
||||
KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
|
||||
KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
|
||||
KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
flush tables;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
@@ -1481,7 +1481,7 @@
|
||||
KEY `a062_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
|
||||
KEY `a063_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`),
|
||||
KEY `a064_long_123456789_123456789_123456789_123456789_123456789_1234` (`c1`,`c2`,`c3`,`c4`,`c5`,`c6`,`c7`,`c8`,`c9`,`c10`,`c11`,`c12`,`c13`,`c14`,`c15`,`c16`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
alter table t1 add key
|
||||
a065_long_123456789_123456789_123456789_123456789_123456789_1234 (
|
||||
c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16);
|
||||
@@ -1532,7 +1532,7 @@
|
||||
`c31` int(11) DEFAULT NULL,
|
||||
`c32` int(11) DEFAULT NULL,
|
||||
`c33` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
|
||||
Bug #26104 Bug on foreign key class constructor
|
||||
@@ -1561,7 +1561,7 @@
|
||||
Handler_read_last 0
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
-Handler_read_rnd 0
|
||||
+Handler_read_rnd 6
|
||||
Handler_read_rnd_deleted 0
|
||||
Handler_read_rnd_next 7
|
||||
drop table t1,t2;
|
||||
@@ -1621,20 +1621,17 @@
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
SELECT * from t2;
|
||||
a b
|
||||
-1 1
|
||||
TRUNCATE table t2;
|
||||
INSERT INTO t2 select * from t1;
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
SELECT * from t2;
|
||||
a b
|
||||
-1 1
|
||||
drop table t2;
|
||||
CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a));
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
SELECT * from t2;
|
||||
a b
|
||||
-1 1
|
||||
drop table t1,t2;
|
||||
CREATE DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
@@ -1689,7 +1686,7 @@
|
||||
имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48 CREATE TABLE `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48` (
|
||||
`имя_поля_в_кодировке_утф8_длиной_больше_чем_45` int(11) DEFAULT NULL,
|
||||
KEY `имя_индекса_в_кодировке_утф8_длиной_больше_чем_48` (`имя_поля_в_кодировке_утф8_длиной_больше_чем_45`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
show create view имя_вью_кодировке_утф8_длиной_больше_чем_42;
|
||||
View Create View character_set_client collation_connection
|
||||
имя_вью_кодировке_утф8_длиной_больше_чем_42 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `имя_вью_кодировке_утф8_длиной_больше_чем_42` AS select `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48`.`имя_поля_в_кодировке_утф8_длиной_больше_чем_45` AS `имя_поля_в_кодировке_утф8_длиной_больше_чем_45` from `имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48` utf8 utf8_general_ci
|
||||
@@ -1851,7 +1848,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` year(4) DEFAULT '2008',
|
||||
`c2` year(4) DEFAULT '0000'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
INSERT INTO t1 VALUES();
|
||||
|
||||
@@ -1866,7 +1863,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` year(4) DEFAULT '0000',
|
||||
`c2` year(4) DEFAULT '0000'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
INSERT INTO t1 VALUES();
|
||||
|
||||
@@ -1889,7 +1886,7 @@
|
||||
# Fix modified for MariaDB: we support this syntax
|
||||
create table t1 (a int) transactional=0;
|
||||
Warnings:
|
||||
-Warning 1478 Table storage engine 'MyISAM' does not support the create option 'TRANSACTIONAL=1'
|
||||
+Warning 1478 Table storage engine 'PBXT' does not support the create option 'TRANSACTIONAL=1'
|
||||
create table t2 (a int) page_checksum=1;
|
||||
create table t3 (a int) row_format=page;
|
||||
drop table t1,t2,t3;
|
||||
@@ -2049,12 +2046,12 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`dt` datetime DEFAULT '2008-02-31 00:00:00'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`dt` datetime DEFAULT '2008-02-31 00:00:00'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
set @@sql_mode= @old_mode;
|
||||
drop tables t1, t2;
|
||||
CREATE TABLE t1 (id int);
|
@ -1,11 +0,0 @@
|
||||
--- r/create_not_windows.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/create_not_windows.reject 2012-02-10 15:21:01.000000000 +0100
|
||||
@@ -10,7 +10,7 @@
|
||||
`_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`about:text` varchar(255) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (`_id`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table `about:text`;
|
||||
use test;
|
||||
drop table if exists t1;
|
@ -1,20 +0,0 @@
|
||||
--- r/ctype_cp1250_ch.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_cp1250_ch.reject 2012-02-10 15:24:12.000000000 +0100
|
||||
@@ -84,7 +84,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`name` varchar(10) DEFAULT NULL,
|
||||
`level` smallint(5) unsigned DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1250
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1250
|
||||
insert into t1 values ('string',1);
|
||||
select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
|
||||
concat(name,space(level)) concat(name, repeat(' ',level))
|
||||
@@ -177,7 +177,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`name` varchar(10) COLLATE cp1250_czech_cs DEFAULT NULL,
|
||||
`level` smallint(5) unsigned DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs
|
||||
insert into t1 values ('string',1);
|
||||
select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
|
||||
concat(name,space(level)) concat(name, repeat(' ',level))
|
@ -1,11 +0,0 @@
|
||||
--- r/ctype_cp932_binlog_row.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_cp932_binlog_row.reject 2012-02-10 13:14:44.000000000 +0100
|
||||
@@ -12,7 +12,7 @@
|
||||
master-bin.000001 # Query # # BEGIN
|
||||
master-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
|
||||
-master-bin.000001 # Query # # COMMIT
|
||||
+master-bin.000001 # Xid # # COMMIT /* XID */
|
||||
SELECT HEX(f1) FROM t1;
|
||||
HEX(f1)
|
||||
8300
|
@ -1,55 +0,0 @@
|
||||
--- r/ctype_create.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_create.reject 2012-02-10 15:25:06.000000000 +0100
|
||||
@@ -13,7 +13,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(10) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin5
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin5
|
||||
DROP TABLE mysqltest2.t1;
|
||||
ALTER DATABASE mysqltest2 DEFAULT CHARACTER SET latin7;
|
||||
CREATE TABLE mysqltest2.t1 (a char(10));
|
||||
@@ -21,7 +21,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(10) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin7
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin7
|
||||
DROP DATABASE mysqltest2;
|
||||
CREATE DATABASE mysqltest2 CHARACTER SET latin2;
|
||||
CREATE TABLE mysqltest2.t1 (a char(10));
|
||||
@@ -29,7 +29,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(10) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin2
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin2
|
||||
DROP DATABASE mysqltest2;
|
||||
USE mysqltest1;
|
||||
CREATE TABLE t1 (a char(10));
|
||||
@@ -37,14 +37,14 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(10) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1251
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1251
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a char(10)) DEFAULT CHARACTER SET latin1;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(10) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a char(10))
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci;
|
||||
@@ -52,7 +52,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(10) COLLATE latin1_german1_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci
|
||||
DROP TABLE t1;
|
||||
create table t1 (a char) character set latin1 character set latin2;
|
||||
ERROR HY000: Conflicting declarations: 'CHARACTER SET latin1' and 'CHARACTER SET latin2'
|
@ -1,11 +0,0 @@
|
||||
--- r/ctype_eucjpms.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_eucjpms.reject 2012-02-10 15:26:52.000000000 +0100
|
||||
@@ -9893,7 +9893,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(6) CHARACTER SET eucjpms NOT NULL DEFAULT '',
|
||||
`a` varchar(1) CHARACTER SET eucjpms NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
UPDATE t1 SET a=unhex(code) ORDER BY code;
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
|
@ -1,20 +0,0 @@
|
||||
--- r/ctype_euckr.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_euckr.reject 2012-02-10 15:26:59.000000000 +0100
|
||||
@@ -80,7 +80,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`name` varchar(10) DEFAULT NULL,
|
||||
`level` smallint(5) unsigned DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=euckr
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=euckr
|
||||
insert into t1 values ('string',1);
|
||||
select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
|
||||
concat(name,space(level)) concat(name, repeat(' ',level))
|
||||
@@ -24280,7 +24280,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET euckr NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
UPDATE t1 SET a=unhex(code) ORDER BY code;
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
|
@ -1,20 +0,0 @@
|
||||
--- r/ctype_gb2312.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_gb2312.reject 2012-02-10 15:27:03.000000000 +0100
|
||||
@@ -80,7 +80,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`name` varchar(10) DEFAULT NULL,
|
||||
`level` smallint(5) unsigned DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=gb2312
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=gb2312
|
||||
insert into t1 values ('string',1);
|
||||
select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
|
||||
concat(name,space(level)) concat(name, repeat(' ',level))
|
||||
@@ -260,7 +260,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET gb2312 NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
UPDATE t1 SET a=unhex(code) ORDER BY code;
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
|
@ -1,29 +0,0 @@
|
||||
--- r/ctype_gbk.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_gbk.reject 2012-02-10 15:27:07.000000000 +0100
|
||||
@@ -80,7 +80,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`name` varchar(10) DEFAULT NULL,
|
||||
`level` smallint(5) unsigned DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=gbk
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=gbk
|
||||
insert into t1 values ('string',1);
|
||||
select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
|
||||
concat(name,space(level)) concat(name, repeat(' ',level))
|
||||
@@ -245,7 +245,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` mediumtext NOT NULL,
|
||||
`c2` text NOT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=gbk
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=gbk
|
||||
drop table t1;
|
||||
CREATE TABLE t1(a MEDIUMTEXT CHARACTER SET gbk,
|
||||
b MEDIUMTEXT CHARACTER SET big5);
|
||||
@@ -280,7 +280,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET gbk NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
UPDATE t1 SET a=unhex(code) ORDER BY code;
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
|
@ -1,55 +0,0 @@
|
||||
--- r/ctype_mb.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_mb.reject 2012-02-10 15:27:18.000000000 +0100
|
||||
@@ -5,7 +5,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c1` varchar(4) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`c2` varchar(4) CHARACTER SET utf8 NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
DELETE FROM t1;
|
||||
ALTER TABLE t1 ADD c3 CHAR(4) CHARACTER SET utf8;
|
||||
SHOW CREATE TABLE t1;
|
||||
@@ -14,7 +14,7 @@
|
||||
`c1` varchar(4) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`c2` varchar(4) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`c3` char(4) CHARACTER SET utf8 DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 VALUES ('aaaabbbbccccdddd','aaaabbbbccccdddd','aaaabbbbccccdddd');
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c1' at row 1
|
||||
@@ -30,28 +30,28 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(4) CHARACTER SET utf8 DEFAULT NULL,
|
||||
KEY `key_a` (`a`(3))
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SHOW KEYS FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
-t1 1 key_a 1 a A NULL 3 NULL YES BTREE
|
||||
+t1 1 key_a 1 a A 0 3 NULL YES BTREE
|
||||
ALTER TABLE t1 CHANGE a a CHAR(4);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(4) DEFAULT NULL,
|
||||
KEY `key_a` (`a`(3))
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SHOW KEYS FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
-t1 1 key_a 1 a A NULL 3 NULL YES BTREE
|
||||
+t1 1 key_a 1 a A 0 3 NULL YES BTREE
|
||||
ALTER TABLE t1 CHANGE a a CHAR(4) CHARACTER SET utf8;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(4) CHARACTER SET utf8 DEFAULT NULL,
|
||||
KEY `key_a` (`a`(3))
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SHOW KEYS FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
-t1 1 key_a 1 a A NULL 3 NULL YES BTREE
|
||||
+t1 1 key_a 1 a A 0 3 NULL YES BTREE
|
||||
DROP TABLE t1;
|
@ -1,90 +0,0 @@
|
||||
--- r/ctype_recoding.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_recoding.reject 2012-02-10 15:27:20.000000000 +0100
|
||||
@@ -7,7 +7,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(10) CHARACTER SET cp1251 DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -31,7 +31,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` text CHARACTER SET cp1251
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SELECT HEX(a) FROM t1;
|
||||
HEX(a)
|
||||
EFF0EEE1E0
|
||||
@@ -51,7 +51,7 @@
|
||||
Table Create Table
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CREATE TABLE `<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>` (
|
||||
`<60><><EFBFBD><EFBFBD>` char(32) CHARACTER SET koi8r NOT NULL COMMENT '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1 COMMENT='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
SHOW FIELDS FROM <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
Field Type Null Key Default Extra
|
||||
<20><><EFBFBD><EFBFBD> char(32) NO NULL
|
||||
@@ -63,7 +63,7 @@
|
||||
Table Create Table
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CREATE TABLE `<60><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>` (
|
||||
`<60><><EFBFBD><EFBFBD>` char(32) CHARACTER SET koi8r NOT NULL COMMENT '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1 COMMENT='<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
SHOW FIELDS FROM <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
||||
Field Type Null Key Default Extra
|
||||
<20><><EFBFBD><EFBFBD> char(32) NO NULL
|
||||
@@ -75,7 +75,7 @@
|
||||
Table Create Table
|
||||
таблица CREATE TABLE `таблица` (
|
||||
`поле` char(32) CHARACTER SET koi8r NOT NULL COMMENT 'комментарий поля'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='комментарий таблицы'
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1 COMMENT='комментарий таблицы'
|
||||
SHOW FIELDS FROM таблица;
|
||||
Field Type Null Key Default Extra
|
||||
поле char(32) NO NULL
|
||||
@@ -118,13 +118,13 @@
|
||||
Table Create Table
|
||||
тест CREATE TABLE `тест` (
|
||||
`тест` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SET NAMES utf8;
|
||||
SHOW CREATE TABLE `тест`;
|
||||
Table Create Table
|
||||
тест CREATE TABLE `тест` (
|
||||
`тест` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
DROP TABLE `тест`;
|
||||
SET NAMES binary;
|
||||
SET character_set_connection=utf8;
|
||||
@@ -143,7 +143,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`<60>` char(128) DEFAULT '<27>',
|
||||
`<60>1` enum('<27>1','<27>2') DEFAULT '<27>2'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
<20> char(128) YES <09>
|
||||
@@ -154,7 +154,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`ä` char(128) DEFAULT 'ä',
|
||||
`ä1` enum('ä1','ä2') DEFAULT 'ä2'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
ä char(128) YES ä
|
||||
@@ -262,7 +262,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(1) CHARACTER SET cp1251 DEFAULT '<27>'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1(a char character set latin1 default _cp1251 0xFF);
|
||||
ERROR 42000: Invalid default value for 'a'
|
@ -1,20 +0,0 @@
|
||||
--- r/ctype_sjis.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_sjis.reject 2012-02-10 15:27:25.000000000 +0100
|
||||
@@ -52,7 +52,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`c` enum('<27>S','<27>s') CHARACTER SET sjis DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
insert into t1 values (0x9353);
|
||||
insert into t1 values (0x9373);
|
||||
select hex(c) from t1;
|
||||
@@ -252,7 +252,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(8) DEFAULT NULL,
|
||||
`a` varchar(1) CHARACTER SET sjis NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
UPDATE t1 SET a=unhex(code) ORDER BY code;
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
|
@ -1,20 +0,0 @@
|
||||
--- r/ctype_ujis.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/ctype_ujis.reject 2012-02-10 15:27:43.000000000 +0100
|
||||
@@ -120,7 +120,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(1) NOT NULL DEFAULT '',
|
||||
`b` enum('<27><>','<27><>') DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=ujis
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=ujis
|
||||
SHOW COLUMNS FROM t1;
|
||||
Field Type Null Key Default Extra
|
||||
a char(1) NO
|
||||
@@ -2419,7 +2419,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`code` varchar(6) CHARACTER SET ujis NOT NULL DEFAULT '',
|
||||
`a` varchar(1) CHARACTER SET ujis NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
UPDATE t1 SET a=unhex(code) ORDER BY code;
|
||||
Warnings:
|
||||
Warning 1366 Incorrect string value: '\x80 ' for column 'a' at row 1
|
@ -1,20 +0,0 @@
|
||||
--- r/ctype_utf32_uca.result 2011-11-22 18:50:25.000000000 +0100
|
||||
+++ r/ctype_utf32_uca.reject 2012-02-10 15:28:02.000000000 +0100
|
||||
@@ -2250,7 +2250,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`name` varchar(10) COLLATE utf32_swedish_ci DEFAULT NULL,
|
||||
`level` smallint(5) unsigned DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf32 COLLATE=utf32_swedish_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf32 COLLATE=utf32_swedish_ci
|
||||
insert into t1 values ('string',1);
|
||||
select concat(name,space(level)), concat(name, repeat(' ',level)) from t1;
|
||||
concat(name,space(level)) concat(name, repeat(' ',level))
|
||||
@@ -2335,7 +2335,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`s1` varchar(64) CHARACTER SET utf32 COLLATE utf32_unicode_ci DEFAULT NULL,
|
||||
`s2` varchar(64) CHARACTER SET utf32 COLLATE utf32_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
delete from t1;
|
||||
insert into t1 values('aaa','aaa');
|
||||
insert into t1 values('aaa|qqq','qqq');
|
@ -1,11 +0,0 @@
|
||||
--- r/ctype_utf8mb4_heap.result 2012-02-10 15:42:03.000000000 +0100
|
||||
+++ r/ctype_utf8mb4_heap.reject 2012-02-10 15:42:17.000000000 +0100
|
||||
@@ -271,7 +271,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`s1` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL,
|
||||
`s2` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
delete from t1;
|
||||
insert into t1 values('aaa','aaa');
|
||||
insert into t1 values('aaa|qqq','qqq');
|
@ -1,11 +0,0 @@
|
||||
--- r/ctype_utf8mb4_myisam.result 2011-10-21 23:35:26.000000000 +0200
|
||||
+++ r/ctype_utf8mb4_myisam.reject 2012-02-10 15:28:10.000000000 +0100
|
||||
@@ -281,7 +281,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`s1` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL,
|
||||
`s2` varchar(64) CHARACTER SET utf8mb4 DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
delete from t1;
|
||||
insert into t1 values('aaa','aaa');
|
||||
insert into t1 values('aaa|qqq','qqq');
|
@ -1,96 +0,0 @@
|
||||
--- r/ddl_i18n_koi8r.result 2012-02-10 15:47:25.000000000 +0100
|
||||
+++ r/ddl_i18n_koi8r.reject 2012-02-10 15:47:39.000000000 +0100
|
||||
@@ -1733,13 +1733,13 @@
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `log` (
|
||||
`msg` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `t1` (
|
||||
`c` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
INSERT INTO `t1` VALUES (1),(0),(1);
|
||||
ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
||||
@@ -1812,13 +1812,13 @@
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `log` (
|
||||
`msg` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `t1` (
|
||||
`c` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
INSERT INTO `t1` VALUES (1),(0),(1);
|
||||
ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
||||
@@ -2778,26 +2778,26 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
|
||||
SHOW CREATE TABLE t1|
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
|
||||
|
||||
CALL mysqltest2.p2()|
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
|
||||
SHOW CREATE TABLE mysqltest2.t2|
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
|
||||
ALTER DATABASE mysqltest1 COLLATE cp1251_general_cs|
|
||||
ALTER DATABASE mysqltest2 COLLATE cp1251_general_cs|
|
||||
@@ -2808,26 +2808,26 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
|
||||
SHOW CREATE TABLE t1|
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
|
||||
|
||||
CALL mysqltest2.p2()|
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
|
||||
SHOW CREATE TABLE mysqltest2.t2|
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
|
||||
---> connection: con2
|
||||
|
@ -1,96 +0,0 @@
|
||||
--- r/ddl_i18n_utf8.result 2012-02-10 15:48:13.000000000 +0100
|
||||
+++ r/ddl_i18n_utf8.reject 2012-02-10 15:48:46.000000000 +0100
|
||||
@@ -1733,13 +1733,13 @@
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `log` (
|
||||
`msg` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `t1` (
|
||||
`c` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
INSERT INTO `t1` VALUES (1),(0),(1);
|
||||
ALTER DATABASE `mysqltest1` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
||||
@@ -1812,13 +1812,13 @@
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `log` (
|
||||
`msg` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
/*!40101 SET @saved_cs_client = @@character_set_client */;
|
||||
/*!40101 SET character_set_client = utf8 */;
|
||||
CREATE TABLE `t1` (
|
||||
`c` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
INSERT INTO `t1` VALUES (1),(0),(1);
|
||||
ALTER DATABASE `mysqltest2` CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
|
||||
@@ -2778,26 +2778,26 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
|
||||
SHOW CREATE TABLE t1|
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
|
||||
|
||||
CALL mysqltest2.p2()|
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
|
||||
SHOW CREATE TABLE mysqltest2.t2|
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`col1` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
|
||||
|
||||
ALTER DATABASE mysqltest1 COLLATE cp1251_general_cs|
|
||||
ALTER DATABASE mysqltest2 COLLATE cp1251_general_cs|
|
||||
@@ -2808,26 +2808,26 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
|
||||
SHOW CREATE TABLE t1|
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
|
||||
|
||||
CALL mysqltest2.p2()|
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
|
||||
SHOW CREATE TABLE mysqltest2.t2|
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`col1` varchar(10) COLLATE cp1251_general_cs DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=cp1251 COLLATE=cp1251_general_cs
|
||||
|
||||
---> connection: con2
|
||||
|
@ -1,13 +0,0 @@
|
||||
--- r/derived.result 2012-01-11 18:00:58.000000000 +0100
|
||||
+++ r/derived.reject 2012-02-10 15:28:40.000000000 +0100
|
||||
@@ -116,8 +116,8 @@
|
||||
explain select * from (select t1.*, t2.a as t2a from t1,t2 where t1.a=t2.a) t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4
|
||||
-2 DERIVED t2 system NULL NULL NULL NULL 1
|
||||
-2 DERIVED t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
+2 DERIVED t2 ALL NULL NULL NULL NULL 1
|
||||
+2 DERIVED t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
|
||||
drop table t1, t2;
|
||||
create table t1(a int not null, t char(8), index(a));
|
||||
SELECT * FROM (SELECT * FROM t1) as b ORDER BY a ASC LIMIT 0,20;
|
@ -1,47 +0,0 @@
|
||||
--- r/derived_opt.result 2011-10-21 23:35:26.000000000 +0200
|
||||
+++ r/derived_opt.reject 2012-02-10 15:28:56.000000000 +0100
|
||||
@@ -38,8 +38,8 @@
|
||||
1 a 1
|
||||
explain select * from (select t1.*, t2.a as t2a from t1,t2 where t1.a=t2.a) t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 system NULL NULL NULL NULL 1
|
||||
-1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where
|
||||
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 4 Using where; Using join buffer (flat, BNL join)
|
||||
drop table t1, t2;
|
||||
create table t1(a int not null, t char(8), index(a));
|
||||
SELECT * FROM (SELECT * FROM t1) as b ORDER BY a ASC LIMIT 0,20;
|
||||
@@ -66,7 +66,8 @@
|
||||
20 20
|
||||
explain select count(*) from t1 as tt1, (select * from t1) as tt2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
|
||||
+1 SIMPLE tt1 index NULL a 4 NULL 10000 Using index
|
||||
+1 SIMPLE t1 index NULL a 4 NULL 10000 Using index; Using join buffer (flat, BNL join)
|
||||
drop table t1;
|
||||
create table t1 (mat_id MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, matintnum CHAR(6) NOT NULL, test MEDIUMINT UNSIGNED NULL);
|
||||
create table t2 (mat_id MEDIUMINT UNSIGNED NOT NULL, pla_id MEDIUMINT UNSIGNED NOT NULL);
|
||||
@@ -193,9 +194,9 @@
|
||||
EXPLAIN
|
||||
SELECT * FROM (SELECT DISTINCT * FROM t2) t, t1 WHERE t1.a = t.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY <derived2> system NULL NULL NULL NULL 1
|
||||
-1 PRIMARY t1 ref a a 5 const 1 Using index
|
||||
-2 DERIVED t2 system NULL NULL NULL NULL 1
|
||||
+1 PRIMARY <derived2> ALL key0 NULL NULL NULL 2 Using where
|
||||
+1 PRIMARY t1 ref a a 5 t.a 1 Using index
|
||||
+2 DERIVED t2 ALL NULL NULL NULL NULL 1 Using temporary
|
||||
SELECT * FROM (SELECT DISTINCT * FROM t2) t, t1 WHERE t1.a = t.a;
|
||||
a a
|
||||
3 3
|
||||
@@ -230,8 +231,8 @@
|
||||
EXPLAIN
|
||||
SELECT * FROM v1, t1 WHERE v1.b=t1.a ORDER BY v1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1 Using filesort
|
||||
-1 PRIMARY <derived2> ref key0 key0 5 const 1 Using where
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1 Using where; Using temporary; Using filesort
|
||||
+1 PRIMARY <derived2> ref key0 key0 5 test.t1.a 2
|
||||
2 DERIVED t2 ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
||||
SELECT * FROM v1, t1 WHERE v1.b=t1.a ORDER BY v1.a;
|
||||
a b a
|
@ -1,279 +0,0 @@
|
||||
--- r/derived_view.result 2012-02-23 15:57:49.000000000 +0100
|
||||
+++ /usr/home/serg/Abk/mysql/5.5-mtr/storage/pbxt/mysql-test/main/r/derived_view.reject 2012-02-23 23:00:05.000000000 +0100
|
||||
@@ -768,9 +768,9 @@
|
||||
EXPLAIN
|
||||
SELECT * FROM t1, t2, v1 WHERE t2.a=t1.a AND t2.a=v1.a AND t2.a=v1.b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1
|
||||
-1 PRIMARY t2 ref a a 4 const 1 Using index
|
||||
-1 PRIMARY <derived2> ref key0 key0 10 const,const 1
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1 Using where
|
||||
+1 PRIMARY t2 ref a a 4 test.t1.a 1 Using index
|
||||
+1 PRIMARY <derived2> ref key0 key0 10 test.t1.a,test.t1.a 2
|
||||
2 DERIVED t3 ALL NULL NULL NULL NULL 12 Using temporary; Using filesort
|
||||
SELECT * FROM t1, t2, v1 WHERE t2.a=t1.a AND t2.a=v1.a AND t2.a=v1.b;
|
||||
a a a b
|
||||
@@ -837,9 +837,9 @@
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using where; Using filesort
|
||||
1 PRIMARY t4 ref f2 f2 4 t.f1 1 Using index
|
||||
-1 PRIMARY t3 ref f2 f2 4 t.f1 2 Using index
|
||||
-2 DERIVED t2 system NULL NULL NULL NULL 1 Using temporary
|
||||
-2 DERIVED t1 ref f2 f2 4 const 2 Using where
|
||||
+1 PRIMARY t3 ref f2 f2 4 t.f1 1 Using index
|
||||
+2 DERIVED t2 ALL NULL NULL NULL NULL 1 Using where; Using temporary
|
||||
+2 DERIVED t1 ref f2 f2 4 test.t2.f2 1
|
||||
SELECT t.f1 AS f
|
||||
FROM (SELECT DISTINCT t1.* FROM t1,t2 WHERE t2.f2 = t1.f2) t,t3,t4
|
||||
WHERE t4.f2 = t3.f2 AND t4.f2 = t.f1 ORDER BY f;
|
||||
@@ -922,8 +922,8 @@
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t ALL NULL NULL NULL NULL 2 Using where
|
||||
-2 DEPENDENT SUBQUERY t3 system NULL NULL NULL NULL 1
|
||||
-2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
+2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 1
|
||||
+2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
SELECT * FROM (SELECT * FROM t1) t
|
||||
WHERE EXISTS (SELECT t3.a FROM t3, t2
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
@@ -935,8 +935,8 @@
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
-3 DEPENDENT SUBQUERY t3 system NULL NULL NULL NULL 1
|
||||
-3 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
+3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 1
|
||||
+3 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
SELECT * FROM v1 t
|
||||
WHERE EXISTS (SELECT t3.a FROM t3, t2
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
@@ -948,8 +948,8 @@
|
||||
WHERE t2.a = t3.b AND t.a != 0);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
-2 DEPENDENT SUBQUERY t3 system NULL NULL NULL NULL 1
|
||||
-2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
+2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 1
|
||||
+2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
@@ -1010,11 +1010,12 @@
|
||||
SELECT * FROM t2 RIGHT JOIN (SELECT * FROM t1) AS t ON t.a != 0
|
||||
WHERE t.a IN (SELECT b FROM t1);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
+1 PRIMARY <subquery3> eq_ref distinct_key distinct_key 5 func 1 100.00
|
||||
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
+3 MATERIALIZED t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
Warnings:
|
||||
-Note 1003 select `test`.`t2`.`a` AS `a`,0 AS `a`,0 AS `b` from `test`.`t2` semi join (dual) where 1
|
||||
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join (`test`.`t1`) left join `test`.`t2` on((`test`.`t1`.`a` <> 0)) where 1
|
||||
SELECT * FROM t2 RIGHT JOIN v1 AS t ON t.a != 0
|
||||
WHERE t.a IN (SELECT b FROM t1);
|
||||
a a b
|
||||
@@ -1023,11 +1024,12 @@
|
||||
SELECT * FROM t2 RIGHT JOIN v1 AS t ON t.a != 0
|
||||
WHERE t.a IN (SELECT b FROM t1);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
+1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 5 func 1 100.00
|
||||
+1 PRIMARY t2 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
+2 MATERIALIZED t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
Warnings:
|
||||
-Note 1003 select `test`.`t2`.`a` AS `a`,0 AS `a`,0 AS `b` from `test`.`t2` semi join (dual) where 1
|
||||
+Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` semi join (`test`.`t1`) left join `test`.`t2` on((`test`.`t1`.`a` <> 0)) where 1
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
@@ -1051,9 +1053,9 @@
|
||||
EXPLAIN
|
||||
SELECT DISTINCT t2.b FROM t1,t2,t3 WHERE t3.a = t2.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary
|
||||
-1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
-1 SIMPLE t2 ref a a 35 test.t3.a 2
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Using temporary
|
||||
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
+1 SIMPLE t2 ref a a 35 test.t3.a 1
|
||||
SELECT * FROM (SELECT DISTINCT t2.b FROM t1,t2,t3 WHERE t3.a = t2.a) t;
|
||||
b
|
||||
28
|
||||
@@ -1061,10 +1063,10 @@
|
||||
EXPLAIN
|
||||
SELECT * FROM (SELECT DISTINCT t2.b FROM t1,t2,t3 WHERE t3.a = t2.a) t;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4
|
||||
-2 DERIVED t1 system NULL NULL NULL NULL 1 Using temporary
|
||||
-2 DERIVED t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
-2 DERIVED t2 ref a a 35 test.t3.a 2
|
||||
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
||||
+2 DERIVED t1 ALL NULL NULL NULL NULL 1 Using temporary
|
||||
+2 DERIVED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
+2 DERIVED t2 ref a a 35 test.t3.a 1
|
||||
SELECT * FROM v1;
|
||||
b
|
||||
28
|
||||
@@ -1072,10 +1074,10 @@
|
||||
EXPLAIN
|
||||
SELECT * FROM v1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 4
|
||||
-2 DERIVED t1 system NULL NULL NULL NULL 1 Using temporary
|
||||
-2 DERIVED t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
-2 DERIVED t2 ref a a 35 test.t3.a 2
|
||||
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
||||
+2 DERIVED t1 ALL NULL NULL NULL NULL 1 Using temporary
|
||||
+2 DERIVED t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
+2 DERIVED t2 ref a a 35 test.t3.a 1
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
@@ -1096,12 +1098,12 @@
|
||||
SELECT t.a,t.b FROM t3 RIGHT JOIN (t1 AS t, t2) ON t2.b != 0
|
||||
WHERE (t.a,t.b) NOT IN (SELECT 7, 5);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t2 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t3 system NULL NULL NULL NULL 1 100.00
|
||||
-2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
+1 PRIMARY t ALL NULL NULL NULL NULL 1 100.00 Using where
|
||||
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using join buffer (flat, BNL join)
|
||||
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
+2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
-Note 1003 select 6 AS `a`,5 AS `b` from `test`.`t3` where (not(<expr_cache><6,5>(<in_optimizer>((6,5),<exists>(select 7,5 having (trigcond(((<cache>(6) = 7) or isnull(7))) and trigcond(((<cache>(5) = 5) or isnull(5))) and trigcond(<is_not_null_test>(7)) and trigcond(<is_not_null_test>(5))))))))
|
||||
+Note 1003 select `test`.`t`.`a` AS `a`,`test`.`t`.`b` AS `b` from `test`.`t1` `t` join `test`.`t2` left join `test`.`t3` on((`test`.`t2`.`b` <> 0)) where (not(<expr_cache><`test`.`t`.`a`,`test`.`t`.`b`>(<in_optimizer>((`test`.`t`.`a`,`test`.`t`.`b`),<exists>(select 7,5 having (trigcond(((<cache>(`test`.`t`.`a`) = 7) or isnull(7))) and trigcond(((<cache>(`test`.`t`.`b`) = 5) or isnull(5))) and trigcond(<is_not_null_test>(7)) and trigcond(<is_not_null_test>(5))))))))
|
||||
SELECT t.a,t.b FROM t3 RIGHT JOIN ((SELECT * FROM t1) AS t, t2) ON t2.b != 0
|
||||
WHERE (t.a,t.b) NOT IN (SELECT 7, 5);
|
||||
a b
|
||||
@@ -1110,12 +1112,12 @@
|
||||
SELECT t.a,t.b FROM t3 RIGHT JOIN ((SELECT * FROM t1) AS t, t2) ON t2.b != 0
|
||||
WHERE (t.a,t.b) NOT IN (SELECT 7, 5);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t2 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t3 system NULL NULL NULL NULL 1 100.00
|
||||
-3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1 100.00 Using where
|
||||
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using join buffer (flat, BNL join)
|
||||
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
+3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
-Note 1003 select 6 AS `a`,5 AS `b` from `test`.`t3` where (not(<expr_cache><6,5>(<in_optimizer>((6,5),<exists>(select 7,5 having (trigcond(((<cache>(6) = 7) or isnull(7))) and trigcond(((<cache>(5) = 5) or isnull(5))) and trigcond(<is_not_null_test>(7)) and trigcond(<is_not_null_test>(5))))))))
|
||||
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` join `test`.`t2` left join `test`.`t3` on((`test`.`t2`.`b` <> 0)) where (not(<expr_cache><`test`.`t1`.`a`,`test`.`t1`.`b`>(<in_optimizer>((`test`.`t1`.`a`,`test`.`t1`.`b`),<exists>(select 7,5 having (trigcond(((<cache>(`test`.`t1`.`a`) = 7) or isnull(7))) and trigcond(((<cache>(`test`.`t1`.`b`) = 5) or isnull(5))) and trigcond(<is_not_null_test>(7)) and trigcond(<is_not_null_test>(5))))))))
|
||||
SELECT t.a,t.b FROM t3 RIGHT JOIN (v1 AS t, t2) ON t2.b != 0
|
||||
WHERE (t.a,t.b) NOT IN (SELECT 7, 5);
|
||||
a b
|
||||
@@ -1124,12 +1126,12 @@
|
||||
SELECT t.a,t.b FROM t3 RIGHT JOIN (v1 AS t, t2) ON t2.b != 0
|
||||
WHERE (t.a,t.b) NOT IN (SELECT 7, 5);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t2 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t3 system NULL NULL NULL NULL 1 100.00
|
||||
-2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1 100.00 Using where
|
||||
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using join buffer (flat, BNL join)
|
||||
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
+2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
-Note 1003 select 6 AS `a`,5 AS `b` from `test`.`t3` where (not(<expr_cache><6,5>(<in_optimizer>((6,5),<exists>(select 7,5 having (trigcond(((<cache>(6) = 7) or isnull(7))) and trigcond(((<cache>(5) = 5) or isnull(5))) and trigcond(<is_not_null_test>(7)) and trigcond(<is_not_null_test>(5))))))))
|
||||
+Note 1003 select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` join `test`.`t2` left join `test`.`t3` on((`test`.`t2`.`b` <> 0)) where (not(<expr_cache><`test`.`t1`.`a`,`test`.`t1`.`b`>(<in_optimizer>((`test`.`t1`.`a`,`test`.`t1`.`b`),<exists>(select 7,5 having (trigcond(((<cache>(`test`.`t1`.`a`) = 7) or isnull(7))) and trigcond(((<cache>(`test`.`t1`.`b`) = 5) or isnull(5))) and trigcond(<is_not_null_test>(7)) and trigcond(<is_not_null_test>(5))))))))
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
@@ -1284,11 +1286,11 @@
|
||||
WHERE t2.b < t.a);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
-3 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 1 100.00
|
||||
-3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
+3 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 1 100.00 Using where
|
||||
+3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 't.a' of SELECT #3 was resolved in SELECT #1
|
||||
-Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where <expr_cache><`test`.`t1`.`a`>(exists(select 28 from `test`.`t3` where ('j' < `test`.`t1`.`a`)))
|
||||
+Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where <expr_cache><`test`.`t1`.`a`>(exists(select `test`.`t2`.`a` from `test`.`t2` left join `test`.`t3` on((`test`.`t3`.`a` = `test`.`t2`.`a`)) where (`test`.`t2`.`b` < `test`.`t1`.`a`)))
|
||||
SELECT * FROM (SELECT * FROM t1) AS t
|
||||
WHERE EXISTS (SELECT t2.a FROM t3 RIGHT JOIN t2 ON (t3.a = t2.a)
|
||||
WHERE t2.b < t.a);
|
||||
@@ -1502,9 +1504,9 @@
|
||||
WHERE t3.b IN (SELECT v1.b FROM v1, t2
|
||||
WHERE t2.c = v1.c AND t2.c = v1.b AND v1.b = t3.c);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY t2 system NULL NULL NULL NULL 1
|
||||
-1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
-1 PRIMARY <derived3> ALL NULL NULL NULL NULL 3 Using where; Start temporary; End temporary
|
||||
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Start temporary
|
||||
+1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
+1 PRIMARY <derived3> ALL NULL NULL NULL NULL 3 Using where; End temporary
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 3
|
||||
SELECT * FROM t3
|
||||
WHERE t3.b IN (SELECT v1.b FROM v1, t2
|
||||
@@ -1517,8 +1519,8 @@
|
||||
WHERE t3.b IN (SELECT v1.b FROM v1, t2
|
||||
WHERE t2.c = v1.c AND t2.c = v1.b AND v1.b = t3.c);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY t2 system NULL NULL NULL NULL 1
|
||||
-1 PRIMARY <derived3> ref key1 key1 10 const,const 0 Start temporary
|
||||
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 Using where; Start temporary
|
||||
+1 PRIMARY <derived3> ref key1 key1 10 test.t2.c,test.t2.c 2
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 3
|
||||
SELECT * FROM t3
|
||||
@@ -1752,8 +1754,8 @@
|
||||
SELECT t1.b,v2.a FROM t1 LEFT JOIN v2 ON v2.a = t1.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
|
||||
-1 PRIMARY <derived2> ALL NULL NULL NULL NULL 1 Using where
|
||||
-2 DERIVED t2 system NULL NULL NULL NULL 1
|
||||
+1 PRIMARY <derived2> ref key0 key0 5 test.t1.a 2 Using where
|
||||
+2 DERIVED t2 ALL NULL NULL NULL NULL 1
|
||||
SELECT t1.b,v2.a FROM t1 LEFT JOIN v2 ON v2.a = t1.a;
|
||||
b a
|
||||
NULL NULL
|
||||
@@ -1767,8 +1769,8 @@
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where
|
||||
2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 Using where
|
||||
-2 DEPENDENT SUBQUERY <derived3> ALL NULL NULL NULL NULL 1 Using where
|
||||
-3 DERIVED t2 system NULL NULL NULL NULL 1
|
||||
+2 DEPENDENT SUBQUERY <derived3> ref key0 key0 5 test.t1.a 2 Using where
|
||||
+3 DERIVED t2 ALL NULL NULL NULL NULL 1
|
||||
SELECT * FROM t3
|
||||
WHERE t3.b <> ANY (SELECT t1.b FROM t1 LEFT JOIN v2 ON v2.a = t1.a);
|
||||
a b
|
||||
@@ -1793,9 +1795,9 @@
|
||||
EXPLAIN
|
||||
SELECT * FROM t1 WHERE a IN (SELECT v3.b FROM t2 RIGHT JOIN v3 ON v3.a = t2.a);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY t3 system NULL NULL NULL NULL 1
|
||||
-1 PRIMARY t2 const PRIMARY PRIMARY 4 const 1 Using index
|
||||
-1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
+1 PRIMARY t3 ALL NULL NULL NULL NULL 1 Start temporary
|
||||
+1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t3.a 1 Using where; Using index
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where; End temporary; Using join buffer (flat, BNL join)
|
||||
SELECT * FROM t1 WHERE a IN (SELECT v3.b FROM t2 RIGHT JOIN v3 ON v3.a = t2.a);
|
||||
a
|
||||
x
|
||||
@@ -1848,9 +1850,9 @@
|
||||
SET @@tmp_table_size=1024*4;
|
||||
explain SELECT * FROM (SELECT t1.* FROM t1, t2) AS t JOIN t3 ON t3.a = t.b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t3 system NULL NULL NULL NULL 1
|
||||
-1 SIMPLE t2 ALL NULL NULL NULL NULL 5
|
||||
-1 SIMPLE t1 ALL NULL NULL NULL NULL 21 Using where; Using join buffer (flat, BNL join)
|
||||
+1 SIMPLE t3 ALL NULL NULL NULL NULL 1
|
||||
+1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join)
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 21 Using where; Using join buffer (incremental, BNL join)
|
||||
SELECT * FROM (SELECT t1.* FROM t1, t2) AS t JOIN t3 ON t3.a = t.b;
|
||||
a b a
|
||||
USA Miami Miami
|
@ -1,40 +0,0 @@
|
||||
--- r/distinct.result 2012-01-09 16:13:21.000000000 +0100
|
||||
+++ r/distinct.reject 2012-02-10 15:29:05.000000000 +0100
|
||||
@@ -174,8 +174,8 @@
|
||||
explain SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 4 Using where; Using temporary
|
||||
-1 SIMPLE t3 ref a a 5 test.t1.b 2 Using index
|
||||
-1 SIMPLE t2 index a a 4 NULL 5 Using where; Using index; Distinct; Using join buffer (flat, BNL join)
|
||||
+1 SIMPLE t2 ref a a 4 test.t1.a 1 Using index
|
||||
+1 SIMPLE t3 ref a a 5 test.t1.b 1 Using index
|
||||
SELECT distinct t3.a FROM t3,t2,t1 WHERE t3.a=t1.b AND t1.a=t2.a;
|
||||
a
|
||||
1
|
||||
@@ -190,7 +190,7 @@
|
||||
explain select distinct t1.a from t1,t3 where t1.a=t3.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 4 Using index; Using temporary
|
||||
-1 SIMPLE t3 ref a a 5 test.t1.a 11 Using index; Distinct
|
||||
+1 SIMPLE t3 ref a a 5 test.t1.a 1 Using index; Distinct
|
||||
select distinct t1.a from t1,t3 where t1.a=t3.a;
|
||||
a
|
||||
1
|
||||
@@ -212,7 +212,7 @@
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 1 Using index
|
||||
explain SELECT distinct a from t3 order by a desc limit 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t3 index NULL a 5 NULL 40 Using index
|
||||
+1 SIMPLE t3 index NULL a 5 NULL 2 Using index
|
||||
explain SELECT distinct a,b from t3 order by a+1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 204 Using temporary; Using filesort
|
||||
@@ -756,7 +756,7 @@
|
||||
(1, 2, 3);
|
||||
EXPLAIN SELECT DISTINCT a, b, d, c FROM t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range NULL PRIMARY 16 NULL 7 Using index for group-by; Using temporary
|
||||
+1 SIMPLE t1 index NULL a 16 NULL 6 Using index
|
||||
SELECT DISTINCT a, b, d, c FROM t1;
|
||||
a b d c
|
||||
1 1 0 1
|
@ -1,18 +0,0 @@
|
||||
--- r/drop.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/drop.reject 2012-02-10 15:29:08.000000000 +0100
|
||||
@@ -50,6 +50,7 @@
|
||||
mtr
|
||||
mysql
|
||||
mysqltest
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
flush tables with read lock;
|
||||
@@ -62,6 +63,7 @@
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
drop database mysqltest;
|
@ -1,11 +0,0 @@
|
||||
--- r/endspace.result 2012-01-11 17:33:46.000000000 +0100
|
||||
+++ r/endspace.reject 2012-02-10 15:29:32.000000000 +0100
|
||||
@@ -100,7 +100,7 @@
|
||||
|teststring |
|
||||
explain select concat('|', text1, '|') from t1 where text1='teststring ';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 ref key1 key1 22 const 2 Using where
|
||||
+1 SIMPLE t1 ref key1 key1 22 const 1 Using where
|
||||
select concat('|', text1, '|') from t1 where text1 like 'teststring_%';
|
||||
concat('|', text1, '|')
|
||||
|teststring |
|
@ -1,10 +0,0 @@
|
||||
--- r/errors.result 2011-10-21 23:35:26.000000000 +0200
|
||||
+++ r/errors.reject 2012-02-10 15:29:36.000000000 +0100
|
||||
@@ -84,7 +84,6 @@
|
||||
Com_insert 2
|
||||
select * from t1;
|
||||
a
|
||||
-1
|
||||
select * from t2;
|
||||
a
|
||||
drop table t1;
|
@ -1,23 +0,0 @@
|
||||
--- r/func_compress.result 2011-11-23 18:58:14.000000000 +0100
|
||||
+++ r/func_compress.reject 2012-02-10 15:31:17.000000000 +0100
|
||||
@@ -94,18 +94,15 @@
|
||||
insert into t1 values ('foo');
|
||||
explain select * from t1 where uncompress(a) is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
-Warnings:
|
||||
-Warning 1259 ZLIB: Input data corrupted
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Using where
|
||||
select * from t1 where uncompress(a) is null;
|
||||
a
|
||||
foo
|
||||
Warnings:
|
||||
Warning 1259 ZLIB: Input data corrupted
|
||||
-Warning 1259 ZLIB: Input data corrupted
|
||||
explain select *, uncompress(a) from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1
|
||||
select *, uncompress(a) from t1;
|
||||
a uncompress(a)
|
||||
foo NULL
|
@ -1,21 +0,0 @@
|
||||
--- r/func_default.result 2011-10-21 23:35:26.000000000 +0200
|
||||
+++ r/func_default.reject 2012-02-10 15:31:19.000000000 +0100
|
||||
@@ -6,15 +6,15 @@
|
||||
def NULL 10 3.14
|
||||
explain extended select default(str), default(strnull), default(intg), default(rel) from t1;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
Warnings:
|
||||
-Note 1003 select default('') AS `default(str)`,default('') AS `default(strnull)`,default(0) AS `default(intg)`,default(0) AS `default(rel)` from dual
|
||||
+Note 1003 select default(`test`.`t1`.`str`) AS `default(str)`,default(`test`.`t1`.`strnull`) AS `default(strnull)`,default(`test`.`t1`.`intg`) AS `default(intg)`,default(`test`.`t1`.`rel`) AS `default(rel)` from `test`.`t1`
|
||||
select * from t1 where str <> default(str);
|
||||
str strnull intg rel
|
||||
0 0
|
||||
explain select * from t1 where str <> default(str);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Using where
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (id int(11), s varchar(20));
|
||||
INSERT INTO t1 VALUES (1, 'one'), (2, 'two'), (3, 'three');
|
@ -1,206 +0,0 @@
|
||||
--- r/func_group.result 2012-02-23 15:57:49.000000000 +0100
|
||||
+++ /usr/home/serg/Abk/mysql/5.5-mtr/storage/pbxt/mysql-test/main/r/func_group.reject 2012-02-23 23:01:47.000000000 +0100
|
||||
@@ -604,7 +604,7 @@
|
||||
explain
|
||||
select min(a1) from t1 where a1 > 'KKK' or a1 < 'XXX';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 index PRIMARY PRIMARY 3 NULL 15 Using where; Using index
|
||||
+1 SIMPLE t1 range PRIMARY PRIMARY 0 NULL 1 Using where; Using index
|
||||
explain
|
||||
select min(a1) from t1 where a1 != 'KKK';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@@ -612,12 +612,12 @@
|
||||
explain
|
||||
select max(a3) from t1 where a2 < 2 and a3 < 'SEA';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range k1 k1 3 NULL 6 Using where; Using index
|
||||
+1 SIMPLE t1 range k1 k1 3 NULL 1 Using where; Using index
|
||||
explain
|
||||
select max(t1.a3), min(t2.a2) from t1, t2 where t1.a2 = 2 and t1.a3 < 'MIN' and t2.a3 > 'CA';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range k1 k1 7 NULL 1 Using where; Using index
|
||||
-1 SIMPLE t2 range k1 k1 3 NULL 4 Using where; Using index; Using join buffer (flat, BNL join)
|
||||
+1 SIMPLE t2 range k1 k1 3 NULL 1 Using where; Using index; Using join buffer (flat, BNL join)
|
||||
explain
|
||||
select min(a4 - 0.01) from t1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@@ -653,7 +653,7 @@
|
||||
explain
|
||||
select concat(min(t1.a1),min(t2.a4)) from t1, t2 where t2.a4 <> 'AME';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 range k2 k2 4 NULL 6 Using where; Using index
|
||||
+1 SIMPLE t2 index k2 k2 4 NULL 7 Using where; Using index
|
||||
1 SIMPLE t1 index NULL PRIMARY 3 NULL 15 Using index; Using join buffer (flat, BNL join)
|
||||
drop table t1, t2;
|
||||
create table t1 (a char(10));
|
||||
@@ -672,21 +672,21 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` char(1) CHARACTER SET latin2 DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
create table t2 select max(a),min(a) from t1;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`max(a)` char(1) CHARACTER SET latin2 DEFAULT NULL,
|
||||
`min(a)` char(1) CHARACTER SET latin2 DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t2;
|
||||
create table t2 select concat(a) from t1;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`concat(a)` varchar(1) CHARACTER SET latin2 DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t2,t1;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1);
|
||||
@@ -775,7 +775,7 @@
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`MAX(b)` datetime DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1, t2;
|
||||
create table t1(f1 datetime);
|
||||
insert into t1 values (now());
|
||||
@@ -951,33 +951,33 @@
|
||||
(3,3,1), (3,3,2), (3,3,3);
|
||||
SELECT b/c as v, a FROM t1 ORDER BY v;
|
||||
v a
|
||||
-0.33333 3
|
||||
0.33333 1
|
||||
0.33333 2
|
||||
+0.33333 3
|
||||
0.50000 1
|
||||
0.50000 2
|
||||
0.50000 3
|
||||
-0.66667 2
|
||||
0.66667 1
|
||||
+0.66667 2
|
||||
0.66667 3
|
||||
-1.00000 3
|
||||
-1.00000 2
|
||||
-1.00000 3
|
||||
1.00000 1
|
||||
-1.00000 2
|
||||
-1.00000 3
|
||||
-1.00000 2
|
||||
1.00000 1
|
||||
1.00000 1
|
||||
-1.50000 3
|
||||
-1.50000 2
|
||||
+1.00000 2
|
||||
+1.00000 2
|
||||
+1.00000 2
|
||||
+1.00000 3
|
||||
+1.00000 3
|
||||
+1.00000 3
|
||||
1.50000 1
|
||||
+1.50000 2
|
||||
+1.50000 3
|
||||
2.00000 1
|
||||
-2.00000 3
|
||||
2.00000 2
|
||||
-3.00000 3
|
||||
-3.00000 2
|
||||
+2.00000 3
|
||||
3.00000 1
|
||||
+3.00000 2
|
||||
+3.00000 3
|
||||
SELECT b/c as v, SUM(a) FROM t1 GROUP BY v;
|
||||
v SUM(a)
|
||||
0.33333 6
|
||||
@@ -1014,14 +1014,14 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`variance(0)` double(8,4) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 select stddev(0);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`stddev(0)` double(8,4) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table bug22555 (i smallint primary key auto_increment, s1 smallint, s2 smallint, e decimal(30,10), o double);
|
||||
insert into bug22555 (s1, s2, e, o) values (53, 78, 11.4276528, 6.828112), (17, 78, 5.916793, 1.8502951), (18, 76, 2.679231, 9.17975591), (31, 62, 6.07831, 0.1), (19, 41, 5.37463, 15.1), (83, 73, 14.567426, 7.959222), (92, 53, 6.10151, 13.1856852), (7, 12, 13.92272, 3.442007), (92, 35, 11.95358909, 6.01376678), (38, 84, 2.572, 7.904571);
|
||||
@@ -1336,7 +1336,7 @@
|
||||
INSERT INTO t2 ( a, b, c ) VALUES ( 1, NULL, 2 ), ( 1, 3, 4 ), ( 1, 4, 4 );
|
||||
EXPLAIN SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 ref a a 5 const 2
|
||||
+1 SIMPLE t2 ref a a 5 const 1
|
||||
SELECT MIN(b), MIN(c) FROM t2 WHERE a = 1;
|
||||
MIN(b) MIN(c)
|
||||
3 2
|
||||
@@ -1835,7 +1835,7 @@
|
||||
EXPLAIN EXTENDED
|
||||
SELECT MAX(a) FROM t1 WHERE (1,2) IN (SELECT 3,4) AND a<10;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t1 range a a 4 NULL 4 100.00 Using where; Using index
|
||||
+1 PRIMARY t1 range a a 4 NULL 1 100.00 Using where; Using index
|
||||
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL NULL No tables used
|
||||
Warnings:
|
||||
Note 1003 select max(`test`.`t1`.`a`) AS `MAX(a)` from `test`.`t1` where (<expr_cache><<cache>(1),<cache>(2)>(<in_optimizer>(<cache>((1,2)),<exists>(select 3,4 having (((1 = 3) or isnull(3)) and ((2 = 4) or isnull(4)) and <is_not_null_test>(3) and <is_not_null_test>(4))))) and (`test`.`t1`.`a` < 10))
|
||||
@@ -1845,8 +1845,8 @@
|
||||
EXPLAIN EXTENDED
|
||||
SELECT MAX(a) FROM t1 WHERE (1,2) IN (SELECT a,b FROM t2 WHERE b<5) and a<10;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
+1 PRIMARY t1 range a a 4 NULL 1 100.00 Using where; Using index
|
||||
1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 10 func,func 1 100.00
|
||||
-1 PRIMARY t1 range a a 4 NULL 4 100.00 Using where; Using index; Using join buffer (flat, BNL join)
|
||||
2 MATERIALIZED t2 ALL NULL NULL NULL NULL 5 100.00 Using where
|
||||
Warnings:
|
||||
Note 1003 select max(`test`.`t1`.`a`) AS `MAX(a)` from `test`.`t1` semi join (`test`.`t2`) where ((`test`.`t2`.`b` = 2) and (`test`.`t2`.`a` = 1) and (`test`.`t1`.`a` < 10))
|
||||
@@ -1856,7 +1856,7 @@
|
||||
EXPLAIN EXTENDED
|
||||
SELECT MAX(a) FROM t1 WHERE RAND()*0<>0 AND a<10;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t1 range a a 4 NULL 4 100.00 Using where; Using index
|
||||
+1 SIMPLE t1 range a a 4 NULL 1 100.00 Using where; Using index
|
||||
Warnings:
|
||||
Note 1003 select max(`test`.`t1`.`a`) AS `MAX(a)` from `test`.`t1` where (((rand() * 0) <> 0) and (`test`.`t1`.`a` < 10))
|
||||
SELECT MAX(a) FROM t1 WHERE RAND()*0<>0 AND a<10;
|
||||
@@ -1876,11 +1876,11 @@
|
||||
SELECT (SELECT MIN(t1.a) FROM t1,t2 WHERE t2.a = t3.b) FROM t3;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 PRIMARY t3 ALL NULL NULL NULL NULL 2 100.00
|
||||
-2 DEPENDENT SUBQUERY t1 system NULL NULL NULL NULL 1 100.00
|
||||
-2 DEPENDENT SUBQUERY t2 system NULL NULL NULL NULL 1 100.00
|
||||
+2 DEPENDENT SUBQUERY t1 index NULL PRIMARY 4 NULL 1 100.00 Using index
|
||||
+2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
Warnings:
|
||||
Note 1276 Field or reference 'test.t3.b' of SELECT #2 was resolved in SELECT #1
|
||||
-Note 1003 select <expr_cache><`test`.`t3`.`b`>((select min(1) from dual where (10 = `test`.`t3`.`b`))) AS `(SELECT MIN(t1.a) FROM t1,t2 WHERE t2.a = t3.b)` from `test`.`t3`
|
||||
+Note 1003 select <expr_cache><`test`.`t3`.`b`>((select min(`test`.`t1`.`a`) from `test`.`t1` join `test`.`t2` where (`test`.`t2`.`a` = `test`.`t3`.`b`))) AS `(SELECT MIN(t1.a) FROM t1,t2 WHERE t2.a = t3.b)` from `test`.`t3`
|
||||
SELECT (SELECT MIN(t1.a) FROM t1,t2 WHERE t2.a = t3.b) FROM t3;
|
||||
(SELECT MIN(t1.a) FROM t1,t2 WHERE t2.a = t3.b)
|
||||
NULL
|
||||
@@ -2006,9 +2006,9 @@
|
||||
SELECT v
|
||||
FROM t2);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
|
||||
+1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
|
||||
3 MATERIALIZED t2 ALL NULL NULL NULL NULL 2
|
||||
-2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
|
||||
+2 DERIVED empty1 ALL NULL NULL NULL NULL 0
|
||||
set optimizer_switch=@tmp_optimizer_switch;
|
||||
|
||||
#
|
||||
@@ -2035,7 +2035,7 @@
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 index NULL PRIMARY 4 NULL 2 Using where; Using index
|
||||
3 MATERIALIZED t2 ALL NULL NULL NULL NULL 2
|
||||
-2 MATERIALIZED NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
+2 MATERIALIZED t3 index PRIMARY PRIMARY 4 NULL 1 Using where; Using index
|
||||
set @@optimizer_switch=@save_optimizer_switch;
|
||||
#
|
||||
# Cleanup for BUG#46680
|
@ -1,179 +0,0 @@
|
||||
--- r/func_in.result 2011-11-23 18:51:58.000000000 +0100
|
||||
+++ r/func_in.reject 2012-02-10 15:31:38.000000000 +0100
|
||||
@@ -241,7 +241,7 @@
|
||||
explain
|
||||
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 range a a 5 NULL 12 Using index condition
|
||||
+1 SIMPLE t2 range a a 5 NULL 11 Using where
|
||||
select * from t2 where a NOT IN (0, 2,4,6,8,10,12,14,16,18);
|
||||
a filler
|
||||
1 yes
|
||||
@@ -256,10 +256,10 @@
|
||||
19 yes
|
||||
explain select * from t2 force index(a) where a NOT IN (2,2,2,2,2,2);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 range a a 5 NULL 912 Using index condition
|
||||
+1 SIMPLE t2 range a a 5 NULL 2 Using where
|
||||
explain select * from t2 force index(a) where a <> 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 range a a 5 NULL 912 Using index condition
|
||||
+1 SIMPLE t2 range a a 5 NULL 2 Using where
|
||||
drop table t2;
|
||||
create table t2 (a datetime, filler char(200), key(a));
|
||||
insert into t2 select '2006-04-25 10:00:00' + interval C.a minute,
|
||||
@@ -271,7 +271,7 @@
|
||||
'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00',
|
||||
'2006-04-25 10:06:00', '2006-04-25 10:08:00');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 range a a 9 NULL 18 Using index condition
|
||||
+1 SIMPLE t2 range a a 9 NULL 6 Using where
|
||||
select * from t2 where a NOT IN (
|
||||
'2006-04-25 10:00:00','2006-04-25 10:02:00','2006-04-25 10:04:00',
|
||||
'2006-04-25 10:06:00', '2006-04-25 10:08:00');
|
||||
@@ -295,7 +295,7 @@
|
||||
('barbas','1'), ('bazbazbay', '1'),('zz','1');
|
||||
explain select * from t2 where a not in('foo','barbar', 'bazbazbaz');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 range a a 13 NULL 7 Using index condition
|
||||
+1 SIMPLE t2 range a a 13 NULL 4 Using where
|
||||
drop table t2;
|
||||
create table t2 (a decimal(10,5), filler char(200), key(a));
|
||||
insert into t2 select 345.67890, 'no' from t1 A, t1 B;
|
||||
@@ -306,7 +306,7 @@
|
||||
explain
|
||||
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 range a a 7 NULL 7 Using index condition
|
||||
+1 SIMPLE t2 range a a 7 NULL 4 Using where
|
||||
select * from t2 where a not in (345.67890, 43245.34, 64224.56344);
|
||||
a filler
|
||||
0.00000 1
|
||||
@@ -630,16 +630,16 @@
|
||||
INSERT INTO t1 (c_int) SELECT 0 FROM t1;
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_int c_int 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_int c_int 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_int c_int 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (1, NULL, 2, NULL, 3, NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_int c_int 4 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_int c_int 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_int IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
@@ -648,10 +648,10 @@
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_decimal c_decimal 3 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_decimal IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
@@ -660,10 +660,10 @@
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_float IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_float c_float 4 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_float c_float 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_float IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_float c_float 4 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_float c_float 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_float IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
@@ -672,10 +672,10 @@
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_bit c_bit 2 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_bit IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
@@ -685,11 +685,11 @@
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_date
|
||||
IN ('2009-09-01', '2009-09-02', '2009-09-03');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_date c_date 3 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_date c_date 3 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_date
|
||||
IN (NULL, '2009-09-01', '2009-09-02', '2009-09-03');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_date c_date 3 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_date c_date 3 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_date IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
@@ -699,11 +699,11 @@
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_datetime
|
||||
IN ('2009-09-01 00:00:01', '2009-09-02 00:00:01', '2009-09-03 00:00:01');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_datetime
|
||||
IN (NULL, '2009-09-01 00:00:01', '2009-09-02 00:00:01', '2009-09-03 00:00:01');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_datetime c_datetime 8 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_datetime IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
@@ -713,11 +713,11 @@
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_timestamp
|
||||
IN ('2009-09-01 00:00:01', '2009-09-01 00:00:02', '2009-09-01 00:00:03');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_timestamp
|
||||
IN (NULL, '2009-09-01 00:00:01', '2009-09-01 00:00:02', '2009-09-01 00:00:03');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_timestamp c_timestamp 4 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_timestamp IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
@@ -726,10 +726,10 @@
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_year IN (1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_year c_year 1 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_year c_year 1 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_year IN (NULL, 1, 2, 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_year c_year 1 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_year c_year 1 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_year IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
@@ -738,10 +738,10 @@
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_char IN ('1', '2', '3');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_char c_char 10 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_char c_char 10 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_char IN (NULL, '1', '2', '3');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range c_char c_char 10 NULL 3 Using index condition
|
||||
+1 SIMPLE t1 range c_char c_char 10 NULL 3 Using where
|
||||
EXPLAIN SELECT * FROM t1 WHERE c_char IN (NULL);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
@ -1,32 +0,0 @@
|
||||
--- r/func_math.result 2012-01-09 16:13:21.000000000 +0100
|
||||
+++ r/func_math.reject 2012-02-10 15:31:40.000000000 +0100
|
||||
@@ -166,7 +166,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`round(1, 6)` int(1) NOT NULL DEFAULT '0'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
select * from t1;
|
||||
round(1, 6)
|
||||
1
|
||||
@@ -540,7 +540,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`C` varchar(23) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#11764994 57900: CREATE TABLE .. SELECT ASSERTS SCALE >= 0 && PRECISION > 0 && SCALE <= PR
|
||||
@@ -660,9 +660,9 @@
|
||||
CREATE TABLE t1(a BIGINT, b BIGINT UNSIGNED);
|
||||
INSERT INTO t1 VALUES(-9223372036854775808, 9223372036854775809);
|
||||
SELECT -a FROM t1;
|
||||
-ERROR 22003: BIGINT value is out of range in '-(-9223372036854775808)'
|
||||
+ERROR 22003: BIGINT value is out of range in '-(`test`.`t1`.`a`)'
|
||||
SELECT -b FROM t1;
|
||||
-ERROR 22003: BIGINT value is out of range in '-(9223372036854775809)'
|
||||
+ERROR 22003: BIGINT value is out of range in '-(`test`.`t1`.`b`)'
|
||||
DROP TABLE t1;
|
||||
SET @a:=999999999999999999999999999999999999999999999999999999999999999999999999999999999;
|
||||
SELECT @a + @a;
|
@ -1,19 +0,0 @@
|
||||
--- r/func_misc.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/func_misc.reject 2012-02-10 15:31:42.000000000 +0100
|
||||
@@ -102,14 +102,14 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`uuid()` varchar(36) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`length(uuid())` int(10) NOT NULL DEFAULT '0'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 select INET_ATON('255.255.0.1') as `a`;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` bigint(21) unsigned DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
drop table if exists table_26093;
|
||||
drop function if exists func_26093_a;
|
@ -1,23 +0,0 @@
|
||||
--- r/func_regexp.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/func_regexp.reject 2012-02-10 15:31:44.000000000 +0100
|
||||
@@ -10,7 +10,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`s1` varchar(64) DEFAULT NULL,
|
||||
`s2` varchar(64) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
delete from t1;
|
||||
insert into t1 values('aaa','aaa');
|
||||
insert into t1 values('aaa|qqq','qqq');
|
||||
@@ -50,9 +50,9 @@
|
||||
this is a test of some long text to see what happens
|
||||
explain extended select * from t1 where xxx regexp('is a test of some long text to');
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 100.00 Using where
|
||||
Warnings:
|
||||
-Note 1003 select 'this is a test of some long text to see what happens' AS `xxx` from dual where ('this is a test of some long text to see what happens' regexp 'is a test of some long text to')
|
||||
+Note 1003 select `test`.`t1`.`xxx` AS `xxx` from `test`.`t1` where (`test`.`t1`.`xxx` regexp 'is a test of some long text to')
|
||||
select * from t1 where xxx regexp('is a test of some long text to ');
|
||||
xxx
|
||||
this is a test of some long text to see what happens
|
@ -1,47 +0,0 @@
|
||||
--- r/func_str.result 2012-01-13 16:50:49.000000000 +0100
|
||||
+++ r/func_str.reject 2012-02-10 15:31:48.000000000 +0100
|
||||
@@ -751,7 +751,7 @@
|
||||
`insert(_latin2'abcd',2,3,_latin2'ef')` varchar(6) CHARACTER SET latin2 NOT NULL DEFAULT '',
|
||||
`replace(_latin2'abcd',_latin2'b',_latin2'B')` varchar(4) CHARACTER SET latin2 NOT NULL DEFAULT '',
|
||||
`encode('abcd','ab')` varbinary(4) NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (a char character set latin2);
|
||||
insert into t1 values (null);
|
||||
@@ -1153,7 +1153,6 @@
|
||||
notnumber 0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DOUBLE value: 'notnumber'
|
||||
-Warning 1292 Truncated incorrect DOUBLE value: 'notnumber'
|
||||
SELECT * FROM t1, t2 WHERE num=substring(str from 1 for 6);
|
||||
str num
|
||||
notnumber 0
|
||||
@@ -1308,14 +1307,14 @@
|
||||
create table t1(f1 varchar(4));
|
||||
explain extended select encode(f1,'zxcv') as 'enc' from t1;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 0 0.00
|
||||
Warnings:
|
||||
-Note 1003 select encode(NULL,'zxcv') AS `enc` from `test`.`t1`
|
||||
+Note 1003 select encode(`test`.`t1`.`f1`,'zxcv') AS `enc` from `test`.`t1`
|
||||
explain extended select decode(f1,'zxcv') as 'enc' from t1;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 0 0.00 const row not found
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 0 0.00
|
||||
Warnings:
|
||||
-Note 1003 select decode(NULL,'zxcv') AS `enc` from `test`.`t1`
|
||||
+Note 1003 select decode(`test`.`t1`.`f1`,'zxcv') AS `enc` from `test`.`t1`
|
||||
drop table t1;
|
||||
create table t1 (a bigint not null)engine=myisam;
|
||||
insert into t1 set a = 1024*1024*1024*4;
|
||||
@@ -2782,7 +2781,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`format(123,2,'no_NO')` varchar(37) NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1;
|
||||
format(123,2,'no_NO')
|
||||
123,00
|
@ -1,20 +0,0 @@
|
||||
--- r/func_system.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/func_system.reject 2012-02-10 15:32:02.000000000 +0100
|
||||
@@ -49,7 +49,7 @@
|
||||
`database()` varchar(34) CHARACTER SET utf8 DEFAULT NULL,
|
||||
`user()` varchar(77) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`version` char(60) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select charset(charset(_utf8'a')), charset(collation(_utf8'a'));
|
||||
charset(charset(_utf8'a')) charset(collation(_utf8'a'))
|
||||
@@ -63,7 +63,7 @@
|
||||
t1 CREATE TABLE `t1` (
|
||||
`charset(_utf8'a')` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
|
||||
`collation(_utf8'a')` varchar(64) CHARACTER SET utf8 NOT NULL DEFAULT ''
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
select TRUE,FALSE,NULL;
|
||||
TRUE FALSE NULL
|
@ -1,14 +0,0 @@
|
||||
--- r/func_test.result 2011-10-21 23:35:26.000000000 +0200
|
||||
+++ r/func_test.reject 2012-02-10 15:32:04.000000000 +0100
|
||||
@@ -85,9 +85,9 @@
|
||||
-1
|
||||
explain extended select - a from t1;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
Warnings:
|
||||
-Note 1003 select -(1) AS `- a` from dual
|
||||
+Note 1003 select -(`test`.`t1`.`a`) AS `- a` from `test`.`t1`
|
||||
drop table t1;
|
||||
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
|
||||
5 between 0 and 10 between 0 and 1 (5 between 0 and 10) between 0 and 1
|
@ -1,11 +0,0 @@
|
||||
--- r/func_time.result 2012-01-09 16:13:21.000000000 +0100
|
||||
+++ r/func_time.reject 2012-02-10 15:32:23.000000000 +0100
|
||||
@@ -958,7 +958,7 @@
|
||||
`curtime() - curtime()` decimal(11,0) NOT NULL DEFAULT '0',
|
||||
`sec_to_time(1) + 0` decimal(11,0) DEFAULT NULL,
|
||||
`from_unixtime(1) + 0` decimal(20,0) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
SELECT SEC_TO_TIME(3300000);
|
||||
SEC_TO_TIME(3300000)
|
@ -1,20 +0,0 @@
|
||||
--- r/func_time_hires.result 2011-10-21 23:35:26.000000000 +0200
|
||||
+++ r/func_time_hires.reject 2012-02-10 15:32:25.000000000 +0100
|
||||
@@ -49,7 +49,7 @@
|
||||
`localtimestamp(6)` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
|
||||
`time_to_sec(123456)` bigint(17) DEFAULT NULL,
|
||||
`time_to_sec('12:34:56.789')` decimal(22,6) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
select * from t1;
|
||||
sec_to_time(12345) 03:25:45
|
||||
sec_to_time(12345.6789) 03:25:45.6789
|
||||
@@ -133,7 +133,7 @@
|
||||
`t4` time(4) DEFAULT NULL,
|
||||
`t5` time(5) DEFAULT NULL,
|
||||
`t6` time(6) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
select * from t1;
|
||||
dauto 2011-01-02 12:13:14
|
||||
d0 2011-01-02 12:13:14
|
@ -1,236 +0,0 @@
|
||||
--- r/grant.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/grant.reject 2012-02-10 16:04:38.000000000 +0100
|
||||
@@ -1051,7 +1051,7 @@
|
||||
Table Create Table
|
||||
t_nn CREATE TABLE `t_nn` (
|
||||
`c1` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
ERROR HY000: 'mysqltest2.t_nn' is not VIEW
|
||||
SHOW CREATE VIEW mysqltest2.v_yy;
|
||||
@@ -1070,7 +1070,7 @@
|
||||
Table Create Table
|
||||
t_nn CREATE TABLE `t_nn` (
|
||||
`c1` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
SHOW CREATE VIEW mysqltest2.t_nn;
|
||||
ERROR HY000: 'mysqltest2.t_nn' is not VIEW
|
||||
DROP VIEW mysqltest2.v_nn;
|
||||
@@ -1921,7 +1921,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -1947,7 +1947,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -1973,7 +1973,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -1999,7 +1999,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2025,7 +2025,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2051,7 +2051,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2077,7 +2077,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2103,7 +2103,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2129,7 +2129,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2155,7 +2155,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2181,7 +2181,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2207,7 +2207,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2233,7 +2233,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2259,7 +2259,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2285,7 +2285,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2311,7 +2311,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2337,7 +2337,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2363,7 +2363,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2389,7 +2389,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2415,7 +2415,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2441,7 +2441,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2467,7 +2467,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2493,7 +2493,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
||||
@@ -2519,7 +2519,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
# connection: default
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- r/grant2.result 2011-12-13 12:00:39.000000000 +0100
|
||||
+++ r/grant2.reject 2012-02-10 16:04:41.000000000 +0100
|
||||
@@ -401,7 +401,7 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`i` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
create table t1 like mysqltest_2.t1;
|
||||
use test;
|
||||
drop database mysqltest_1;
|
@ -1,28 +0,0 @@
|
||||
--- r/grant4.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/grant4.reject 2012-02-10 16:04:43.000000000 +0100
|
||||
@@ -64,7 +64,7 @@
|
||||
t_select_priv CREATE TABLE `t_select_priv` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
|
||||
** SHOW CREATE TABLE will fail if there is no grants at all:
|
||||
show create table mysqltest_db1.t_no_priv;
|
||||
@@ -88,14 +88,14 @@
|
||||
** SELECT FROM INFORMATION_SCHEMA.STATISTICS will succeed because any privileges will do (authentication is enough).
|
||||
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='t5';
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
|
||||
-def mysqltest_db1 t5 1 mysqltest_db1 i 1 s1 A NULL NULL NULL YES BTREE
|
||||
+def mysqltest_db1 t5 1 mysqltest_db1 i 1 s1 A 0 NULL NULL YES BTREE
|
||||
** SHOW INDEX FROM t5 will fail because we don't have any privileges on any column combination.
|
||||
SHOW INDEX FROM t5;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't5'
|
||||
** SHOW INDEX FROM t6 will succeed because there exist a privilege on a column combination on t6.
|
||||
SHOW INDEX FROM t6;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
-t6 1 i 1 s1 A NULL NULL NULL YES BTREE
|
||||
+t6 1 i 1 s1 A 0 NULL NULL YES BTREE
|
||||
** CHECK TABLE requires any privilege on any column combination and should succeed for t6:
|
||||
CHECK TABLE t6;
|
||||
Table Op Msg_type Msg_text
|
@ -1,380 +0,0 @@
|
||||
--- r/greedy_optimizer.result 2012-01-09 16:13:21.000000000 +0100
|
||||
+++ r/greedy_optimizer.reject 2012-02-10 16:04:45.000000000 +0100
|
||||
@@ -133,7 +133,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 821.837037
|
||||
+Last_query_cost 822.625316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||
@@ -145,7 +145,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 821.837037
|
||||
+Last_query_cost 822.625316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -157,7 +157,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 794.837037
|
||||
+Last_query_cost 795.625316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -169,7 +169,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 794.837037
|
||||
+Last_query_cost 795.625316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -181,7 +181,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 794.837037
|
||||
+Last_query_cost 795.625316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -193,7 +193,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t1.c16 1 Using where
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 794.837037
|
||||
+Last_query_cost 795.625316
|
||||
set optimizer_prune_level=0;
|
||||
select @@optimizer_prune_level;
|
||||
@@optimizer_prune_level
|
||||
@@ -213,7 +213,7 @@
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1371.437037
|
||||
+Last_query_cost 1372.225316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -225,7 +225,7 @@
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1371.437037
|
||||
+Last_query_cost 1372.225316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -237,7 +237,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 362.618727
|
||||
+Last_query_cost 363.346368
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -249,7 +249,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 362.618727
|
||||
+Last_query_cost 363.346368
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -261,7 +261,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 362.618727
|
||||
+Last_query_cost 363.346368
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -273,7 +273,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 362.618727
|
||||
+Last_query_cost 363.346368
|
||||
set optimizer_search_depth=1;
|
||||
select @@optimizer_search_depth;
|
||||
@@optimizer_search_depth
|
||||
@@ -289,7 +289,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1693.637037
|
||||
+Last_query_cost 1694.425316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||
@@ -301,7 +301,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1693.637037
|
||||
+Last_query_cost 1694.425316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -313,7 +313,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -325,7 +325,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -337,7 +337,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -349,7 +349,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
set optimizer_search_depth=62;
|
||||
select @@optimizer_search_depth;
|
||||
@@optimizer_search_depth
|
||||
@@ -365,7 +365,7 @@
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1371.437037
|
||||
+Last_query_cost 1372.225316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -377,7 +377,7 @@
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1371.437037
|
||||
+Last_query_cost 1372.225316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -389,7 +389,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 362.618727
|
||||
+Last_query_cost 363.346368
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -401,7 +401,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 362.618727
|
||||
+Last_query_cost 363.346368
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -413,7 +413,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 362.618727
|
||||
+Last_query_cost 363.346368
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 6 Using where
|
||||
@@ -425,7 +425,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 362.618727
|
||||
+Last_query_cost 363.346368
|
||||
set optimizer_prune_level=1;
|
||||
select @@optimizer_prune_level;
|
||||
@@optimizer_prune_level
|
||||
@@ -445,7 +445,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1693.637037
|
||||
+Last_query_cost 1694.425316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||
@@ -457,7 +457,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1693.637037
|
||||
+Last_query_cost 1694.425316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -469,7 +469,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -481,7 +481,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -493,7 +493,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -505,7 +505,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
set optimizer_search_depth=1;
|
||||
select @@optimizer_search_depth;
|
||||
@@optimizer_search_depth
|
||||
@@ -521,7 +521,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1693.637037
|
||||
+Last_query_cost 1694.425316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||
@@ -533,7 +533,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1693.637037
|
||||
+Last_query_cost 1694.425316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -545,7 +545,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -557,7 +557,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -569,7 +569,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -581,7 +581,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
set optimizer_search_depth=62;
|
||||
select @@optimizer_search_depth;
|
||||
@@optimizer_search_depth
|
||||
@@ -597,7 +597,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1693.637037
|
||||
+Last_query_cost 1694.425316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c12 = t2.c21 and t2.c22 = t3.c31 and t3.c32 = t4.c41 and t4.c42 = t5.c51 and t5.c52 = t6.c61 and t6.c62 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||
@@ -609,7 +609,7 @@
|
||||
1 SIMPLE t7 eq_ref PRIMARY PRIMARY 4 test.t6.c62 1 Using index
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 1693.637037
|
||||
+Last_query_cost 1694.425316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -621,7 +621,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -633,7 +633,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t1, t2, t3, t4, t5, t6, t7 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -645,7 +645,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
explain select t1.c11 from t7, t6, t5, t4, t3, t2, t1 where t1.c11 = t2.c21 and t1.c12 = t3.c31 and t1.c13 = t4.c41 and t1.c14 = t5.c51 and t1.c15 = t6.c61 and t1.c16 = t7.c71 and t2.c22 = t3.c32 and t2.c23 = t4.c42 and t2.c24 = t5.c52 and t2.c25 = t6.c62 and t2.c26 = t7.c72 and t3.c33 = t4.c43 and t3.c34 = t5.c53 and t3.c35 = t6.c63 and t3.c36 = t7.c73 and t4.c42 = t5.c54 and t4.c43 = t6.c64 and t4.c44 = t7.c74 and t5.c52 = t6.c65 and t5.c53 = t7.c75 and t6.c62 = t7.c76;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 3 Using where
|
||||
@@ -657,7 +657,7 @@
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 18 Using where; Using join buffer (flat, BNL join)
|
||||
show status like 'Last_query_cost';
|
||||
Variable_name Value
|
||||
-Last_query_cost 844.037037
|
||||
+Last_query_cost 844.825316
|
||||
drop table t1,t2,t3,t4,t5,t6,t7;
|
||||
CREATE TABLE t1 (a int, b int, d int, i int);
|
||||
INSERT INTO t1 VALUES (1,1,1,1);
|
@ -1,58 +0,0 @@
|
||||
--- r/group_by.result 2012-01-09 18:23:50.000000000 +0100
|
||||
+++ r/group_by.reject 2012-02-10 16:04:50.000000000 +0100
|
||||
@@ -270,13 +270,13 @@
|
||||
userid count(*)
|
||||
explain select spid,count(*) from t1 where spid between 1 and 2 group by spid desc;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range spID spID 5 NULL 3 Using where; Using index
|
||||
+1 SIMPLE t1 range spID spID 5 NULL 1 Using where; Using index
|
||||
explain select spid,count(*) from t1 where spid between 1 and 2 group by spid;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range spID spID 5 NULL 3 Using where; Using index
|
||||
+1 SIMPLE t1 range spID spID 5 NULL 1 Using where; Using index
|
||||
explain select spid,count(*) from t1 where spid between 1 and 2 group by spid order by null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range spID spID 5 NULL 3 Using where; Using index
|
||||
+1 SIMPLE t1 range spID spID 5 NULL 1 Using where; Using index
|
||||
select spid,count(*) from t1 where spid between 1 and 2 group by spid;
|
||||
spid count(*)
|
||||
1 1
|
||||
@@ -700,7 +700,7 @@
|
||||
delete from t2 where a = 2 and b = 'val-2' order by a,b,c,d limit 30;
|
||||
explain select c from t2 where a = 2 and b = 'val-2' group by c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 ref PRIMARY,a PRIMARY 402 const,const 6 Using where
|
||||
+1 SIMPLE t2 ref PRIMARY,a PRIMARY 402 const,const 1 Using where
|
||||
select c from t2 where a = 2 and b = 'val-2' group by c;
|
||||
c
|
||||
val-74
|
||||
@@ -1329,7 +1329,7 @@
|
||||
1 SIMPLE t1 range PRIMARY,i2 PRIMARY 4 NULL 1 Using where; Using index
|
||||
EXPLAIN SELECT a FROM t1 WHERE a < 2 GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range PRIMARY,i2 PRIMARY 4 NULL 1 Using where; Using index
|
||||
+1 SIMPLE t1 range PRIMARY,i2 PRIMARY 4 NULL 1 Using where; Using index for group-by
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX (PRIMARY,i2);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 144
|
||||
@@ -1566,7 +1566,8 @@
|
||||
(SELECT a FROM t1 USE INDEX (i2) IGNORE INDEX (i2));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t2 index a a 5 NULL 4 Using index
|
||||
-1 PRIMARY t1 ALL NULL NULL NULL NULL 144 Using where; FirstMatch(t2)
|
||||
+1 PRIMARY <subquery2> eq_ref distinct_key distinct_key 4 func 1
|
||||
+2 MATERIALIZED t1 ALL NULL NULL NULL NULL 144
|
||||
SET optimizer_switch=@save_optimizer_switch;
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1(
|
||||
@@ -1904,8 +1905,8 @@
|
||||
FROM t1 GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 index NULL a 10 NULL 9 Using index
|
||||
-3 DEPENDENT SUBQUERY t12 ref a a 10 func,func 2 Using index condition
|
||||
-2 DEPENDENT SUBQUERY t11 ref a a 10 func,func 2 Using index condition
|
||||
+3 DEPENDENT SUBQUERY t12 ref a a 10 func,func 1 Using where
|
||||
+2 DEPENDENT SUBQUERY t11 ref a a 10 func,func 1 Using where
|
||||
SELECT a, AVG(t1.b),
|
||||
(SELECT t11.c FROM t1 t11 WHERE t11.a = t1.a AND t11.b = AVG(t1.b)) AS t11c,
|
||||
(SELECT t12.c FROM t1 t12 WHERE t12.a = t1.a AND t12.b = AVG(t1.b)) AS t12c
|
File diff suppressed because it is too large
Load Diff
@ -1,11 +0,0 @@
|
||||
--- r/heap.result 2012-01-09 16:13:21.000000000 +0100
|
||||
+++ r/heap.reject 2012-02-10 16:05:04.000000000 +0100
|
||||
@@ -664,7 +664,7 @@
|
||||
length(v)
|
||||
65530
|
||||
drop table t1;
|
||||
-set storage_engine=MyISAM;
|
||||
+set storage_engine=PBXT;
|
||||
create table t1 (a bigint unsigned auto_increment primary key, b int,
|
||||
key (b, a)) engine=heap;
|
||||
insert t1 (b) values (1),(1),(1),(1),(1),(1),(1),(1);
|
@ -1,173 +0,0 @@
|
||||
--- r/index_intersect.result 2012-02-10 16:40:42.000000000 +0100
|
||||
+++ r/index_intersect.reject 2012-02-10 16:41:28.000000000 +0100
|
||||
@@ -64,22 +64,22 @@
|
||||
SELECT * FROM City WHERE
|
||||
Name LIKE 'C%' AND Population > 1000000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,Name Name,Population 35,4 NULL # Using sort_intersect(Name,Population); Using where
|
||||
+1 SIMPLE City range Population,Name Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE
|
||||
Name LIKE 'M%' AND Population > 1500000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,Name Population,Name 4,35 NULL # Using sort_intersect(Population,Name); Using where
|
||||
+1 SIMPLE City range Population,Name Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Name LIKE 'M%' AND Population > 300000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City range Population,Name Name 35 NULL # Using index condition; Using where
|
||||
+1 SIMPLE City range Population,Name Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Name LIKE 'M%' AND Population > 7000000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City range Population,Name Population 4 NULL # Using index condition; Using where
|
||||
+1 SIMPLE City range Population,Name Population 4 NULL # Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE Name LIKE 'C%' AND Population > 1000000;
|
||||
ID Name Country Population
|
||||
@@ -361,17 +361,17 @@
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'M' AND 'N' AND Population > 1000000 AND Country LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,Country,Name Name,Population 35,4 NULL # Using sort_intersect(Name,Population); Using where
|
||||
+1 SIMPLE City range Population,Country,Name Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 1000000 AND Country LIKE 'B%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,Country,Name Population,Country 4,3 NULL # Using sort_intersect(Population,Country); Using where
|
||||
+1 SIMPLE City range Population,Country,Name Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'K' AND Population > 500000 AND Country LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City range Population,Name,Country Name # NULL # Using index condition; Using where
|
||||
+1 SIMPLE City range Population,Name,Country Population # NULL # Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE Name BETWEEN 'M' AND 'N' AND Population > 1000000 AND Country LIKE 'C%';
|
||||
ID Name Country Population
|
||||
@@ -462,29 +462,29 @@
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using index condition; Using where
|
||||
+1 SIMPLE City range PRIMARY,Population,Country PRIMARY 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge PRIMARY,Population,Country Country,Population 3,4 NULL # Using sort_intersect(Country,Population); Using where
|
||||
+1 SIMPLE City range PRIMARY,Population,Country PRIMARY 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 2001 AND 2500 AND Population > 300000 AND Country LIKE 'H%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City range PRIMARY,Population,Country Country 3 NULL # Using index condition; Using where
|
||||
+1 SIMPLE City range PRIMARY,Population,Country PRIMARY 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 3701 AND 4000 AND Population > 1000000
|
||||
AND Country BETWEEN 'S' AND 'Z';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge PRIMARY,Population,Country Population,PRIMARY 4,4 NULL # Using sort_intersect(Population,PRIMARY); Using where
|
||||
+1 SIMPLE City range PRIMARY,Population,Country PRIMARY 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||
AND Country BETWEEN 'S' AND 'Z' ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using index condition; Using where
|
||||
+1 SIMPLE City range PRIMARY,Population,Country PRIMARY 4 NULL # Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE ID BETWEEN 501 AND 1000 AND Population > 700000 AND Country LIKE 'C%';
|
||||
ID Name Country Population
|
||||
@@ -718,33 +718,33 @@
|
||||
SELECT * FROM City WHERE
|
||||
Name LIKE 'C%' AND Population > 1000000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,Name Name,Population 35,4 NULL # Using sort_intersect(Name,Population); Using where
|
||||
+1 SIMPLE City range Population,Name Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City WHERE
|
||||
Name LIKE 'M%' AND Population > 1500000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,Name Population,Name 4,35 NULL # Using sort_intersect(Population,Name); Using where
|
||||
+1 SIMPLE City range Population,Name Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 1000000 AND Country LIKE 'B%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,Country,Name Population,Country 4,3 NULL # Using sort_intersect(Population,Country); Using where
|
||||
+1 SIMPLE City range Population,Country,Name Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Name BETWEEN 'G' AND 'J' AND Population > 500000 AND Country LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City range Population,Country,Name Name 35 NULL # Using index condition; Using where
|
||||
+1 SIMPLE City range Population,Country,Name Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 1 AND 500 AND Population > 1000000 AND Country LIKE 'A%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge PRIMARY,Population,Country Country,Population 3,4 NULL # Using sort_intersect(Country,Population); Using where
|
||||
+1 SIMPLE City range PRIMARY,Population,Country PRIMARY 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE ID BETWEEN 3001 AND 4000 AND Population > 600000
|
||||
AND Country BETWEEN 'S' AND 'Z';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City range PRIMARY,Population,Country Population 4 NULL # Using index condition; Using where
|
||||
+1 SIMPLE City range PRIMARY,Population,Country PRIMARY 4 NULL # Using where
|
||||
SELECT * FROM City WHERE
|
||||
Name LIKE 'C%' AND Population > 1000000;
|
||||
ID Name Country Population
|
||||
@@ -885,17 +885,17 @@
|
||||
SELECT * FROM City
|
||||
WHERE Country LIKE 'M%' AND Population > 1000000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,CountryID,CountryName Population,CountryID 4,3 NULL # Using sort_intersect(Population,CountryID); Using where
|
||||
+1 SIMPLE City range Population,CountryID,CountryName Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Country='CHN' AND Population > 1500000;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,CountryID,CountryName Population,CountryID 4,3 NULL # Using sort_intersect(Population,CountryID); Using where
|
||||
+1 SIMPLE City range Population,CountryID,CountryName Population 4 NULL # Using where
|
||||
EXPLAIN
|
||||
SELECT * FROM City
|
||||
WHERE Country='CHN' AND Population > 1500000 AND Name LIKE 'C%';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,Name,CountryID,CountryName CountryName,Population 38,4 NULL # Using sort_intersect(CountryName,Population); Using where
|
||||
+1 SIMPLE City ref Population,Name,CountryID,CountryName CountryName 3 const # Using where
|
||||
SELECT * FROM City USE INDEX ()
|
||||
WHERE Country LIKE 'M%' AND Population > 1000000;
|
||||
ID Name Country Population
|
||||
@@ -1003,7 +1003,7 @@
|
||||
WHERE City.Name LIKE 'C%' AND City.Population > 1000000 AND
|
||||
Country.Code=City.Country;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE City index_merge Population,Name,CountryID,CountryName Name,Population 35,4 NULL # Using sort_intersect(Name,Population); Using where
|
||||
+1 SIMPLE City range Population,Name,CountryID,CountryName Population 4 NULL # Using where
|
||||
1 SIMPLE Country eq_ref PRIMARY PRIMARY 3 world.City.Country #
|
||||
DROP DATABASE world;
|
||||
use test;
|
||||
@@ -1016,7 +1016,7 @@
|
||||
) ENGINE=InnoDB;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
-Warning 1266 Using storage engine MyISAM for table 't1'
|
||||
+Warning 1266 Using storage engine PBXT for table 't1'
|
||||
INSERT INTO t1 VALUES
|
||||
(5,'H',1), (9,'g',0), (527,'i',0), (528,'y',1), (529,'S',6),
|
||||
(530,'m',7), (531,'b',2), (532,'N',1), (533,'V',NULL), (534,'l',1),
|
||||
@@ -1035,7 +1035,7 @@
|
||||
SELECT * FROM t1
|
||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range PRIMARY,f4 f4 35 NULL # Using index condition; Using where
|
||||
+1 SIMPLE t1 range PRIMARY,f4 PRIMARY 4 NULL # Using where
|
||||
SELECT * FROM t1
|
||||
WHERE (f1 < 535 OR f1 > 985) AND ( f4='r' OR f4 LIKE 'a%' ) ;
|
||||
f1 f4 f5
|
@ -1,107 +0,0 @@
|
||||
--- r/information_schema.result 2012-01-09 16:13:21.000000000 +0100
|
||||
+++ r/information_schema.reject 2012-02-10 16:05:46.000000000 +0100
|
||||
@@ -11,6 +11,7 @@
|
||||
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
|
||||
def mtr latin1 latin1_swedish_ci NULL
|
||||
def mysql latin1 latin1_swedish_ci NULL
|
||||
+def pbxt latin1 latin1_swedish_ci NULL
|
||||
def performance_schema utf8 utf8_general_ci NULL
|
||||
def test latin1 latin1_swedish_ci NULL
|
||||
select schema_name from information_schema.schemata;
|
||||
@@ -18,6 +19,7 @@
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
show databases like 't%';
|
||||
@@ -28,6 +30,7 @@
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
show databases where `database` = 't%';
|
||||
@@ -180,10 +183,10 @@
|
||||
t4
|
||||
select * from information_schema.STATISTICS where TABLE_SCHEMA = "mysqltest";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT
|
||||
-def mysqltest t1 1 mysqltest string_data 1 b A NULL NULL NULL YES BTREE
|
||||
+def mysqltest t1 1 mysqltest string_data 1 b A 0 NULL NULL YES BTREE
|
||||
show keys from t3 where Key_name = "a_data";
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
-t3 1 a_data 1 a A NULL NULL NULL YES BTREE
|
||||
+t3 1 a_data 1 a A 0 NULL NULL YES BTREE
|
||||
show tables like 't%';
|
||||
Tables_in_test (t%)
|
||||
t2
|
||||
@@ -191,9 +194,9 @@
|
||||
t5
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
-t2 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
-t3 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
-t5 MyISAM 10 Fixed 1 7 7 # 2048 0 11 # # NULL latin1_swedish_ci NULL
|
||||
+t2 PBXT 10 Fixed 0 19 1024 # 4096 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
+t3 PBXT 10 Fixed 0 19 1024 # 4096 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
+t5 PBXT 10 Fixed 1 19 1043 # 20480 0 11 # # NULL latin1_swedish_ci NULL
|
||||
v1 NULL NULL NULL NULL NULL NULL # NULL NULL NULL # # NULL NULL NULL NULL VIEW
|
||||
show full columns from t3 like "a%";
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
@@ -377,6 +380,7 @@
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
explain select * from v0;
|
||||
@@ -475,7 +479,7 @@
|
||||
UNIQUE KEY `constraint_1` (`a`),
|
||||
UNIQUE KEY `key_1` (`a`),
|
||||
UNIQUE KEY `key_2` (`a`)
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
select * from information_schema.TABLE_CONSTRAINTS where
|
||||
TABLE_SCHEMA= "test";
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
|
||||
@@ -571,7 +575,7 @@
|
||||
`DEFAULT_COLLATE_NAME` varchar(32) NOT NULL DEFAULT '',
|
||||
`DESCRIPTION` varchar(60) NOT NULL DEFAULT '',
|
||||
`MAXLEN` bigint(3) NOT NULL DEFAULT '0'
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=utf8
|
||||
drop table t1;
|
||||
create view v1 as select * from information_schema.TABLES;
|
||||
drop view v1;
|
||||
@@ -1076,8 +1080,8 @@
|
||||
WHERE name IN ( SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA='test' AND TABLE_TYPE='BASE TABLE');
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
-t1 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
-t2 MyISAM 10 Fixed 0 0 0 # 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
+t1 PBXT 10 Fixed 0 19 1024 # 4096 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
+t2 PBXT 10 Fixed 0 19 1024 # 4096 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
DROP TABLE t1,t2;
|
||||
create table t1(f1 int);
|
||||
create view v1 (c) as select f1 from t1;
|
||||
@@ -1140,7 +1144,7 @@
|
||||
f1 int(11) YES MUL NULL
|
||||
show indexes from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
-t1 1 f1 1 f1 A NULL NULL NULL YES BTREE
|
||||
+t1 1 f1 1 f1 A 0 NULL NULL YES BTREE
|
||||
drop table t1;
|
||||
create table t1(f1 binary(32), f2 varbinary(64));
|
||||
select character_maximum_length, character_octet_length
|
||||
@@ -1387,7 +1391,7 @@
|
||||
End of 5.0 tests.
|
||||
select * from information_schema.engines WHERE ENGINE="MyISAM";
|
||||
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
|
||||
-MyISAM DEFAULT MyISAM storage engine NO NO NO
|
||||
+MyISAM YES MyISAM storage engine NO NO NO
|
||||
grant select on *.* to user3148@localhost;
|
||||
select user,db from information_schema.processlist;
|
||||
user db
|
@ -1,137 +0,0 @@
|
||||
--- r/information_schema_part.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/information_schema_part.reject 2012-02-10 13:53:24.000000000 +0100
|
||||
@@ -7,9 +7,9 @@
|
||||
select * from information_schema.partitions where table_schema="test"
|
||||
and table_name="t1";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
-def test t1 x1 NULL 1 NULL LIST NULL b*a NULL 1 0 0 0 # 1024 0 # # NULL NULL default ts1
|
||||
-def test t1 x2 NULL 2 NULL LIST NULL b*a NULL 3,11,5,7 0 0 0 # 1024 0 # # NULL NULL default ts2
|
||||
-def test t1 x3 NULL 3 NULL LIST NULL b*a NULL 16,8,24,27 0 0 0 # 1024 0 # # NULL NULL default ts3
|
||||
+def test t1 x1 NULL 1 NULL LIST NULL b*a NULL 1 0 27 1024 # 4096 0 # # NULL NULL default ts1
|
||||
+def test t1 x2 NULL 2 NULL LIST NULL b*a NULL 3,11,5,7 0 27 1024 # 4096 0 # # NULL NULL default ts2
|
||||
+def test t1 x3 NULL 3 NULL LIST NULL b*a NULL 16,8,24,27 0 27 1024 # 4096 0 # # NULL NULL default ts3
|
||||
create table t2 (a int not null,b int not null,c int not null, primary key(a,b))
|
||||
partition by range (a)
|
||||
partitions 3
|
||||
@@ -19,27 +19,27 @@
|
||||
select * from information_schema.partitions where table_schema="test"
|
||||
and table_name="t2";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
-def test t2 x1 NULL 1 NULL RANGE NULL a NULL 5 0 0 0 # 1024 0 # # NULL NULL default ts1
|
||||
-def test t2 x2 NULL 2 NULL RANGE NULL a NULL 10 0 0 0 # 1024 0 # # NULL NULL default ts2
|
||||
-def test t2 x3 NULL 3 NULL RANGE NULL a NULL MAXVALUE 0 0 0 # 1024 0 # # NULL NULL default ts3
|
||||
+def test t2 x1 NULL 1 NULL RANGE NULL a NULL 5 0 27 1024 # 4096 0 # # NULL NULL default ts1
|
||||
+def test t2 x2 NULL 2 NULL RANGE NULL a NULL 10 0 27 1024 # 4096 0 # # NULL NULL default ts2
|
||||
+def test t2 x3 NULL 3 NULL RANGE NULL a NULL MAXVALUE 0 27 1024 # 4096 0 # # NULL NULL default ts3
|
||||
create table t3 (f1 date)
|
||||
partition by hash(month(f1))
|
||||
partitions 3;
|
||||
select * from information_schema.partitions where table_schema="test"
|
||||
and table_name="t3";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
-def test t3 p0 NULL 1 NULL HASH NULL month(f1) NULL NULL 0 0 0 # 1024 0 # # NULL NULL default NULL
|
||||
-def test t3 p1 NULL 2 NULL HASH NULL month(f1) NULL NULL 0 0 0 # 1024 0 # # NULL NULL default NULL
|
||||
-def test t3 p2 NULL 3 NULL HASH NULL month(f1) NULL NULL 0 0 0 # 1024 0 # # NULL NULL default NULL
|
||||
+def test t3 p0 NULL 1 NULL HASH NULL month(f1) NULL NULL 0 18 1024 # 4096 0 # # NULL NULL default NULL
|
||||
+def test t3 p1 NULL 2 NULL HASH NULL month(f1) NULL NULL 0 18 1024 # 4096 0 # # NULL NULL default NULL
|
||||
+def test t3 p2 NULL 3 NULL HASH NULL month(f1) NULL NULL 0 18 1024 # 4096 0 # # NULL NULL default NULL
|
||||
create table t4 (f1 date, f2 int)
|
||||
partition by key(f1,f2)
|
||||
partitions 3;
|
||||
select * from information_schema.partitions where table_schema="test"
|
||||
and table_name="t4";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
-def test t4 p0 NULL 1 NULL KEY NULL `f1`,`f2` NULL NULL 0 0 0 # 1024 0 # # NULL NULL default NULL
|
||||
-def test t4 p1 NULL 2 NULL KEY NULL `f1`,`f2` NULL NULL 0 0 0 # 1024 0 # # NULL NULL default NULL
|
||||
-def test t4 p2 NULL 3 NULL KEY NULL `f1`,`f2` NULL NULL 0 0 0 # 1024 0 # # NULL NULL default NULL
|
||||
+def test t4 p0 NULL 1 NULL KEY NULL `f1`,`f2` NULL NULL 0 22 1024 # 4096 0 # # NULL NULL default NULL
|
||||
+def test t4 p1 NULL 2 NULL KEY NULL `f1`,`f2` NULL NULL 0 22 1024 # 4096 0 # # NULL NULL default NULL
|
||||
+def test t4 p2 NULL 3 NULL KEY NULL `f1`,`f2` NULL NULL 0 22 1024 # 4096 0 # # NULL NULL default NULL
|
||||
drop table t1,t2,t3,t4;
|
||||
create table t1 (a int not null,b int not null,c int not null,primary key (a,b))
|
||||
partition by range (a)
|
||||
@@ -63,14 +63,14 @@
|
||||
);
|
||||
select * from information_schema.partitions where table_schema="test";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
-def test t1 x1 x11 1 1 RANGE HASH a a+b 1 0 0 0 # 1024 0 # # NULL NULL default t1
|
||||
-def test t1 x1 x12 1 2 RANGE HASH a a+b 1 0 0 0 # 1024 0 # # NULL NULL default t2
|
||||
-def test t1 x2 x21 2 1 RANGE HASH a a+b 5 0 0 0 # 1024 0 # # NULL NULL default t1
|
||||
-def test t1 x2 x22 2 2 RANGE HASH a a+b 5 0 0 0 # 1024 0 # # NULL NULL default t2
|
||||
-def test t2 x1 x11 1 1 RANGE KEY a `a` 1 0 0 0 # 1024 0 # # NULL NULL default t1
|
||||
-def test t2 x1 x12 1 2 RANGE KEY a `a` 1 0 0 0 # 1024 0 # # NULL NULL default t2
|
||||
-def test t2 x2 x21 2 1 RANGE KEY a `a` 5 0 0 0 # 1024 0 # # NULL NULL default t1
|
||||
-def test t2 x2 x22 2 2 RANGE KEY a `a` 5 0 0 0 # 1024 0 # # NULL NULL default t2
|
||||
+def test t1 x1 x11 1 1 RANGE HASH a a+b 1 0 27 1024 # 4096 0 # # NULL NULL default t1
|
||||
+def test t1 x1 x12 1 2 RANGE HASH a a+b 1 0 27 1024 # 4096 0 # # NULL NULL default t2
|
||||
+def test t1 x2 x21 2 1 RANGE HASH a a+b 5 0 27 1024 # 4096 0 # # NULL NULL default t1
|
||||
+def test t1 x2 x22 2 2 RANGE HASH a a+b 5 0 27 1024 # 4096 0 # # NULL NULL default t2
|
||||
+def test t2 x1 x11 1 1 RANGE KEY a `a` 1 0 27 1024 # 4096 0 # # NULL NULL default t1
|
||||
+def test t2 x1 x12 1 2 RANGE KEY a `a` 1 0 27 1024 # 4096 0 # # NULL NULL default t2
|
||||
+def test t2 x2 x21 2 1 RANGE KEY a `a` 5 0 27 1024 # 4096 0 # # NULL NULL default t1
|
||||
+def test t2 x2 x22 2 2 RANGE KEY a `a` 5 0 27 1024 # 4096 0 # # NULL NULL default t2
|
||||
drop table t1,t2;
|
||||
create table t1 (
|
||||
a int not null,
|
||||
@@ -88,10 +88,10 @@
|
||||
);
|
||||
select * from information_schema.partitions where table_schema="test";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
-def test t1 x1 x11 1 1 RANGE HASH a a+b 1 0 0 0 # 1024 0 # # NULL NULL 0 t1
|
||||
-def test t1 x1 x12 1 2 RANGE HASH a a+b 1 0 0 0 # 1024 0 # # NULL NULL 1 t2
|
||||
-def test t1 x2 x21 2 1 RANGE HASH a a+b 5 0 0 0 # 1024 0 # # NULL NULL 0 t1
|
||||
-def test t1 x2 x22 2 2 RANGE HASH a a+b 5 0 0 0 # 1024 0 # # NULL NULL 1 t2
|
||||
+def test t1 x1 x11 1 1 RANGE HASH a a+b 1 0 27 1024 # 4096 0 # # NULL NULL 0 t1
|
||||
+def test t1 x1 x12 1 2 RANGE HASH a a+b 1 0 27 1024 # 4096 0 # # NULL NULL 1 t2
|
||||
+def test t1 x2 x21 2 1 RANGE HASH a a+b 5 0 27 1024 # 4096 0 # # NULL NULL 0 t1
|
||||
+def test t1 x2 x22 2 2 RANGE HASH a a+b 5 0 27 1024 # 4096 0 # # NULL NULL 1 t2
|
||||
show tables;
|
||||
Tables_in_test
|
||||
t1
|
||||
@@ -99,7 +99,7 @@
|
||||
create table t1(f1 int, f2 int);
|
||||
select * from information_schema.partitions where table_schema="test";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
-def test t1 NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 0 0 # 1024 0 # # NULL NULL NULL
|
||||
+def test t1 NULL NULL NULL NULL NULL NULL NULL NULL NULL 0 23 1024 # 4096 0 # # NULL NULL NULL
|
||||
drop table t1;
|
||||
create table t1 (f1 date)
|
||||
partition by linear hash(month(f1))
|
||||
@@ -107,9 +107,9 @@
|
||||
select * from information_schema.partitions where table_schema="test"
|
||||
and table_name="t1";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
-def test t1 p0 NULL 1 NULL LINEAR HASH NULL month(f1) NULL NULL 0 0 0 # 1024 0 # # NULL NULL default NULL
|
||||
-def test t1 p1 NULL 2 NULL LINEAR HASH NULL month(f1) NULL NULL 0 0 0 # 1024 0 # # NULL NULL default NULL
|
||||
-def test t1 p2 NULL 3 NULL LINEAR HASH NULL month(f1) NULL NULL 0 0 0 # 1024 0 # # NULL NULL default NULL
|
||||
+def test t1 p0 NULL 1 NULL LINEAR HASH NULL month(f1) NULL NULL 0 18 1024 # 4096 0 # # NULL NULL default NULL
|
||||
+def test t1 p1 NULL 2 NULL LINEAR HASH NULL month(f1) NULL NULL 0 18 1024 # 4096 0 # # NULL NULL default NULL
|
||||
+def test t1 p2 NULL 3 NULL LINEAR HASH NULL month(f1) NULL NULL 0 18 1024 # 4096 0 # # NULL NULL default NULL
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
PARTITION BY RANGE (a)
|
||||
@@ -119,10 +119,10 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY RANGE (a)
|
||||
SUBPARTITION BY LINEAR HASH (a)
|
||||
-(PARTITION p0 VALUES LESS THAN (10) ENGINE = MyISAM) */
|
||||
+(PARTITION p0 VALUES LESS THAN (10) ENGINE = PBXT) */
|
||||
select SUBPARTITION_METHOD FROM information_schema.partitions WHERE
|
||||
table_schema="test" AND table_name="t1";
|
||||
SUBPARTITION_METHOD
|
||||
@@ -137,9 +137,9 @@
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY LIST (a)
|
||||
-(PARTITION p0 VALUES IN (10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53) ENGINE = MyISAM) */
|
||||
+(PARTITION p0 VALUES IN (10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53) ENGINE = PBXT) */
|
||||
SELECT PARTITION_DESCRIPTION FROM information_schema.partitions WHERE
|
||||
table_schema = "test" AND table_name = "t1";
|
||||
PARTITION_DESCRIPTION
|
@ -1,10 +0,0 @@
|
||||
--- r/insert_select.result 2012-02-10 16:44:10.000000000 +0100
|
||||
+++ r/insert_select.reject 2012-02-10 16:44:35.000000000 +0100
|
||||
@@ -566,7 +566,6 @@
|
||||
a b
|
||||
1 t1:1
|
||||
3 t1:3
|
||||
-2 t2:2
|
||||
replace into t1 select * from t2;
|
||||
select * from t1;
|
||||
a b
|
@ -1,62 +0,0 @@
|
||||
--- r/join.result 2012-01-09 16:13:21.000000000 +0100
|
||||
+++ r/join.reject 2012-02-10 16:06:39.000000000 +0100
|
||||
@@ -872,7 +872,7 @@
|
||||
insert into t3 select * from t2 where a < 800;
|
||||
explain select * from t2,t3 where t2.a < 200 and t2.b=t3.b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 ALL a,b NULL NULL NULL 1000 Using where
|
||||
+1 SIMPLE t2 range a,b a 5 NULL 1 Using where
|
||||
1 SIMPLE t3 ref b b 5 test.t2.b 1
|
||||
drop table t1, t2, t3;
|
||||
create table t1 (a int);
|
||||
@@ -884,7 +884,7 @@
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 10
|
||||
show status like '%cost%';
|
||||
Variable_name Value
|
||||
-Last_query_cost 4.016090
|
||||
+Last_query_cost 4.262158
|
||||
select 'The cost of accessing t1 (dont care if it changes' '^';
|
||||
The cost of accessing t1 (dont care if it changes
|
||||
The cost of accessing t1 (dont care if it changes^
|
||||
@@ -898,7 +898,7 @@
|
||||
1 SIMPLE B eq_ref PRIMARY PRIMARY 4 test.A.b 1
|
||||
show status like '%cost%';
|
||||
Variable_name Value
|
||||
-Last_query_cost 28.016090
|
||||
+Last_query_cost 28.262158
|
||||
select '^^: The above should be ~= 20 + cost(select * from t1). Value less than 20 is an error' Z;
|
||||
Z
|
||||
^^: The above should be ~= 20 + cost(select * from t1). Value less than 20 is an error
|
||||
@@ -1099,7 +1099,7 @@
|
||||
ON t1.a = t3.a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3
|
||||
-1 SIMPLE t3 ref a a 5 test.t1.a 2 Using where; Using index
|
||||
+1 SIMPLE t3 ref a a 5 test.t1.a 1 Using where; Using index
|
||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 0 Using where
|
||||
1 SIMPLE t5 ALL NULL NULL NULL NULL 0 Using where
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 0 Using where
|
||||
@@ -1253,10 +1253,12 @@
|
||||
INSERT INTO t2 VALUES (1,NULL);
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON t1.v = t2.v ORDER BY 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
+1 SIMPLE t2 ALL ix2 NULL NULL NULL 1 Using where; Using temporary; Using filesort
|
||||
+1 SIMPLE t1 ref ix1 ix1 5 test.t2.v 1
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON t1.v = t2.v;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
+1 SIMPLE t2 ALL ix2 NULL NULL NULL 1 Using where
|
||||
+1 SIMPLE t1 ref ix1 ix1 5 test.t2.v 1
|
||||
INSERT INTO t1 VALUES (3,'b'),(4,NULL),(5,'c'),(6,'cc'),(7,'d'),
|
||||
(8,'dd'),(9,'e'),(10,'ee');
|
||||
INSERT INTO t2 VALUES (2,NULL);
|
||||
@@ -1268,7 +1270,7 @@
|
||||
Handler_read_first 0
|
||||
Handler_read_key 1
|
||||
Handler_read_last 0
|
||||
-Handler_read_next 0
|
||||
+Handler_read_next 2
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 1
|
@ -1,171 +0,0 @@
|
||||
--- r/join_nested.result 2012-01-09 16:13:21.000000000 +0100
|
||||
+++ r/join_nested.reject 2012-02-10 16:07:01.000000000 +0100
|
||||
@@ -855,7 +855,7 @@
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00
|
||||
1 SIMPLE t4 ALL NULL NULL NULL NULL 2 100.00 Using join buffer (flat, BNL join)
|
||||
-1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 2 100.00 Using where
|
||||
+1 SIMPLE t2 ref idx_b idx_b 5 test.t3.b 1 100.00 Using where
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t3` join `test`.`t4` left join (`test`.`t1` join `test`.`t2`) on(((`test`.`t2`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t3`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`b`) and (`test`.`t3`.`b` is not null))) where 1
|
||||
@@ -965,14 +965,14 @@
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where
|
||||
+1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 1 100.00 Using where
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
-1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where
|
||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where
|
||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||
1 SIMPLE t8 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
-Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and ((`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`))))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t3`.`b` = `test`.`t4`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
INSERT INTO t8 VALUES (-3,12,0), (-1,14,0), (-5,15,0), (-1,11,0), (-4,13,0);
|
||||
CREATE INDEX idx_b ON t8(b);
|
||||
EXPLAIN EXTENDED
|
||||
@@ -1014,15 +1014,15 @@
|
||||
1 SIMPLE t0 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
-1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where
|
||||
-1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
-1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where
|
||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where
|
||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||
-1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
||||
+1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 1 100.00 Using where
|
||||
+1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where
|
||||
+1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 1 100.00 Using where
|
||||
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
-Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t8`.`a` >= 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t2`.`a` > 0) and (`test`.`t4`.`a` > 0) and (`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t8`.`a` >= 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t5`.`a` > 0) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t3`.`b` = `test`.`t4`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
INSERT INTO t1 VALUES (-1,133,0), (-2,12,0), (-3,11,0), (-5,15,0);
|
||||
CREATE INDEX idx_b ON t1(b);
|
||||
CREATE INDEX idx_a ON t0(a);
|
||||
@@ -1062,18 +1062,18 @@
|
||||
(t8.b=t9.b OR t8.c IS NULL) AND
|
||||
(t9.a=1);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t0 ref idx_a idx_a 5 const 1 100.00 Using where
|
||||
-1 SIMPLE t1 ref idx_b idx_b 5 test.t0.b 2 100.00
|
||||
+1 SIMPLE t0 ref idx_a idx_a 5 const 2 100.00 Using where
|
||||
+1 SIMPLE t1 ref idx_b idx_b 5 test.t0.b 1 100.00
|
||||
1 SIMPLE t9 ALL NULL NULL NULL NULL 3 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
-1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where
|
||||
-1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
-1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 2 100.00 Using where
|
||||
1 SIMPLE t5 ALL idx_b NULL NULL NULL 7 100.00 Using where
|
||||
1 SIMPLE t7 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
1 SIMPLE t6 ALL NULL NULL NULL NULL 3 100.00 Using where
|
||||
-1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 2 100.00 Using where
|
||||
+1 SIMPLE t8 ref idx_b idx_b 5 test.t5.b 1 100.00 Using where
|
||||
+1 SIMPLE t2 ALL NULL NULL NULL NULL 8 100.00 Using where
|
||||
+1 SIMPLE t4 ref idx_b idx_b 5 test.t2.b 1 100.00 Using where
|
||||
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
-Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2) and (`test`.`t1`.`a` > 0))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t4`.`b` = `test`.`t3`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
+Note 1003 select `test`.`t0`.`a` AS `a`,`test`.`t0`.`b` AS `b`,`test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t3`.`a` AS `a`,`test`.`t3`.`b` AS `b`,`test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b`,`test`.`t5`.`a` AS `a`,`test`.`t5`.`b` AS `b`,`test`.`t6`.`a` AS `a`,`test`.`t6`.`b` AS `b`,`test`.`t7`.`a` AS `a`,`test`.`t7`.`b` AS `b`,`test`.`t8`.`a` AS `a`,`test`.`t8`.`b` AS `b`,`test`.`t9`.`a` AS `a`,`test`.`t9`.`b` AS `b` from `test`.`t0` join `test`.`t1` left join (`test`.`t2` left join (`test`.`t3` join `test`.`t4`) on(((`test`.`t3`.`a` = 1) and (`test`.`t4`.`b` = `test`.`t2`.`b`) and (`test`.`t2`.`b` is not null))) join `test`.`t5` left join (`test`.`t6` join `test`.`t7` left join `test`.`t8` on(((`test`.`t6`.`b` < 10) and (`test`.`t7`.`b` = `test`.`t5`.`b`) and (`test`.`t8`.`b` = `test`.`t5`.`b`) and (`test`.`t5`.`b` is not null)))) on(((`test`.`t6`.`b` >= 2) and (`test`.`t7`.`b` = `test`.`t5`.`b`)))) on((((`test`.`t3`.`b` = 2) or isnull(`test`.`t3`.`c`)) and ((`test`.`t6`.`b` = 2) or isnull(`test`.`t6`.`c`)) and (((`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t5`.`b` = `test`.`t0`.`b`)) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t6`.`c`) or isnull(`test`.`t8`.`c`)) and (`test`.`t1`.`a` <> 2) and (`test`.`t1`.`a` > 0))) join `test`.`t9` where ((`test`.`t9`.`a` = 1) and (`test`.`t1`.`b` = `test`.`t0`.`b`) and (`test`.`t0`.`a` = 1) and ((`test`.`t2`.`a` >= 4) or isnull(`test`.`t2`.`c`)) and ((`test`.`t3`.`a` < 5) or isnull(`test`.`t3`.`c`)) and ((`test`.`t3`.`b` = `test`.`t4`.`b`) or isnull(`test`.`t3`.`c`) or isnull(`test`.`t4`.`c`)) and ((`test`.`t5`.`a` >= 2) or isnull(`test`.`t5`.`c`)) and ((`test`.`t6`.`a` >= 4) or isnull(`test`.`t6`.`c`)) and ((`test`.`t7`.`a` <= 2) or isnull(`test`.`t7`.`c`)) and ((`test`.`t8`.`a` < 1) or isnull(`test`.`t8`.`c`)) and ((`test`.`t8`.`b` = `test`.`t9`.`b`) or isnull(`test`.`t8`.`c`)))
|
||||
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
|
||||
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
|
||||
FROM t0,t1
|
||||
@@ -1111,20 +1111,20 @@
|
||||
a b a b a b a b a b a b a b a b a b a b
|
||||
1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 1
|
||||
1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 1
|
||||
-1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 1
|
||||
1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 1
|
||||
-1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 1
|
||||
1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 1
|
||||
+1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 1
|
||||
+1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 1
|
||||
1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 1
|
||||
1 2 2 2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 1 2
|
||||
1 2 3 2 4 2 1 2 3 2 3 1 6 2 1 1 NULL NULL 1 2
|
||||
-1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2 1 2
|
||||
-1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 2
|
||||
1 2 3 2 4 2 1 2 4 2 3 1 6 2 1 1 NULL NULL 1 2
|
||||
-1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2 1 2
|
||||
-1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 2
|
||||
1 2 3 2 5 3 NULL NULL NULL NULL 3 1 6 2 1 1 NULL NULL 1 2
|
||||
+1 2 3 2 4 2 1 2 3 2 2 2 6 2 2 2 0 2 1 2
|
||||
+1 2 3 2 4 2 1 2 4 2 2 2 6 2 2 2 0 2 1 2
|
||||
1 2 3 2 5 3 NULL NULL NULL NULL 2 2 6 2 2 2 0 2 1 2
|
||||
+1 2 3 2 4 2 1 2 3 2 3 3 NULL NULL NULL NULL NULL NULL 1 2
|
||||
+1 2 3 2 4 2 1 2 4 2 3 3 NULL NULL NULL NULL NULL NULL 1 2
|
||||
1 2 3 2 5 3 NULL NULL NULL NULL 3 3 NULL NULL NULL NULL NULL NULL 1 2
|
||||
SELECT t2.a,t2.b
|
||||
FROM t2;
|
||||
@@ -1210,12 +1210,12 @@
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
||||
1 SIMPLE t3 index c c 5 NULL 6 Using where; Using index
|
||||
-1 SIMPLE t2 ref b b 5 test.t3.c 2 Using index
|
||||
+1 SIMPLE t2 ref b b 5 test.t3.c 1 Using index
|
||||
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
||||
1 SIMPLE t3 index c c 5 NULL 6 Using where; Using index
|
||||
-1 SIMPLE t2 ref b b 5 test.t3.c 2 Using where; Using index
|
||||
+1 SIMPLE t2 ref b b 5 test.t3.c 1 Using where; Using index
|
||||
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
||||
a b c
|
||||
NULL 0 0
|
||||
@@ -1285,8 +1285,8 @@
|
||||
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL a 5 NULL 21 Using index
|
||||
-1 SIMPLE t3 index c c 5 NULL 0 Using where; Using index
|
||||
-1 SIMPLE t2 ref b b 5 test.t3.c 2 Using where; Using index
|
||||
+1 SIMPLE t3 index c c 5 NULL 6 Using where; Using index
|
||||
+1 SIMPLE t2 ref b b 5 test.t3.c 1 Using where; Using index
|
||||
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
|
||||
a b c
|
||||
NULL NULL NULL
|
||||
@@ -1460,12 +1460,12 @@
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
||||
1 SIMPLE t3 ref a a 5 test.t2.b X Using where
|
||||
1 SIMPLE t5 ref a a 5 test.t3.b X
|
||||
-1 SIMPLE t4 ref a a 5 test.t3.b X Using index condition
|
||||
+1 SIMPLE t4 ref a a 5 test.t3.b X Using where
|
||||
explain select * from (t4 join t6 on t6.a=t4.b) right join t3 on t4.a=t3.b
|
||||
join t2 left join (t5 join t7 on t7.a=t5.b) on t5.a=t2.b where t3.a<=>t2.b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
||||
-1 SIMPLE t3 ref a a 5 test.t2.b X Using index condition
|
||||
+1 SIMPLE t3 ref a a 5 test.t2.b X Using where
|
||||
1 SIMPLE t4 ref a a 5 test.t3.b X Using where
|
||||
1 SIMPLE t6 ref a a 5 test.t4.b X
|
||||
1 SIMPLE t5 ref a a 5 test.t2.b X Using where
|
||||
@@ -1476,9 +1476,9 @@
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL X
|
||||
1 SIMPLE t3 ref a a 5 test.t2.b X Using where
|
||||
-1 SIMPLE t5 ref a a 5 test.t3.b X
|
||||
-1 SIMPLE t4 ref a a 5 test.t5.a X Using where
|
||||
+1 SIMPLE t4 ref a a 5 test.t3.b X Using where
|
||||
1 SIMPLE t6 ref a a 5 test.t4.b X
|
||||
+1 SIMPLE t5 ref a a 5 test.t3.b X
|
||||
drop table t0, t1, t2, t3, t4, t5, t6, t7;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
@@ -1742,11 +1742,11 @@
|
||||
(t5 JOIN t4 ON t5.carrier_id = t4.id)
|
||||
ON t4.carrier = t1.carrier;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t2 index package_id package_id 5 NULL 45 Using where; Using index
|
||||
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.package_id 1
|
||||
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 36
|
||||
1 SIMPLE t4 eq_ref PRIMARY,id PRIMARY 2 test.t1.carrier 1 Using where
|
||||
-1 SIMPLE t5 ref carrier_id carrier_id 5 test.t4.id 22 Using index
|
||||
-1 SIMPLE t3 ref package_id package_id 5 test.t2.package_id 1 Using index
|
||||
+1 SIMPLE t5 ref carrier_id carrier_id 5 test.t4.id 1 Using index
|
||||
+1 SIMPLE t2 ref package_id package_id 5 test.t1.id 1 Using index
|
||||
+1 SIMPLE t3 ref package_id package_id 5 test.t1.id 1 Using index
|
||||
SELECT COUNT(*)
|
||||
FROM ((t2 JOIN t1 ON t2.package_id = t1.id)
|
||||
JOIN t3 ON t3.package_id = t1.id)
|
@ -1,9 +0,0 @@
|
||||
--- r/join_optimizer.result 2011-11-23 21:52:20.000000000 +0100
|
||||
+++ r/join_optimizer.reject 2012-02-10 16:07:08.000000000 +0100
|
||||
@@ -33,5 +33,5 @@
|
||||
WHERE g.domain = 'queue' AND g.type = a.type;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE a ALL NULL NULL NULL NULL 2 Using where
|
||||
-1 SIMPLE g ref groups_dt groups_dt 70 const,test.a.type 13 Using index condition
|
||||
+1 SIMPLE g ref groups_dt groups_dt 70 const,test.a.type 1 Using where
|
||||
drop table t0,t1,t2,t3;
|
@ -1,152 +0,0 @@
|
||||
--- r/join_outer.result 2012-01-09 16:13:21.000000000 +0100
|
||||
+++ r/join_outer.reject 2012-02-10 12:25:30.000000000 +0100
|
||||
@@ -861,14 +861,14 @@
|
||||
1 NULL
|
||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON a1=0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
+1 SIMPLE t1 index NULL PRIMARY 4 NULL 1 Using index
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT * FROM t1 LEFT JOIN (t2,t3) ON a1=0;
|
||||
a1 a2 a3
|
||||
1 NULL NULL
|
||||
EXPLAIN SELECT * FROM t1 LEFT JOIN (t2,t3) ON a1=0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
+1 SIMPLE t1 index NULL PRIMARY 4 NULL 1 Using index
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2
|
||||
SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=0 WHERE a0=a1;
|
||||
@@ -876,8 +876,8 @@
|
||||
1 1 NULL NULL
|
||||
EXPLAIN SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=0 WHERE a0=a1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t0 system PRIMARY NULL NULL NULL 1
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1
|
||||
+1 SIMPLE t0 index PRIMARY PRIMARY 4 NULL 1 Using index
|
||||
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t0.a0 1 Using index
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
1 SIMPLE t3 ALL NULL NULL NULL NULL 2
|
||||
INSERT INTO t0 VALUES (0);
|
||||
@@ -1231,7 +1231,7 @@
|
||||
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
||||
-1 SIMPLE t2 ref idx idx 4 test.t1.id 2 Using where; Not exists
|
||||
+1 SIMPLE t2 ref idx idx 4 test.t1.id 1 Using where; Not exists
|
||||
flush status;
|
||||
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
||||
id a
|
||||
@@ -1275,7 +1275,7 @@
|
||||
FROM t1 LEFT JOIN t2 USING( a )
|
||||
GROUP BY t1.a WITH ROLLUP;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary; Using filesort
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Using temporary; Using filesort
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b )
|
||||
FROM t1 LEFT JOIN t2 USING( a )
|
||||
@@ -1288,8 +1288,8 @@
|
||||
FROM t1 JOIN t2 USING( a )
|
||||
GROUP BY t1.a WITH ROLLUP;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 Using filesort
|
||||
-1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Using temporary; Using filesort
|
||||
+1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where; Using join buffer (flat, BNL join)
|
||||
SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b )
|
||||
FROM t1 JOIN t2 USING( a )
|
||||
GROUP BY t1.a WITH ROLLUP;
|
||||
@@ -1307,10 +1307,10 @@
|
||||
EXPLAIN EXTENDED SELECT * FROM t1 LEFT JOIN t2 ON t1.f2 = t2.f2
|
||||
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||
-1 SIMPLE t2 system NULL NULL NULL NULL 1 100.00
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
+1 SIMPLE t2 ALL NULL NULL NULL NULL 1 100.00 Using where
|
||||
Warnings:
|
||||
-Note 1003 select 1 AS `f1`,NULL AS `f2`,3 AS `f3`,NULL AS `f1`,NULL AS `f2` from `test`.`t2` where ((coalesce(1,NULL),3) in ((1,3),(2,2)))
|
||||
+Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2`,`test`.`t1`.`f3` AS `f3`,`test`.`t2`.`f1` AS `f1`,`test`.`t2`.`f2` AS `f2` from `test`.`t1` left join `test`.`t2` on((`test`.`t2`.`f2` = `test`.`t1`.`f2`)) where ((coalesce(`test`.`t1`.`f1`,`test`.`t2`.`f1`),`test`.`t1`.`f3`) in (<cache>((1,3)),<cache>((2,2))))
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.f2 = t2.f2
|
||||
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
||||
f1 f2 f3 f1 f2
|
||||
@@ -1417,7 +1417,7 @@
|
||||
WHERE t1.f1 = 4
|
||||
GROUP BY t2.f1, t2.f2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using temporary; Using filesort
|
||||
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using index
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||
WHERE t1.f1 = 4
|
||||
@@ -1428,7 +1428,7 @@
|
||||
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||
GROUP BY t2.f1, t2.f2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort
|
||||
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index; Using filesort
|
||||
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||
@@ -1682,7 +1682,7 @@
|
||||
where t2.pk=t1.pk+1000 and t1.pk>1000
|
||||
group by t2.pk;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 2 100.00 Using where; Using index; Using temporary; Using filesort
|
||||
+1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 2 50.00 Using where; Using index; Using temporary; Using filesort
|
||||
1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 func 1 100.00 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 func 1 100.00 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t4 eq_ref PRIMARY PRIMARY 4 test.t3.pk 1 100.00 Using where; Using index
|
||||
@@ -1774,7 +1774,7 @@
|
||||
WHERE t1.f1 = 4
|
||||
GROUP BY t2.f1, t2.f2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using temporary; Using filesort
|
||||
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using index
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||
WHERE t1.f1 = 4
|
||||
@@ -1785,7 +1785,7 @@
|
||||
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||
GROUP BY t2.f1, t2.f2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort
|
||||
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index; Using filesort
|
||||
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||
@@ -1809,11 +1809,11 @@
|
||||
EXPLAIN EXTENDED
|
||||
SELECT t2.a FROM t1 LEFT JOIN t2 ON (6) IN (SELECT a FROM t3);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1 100.00
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where
|
||||
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
-Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where 1
|
||||
+Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` left join `test`.`t2` on(<in_optimizer>(6,<exists>(select `test`.`t3`.`a` from `test`.`t3` where (6 = `test`.`t3`.`a`)))) where 1
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
# LP bug #817384 Wrong result with outer join + subquery in ON
|
||||
@@ -1829,8 +1829,8 @@
|
||||
EXPLAIN SELECT t2.b
|
||||
FROM t1 LEFT JOIN t2 ON t1.c = t2.a AND ( t2.b , t1.b ) IN (SELECT * from t3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1
|
||||
-1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 const 1 Using where
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1
|
||||
+1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using where
|
||||
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT t2.b
|
||||
FROM t1 LEFT JOIN t2 ON t1.c = t2.a AND ( t2.b , t1.b ) IN (SELECT * from t3);
|
||||
@@ -1839,7 +1839,7 @@
|
||||
EXPLAIN SELECT t2.b
|
||||
FROM t1 LEFT JOIN t2 ON (t2.b) IN (SELECT c2 from t3) AND t2.a = 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1
|
||||
1 PRIMARY t2 const PRIMARY PRIMARY 4 const 1 Using where
|
||||
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT t2.b
|
@ -1,245 +0,0 @@
|
||||
--- r/join_outer_jcl6.result 2012-02-23 15:57:49.000000000 +0100
|
||||
+++ /usr/home/serg/Abk/mysql/5.5-mtr/storage/pbxt/mysql-test/main/r/join_outer_jcl6.reject 2012-02-23 22:56:14.000000000 +0100
|
||||
@@ -109,7 +109,7 @@
|
||||
explain select t1.*,t2.* from t1 left join t2 on t1.a=t2.a where isnull(t2.a)=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 7
|
||||
-1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.a 1 Using where; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
+1 SIMPLE t2 eq_ref PRIMARY PRIMARY 8 test.t1.a 1 Using where
|
||||
select t1.*,t2.*,t3.a from t1 left join t2 on (t1.a=t2.a) left join t1 as t3 on (t2.a=t3.a);
|
||||
grp a c id a c d a
|
||||
1 1 a 1 1 a 1 1
|
||||
@@ -752,13 +752,13 @@
|
||||
order by m.match_id desc;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
||||
-1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
+1 SIMPLE m const match_id,match_id_2 match_id 1 const 1
|
||||
explain select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
||||
(t2 s left join t1 m on m.match_id = 1)
|
||||
order by UUX desc;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
||||
-1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
+1 SIMPLE m const match_id,match_id_2 match_id 1 const 1
|
||||
select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
||||
(t2 s left join t1 m on m.match_id = 1)
|
||||
order by UUX desc;
|
||||
@@ -778,7 +778,7 @@
|
||||
order by UUX desc;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE s ALL NULL NULL NULL NULL 10 Using temporary; Using filesort
|
||||
-1 SIMPLE m const match_id,match_id_2 match_id 1 const 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
+1 SIMPLE m const match_id,match_id_2 match_id 1 const 1
|
||||
select s.*, '*', m.*, (s.match_1_h - m.home) UUX from
|
||||
t2 s straight_join t1 m where m.match_id = 1
|
||||
order by UUX desc;
|
||||
@@ -872,25 +872,25 @@
|
||||
1 NULL
|
||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON a1=0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
-1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
+1 SIMPLE t1 index NULL PRIMARY 4 NULL 1 Using index
|
||||
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
SELECT * FROM t1 LEFT JOIN (t2,t3) ON a1=0;
|
||||
a1 a2 a3
|
||||
1 NULL NULL
|
||||
EXPLAIN SELECT * FROM t1 LEFT JOIN (t2,t3) ON a1=0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
-1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
-1 SIMPLE t3 ALL NULL NULL NULL NULL 2
|
||||
+1 SIMPLE t1 index NULL PRIMARY 4 NULL 1 Using index
|
||||
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
|
||||
SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=0 WHERE a0=a1;
|
||||
a0 a1 a2 a3
|
||||
1 1 NULL NULL
|
||||
EXPLAIN SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=0 WHERE a0=a1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t0 system PRIMARY NULL NULL NULL 1
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1
|
||||
-1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
-1 SIMPLE t3 ALL NULL NULL NULL NULL 2
|
||||
+1 SIMPLE t0 index PRIMARY PRIMARY 4 NULL 1 Using index
|
||||
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t0.a0 1 Using index
|
||||
+1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
+1 SIMPLE t3 ALL NULL NULL NULL NULL 2 Using join buffer (incremental, BNL join)
|
||||
INSERT INTO t0 VALUES (0);
|
||||
INSERT INTO t1 VALUES (0);
|
||||
SELECT * FROM t0, t1 LEFT JOIN (t2,t3) ON a1=5 WHERE a0=a1 AND a0=1;
|
||||
@@ -1145,15 +1145,15 @@
|
||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a = t2.a OR t1.a = t2.b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4
|
||||
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
|
||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a IN(t2.a, t2.b);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
|
||||
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
|
||||
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t1.a = t2.a WHERE t1.a > IF(t1.a = t2.b-2, t2.b, t2.b-1);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL PRIMARY NULL NULL NULL 4 Using where
|
||||
-1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1 Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
+1 SIMPLE t1 eq_ref PRIMARY PRIMARY 4 test.t2.a 1
|
||||
DROP TABLE t1,t2;
|
||||
DROP VIEW IF EXISTS v1,v2;
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
@@ -1242,7 +1242,7 @@
|
||||
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 5
|
||||
-1 SIMPLE t2 ref idx idx 4 test.t1.id 2 Using where; Not exists; Using join buffer (flat, BKA join); Key-ordered Rowid-ordered scan
|
||||
+1 SIMPLE t2 ref idx idx 4 test.t1.id 1 Using where; Not exists
|
||||
flush status;
|
||||
SELECT t1.id, a FROM t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t2.b IS NULL;
|
||||
id a
|
||||
@@ -1253,9 +1253,9 @@
|
||||
Handler_read_first 0
|
||||
Handler_read_key 5
|
||||
Handler_read_last 0
|
||||
-Handler_read_next 9
|
||||
+Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
-Handler_read_rnd 3
|
||||
+Handler_read_rnd 0
|
||||
Handler_read_rnd_deleted 0
|
||||
Handler_read_rnd_next 6
|
||||
DROP TABLE t1,t2;
|
||||
@@ -1287,8 +1287,8 @@
|
||||
FROM t1 LEFT JOIN t2 USING( a )
|
||||
GROUP BY t1.a WITH ROLLUP;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary; Using filesort
|
||||
-1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Using temporary; Using filesort
|
||||
+1 SIMPLE t2 hash_ALL NULL #hash#$hj 5 test.t1.a 5 Using where; Using join buffer (flat, BNLH join)
|
||||
SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b )
|
||||
FROM t1 LEFT JOIN t2 USING( a )
|
||||
GROUP BY t1.a WITH ROLLUP;
|
||||
@@ -1300,8 +1300,8 @@
|
||||
FROM t1 JOIN t2 USING( a )
|
||||
GROUP BY t1.a WITH ROLLUP;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 Using filesort
|
||||
-1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using where
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 Using where; Using temporary; Using filesort
|
||||
+1 SIMPLE t2 hash_ALL NULL #hash#$hj 5 test.t1.a 5 Using where; Using join buffer (flat, BNLH join)
|
||||
SELECT t1.a, COUNT( t2.b ), SUM( t2.b ), MAX( t2.b )
|
||||
FROM t1 JOIN t2 USING( a )
|
||||
GROUP BY t1.a WITH ROLLUP;
|
||||
@@ -1319,10 +1319,10 @@
|
||||
EXPLAIN EXTENDED SELECT * FROM t1 LEFT JOIN t2 ON t1.f2 = t2.f2
|
||||
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||
-1 SIMPLE t2 system NULL NULL NULL NULL 1 100.00
|
||||
+1 SIMPLE t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
+1 SIMPLE t2 hash_ALL NULL #hash#$hj 5 test.t1.f2 1 100.00 Using where; Using join buffer (flat, BNLH join)
|
||||
Warnings:
|
||||
-Note 1003 select 1 AS `f1`,NULL AS `f2`,3 AS `f3`,NULL AS `f1`,NULL AS `f2` from `test`.`t2` where ((coalesce(1,NULL),3) in ((1,3),(2,2)))
|
||||
+Note 1003 select `test`.`t1`.`f1` AS `f1`,`test`.`t1`.`f2` AS `f2`,`test`.`t1`.`f3` AS `f3`,`test`.`t2`.`f1` AS `f1`,`test`.`t2`.`f2` AS `f2` from `test`.`t1` left join `test`.`t2` on(((`test`.`t2`.`f2` = `test`.`t1`.`f2`) and (`test`.`t1`.`f2` is not null))) where ((coalesce(`test`.`t1`.`f1`,`test`.`t2`.`f1`),`test`.`t1`.`f3`) in (<cache>((1,3)),<cache>((2,2))))
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.f2 = t2.f2
|
||||
WHERE (COALESCE(t1.f1, t2.f1), f3) IN ((1, 3), (2, 2));
|
||||
f1 f2 f3 f1 f2
|
||||
@@ -1429,7 +1429,7 @@
|
||||
WHERE t1.f1 = 4
|
||||
GROUP BY t2.f1, t2.f2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using temporary; Using filesort
|
||||
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using index
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||
WHERE t1.f1 = 4
|
||||
@@ -1440,7 +1440,7 @@
|
||||
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||
GROUP BY t2.f1, t2.f2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort
|
||||
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index; Using filesort
|
||||
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||
@@ -1694,7 +1694,7 @@
|
||||
where t2.pk=t1.pk+1000 and t1.pk>1000
|
||||
group by t2.pk;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 2 100.00 Using where; Using index; Using temporary; Using filesort
|
||||
+1 PRIMARY t1 index PRIMARY PRIMARY 4 NULL 2 50.00 Using where; Using index; Using temporary; Using filesort
|
||||
1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 func 1 100.00 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t3 eq_ref PRIMARY PRIMARY 4 func 1 100.00 Using where; Using index
|
||||
2 DEPENDENT SUBQUERY t4 eq_ref PRIMARY PRIMARY 4 test.t3.pk 1 100.00 Using where; Using index
|
||||
@@ -1758,7 +1758,7 @@
|
||||
Handler_read_last 0
|
||||
Handler_read_next 5
|
||||
Handler_read_prev 0
|
||||
-Handler_read_rnd 5
|
||||
+Handler_read_rnd 0
|
||||
Handler_read_rnd_deleted 0
|
||||
Handler_read_rnd_next 1048581
|
||||
flush status;
|
||||
@@ -1772,7 +1772,7 @@
|
||||
Handler_read_last 0
|
||||
Handler_read_next 5
|
||||
Handler_read_prev 0
|
||||
-Handler_read_rnd 5
|
||||
+Handler_read_rnd 0
|
||||
Handler_read_rnd_deleted 0
|
||||
Handler_read_rnd_next 1048581
|
||||
drop table t1,t2,t3;
|
||||
@@ -1788,7 +1788,7 @@
|
||||
WHERE t1.f1 = 4
|
||||
GROUP BY t2.f1, t2.f2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using temporary; Using filesort
|
||||
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index; Using temporary; Using filesort
|
||||
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using index
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||
WHERE t1.f1 = 4
|
||||
@@ -1799,7 +1799,7 @@
|
||||
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||
GROUP BY t2.f1, t2.f2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1 Using filesort
|
||||
+1 SIMPLE t1 const PRIMARY PRIMARY 4 const 1 Using index; Using filesort
|
||||
1 SIMPLE t2 ref PRIMARY PRIMARY 4 const 1 Using where; Using index
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t2.f1 = t1.f1
|
||||
WHERE t1.f1 = 4 AND t2.f1 IS NOT NULL AND t2.f2 IS NOT NULL
|
||||
@@ -1823,11 +1823,11 @@
|
||||
EXPLAIN EXTENDED
|
||||
SELECT t2.a FROM t1 LEFT JOIN t2 ON (6) IN (SELECT a FROM t3);
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1 100.00
|
||||
-1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1 100.00
|
||||
+1 PRIMARY t2 ALL NULL NULL NULL NULL 1 100.00 Using where; Using join buffer (flat, BNL join)
|
||||
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 100.00 Using where
|
||||
Warnings:
|
||||
-Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` where 1
|
||||
+Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t1` left join `test`.`t2` on(<in_optimizer>(6,<exists>(select `test`.`t3`.`a` from `test`.`t3` where (6 = `test`.`t3`.`a`)))) where 1
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
# LP bug #817384 Wrong result with outer join + subquery in ON
|
||||
@@ -1843,8 +1843,8 @@
|
||||
EXPLAIN SELECT t2.b
|
||||
FROM t1 LEFT JOIN t2 ON t1.c = t2.a AND ( t2.b , t1.b ) IN (SELECT * from t3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1
|
||||
-1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 const 1 Using where
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1
|
||||
+1 PRIMARY t2 eq_ref PRIMARY PRIMARY 4 test.t1.c 1 Using where
|
||||
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT t2.b
|
||||
FROM t1 LEFT JOIN t2 ON t1.c = t2.a AND ( t2.b , t1.b ) IN (SELECT * from t3);
|
||||
@@ -1853,7 +1853,7 @@
|
||||
EXPLAIN SELECT t2.b
|
||||
FROM t1 LEFT JOIN t2 ON (t2.b) IN (SELECT c2 from t3) AND t2.a = 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 PRIMARY t1 system NULL NULL NULL NULL 1
|
||||
+1 PRIMARY t1 ALL NULL NULL NULL NULL 1
|
||||
1 PRIMARY t2 const PRIMARY PRIMARY 4 const 1 Using where
|
||||
2 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT t2.b
|
@ -1,10 +0,0 @@
|
||||
--- r/log_tables_upgrade.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/log_tables_upgrade.reject 2012-02-10 16:09:51.000000000 +0100
|
||||
@@ -42,6 +42,7 @@
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
@ -1,20 +0,0 @@
|
||||
--- r/lowercase_table.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/lowercase_table.reject 2012-02-10 16:10:15.000000000 +0100
|
||||
@@ -91,7 +91,7 @@
|
||||
Table Create Table
|
||||
İ CREATE TABLE `i` (
|
||||
`s1` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
show tables;
|
||||
Tables_in_test
|
||||
i
|
||||
@@ -101,7 +101,7 @@
|
||||
Table Create Table
|
||||
İİ CREATE TABLE `ii` (
|
||||
`s1` int(11) DEFAULT NULL
|
||||
-) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
+) ENGINE=PBXT DEFAULT CHARSET=latin1
|
||||
show tables;
|
||||
Tables_in_test
|
||||
ii
|
@ -1,154 +0,0 @@
|
||||
--- r/myisam_icp.result 2012-01-11 17:39:05.000000000 +0100
|
||||
+++ r/myisam_icp.reject 2012-02-10 16:11:10.000000000 +0100
|
||||
@@ -165,7 +165,7 @@
|
||||
ORDER BY ts DESC
|
||||
LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 4 Using index condition
|
||||
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 1 Using where
|
||||
|
||||
DROP TABLE t1;
|
||||
#
|
||||
@@ -202,7 +202,7 @@
|
||||
EXPLAIN
|
||||
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t3 range c1 c1 8 NULL 3 Using where
|
||||
+1 SIMPLE t3 range c1 c1 8 NULL 1 Using where
|
||||
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||
c1
|
||||
c-1004=w
|
||||
@@ -211,7 +211,7 @@
|
||||
EXPLAIN
|
||||
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t3 range c1 c1 12 NULL 2 Using index condition; Using where
|
||||
+1 SIMPLE t3 range c1 c1 12 NULL 1 Using where
|
||||
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||
c1
|
||||
EXPLAIN
|
||||
@@ -407,7 +407,7 @@
|
||||
ORDER BY c1
|
||||
LIMIT 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range PRIMARY,k1 k1 5 NULL 4 Using where
|
||||
+1 SIMPLE t1 range PRIMARY,k1 k1 5 NULL 1 Using where
|
||||
DROP TABLE t1;
|
||||
#
|
||||
#
|
||||
@@ -417,14 +417,14 @@
|
||||
CREATE TABLE t1 (pk INTEGER PRIMARY KEY, i INTEGER NOT NULL) ENGINE=InnoDB;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
-Warning 1266 Using storage engine MyISAM for table 't1'
|
||||
+Warning 1266 Using storage engine PBXT for table 't1'
|
||||
INSERT INTO t1 VALUES (11,0);
|
||||
INSERT INTO t1 VALUES (12,5);
|
||||
INSERT INTO t1 VALUES (15,0);
|
||||
CREATE TABLE t2 (pk INTEGER PRIMARY KEY, i INTEGER NOT NULL) ENGINE=InnoDB;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
-Warning 1266 Using storage engine MyISAM for table 't2'
|
||||
+Warning 1266 Using storage engine PBXT for table 't2'
|
||||
INSERT INTO t2 VALUES (11,1);
|
||||
INSERT INTO t2 VALUES (12,2);
|
||||
INSERT INTO t2 VALUES (15,4);
|
||||
@@ -435,7 +435,7 @@
|
||||
WHERE pk IN (SELECT it.pk FROM t2 JOIN t2 AS it ON it.i=it.i WHERE it.pk-t1.i<10);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3 Using where
|
||||
-2 DEPENDENT SUBQUERY it eq_ref PRIMARY PRIMARY 4 func 1 Using index condition
|
||||
+2 DEPENDENT SUBQUERY it eq_ref PRIMARY PRIMARY 4 func 1 Using where
|
||||
2 DEPENDENT SUBQUERY t2 index NULL PRIMARY 4 NULL 3 Using where; Using index; Using join buffer (flat, BNL join)
|
||||
SELECT * FROM t1
|
||||
WHERE pk IN (SELECT it.pk FROM t2 JOIN t2 AS it ON it.i=it.i WHERE it.pk-t1.i<10);
|
||||
@@ -456,7 +456,7 @@
|
||||
INSERT INTO t1 VALUES (1,9),(2,7),(3,6),(4,3),(5,1);
|
||||
EXPLAIN SELECT pk, c1 FROM t1 WHERE pk <> 3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 5 Using where
|
||||
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using where
|
||||
SET SESSION optimizer_switch='index_condition_pushdown=off';
|
||||
SELECT pk, c1 FROM t1 WHERE pk <> 3;
|
||||
pk c1
|
||||
@@ -511,8 +511,8 @@
|
||||
WHERE (t2.pk <= 4 AND t1.pk IN (2,1)) OR
|
||||
(t1.pk > 1 AND t2.pk BETWEEN 6 AND 6);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using where; Rowid-ordered scan
|
||||
-1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using index condition; Using where; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||
+1 SIMPLE t1 range PRIMARY PRIMARY 4 NULL 1 Using where
|
||||
+1 SIMPLE t2 range PRIMARY PRIMARY 4 NULL 2 Using where; Using join buffer (flat, BNL join)
|
||||
SELECT c2 FROM t1 JOIN t2 ON t1.c1 = t2.c1
|
||||
WHERE (t2.pk <= 4 AND t1.pk IN (2,1)) OR
|
||||
(t1.pk > 1 AND t2.pk BETWEEN 6 AND 6);
|
||||
@@ -641,7 +641,7 @@
|
||||
WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania'
|
||||
ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range b b 13 NULL 2 Using where; Rowid-ordered scan; Using filesort
|
||||
+1 SIMPLE t1 range b b 13 NULL 2 Using where; Using filesort
|
||||
SELECT * FROM t1
|
||||
WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania'
|
||||
ORDER BY a;
|
||||
@@ -653,7 +653,7 @@
|
||||
WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania'
|
||||
ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 range b b 13 NULL 2 Using index condition; Using where; Rowid-ordered scan; Using filesort
|
||||
+1 SIMPLE t1 range b b 13 NULL 2 Using where; Using filesort
|
||||
SELECT * FROM t1
|
||||
WHERE NOT(b = 'Texas') AND b BETWEEN 'wy' AND 'y' OR b = 'Pennsylvania'
|
||||
ORDER BY a;
|
||||
@@ -673,8 +673,8 @@
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
|
||||
HAVING t1.c != 5 ORDER BY t1.c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1
|
||||
-1 SIMPLE t2 ref a a 515 const 1 Using where
|
||||
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 1 Using where; Using filesort
|
||||
+1 SIMPLE t2 ref a a 515 test.t1.a 1 Using where
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
|
||||
HAVING t1.c != 5 ORDER BY t1.c;
|
||||
b c
|
||||
@@ -684,8 +684,8 @@
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
|
||||
HAVING t1.c != 5 ORDER BY t1.c;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 system PRIMARY NULL NULL NULL 1
|
||||
-1 SIMPLE t2 ref a a 515 const 1 Using where
|
||||
+1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 1 Using where; Using filesort
|
||||
+1 SIMPLE t2 ref a a 515 test.t1.a 1 Using where
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
|
||||
HAVING t1.c != 5 ORDER BY t1.c;
|
||||
b c
|
||||
@@ -795,9 +795,9 @@
|
||||
OR a = 0 AND h < 'z' );
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t ALL PRIMARY,c NULL NULL NULL 64 Using where
|
||||
-1 PRIMARY t2 ref g g 5 test.t.c 19 Using where
|
||||
+1 PRIMARY t2 ref g g 5 test.t.c 1 Using where
|
||||
2 DEPENDENT SUBQUERY t1 index PRIMARY PRIMARY 4 NULL 64 Using where; Using index
|
||||
-2 DEPENDENT SUBQUERY t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using index condition; Using where
|
||||
+2 DEPENDENT SUBQUERY t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1 Using where
|
||||
SELECT COUNT(*) FROM t1 AS t, t2
|
||||
WHERE c = g
|
||||
AND (EXISTS (SELECT * FROM t1, t2 WHERE a = f AND h <= t.e AND a > t.b)
|
||||
@@ -844,7 +844,7 @@
|
||||
EXPLAIN
|
||||
SELECT a, MIN(c) FROM t1 WHERE b = 'x' AND c > 'x' GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
-1 SIMPLE t1 ref idx idx 4 const 1 Using index condition; Using where; Using temporary; Using filesort
|
||||
+1 SIMPLE t1 ref idx idx 4 const 1 Using where; Using temporary; Using filesort
|
||||
SELECT a, MIN(c) FROM t1 WHERE b = 'x' AND c > 'x' GROUP BY a;
|
||||
a MIN(c)
|
||||
5 y
|
||||
@@ -873,7 +873,7 @@
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 2
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
2 MATERIALIZED t3 ALL NULL NULL NULL NULL 2
|
||||
-2 MATERIALIZED t4 range b b 5 NULL 1 Using index condition; Using where; Rowid-ordered scan; Using join buffer (flat, BNL join)
|
||||
+2 MATERIALIZED t4 range b b 5 NULL 1 Using where; Using join buffer (flat, BNL join)
|
||||
SELECT * FROM t1 LEFT JOIN t2 ON t1.c=t2.b
|
||||
WHERE
|
||||
t2.b NOT IN (SELECT t4.b FROM t3 STRAIGHT_JOIN t4 WHERE t4.b <= 2 AND t4.c = t3.c);
|
@ -1,14 +0,0 @@
|
||||
--- r/mysql.result 2011-12-13 12:00:39.000000000 +0100
|
||||
+++ r/mysql.reject 2012-02-10 16:11:23.000000000 +0100
|
||||
@@ -406,9 +406,9 @@
|
||||
| 1 |
|
||||
+---+
|
||||
Warning (Code 1286): Unknown storage engine 'nonexistent'
|
||||
-Warning (Code 1266): Using storage engine MyISAM for table 't2'
|
||||
+Warning (Code 1266): Using storage engine PBXT for table 't2'
|
||||
Warning (Code 1286): Unknown storage engine 'nonexistent2'
|
||||
-Warning (Code 1266): Using storage engine MyISAM for table 't2'
|
||||
+Warning (Code 1266): Using storage engine PBXT for table 't2'
|
||||
Error (Code 1050): Table 't2' already exists
|
||||
drop tables t1, t2;
|
||||
Variable_name Value
|
@ -1,58 +0,0 @@
|
||||
--- r/mysql_upgrade.result 2012-01-15 11:27:26.000000000 +0100
|
||||
+++ r/mysql_upgrade.reject 2012-02-10 16:11:51.000000000 +0100
|
||||
@@ -29,6 +29,7 @@
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||
@@ -66,6 +67,7 @@
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||
@@ -103,6 +105,7 @@
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||
@@ -143,6 +146,7 @@
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||
@@ -186,6 +190,7 @@
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||
@@ -232,6 +237,7 @@
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||
@@ -281,6 +287,7 @@
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
@ -1,10 +0,0 @@
|
||||
--- r/mysql_upgrade_ssl.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/mysql_upgrade_ssl.reject 2012-02-10 16:11:53.000000000 +0100
|
||||
@@ -31,6 +31,7 @@
|
||||
mysql.time_zone_transition OK
|
||||
mysql.time_zone_transition_type OK
|
||||
mysql.user OK
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
@ -1,18 +0,0 @@
|
||||
--- r/mysqlslap.result 2011-10-21 23:09:08.000000000 +0200
|
||||
+++ r/mysqlslap.reject 2012-02-10 16:12:26.000000000 +0100
|
||||
@@ -229,6 +229,7 @@
|
||||
information_schema
|
||||
mtr
|
||||
mysql
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
# 'bug58090' database should be present.
|
||||
@@ -238,6 +239,7 @@
|
||||
bug58090
|
||||
mtr
|
||||
mysql
|
||||
+pbxt
|
||||
performance_schema
|
||||
test
|
||||
DROP DATABASE bug58090;
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user