mirror of
https://github.com/MariaDB/server.git
synced 2025-03-23 23:48:41 +01:00
Initial commit,
copy of commit 86587affafe77ef555f7c3839839de44f0f203f3 Author: Tian Xia <tianx@fb.com> Date: Tue Oct 4 10:01:52 2016 -0700 Allow filtering of show commands through admission control
This commit is contained in:
commit
ebfc4e6ad0
822 changed files with 81367 additions and 0 deletions
storage/rocksdb
CMakeLists.txtREADMEevent_listener.ccevent_listener.hget_rocksdb_files.shha_rocksdb.ccha_rocksdb.hha_rocksdb_proto.hlogger.h
mysql-test/rocksdb
include
dup_key_update.inclocking_issues_case1_1.inclocking_issues_case1_2.inclocking_issues_case2.inclocking_issues_case3.inclocking_issues_case4.inclocking_issues_case5.inclocking_issues_case6.inclocking_issues_case7.incrocksdb_concurrent_delete.inc
my.cnfoptimize_table_check_sst.plr
1st.resultadd_index_inplace.resultadd_index_inplace_sstfilewriter.resultallow_no_pk_concurrent_insert.resultallow_no_primary_key.resultallow_no_primary_key_with_sk.resultallow_os_buffer.resultalter_table.resultanalyze_table.resultapply_changes_iter.resultautoinc_secondary.resultautoinc_vars.resultautoincrement.resultbloomfilter.resultbloomfilter2.resultbloomfilter3.resultbloomfilter4.resultbloomfilter_skip.resultbulk_load.resultcardinality.resultcheck_table.resultcheckpoint.resultchecksum_table.resultchecksum_table_live.resultcol_opt_default.resultcol_opt_not_null.resultcol_opt_null.resultcol_opt_unsigned.resultcol_opt_zerofill.resultcollation.resultcollation_exception.resultcompact_deletes.resultcompression_zstd.resultconcurrent_alter.resultcons_snapshot_read_committed.resultcons_snapshot_repeatable_read.resultcons_snapshot_serializable.resultcorrupted_data_reads_debug.resultcreate_table.resultdeadlock.resultdelete.resultdelete_before_lock.resultdelete_ignore.resultdelete_quick.resultdelete_with_keys.resultdescribe.resultdrop_database.resultdrop_index_inplace.resultdrop_table.resultdrop_table2.resultdrop_table3.resultdup_key_update.resultduplicate_table.resultfail_system_cf.resultforeign_key.resultgap_lock_issue254.resultgap_lock_raise_error.resultget_error_message.resulthandler_basic.resulthermitage.resulti_s_ddl.resultindex.resultindex_file_map.resultindex_key_block_size.resultindex_primary.resultindex_type_btree.resultindex_type_hash.resultinformation_schema.resultinnodb_i_s_tables_disabled.resultinsert.resultinsert_optimized_config.resultinsert_with_keys.resultissue100.resultissue100_delete.resultissue111.resultissue290.resultissue314.resultlevel_read_committed.resultlevel_read_uncommitted.result
108
storage/rocksdb/CMakeLists.txt
Normal file
108
storage/rocksdb/CMakeLists.txt
Normal file
|
@ -0,0 +1,108 @@
|
|||
# TODO: Copyrights
|
||||
|
||||
IF (NOT EXISTS "${CMAKE_SOURCE_DIR}/rocksdb/Makefile")
|
||||
MESSAGE(SEND_ERROR "Missing Makefile in rocksdb directory. Try \"git submodule update\".")
|
||||
ENDIF()
|
||||
|
||||
# get a list of rocksdb library source files
|
||||
# run with env -i to avoid passing variables
|
||||
EXECUTE_PROCESS(
|
||||
COMMAND env -i ${CMAKE_SOURCE_DIR}/storage/rocksdb/get_rocksdb_files.sh
|
||||
OUTPUT_VARIABLE SCRIPT_OUTPUT
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
# split the list into lines
|
||||
STRING(REGEX MATCHALL "[^\n]+" ROCKSDB_LIB_SOURCES ${SCRIPT_OUTPUT})
|
||||
|
||||
INCLUDE_DIRECTORIES(
|
||||
${CMAKE_SOURCE_DIR}/rocksdb
|
||||
${CMAKE_SOURCE_DIR}/rocksdb/include
|
||||
${CMAKE_SOURCE_DIR}/rocksdb/third-party/gtest-1.7.0/fused-src
|
||||
)
|
||||
|
||||
ADD_DEFINITIONS(-DROCKSDB_PLATFORM_POSIX -DROCKSDB_LIB_IO_POSIX -DOS_LINUX
|
||||
-DZLIB)
|
||||
|
||||
SET(ROCKSDB_SOURCES
|
||||
ha_rocksdb.cc ha_rocksdb.h ha_rocksdb_proto.h
|
||||
logger.h
|
||||
rdb_comparator.h
|
||||
rdb_datadic.cc rdb_datadic.h
|
||||
rdb_cf_options.cc rdb_cf_options.h
|
||||
rdb_cf_manager.cc rdb_cf_manager.h
|
||||
properties_collector.cc properties_collector.h
|
||||
event_listener.cc event_listener.h
|
||||
rdb_i_s.cc rdb_i_s.h
|
||||
rdb_index_merge.cc rdb_index_merge.h
|
||||
rdb_perf_context.cc rdb_perf_context.h
|
||||
rdb_mutex_wrapper.cc rdb_mutex_wrapper.h
|
||||
rdb_sst_info.cc rdb_sst_info.h
|
||||
rdb_utils.cc rdb_utils.h rdb_buff.h
|
||||
rdb_threads.cc rdb_threads.h
|
||||
${ROCKSDB_LIB_SOURCES}
|
||||
)
|
||||
|
||||
IF(WITH_FB_TSAN)
|
||||
SET(PIC_EXT "_pic")
|
||||
ELSE()
|
||||
SET(PIC_EXT "")
|
||||
ENDIF()
|
||||
|
||||
SET(rocksdb_static_libs )
|
||||
IF (NOT "$ENV{WITH_SNAPPY}" STREQUAL "")
|
||||
SET(rocksdb_static_libs ${rocksdb_static_libs}
|
||||
$ENV{WITH_SNAPPY}/lib/libsnappy${PIC_EXT}.a)
|
||||
ADD_DEFINITIONS(-DSNAPPY)
|
||||
ELSE()
|
||||
SET(rocksdb_static_libs ${rocksdb_static_libs} snappy)
|
||||
ENDIF()
|
||||
|
||||
IF (NOT "$ENV{WITH_LZ4}" STREQUAL "")
|
||||
SET(rocksdb_static_libs ${rocksdb_static_libs}
|
||||
$ENV{WITH_LZ4}/lib/liblz4${PIC_EXT}.a)
|
||||
ADD_DEFINITIONS(-DLZ4)
|
||||
ELSE()
|
||||
SET(rocksdb_static_libs ${rocksdb_static_libs} lz4)
|
||||
ENDIF()
|
||||
|
||||
IF (NOT "$ENV{WITH_BZ2}" STREQUAL "")
|
||||
SET(rocksdb_static_libs ${rocksdb_static_libs}
|
||||
$ENV{WITH_BZ2}/lib/libbz2${PIC_EXT}.a)
|
||||
ADD_DEFINITIONS(-DBZIP2)
|
||||
ELSE()
|
||||
SET(rocksdb_static_libs ${rocksdb_static_libs} bz2)
|
||||
ENDIF()
|
||||
|
||||
# link ZSTD only if instructed
|
||||
IF (NOT "$ENV{WITH_ZSTD}" STREQUAL "")
|
||||
SET(rocksdb_static_libs ${rocksdb_static_libs}
|
||||
$ENV{WITH_ZSTD}/lib/libzstd${PIC_EXT}.a)
|
||||
ADD_DEFINITIONS(-DZSTD)
|
||||
ENDIF()
|
||||
|
||||
SET(rocksdb_static_libs ${rocksdb_static_libs} ${ZLIB_LIBRARY} "-lrt")
|
||||
|
||||
MYSQL_ADD_PLUGIN(rocksdb_se ${ROCKSDB_SOURCES} STORAGE_ENGINE DEFAULT STATIC_ONLY
|
||||
LINK_LIBRARIES ${rocksdb_static_libs}
|
||||
)
|
||||
|
||||
IF(WITH_EMBEDDED_SERVER)
|
||||
ADD_SUBDIRECTORY(unittest)
|
||||
ENDIF()
|
||||
|
||||
IF (WITH_ROCKSDB_SE_STORAGE_ENGINE)
|
||||
# TODO: read this file list from src.mk:TOOL_SOURCES
|
||||
SET(ROCKSDB_TOOL_SOURCES
|
||||
${CMAKE_SOURCE_DIR}/rocksdb/tools/ldb_tool.cc
|
||||
${CMAKE_SOURCE_DIR}/rocksdb/tools/ldb_cmd.cc
|
||||
${CMAKE_SOURCE_DIR}/rocksdb/tools/sst_dump_tool.cc
|
||||
)
|
||||
MYSQL_ADD_EXECUTABLE(sst_dump ${CMAKE_SOURCE_DIR}/rocksdb/tools/sst_dump.cc ${ROCKSDB_TOOL_SOURCES})
|
||||
TARGET_LINK_LIBRARIES(sst_dump rocksdb_se)
|
||||
|
||||
MYSQL_ADD_EXECUTABLE(ldb ${CMAKE_SOURCE_DIR}/rocksdb/tools/ldb.cc ${ROCKSDB_TOOL_SOURCES})
|
||||
TARGET_LINK_LIBRARIES(ldb rocksdb_se)
|
||||
|
||||
MYSQL_ADD_EXECUTABLE(mysql_ldb ${CMAKE_SOURCE_DIR}/storage/rocksdb/tools/mysql_ldb.cc ${ROCKSDB_TOOL_SOURCES})
|
||||
TARGET_LINK_LIBRARIES(mysql_ldb rocksdb_se)
|
||||
ENDIF()
|
38
storage/rocksdb/README
Normal file
38
storage/rocksdb/README
Normal file
|
@ -0,0 +1,38 @@
|
|||
== Summary ==
|
||||
This directory contains RocksDB-based Storage Engine (RDBSE) for MySQL = "MyRocks".
|
||||
|
||||
== Resources ==
|
||||
See https://github.com/facebook/mysql-5.6/wiki/Getting-Started-with-MyRocks
|
||||
Facebook group: https://www.facebook.com/groups/mysqlonrocksdb/
|
||||
|
||||
== Coding Conventions ==
|
||||
The baseline for MyRocks coding conventions is the MySQL set, available at
|
||||
http://dev.mysql.com/doc/internals/en/coding-guidelines.html.
|
||||
|
||||
Several refinements:
|
||||
0. There is an umbrella C++ namespace named "myrocks" for all MyRocks code.
|
||||
1. We introduced "RDB" as the super-short abbreviation for "RocksDB". We will
|
||||
use it as a name prefix, with different capitalization (see below), to ease
|
||||
up code navigation with ctags and grep.
|
||||
N.B. For ease of matching, we'll keep the variables and functions dealing
|
||||
with sysvars as close as possible to the outside visible names of
|
||||
sysvars, which start with "rocksdb_" prefix, the outward storage
|
||||
engine name.
|
||||
2. The names for classes, interfaces, and C++ structures (which act as
|
||||
classes), start with prefix "Rdb_".
|
||||
NB: For historical reasons, we'll keep the "ha_<storage_engine_name>" class
|
||||
name for ha_rocksdb class, which is an exception to the rule.
|
||||
3. The names for global objects and functions start with prefix "rdb_".
|
||||
4. The names for macros and constants start with prefix "RDB_".
|
||||
5. Regular class member names start with "m_".
|
||||
6. Static class member names start with "s_".
|
||||
7. Given the 80 character per line limit, we'll not always use full English
|
||||
words in names, when a well known or easily recognizable abbreviation
|
||||
exists (like "tx" for "transaction" or "param" for "parameter" etc).
|
||||
8. When needing to disambiguate, we use different suffixes for that, like
|
||||
"_arg" for a function argument/parameter, "_arr" for a C style array, and
|
||||
"_vect" for a std::vector etc.
|
||||
|
||||
== Running Tests ==
|
||||
To run tests from rocksdb, rocksd_rpl or rocksdb_sys_vars packages, use the following parameters:
|
||||
--mysqld=--default-storage-engine=rocksdb --mysqld=--skip-innodb --mysqld=--default-tmp-storage-engine=MyISAM --mysqld=--rocksdb
|
80
storage/rocksdb/event_listener.cc
Normal file
80
storage/rocksdb/event_listener.cc
Normal file
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
Copyright (c) 2015, Facebook, Inc.
|
||||
|
||||
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; version 2 of the License.
|
||||
|
||||
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 */
|
||||
|
||||
/* The C++ file's header */
|
||||
#include "./event_listener.h"
|
||||
|
||||
/* C++ standard header files */
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
/* MySQL includes */
|
||||
#include <mysql/plugin.h>
|
||||
#include <my_global.h>
|
||||
|
||||
/* MyRocks includes */
|
||||
#include "./ha_rocksdb.h"
|
||||
#include "./properties_collector.h"
|
||||
#include "./rdb_datadic.h"
|
||||
|
||||
namespace myrocks {
|
||||
|
||||
static std::vector<Rdb_index_stats>
|
||||
extract_index_stats(
|
||||
const std::vector<std::string>& files,
|
||||
const rocksdb::TablePropertiesCollection& props
|
||||
) {
|
||||
std::vector<Rdb_index_stats> ret;
|
||||
for (auto fn : files) {
|
||||
auto it = props.find(fn);
|
||||
DBUG_ASSERT(it != props.end());
|
||||
std::vector<Rdb_index_stats> stats;
|
||||
Rdb_tbl_prop_coll::read_stats_from_tbl_props(it->second, &stats);
|
||||
ret.insert(ret.end(), stats.begin(), stats.end());
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void Rdb_event_listener::OnCompactionCompleted(
|
||||
rocksdb::DB *db,
|
||||
const rocksdb::CompactionJobInfo& ci
|
||||
) {
|
||||
DBUG_ASSERT(db != nullptr);
|
||||
DBUG_ASSERT(m_ddl_manager != nullptr);
|
||||
|
||||
if (ci.status.ok()) {
|
||||
m_ddl_manager->adjust_stats(
|
||||
extract_index_stats(ci.output_files, ci.table_properties),
|
||||
extract_index_stats(ci.input_files, ci.table_properties));
|
||||
}
|
||||
}
|
||||
|
||||
void Rdb_event_listener::OnFlushCompleted(
|
||||
rocksdb::DB* db,
|
||||
const rocksdb::FlushJobInfo& flush_job_info
|
||||
) {
|
||||
DBUG_ASSERT(db != nullptr);
|
||||
DBUG_ASSERT(m_ddl_manager != nullptr);
|
||||
|
||||
auto tbl_props = std::make_shared<const rocksdb::TableProperties>(
|
||||
flush_job_info.table_properties);
|
||||
|
||||
std::vector<Rdb_index_stats> stats;
|
||||
Rdb_tbl_prop_coll::read_stats_from_tbl_props(tbl_props, &stats);
|
||||
m_ddl_manager->adjust_stats(stats);
|
||||
}
|
||||
|
||||
} // namespace myrocks
|
40
storage/rocksdb/event_listener.h
Normal file
40
storage/rocksdb/event_listener.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
Copyright (c) 2015, Facebook, Inc.
|
||||
|
||||
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; version 2 of the License.
|
||||
|
||||
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 */
|
||||
#pragma once
|
||||
|
||||
#include "rocksdb/listener.h"
|
||||
|
||||
namespace myrocks {
|
||||
|
||||
class Rdb_ddl_manager;
|
||||
|
||||
class Rdb_event_listener : public rocksdb::EventListener
|
||||
{
|
||||
public:
|
||||
explicit Rdb_event_listener(Rdb_ddl_manager* ddl_manager) :
|
||||
m_ddl_manager(ddl_manager) {
|
||||
}
|
||||
|
||||
void OnCompactionCompleted(
|
||||
rocksdb::DB *db, const rocksdb::CompactionJobInfo& ci) override;
|
||||
void OnFlushCompleted(
|
||||
rocksdb::DB* db, const rocksdb::FlushJobInfo& flush_job_info) override;
|
||||
|
||||
private:
|
||||
Rdb_ddl_manager* m_ddl_manager;
|
||||
};
|
||||
|
||||
} // namespace myrocks
|
27
storage/rocksdb/get_rocksdb_files.sh
Executable file
27
storage/rocksdb/get_rocksdb_files.sh
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
MKFILE=`mktemp`
|
||||
# create and run a simple makefile
|
||||
# include rocksdb make file relative to the path of this script
|
||||
echo "include rocksdb/src.mk
|
||||
all:
|
||||
@echo \$(LIB_SOURCES)" > $MKFILE
|
||||
for f in `make --makefile $MKFILE`
|
||||
do
|
||||
echo ../../rocksdb/$f
|
||||
done
|
||||
rm $MKFILE
|
||||
|
||||
# create build_version.cc file. Only create one if it doesn't exists or if it is different
|
||||
# this is so that we don't rebuild mysqld every time
|
||||
bv=rocksdb/util/build_version.cc
|
||||
date=$(date +%F)
|
||||
git_sha=$(pushd rocksdb >/dev/null && git rev-parse HEAD 2>/dev/null && popd >/dev/null)
|
||||
if [ ! -f $bv ] || [ -z $git_sha ] || [ ! `grep $git_sha $bv` ]
|
||||
then
|
||||
echo "#include \"build_version.h\"
|
||||
const char* rocksdb_build_git_sha =
|
||||
\"rocksdb_build_git_sha:$git_sha\";
|
||||
const char* rocksdb_build_git_date =
|
||||
\"rocksdb_build_git_date:$date\";
|
||||
const char* rocksdb_build_compile_date = __DATE__;" > $bv
|
||||
fi
|
10699
storage/rocksdb/ha_rocksdb.cc
Normal file
10699
storage/rocksdb/ha_rocksdb.cc
Normal file
File diff suppressed because it is too large
Load diff
1054
storage/rocksdb/ha_rocksdb.h
Normal file
1054
storage/rocksdb/ha_rocksdb.h
Normal file
File diff suppressed because it is too large
Load diff
80
storage/rocksdb/ha_rocksdb_proto.h
Normal file
80
storage/rocksdb/ha_rocksdb_proto.h
Normal file
|
@ -0,0 +1,80 @@
|
|||
/*
|
||||
Copyright (c) 2012,2013 Monty Program Ab
|
||||
|
||||
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; version 2 of the License.
|
||||
|
||||
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 */
|
||||
#pragma once
|
||||
|
||||
/* C++ standard header files */
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
/* MySQL header files */
|
||||
#include "./sql_string.h"
|
||||
|
||||
/* RocksDB includes */
|
||||
#include "rocksdb/table.h"
|
||||
|
||||
namespace myrocks {
|
||||
|
||||
enum RDB_IO_ERROR_TYPE {
|
||||
RDB_IO_ERROR_TX_COMMIT,
|
||||
RDB_IO_ERROR_DICT_COMMIT,
|
||||
RDB_IO_ERROR_BG_THREAD
|
||||
};
|
||||
|
||||
void rdb_handle_io_error(rocksdb::Status status, RDB_IO_ERROR_TYPE err_type);
|
||||
|
||||
int rdb_normalize_tablename(const std::string& tablename, std::string* str)
|
||||
__attribute__((__nonnull__, __warn_unused_result__));
|
||||
|
||||
int rdb_split_normalized_tablename(const std::string& fullname, std::string *db,
|
||||
std::string *table = nullptr,
|
||||
std::string *partition = nullptr)
|
||||
__attribute__((__warn_unused_result__));
|
||||
|
||||
std::vector<std::string> rdb_get_open_table_names(void);
|
||||
|
||||
int rdb_get_table_perf_counters(const char *tablename,
|
||||
Rdb_perf_counters *counters)
|
||||
__attribute__((__nonnull__(2)));
|
||||
|
||||
void rdb_get_global_perf_counters(Rdb_perf_counters *counters)
|
||||
__attribute__((__nonnull__(1)));
|
||||
|
||||
void rdb_queue_save_stats_request();
|
||||
|
||||
/*
|
||||
Access to singleton objects.
|
||||
*/
|
||||
|
||||
rocksdb::DB *rdb_get_rocksdb_db();
|
||||
|
||||
class Rdb_cf_manager;
|
||||
Rdb_cf_manager& rdb_get_cf_manager();
|
||||
|
||||
rocksdb::BlockBasedTableOptions& rdb_get_table_options();
|
||||
|
||||
class Rdb_dict_manager;
|
||||
Rdb_dict_manager *rdb_get_dict_manager(void)
|
||||
__attribute__((__warn_unused_result__));
|
||||
|
||||
class Rdb_ddl_manager;
|
||||
Rdb_ddl_manager *rdb_get_ddl_manager(void)
|
||||
__attribute__((__warn_unused_result__));
|
||||
|
||||
class Rdb_binlog_manager;
|
||||
Rdb_binlog_manager *rdb_get_binlog_manager(void)
|
||||
__attribute__((__warn_unused_result__));
|
||||
|
||||
} // namespace myrocks
|
73
storage/rocksdb/logger.h
Normal file
73
storage/rocksdb/logger.h
Normal file
|
@ -0,0 +1,73 @@
|
|||
/*
|
||||
Copyright (c) 2015, Facebook, Inc.
|
||||
|
||||
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; version 2 of the License.
|
||||
|
||||
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 */
|
||||
#pragma once
|
||||
|
||||
#include <log.h>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
namespace myrocks {
|
||||
|
||||
class Rdb_logger : public rocksdb::Logger
|
||||
{
|
||||
public:
|
||||
void Logv(const rocksdb::InfoLogLevel log_level,
|
||||
const char* format,
|
||||
va_list ap) override
|
||||
{
|
||||
DBUG_ASSERT(format != nullptr);
|
||||
|
||||
enum loglevel mysql_log_level;
|
||||
|
||||
if (m_logger) {
|
||||
m_logger->Logv(log_level, format, ap);
|
||||
}
|
||||
|
||||
if (log_level < GetInfoLogLevel()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (log_level >= rocksdb::InfoLogLevel::ERROR_LEVEL) {
|
||||
mysql_log_level= ERROR_LEVEL;
|
||||
} else if (log_level >= rocksdb::InfoLogLevel::WARN_LEVEL) {
|
||||
mysql_log_level= WARNING_LEVEL;
|
||||
} else {
|
||||
mysql_log_level= INFORMATION_LEVEL;
|
||||
}
|
||||
|
||||
// log to MySQL
|
||||
std::string f("LibRocksDB:");
|
||||
f.append(format);
|
||||
error_log_print(mysql_log_level, f.c_str(), ap);
|
||||
}
|
||||
|
||||
void Logv(const char* format, va_list ap) override
|
||||
{
|
||||
DBUG_ASSERT(format != nullptr);
|
||||
// If no level is specified, it is by default at information level
|
||||
Logv(rocksdb::InfoLogLevel::INFO_LEVEL, format, ap);
|
||||
}
|
||||
|
||||
void SetRocksDBLogger(std::shared_ptr<rocksdb::Logger> logger)
|
||||
{
|
||||
m_logger = logger;
|
||||
}
|
||||
|
||||
private:
|
||||
std::shared_ptr<rocksdb::Logger> m_logger;
|
||||
};
|
||||
|
||||
} // namespace myrocks
|
|
@ -0,0 +1,69 @@
|
|||
let $max_table = 2;
|
||||
|
||||
--disable_query_log
|
||||
let $table = 1;
|
||||
while ($table <= $max_table) {
|
||||
let $max = 9;
|
||||
let $i = 2;
|
||||
while ($i <= $max) {
|
||||
let $insert = INSERT INTO t$table VALUES ($i, $i, $i);
|
||||
eval $insert;
|
||||
inc $i;
|
||||
}
|
||||
inc $table;
|
||||
}
|
||||
--enable_query_log
|
||||
|
||||
let $table = 1;
|
||||
while ($table <= $max_table) {
|
||||
let $i = 1;
|
||||
let $j = 9;
|
||||
while ($i <= $max) {
|
||||
|
||||
let $insert = INSERT INTO t$table VALUES ($i, $i, $i) ON DUPLICATE KEY UPDATE id2 = $j;
|
||||
eval $insert;
|
||||
|
||||
let $select = SELECT * FROM t$table WHERE id1 = $i;
|
||||
eval $select;
|
||||
|
||||
let $select = SELECT * FROM t$table FORCE INDEX (id3) WHERE id3 = $i;
|
||||
eval $select;
|
||||
|
||||
inc $j;
|
||||
|
||||
let $insert = INSERT INTO t$table VALUES ($i, $i, $i) ON DUPLICATE KEY UPDATE id2 = $j;
|
||||
eval $insert;
|
||||
|
||||
let $select = SELECT * FROM t$table WHERE id1 = $i;
|
||||
eval $select;
|
||||
|
||||
let $select = SELECT * FROM t$table FORCE INDEX (id3) WHERE id3 = $i;
|
||||
eval $select;
|
||||
|
||||
inc $j;
|
||||
|
||||
let $insert = INSERT INTO t$table VALUES ($i, $i, $i) ON DUPLICATE KEY UPDATE id2 = $j;
|
||||
eval $insert;
|
||||
|
||||
let $select = SELECT * FROM t$table WHERE id1 = $i;
|
||||
eval $select;
|
||||
|
||||
let $select = SELECT * FROM t$table FORCE INDEX (id3) WHERE id3 = $i;
|
||||
eval $select;
|
||||
|
||||
inc $j;
|
||||
|
||||
inc $i;
|
||||
inc $i;
|
||||
inc $i;
|
||||
inc $i;
|
||||
}
|
||||
|
||||
let $select = SELECT * FROM t$table;
|
||||
eval $select;
|
||||
|
||||
let $select = SELECT * FROM t$table FORCE INDEX (id3);
|
||||
eval $select;
|
||||
|
||||
inc $table;
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
#
|
||||
# Check concurrent locking issues:
|
||||
# Locking rows that do not exist when using all primary key columns in a
|
||||
# WHERE clause
|
||||
#
|
||||
# To call this, set $isolation_level and call this file
|
||||
#
|
||||
# let $isolation_level = REPEATABLE READ;
|
||||
# --source suite/rocksdb/include/locking_issues_case1_1.inc
|
||||
#
|
||||
|
||||
--echo
|
||||
--echo -----------------------------------------------------------------------
|
||||
--echo - Locking issues case 1.1:
|
||||
--echo - Locking rows that do not exist when using all primary key columns in
|
||||
--echo - a WHERE clause
|
||||
--echo - using $isolation_level transaction isolation level
|
||||
--echo -----------------------------------------------------------------------
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t0;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t0(id1 INT, id2 INT, value INT, PRIMARY KEY(id1, id2));
|
||||
INSERT INTO t0 VALUES (1,1,0), (3,3,0), (4,4,0), (6,6,0);
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
SELECT * FROM t0 WHERE id1=1 AND id2=5 FOR UPDATE;
|
||||
|
||||
connection con2;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
INSERT INTO t0 VALUES (1,5,0);
|
||||
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
SELECT * FROM t0 WHERE id1=1 AND id2=5 FOR UPDATE;
|
||||
|
||||
connection con1;
|
||||
COMMIT;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
|
||||
DROP TABLE t0;
|
|
@ -0,0 +1,48 @@
|
|||
#
|
||||
# Check concurrent locking issues:
|
||||
# Locking rows that do not exist without using all primary key columns in a
|
||||
# WHERE clause
|
||||
#
|
||||
# To call this, set $isolation_level and call this file
|
||||
#
|
||||
# let $isolation_level = REPEATABLE READ;
|
||||
# --source suite/rocksdb/include/locking_issues_case1_2.inc
|
||||
#
|
||||
|
||||
--echo
|
||||
--echo -----------------------------------------------------------------------
|
||||
--echo - Locking issues case 1.2:
|
||||
--echo - Locking rows that do not exist without using all primary key
|
||||
--echo - columns in a WHERE clause
|
||||
--echo - using $isolation_level transaction isolation level
|
||||
--echo -----------------------------------------------------------------------
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t0;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t0(id1 INT, id2 INT, value INT, PRIMARY KEY(id1, id2));
|
||||
INSERT INTO t0 VALUES (1,1,0), (3,3,0), (4,4,0), (6,6,0);
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
SELECT * FROM t0 WHERE id1=1 FOR UPDATE;
|
||||
|
||||
connection con2;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
SELECT * FROM t0 WHERE id1=1 AND id2=4 FOR UPDATE;
|
||||
INSERT INTO t0 VALUES (1,5,0);
|
||||
|
||||
connection con1;
|
||||
COMMIT;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
|
||||
DROP TABLE t0;
|
|
@ -0,0 +1,97 @@
|
|||
#
|
||||
# Check concurrent locking issues:
|
||||
# Rows that are scanned but do not match the WHERE clause are not locked.
|
||||
#
|
||||
# To call this, set $isolation_level and call this file
|
||||
# If you want to enable rocksdb_lock_scanned_rows set $lock_scanned_rows=1
|
||||
#
|
||||
# let $isolation_level = REPEATABLE READ;
|
||||
# let $lock_scanned_rows = 1 (optional)
|
||||
# --source suite/rocksdb/include/locking_issues_case2.inc
|
||||
#
|
||||
|
||||
--echo
|
||||
--echo -----------------------------------------------------------------------
|
||||
--echo - Locking issues case 2:
|
||||
--echo - Rows that are scanned but do not match the WHERE are not locked
|
||||
--echo - using $isolation_level transaction isolation level unless
|
||||
--echo - rocksdb_lock_scanned_rows is on
|
||||
--echo -----------------------------------------------------------------------
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t0;
|
||||
--enable_warnings
|
||||
|
||||
SELECT @@global.rocksdb_lock_scanned_rows;
|
||||
|
||||
if ($lock_scanned_rows)
|
||||
{
|
||||
let $original_val=query_get_value(
|
||||
select @@global.rocksdb_lock_scanned_rows as val, val, 1);
|
||||
SET GLOBAL rocksdb_lock_scanned_rows=ON;
|
||||
}
|
||||
|
||||
CREATE TABLE t0(id INT PRIMARY KEY, value INT);
|
||||
INSERT INTO t0 VALUES (1,0), (2,1), (3,0), (4,0), (5,1);
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
|
||||
connection con2;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
|
||||
if ($lock_scanned_rows == 1)
|
||||
{
|
||||
connection con1;
|
||||
# This is expected to leave locks on all the rows in t0
|
||||
SELECT * FROM t0 WHERE value > 0 FOR UPDATE;
|
||||
|
||||
connection con2;
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
UPDATE t0 SET VALUE=10 WHERE id=1;
|
||||
}
|
||||
|
||||
if ($lock_scanned_rows == 0)
|
||||
{
|
||||
connection con1;
|
||||
# This is expected to release locks on rows with value=0
|
||||
SELECT * FROM t0 WHERE value > 0 FOR UPDATE;
|
||||
|
||||
connection con2;
|
||||
# This should succeed as con1 should have released the lock on row (1,0)
|
||||
UPDATE t0 SET VALUE=10 WHERE id=1;
|
||||
|
||||
# This should fail because lock on row (5,1) is still held.
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
UPDATE t0 SET VALUE=10 WHERE id=5;
|
||||
|
||||
connection con1;
|
||||
# Do another operation
|
||||
UPDATE t0 SET value=100 WHERE id in (4,5) and value>0;
|
||||
|
||||
connection con2;
|
||||
# Check that row (4,0) is still not locked
|
||||
SELECT * FROM t0 WHERE id=4 FOR UPDATE;
|
||||
|
||||
COMMIT;
|
||||
SELECT * FROM t0;
|
||||
}
|
||||
|
||||
connection con1;
|
||||
COMMIT;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
|
||||
DROP TABLE t0;
|
||||
|
||||
if ($lock_scanned_rows == 1)
|
||||
{
|
||||
eval SET GLOBAL rocksdb_lock_scanned_rows=$original_val;
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
#
|
||||
# Check concurrent locking issues:
|
||||
# After creating a snapshot, other clients updating rows
|
||||
#
|
||||
# To call this, set $isolation_level and call this file
|
||||
#
|
||||
# let $isolation_level = REPEATABLE READ;
|
||||
# --source suite/rocksdb/include/locking_issues_case3.inc
|
||||
#
|
||||
|
||||
--echo
|
||||
--echo -----------------------------------------------------------------------
|
||||
--echo - Locking issues case 3:
|
||||
--echo - After creating a snapshot, other clients updating rows
|
||||
--echo - using $isolation_level transaction isolation level
|
||||
--echo -----------------------------------------------------------------------
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t0;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t0(id INT AUTO_INCREMENT PRIMARY KEY, value INT);
|
||||
|
||||
# Insert 200,000 rows, breaking it up into inserts of 1000 rows at a time
|
||||
--echo Inserting 200,000 rows
|
||||
--disable_query_log
|
||||
SET @save_rocksdb_bulk_load=@@rocksdb_bulk_load;
|
||||
SET rocksdb_bulk_load=1;
|
||||
SET @save_rocksdb_write_disable_wal=@@rocksdb_write_disable_wal;
|
||||
SET GLOBAL rocksdb_write_disable_wal=1;
|
||||
let $i = 1;
|
||||
while ($i <= 200) {
|
||||
eval BEGIN;
|
||||
let $j = 1;
|
||||
while ($j <= 100) {
|
||||
eval INSERT INTO t0(value) VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0);
|
||||
inc $j;
|
||||
}
|
||||
eval COMMIT;
|
||||
inc $i;
|
||||
}
|
||||
SET rocksdb_bulk_load=@save_rocksdb_bulk_load;
|
||||
SET GLOBAL rocksdb_write_disable_wal=@save_rocksdb_write_disable_wal;
|
||||
--enable_query_log
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
let $ID = `SELECT connection_id()`;
|
||||
send SELECT * FROM t0 WHERE value > 0 FOR UPDATE;
|
||||
|
||||
connection con2;
|
||||
let $wait_condition = SELECT 1 FROM information_schema.processlist
|
||||
WHERE id = $ID AND state = "Sending data";
|
||||
--source include/wait_condition.inc
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
UPDATE t0 SET VALUE=VALUE+1 WHERE id=190000;
|
||||
|
||||
connection con1;
|
||||
--error ER_LOCK_DEADLOCK
|
||||
reap;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
|
||||
DROP TABLE t0;
|
|
@ -0,0 +1,68 @@
|
|||
#
|
||||
# Check concurrent locking issues:
|
||||
# Phantom rows
|
||||
#
|
||||
# To call this, set $isolation_level and call this file
|
||||
#
|
||||
# let $isolation_level = REPEATABLE READ;
|
||||
# --source suite/rocksdb/include/locking_issues_case4.inc
|
||||
#
|
||||
|
||||
--echo
|
||||
--echo -----------------------------------------------------------------------
|
||||
--echo - Locking issues case 4:
|
||||
--echo - Phantom rows
|
||||
--echo - using $isolation_level transaction isolation level
|
||||
--echo -----------------------------------------------------------------------
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t0;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t0(id INT AUTO_INCREMENT PRIMARY KEY, value INT);
|
||||
|
||||
# Insert 200,000 rows, breaking it up into inserts of 1000 rows at a time
|
||||
--echo Inserting 200,000 rows
|
||||
--disable_query_log
|
||||
SET @save_rocksdb_bulk_load=@@rocksdb_bulk_load;
|
||||
SET rocksdb_bulk_load=1;
|
||||
SET @save_rocksdb_write_disable_wal=@@rocksdb_write_disable_wal;
|
||||
SET GLOBAL rocksdb_write_disable_wal=1;
|
||||
let $i = 1;
|
||||
while ($i <= 200) {
|
||||
eval BEGIN;
|
||||
let $j = 1;
|
||||
while ($j <= 100) {
|
||||
eval INSERT INTO t0(value) VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0);
|
||||
inc $j;
|
||||
}
|
||||
eval COMMIT;
|
||||
inc $i;
|
||||
}
|
||||
SET rocksdb_bulk_load=@save_rocksdb_bulk_load;
|
||||
SET GLOBAL rocksdb_write_disable_wal=@save_rocksdb_write_disable_wal;
|
||||
--enable_query_log
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
let $ID = `SELECT connection_id()`;
|
||||
send SELECT * FROM t0 WHERE value > 0 FOR UPDATE;
|
||||
|
||||
connection con2;
|
||||
let $wait_condition = SELECT 1 FROM information_schema.processlist
|
||||
WHERE id = $ID AND state = "Sending data";
|
||||
--source include/wait_condition.inc
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
INSERT INTO t0 VALUES(200001,1), (-1,1);
|
||||
|
||||
connection con1;
|
||||
reap;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
|
||||
DROP TABLE t0;
|
|
@ -0,0 +1,75 @@
|
|||
#
|
||||
# Check concurrent locking issues:
|
||||
# Deleting primary key
|
||||
#
|
||||
# To call this, set $isolation_level and call this file
|
||||
#
|
||||
# let $isolation_level = REPEATABLE READ;
|
||||
# --source suite/rocksdb/include/locking_issues_case5.inc
|
||||
#
|
||||
|
||||
--echo
|
||||
--echo -----------------------------------------------------------------------
|
||||
--echo - Locking issues case 5:
|
||||
--echo - Deleting primary key
|
||||
--echo - using $isolation_level transaction isolation level
|
||||
--echo -----------------------------------------------------------------------
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t0;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t0(id INT AUTO_INCREMENT PRIMARY KEY, value INT);
|
||||
|
||||
# Insert 200,000 rows, breaking it up into inserts of 1000 rows at a time
|
||||
--echo Inserting 200,000 rows
|
||||
--disable_query_log
|
||||
SET @save_rocksdb_bulk_load=@@rocksdb_bulk_load;
|
||||
SET rocksdb_bulk_load=1;
|
||||
SET @save_rocksdb_write_disable_wal=@@rocksdb_write_disable_wal;
|
||||
SET GLOBAL rocksdb_write_disable_wal=1;
|
||||
let $i = 1;
|
||||
while ($i <= 200) {
|
||||
eval BEGIN;
|
||||
let $j = 1;
|
||||
while ($j <= 100) {
|
||||
eval INSERT INTO t0(value) VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0);
|
||||
inc $j;
|
||||
}
|
||||
eval COMMIT;
|
||||
inc $i;
|
||||
}
|
||||
SET rocksdb_bulk_load=@save_rocksdb_bulk_load;
|
||||
SET GLOBAL rocksdb_write_disable_wal=@save_rocksdb_write_disable_wal;
|
||||
--enable_query_log
|
||||
|
||||
UPDATE t0 SET value=100 WHERE id=190000;
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
let $ID = `SELECT connection_id()`;
|
||||
send SELECT * FROM t0 WHERE value > 0 FOR UPDATE;
|
||||
|
||||
connection con2;
|
||||
let $wait_condition = SELECT 1 FROM information_schema.processlist
|
||||
WHERE id = $ID AND state = "Sending data";
|
||||
--source include/wait_condition.inc
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
DELETE FROM t0 WHERE id=190000;
|
||||
COMMIT;
|
||||
|
||||
connection con1;
|
||||
--error ER_LOCK_DEADLOCK
|
||||
reap;
|
||||
COMMIT;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
|
||||
DROP TABLE t0;
|
|
@ -0,0 +1,75 @@
|
|||
#
|
||||
# Check concurrent locking issues:
|
||||
# Changing primary key
|
||||
#
|
||||
# To call this, set $isolation_level and call this file
|
||||
#
|
||||
# let $isolation_level = REPEATABLE READ;
|
||||
# --source suite/rocksdb/include/locking_issues_case6.inc
|
||||
#
|
||||
|
||||
--echo
|
||||
--echo -----------------------------------------------------------------------
|
||||
--echo - Locking issues case 6:
|
||||
--echo - Changing primary key
|
||||
--echo - using $isolation_level transaction isolation level
|
||||
--echo -----------------------------------------------------------------------
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t0;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE t0(id INT AUTO_INCREMENT PRIMARY KEY, value INT);
|
||||
|
||||
# Insert 200,000 rows, breaking it up into inserts of 1000 rows at a time
|
||||
--echo Inserting 200,000 rows
|
||||
--disable_query_log
|
||||
SET @save_rocksdb_bulk_load=@@rocksdb_bulk_load;
|
||||
SET rocksdb_bulk_load=1;
|
||||
SET @save_rocksdb_write_disable_wal=@@rocksdb_write_disable_wal;
|
||||
SET GLOBAL rocksdb_write_disable_wal=1;
|
||||
let $i = 1;
|
||||
while ($i <= 200) {
|
||||
eval BEGIN;
|
||||
let $j = 1;
|
||||
while ($j <= 100) {
|
||||
eval INSERT INTO t0(value) VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0);
|
||||
inc $j;
|
||||
}
|
||||
eval COMMIT;
|
||||
inc $i;
|
||||
}
|
||||
SET rocksdb_bulk_load=@save_rocksdb_bulk_load;
|
||||
SET GLOBAL rocksdb_write_disable_wal=@save_rocksdb_write_disable_wal;
|
||||
--enable_query_log
|
||||
|
||||
UPDATE t0 SET value=100 WHERE id=190000;
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
let $ID = `SELECT connection_id()`;
|
||||
send SELECT * FROM t0 WHERE value > 0 FOR UPDATE;
|
||||
|
||||
connection con2;
|
||||
let $wait_condition = SELECT 1 FROM information_schema.processlist
|
||||
WHERE id = $ID AND state = "Sending data";
|
||||
--source include/wait_condition.inc
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
UPDATE t0 SET id=200001 WHERE id=190000;
|
||||
COMMIT;
|
||||
|
||||
connection con1;
|
||||
--error ER_LOCK_DEADLOCK
|
||||
reap;
|
||||
COMMIT;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
|
||||
DROP TABLE t0;
|
|
@ -0,0 +1,89 @@
|
|||
#
|
||||
# Check concurrent locking issues:
|
||||
# Rows scanned but are not in the updated table should be locked when
|
||||
# rocksdb_lock_scanned_rows is on but not locked otherwise.
|
||||
#
|
||||
# To call this, set $isolation_level and $lock_scanned_rows and call this file
|
||||
#
|
||||
# let $isolation_level = REPEATABLE READ;
|
||||
# let $lock_scanned_rows = 0 (or 1)
|
||||
# --source suite/rocksdb/include/locking_issues_case7.inc
|
||||
#
|
||||
|
||||
--echo
|
||||
--echo -----------------------------------------------------------------------
|
||||
--echo - Locking issues case 7:
|
||||
--echo - Rows that are scanned as part of a query but not in the table being
|
||||
--echo - updated should not be locked unless rocksdb_lock_scanned_rows is on
|
||||
--echo -----------------------------------------------------------------------
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
SELECT @@global.rocksdb_lock_scanned_rows;
|
||||
|
||||
if ($lock_scanned_rows)
|
||||
{
|
||||
let $original_val=query_get_value(
|
||||
select @@global.rocksdb_lock_scanned_rows as val, val, 1);
|
||||
SET GLOBAL rocksdb_lock_scanned_rows=ON;
|
||||
}
|
||||
|
||||
CREATE TABLE t1(id INT PRIMARY KEY, value INT);
|
||||
CREATE TABLE t2(id INT PRIMARY KEY, value INT);
|
||||
INSERT INTO t1 VALUES (1,1), (2,2), (3,3);
|
||||
INSERT INTO t2 VALUES (1,1), (2,2), (3,3), (4,4), (5,5);
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con1;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
|
||||
connection con2;
|
||||
eval SET SESSION TRANSACTION ISOLATION LEVEL $isolation_level;
|
||||
BEGIN;
|
||||
|
||||
--echo lock_scanned_rows is $lock_scanned_rows
|
||||
if ($lock_scanned_rows == 1)
|
||||
{
|
||||
connection con1;
|
||||
# This is expected to leave a lock id=3 in t2;
|
||||
UPDATE t1 JOIN t2 ON t1.id = t2.id SET t1.value=t1.value+100 WHERE t2.id=3;
|
||||
|
||||
connection con2;
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
UPDATE t2 SET value=value+100 WHERE id=3;
|
||||
|
||||
# No other row in t2 should be locked;
|
||||
UPDATE t2 SET value=value+100 WHERE id IN (1,2,4,5);
|
||||
SELECT * FROM t2;
|
||||
}
|
||||
|
||||
if ($lock_scanned_rows == 0)
|
||||
{
|
||||
connection con1;
|
||||
# This should leave no locks on any row in t2;
|
||||
UPDATE t1 JOIN t2 ON t1.id = t2.id SET t1.value=t1.value+100 WHERE t2.id=3;
|
||||
|
||||
connection con2;
|
||||
UPDATE t2 SET value=value+100;
|
||||
SELECT * FROM t2;
|
||||
}
|
||||
|
||||
connection con1;
|
||||
COMMIT;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
|
||||
if ($lock_scanned_rows == 1)
|
||||
{
|
||||
eval SET GLOBAL rocksdb_lock_scanned_rows=$original_val;
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
# Usage:
|
||||
#
|
||||
# let $order = ASC; # or DESC
|
||||
# let $comment = "rev:cf2"; # or ""
|
||||
# --source suite/rocksdb/include/rocksdb_concurrent_delete.inc
|
||||
|
||||
let $first_row = -1; # Error this should never happen
|
||||
if ($order == 'ASC')
|
||||
{
|
||||
let $first_row = 1;
|
||||
}
|
||||
if ($order == 'DESC')
|
||||
{
|
||||
let $first_row = 3;
|
||||
}
|
||||
|
||||
connect (con, localhost, root,,);
|
||||
connection default;
|
||||
|
||||
--disable_warnings
|
||||
SET debug_sync='RESET';
|
||||
DROP TABLE IF EXISTS t1;
|
||||
--enable_warnings
|
||||
|
||||
eval CREATE TABLE t1 (pk INT PRIMARY KEY COMMENT $comment, a INT);
|
||||
INSERT INTO t1 VALUES(1,1), (2,2), (3,3);
|
||||
|
||||
# This will cause the SELECT to block after finding the first row, but
|
||||
# before locking and reading it.
|
||||
connection con;
|
||||
SET debug_sync='rocksdb_concurrent_delete SIGNAL parked WAIT_FOR go';
|
||||
send_eval SELECT * FROM t1 order by t1.pk $order FOR UPDATE;
|
||||
|
||||
# While that connection is waiting, delete the first row (the one con
|
||||
# is about to lock and read
|
||||
connection default;
|
||||
SET debug_sync='now WAIT_FOR parked';
|
||||
eval DELETE FROM t1 WHERE pk = $first_row;
|
||||
|
||||
# Signal the waiting select to continue
|
||||
SET debug_sync='now SIGNAL go';
|
||||
|
||||
# Now get the results from the select. The first entry (1,1) (or (3,3) when
|
||||
# using reverse ordering) should be missing. Prior to the fix the SELECT
|
||||
# would have returned: "1815: Internal error: NotFound:"
|
||||
connection con;
|
||||
reap;
|
||||
|
||||
# Cleanup
|
||||
connection default;
|
||||
disconnect con;
|
||||
set debug_sync='RESET';
|
||||
drop table t1;
|
7
storage/rocksdb/mysql-test/rocksdb/my.cnf
Normal file
7
storage/rocksdb/mysql-test/rocksdb/my.cnf
Normal file
|
@ -0,0 +1,7 @@
|
|||
!include include/default_my.cnf
|
||||
|
||||
[server]
|
||||
sql-mode=NO_ENGINE_SUBSTITUTION
|
||||
explicit-defaults-for-timestamp=1
|
||||
rocksdb_lock_wait_timeout=1
|
||||
rocksdb_strict_collation_check=0
|
|
@ -0,0 +1,22 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
die unless($ARGV[0]);
|
||||
open(my $f, "<", $ARGV[0]) or die $!;
|
||||
my @sst;
|
||||
while(my $l = readline($f)) {
|
||||
chomp($l);
|
||||
push @sst, int($l);
|
||||
}
|
||||
|
||||
for(my $i= 0; $i < $#sst; $i++) {
|
||||
printf("checking sst file reduction on optimize table from %d to %d..\n", $i, $i+1);
|
||||
|
||||
if($sst[$i] - 1000 < $sst[$i+1]) {
|
||||
printf("sst file reduction was not enough. %d->%d (minimum 1000kb)\n", $sst[$i], $sst[$i+1]);
|
||||
die;
|
||||
}else {
|
||||
print "ok.\n";
|
||||
}
|
||||
}
|
||||
exit(0);
|
||||
|
22
storage/rocksdb/mysql-test/rocksdb/r/1st.result
Normal file
22
storage/rocksdb/mysql-test/rocksdb/r/1st.result
Normal file
|
@ -0,0 +1,22 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY DEFAULT '0', a INT(11), b CHAR(8)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL DEFAULT '0',
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
pk int(11) NO PRI 0
|
||||
a int(11) YES NULL
|
||||
b char(8) YES NULL
|
||||
INSERT INTO t1 VALUES (1, 1,'a');
|
||||
INSERT INTO t1 (a,b) VALUES (2,'b');
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
2 b
|
||||
DROP TABLE t1;
|
378
storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace.result
Normal file
378
storage/rocksdb/mysql-test/rocksdb/r/add_index_inplace.result
Normal file
|
@ -0,0 +1,378 @@
|
|||
drop table if exists t1;
|
||||
CREATE TABLE t1 (a INT, b INT, KEY ka(a), KEY kab(a,b)) ENGINE=RocksDB;
|
||||
INSERT INTO t1 (a, b) VALUES (1, 5);
|
||||
INSERT INTO t1 (a, b) VALUES (2, 6);
|
||||
INSERT INTO t1 (a, b) VALUES (3, 7);
|
||||
ALTER TABLE t1 ADD INDEX kb(b), ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
KEY `ka` (`a`),
|
||||
KEY `kab` (`a`,`b`),
|
||||
KEY `kb` (`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
SELECT * FROM t1 FORCE INDEX(kb) WHERE b > 5;
|
||||
a b
|
||||
2 6
|
||||
3 7
|
||||
SELECT * FROM t1 FORCE INDEX(kab) WHERE a > 2;
|
||||
a b
|
||||
3 7
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b INT, KEY ka(a), KEY kab(a,b)) ENGINE=RocksDB;
|
||||
INSERT INTO t1 (a, b) VALUES (1, 5);
|
||||
INSERT INTO t1 (a, b) VALUES (2, 6);
|
||||
INSERT INTO t1 (a, b) VALUES (3, 7);
|
||||
ALTER TABLE t1 ADD INDEX kb(b), DROP INDEX ka, ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
KEY `kab` (`a`,`b`),
|
||||
KEY `kb` (`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
SELECT * FROM t1 FORCE INDEX(kb) WHERE b > 5;
|
||||
a b
|
||||
2 6
|
||||
3 7
|
||||
SELECT * FROM t1 FORCE INDEX(kab) WHERE a > 2;
|
||||
a b
|
||||
3 7
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b INT, KEY ka(a), KEY kab(a,b)) ENGINE=RocksDB;
|
||||
INSERT INTO t1 (a, b) VALUES (1, 5);
|
||||
INSERT INTO t1 (a, b) VALUES (2, 6);
|
||||
INSERT INTO t1 (a, b) VALUES (3, 7);
|
||||
ALTER TABLE t1 DROP INDEX ka, DROP INDEX kab, ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1 ADD INDEX kb(b), ADD INDEX kab(a,b), ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
KEY `kb` (`b`),
|
||||
KEY `kab` (`a`,`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
SELECT * FROM t1 FORCE INDEX(kb) WHERE b > 5;
|
||||
a b
|
||||
2 6
|
||||
3 7
|
||||
SELECT * FROM t1 FORCE INDEX(kab) WHERE a > 2;
|
||||
a b
|
||||
3 7
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b INT, KEY ka(a), KEY kab(a,b)) ENGINE=RocksDB;
|
||||
INSERT INTO t1 (a, b) VALUES (1, 5);
|
||||
INSERT INTO t1 (a, b) VALUES (2, 6);
|
||||
INSERT INTO t1 (a, b) VALUES (3, 7);
|
||||
ALTER TABLE t1 ADD INDEX kb(b), DROP INDEX ka, ADD INDEX kba(b,a), DROP INDEX kab, ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
KEY `kb` (`b`),
|
||||
KEY `kba` (`b`,`a`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
SELECT * FROM t1 FORCE INDEX(kb) WHERE b > 5;
|
||||
a b
|
||||
2 6
|
||||
3 7
|
||||
SELECT * FROM t1 FORCE INDEX(kba) WHERE a > 2;
|
||||
a b
|
||||
3 7
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b INT, KEY ka(a), KEY kab(a,b)) ENGINE=RocksDB;
|
||||
ALTER TABLE t1 DROP INDEX ka, ADD INDEX ka(b), ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
KEY `kab` (`a`,`b`),
|
||||
KEY `ka` (`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
SELECT * FROM t1 FORCE INDEX(ka) WHERE b > 5;
|
||||
a b
|
||||
SELECT * FROM t1 FORCE INDEX(kab) WHERE a > 2;
|
||||
a b
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (pk CHAR(8) PRIMARY KEY, a VARCHAR(11), b INT UNSIGNED) ENGINE=rocksdb charset utf8 collate utf8_bin;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` char(8) COLLATE utf8_bin NOT NULL,
|
||||
`a` varchar(11) COLLATE utf8_bin DEFAULT NULL,
|
||||
`b` int(10) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
pk char(8) NO PRI NULL
|
||||
a varchar(11) YES NULL
|
||||
b int(10) unsigned YES NULL
|
||||
INSERT INTO t1 VALUES ('aaa', '1111', 1);
|
||||
INSERT INTO t1 VALUES ('bbb', '2222', 2);
|
||||
INSERT INTO t1 VALUES ('ccc', '3333', 3);
|
||||
ALTER TABLE t1 ADD INDEX kab(a,b), ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` char(8) COLLATE utf8_bin NOT NULL,
|
||||
`a` varchar(11) COLLATE utf8_bin DEFAULT NULL,
|
||||
`b` int(10) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`),
|
||||
KEY `kab` (`a`,`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
SELECT * FROM t1 FORCE INDEX(kab) WHERE a > '2' AND b < 3;
|
||||
pk a b
|
||||
bbb 2222 2
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (pk CHAR(8) PRIMARY KEY, a VARCHAR(11), b INT UNSIGNED) ENGINE=rocksdb charset utf8 collate utf8_bin;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` char(8) COLLATE utf8_bin NOT NULL,
|
||||
`a` varchar(11) COLLATE utf8_bin DEFAULT NULL,
|
||||
`b` int(10) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
pk char(8) NO PRI NULL
|
||||
a varchar(11) YES NULL
|
||||
b int(10) unsigned YES NULL
|
||||
INSERT INTO t1 VALUES ('aaa', '1111', 1);
|
||||
INSERT INTO t1 VALUES ('bbb', '2222', 2);
|
||||
INSERT INTO t1 VALUES ('ccc', '3333', 3);
|
||||
ALTER TABLE t1 ADD INDEX kab(a,b), ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1 ADD INDEX ka(a), DROP INDEX kab, ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` char(8) COLLATE utf8_bin NOT NULL,
|
||||
`a` varchar(11) COLLATE utf8_bin DEFAULT NULL,
|
||||
`b` int(10) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`),
|
||||
KEY `ka` (`a`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
SELECT * FROM t1 FORCE INDEX(ka) WHERE a > '2' AND b < 3;
|
||||
pk a b
|
||||
bbb 2222 2
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (pk CHAR(8) PRIMARY KEY, a VARCHAR(11), b INT UNSIGNED) ENGINE=rocksdb charset utf8 collate utf8_bin;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` char(8) COLLATE utf8_bin NOT NULL,
|
||||
`a` varchar(11) COLLATE utf8_bin DEFAULT NULL,
|
||||
`b` int(10) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
pk char(8) NO PRI NULL
|
||||
a varchar(11) YES NULL
|
||||
b int(10) unsigned YES NULL
|
||||
INSERT INTO t1 VALUES ('aaa', '1111', 1);
|
||||
INSERT INTO t1 VALUES ('bbb', '2222', 2);
|
||||
INSERT INTO t1 VALUES ('ccc', '3333', 3);
|
||||
ALTER TABLE t1 ADD INDEX kab(a,b), ADD INDEX ka(a), ADD INDEX kb(b), ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1 DROP INDEX ka, DROP INDEX kb, ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` char(8) COLLATE utf8_bin NOT NULL,
|
||||
`a` varchar(11) COLLATE utf8_bin DEFAULT NULL,
|
||||
`b` int(10) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`),
|
||||
KEY `kab` (`a`,`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
SELECT * FROM t1 FORCE INDEX(kab) WHERE a > '2' AND b < 3;
|
||||
pk a b
|
||||
bbb 2222 2
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b INT, KEY ka(a), KEY kab(a,b)) ENGINE=RocksDB;
|
||||
INSERT INTO t1 (a, b) VALUES (1, 5);
|
||||
INSERT INTO t1 (a, b) VALUES (2, 6);
|
||||
INSERT INTO t1 (a, b) VALUES (3, 7);
|
||||
CREATE INDEX kb on t1 (b);
|
||||
CREATE INDEX kba on t1 (b,a);
|
||||
DROP INDEX ka on t1;
|
||||
DROP INDEX kab on t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
KEY `kb` (`b`),
|
||||
KEY `kba` (`b`,`a`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
SELECT * FROM t1 FORCE INDEX(kb) WHERE b > 5;
|
||||
a b
|
||||
2 6
|
||||
3 7
|
||||
SELECT * FROM t1 FORCE INDEX(kba) WHERE a > 2;
|
||||
a b
|
||||
3 7
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (i INT, j INT, k INT, PRIMARY KEY (i), KEY(j)) ENGINE = ROCKSDB PARTITION BY KEY(i) PARTITIONS 4;
|
||||
ALTER TABLE t1 ADD INDEX kij(i,j), ALGORITHM=INPLACE;
|
||||
DROP INDEX kij ON t1;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`i` int(11) NOT NULL DEFAULT '0',
|
||||
`j` int(11) DEFAULT NULL,
|
||||
`k` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`i`),
|
||||
KEY `j` (`j`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY KEY (i)
|
||||
PARTITIONS 4 */
|
||||
SELECT * FROM t1 ORDER BY i LIMIT 10;
|
||||
i j k
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 9 9
|
||||
10 10 10
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
100
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b INT, KEY ka(a), KEY kab(a,b)) ENGINE=RocksDB;
|
||||
INSERT INTO t1 (a, b) VALUES (1, 5);
|
||||
INSERT INTO t1 (a, b) VALUES (2, 6);
|
||||
INSERT INTO t1 (a, b) VALUES (3, 7);
|
||||
# crash_during_online_index_creation
|
||||
flush logs;
|
||||
SET SESSION debug="+d,crash_during_online_index_creation";
|
||||
ALTER TABLE t1 ADD INDEX kb(b), ALGORITHM=INPLACE;
|
||||
ERROR HY000: Lost connection to MySQL server during query
|
||||
SET SESSION debug="-d,crash_during_online_index_creation";
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
KEY `ka` (`a`),
|
||||
KEY `kab` (`a`,`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (i INT, j INT, k INT, PRIMARY KEY (i), KEY(j)) ENGINE = ROCKSDB PARTITION BY KEY(i) PARTITIONS 4;
|
||||
# crash_during_index_creation_partition
|
||||
flush logs;
|
||||
SET SESSION debug="+d,crash_during_index_creation_partition";
|
||||
ALTER TABLE t1 ADD INDEX kij(i,j), ALGORITHM=INPLACE;
|
||||
ERROR HY000: Lost connection to MySQL server during query
|
||||
SET SESSION debug="-d,crash_during_index_creation_partition";
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`i` int(11) NOT NULL DEFAULT '0',
|
||||
`j` int(11) DEFAULT NULL,
|
||||
`k` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`i`),
|
||||
KEY `j` (`j`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY KEY (i)
|
||||
PARTITIONS 4 */
|
||||
ALTER TABLE t1 ADD INDEX kij(i,j), ALGORITHM=INPLACE;
|
||||
SELECT * FROM t1 ORDER BY i LIMIT 10;
|
||||
i j k
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 9 9
|
||||
10 10 10
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
100
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (i INT, j INT, k INT, PRIMARY KEY (i), KEY(j)) ENGINE = ROCKSDB PARTITION BY KEY(i) PARTITIONS 4;
|
||||
# crash_during_index_creation_partition
|
||||
flush logs;
|
||||
SET SESSION debug="+d,myrocks_simulate_index_create_rollback";
|
||||
# expected assertion failure from sql layer here for alter rollback
|
||||
call mtr.add_suppression("Assertion `0' failed.");
|
||||
call mtr.add_suppression("Attempting backtrace. You can use the following information to find out");
|
||||
ALTER TABLE t1 ADD INDEX kij(i,j), ALGORITHM=INPLACE;
|
||||
ERROR HY000: Lost connection to MySQL server during query
|
||||
SET SESSION debug="-d,myrocks_simulate_index_create_rollback";
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`i` int(11) NOT NULL DEFAULT '0',
|
||||
`j` int(11) DEFAULT NULL,
|
||||
`k` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`i`),
|
||||
KEY `j` (`j`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY KEY (i)
|
||||
PARTITIONS 4 */
|
||||
ALTER TABLE t1 ADD INDEX kij(i,j), ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`i` int(11) NOT NULL DEFAULT '0',
|
||||
`j` int(11) DEFAULT NULL,
|
||||
`k` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`i`),
|
||||
KEY `j` (`j`),
|
||||
KEY `kij` (`i`,`j`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
/*!50100 PARTITION BY KEY (i)
|
||||
PARTITIONS 4 */
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
100
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b TEXT);
|
||||
ALTER TABLE t1 ADD KEY kb(b(10));
|
||||
ERROR HY000: Unsupported collation on string indexed column test.t1.b Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
ALTER TABLE t1 ADD PRIMARY KEY(a);
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1,72 @@
|
|||
drop table if exists t1;
|
||||
CREATE TABLE t1(pk CHAR(5) PRIMARY KEY, a char(30), b char(30)) COLLATE 'latin1_bin';
|
||||
set rocksdb_bulk_load=1;
|
||||
set rocksdb_bulk_load_size=100000;
|
||||
LOAD DATA INFILE <input_file> INTO TABLE t1;
|
||||
set rocksdb_bulk_load=0;
|
||||
select count(pk) from t1;
|
||||
count(pk)
|
||||
3000000
|
||||
select count(a) from t1;
|
||||
count(a)
|
||||
3000000
|
||||
select count(b) from t1;
|
||||
count(b)
|
||||
3000000
|
||||
ALTER TABLE t1 ADD INDEX kb(b), ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1 ADD INDEX kb_copy(b), ALGORITHM=COPY;
|
||||
SELECT COUNT(*) as c FROM
|
||||
(SELECT COALESCE(LOWER(CONV(BIT_XOR(CAST(CRC32(CONCAT_WS('#', `b`, CONCAT(ISNULL(`b`)))) AS UNSIGNED)), 10, 16)), 0) AS crc FROM `t1` FORCE INDEX(`kb`)
|
||||
UNION DISTINCT
|
||||
SELECT COALESCE(LOWER(CONV(BIT_XOR(CAST(CRC32(CONCAT_WS('#',
|
||||
`b`, CONCAT(ISNULL(`b`)))) AS UNSIGNED)), 10, 16)), 0) AS crc FROM `t1` FORCE
|
||||
INDEX(`kb_copy`)) as temp;
|
||||
c
|
||||
1
|
||||
select count(*) from t1 FORCE INDEX(kb);
|
||||
count(*)
|
||||
3000000
|
||||
select count(*) from t1 FORCE INDEX(kb_copy);
|
||||
count(*)
|
||||
3000000
|
||||
select count(*) from t1 FORCE INDEX(PRIMARY);
|
||||
count(*)
|
||||
3000000
|
||||
ALTER TABLE t1 DROP INDEX kb, ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1 DROP INDEX kb_copy, ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1 ADD INDEX kb(b), ADD INDEX kab(a,b), ALGORITHM=INPLACE;
|
||||
SELECT COUNT(*) FROM t1 FORCE INDEX(kab);
|
||||
COUNT(*)
|
||||
3000000
|
||||
SELECT COUNT(*) FROM t1 FORCE INDEX(kb);
|
||||
COUNT(*)
|
||||
3000000
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` char(5) COLLATE latin1_bin NOT NULL,
|
||||
`a` char(30) COLLATE latin1_bin DEFAULT NULL,
|
||||
`b` char(30) COLLATE latin1_bin DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`),
|
||||
KEY `kb` (`b`),
|
||||
KEY `kab` (`a`,`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_bin
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT, KEY kab(a,b)) ENGINE=RocksDB;
|
||||
INSERT INTO t1 (a, b) VALUES (1, 5);
|
||||
INSERT INTO t1 (a, b) VALUES (2, 6);
|
||||
INSERT INTO t1 (a, b) VALUES (3, 7);
|
||||
ALTER TABLE t1 DROP INDEX kab, ALGORITHM=INPLACE;
|
||||
ALTER TABLE t1 ADD INDEX kb(b) comment 'rev:cf1', ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`a`),
|
||||
KEY `kb` (`b`) COMMENT 'rev:cf1'
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SELECT COUNT(*) FROM t1 FORCE INDEX(kb);
|
||||
COUNT(*)
|
||||
3
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1,7 @@
|
|||
drop table if exists t1;
|
||||
# Binary must be compiled with debug for this test
|
||||
CREATE TABLE t1 (a INT) ENGINE=rocksdb;
|
||||
SELECT COUNT(*) from t1;
|
||||
COUNT(*)
|
||||
400
|
||||
DROP TABLE t1;
|
251
storage/rocksdb/mysql-test/rocksdb/r/allow_no_primary_key.result
Normal file
251
storage/rocksdb/mysql-test/rocksdb/r/allow_no_primary_key.result
Normal file
|
@ -0,0 +1,251 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
b char(8) YES NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, c CHAR(8)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 VALUES (1,'a'),(5,'z');
|
||||
ALTER TABLE t1 ADD COLUMN b INT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`c` char(8) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1;
|
||||
a c b
|
||||
1 a NULL
|
||||
5 z NULL
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`c` char(8) DEFAULT NULL
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1;
|
||||
a c
|
||||
1 a
|
||||
5 z
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
ALTER TABLE t1 DROP COLUMN pk;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
b char(8) YES NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
|
||||
CREATE TABLE t2 (a INT, b CHAR(8)) ENGINE=rocksdb;
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (3,'c');
|
||||
INSERT INTO t2 (a,b) VALUES (4,'d');
|
||||
CHECK TABLE t1, t2 FOR UPGRADE;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
test.t2 check status OK
|
||||
INSERT INTO t2 (a,b) VALUES (5,'e');
|
||||
CHECK TABLE t2 QUICK;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (6,'f');
|
||||
CHECK TABLE t1 FAST;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (7,'g');
|
||||
INSERT INTO t2 (a,b) VALUES (8,'h');
|
||||
CHECK TABLE t2, t1 MEDIUM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (9,'i');
|
||||
INSERT INTO t2 (a,b) VALUES (10,'j');
|
||||
CHECK TABLE t1, t2 EXTENDED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
test.t2 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (11,'k');
|
||||
CHECK TABLE t1 CHANGED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), UNIQUE INDEX(a)) ENGINE=rocksdb;
|
||||
ERROR HY000: Unique index support is disabled when the table has no primary key.
|
||||
CREATE TABLE t1 (a INT, b CHAR(8)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
b char(8) YES NULL
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (36,'foo');
|
||||
DELETE FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
36 foo
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1,780 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), KEY(a)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL,
|
||||
KEY `a` (`a`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES MUL NULL
|
||||
b char(8) YES NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8)) ENGINE=rocksdb;
|
||||
ALTER TABLE t1 ADD INDEX (b);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL,
|
||||
KEY `b` (`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
b char(8) YES MUL NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
ALTER TABLE t1 DROP INDEX b;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
b char(8) YES NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
ALTER TABLE t1 DROP COLUMN pk;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
b char(8) YES NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-4313: RocksDB: Server crashes in Rdb_key_def::setup on dropping the primary key column
|
||||
#
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, i INT NOT NULL, KEY(i)) ENGINE=RocksDB;
|
||||
ALTER TABLE t1 DROP COLUMN `pk`;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), KEY(a), KEY(b)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL,
|
||||
KEY `a` (`a`),
|
||||
KEY `b` (`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES MUL NULL
|
||||
b char(8) YES MUL NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), KEY(a, b)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL,
|
||||
KEY `a` (`a`,`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES MUL NULL
|
||||
b char(8) YES NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), KEY(a), KEY(b)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL,
|
||||
KEY `a` (`a`),
|
||||
KEY `b` (`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES MUL NULL
|
||||
b char(8) YES MUL NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), KEY(a)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a) VALUES (1),(2),(5);
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (6),(8),(12);
|
||||
CHECK TABLE t1 FOR UPGRADE;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (13),(15),(16);
|
||||
CHECK TABLE t1 QUICK;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (17),(120),(132);
|
||||
CHECK TABLE t1 FAST;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (801),(900),(7714);
|
||||
CHECK TABLE t1 MEDIUM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (8760),(10023),(12000);
|
||||
CHECK TABLE t1 EXTENDED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (13345),(24456),(78302),(143028);
|
||||
CHECK TABLE t1 CHANGED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b INT, c INT, d INT, KEY kab(a, b), KEY kbc(b, c), KEY kabc(a,b,c)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
`c` int(11) DEFAULT NULL,
|
||||
`d` int(11) DEFAULT NULL,
|
||||
KEY `kab` (`a`,`b`),
|
||||
KEY `kbc` (`b`,`c`),
|
||||
KEY `kabc` (`a`,`b`,`c`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES MUL NULL
|
||||
b int(11) YES MUL NULL
|
||||
c int(11) YES NULL
|
||||
d int(11) YES NULL
|
||||
INSERT INTO t1 (a,b,c,d) VALUES (1,2,3,4);
|
||||
INSERT INTO t1 (a,b,c,d) VALUES (5,6,7,8);
|
||||
INSERT INTO t1 (a,b,c,d) VALUES (10,11,12,13);
|
||||
INSERT INTO t1 (a,b,c,d) VALUES (14,15,16,17);
|
||||
SELECT * FROM t1;
|
||||
a b c d
|
||||
1 2 3 4
|
||||
10 11 12 13
|
||||
14 15 16 17
|
||||
5 6 7 8
|
||||
SELECT * FROM t1 WHERE a = 1 OR a = 10;
|
||||
a b c d
|
||||
1 2 3 4
|
||||
10 11 12 13
|
||||
SELECT * FROM t1 WHERE c = 3 OR d = 17;
|
||||
a b c d
|
||||
1 2 3 4
|
||||
14 15 16 17
|
||||
SELECT * FROM t1 WHERE a > 5 OR d > 5;
|
||||
a b c d
|
||||
10 11 12 13
|
||||
14 15 16 17
|
||||
5 6 7 8
|
||||
SELECT a, b, c FROM t1 FORCE INDEX (kabc) WHERE a=1 OR b=11;
|
||||
a b c
|
||||
1 2 3
|
||||
10 11 12
|
||||
SELECT d FROM t1 FORCE INDEX (kbc) WHERE b > 6 AND c > 12;
|
||||
d
|
||||
17
|
||||
UPDATE t1 SET a=a+100;
|
||||
UPDATE t1 SET a=a-100, b=99 WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b c d
|
||||
1 99 3 4
|
||||
10 99 12 13
|
||||
14 99 16 17
|
||||
5 99 7 8
|
||||
DELETE FROM t1 WHERE a>5;
|
||||
DELETE FROM t1 WHERE b=99 AND d>4;
|
||||
SELECT * FROM t1;
|
||||
a b c d
|
||||
1 99 3 4
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), KEY ka(a) comment 'rev:cf1', KEY kb(b)
|
||||
comment 'rev:cf1', KEY kab(a,b) comment 'rev:cf2') ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL,
|
||||
KEY `ka` (`a`) COMMENT 'rev:cf1',
|
||||
KEY `kb` (`b`) COMMENT 'rev:cf1',
|
||||
KEY `kab` (`a`,`b`) COMMENT 'rev:cf2'
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES MUL NULL
|
||||
b char(8) YES MUL NULL
|
||||
INSERT INTO t1 (a,b) VALUES (76,'bar');
|
||||
INSERT INTO t1 (a,b) VALUES (35,'foo');
|
||||
INSERT INTO t1 (a,b) VALUES (77,'baz');
|
||||
SELECT * FROM t1 WHERE a = 35;
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 35 AND b = 'foo';
|
||||
a b
|
||||
35 foo
|
||||
SELECT * FROM t1 WHERE a = 77 OR b = 'bar';
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1 WHERE a > 35;
|
||||
a b
|
||||
76 bar
|
||||
77 baz
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 foo
|
||||
76 bar
|
||||
77 baz
|
||||
UPDATE t1 SET a=a+100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
135 foo
|
||||
176 bar
|
||||
177 baz
|
||||
UPDATE t1 SET a=a-100, b='bbb' WHERE a>100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
35 bbb
|
||||
76 bbb
|
||||
77 bbb
|
||||
UPDATE t1 SET a=300, b='ccc' WHERE a>70;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
300 ccc
|
||||
300 ccc
|
||||
35 bbb
|
||||
UPDATE t1 SET a=123 WHERE a=35;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
300 ccc
|
||||
300 ccc
|
||||
UPDATE t1 SET a=321 WHERE b='ccc';
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
INSERT INTO t1 (a,b) VALUES (45,'bob');
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
123 bbb
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE a=123;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
321 ccc
|
||||
321 ccc
|
||||
45 bob
|
||||
DELETE FROM t1 WHERE b > 'bbb' AND a > 100;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
45 bob
|
||||
TRUNCATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (col1 int, col2 int, KEY kcol1(col1)) ENGINE=ROCKSDB;
|
||||
INSERT INTO t1 (col1, col2) values (2,2);
|
||||
ALTER TABLE t1 ADD COLUMN extra INT;
|
||||
UPDATE t1 SET col2 = 1;
|
||||
select * from t1;
|
||||
col1 col2 extra
|
||||
2 1 NULL
|
||||
DELETE FROM t1 WHERE col1 = 2;
|
||||
set global rocksdb_force_flush_memtable_now = true;
|
||||
select * from t1;
|
||||
col1 col2 extra
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1 @@
|
|||
RocksDB: Can't disable allow_os_buffer if allow_mmap_reads is enabled
|
183
storage/rocksdb/mysql-test/rocksdb/r/alter_table.result
Normal file
183
storage/rocksdb/mysql-test/rocksdb/r/alter_table.result
Normal file
|
@ -0,0 +1,183 @@
|
|||
DROP TABLE IF EXISTS t1, t2;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, a INT, c CHAR(8)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 VALUES (1,1,'a'),(2,5,'z');
|
||||
ALTER TABLE t1 ADD COLUMN b INT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`c` char(8) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 ALTER COLUMN a SET DEFAULT '0';
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11) DEFAULT '0',
|
||||
`c` char(8) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 ALTER a DROP DEFAULT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11),
|
||||
`c` char(8) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 CHANGE COLUMN b b1 CHAR(8) FIRST;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`b1` char(8) DEFAULT NULL,
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11),
|
||||
`c` char(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 CHANGE b1 b INT AFTER c;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11),
|
||||
`c` char(8) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 CHANGE b b CHAR(8);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11),
|
||||
`c` char(8) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 MODIFY COLUMN b INT;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11),
|
||||
`c` char(8) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 MODIFY COLUMN b CHAR(8) FIRST;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`b` char(8) DEFAULT NULL,
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11),
|
||||
`c` char(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 MODIFY COLUMN b INT AFTER a;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11),
|
||||
`b` int(11) DEFAULT NULL,
|
||||
`c` char(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 DROP COLUMN b;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11),
|
||||
`c` char(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 RENAME TO t2;
|
||||
SHOW CREATE TABLE t1;
|
||||
ERROR 42S02: Table 'test.t1' doesn't exist
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11),
|
||||
`c` char(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, a INT, b INT) ENGINE=rocksdb;
|
||||
INSERT INTO t1 VALUES (1,1,5),(2,2,2),(3,4,3);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
ALTER TABLE t1 ORDER BY b ASC, a DESC, pk DESC;
|
||||
Warnings:
|
||||
Warning 1105 ORDER BY ignored as there is a user-defined clustered index in the table 't1'
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1;
|
||||
pk a b
|
||||
1 1 5
|
||||
2 2 2
|
||||
3 4 3
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, a INT, b CHAR(8), c CHAR(8)) ENGINE=rocksdb CHARACTER SET latin1 COLLATE latin1_general_cs;
|
||||
INSERT INTO t1 VALUES (1,5,'z','t');
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) COLLATE latin1_general_cs DEFAULT NULL,
|
||||
`c` char(8) COLLATE latin1_general_cs DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_cs
|
||||
ALTER TABLE t1 CONVERT TO CHARACTER SET utf8;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) DEFAULT NULL,
|
||||
`c` char(8) DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=utf8
|
||||
ALTER TABLE t1 DEFAULT CHARACTER SET = latin1 COLLATE latin1_general_ci;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) CHARACTER SET utf8 DEFAULT NULL,
|
||||
`c` char(8) CHARACTER SET utf8 DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
|
||||
ALTER TABLE t1 FORCE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`pk` int(11) NOT NULL,
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` char(8) CHARACTER SET utf8 DEFAULT NULL,
|
||||
`c` char(8) CHARACTER SET utf8 DEFAULT NULL,
|
||||
PRIMARY KEY (`pk`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
|
||||
DROP TABLE t1;
|
29
storage/rocksdb/mysql-test/rocksdb/r/analyze_table.result
Normal file
29
storage/rocksdb/mysql-test/rocksdb/r/analyze_table.result
Normal file
|
@ -0,0 +1,29 @@
|
|||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, a INT(11), b CHAR(8)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 VALUES (1,1,'a'),(2,2,'b');
|
||||
CREATE TABLE t2 (pk INT PRIMARY KEY, a INT(11), b CHAR(8)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 VALUES (3,3,'c');
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
INSERT INTO t2 VALUES (1,4,'d');
|
||||
ANALYZE NO_WRITE_TO_BINLOG TABLE t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 analyze status OK
|
||||
INSERT INTO t1 VALUES (4,5,'e');
|
||||
INSERT INTO t2 VALUES (2,6,'f');
|
||||
ANALYZE LOCAL TABLE t1, t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status OK
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, a INT(11), KEY(a)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 VALUES (1,1),(2,2),(3,4),(4,7);
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
INSERT INTO t1 VALUES (5,8),(6,10),(7,11),(8,12);
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1,64 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1 (
|
||||
pk INT NOT NULL PRIMARY KEY,
|
||||
key1 INT NOT NULL,
|
||||
KEY (key1)
|
||||
) ENGINE=ROCKSDB;
|
||||
INSERT INTO t1 VALUES (12,12);
|
||||
INSERT INTO t1 VALUES (6,6);
|
||||
BEGIN;
|
||||
INSERT INTO t1 VALUES (8,8), (10,10);
|
||||
SELECT * FROM t1 WHERE key1 BETWEEN 4 and 11 ORDER BY KEY1 DESC;
|
||||
pk key1
|
||||
10 10
|
||||
8 8
|
||||
6 6
|
||||
SELECT * FROM t1 WHERE key1 BETWEEN 4 and 11 ORDER BY KEY1 ASC;
|
||||
pk key1
|
||||
6 6
|
||||
8 8
|
||||
10 10
|
||||
SELECT * FROM t1 IGNORE INDEX(key1) WHERE key1 BETWEEN 4 and 11 ORDER BY key1 DESC;
|
||||
pk key1
|
||||
10 10
|
||||
8 8
|
||||
6 6
|
||||
SELECT * FROM t1 IGNORE INDEX(key1) WHERE key1 BETWEEN 4 and 11 ORDER BY key1 ASC;
|
||||
pk key1
|
||||
6 6
|
||||
8 8
|
||||
10 10
|
||||
ROLLBACK;
|
||||
CREATE TABLE t2 (
|
||||
pk INT NOT NULL PRIMARY KEY,
|
||||
key1 INT NOT NULL,
|
||||
KEY (key1) COMMENT 'rev:cf'
|
||||
) ENGINE=ROCKSDB;
|
||||
INSERT INTO t2 VALUES (12,12);
|
||||
INSERT INTO t2 VALUES (6,6);
|
||||
BEGIN;
|
||||
INSERT INTO t2 VALUES (8,8), (10,10);
|
||||
SELECT * FROM t2 WHERE key1 BETWEEN 4 and 11 ORDER BY KEY1 DESC;
|
||||
pk key1
|
||||
10 10
|
||||
8 8
|
||||
6 6
|
||||
SELECT * FROM t2 WHERE key1 BETWEEN 4 and 11 ORDER BY KEY1 ASC;
|
||||
pk key1
|
||||
6 6
|
||||
8 8
|
||||
10 10
|
||||
SELECT * FROM t2 IGNORE INDEX(key1) WHERE key1 BETWEEN 4 and 11 ORDER BY key1 DESC;
|
||||
pk key1
|
||||
10 10
|
||||
8 8
|
||||
6 6
|
||||
SELECT * FROM t2 IGNORE INDEX(key1) WHERE key1 BETWEEN 4 and 11 ORDER BY key1 ASC;
|
||||
pk key1
|
||||
6 6
|
||||
8 8
|
||||
10 10
|
||||
ROLLBACK;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
|
@ -0,0 +1,16 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, a INT AUTO_INCREMENT, KEY(a)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (pk) VALUES (3), (2), (1);
|
||||
SELECT * FROM t1;
|
||||
pk a
|
||||
3 1
|
||||
2 2
|
||||
1 3
|
||||
INSERT INTO t1 (pk) VALUES (4);
|
||||
SELECT * FROM t1;
|
||||
pk a
|
||||
3 1
|
||||
2 2
|
||||
1 3
|
||||
4 4
|
||||
DROP TABLE t1;
|
64
storage/rocksdb/mysql-test/rocksdb/r/autoinc_vars.result
Normal file
64
storage/rocksdb/mysql-test/rocksdb/r/autoinc_vars.result
Normal file
|
@ -0,0 +1,64 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
#---------------------------
|
||||
# auto_increment_offset
|
||||
#---------------------------
|
||||
SET auto_increment_offset = 200;
|
||||
CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (NULL,'a'),(NULL,'b'),(NULL,'c');
|
||||
SELECT LAST_INSERT_ID();
|
||||
LAST_INSERT_ID()
|
||||
1
|
||||
SELECT a,b FROM t1 ORDER BY a;
|
||||
a b
|
||||
1 a
|
||||
2 b
|
||||
3 c
|
||||
#---------------------------
|
||||
# auto_increment_increment
|
||||
#---------------------------
|
||||
SET auto_increment_increment = 300;
|
||||
INSERT INTO t1 (a,b) VALUES (NULL,'d'),(NULL,'e'),(NULL,'f');
|
||||
SELECT LAST_INSERT_ID();
|
||||
LAST_INSERT_ID()
|
||||
200
|
||||
SELECT a,b FROM t1 ORDER BY a;
|
||||
a b
|
||||
1 a
|
||||
2 b
|
||||
3 c
|
||||
200 d
|
||||
500 e
|
||||
800 f
|
||||
SET auto_increment_increment = 50;
|
||||
INSERT INTO t1 (a,b) VALUES (NULL,'g'),(NULL,'h'),(NULL,'i');
|
||||
SELECT LAST_INSERT_ID();
|
||||
LAST_INSERT_ID()
|
||||
850
|
||||
SELECT a,b FROM t1 ORDER BY a;
|
||||
a b
|
||||
1 a
|
||||
2 b
|
||||
3 c
|
||||
200 d
|
||||
500 e
|
||||
800 f
|
||||
850 g
|
||||
900 h
|
||||
950 i
|
||||
DROP TABLE t1;
|
||||
#---------------------------
|
||||
# offset is greater than the max value
|
||||
#---------------------------
|
||||
SET auto_increment_increment = 500;
|
||||
SET auto_increment_offset = 300;
|
||||
CREATE TABLE t1 (a TINYINT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a) VALUES (NULL);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
SELECT LAST_INSERT_ID();
|
||||
LAST_INSERT_ID()
|
||||
127
|
||||
SELECT a FROM t1 ORDER BY a;
|
||||
a
|
||||
127
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1 @@
|
|||
# The test checks AUTO_INCREMENT capabilities that are not supported by RocksDB-SE.
|
1235
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter.result
Normal file
1235
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter.result
Normal file
File diff suppressed because it is too large
Load diff
71
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter2.result
Normal file
71
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter2.result
Normal file
|
@ -0,0 +1,71 @@
|
|||
CREATE TABLE t0 (id1 VARCHAR(30), id2 INT, value INT, PRIMARY KEY (id1, id2)) ENGINE=rocksdb collate latin1_bin;
|
||||
select variable_value into @u from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
SELECT COUNT(*) FROM t0 WHERE id1='X' AND id2>=1;
|
||||
COUNT(*)
|
||||
10000
|
||||
select case when variable_value-@u = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
case when variable_value-@u = 0 then 'true' else 'false' end
|
||||
true
|
||||
DROP TABLE t0;
|
||||
CREATE TABLE t1 (id1 BIGINT, id2 INT, id3 BIGINT, value INT, PRIMARY KEY (id1, id2, id3)) ENGINE=rocksdb;
|
||||
select variable_value into @u from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
SELECT COUNT(*) FROM t1 WHERE id1=1 AND id2=1 AND id3>=2;
|
||||
COUNT(*)
|
||||
9999
|
||||
select case when variable_value-@u = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
case when variable_value-@u = 0 then 'true' else 'false' end
|
||||
true
|
||||
select variable_value into @u from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
SELECT COUNT(*) FROM t1 WHERE id1=1 AND id2>=1 AND id3>=2;
|
||||
COUNT(*)
|
||||
9999
|
||||
select case when variable_value-@u = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
case when variable_value-@u = 0 then 'true' else 'false' end
|
||||
true
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t2 (id1 INT, id2 VARCHAR(100), id3 BIGINT, value INT, PRIMARY KEY (id1, id2, id3)) ENGINE=rocksdb collate latin1_bin;
|
||||
select variable_value into @u from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
select count(*) from t2 WHERE id1=100 and id2 IN ('00000000000000000000', '100');
|
||||
count(*)
|
||||
1
|
||||
select case when variable_value-@u > 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
case when variable_value-@u > 0 then 'true' else 'false' end
|
||||
true
|
||||
select variable_value into @u from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
select count(*) from t2 WHERE id1=200 and id2 IN ('00000000000000000000', '200');
|
||||
count(*)
|
||||
1
|
||||
select case when variable_value-@u > 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
case when variable_value-@u > 0 then 'true' else 'false' end
|
||||
true
|
||||
select variable_value into @u from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
select count(*) from t2 WHERE id1=200 and id2 IN ('3', '200');
|
||||
count(*)
|
||||
1
|
||||
select case when variable_value-@u = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
case when variable_value-@u = 0 then 'true' else 'false' end
|
||||
true
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t3 (id1 BIGINT, id2 BIGINT, id3 BIGINT, id4 BIGINT, PRIMARY KEY (id1, id2, id3, id4)) ENGINE=rocksdb collate latin1_bin;
|
||||
select variable_value into @u from information_schema.global_status where variable_name='rocksdb_bloom_filter_useful';
|
||||
SELECT COUNT(*) FROM t3 WHERE id1=1 AND id2=5000 AND id3=1 AND id4=1;
|
||||
COUNT(*)
|
||||
0
|
||||
select case when variable_value-@u > 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_useful';
|
||||
case when variable_value-@u > 0 then 'true' else 'false' end
|
||||
true
|
||||
select variable_value into @u from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
SELECT COUNT(*) FROM t3 WHERE id1=1 AND id2=1 AND id3=1;
|
||||
COUNT(*)
|
||||
1
|
||||
select case when variable_value-@u > 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
case when variable_value-@u > 0 then 'true' else 'false' end
|
||||
true
|
||||
select variable_value into @u from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
SELECT COUNT(*) FROM t3 WHERE id1=1 AND id2=1 AND id3=1 AND id4 <= 500;
|
||||
COUNT(*)
|
||||
1
|
||||
select case when variable_value-@u > 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_useful';
|
||||
case when variable_value-@u > 0 then 'true' else 'false' end
|
||||
true
|
||||
DROP TABLE t3;
|
122
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter3.result
Normal file
122
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter3.result
Normal file
|
@ -0,0 +1,122 @@
|
|||
CREATE TABLE `linktable` (
|
||||
`id1` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`id1_type` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`id2` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`id2_type` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`link_type` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`visibility` tinyint(3) NOT NULL DEFAULT '0',
|
||||
`data` varchar(255) NOT NULL DEFAULT '',
|
||||
`time` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`version` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (link_type, `id1`,`id2`) COMMENT 'cf_link_pk',
|
||||
KEY `id1_type` (`id1`,`link_type`,`visibility`,`time`,`version`,`data`) COMMENT 'rev:cf_link_id1_type',
|
||||
KEY `id1_type2` (`id1`,`link_type`,`time`,`version`,`data`,`visibility`) COMMENT 'rev:cf_link_id1_type2',
|
||||
KEY `id1_type3` (`id1`,`visibility`,`time`,`version`,`data`,`link_type`) COMMENT 'rev:cf_link_id1_type3'
|
||||
) ENGINE=RocksDB DEFAULT COLLATE=latin1_bin;
|
||||
select variable_value into @c from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type`) where id1 = 100 and link_type = 1 and time >= 0 and time <= 9223372036854775807 and visibility = 1 order by time desc;
|
||||
id1 id2 link_type visibility data time version
|
||||
100 100 1 1 100 100 100
|
||||
select case when variable_value-@c > 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
case when variable_value-@c > 0 then 'true' else 'false' end
|
||||
true
|
||||
select variable_value into @c from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type2`) where id1 = 100 and link_type = 1 and time >= 0 and time <= 9223372036854775807 order by time desc;
|
||||
id1 id2 link_type visibility data time version
|
||||
100 100 1 1 100 100 100
|
||||
select case when variable_value-@c > 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
case when variable_value-@c > 0 then 'true' else 'false' end
|
||||
true
|
||||
select variable_value into @c from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type3`) where id1 = 100 and time >= 0 and time <= 9223372036854775807 and visibility = 1 order by time desc;
|
||||
id1 id2 link_type visibility data time version
|
||||
100 100 1 1 100 100 100
|
||||
select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
case when variable_value-@c = 0 then 'true' else 'false' end
|
||||
true
|
||||
select variable_value into @c from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type`) where id1 = 100 and link_type = 1 and visibility = 1 and time >= 0 order by time desc;
|
||||
id1 id2 link_type visibility data time version
|
||||
100 100 1 1 100 100 100
|
||||
select case when variable_value-@c > 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
case when variable_value-@c > 0 then 'true' else 'false' end
|
||||
true
|
||||
select variable_value into @c from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type2`) where id1 = 100 and link_type = 1 and time >= 0 order by time desc;
|
||||
id1 id2 link_type visibility data time version
|
||||
100 100 1 1 100 100 100
|
||||
select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
case when variable_value-@c = 0 then 'true' else 'false' end
|
||||
true
|
||||
## HA_READ_PREFIX_LAST
|
||||
# BF len 20
|
||||
select variable_value into @c from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type`) where id1 = 100 and link_type = 1 and visibility = 1 order by time desc;
|
||||
id1 id2 link_type visibility data time version
|
||||
100 100 1 1 100 100 100
|
||||
select case when variable_value-@c > 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
case when variable_value-@c > 0 then 'true' else 'false' end
|
||||
true
|
||||
# BF len 19
|
||||
select variable_value into @c from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type2`) where id1 = 100 and link_type = 1 order by time desc;
|
||||
id1 id2 link_type visibility data time version
|
||||
100 100 1 1 100 100 100
|
||||
select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
case when variable_value-@c = 0 then 'true' else 'false' end
|
||||
true
|
||||
# BF len 12
|
||||
select variable_value into @c from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
select id1, id2, link_type, visibility, data, time, version from linktable FORCE INDEX(`id1_type3`) where id1 = 100 and visibility = 1 order by time desc;
|
||||
id1 id2 link_type visibility data time version
|
||||
100 100 1 1 100 100 100
|
||||
select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
case when variable_value-@c = 0 then 'true' else 'false' end
|
||||
true
|
||||
DROP TABLE linktable;
|
||||
#
|
||||
# bloom filter prefix is 20 byte
|
||||
# Create a key which is longer than that, so that we see that
|
||||
# eq_cond_len= slice.size() - 1;
|
||||
# doesnt work.
|
||||
#
|
||||
# indexnr 4
|
||||
# kp0 + 4 = 8
|
||||
# kp1 + 8 = 16
|
||||
# kp2 + 8 = 24 24>20 byte length prefix
|
||||
# kp3 + 8 = 28
|
||||
create table t1 (
|
||||
pk int primary key,
|
||||
kp0 int not null,
|
||||
kp1 bigint not null,
|
||||
kp2 bigint not null,
|
||||
kp3 bigint not null,
|
||||
key kp12(kp0, kp1, kp2, kp3) comment 'rev:x1'
|
||||
) engine=rocksdb;
|
||||
insert into t1 values (1, 1,1, 1,1);
|
||||
insert into t1 values (10,1,1,0x12FFFFFFFFFF,1);
|
||||
insert into t1 values (11,1,1,0x12FFFFFFFFFF,1);
|
||||
insert into t1 values (20,2,2,0x12FFFFFFFFFF,1);
|
||||
insert into t1 values (21,2,2,0x12FFFFFFFFFF,1);
|
||||
explain
|
||||
select * from t1 where kp0=1 and kp1=1 and kp2=0x12FFFFFFFFFF order by kp3 desc;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index kp12 kp12 28 NULL # Using where; Using index
|
||||
show status like '%rocksdb_bloom_filter_prefix%';
|
||||
Variable_name Value
|
||||
rocksdb_bloom_filter_prefix_checked 0
|
||||
rocksdb_bloom_filter_prefix_useful 0
|
||||
select variable_value into @c from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
select * from t1 where kp0=1 and kp1=1 and kp2=0x12FFFFFFFFFF order by kp3 desc;
|
||||
pk kp0 kp1 kp2 kp3
|
||||
11 1 1 20890720927743 1
|
||||
10 1 1 20890720927743 1
|
||||
show status like '%rocksdb_bloom_filter_prefix%';
|
||||
Variable_name Value
|
||||
rocksdb_bloom_filter_prefix_checked 0
|
||||
rocksdb_bloom_filter_prefix_useful 0
|
||||
# The following MUST show TRUE:
|
||||
select case when variable_value-@c = 0 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_bloom_filter_prefix_checked';
|
||||
case when variable_value-@c = 0 then 'true' else 'false' end
|
||||
true
|
||||
drop table t1;
|
30
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter4.result
Normal file
30
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter4.result
Normal file
|
@ -0,0 +1,30 @@
|
|||
CREATE TABLE t1 (
|
||||
`id1` int unsigned NOT NULL DEFAULT '0',
|
||||
`id2` int unsigned NOT NULL DEFAULT '0',
|
||||
`link_type` int unsigned NOT NULL DEFAULT '0',
|
||||
`visibility` tinyint NOT NULL DEFAULT '0',
|
||||
`data` varchar(255) NOT NULL DEFAULT '',
|
||||
`time` int unsigned NOT NULL DEFAULT '0',
|
||||
`version` int unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (id1, link_type, visibility, id2) COMMENT 'rev:cf_link_pk'
|
||||
) ENGINE=RocksDB DEFAULT COLLATE=latin1_bin;
|
||||
CREATE PROCEDURE select_test()
|
||||
BEGIN
|
||||
DECLARE id1_cond INT;
|
||||
SET id1_cond = 1;
|
||||
WHILE id1_cond <= 20000 DO
|
||||
SELECT count(*) AS cnt FROM (SELECT id1 FROM t1 FORCE INDEX (PRIMARY) WHERE id1 = id1_cond AND link_type = 1 AND visibility = 1 ORDER BY id2 DESC) AS t INTO @cnt;
|
||||
IF @cnt < 1 THEN
|
||||
SELECT id1_cond, @cnt;
|
||||
END IF;
|
||||
SET id1_cond = id1_cond + 1;
|
||||
END WHILE;
|
||||
END//
|
||||
"Skipping bloom filter"
|
||||
SET session rocksdb_skip_bloom_filter_on_read=1;
|
||||
CALL select_test();
|
||||
"Using bloom filter"
|
||||
SET session rocksdb_skip_bloom_filter_on_read=0;
|
||||
CALL select_test();
|
||||
DROP PROCEDURE select_test;
|
||||
drop table t1;
|
1235
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter_skip.result
Normal file
1235
storage/rocksdb/mysql-test/rocksdb/r/bloomfilter_skip.result
Normal file
File diff suppressed because it is too large
Load diff
49
storage/rocksdb/mysql-test/rocksdb/r/bulk_load.result
Normal file
49
storage/rocksdb/mysql-test/rocksdb/r/bulk_load.result
Normal file
|
@ -0,0 +1,49 @@
|
|||
DROP TABLE IF EXISTS t1, t2;
|
||||
CREATE TABLE t1(pk CHAR(5) PRIMARY KEY, a char(30), b char(30), key(a)) COLLATE 'latin1_bin';
|
||||
CREATE TABLE t2(pk CHAR(5) PRIMARY KEY, a char(30), b char(30), key(a)) COLLATE 'latin1_bin';
|
||||
CREATE TABLE t3(pk CHAR(5) PRIMARY KEY, a char(30), b char(30), key(a)) COLLATE 'latin1_bin'
|
||||
PARTITION BY KEY() PARTITIONS 4;
|
||||
set session transaction isolation level repeatable read;
|
||||
select * from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS';
|
||||
STAT_TYPE VALUE
|
||||
DB_NUM_SNAPSHOTS 0
|
||||
start transaction with consistent snapshot;
|
||||
select * from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS';
|
||||
STAT_TYPE VALUE
|
||||
DB_NUM_SNAPSHOTS 1
|
||||
set rocksdb_bulk_load=1;
|
||||
set rocksdb_bulk_load_size=100000;
|
||||
LOAD DATA INFILE <input_file> INTO TABLE t1;
|
||||
LOAD DATA INFILE <input_file> INTO TABLE t2;
|
||||
LOAD DATA INFILE <input_file> INTO TABLE t3;
|
||||
set rocksdb_bulk_load=0;
|
||||
select count(pk) from t1;
|
||||
count(pk)
|
||||
10000000
|
||||
select count(a) from t1;
|
||||
count(a)
|
||||
10000000
|
||||
select count(b) from t1;
|
||||
count(b)
|
||||
10000000
|
||||
select count(pk) from t2;
|
||||
count(pk)
|
||||
10000000
|
||||
select count(a) from t2;
|
||||
count(a)
|
||||
10000000
|
||||
select count(b) from t2;
|
||||
count(b)
|
||||
10000000
|
||||
select count(pk) from t3;
|
||||
count(pk)
|
||||
10000000
|
||||
select count(a) from t3;
|
||||
count(a)
|
||||
10000000
|
||||
select count(b) from t3;
|
||||
count(b)
|
||||
10000000
|
||||
longfilenamethatvalidatesthatthiswillgetdeleted.bulk_load.tmp
|
||||
test.bulk_load.tmp
|
||||
DROP TABLE t1, t2, t3;
|
50
storage/rocksdb/mysql-test/rocksdb/r/cardinality.result
Normal file
50
storage/rocksdb/mysql-test/rocksdb/r/cardinality.result
Normal file
|
@ -0,0 +1,50 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(
|
||||
id bigint not null primary key,
|
||||
i1 bigint, #unique
|
||||
i2 bigint, #repeating
|
||||
c1 varchar(20), #unique
|
||||
c2 varchar(20), #repeating
|
||||
index t1_1(id, i1),
|
||||
index t1_2(i1, i2),
|
||||
index t1_3(i2, i1),
|
||||
index t1_4(c1, c2),
|
||||
index t1_5(c2, c1)
|
||||
) engine=rocksdb;
|
||||
optimize table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status OK
|
||||
show index in t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 id A 100000 NULL NULL LSMTREE
|
||||
t1 1 t1_1 1 id A 100000 NULL NULL LSMTREE
|
||||
t1 1 t1_1 2 i1 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_2 1 i1 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_2 2 i2 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_3 1 i2 A 11111 NULL NULL YES LSMTREE
|
||||
t1 1 t1_3 2 i1 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_4 1 c1 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_4 2 c2 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_5 1 c2 A 11111 NULL NULL YES LSMTREE
|
||||
t1 1 t1_5 2 c1 A 100000 NULL NULL YES LSMTREE
|
||||
SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = DATABASE();
|
||||
table_name table_rows
|
||||
t1 100000
|
||||
restarting...
|
||||
show index in t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 id A 100000 NULL NULL LSMTREE
|
||||
t1 1 t1_1 1 id A 100000 NULL NULL LSMTREE
|
||||
t1 1 t1_1 2 i1 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_2 1 i1 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_2 2 i2 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_3 1 i2 A 11111 NULL NULL YES LSMTREE
|
||||
t1 1 t1_3 2 i1 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_4 1 c1 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_4 2 c2 A 100000 NULL NULL YES LSMTREE
|
||||
t1 1 t1_5 1 c2 A 11111 NULL NULL YES LSMTREE
|
||||
t1 1 t1_5 2 c1 A 100000 NULL NULL YES LSMTREE
|
||||
SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = DATABASE();
|
||||
table_name table_rows
|
||||
t1 100000
|
||||
drop table t1;
|
68
storage/rocksdb/mysql-test/rocksdb/r/check_table.result
Normal file
68
storage/rocksdb/mysql-test/rocksdb/r/check_table.result
Normal file
|
@ -0,0 +1,68 @@
|
|||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
|
||||
CREATE TABLE t2 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (3,'c');
|
||||
INSERT INTO t2 (a,b) VALUES (4,'d');
|
||||
CHECK TABLE t1, t2 FOR UPGRADE;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
test.t2 check status OK
|
||||
INSERT INTO t2 (a,b) VALUES (5,'e');
|
||||
CHECK TABLE t2 QUICK;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (6,'f');
|
||||
CHECK TABLE t1 FAST;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (7,'g');
|
||||
INSERT INTO t2 (a,b) VALUES (8,'h');
|
||||
CHECK TABLE t2, t1 MEDIUM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (9,'i');
|
||||
INSERT INTO t2 (a,b) VALUES (10,'j');
|
||||
CHECK TABLE t1, t2 EXTENDED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
test.t2 check status OK
|
||||
INSERT INTO t1 (a,b) VALUES (11,'k');
|
||||
CHECK TABLE t1 CHANGED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY, KEY(a)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a) VALUES (1),(2),(5);
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (6),(8),(12);
|
||||
CHECK TABLE t1 FOR UPGRADE;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (13),(15),(16);
|
||||
CHECK TABLE t1 QUICK;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (17),(120),(132);
|
||||
CHECK TABLE t1 FAST;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (801),(900),(7714);
|
||||
CHECK TABLE t1 MEDIUM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (8760),(10023),(12000);
|
||||
CHECK TABLE t1 EXTENDED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (a) VALUES (13345),(24456),(78302),(143028);
|
||||
CHECK TABLE t1 CHANGED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
59
storage/rocksdb/mysql-test/rocksdb/r/checkpoint.result
Normal file
59
storage/rocksdb/mysql-test/rocksdb/r/checkpoint.result
Normal file
|
@ -0,0 +1,59 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
DROP TABLE IF EXISTS t4;
|
||||
DROP TABLE IF EXISTS t5;
|
||||
CREATE TABLE t1 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
CREATE TABLE t2 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
CREATE TABLE t3 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
CREATE TABLE t4 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
DELETE FROM t1;
|
||||
DELETE FROM t2;
|
||||
DELETE FROM t3;
|
||||
DELETE FROM t4;
|
||||
CREATE TABLE t5 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
DELETE FROM t5;
|
||||
SET GLOBAL ROCKSDB_CREATE_CHECKPOINT = '[CHECKPOINT]';
|
||||
CURRENT
|
||||
SET GLOBAL ROCKSDB_CREATE_CHECKPOINT = '[CHECKPOINT]';
|
||||
CURRENT
|
||||
truncate table t1;
|
||||
optimize table t1;
|
||||
truncate table t2;
|
||||
optimize table t2;
|
||||
truncate table t3;
|
||||
optimize table t3;
|
||||
truncate table t4;
|
||||
optimize table t4;
|
||||
truncate table t5;
|
||||
optimize table t5;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists t3;
|
||||
drop table if exists t4;
|
||||
drop table if exists t5;
|
87
storage/rocksdb/mysql-test/rocksdb/r/checksum_table.result
Normal file
87
storage/rocksdb/mysql-test/rocksdb/r/checksum_table.result
Normal file
|
@ -0,0 +1,87 @@
|
|||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb CHECKSUM=0;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
|
||||
CREATE TABLE t2 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb CHECKSUM=0;
|
||||
CHECKSUM TABLE t1;
|
||||
Table Checksum
|
||||
test.t1 4259194219
|
||||
CHECKSUM TABLE t2, t1;
|
||||
Table Checksum
|
||||
test.t2 0
|
||||
test.t1 4259194219
|
||||
CHECKSUM TABLE t1, t2 QUICK;
|
||||
Table Checksum
|
||||
test.t1 NULL
|
||||
test.t2 NULL
|
||||
CHECKSUM TABLE t1, t2 EXTENDED;
|
||||
Table Checksum
|
||||
test.t1 4259194219
|
||||
test.t2 0
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# Issue #110: SQL command checksum returns inconsistent result
|
||||
#
|
||||
create table t1 (pk int primary key, col1 varchar(10)) engine=rocksdb;
|
||||
insert into t1 values (2,'fooo');
|
||||
insert into t1 values (1,NULL);
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 1303411884
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 1303411884
|
||||
select * from t1 where pk=2;
|
||||
pk col1
|
||||
2 fooo
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 1303411884
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 1303411884
|
||||
flush tables;
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 1303411884
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 1303411884
|
||||
drop table t1;
|
||||
#
|
||||
# The following test is about making sure MyRocks CHECKSUM TABLE
|
||||
# values are the same as with InnoDB.
|
||||
# If you see checksum values changed, make sure their counterparts
|
||||
# in suite/innodb/r/checksum-matches-myrocks.result match.
|
||||
#
|
||||
create table t1 (pk int primary key, col1 varchar(10)) engine=rocksdb;
|
||||
insert into t1 values (2,'fooo');
|
||||
insert into t1 values (1,NULL);
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 1303411884
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
pk bigint unsigned primary key,
|
||||
col1 varchar(10),
|
||||
col2 tinyint,
|
||||
col3 double
|
||||
) engine=rocksdb;
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 0
|
||||
insert into t1 values (1, NULL, NULL, NULL);
|
||||
insert into t1 values (2, 'foo', NULL, NULL);
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 3633741545
|
||||
insert into t1 values (3, NULL, 123, NULL);
|
||||
insert into t1 values (4, NULL, NULL, 2.78);
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 390004011
|
||||
insert into t1 values (5, 'xxxYYYzzzT', NULL, 2.78);
|
||||
insert into t1 values (6, '', NULL, 2.78);
|
||||
checksum table t1;
|
||||
Table Checksum
|
||||
test.t1 3183101003
|
||||
drop table t1;
|
|
@ -0,0 +1,20 @@
|
|||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb CHECKSUM=1;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
|
||||
CREATE TABLE t2 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb CHECKSUM=1;
|
||||
CHECKSUM TABLE t1;
|
||||
Table Checksum
|
||||
test.t1 4259194219
|
||||
CHECKSUM TABLE t2, t1;
|
||||
Table Checksum
|
||||
test.t2 0
|
||||
test.t1 4259194219
|
||||
CHECKSUM TABLE t1, t2 QUICK;
|
||||
Table Checksum
|
||||
test.t1 NULL
|
||||
test.t2 NULL
|
||||
CHECKSUM TABLE t1, t2 EXTENDED;
|
||||
Table Checksum
|
||||
test.t1 4259194219
|
||||
test.t2 0
|
||||
DROP TABLE t1, t2;
|
20
storage/rocksdb/mysql-test/rocksdb/r/col_opt_default.result
Normal file
20
storage/rocksdb/mysql-test/rocksdb/r/col_opt_default.result
Normal file
|
@ -0,0 +1,20 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY DEFAULT '0') ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO PRI 0
|
||||
INSERT INTO t1 (a) VALUES (1);
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
ALTER TABLE t1 ADD COLUMN b CHAR(8) DEFAULT '';
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO PRI 0
|
||||
b char(8) YES
|
||||
INSERT INTO t1 (b) VALUES ('a');
|
||||
SELECT a,b FROM t1 ORDER BY a,b;
|
||||
a b
|
||||
0 a
|
||||
1
|
||||
DROP TABLE t1;
|
2612
storage/rocksdb/mysql-test/rocksdb/r/col_opt_not_null.result
Normal file
2612
storage/rocksdb/mysql-test/rocksdb/r/col_opt_not_null.result
Normal file
File diff suppressed because one or more lines are too long
2270
storage/rocksdb/mysql-test/rocksdb/r/col_opt_null.result
Normal file
2270
storage/rocksdb/mysql-test/rocksdb/r/col_opt_null.result
Normal file
File diff suppressed because one or more lines are too long
741
storage/rocksdb/mysql-test/rocksdb/r/col_opt_unsigned.result
Normal file
741
storage/rocksdb/mysql-test/rocksdb/r/col_opt_unsigned.result
Normal file
|
@ -0,0 +1,741 @@
|
|||
########################
|
||||
# Fixed point columns (NUMERIC, DECIMAL)
|
||||
########################
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (
|
||||
d DECIMAL UNSIGNED,
|
||||
d0 DECIMAL(0) UNSIGNED,
|
||||
d1_1 DECIMAL(1,1) UNSIGNED,
|
||||
d10_2 DECIMAL(10,2) UNSIGNED,
|
||||
d60_10 DECIMAL(60,10) UNSIGNED,
|
||||
n NUMERIC UNSIGNED,
|
||||
n0_0 NUMERIC(0,0) UNSIGNED,
|
||||
n1 NUMERIC(1) UNSIGNED,
|
||||
n20_4 NUMERIC(20,4) UNSIGNED,
|
||||
n65_4 NUMERIC(65,4) UNSIGNED,
|
||||
pk NUMERIC UNSIGNED PRIMARY KEY
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
d decimal(10,0) unsigned YES NULL
|
||||
d0 decimal(10,0) unsigned YES NULL
|
||||
d1_1 decimal(1,1) unsigned YES NULL
|
||||
d10_2 decimal(10,2) unsigned YES NULL
|
||||
d60_10 decimal(60,10) unsigned YES NULL
|
||||
n decimal(10,0) unsigned YES NULL
|
||||
n0_0 decimal(10,0) unsigned YES NULL
|
||||
n1 decimal(1,0) unsigned YES NULL
|
||||
n20_4 decimal(20,4) unsigned YES NULL
|
||||
n65_4 decimal(65,4) unsigned YES NULL
|
||||
pk decimal(10,0) unsigned NO PRI NULL
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (100,123456,0.3,40000.25,123456789123456789.10001,1024,7000.0,8.0,999999.9,9223372036854775807,1);
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (0,0,0,0,0,0,0,0,0,0,2);
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (9999999999.0,9999999999.0,0.9,99999999.99,99999999999999999999999999999999999999999999999999.9999999999,9999999999.0,9999999999.0,9.0,9999999999999999.9999,9999999999999999999999999999999999999999999999999999999999999.9999,3);
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
100 123456 0.3 40000.25 123456789123456789.1000100000 1024 7000 8 999999.9000 9223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (-100,-123456,-0.3,-40000.25,-123456789123456789.10001,-1024,-7000.0,-8.0,-999999.9,-9223372036854775807,4);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_2' at row 1
|
||||
Warning 1264 Out of range value for column 'd60_10' at row 1
|
||||
Warning 1264 Out of range value for column 'n' at row 1
|
||||
Warning 1264 Out of range value for column 'n0_0' at row 1
|
||||
Warning 1264 Out of range value for column 'n1' at row 1
|
||||
Warning 1264 Out of range value for column 'n20_4' at row 1
|
||||
Warning 1264 Out of range value for column 'n65_4' at row 1
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (-9999999999.0,-9999999999.0,-0.9,-99999999.99,-99999999999999999999999999999999999999999999999999.9999999999,-9999999999.0,-9999999999.0,-9.0,-9999999999999999.9999,-9999999999999999999999999999999999999999999999999999999999999.9999,5);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_2' at row 1
|
||||
Warning 1264 Out of range value for column 'd60_10' at row 1
|
||||
Warning 1264 Out of range value for column 'n' at row 1
|
||||
Warning 1264 Out of range value for column 'n0_0' at row 1
|
||||
Warning 1264 Out of range value for column 'n1' at row 1
|
||||
Warning 1264 Out of range value for column 'n20_4' at row 1
|
||||
Warning 1264 Out of range value for column 'n65_4' at row 1
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
100 123456 0.3 40000.25 123456789123456789.1000100000 1024 7000 8 999999.9000 9223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1 WHERE n20_4 = 9999999999999999.9999 OR d < 100;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
6
|
||||
);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_2' at row 1
|
||||
Warning 1264 Out of range value for column 'd60_10' at row 1
|
||||
Warning 1264 Out of range value for column 'n' at row 1
|
||||
Warning 1264 Out of range value for column 'n0_0' at row 1
|
||||
Warning 1264 Out of range value for column 'n1' at row 1
|
||||
Warning 1264 Out of range value for column 'n20_4' at row 1
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
100 123456 0.3 40000.25 123456789123456789.1000100000 1024 7000 8 999999.9000 9223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (10000000000.0,10000000000.0,1.1,100000000.99,100000000000000000000000000000000000000000000000000.0,10000000000.0,10000000000.0,10.0,10000000000000000.9999,10000000000000000000000000000000000000000000000000000000000000.9999,7);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_2' at row 1
|
||||
Warning 1264 Out of range value for column 'd60_10' at row 1
|
||||
Warning 1264 Out of range value for column 'n' at row 1
|
||||
Warning 1264 Out of range value for column 'n0_0' at row 1
|
||||
Warning 1264 Out of range value for column 'n1' at row 1
|
||||
Warning 1264 Out of range value for column 'n20_4' at row 1
|
||||
Warning 1264 Out of range value for column 'n65_4' at row 1
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
100 123456 0.3 40000.25 123456789123456789.1000100000 1024 7000 8 999999.9000 9223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (9999999999.1,9999999999.1,1.9,99999999.001,99999999999999999999999999999999999999999999999999.99999999991,9999999999.1,9999999999.1,9.1,9999999999999999.00001,9999999999999999999999999999999999999999999999999999999999999.11111,8);
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'd' at row 1
|
||||
Note 1265 Data truncated for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Note 1265 Data truncated for column 'd10_2' at row 1
|
||||
Note 1265 Data truncated for column 'd60_10' at row 1
|
||||
Note 1265 Data truncated for column 'n' at row 1
|
||||
Note 1265 Data truncated for column 'n0_0' at row 1
|
||||
Note 1265 Data truncated for column 'n1' at row 1
|
||||
Note 1265 Data truncated for column 'n20_4' at row 1
|
||||
Note 1265 Data truncated for column 'n65_4' at row 1
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
0 0 0.0 0.00 0.0000000000 0 0 0 0.0000 0.0000
|
||||
100 123456 0.3 40000.25 123456789123456789.1000100000 1024 7000 8 999999.9000 9223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.00 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.0000 9999999999999999999999999999999999999999999999999999999999999.1111
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
ALTER TABLE t1 ADD COLUMN n66 NUMERIC(66) UNSIGNED;
|
||||
ERROR 42000: Too big precision 66 specified for column 'n66'. Maximum is 65.
|
||||
ALTER TABLE t1 ADD COLUMN n66_6 DECIMAL(66,6) UNSIGNED;
|
||||
ERROR 42000: Too big precision 66 specified for column 'n66_6'. Maximum is 65.
|
||||
ALTER TABLE t1 ADD COLUMN n66_66 DECIMAL(66,66) UNSIGNED;
|
||||
ERROR 42000: Too big scale 66 specified for column 'n66_66'. Maximum is 30.
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
a DECIMAL UNSIGNED,
|
||||
b NUMERIC UNSIGNED,
|
||||
PRIMARY KEY (a)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a decimal(10,0) unsigned NO PRI 0
|
||||
b decimal(10,0) unsigned YES NULL
|
||||
INSERT INTO t1 (a,b) VALUES (1.0,-1.0);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
INSERT INTO t1 (a,b) VALUES (-100,100);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0 100
|
||||
1 0
|
||||
DROP TABLE t1;
|
||||
########################
|
||||
# Floating point columns (FLOAT, DOUBLE)
|
||||
########################
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (
|
||||
f FLOAT UNSIGNED,
|
||||
f0 FLOAT(0) UNSIGNED,
|
||||
r1_1 REAL(1,1) UNSIGNED,
|
||||
f23_0 FLOAT(23) UNSIGNED,
|
||||
f20_3 FLOAT(20,3) UNSIGNED,
|
||||
d DOUBLE UNSIGNED,
|
||||
d1_0 DOUBLE(1,0) UNSIGNED,
|
||||
d10_10 DOUBLE PRECISION (10,10) UNSIGNED,
|
||||
d53 DOUBLE(53,0) UNSIGNED,
|
||||
d53_10 DOUBLE(53,10) UNSIGNED,
|
||||
pk DOUBLE UNSIGNED PRIMARY KEY
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
f float unsigned YES NULL
|
||||
f0 float unsigned YES NULL
|
||||
r1_1 double(1,1) unsigned YES NULL
|
||||
f23_0 float unsigned YES NULL
|
||||
f20_3 float(20,3) unsigned YES NULL
|
||||
d double unsigned YES NULL
|
||||
d1_0 double(1,0) unsigned YES NULL
|
||||
d10_10 double(10,10) unsigned YES NULL
|
||||
d53 double(53,0) unsigned YES NULL
|
||||
d53_10 double(53,10) unsigned YES NULL
|
||||
pk double unsigned NO PRI NULL
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (12345.12345,12345.12345,0.9,123456789.123,56789.987,11111111.111,8.0,0.0123456789,1234566789123456789,99999999999999999.99999999,1);
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 12345.1
|
||||
d 11111111.111
|
||||
d10_10 0.0123456789
|
||||
d1_0 8
|
||||
d53 1234566789123456800
|
||||
d53_10 100000000000000000.0000000000
|
||||
f0 12345.1
|
||||
f20_3 56789.988
|
||||
f23_0 123457000
|
||||
r1_1 0.9
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (0,0,0,0,0,0,0,0,0,0,2);
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (
|
||||
99999999999999999999999999999999999999,
|
||||
99999999999999999999999999999999999999.9999999999999999,
|
||||
0.9,
|
||||
99999999999999999999999999999999999999.9,
|
||||
99999999999999999.999,
|
||||
999999999999999999999999999999999999999999999999999999999999999999999999999999999,
|
||||
9,
|
||||
0.9999999999,
|
||||
1999999999999999999999999999999999999999999999999999999,
|
||||
19999999999999999999999999999999999999999999.9999999999,
|
||||
3
|
||||
);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd53' at row 1
|
||||
Warning 1264 Out of range value for column 'd53_10' at row 1
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 12345.1
|
||||
d 0
|
||||
d 11111111.111
|
||||
d 1e81
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0123456789
|
||||
d10_10 0.9999999999
|
||||
d1_0 0
|
||||
d1_0 8
|
||||
d1_0 9
|
||||
d53 0
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 1234566789123456800
|
||||
d53_10 0.0000000000
|
||||
d53_10 100000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
f 0
|
||||
f 1e38
|
||||
f0 0
|
||||
f0 12345.1
|
||||
f0 1e38
|
||||
f20_3 0.000
|
||||
f20_3 56789.988
|
||||
f20_3 99999998430674940.000
|
||||
f23_0 0
|
||||
f23_0 123457000
|
||||
f23_0 1e38
|
||||
r1_1 0.0
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (-999999999999999999999999,-99999999999.999999999999,-0.9,-999.99999999999999999999,-99999999999999999.999,-999999999999999999999999999999999999999999999999999999999999-0.999,-9,-.9999999999,-999999999999999999999999999999.99999999999999999999999,-9999999999999999999999999999999999999999999.9999999999,4);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'f' at row 1
|
||||
Warning 1264 Out of range value for column 'f0' at row 1
|
||||
Warning 1264 Out of range value for column 'r1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'f23_0' at row 1
|
||||
Warning 1264 Out of range value for column 'f20_3' at row 1
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_0' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_10' at row 1
|
||||
Warning 1264 Out of range value for column 'd53' at row 1
|
||||
Warning 1264 Out of range value for column 'd53_10' at row 1
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 12345.1
|
||||
d 0
|
||||
d 0
|
||||
d 11111111.111
|
||||
d 1e81
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0123456789
|
||||
d10_10 0.9999999999
|
||||
d1_0 0
|
||||
d1_0 0
|
||||
d1_0 8
|
||||
d1_0 9
|
||||
d53 0
|
||||
d53 0
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 1234566789123456800
|
||||
d53_10 0.0000000000
|
||||
d53_10 0.0000000000
|
||||
d53_10 100000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
f 0
|
||||
f 0
|
||||
f 1e38
|
||||
f0 0
|
||||
f0 0
|
||||
f0 12345.1
|
||||
f0 1e38
|
||||
f20_3 0.000
|
||||
f20_3 0.000
|
||||
f20_3 56789.988
|
||||
f20_3 99999998430674940.000
|
||||
f23_0 0
|
||||
f23_0 0
|
||||
f23_0 123457000
|
||||
f23_0 1e38
|
||||
r1_1 0.0
|
||||
r1_1 0.0
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
SELECT MAX(f), MAX(f0), MAX(r1_1), MAX(f23_0), MAX(f20_3), MAX(d), MAX(d1_0), MAX(d10_10), MAX(d53), MAX(d53_10) FROM t1;
|
||||
MAX(f) 9.999999680285692e37
|
||||
MAX(d) 1e81
|
||||
MAX(d10_10) 0.9999999999
|
||||
MAX(d1_0) 9
|
||||
MAX(d53) 100000000000000000000000000000000000000000000000000000
|
||||
MAX(d53_10) 10000000000000000000000000000000000000000000.0000000000
|
||||
MAX(f0) 9.999999680285692e37
|
||||
MAX(f20_3) 99999998430674940.000
|
||||
MAX(f23_0) 9.999999680285692e37
|
||||
MAX(r1_1) 0.9
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
5
|
||||
);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'f' at row 1
|
||||
Warning 1264 Out of range value for column 'f0' at row 1
|
||||
Warning 1264 Out of range value for column 'r1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'f23_0' at row 1
|
||||
Warning 1264 Out of range value for column 'f20_3' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_0' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_10' at row 1
|
||||
Warning 1264 Out of range value for column 'd53' at row 1
|
||||
Warning 1264 Out of range value for column 'd53_10' at row 1
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 12345.1
|
||||
d 0
|
||||
d 0
|
||||
d 11111111.111
|
||||
d 1e61
|
||||
d 1e81
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0123456789
|
||||
d10_10 0.9999999999
|
||||
d10_10 0.9999999999
|
||||
d1_0 0
|
||||
d1_0 0
|
||||
d1_0 8
|
||||
d1_0 9
|
||||
d1_0 9
|
||||
d53 0
|
||||
d53 0
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 1234566789123456800
|
||||
d53_10 0.0000000000
|
||||
d53_10 0.0000000000
|
||||
d53_10 100000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
f 0
|
||||
f 0
|
||||
f 1e38
|
||||
f 3.40282e38
|
||||
f0 0
|
||||
f0 0
|
||||
f0 12345.1
|
||||
f0 1e38
|
||||
f0 3.40282e38
|
||||
f20_3 0.000
|
||||
f20_3 0.000
|
||||
f20_3 56789.988
|
||||
f20_3 99999998430674940.000
|
||||
f20_3 99999998430674940.000
|
||||
f23_0 0
|
||||
f23_0 0
|
||||
f23_0 123457000
|
||||
f23_0 1e38
|
||||
f23_0 3.40282e38
|
||||
r1_1 0.0
|
||||
r1_1 0.0
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (
|
||||
999999999999999999999999999999999999999,
|
||||
999999999999999999999999999999999999999.9999999999999999,
|
||||
1.9,
|
||||
999999999999999999999999999999999999999.9,
|
||||
999999999999999999.999,
|
||||
9999999999999999999999999999999999999999999999999999999999999999999999999999999999,
|
||||
99,
|
||||
1.9999999999,
|
||||
1999999999999999999999999999999999999999999999999999999,
|
||||
19999999999999999999999999999999999999999999.9999999999,
|
||||
6
|
||||
);
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DECIMAL value: ''
|
||||
Warning 1264 Out of range value for column 'f' at row 1
|
||||
Warning 1264 Out of range value for column 'f0' at row 1
|
||||
Warning 1264 Out of range value for column 'r1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'f23_0' at row 1
|
||||
Warning 1264 Out of range value for column 'f20_3' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_0' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_10' at row 1
|
||||
Warning 1264 Out of range value for column 'd53' at row 1
|
||||
Warning 1264 Out of range value for column 'd53_10' at row 1
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 12345.1
|
||||
d 0
|
||||
d 0
|
||||
d 11111111.111
|
||||
d 1e61
|
||||
d 1e65
|
||||
d 1e81
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0123456789
|
||||
d10_10 0.9999999999
|
||||
d10_10 0.9999999999
|
||||
d10_10 0.9999999999
|
||||
d1_0 0
|
||||
d1_0 0
|
||||
d1_0 8
|
||||
d1_0 9
|
||||
d1_0 9
|
||||
d1_0 9
|
||||
d53 0
|
||||
d53 0
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 1234566789123456800
|
||||
d53_10 0.0000000000
|
||||
d53_10 0.0000000000
|
||||
d53_10 100000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
f 0
|
||||
f 0
|
||||
f 1e38
|
||||
f 3.40282e38
|
||||
f 3.40282e38
|
||||
f0 0
|
||||
f0 0
|
||||
f0 12345.1
|
||||
f0 1e38
|
||||
f0 3.40282e38
|
||||
f0 3.40282e38
|
||||
f20_3 0.000
|
||||
f20_3 0.000
|
||||
f20_3 56789.988
|
||||
f20_3 99999998430674940.000
|
||||
f20_3 99999998430674940.000
|
||||
f20_3 99999998430674940.000
|
||||
f23_0 0
|
||||
f23_0 0
|
||||
f23_0 123457000
|
||||
f23_0 1e38
|
||||
f23_0 3.40282e38
|
||||
f23_0 3.40282e38
|
||||
r1_1 0.0
|
||||
r1_1 0.0
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
ALTER TABLE t1 ADD COLUMN d0_0 DOUBLE(0,0) UNSIGNED;
|
||||
ERROR 42000: Display width out of range for column 'd0_0' (max = 255)
|
||||
ALTER TABLE t1 ADD COLUMN n66_6 DECIMAL(256,1) UNSIGNED;
|
||||
ERROR 42000: Too big precision 256 specified for column 'n66_6'. Maximum is 65.
|
||||
ALTER TABLE t1 ADD COLUMN n66_66 DECIMAL(40,35) UNSIGNED;
|
||||
ERROR 42000: Too big scale 35 specified for column 'n66_66'. Maximum is 30.
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
a DOUBLE UNSIGNED,
|
||||
b FLOAT UNSIGNED,
|
||||
PRIMARY KEY (b)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a double unsigned YES NULL
|
||||
b float unsigned NO PRI 0
|
||||
INSERT INTO t1 (a,b) VALUES (1.0,-1.0);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
INSERT INTO t1 (a,b) VALUES (-100,100);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'a' at row 1
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0 100
|
||||
1 0
|
||||
DROP TABLE t1;
|
||||
########################
|
||||
# INT columns
|
||||
########################
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (
|
||||
i INT UNSIGNED,
|
||||
i0 INT(0) UNSIGNED,
|
||||
i1 INT(1) UNSIGNED,
|
||||
i20 INT(20) UNSIGNED,
|
||||
t TINYINT UNSIGNED,
|
||||
t0 TINYINT(0) UNSIGNED,
|
||||
t1 TINYINT(1) UNSIGNED,
|
||||
t20 TINYINT(20) UNSIGNED,
|
||||
s SMALLINT UNSIGNED,
|
||||
s0 SMALLINT(0) UNSIGNED,
|
||||
s1 SMALLINT(1) UNSIGNED,
|
||||
s20 SMALLINT(20) UNSIGNED,
|
||||
m MEDIUMINT UNSIGNED,
|
||||
m0 MEDIUMINT(0) UNSIGNED,
|
||||
m1 MEDIUMINT(1) UNSIGNED,
|
||||
m20 MEDIUMINT(20) UNSIGNED,
|
||||
b BIGINT UNSIGNED,
|
||||
b0 BIGINT(0) UNSIGNED,
|
||||
b1 BIGINT(1) UNSIGNED,
|
||||
b20 BIGINT(20) UNSIGNED,
|
||||
pk INT AUTO_INCREMENT PRIMARY KEY
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
i int(10) unsigned YES NULL
|
||||
i0 int(10) unsigned YES NULL
|
||||
i1 int(1) unsigned YES NULL
|
||||
i20 int(20) unsigned YES NULL
|
||||
t tinyint(3) unsigned YES NULL
|
||||
t0 tinyint(3) unsigned YES NULL
|
||||
t1 tinyint(1) unsigned YES NULL
|
||||
t20 tinyint(20) unsigned YES NULL
|
||||
s smallint(5) unsigned YES NULL
|
||||
s0 smallint(5) unsigned YES NULL
|
||||
s1 smallint(1) unsigned YES NULL
|
||||
s20 smallint(20) unsigned YES NULL
|
||||
m mediumint(8) unsigned YES NULL
|
||||
m0 mediumint(8) unsigned YES NULL
|
||||
m1 mediumint(1) unsigned YES NULL
|
||||
m20 mediumint(20) unsigned YES NULL
|
||||
b bigint(20) unsigned YES NULL
|
||||
b0 bigint(20) unsigned YES NULL
|
||||
b1 bigint(1) unsigned YES NULL
|
||||
b20 bigint(20) unsigned YES NULL
|
||||
pk int(11) NO PRI NULL auto_increment
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (2147483647,2147483647,2147483647,2147483647,127,127,127,127,32767,32767,32767,32767,8388607,8388607,8388607,8388607,9223372036854775807,9223372036854775807,9223372036854775807,9223372036854775807);
|
||||
SELECT i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20 FROM t1;
|
||||
i i0 i1 i20 t t0 t1 t20 s s0 s1 s20 m m0 m1 m20 b b0 b1 b20
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||
2147483647 2147483647 2147483647 2147483647 127 127 127 127 32767 32767 32767 32767 8388607 8388607 8388607 8388607 9223372036854775807 9223372036854775807 9223372036854775807 9223372036854775807
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (-2147483648,-2147483648,-2147483648,-2147483648,-128,-128,-128,-128,-32768,-32768,-32768,-32768,-8388608,-8388608,-8388608,-8388608,-9223372036854775808,-9223372036854775808,-9223372036854775808,-9223372036854775808);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'i' at row 1
|
||||
Warning 1264 Out of range value for column 'i0' at row 1
|
||||
Warning 1264 Out of range value for column 'i1' at row 1
|
||||
Warning 1264 Out of range value for column 'i20' at row 1
|
||||
Warning 1264 Out of range value for column 't' at row 1
|
||||
Warning 1264 Out of range value for column 't0' at row 1
|
||||
Warning 1264 Out of range value for column 't1' at row 1
|
||||
Warning 1264 Out of range value for column 't20' at row 1
|
||||
Warning 1264 Out of range value for column 's' at row 1
|
||||
Warning 1264 Out of range value for column 's0' at row 1
|
||||
Warning 1264 Out of range value for column 's1' at row 1
|
||||
Warning 1264 Out of range value for column 's20' at row 1
|
||||
Warning 1264 Out of range value for column 'm' at row 1
|
||||
Warning 1264 Out of range value for column 'm0' at row 1
|
||||
Warning 1264 Out of range value for column 'm1' at row 1
|
||||
Warning 1264 Out of range value for column 'm20' at row 1
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
Warning 1264 Out of range value for column 'b0' at row 1
|
||||
Warning 1264 Out of range value for column 'b1' at row 1
|
||||
Warning 1264 Out of range value for column 'b20' at row 1
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (4294967295,4294967295,4294967295,4294967295,255,255,255,255,65535,65535,65535,65535,16777215,16777215,16777215,16777215,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615);
|
||||
SELECT i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20 FROM t1;
|
||||
i i0 i1 i20 t t0 t1 t20 s s0 s1 s20 m m0 m1 m20 b b0 b1 b20
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||
2147483647 2147483647 2147483647 2147483647 127 127 127 127 32767 32767 32767 32767 8388607 8388607 8388607 8388607 9223372036854775807 9223372036854775807 9223372036854775807 9223372036854775807
|
||||
4294967295 4294967295 4294967295 4294967295 255 255 255 255 65535 65535 65535 65535 16777215 16777215 16777215 16777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (-2147483649,-2147483649,-2147483649,-2147483649,-129,-129,-129,-129,-32769,-32769,-32769,-32769,-8388609,-8388609,-8388609,-8388609,-9223372036854775809,-9223372036854775809,-9223372036854775809,-9223372036854775809);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'i' at row 1
|
||||
Warning 1264 Out of range value for column 'i0' at row 1
|
||||
Warning 1264 Out of range value for column 'i1' at row 1
|
||||
Warning 1264 Out of range value for column 'i20' at row 1
|
||||
Warning 1264 Out of range value for column 't' at row 1
|
||||
Warning 1264 Out of range value for column 't0' at row 1
|
||||
Warning 1264 Out of range value for column 't1' at row 1
|
||||
Warning 1264 Out of range value for column 't20' at row 1
|
||||
Warning 1264 Out of range value for column 's' at row 1
|
||||
Warning 1264 Out of range value for column 's0' at row 1
|
||||
Warning 1264 Out of range value for column 's1' at row 1
|
||||
Warning 1264 Out of range value for column 's20' at row 1
|
||||
Warning 1264 Out of range value for column 'm' at row 1
|
||||
Warning 1264 Out of range value for column 'm0' at row 1
|
||||
Warning 1264 Out of range value for column 'm1' at row 1
|
||||
Warning 1264 Out of range value for column 'm20' at row 1
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
Warning 1264 Out of range value for column 'b0' at row 1
|
||||
Warning 1264 Out of range value for column 'b1' at row 1
|
||||
Warning 1264 Out of range value for column 'b20' at row 1
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (4294967296,4294967296,4294967296,4294967296,256,256,256,256,65536,65536,65536,65536,16777216,16777216,16777216,16777216,18446744073709551616,18446744073709551616,18446744073709551616,18446744073709551616);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'i' at row 1
|
||||
Warning 1264 Out of range value for column 'i0' at row 1
|
||||
Warning 1264 Out of range value for column 'i1' at row 1
|
||||
Warning 1264 Out of range value for column 'i20' at row 1
|
||||
Warning 1264 Out of range value for column 't' at row 1
|
||||
Warning 1264 Out of range value for column 't0' at row 1
|
||||
Warning 1264 Out of range value for column 't1' at row 1
|
||||
Warning 1264 Out of range value for column 't20' at row 1
|
||||
Warning 1264 Out of range value for column 's' at row 1
|
||||
Warning 1264 Out of range value for column 's0' at row 1
|
||||
Warning 1264 Out of range value for column 's1' at row 1
|
||||
Warning 1264 Out of range value for column 's20' at row 1
|
||||
Warning 1264 Out of range value for column 'm' at row 1
|
||||
Warning 1264 Out of range value for column 'm0' at row 1
|
||||
Warning 1264 Out of range value for column 'm1' at row 1
|
||||
Warning 1264 Out of range value for column 'm20' at row 1
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
Warning 1264 Out of range value for column 'b0' at row 1
|
||||
Warning 1264 Out of range value for column 'b1' at row 1
|
||||
Warning 1264 Out of range value for column 'b20' at row 1
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) SELECT b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b FROM t1 WHERE b IN (-9223372036854775808,9223372036854775807,18446744073709551615);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'i' at row 8
|
||||
Warning 1264 Out of range value for column 'i0' at row 8
|
||||
Warning 1264 Out of range value for column 'i1' at row 8
|
||||
Warning 1264 Out of range value for column 'i20' at row 8
|
||||
Warning 1264 Out of range value for column 't' at row 8
|
||||
Warning 1264 Out of range value for column 't0' at row 8
|
||||
Warning 1264 Out of range value for column 't1' at row 8
|
||||
Warning 1264 Out of range value for column 't20' at row 8
|
||||
Warning 1264 Out of range value for column 's' at row 8
|
||||
Warning 1264 Out of range value for column 's0' at row 8
|
||||
Warning 1264 Out of range value for column 's1' at row 8
|
||||
Warning 1264 Out of range value for column 's20' at row 8
|
||||
Warning 1264 Out of range value for column 'm' at row 8
|
||||
Warning 1264 Out of range value for column 'm0' at row 8
|
||||
Warning 1264 Out of range value for column 'm1' at row 8
|
||||
Warning 1264 Out of range value for column 'm20' at row 8
|
||||
Warning 1264 Out of range value for column 'i' at row 9
|
||||
Warning 1264 Out of range value for column 'i0' at row 9
|
||||
Warning 1264 Out of range value for column 'i1' at row 9
|
||||
Warning 1264 Out of range value for column 'i20' at row 9
|
||||
Warning 1264 Out of range value for column 't' at row 9
|
||||
Warning 1264 Out of range value for column 't0' at row 9
|
||||
Warning 1264 Out of range value for column 't1' at row 9
|
||||
Warning 1264 Out of range value for column 't20' at row 9
|
||||
Warning 1264 Out of range value for column 's' at row 9
|
||||
Warning 1264 Out of range value for column 's0' at row 9
|
||||
Warning 1264 Out of range value for column 's1' at row 9
|
||||
Warning 1264 Out of range value for column 's20' at row 9
|
||||
Warning 1264 Out of range value for column 'm' at row 9
|
||||
Warning 1264 Out of range value for column 'm0' at row 9
|
||||
Warning 1264 Out of range value for column 'm1' at row 9
|
||||
Warning 1264 Out of range value for column 'm20' at row 9
|
||||
Warning 1264 Out of range value for column 'i' at row 10
|
||||
Warning 1264 Out of range value for column 'i0' at row 10
|
||||
Warning 1264 Out of range value for column 'i1' at row 10
|
||||
Warning 1264 Out of range value for column 'i20' at row 10
|
||||
Warning 1264 Out of range value for column 't' at row 10
|
||||
Warning 1264 Out of range value for column 't0' at row 10
|
||||
Warning 1264 Out of range value for column 't1' at row 10
|
||||
Warning 1264 Out of range value for column 't20' at row 10
|
||||
Warning 1264 Out of range value for column 's' at row 10
|
||||
Warning 1264 Out of range value for column 's0' at row 10
|
||||
Warning 1264 Out of range value for column 's1' at row 10
|
||||
Warning 1264 Out of range value for column 's20' at row 10
|
||||
Warning 1264 Out of range value for column 'm' at row 10
|
||||
Warning 1264 Out of range value for column 'm0' at row 10
|
||||
Warning 1264 Out of range value for column 'm1' at row 10
|
||||
Warning 1264 Out of range value for column 'm20' at row 10
|
||||
SELECT i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20 FROM t1;
|
||||
i i0 i1 i20 t t0 t1 t20 s s0 s1 s20 m m0 m1 m20 b b0 b1 b20
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||
2147483647 2147483647 2147483647 2147483647 127 127 127 127 32767 32767 32767 32767 8388607 8388607 8388607 8388607 9223372036854775807 9223372036854775807 9223372036854775807 9223372036854775807
|
||||
4294967295 4294967295 4294967295 4294967295 255 255 255 255 65535 65535 65535 65535 16777215 16777215 16777215 16777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
4294967295 4294967295 4294967295 4294967295 255 255 255 255 65535 65535 65535 65535 16777215 16777215 16777215 16777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
4294967295 4294967295 4294967295 4294967295 255 255 255 255 65535 65535 65535 65535 16777215 16777215 16777215 16777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
4294967295 4294967295 4294967295 4294967295 255 255 255 255 65535 65535 65535 65535 16777215 16777215 16777215 16777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
4294967295 4294967295 4294967295 4294967295 255 255 255 255 65535 65535 65535 65535 16777215 16777215 16777215 16777215 9223372036854775807 9223372036854775807 9223372036854775807 9223372036854775807
|
||||
ALTER TABLE t1 ADD COLUMN i257 INT(257) UNSIGNED;
|
||||
ERROR 42000: Display width out of range for column 'i257' (max = 255)
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
t TINYINT UNSIGNED,
|
||||
s SMALLINT UNSIGNED,
|
||||
m MEDIUMINT UNSIGNED,
|
||||
i INT UNSIGNED,
|
||||
b BIGINT UNSIGNED,
|
||||
PRIMARY KEY (b)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
t tinyint(3) unsigned YES NULL
|
||||
s smallint(5) unsigned YES NULL
|
||||
m mediumint(8) unsigned YES NULL
|
||||
i int(10) unsigned YES NULL
|
||||
b bigint(20) unsigned NO PRI 0
|
||||
INSERT INTO t1 (t,s,m,i,b) VALUES (255,65535,16777215,4294967295,18446744073709551615);
|
||||
INSERT INTO t1 (t,s,m,i,b) VALUES (-1,-1,-1,-1,-1);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 't' at row 1
|
||||
Warning 1264 Out of range value for column 's' at row 1
|
||||
Warning 1264 Out of range value for column 'm' at row 1
|
||||
Warning 1264 Out of range value for column 'i' at row 1
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
SELECT t,s,m,i,b FROM t1;
|
||||
t s m i b
|
||||
0 0 0 0 0
|
||||
255 65535 16777215 4294967295 18446744073709551615
|
||||
DROP TABLE t1;
|
723
storage/rocksdb/mysql-test/rocksdb/r/col_opt_zerofill.result
Normal file
723
storage/rocksdb/mysql-test/rocksdb/r/col_opt_zerofill.result
Normal file
|
@ -0,0 +1,723 @@
|
|||
########################
|
||||
# Fixed point columns (NUMERIC, DECIMAL)
|
||||
########################
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (
|
||||
d DECIMAL ZEROFILL,
|
||||
d0 DECIMAL(0) ZEROFILL,
|
||||
d1_1 DECIMAL(1,1) ZEROFILL,
|
||||
d10_2 DECIMAL(10,2) ZEROFILL,
|
||||
d60_10 DECIMAL(60,10) ZEROFILL,
|
||||
n NUMERIC ZEROFILL,
|
||||
n0_0 NUMERIC(0,0) ZEROFILL,
|
||||
n1 NUMERIC(1) ZEROFILL,
|
||||
n20_4 NUMERIC(20,4) ZEROFILL,
|
||||
n65_4 NUMERIC(65,4) ZEROFILL,
|
||||
pk NUMERIC ZEROFILL PRIMARY KEY
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
d decimal(10,0) unsigned zerofill YES NULL
|
||||
d0 decimal(10,0) unsigned zerofill YES NULL
|
||||
d1_1 decimal(1,1) unsigned zerofill YES NULL
|
||||
d10_2 decimal(10,2) unsigned zerofill YES NULL
|
||||
d60_10 decimal(60,10) unsigned zerofill YES NULL
|
||||
n decimal(10,0) unsigned zerofill YES NULL
|
||||
n0_0 decimal(10,0) unsigned zerofill YES NULL
|
||||
n1 decimal(1,0) unsigned zerofill YES NULL
|
||||
n20_4 decimal(20,4) unsigned zerofill YES NULL
|
||||
n65_4 decimal(65,4) unsigned zerofill YES NULL
|
||||
pk decimal(10,0) unsigned zerofill NO PRI NULL
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (100,123456,0.3,40000.25,123456789123456789.10001,1024,7000.0,8.0,999999.9,9223372036854775807,1);
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (0,0,0,0,0,0,0,0,0,0,2);
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (9999999999.0,9999999999.0,0.9,99999999.99,99999999999999999999999999999999999999999999999999.9999999999,9999999999.0,9999999999.0,9.0,9999999999999999.9999,9999999999999999999999999999999999999999999999999999999999999.9999,3);
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000100 0000123456 0.3 00040000.25 00000000000000000000000000000000123456789123456789.1000100000 0000001024 0000007000 8 0000000000999999.9000 0000000000000000000000000000000000000000009223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (-100,-123456,-0.3,-40000.25,-123456789123456789.10001,-1024,-7000.0,-8.0,-999999.9,-9223372036854775807,4);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_2' at row 1
|
||||
Warning 1264 Out of range value for column 'd60_10' at row 1
|
||||
Warning 1264 Out of range value for column 'n' at row 1
|
||||
Warning 1264 Out of range value for column 'n0_0' at row 1
|
||||
Warning 1264 Out of range value for column 'n1' at row 1
|
||||
Warning 1264 Out of range value for column 'n20_4' at row 1
|
||||
Warning 1264 Out of range value for column 'n65_4' at row 1
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (-9999999999.0,-9999999999.0,-0.9,-99999999.99,-99999999999999999999999999999999999999999999999999.9999999999,-9999999999.0,-9999999999.0,-9.0,-9999999999999999.9999,-9999999999999999999999999999999999999999999999999999999999999.9999,5);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_2' at row 1
|
||||
Warning 1264 Out of range value for column 'd60_10' at row 1
|
||||
Warning 1264 Out of range value for column 'n' at row 1
|
||||
Warning 1264 Out of range value for column 'n0_0' at row 1
|
||||
Warning 1264 Out of range value for column 'n1' at row 1
|
||||
Warning 1264 Out of range value for column 'n20_4' at row 1
|
||||
Warning 1264 Out of range value for column 'n65_4' at row 1
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000100 0000123456 0.3 00040000.25 00000000000000000000000000000000123456789123456789.1000100000 0000001024 0000007000 8 0000000000999999.9000 0000000000000000000000000000000000000000009223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1 WHERE n20_4 = 9999999999999999.9999 OR d < 100;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
6
|
||||
);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_2' at row 1
|
||||
Warning 1264 Out of range value for column 'd60_10' at row 1
|
||||
Warning 1264 Out of range value for column 'n' at row 1
|
||||
Warning 1264 Out of range value for column 'n0_0' at row 1
|
||||
Warning 1264 Out of range value for column 'n1' at row 1
|
||||
Warning 1264 Out of range value for column 'n20_4' at row 1
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000100 0000123456 0.3 00040000.25 00000000000000000000000000000000123456789123456789.1000100000 0000001024 0000007000 8 0000000000999999.9000 0000000000000000000000000000000000000000009223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (10000000000.0,10000000000.0,1.1,100000000.99,100000000000000000000000000000000000000000000000000.0,10000000000.0,10000000000.0,10.0,10000000000000000.9999,10000000000000000000000000000000000000000000000000000000000000.9999,7);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_2' at row 1
|
||||
Warning 1264 Out of range value for column 'd60_10' at row 1
|
||||
Warning 1264 Out of range value for column 'n' at row 1
|
||||
Warning 1264 Out of range value for column 'n0_0' at row 1
|
||||
Warning 1264 Out of range value for column 'n1' at row 1
|
||||
Warning 1264 Out of range value for column 'n20_4' at row 1
|
||||
Warning 1264 Out of range value for column 'n65_4' at row 1
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000100 0000123456 0.3 00040000.25 00000000000000000000000000000000123456789123456789.1000100000 0000001024 0000007000 8 0000000000999999.9000 0000000000000000000000000000000000000000009223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
INSERT INTO t1 (d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4,pk) VALUES (9999999999.1,9999999999.1,1.9,99999999.001,99999999999999999999999999999999999999999999999999.99999999991,9999999999.1,9999999999.1,9.1,9999999999999999.00001,9999999999999999999999999999999999999999999999999999999999999.11111,8);
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'd' at row 1
|
||||
Note 1265 Data truncated for column 'd0' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_1' at row 1
|
||||
Note 1265 Data truncated for column 'd10_2' at row 1
|
||||
Note 1265 Data truncated for column 'd60_10' at row 1
|
||||
Note 1265 Data truncated for column 'n' at row 1
|
||||
Note 1265 Data truncated for column 'n0_0' at row 1
|
||||
Note 1265 Data truncated for column 'n1' at row 1
|
||||
Note 1265 Data truncated for column 'n20_4' at row 1
|
||||
Note 1265 Data truncated for column 'n65_4' at row 1
|
||||
SELECT d,d0,d1_1,d10_2,d60_10,n,n0_0,n1,n20_4,n65_4 FROM t1;
|
||||
d d0 d1_1 d10_2 d60_10 n n0_0 n1 n20_4 n65_4
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000000 0000000000 0.0 00000000.00 00000000000000000000000000000000000000000000000000.0000000000 0000000000 0000000000 0 0000000000000000.0000 0000000000000000000000000000000000000000000000000000000000000.0000
|
||||
0000000100 0000123456 0.3 00040000.25 00000000000000000000000000000000123456789123456789.1000100000 0000001024 0000007000 8 0000000000999999.9000 0000000000000000000000000000000000000000009223372036854775807.0000
|
||||
9999999999 9999999999 0.9 99999999.00 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.0000 9999999999999999999999999999999999999999999999999999999999999.1111
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
9999999999 9999999999 0.9 99999999.99 99999999999999999999999999999999999999999999999999.9999999999 9999999999 9999999999 9 9999999999999999.9999 9999999999999999999999999999999999999999999999999999999999999.9999
|
||||
ALTER TABLE t1 ADD COLUMN n66 NUMERIC(66) ZEROFILL;
|
||||
ERROR 42000: Too big precision 66 specified for column 'n66'. Maximum is 65.
|
||||
ALTER TABLE t1 ADD COLUMN n66_6 DECIMAL(66,6) ZEROFILL;
|
||||
ERROR 42000: Too big precision 66 specified for column 'n66_6'. Maximum is 65.
|
||||
ALTER TABLE t1 ADD COLUMN n66_66 DECIMAL(66,66) ZEROFILL;
|
||||
ERROR 42000: Too big scale 66 specified for column 'n66_66'. Maximum is 30.
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
a DECIMAL ZEROFILL,
|
||||
b NUMERIC ZEROFILL,
|
||||
PRIMARY KEY (a)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a decimal(10,0) unsigned zerofill NO PRI 0000000000
|
||||
b decimal(10,0) unsigned zerofill YES NULL
|
||||
INSERT INTO t1 (a,b) VALUES (1.1,1234);
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'a' at row 1
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0000000001 0000001234
|
||||
DROP TABLE t1;
|
||||
########################
|
||||
# Floating point columns (FLOAT, DOUBLE)
|
||||
########################
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (
|
||||
f FLOAT ZEROFILL,
|
||||
f0 FLOAT(0) ZEROFILL,
|
||||
r1_1 REAL(1,1) ZEROFILL,
|
||||
f23_0 FLOAT(23) ZEROFILL,
|
||||
f20_3 FLOAT(20,3) ZEROFILL,
|
||||
d DOUBLE ZEROFILL,
|
||||
d1_0 DOUBLE(1,0) ZEROFILL,
|
||||
d10_10 DOUBLE PRECISION (10,10) ZEROFILL,
|
||||
d53 DOUBLE(53,0) ZEROFILL,
|
||||
d53_10 DOUBLE(53,10) ZEROFILL,
|
||||
pk DOUBLE ZEROFILL PRIMARY KEY
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
f float unsigned zerofill YES NULL
|
||||
f0 float unsigned zerofill YES NULL
|
||||
r1_1 double(1,1) unsigned zerofill YES NULL
|
||||
f23_0 float unsigned zerofill YES NULL
|
||||
f20_3 float(20,3) unsigned zerofill YES NULL
|
||||
d double unsigned zerofill YES NULL
|
||||
d1_0 double(1,0) unsigned zerofill YES NULL
|
||||
d10_10 double(10,10) unsigned zerofill YES NULL
|
||||
d53 double(53,0) unsigned zerofill YES NULL
|
||||
d53_10 double(53,10) unsigned zerofill YES NULL
|
||||
pk double unsigned zerofill NO PRI NULL
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (12345.12345,12345.12345,0.9,123456789.123,56789.987,11111111.111,8.0,0.0123456789,1234566789123456789,99999999999999999.99999999,1);
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 0000012345.1
|
||||
d 000000000011111111.111
|
||||
d10_10 0.0123456789
|
||||
d1_0 8
|
||||
d53 00000000000000000000000000000000001234566789123456800
|
||||
d53_10 000000000000000000000000100000000000000000.0000000000
|
||||
f0 0000012345.1
|
||||
f20_3 0000000000056789.988
|
||||
f23_0 000123457000
|
||||
r1_1 0.9
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (0,0,0,0,0,0,0,0,0,0,2);
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (
|
||||
99999999999999999999999999999999999999,
|
||||
99999999999999999999999999999999999999.9999999999999999,
|
||||
0.9,
|
||||
99999999999999999999999999999999999999.9,
|
||||
99999999999999999.999,
|
||||
999999999999999999999999999999999999999999999999999999999999999999999999999999999,
|
||||
9,
|
||||
0.9999999999,
|
||||
1999999999999999999999999999999999999999999999999999999,
|
||||
19999999999999999999999999999999999999999999.9999999999,
|
||||
3
|
||||
);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'd53' at row 1
|
||||
Warning 1264 Out of range value for column 'd53_10' at row 1
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 0000012345.1
|
||||
d 0000000000000000000000
|
||||
d 0000000000000000001e81
|
||||
d 000000000011111111.111
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0123456789
|
||||
d10_10 0.9999999999
|
||||
d1_0 0
|
||||
d1_0 8
|
||||
d1_0 9
|
||||
d53 00000000000000000000000000000000000000000000000000000
|
||||
d53 00000000000000000000000000000000001234566789123456800
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53_10 000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 000000000000000000000000100000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
f 000000000000
|
||||
f 000000001e38
|
||||
f0 000000000000
|
||||
f0 000000001e38
|
||||
f0 0000012345.1
|
||||
f20_3 0000000000000000.000
|
||||
f20_3 0000000000056789.988
|
||||
f20_3 99999998430674940.000
|
||||
f23_0 000000000000
|
||||
f23_0 000000001e38
|
||||
f23_0 000123457000
|
||||
r1_1 0.0
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (-999999999999999999999999,-99999999999.999999999999,-0.9,-999.99999999999999999999,-99999999999999999.999,-999999999999999999999999999999999999999999999999999999999999-0.999,-9,-.9999999999,-999999999999999999999999999999.99999999999999999999999,-9999999999999999999999999999999999999999999.9999999999,4);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'f' at row 1
|
||||
Warning 1264 Out of range value for column 'f0' at row 1
|
||||
Warning 1264 Out of range value for column 'r1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'f23_0' at row 1
|
||||
Warning 1264 Out of range value for column 'f20_3' at row 1
|
||||
Warning 1264 Out of range value for column 'd' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_0' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_10' at row 1
|
||||
Warning 1264 Out of range value for column 'd53' at row 1
|
||||
Warning 1264 Out of range value for column 'd53_10' at row 1
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 0000012345.1
|
||||
d 0000000000000000000000
|
||||
d 0000000000000000000000
|
||||
d 0000000000000000001e81
|
||||
d 000000000011111111.111
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0123456789
|
||||
d10_10 0.9999999999
|
||||
d1_0 0
|
||||
d1_0 0
|
||||
d1_0 8
|
||||
d1_0 9
|
||||
d53 00000000000000000000000000000000000000000000000000000
|
||||
d53 00000000000000000000000000000000000000000000000000000
|
||||
d53 00000000000000000000000000000000001234566789123456800
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53_10 000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 000000000000000000000000100000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
f 000000000000
|
||||
f 000000000000
|
||||
f 000000001e38
|
||||
f0 000000000000
|
||||
f0 000000000000
|
||||
f0 000000001e38
|
||||
f0 0000012345.1
|
||||
f20_3 0000000000000000.000
|
||||
f20_3 0000000000000000.000
|
||||
f20_3 0000000000056789.988
|
||||
f20_3 99999998430674940.000
|
||||
f23_0 000000000000
|
||||
f23_0 000000000000
|
||||
f23_0 000000001e38
|
||||
f23_0 000123457000
|
||||
r1_1 0.0
|
||||
r1_1 0.0
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
SELECT MAX(f), MAX(f0), MAX(r1_1), MAX(f23_0), MAX(f20_3), MAX(d), MAX(d1_0), MAX(d10_10), MAX(d53), MAX(d53_10) FROM t1;
|
||||
MAX(f) 9.999999680285692e37
|
||||
MAX(d) 1e81
|
||||
MAX(d10_10) 0.9999999999
|
||||
MAX(d1_0) 9
|
||||
MAX(d53) 100000000000000000000000000000000000000000000000000000
|
||||
MAX(d53_10) 10000000000000000000000000000000000000000000.0000000000
|
||||
MAX(f0) 9.999999680285692e37
|
||||
MAX(f20_3) 99999998430674940.000
|
||||
MAX(f23_0) 9.999999680285692e37
|
||||
MAX(r1_1) 0.9
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
9999999999999999999999999999999999999999999999999999999999999.9999,
|
||||
5
|
||||
);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'f' at row 1
|
||||
Warning 1264 Out of range value for column 'f0' at row 1
|
||||
Warning 1264 Out of range value for column 'r1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'f23_0' at row 1
|
||||
Warning 1264 Out of range value for column 'f20_3' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_0' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_10' at row 1
|
||||
Warning 1264 Out of range value for column 'd53' at row 1
|
||||
Warning 1264 Out of range value for column 'd53_10' at row 1
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 0000012345.1
|
||||
d 0000000000000000000000
|
||||
d 0000000000000000000000
|
||||
d 0000000000000000001e61
|
||||
d 0000000000000000001e81
|
||||
d 000000000011111111.111
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0123456789
|
||||
d10_10 0.9999999999
|
||||
d10_10 0.9999999999
|
||||
d1_0 0
|
||||
d1_0 0
|
||||
d1_0 8
|
||||
d1_0 9
|
||||
d1_0 9
|
||||
d53 00000000000000000000000000000000000000000000000000000
|
||||
d53 00000000000000000000000000000000000000000000000000000
|
||||
d53 00000000000000000000000000000000001234566789123456800
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53_10 000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 000000000000000000000000100000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
f 000000000000
|
||||
f 000000000000
|
||||
f 000000001e38
|
||||
f 003.40282e38
|
||||
f0 000000000000
|
||||
f0 000000000000
|
||||
f0 000000001e38
|
||||
f0 0000012345.1
|
||||
f0 003.40282e38
|
||||
f20_3 0000000000000000.000
|
||||
f20_3 0000000000000000.000
|
||||
f20_3 0000000000056789.988
|
||||
f20_3 99999998430674940.000
|
||||
f20_3 99999998430674940.000
|
||||
f23_0 000000000000
|
||||
f23_0 000000000000
|
||||
f23_0 000000001e38
|
||||
f23_0 000123457000
|
||||
f23_0 003.40282e38
|
||||
r1_1 0.0
|
||||
r1_1 0.0
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
INSERT INTO t1 (f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10,pk) VALUES (
|
||||
999999999999999999999999999999999999999,
|
||||
999999999999999999999999999999999999999.9999999999999999,
|
||||
1.9,
|
||||
999999999999999999999999999999999999999.9,
|
||||
999999999999999999.999,
|
||||
9999999999999999999999999999999999999999999999999999999999999999999999999999999999,
|
||||
99,
|
||||
1.9999999999,
|
||||
1999999999999999999999999999999999999999999999999999999,
|
||||
19999999999999999999999999999999999999999999.9999999999,
|
||||
6
|
||||
);
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect DECIMAL value: ''
|
||||
Warning 1264 Out of range value for column 'f' at row 1
|
||||
Warning 1264 Out of range value for column 'f0' at row 1
|
||||
Warning 1264 Out of range value for column 'r1_1' at row 1
|
||||
Warning 1264 Out of range value for column 'f23_0' at row 1
|
||||
Warning 1264 Out of range value for column 'f20_3' at row 1
|
||||
Warning 1264 Out of range value for column 'd1_0' at row 1
|
||||
Warning 1264 Out of range value for column 'd10_10' at row 1
|
||||
Warning 1264 Out of range value for column 'd53' at row 1
|
||||
Warning 1264 Out of range value for column 'd53_10' at row 1
|
||||
SELECT f,f0,r1_1,f23_0,f20_3,d,d1_0,d10_10,d53,d53_10 FROM t1;
|
||||
f 0000012345.1
|
||||
d 0000000000000000000000
|
||||
d 0000000000000000000000
|
||||
d 0000000000000000001e61
|
||||
d 0000000000000000001e65
|
||||
d 0000000000000000001e81
|
||||
d 000000000011111111.111
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0000000000
|
||||
d10_10 0.0123456789
|
||||
d10_10 0.9999999999
|
||||
d10_10 0.9999999999
|
||||
d10_10 0.9999999999
|
||||
d1_0 0
|
||||
d1_0 0
|
||||
d1_0 8
|
||||
d1_0 9
|
||||
d1_0 9
|
||||
d1_0 9
|
||||
d53 00000000000000000000000000000000000000000000000000000
|
||||
d53 00000000000000000000000000000000000000000000000000000
|
||||
d53 00000000000000000000000000000000001234566789123456800
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53 100000000000000000000000000000000000000000000000000000
|
||||
d53_10 000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 000000000000000000000000100000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
d53_10 10000000000000000000000000000000000000000000.0000000000
|
||||
f 000000000000
|
||||
f 000000000000
|
||||
f 000000001e38
|
||||
f 003.40282e38
|
||||
f 003.40282e38
|
||||
f0 000000000000
|
||||
f0 000000000000
|
||||
f0 000000001e38
|
||||
f0 0000012345.1
|
||||
f0 003.40282e38
|
||||
f0 003.40282e38
|
||||
f20_3 0000000000000000.000
|
||||
f20_3 0000000000000000.000
|
||||
f20_3 0000000000056789.988
|
||||
f20_3 99999998430674940.000
|
||||
f20_3 99999998430674940.000
|
||||
f20_3 99999998430674940.000
|
||||
f23_0 000000000000
|
||||
f23_0 000000000000
|
||||
f23_0 000000001e38
|
||||
f23_0 000123457000
|
||||
f23_0 003.40282e38
|
||||
f23_0 003.40282e38
|
||||
r1_1 0.0
|
||||
r1_1 0.0
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
r1_1 0.9
|
||||
ALTER TABLE t1 ADD COLUMN d0_0 DOUBLE(0,0) ZEROFILL;
|
||||
ERROR 42000: Display width out of range for column 'd0_0' (max = 255)
|
||||
ALTER TABLE t1 ADD COLUMN n66_6 DECIMAL(256,1) ZEROFILL;
|
||||
ERROR 42000: Too big precision 256 specified for column 'n66_6'. Maximum is 65.
|
||||
ALTER TABLE t1 ADD COLUMN n66_66 DECIMAL(40,35) ZEROFILL;
|
||||
ERROR 42000: Too big scale 35 specified for column 'n66_66'. Maximum is 30.
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
a DOUBLE ZEROFILL,
|
||||
b FLOAT ZEROFILL,
|
||||
PRIMARY KEY (b)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
a double unsigned zerofill YES NULL
|
||||
b float unsigned zerofill NO PRI 000000000000
|
||||
INSERT INTO t1 (a,b) VALUES (1,1234.5);
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0000000000000000000001 0000001234.5
|
||||
DROP TABLE t1;
|
||||
########################
|
||||
# INT columns
|
||||
########################
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (
|
||||
i INT ZEROFILL,
|
||||
i0 INT(0) ZEROFILL,
|
||||
i1 INT(1) ZEROFILL,
|
||||
i20 INT(20) ZEROFILL,
|
||||
t TINYINT ZEROFILL,
|
||||
t0 TINYINT(0) ZEROFILL,
|
||||
t1 TINYINT(1) ZEROFILL,
|
||||
t20 TINYINT(20) ZEROFILL,
|
||||
s SMALLINT ZEROFILL,
|
||||
s0 SMALLINT(0) ZEROFILL,
|
||||
s1 SMALLINT(1) ZEROFILL,
|
||||
s20 SMALLINT(20) ZEROFILL,
|
||||
m MEDIUMINT ZEROFILL,
|
||||
m0 MEDIUMINT(0) ZEROFILL,
|
||||
m1 MEDIUMINT(1) ZEROFILL,
|
||||
m20 MEDIUMINT(20) ZEROFILL,
|
||||
b BIGINT ZEROFILL,
|
||||
b0 BIGINT(0) ZEROFILL,
|
||||
b1 BIGINT(1) ZEROFILL,
|
||||
b20 BIGINT(20) ZEROFILL,
|
||||
pk INT AUTO_INCREMENT PRIMARY KEY
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
i int(10) unsigned zerofill YES NULL
|
||||
i0 int(10) unsigned zerofill YES NULL
|
||||
i1 int(1) unsigned zerofill YES NULL
|
||||
i20 int(20) unsigned zerofill YES NULL
|
||||
t tinyint(3) unsigned zerofill YES NULL
|
||||
t0 tinyint(3) unsigned zerofill YES NULL
|
||||
t1 tinyint(1) unsigned zerofill YES NULL
|
||||
t20 tinyint(20) unsigned zerofill YES NULL
|
||||
s smallint(5) unsigned zerofill YES NULL
|
||||
s0 smallint(5) unsigned zerofill YES NULL
|
||||
s1 smallint(1) unsigned zerofill YES NULL
|
||||
s20 smallint(20) unsigned zerofill YES NULL
|
||||
m mediumint(8) unsigned zerofill YES NULL
|
||||
m0 mediumint(8) unsigned zerofill YES NULL
|
||||
m1 mediumint(1) unsigned zerofill YES NULL
|
||||
m20 mediumint(20) unsigned zerofill YES NULL
|
||||
b bigint(20) unsigned zerofill YES NULL
|
||||
b0 bigint(20) unsigned zerofill YES NULL
|
||||
b1 bigint(1) unsigned zerofill YES NULL
|
||||
b20 bigint(20) unsigned zerofill YES NULL
|
||||
pk int(11) NO PRI NULL auto_increment
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (2147483647,2147483647,2147483647,2147483647,127,127,127,127,32767,32767,32767,32767,8388607,8388607,8388607,8388607,9223372036854775807,9223372036854775807,9223372036854775807,9223372036854775807);
|
||||
SELECT i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20 FROM t1;
|
||||
i i0 i1 i20 t t0 t1 t20 s s0 s1 s20 m m0 m1 m20 b b0 b1 b20
|
||||
0000000000 0000000000 0 00000000000000000000 000 000 0 00000000000000000000 00000 00000 0 00000000000000000000 00000000 00000000 0 00000000000000000000 00000000000000000000 00000000000000000000 0 00000000000000000000
|
||||
0000000001 0000000002 3 00000000000000000004 005 006 7 00000000000000000008 00009 00010 11 00000000000000000012 00000013 00000014 15 00000000000000000016 00000000000000000017 00000000000000000018 19 00000000000000000020
|
||||
2147483647 2147483647 2147483647 00000000002147483647 127 127 127 00000000000000000127 32767 32767 32767 00000000000000032767 08388607 08388607 8388607 00000000000008388607 09223372036854775807 09223372036854775807 9223372036854775807 09223372036854775807
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (-2147483648,-2147483648,-2147483648,-2147483648,-128,-128,-128,-128,-32768,-32768,-32768,-32768,-8388608,-8388608,-8388608,-8388608,-9223372036854775808,-9223372036854775808,-9223372036854775808,-9223372036854775808);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'i' at row 1
|
||||
Warning 1264 Out of range value for column 'i0' at row 1
|
||||
Warning 1264 Out of range value for column 'i1' at row 1
|
||||
Warning 1264 Out of range value for column 'i20' at row 1
|
||||
Warning 1264 Out of range value for column 't' at row 1
|
||||
Warning 1264 Out of range value for column 't0' at row 1
|
||||
Warning 1264 Out of range value for column 't1' at row 1
|
||||
Warning 1264 Out of range value for column 't20' at row 1
|
||||
Warning 1264 Out of range value for column 's' at row 1
|
||||
Warning 1264 Out of range value for column 's0' at row 1
|
||||
Warning 1264 Out of range value for column 's1' at row 1
|
||||
Warning 1264 Out of range value for column 's20' at row 1
|
||||
Warning 1264 Out of range value for column 'm' at row 1
|
||||
Warning 1264 Out of range value for column 'm0' at row 1
|
||||
Warning 1264 Out of range value for column 'm1' at row 1
|
||||
Warning 1264 Out of range value for column 'm20' at row 1
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
Warning 1264 Out of range value for column 'b0' at row 1
|
||||
Warning 1264 Out of range value for column 'b1' at row 1
|
||||
Warning 1264 Out of range value for column 'b20' at row 1
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (4294967295,4294967295,4294967295,4294967295,255,255,255,255,65535,65535,65535,65535,16777215,16777215,16777215,16777215,18446744073709551615,18446744073709551615,18446744073709551615,18446744073709551615);
|
||||
SELECT i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20 FROM t1;
|
||||
i i0 i1 i20 t t0 t1 t20 s s0 s1 s20 m m0 m1 m20 b b0 b1 b20
|
||||
0000000000 0000000000 0 00000000000000000000 000 000 0 00000000000000000000 00000 00000 0 00000000000000000000 00000000 00000000 0 00000000000000000000 00000000000000000000 00000000000000000000 0 00000000000000000000
|
||||
0000000000 0000000000 0 00000000000000000000 000 000 0 00000000000000000000 00000 00000 0 00000000000000000000 00000000 00000000 0 00000000000000000000 00000000000000000000 00000000000000000000 0 00000000000000000000
|
||||
0000000001 0000000002 3 00000000000000000004 005 006 7 00000000000000000008 00009 00010 11 00000000000000000012 00000013 00000014 15 00000000000000000016 00000000000000000017 00000000000000000018 19 00000000000000000020
|
||||
2147483647 2147483647 2147483647 00000000002147483647 127 127 127 00000000000000000127 32767 32767 32767 00000000000000032767 08388607 08388607 8388607 00000000000008388607 09223372036854775807 09223372036854775807 9223372036854775807 09223372036854775807
|
||||
4294967295 4294967295 4294967295 00000000004294967295 255 255 255 00000000000000000255 65535 65535 65535 00000000000000065535 16777215 16777215 16777215 00000000000016777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (-2147483649,-2147483649,-2147483649,-2147483649,-129,-129,-129,-129,-32769,-32769,-32769,-32769,-8388609,-8388609,-8388609,-8388609,-9223372036854775809,-9223372036854775809,-9223372036854775809,-9223372036854775809);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'i' at row 1
|
||||
Warning 1264 Out of range value for column 'i0' at row 1
|
||||
Warning 1264 Out of range value for column 'i1' at row 1
|
||||
Warning 1264 Out of range value for column 'i20' at row 1
|
||||
Warning 1264 Out of range value for column 't' at row 1
|
||||
Warning 1264 Out of range value for column 't0' at row 1
|
||||
Warning 1264 Out of range value for column 't1' at row 1
|
||||
Warning 1264 Out of range value for column 't20' at row 1
|
||||
Warning 1264 Out of range value for column 's' at row 1
|
||||
Warning 1264 Out of range value for column 's0' at row 1
|
||||
Warning 1264 Out of range value for column 's1' at row 1
|
||||
Warning 1264 Out of range value for column 's20' at row 1
|
||||
Warning 1264 Out of range value for column 'm' at row 1
|
||||
Warning 1264 Out of range value for column 'm0' at row 1
|
||||
Warning 1264 Out of range value for column 'm1' at row 1
|
||||
Warning 1264 Out of range value for column 'm20' at row 1
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
Warning 1264 Out of range value for column 'b0' at row 1
|
||||
Warning 1264 Out of range value for column 'b1' at row 1
|
||||
Warning 1264 Out of range value for column 'b20' at row 1
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) VALUES (4294967296,4294967296,4294967296,4294967296,256,256,256,256,65536,65536,65536,65536,16777216,16777216,16777216,16777216,18446744073709551616,18446744073709551616,18446744073709551616,18446744073709551616);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'i' at row 1
|
||||
Warning 1264 Out of range value for column 'i0' at row 1
|
||||
Warning 1264 Out of range value for column 'i1' at row 1
|
||||
Warning 1264 Out of range value for column 'i20' at row 1
|
||||
Warning 1264 Out of range value for column 't' at row 1
|
||||
Warning 1264 Out of range value for column 't0' at row 1
|
||||
Warning 1264 Out of range value for column 't1' at row 1
|
||||
Warning 1264 Out of range value for column 't20' at row 1
|
||||
Warning 1264 Out of range value for column 's' at row 1
|
||||
Warning 1264 Out of range value for column 's0' at row 1
|
||||
Warning 1264 Out of range value for column 's1' at row 1
|
||||
Warning 1264 Out of range value for column 's20' at row 1
|
||||
Warning 1264 Out of range value for column 'm' at row 1
|
||||
Warning 1264 Out of range value for column 'm0' at row 1
|
||||
Warning 1264 Out of range value for column 'm1' at row 1
|
||||
Warning 1264 Out of range value for column 'm20' at row 1
|
||||
Warning 1264 Out of range value for column 'b' at row 1
|
||||
Warning 1264 Out of range value for column 'b0' at row 1
|
||||
Warning 1264 Out of range value for column 'b1' at row 1
|
||||
Warning 1264 Out of range value for column 'b20' at row 1
|
||||
INSERT INTO t1 (i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20) SELECT b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b FROM t1 WHERE b IN (-9223372036854775808,9223372036854775807,18446744073709551615);
|
||||
Warnings:
|
||||
Warning 1264 Out of range value for column 'i' at row 8
|
||||
Warning 1264 Out of range value for column 'i0' at row 8
|
||||
Warning 1264 Out of range value for column 'i1' at row 8
|
||||
Warning 1264 Out of range value for column 'i20' at row 8
|
||||
Warning 1264 Out of range value for column 't' at row 8
|
||||
Warning 1264 Out of range value for column 't0' at row 8
|
||||
Warning 1264 Out of range value for column 't1' at row 8
|
||||
Warning 1264 Out of range value for column 't20' at row 8
|
||||
Warning 1264 Out of range value for column 's' at row 8
|
||||
Warning 1264 Out of range value for column 's0' at row 8
|
||||
Warning 1264 Out of range value for column 's1' at row 8
|
||||
Warning 1264 Out of range value for column 's20' at row 8
|
||||
Warning 1264 Out of range value for column 'm' at row 8
|
||||
Warning 1264 Out of range value for column 'm0' at row 8
|
||||
Warning 1264 Out of range value for column 'm1' at row 8
|
||||
Warning 1264 Out of range value for column 'm20' at row 8
|
||||
Warning 1264 Out of range value for column 'i' at row 9
|
||||
Warning 1264 Out of range value for column 'i0' at row 9
|
||||
Warning 1264 Out of range value for column 'i1' at row 9
|
||||
Warning 1264 Out of range value for column 'i20' at row 9
|
||||
Warning 1264 Out of range value for column 't' at row 9
|
||||
Warning 1264 Out of range value for column 't0' at row 9
|
||||
Warning 1264 Out of range value for column 't1' at row 9
|
||||
Warning 1264 Out of range value for column 't20' at row 9
|
||||
Warning 1264 Out of range value for column 's' at row 9
|
||||
Warning 1264 Out of range value for column 's0' at row 9
|
||||
Warning 1264 Out of range value for column 's1' at row 9
|
||||
Warning 1264 Out of range value for column 's20' at row 9
|
||||
Warning 1264 Out of range value for column 'm' at row 9
|
||||
Warning 1264 Out of range value for column 'm0' at row 9
|
||||
Warning 1264 Out of range value for column 'm1' at row 9
|
||||
Warning 1264 Out of range value for column 'm20' at row 9
|
||||
Warning 1264 Out of range value for column 'i' at row 10
|
||||
Warning 1264 Out of range value for column 'i0' at row 10
|
||||
Warning 1264 Out of range value for column 'i1' at row 10
|
||||
Warning 1264 Out of range value for column 'i20' at row 10
|
||||
Warning 1264 Out of range value for column 't' at row 10
|
||||
Warning 1264 Out of range value for column 't0' at row 10
|
||||
Warning 1264 Out of range value for column 't1' at row 10
|
||||
Warning 1264 Out of range value for column 't20' at row 10
|
||||
Warning 1264 Out of range value for column 's' at row 10
|
||||
Warning 1264 Out of range value for column 's0' at row 10
|
||||
Warning 1264 Out of range value for column 's1' at row 10
|
||||
Warning 1264 Out of range value for column 's20' at row 10
|
||||
Warning 1264 Out of range value for column 'm' at row 10
|
||||
Warning 1264 Out of range value for column 'm0' at row 10
|
||||
Warning 1264 Out of range value for column 'm1' at row 10
|
||||
Warning 1264 Out of range value for column 'm20' at row 10
|
||||
SELECT i,i0,i1,i20,t,t0,t1,t20,s,s0,s1,s20,m,m0,m1,m20,b,b0,b1,b20 FROM t1;
|
||||
i i0 i1 i20 t t0 t1 t20 s s0 s1 s20 m m0 m1 m20 b b0 b1 b20
|
||||
0000000000 0000000000 0 00000000000000000000 000 000 0 00000000000000000000 00000 00000 0 00000000000000000000 00000000 00000000 0 00000000000000000000 00000000000000000000 00000000000000000000 0 00000000000000000000
|
||||
0000000000 0000000000 0 00000000000000000000 000 000 0 00000000000000000000 00000 00000 0 00000000000000000000 00000000 00000000 0 00000000000000000000 00000000000000000000 00000000000000000000 0 00000000000000000000
|
||||
0000000000 0000000000 0 00000000000000000000 000 000 0 00000000000000000000 00000 00000 0 00000000000000000000 00000000 00000000 0 00000000000000000000 00000000000000000000 00000000000000000000 0 00000000000000000000
|
||||
0000000001 0000000002 3 00000000000000000004 005 006 7 00000000000000000008 00009 00010 11 00000000000000000012 00000013 00000014 15 00000000000000000016 00000000000000000017 00000000000000000018 19 00000000000000000020
|
||||
2147483647 2147483647 2147483647 00000000002147483647 127 127 127 00000000000000000127 32767 32767 32767 00000000000000032767 08388607 08388607 8388607 00000000000008388607 09223372036854775807 09223372036854775807 9223372036854775807 09223372036854775807
|
||||
4294967295 4294967295 4294967295 00000000004294967295 255 255 255 00000000000000000255 65535 65535 65535 00000000000000065535 16777215 16777215 16777215 00000000000016777215 09223372036854775807 09223372036854775807 9223372036854775807 09223372036854775807
|
||||
4294967295 4294967295 4294967295 00000000004294967295 255 255 255 00000000000000000255 65535 65535 65535 00000000000000065535 16777215 16777215 16777215 00000000000016777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
4294967295 4294967295 4294967295 00000000004294967295 255 255 255 00000000000000000255 65535 65535 65535 00000000000000065535 16777215 16777215 16777215 00000000000016777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
4294967295 4294967295 4294967295 00000000004294967295 255 255 255 00000000000000000255 65535 65535 65535 00000000000000065535 16777215 16777215 16777215 00000000000016777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
4294967295 4294967295 4294967295 00000000004294967295 255 255 255 00000000000000000255 65535 65535 65535 00000000000000065535 16777215 16777215 16777215 00000000000016777215 18446744073709551615 18446744073709551615 18446744073709551615 18446744073709551615
|
||||
ALTER TABLE t1 ADD COLUMN i257 INT(257) ZEROFILL;
|
||||
ERROR 42000: Display width out of range for column 'i257' (max = 255)
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
t TINYINT ZEROFILL,
|
||||
s SMALLINT ZEROFILL,
|
||||
m MEDIUMINT ZEROFILL,
|
||||
i INT ZEROFILL,
|
||||
b BIGINT ZEROFILL,
|
||||
PRIMARY KEY (b)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW COLUMNS IN t1;
|
||||
Field Type Null Key Default Extra
|
||||
t tinyint(3) unsigned zerofill YES NULL
|
||||
s smallint(5) unsigned zerofill YES NULL
|
||||
m mediumint(8) unsigned zerofill YES NULL
|
||||
i int(10) unsigned zerofill YES NULL
|
||||
b bigint(20) unsigned zerofill NO PRI 00000000000000000000
|
||||
INSERT INTO t1 (t,s,m,i,b) VALUES (1,10,100,1000,0);
|
||||
SELECT t,s,m,i,b FROM t1;
|
||||
t s m i b
|
||||
001 00010 00000100 0000001000 00000000000000000000
|
||||
DROP TABLE t1;
|
128
storage/rocksdb/mysql-test/rocksdb/r/collation.result
Normal file
128
storage/rocksdb/mysql-test/rocksdb/r/collation.result
Normal file
|
@ -0,0 +1,128 @@
|
|||
SET @start_global_value = @@global.ROCKSDB_STRICT_COLLATION_EXCEPTIONS;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), value2 varbinary(50), value3 text) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), value2 varbinary(50), value3 text, index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.t1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), value2 varbinary(50), value3 text, index(value3(50))) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.t1.value3 Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_check=0;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), value2 varbinary(50), value3 text, index(value3(50))) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL rocksdb_strict_collation_check=1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), value2 varbinary(50), value3 text, index(value2)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id varchar(20), value varchar(50), value2 varchar(50), value3 text, primary key (id), index(value, value2)) engine=rocksdb charset latin1 collate latin1_bin;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id varchar(20), value varchar(50), value2 varchar(50), value3 text, primary key (id), index(value, value2)) engine=rocksdb charset utf8 collate utf8_bin;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id varchar(20) collate latin1_bin, value varchar(50) collate utf8_bin, value2 varchar(50) collate latin1_bin, value3 text, primary key (id), index(value, value2)) engine=rocksdb;
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions=t1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t2 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.t2.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="t.*";
|
||||
CREATE TABLE t123 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t123;
|
||||
CREATE TABLE s123 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.s123.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions=".t.*";
|
||||
CREATE TABLE xt123 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE xt123;
|
||||
CREATE TABLE t123 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.t123.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="s.*,t.*";
|
||||
CREATE TABLE s1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE s1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE u1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.u1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="s.*|t.*";
|
||||
CREATE TABLE s1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE s1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE u1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.u1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions=",s.*,t.*";
|
||||
CREATE TABLE s1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE s1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE u1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.u1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="|s.*|t.*";
|
||||
CREATE TABLE s1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE s1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE u1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.u1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="s.*,,t.*";
|
||||
CREATE TABLE s1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE s1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE u1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.u1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="s.*||t.*";
|
||||
CREATE TABLE s1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE s1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE u1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.u1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="s.*,t.*,";
|
||||
CREATE TABLE s1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE s1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE u1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.u1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="s.*|t.*|";
|
||||
CREATE TABLE s1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE s1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE u1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.u1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="||||,,,,s.*,,|,,||,t.*,,|||,,,";
|
||||
CREATE TABLE s1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE s1;
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE u1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.u1.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions='t1';
|
||||
CREATE TABLE t1 (id INT primary key, value varchar(50), index(value)) engine=rocksdb;
|
||||
ALTER TABLE t1 AUTO_INCREMENT=1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t2 (id INT primary key, value varchar(50), index(value)) engine=rocksdb;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.t2.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
CREATE TABLE t2 (id INT primary key, value varchar(50)) engine=rocksdb;
|
||||
ALTER TABLE t2 ADD INDEX(value);
|
||||
ERROR HY000: Unsupported collation on string indexed column test.t2.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
DROP TABLE t2;
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="[a-b";
|
||||
Invalid pattern in strict_collation_exceptions: [a-b
|
||||
CREATE TABLE a (id INT PRIMARY KEY, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.a.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="[a-b]";
|
||||
CREATE TABLE a (id INT PRIMARY KEY, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
CREATE TABLE b (id INT PRIMARY KEY, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
CREATE TABLE c (id INT PRIMARY KEY, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.c.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
DROP TABLE a, b;
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="abc\\";
|
||||
Invalid pattern in strict_collation_exceptions: abc\
|
||||
CREATE TABLE abc (id INT PRIMARY KEY, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.abc.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions="abc";
|
||||
CREATE TABLE abc (id INT PRIMARY KEY, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
CREATE TABLE abcd (id INT PRIMARY KEY, value varchar(50), index(value)) engine=rocksdb charset utf8;
|
||||
ERROR HY000: Unsupported collation on string indexed column test.abcd.value Use binary collation (binary, latin1_bin, utf8_bin).
|
||||
DROP TABLE abc;
|
||||
SET GLOBAL rocksdb_strict_collation_exceptions=@start_global_value;
|
|
@ -0,0 +1,25 @@
|
|||
CREATE TABLE `r1.lol` (
|
||||
`c1` int(10) NOT NULL DEFAULT '0',
|
||||
`c2` int(11) NOT NULL DEFAULT '0',
|
||||
`c3` int(1) NOT NULL DEFAULT '0',
|
||||
`c4` int(11) NOT NULL DEFAULT '0',
|
||||
`c5` int(11) NOT NULL DEFAULT '0',
|
||||
`c6` varchar(100) NOT NULL DEFAULT '',
|
||||
`c7` varchar(100) NOT NULL DEFAULT '',
|
||||
`c8` varchar(255) NOT NULL DEFAULT '',
|
||||
`c9` int(10) NOT NULL DEFAULT '125',
|
||||
`c10` int(10) NOT NULL DEFAULT '125',
|
||||
`c11` text NOT NULL,
|
||||
`c12` int(11) NOT NULL DEFAULT '0',
|
||||
`c13` int(10) NOT NULL DEFAULT '0',
|
||||
`c14` text NOT NULL,
|
||||
`c15` blob NOT NULL,
|
||||
`c16` int(11) NOT NULL DEFAULT '0',
|
||||
`c17` int(11) NOT NULL DEFAULT '0',
|
||||
`c18` int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`c1`),
|
||||
KEY i1 (`c4`),
|
||||
KEY i2 (`c7`),
|
||||
KEY i3 (`c2`)) ENGINE=RocksDB DEFAULT CHARSET=latin1;
|
||||
DROP INDEX i1 ON `r1.lol`;
|
||||
DROP TABLE `r1.lol`;
|
93
storage/rocksdb/mysql-test/rocksdb/r/compact_deletes.result
Normal file
93
storage/rocksdb/mysql-test/rocksdb/r/compact_deletes.result
Normal file
|
@ -0,0 +1,93 @@
|
|||
DROP TABLE IF EXISTS r1;
|
||||
create table r1 (
|
||||
id1 int,
|
||||
id2 int,
|
||||
type int,
|
||||
value varchar(100),
|
||||
value2 int,
|
||||
value3 int,
|
||||
primary key (type, id1, id2),
|
||||
index id1_type (id1, type, value2, value, id2)
|
||||
) engine=rocksdb collate latin1_bin;
|
||||
select 'loading data';
|
||||
loading data
|
||||
loading data
|
||||
set global rocksdb_force_flush_memtable_now=1;
|
||||
optimize table r1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.r1 optimize status OK
|
||||
Test 1: Do a bunch of updates without setting the compaction sysvar
|
||||
Expect: no compaction
|
||||
set global rocksdb_compaction_sequential_deletes_window=0;
|
||||
set global rocksdb_compaction_sequential_deletes= 0;
|
||||
set global rocksdb_compaction_sequential_deletes_file_size=0;
|
||||
set global rocksdb_force_flush_memtable_now=1;
|
||||
select sleep(1);
|
||||
sleep(1)
|
||||
0
|
||||
wait_for_delete: 0
|
||||
There are deletes left
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_file_size= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_window= 0;
|
||||
Test 2: Do a bunch of updates and set the compaction sysvar
|
||||
Expect: compaction
|
||||
set global rocksdb_compaction_sequential_deletes_window=1000;
|
||||
set global rocksdb_compaction_sequential_deletes= 990;
|
||||
set global rocksdb_compaction_sequential_deletes_file_size=0;
|
||||
set global rocksdb_force_flush_memtable_now=1;
|
||||
select sleep(1);
|
||||
sleep(1)
|
||||
0
|
||||
wait_for_delete: 1
|
||||
No more deletes left
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_file_size= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_window= 0;
|
||||
Test 3: Do a bunch of updates and set the compaction sysvar and a file size to something large
|
||||
Expect: no compaction
|
||||
set global rocksdb_compaction_sequential_deletes_window=1000;
|
||||
set global rocksdb_compaction_sequential_deletes= 1000;
|
||||
set global rocksdb_compaction_sequential_deletes_file_size=1000000;
|
||||
set global rocksdb_force_flush_memtable_now=1;
|
||||
select sleep(1);
|
||||
sleep(1)
|
||||
0
|
||||
wait_for_delete: 0
|
||||
There are deletes left
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_file_size= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_window= 0;
|
||||
Test 4: Do a bunch of secondary key updates and set the compaction sysvar
|
||||
Expect: compaction
|
||||
set global rocksdb_compaction_sequential_deletes_window=1000;
|
||||
set global rocksdb_compaction_sequential_deletes= 50;
|
||||
set global rocksdb_compaction_sequential_deletes_file_size=0;
|
||||
set global rocksdb_force_flush_memtable_now=1;
|
||||
select sleep(1);
|
||||
sleep(1)
|
||||
0
|
||||
wait_for_delete: 1
|
||||
No more deletes left
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_file_size= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_window= 0;
|
||||
Test 5: Do a bunch of secondary key updates and set the compaction sysvar,
|
||||
and rocksdb_compaction_sequential_deletes_count_sd turned on
|
||||
Expect: compaction
|
||||
SET @save_rocksdb_compaction_sequential_deletes_count_sd = @@global.rocksdb_compaction_sequential_deletes_count_sd;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_count_sd= ON;
|
||||
set global rocksdb_compaction_sequential_deletes_window=1000;
|
||||
set global rocksdb_compaction_sequential_deletes= 50;
|
||||
set global rocksdb_compaction_sequential_deletes_file_size=0;
|
||||
set global rocksdb_force_flush_memtable_now=1;
|
||||
select sleep(1);
|
||||
sleep(1)
|
||||
0
|
||||
wait_for_delete: 1
|
||||
No more deletes left
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_file_size= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_window= 0;
|
||||
SET GLOBAL rocksdb_compaction_sequential_deletes_count_sd= @save_rocksdb_compaction_sequential_deletes_count_sd;
|
||||
drop table r1;
|
|
@ -0,0 +1,2 @@
|
|||
create table t (id int primary key) engine=rocksdb;
|
||||
drop table t;
|
12
storage/rocksdb/mysql-test/rocksdb/r/concurrent_alter.result
Normal file
12
storage/rocksdb/mysql-test/rocksdb/r/concurrent_alter.result
Normal file
|
@ -0,0 +1,12 @@
|
|||
DROP DATABASE IF EXISTS mysqlslap;
|
||||
CREATE DATABASE mysqlslap;
|
||||
use mysqlslap;
|
||||
CREATE TABLE a1 (a int, b int) ENGINE=ROCKSDB;
|
||||
INSERT INTO a1 VALUES (1, 1);
|
||||
SHOW CREATE TABLE a1;
|
||||
Table Create Table
|
||||
a1 CREATE TABLE `a1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
DROP DATABASE mysqlslap;
|
|
@ -0,0 +1,151 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
connect con1,localhost,root,,;
|
||||
connect con2,localhost,root,,;
|
||||
connection con1;
|
||||
CREATE TABLE t1 (a INT, pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=ROCKSDB;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 1105
|
||||
connection con2;
|
||||
select * from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS';
|
||||
STAT_TYPE VALUE
|
||||
DB_NUM_SNAPSHOTS 0
|
||||
connection con1;
|
||||
COMMIT;
|
||||
connection con2;
|
||||
select * from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS';
|
||||
STAT_TYPE VALUE
|
||||
DB_NUM_SNAPSHOTS 0
|
||||
connection con1;
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 1105
|
||||
connection con2;
|
||||
INSERT INTO t1 (a) VALUES (1);
|
||||
connection con1;
|
||||
# If consistent read works on this isolation level (READ COMMITTED), the following SELECT should not return the value we inserted (1)
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
COMMIT;
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP TABLE t1;
|
||||
connect con1,localhost,root,,;
|
||||
connect con2,localhost,root,,;
|
||||
connection con1;
|
||||
CREATE TABLE r1 (id int primary key, value int, value2 int) engine=ROCKSDB;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
insert into r1 values (1,1,1),(2,2,2),(3,3,3),(4,4,4);
|
||||
BEGIN;
|
||||
connection con2;
|
||||
INSERT INTO r1 values (5,5,5);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
connection con2;
|
||||
INSERT INTO r1 values (6,6,6);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
COMMIT;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 1105
|
||||
connection con2;
|
||||
INSERT INTO r1 values (7,7,7);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
connection con2;
|
||||
INSERT INTO r1 values (8,8,8);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
COMMIT;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 1105
|
||||
connection con2;
|
||||
INSERT INTO r1 values (9,9,9);
|
||||
connection con1;
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 1105
|
||||
connection con2;
|
||||
INSERT INTO r1 values (10,10,10);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 9 9
|
||||
10 10 10
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 1105
|
||||
INSERT INTO r1 values (11,11,11);
|
||||
ERROR: 0
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 9 9
|
||||
10 10 10
|
||||
11 11 11
|
||||
drop table r1;
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
|
@ -0,0 +1,144 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
connect con1,localhost,root,,;
|
||||
connect con2,localhost,root,,;
|
||||
connection con1;
|
||||
CREATE TABLE t1 (a INT, pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=ROCKSDB;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 0
|
||||
connection con2;
|
||||
select * from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS';
|
||||
STAT_TYPE VALUE
|
||||
DB_NUM_SNAPSHOTS 1
|
||||
connection con1;
|
||||
COMMIT;
|
||||
connection con2;
|
||||
select * from information_schema.rocksdb_dbstats where stat_type='DB_NUM_SNAPSHOTS';
|
||||
STAT_TYPE VALUE
|
||||
DB_NUM_SNAPSHOTS 0
|
||||
connection con1;
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 0
|
||||
connection con2;
|
||||
INSERT INTO t1 (a) VALUES (1);
|
||||
connection con1;
|
||||
# If consistent read works on this isolation level (REPEATABLE READ), the following SELECT should not return the value we inserted (1)
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
COMMIT;
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP TABLE t1;
|
||||
connect con1,localhost,root,,;
|
||||
connect con2,localhost,root,,;
|
||||
connection con1;
|
||||
CREATE TABLE r1 (id int primary key, value int, value2 int) engine=ROCKSDB;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||
insert into r1 values (1,1,1),(2,2,2),(3,3,3),(4,4,4);
|
||||
BEGIN;
|
||||
connection con2;
|
||||
INSERT INTO r1 values (5,5,5);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
connection con2;
|
||||
INSERT INTO r1 values (6,6,6);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
COMMIT;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 0
|
||||
connection con2;
|
||||
INSERT INTO r1 values (7,7,7);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
connection con2;
|
||||
INSERT INTO r1 values (8,8,8);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
COMMIT;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 0
|
||||
connection con2;
|
||||
INSERT INTO r1 values (9,9,9);
|
||||
connection con1;
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 0
|
||||
connection con2;
|
||||
INSERT INTO r1 values (10,10,10);
|
||||
connection con1;
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 9 9
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
ERROR: 0
|
||||
INSERT INTO r1 values (11,11,11);
|
||||
ERROR: 1105
|
||||
SELECT * FROM r1;
|
||||
id value value2
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 9 9
|
||||
10 10 10
|
||||
drop table r1;
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
|
@ -0,0 +1,24 @@
|
|||
# -- WARNING ----------------------------------------------------------------
|
||||
# According to I_S.ENGINES, does not support transactions.
|
||||
# If it is true, the test will most likely fail; you can
|
||||
# either create an rdiff file, or add the test to disabled.def.
|
||||
# If transactions should be supported, check the data in Information Schema.
|
||||
# ---------------------------------------------------------------------------
|
||||
DROP TABLE IF EXISTS t1;
|
||||
connect con1,localhost,root,,;
|
||||
connect con2,localhost,root,,;
|
||||
connection con1;
|
||||
CREATE TABLE t1 (a INT, pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=ROCKSDB;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
connection con2;
|
||||
INSERT INTO t1 (a) VALUES (1);
|
||||
connection con1;
|
||||
# If consistent read works on this isolation level (SERIALIZABLE), the following SELECT should not return the value we inserted (1)
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
COMMIT;
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1,74 @@
|
|||
#
|
||||
# Test how MyRocks handles reading corrupted data from disk.
|
||||
# Data corruption is simulated at source-code level.
|
||||
#
|
||||
#
|
||||
# A test for case when data in the table *record* is longer
|
||||
# than table DDL expects it to be
|
||||
#
|
||||
create table t1 (
|
||||
pk int not null primary key,
|
||||
col1 varchar(10)
|
||||
) engine=rocksdb;
|
||||
insert into t1 values (1,1),(2,2),(3,3);
|
||||
select * from t1;
|
||||
pk col1
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
set @tmp1=@@rocksdb_verify_checksums;
|
||||
set rocksdb_verify_checksums=1;
|
||||
set session debug= "+d,myrocks_simulate_bad_row_read1";
|
||||
select * from t1 where pk=1;
|
||||
ERROR HY000: Got error 122 from storage engine
|
||||
set session debug= "-d,myrocks_simulate_bad_row_read1";
|
||||
set rocksdb_verify_checksums=@tmp1;
|
||||
select * from t1 where pk=1;
|
||||
pk col1
|
||||
1 1
|
||||
set session debug= "+d,myrocks_simulate_bad_row_read2";
|
||||
select * from t1 where pk=1;
|
||||
ERROR HY000: Got error 122 from storage engine
|
||||
set session debug= "-d,myrocks_simulate_bad_row_read2";
|
||||
set session debug= "+d,myrocks_simulate_bad_row_read3";
|
||||
select * from t1 where pk=1;
|
||||
ERROR HY000: Got error 122 from storage engine
|
||||
set session debug= "-d,myrocks_simulate_bad_row_read3";
|
||||
insert into t1 values(4,'0123456789');
|
||||
select * from t1;
|
||||
pk col1
|
||||
1 1
|
||||
2 2
|
||||
3 3
|
||||
4 0123456789
|
||||
drop table t1;
|
||||
#
|
||||
# A test for case when index data is longer than table DDL
|
||||
# expects it to be
|
||||
#
|
||||
create table t2 (
|
||||
pk varchar(4) not null primary key,
|
||||
col1 int not null
|
||||
) engine=rocksdb collate latin1_bin;
|
||||
insert into t2 values ('ABCD',1);
|
||||
select * from t2;
|
||||
pk col1
|
||||
ABCD 1
|
||||
set session debug= "+d,myrocks_simulate_bad_pk_read1";
|
||||
select * from t2;
|
||||
ERROR HY000: Got error 122 from storage engine
|
||||
set session debug= "-d,myrocks_simulate_bad_pk_read1";
|
||||
drop table t2;
|
||||
create table t2 (
|
||||
pk varchar(4) not null primary key,
|
||||
col1 int not null
|
||||
) engine=rocksdb;
|
||||
insert into t2 values ('ABCD',1);
|
||||
select * from t2;
|
||||
pk col1
|
||||
ABCD 1
|
||||
set session debug= "+d,myrocks_simulate_bad_pk_read1";
|
||||
select * from t2;
|
||||
ERROR HY000: Got error 122 from storage engine
|
||||
set session debug= "-d,myrocks_simulate_bad_pk_read1";
|
||||
drop table t2;
|
165
storage/rocksdb/mysql-test/rocksdb/r/create_table.result
Normal file
165
storage/rocksdb/mysql-test/rocksdb/r/create_table.result
Normal file
|
@ -0,0 +1,165 @@
|
|||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
CREATE TABLE IF NOT EXISTS t1 (a INT PRIMARY KEY) ENGINE=rocksdb;
|
||||
Warnings:
|
||||
Note 1050 Table 't1' already exists
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
CREATE TEMPORARY TABLE t2 (a INT PRIMARY KEY) ENGINE=rocksdb;
|
||||
ERROR HY000: Table storage engine 'ROCKSDB' does not support the create option 'TEMPORARY'
|
||||
DROP TABLE t2;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
SET default_storage_engine = rocksdb;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY);
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY) AS SELECT 1 AS a UNION SELECT 2 AS a;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
FLUSH LOGS;
|
||||
DROP TABLE IF EXISTS 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,c17 INT,
|
||||
c18 INT,c19 INT,c20 INT,c21 INT,c22 INT,c23 INT,c24 INT,c25 INT,
|
||||
c26 INT,c27 INT,c28 INT,c29 INT,c30 INT,c31 INT,c32 INT,c33 INT,
|
||||
c34 INT,c35 INT,c36 INT,c37 INT,c38 INT,c39 INT,c40 INT,c41 INT,
|
||||
c42 INT,c43 INT,c44 INT,c45 INT,c46 INT,c47 INT,c48 INT,c49 INT,
|
||||
c50 INT,c51 INT,c52 INT,c53 INT,c54 INT,c55 INT,c56 INT,c57 INT,
|
||||
c58 INT,c59 INT,c60 INT,c61 INT,c62 INT,c63 INT,c64 INT,c65 INT,
|
||||
c66 INT,c67 INT,c68 INT,c69 INT,c70 INT,c71 INT,c72 INT,c73 INT,
|
||||
c74 INT,c75 INT,c76 INT,c77 INT,c78 INT,c79 INT,c80 INT,c81 INT,
|
||||
c82 INT,c83 INT,c84 INT,c85 INT,c86 INT,c87 INT,c88 INT,c89 INT,
|
||||
c90 INT,c91 INT,c92 INT,c93 INT,c94 INT,c95 INT,c96 INT,c97 INT,
|
||||
c98 INT,c99 INT,c100 INT,c101 INT,c102 INT,c103 INT,c104 INT,
|
||||
c105 INT,c106 INT,c107 INT,c108 INT,c109 INT,c110 INT,c111 INT,
|
||||
c112 INT,c113 INT,c114 INT,c115 INT,c116 INT,c117 INT,c118 INT,
|
||||
c119 INT,c120 INT,c121 INT,c122 INT,c123 INT,c124 INT,c125 INT,
|
||||
c126 INT,c127 INT,c128 INT,c129 INT,c130 INT,c131 INT,c132 INT,
|
||||
c133 INT,c134 INT,c135 INT,c136 INT,c137 INT,c138 INT,c139 INT,
|
||||
c140 INT,c141 INT,c142 INT,c143 INT,c144 INT,c145 INT,c146 INT,
|
||||
c147 INT,c148 INT,c149 INT,c150 INT,c151 INT,c152 INT,c153 INT,
|
||||
c154 INT,c155 INT,c156 INT,c157 INT,c158 INT,c159 INT,c160 INT,
|
||||
c161 INT,c162 INT,c163 INT,c164 INT,c165 INT,c166 INT,c167 INT,
|
||||
c168 INT,c169 INT,c170 INT,c171 INT,c172 INT,c173 INT,c174 INT,
|
||||
c175 INT,c176 INT,c177 INT,c178 INT,c179 INT,c180 INT,c181 INT,
|
||||
c182 INT,c183 INT,c184 INT,c185 INT,c186 INT,c187 INT,c188 INT,
|
||||
c189 INT,c190 INT,c191 INT,c192 INT,c193 INT,c194 INT,c195 INT,
|
||||
c196 INT,c197 INT,c198 INT,c199 INT,c200 INT,c201 INT,c202 INT,
|
||||
c203 INT,c204 INT,c205 INT,c206 INT,c207 INT,c208 INT,c209 INT,
|
||||
c210 INT,c211 INT,c212 INT,c213 INT,c214 INT,c215 INT,c216 INT,
|
||||
c217 INT,c218 INT,c219 INT,c220 INT,c221 INT,c222 INT,c223 INT,
|
||||
c224 INT,c225 INT,c226 INT,c227 INT,c228 INT,c229 INT,c230 INT,
|
||||
c231 INT,c232 INT,c233 INT,c234 INT,c235 INT,c236 INT,c237 INT,
|
||||
c238 INT,c239 INT,c240 INT,c241 INT,c242 INT,c243 INT,c244 INT,
|
||||
c245 INT,c246 INT,c247 INT,c248 INT,c249 INT,c250 INT,c251 INT,
|
||||
c252 INT,c253 INT,c254 INT,c255 INT,c256 INT,c257 INT,c258 INT,
|
||||
c259 INT,c260 INT,c261 INT,c262 INT,c263 INT,c264 INT,c265 INT,
|
||||
c266 INT,c267 INT,c268 INT,c269 INT,c270 INT,c271 INT,c272 INT,
|
||||
c273 INT,c274 INT,c275 INT,c276 INT,c277 INT,c278 INT,c279 INT,
|
||||
c280 INT,c281 INT,c282 INT,c283 INT,c284 INT,c285 INT,c286 INT,
|
||||
c287 INT,c288 INT,c289 INT,c290 INT,c291 INT,c292 INT,c293 INT,
|
||||
c294 INT,c295 INT,c296 INT,c297 INT,c298 INT,c299 INT,c300 INT,
|
||||
c301 INT,c302 INT,c303 INT,c304 INT,c305 INT,c306 INT,c307 INT,
|
||||
c308 INT,c309 INT,c310 INT,c311 INT,c312 INT,c313 INT,c314 INT,
|
||||
c315 INT,c316 INT,c317 INT,c318 INT,c319 INT,c320 INT,c321 INT,
|
||||
c322 INT,c323 INT,c324 INT,c325 INT,c326 INT,c327 INT,c328 INT,
|
||||
c329 INT,c330 INT,c331 INT,c332 INT,c333 INT,c334 INT,c335 INT,
|
||||
c336 INT,c337 INT,c338 INT,c339 INT,c340 INT,c341 INT,c342 INT,
|
||||
c343 INT,c344 INT,c345 INT,c346 INT,c347 INT,c348 INT,c349 INT,
|
||||
c350 INT,c351 INT,c352 INT,c353 INT,c354 INT,c355 INT,c356 INT,
|
||||
c357 INT,c358 INT,c359 INT,c360 INT,c361 INT,c362 INT,c363 INT,
|
||||
c364 INT,c365 INT,c366 INT,c367 INT,c368 INT,c369 INT,c370 INT,
|
||||
c371 INT,c372 INT,c373 INT,c374 INT,c375 INT,c376 INT,c377 INT,
|
||||
c378 INT,c379 INT,c380 INT,c381 INT,c382 INT,c383 INT,c384 INT,
|
||||
c385 INT,c386 INT,c387 INT,c388 INT,c389 INT,c390 INT,c391 INT,
|
||||
c392 INT,c393 INT,c394 INT,c395 INT,c396 INT,c397 INT,c398 INT,
|
||||
c399 INT,c400 INT,c401 INT,c402 INT,c403 INT,c404 INT,c405 INT,
|
||||
c406 INT,c407 INT,c408 INT,c409 INT,c410 INT,c411 INT,c412 INT,
|
||||
c413 INT,c414 INT,c415 INT,c416 INT,c417 INT,c418 INT,c419 INT,
|
||||
c420 INT,c421 INT,c422 INT,c423 INT,c424 INT,c425 INT,c426 INT,
|
||||
c427 INT,c428 INT,c429 INT,c430 INT,c431 INT,c432 INT,c433 INT,
|
||||
c434 INT,c435 INT,c436 INT,c437 INT,c438 INT,c439 INT,c440 INT,
|
||||
c441 INT,c442 INT,c443 INT,c444 INT,c445 INT,c446 INT,c447 INT,
|
||||
c448 INT,
|
||||
KEY (c1,c2,c3,c4,c5,c6,c7),KEY (c8,c9,c10,c11,c12,c13,c14),
|
||||
KEY (c15,c16,c17,c18,c19,c20,c21),KEY (c22,c23,c24,c25,c26,c27,c28),
|
||||
KEY (c29,c30,c31,c32,c33,c34,c35),KEY (c36,c37,c38,c39,c40,c41,c42),
|
||||
KEY (c43,c44,c45,c46,c47,c48,c49),KEY (c50,c51,c52,c53,c54,c55,c56),
|
||||
KEY (c57,c58,c59,c60,c61,c62,c63),KEY (c64,c65,c66,c67,c68,c69,c70),
|
||||
KEY (c71,c72,c73,c74,c75,c76,c77),KEY (c78,c79,c80,c81,c82,c83,c84),
|
||||
KEY (c85,c86,c87,c88,c89,c90,c91),KEY (c92,c93,c94,c95,c96,c97,c98),
|
||||
KEY (c99,c100,c101,c102,c103,c104,c105),
|
||||
KEY (c106,c107,c108,c109,c110,c111,c112),
|
||||
KEY (c113,c114,c115,c116,c117,c118,c119),
|
||||
KEY (c120,c121,c122,c123,c124,c125,c126),
|
||||
KEY (c127,c128,c129,c130,c131,c132,c133),
|
||||
KEY (c134,c135,c136,c137,c138,c139,c140),
|
||||
KEY (c141,c142,c143,c144,c145,c146,c147),
|
||||
KEY (c148,c149,c150,c151,c152,c153,c154),
|
||||
KEY (c155,c156,c157,c158,c159,c160,c161),
|
||||
KEY (c162,c163,c164,c165,c166,c167,c168),
|
||||
KEY (c169,c170,c171,c172,c173,c174,c175),
|
||||
KEY (c176,c177,c178,c179,c180,c181,c182),
|
||||
KEY (c183,c184,c185,c186,c187,c188,c189),
|
||||
KEY (c190,c191,c192,c193,c194,c195,c196),
|
||||
KEY (c197,c198,c199,c200,c201,c202,c203),
|
||||
KEY (c204,c205,c206,c207,c208,c209,c210),
|
||||
KEY (c211,c212,c213,c214,c215,c216,c217),
|
||||
KEY (c218,c219,c220,c221,c222,c223,c224),
|
||||
KEY (c225,c226,c227,c228,c229,c230,c231),
|
||||
KEY (c232,c233,c234,c235,c236,c237,c238),
|
||||
KEY (c239,c240,c241,c242,c243,c244,c245),
|
||||
KEY (c246,c247,c248,c249,c250,c251,c252),
|
||||
KEY (c253,c254,c255,c256,c257,c258,c259),
|
||||
KEY (c260,c261,c262,c263,c264,c265,c266),
|
||||
KEY (c267,c268,c269,c270,c271,c272,c273),
|
||||
KEY (c274,c275,c276,c277,c278,c279,c280),
|
||||
KEY (c281,c282,c283,c284,c285,c286,c287),
|
||||
KEY (c288,c289,c290,c291,c292,c293,c294),
|
||||
KEY (c295,c296,c297,c298,c299,c300,c301),
|
||||
KEY (c302,c303,c304,c305,c306,c307,c308),
|
||||
KEY (c309,c310,c311,c312,c313,c314,c315),
|
||||
KEY (c316,c317,c318,c319,c320,c321,c322),
|
||||
KEY (c323,c324,c325,c326,c327,c328,c329),
|
||||
KEY (c330,c331,c332,c333,c334,c335,c336),
|
||||
KEY (c337,c338,c339,c340,c341,c342,c343),
|
||||
KEY (c344,c345,c346,c347,c348,c349,c350),
|
||||
KEY (c351,c352,c353,c354,c355,c356,c357),
|
||||
KEY (c358,c359,c360,c361,c362,c363,c364),
|
||||
KEY (c365,c366,c367,c368,c369,c370,c371),
|
||||
KEY (c372,c373,c374,c375,c376,c377,c378),
|
||||
KEY (c379,c380,c381,c382,c383,c384,c385),
|
||||
KEY (c386,c387,c388,c389,c390,c391,c392),
|
||||
KEY (c393,c394,c395,c396,c397,c398,c399),
|
||||
KEY (c400,c401,c402,c403,c404,c405,c406),
|
||||
KEY (c407,c408,c409,c410,c411,c412,c413),
|
||||
KEY (c414,c415,c416,c417,c418,c419,c420),
|
||||
KEY (c421,c422,c423,c424,c425,c426,c427),
|
||||
KEY (c428,c429,c430,c431,c432,c433,c434),
|
||||
KEY (c435,c436,c437,c438,c439,c440,c441),
|
||||
KEY (c442,c443,c444,c445,c446,c447,c448));
|
||||
DROP TABLE t1;
|
37
storage/rocksdb/mysql-test/rocksdb/r/deadlock.result
Normal file
37
storage/rocksdb/mysql-test/rocksdb/r/deadlock.result
Normal file
|
@ -0,0 +1,37 @@
|
|||
#
|
||||
# Validate that deadlock errors don't occur with a high level of concurrency
|
||||
#
|
||||
# Disable for valgrind because this takes too long
|
||||
DROP DATABASE IF EXISTS mysqlslap;
|
||||
CREATE DATABASE mysqlslap;
|
||||
USE mysqlslap;
|
||||
CREATE TABLE t1(id1 BIGINT, id2 BIGINT, count INT, PRIMARY KEY(id1, id2), KEY(id2)) ENGINE=rocksdb;
|
||||
CREATE TABLE t1rev(id1 BIGINT, id2 BIGINT, count INT, PRIMARY KEY(id1, id2) COMMENT "rev:cf2", KEY(id2) COMMENT "rev:cf2") ENGINE=rocksdb;
|
||||
SET @save = @@global.rocksdb_lock_wait_timeout;
|
||||
SET GLOBAL rocksdb_lock_wait_timeout = 60;
|
||||
SELECT count from t1;
|
||||
count
|
||||
50000
|
||||
SELECT count from t1;
|
||||
count
|
||||
100000
|
||||
SELECT count from t1;
|
||||
count
|
||||
150000
|
||||
SELECT count from t1;
|
||||
count
|
||||
200000
|
||||
SELECT count from t1rev;
|
||||
count
|
||||
50000
|
||||
SELECT count from t1rev;
|
||||
count
|
||||
100000
|
||||
SELECT count from t1rev;
|
||||
count
|
||||
150000
|
||||
SELECT count from t1rev;
|
||||
count
|
||||
200000
|
||||
SET GLOBAL rocksdb_lock_wait_timeout = @save;
|
||||
DROP DATABASE mysqlslap;
|
166
storage/rocksdb/mysql-test/rocksdb/r/delete.result
Normal file
166
storage/rocksdb/mysql-test/rocksdb/r/delete.result
Normal file
|
@ -0,0 +1,166 @@
|
|||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (10000,'foobar'),(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e');
|
||||
INSERT INTO t1 (a,b) SELECT a, b FROM t1;
|
||||
DELETE FROM t1 WHERE b IN ('c');
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
1 a
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
4 d
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
DELETE FROM t1 WHERE a < 0 OR b = 'a';
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
4 d
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
DELETE FROM t1 WHERE a <= 4 ORDER BY b DESC LIMIT 1;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
CREATE TABLE t2 (c CHAR(8), d INT, pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t2 (c,d) SELECT b, a FROM t1;
|
||||
SELECT c,d FROM t2;
|
||||
c d
|
||||
b 2
|
||||
b 2
|
||||
d 4
|
||||
e 5
|
||||
e 5
|
||||
foobar 10000
|
||||
foobar 10000
|
||||
DELETE t2.* FROM t1, t2 WHERE c < b AND a + d != 1;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
SELECT c,d FROM t2;
|
||||
c d
|
||||
foobar 10000
|
||||
foobar 10000
|
||||
DELETE FROM t2, t1.* USING t2, t1 WHERE c = 'foobar' and b = c;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
2 b
|
||||
2 b
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
SELECT c,d FROM t2;
|
||||
c d
|
||||
DELETE FROM t1;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'f'),(7,'g'),(8,'h'),(10000,'foobar');
|
||||
INSERT INTO t1 (a,b) SELECT a, b FROM t1;
|
||||
BEGIN;
|
||||
DELETE FROM t1 WHERE b IN ('c');
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
1 a
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
4 d
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
6 f
|
||||
6 f
|
||||
7 g
|
||||
7 g
|
||||
8 h
|
||||
8 h
|
||||
DELETE FROM t1 WHERE a < 0 OR b = 'a';
|
||||
COMMIT;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
4 d
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
6 f
|
||||
6 f
|
||||
7 g
|
||||
7 g
|
||||
8 h
|
||||
8 h
|
||||
BEGIN;
|
||||
DELETE FROM t1 WHERE a <= 4 ORDER BY b DESC LIMIT 1;
|
||||
SAVEPOINT spt1;
|
||||
DELETE FROM t1;
|
||||
RELEASE SAVEPOINT spt1;
|
||||
ROLLBACK;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
4 d
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
6 f
|
||||
6 f
|
||||
7 g
|
||||
7 g
|
||||
8 h
|
||||
8 h
|
||||
BEGIN;
|
||||
DELETE FROM t1 WHERE a <= 4 ORDER BY b DESC LIMIT 1;
|
||||
SAVEPOINT spt1;
|
||||
DELETE FROM t1;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a');
|
||||
ROLLBACK TO SAVEPOINT spt1;
|
||||
ERROR HY000: MyRocks currently does not support ROLLBACK TO SAVEPOINT if modifying rows.
|
||||
COMMIT;
|
||||
ERROR HY000: This transaction was rolled back and cannot be committed. Only supported operation is to roll it back, so all pending changes will be discarded. Please restart another transaction.
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
4 d
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
6 f
|
||||
6 f
|
||||
7 g
|
||||
7 g
|
||||
8 h
|
||||
8 h
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1,15 @@
|
|||
set debug_sync='RESET';
|
||||
drop table if exists t1;
|
||||
create table t1 (id1 int, id2 int, value int, primary key (id1, id2)) engine=rocksdb;
|
||||
insert into t1 values (1, 1, 1),(1, 2, 1),(1, 3, 1), (2, 2, 2);
|
||||
set debug_sync='rocksdb.get_row_by_rowid SIGNAL parked WAIT_FOR go';
|
||||
update t1 set value=100 where id1=1;
|
||||
set debug_sync='now WAIT_FOR parked';
|
||||
delete from t1 where id1=1 and id2=1;
|
||||
set debug_sync='now SIGNAL go';
|
||||
select * from t1 where id1=1 for update;
|
||||
id1 id2 value
|
||||
1 2 100
|
||||
1 3 100
|
||||
set debug_sync='RESET';
|
||||
drop table t1;
|
59
storage/rocksdb/mysql-test/rocksdb/r/delete_ignore.result
Normal file
59
storage/rocksdb/mysql-test/rocksdb/r/delete_ignore.result
Normal file
|
@ -0,0 +1,59 @@
|
|||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (10000,'foobar'),(1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e');
|
||||
INSERT INTO t1 (a,b) SELECT a, b FROM t1;
|
||||
CREATE TABLE t2 (pk INT AUTO_INCREMENT PRIMARY KEY, c CHAR(8), d INT) ENGINE=rocksdb;
|
||||
INSERT INTO t2 (c,d) SELECT b, a FROM t1;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
1 a
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
3 c
|
||||
3 c
|
||||
4 d
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
SELECT c,d FROM t2;
|
||||
c d
|
||||
a 1
|
||||
a 1
|
||||
b 2
|
||||
b 2
|
||||
c 3
|
||||
c 3
|
||||
d 4
|
||||
d 4
|
||||
e 5
|
||||
e 5
|
||||
foobar 10000
|
||||
foobar 10000
|
||||
DELETE IGNORE FROM t1 WHERE b IS NOT NULL ORDER BY a LIMIT 1;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
10000 foobar
|
||||
10000 foobar
|
||||
2 b
|
||||
2 b
|
||||
3 c
|
||||
3 c
|
||||
4 d
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
DELETE IGNORE t1.*, t2.* FROM t1, t2 WHERE c < b OR a != ( SELECT 1 UNION SELECT 2 );
|
||||
Warnings:
|
||||
Error 1242 Subquery returns more than 1 row
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
SELECT c,d FROM t2;
|
||||
c d
|
||||
foobar 10000
|
||||
foobar 10000
|
||||
DROP TABLE t1, t2;
|
24
storage/rocksdb/mysql-test/rocksdb/r/delete_quick.result
Normal file
24
storage/rocksdb/mysql-test/rocksdb/r/delete_quick.result
Normal file
|
@ -0,0 +1,24 @@
|
|||
DROP TABLE IF EXISTS t1,t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), PRIMARY KEY (a)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e');
|
||||
DELETE QUICK FROM t1 WHERE a = 1 OR b > 'foo';
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
2 b
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
CREATE TABLE t2 (c CHAR(8), d INT, PRIMARY KEY (c)) ENGINE=rocksdb;
|
||||
INSERT INTO t2 (c,d) SELECT b, a FROM t1;
|
||||
SELECT c,d FROM t2;
|
||||
c d
|
||||
b 2
|
||||
c 3
|
||||
d 4
|
||||
e 5
|
||||
DELETE QUICK FROM t2, t1.* USING t2, t1 WHERE c IS NULL OR a = d;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
SELECT c,d FROM t2;
|
||||
c d
|
||||
DROP TABLE t1, t2;
|
38
storage/rocksdb/mysql-test/rocksdb/r/delete_with_keys.result
Normal file
38
storage/rocksdb/mysql-test/rocksdb/r/delete_with_keys.result
Normal file
|
@ -0,0 +1,38 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY, KEY(b)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'x'),(7,'y'),(8,'z');
|
||||
DELETE FROM t1 WHERE b > 'y';
|
||||
DELETE FROM t1 WHERE a=2;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
6 x
|
||||
7 y
|
||||
DELETE FROM t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(6,'x'),(7,'y'),(8,'z');
|
||||
DELETE FROM t1 WHERE b > 'y';
|
||||
DELETE FROM t1 WHERE a=2;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
6 x
|
||||
7 y
|
||||
DELETE FROM t1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b INT, c INT, pk INT AUTO_INCREMENT PRIMARY KEY, KEY(a), KEY (b)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b,c) VALUES (1,2,3),(4,5,6),(7,8,9);
|
||||
DELETE FROM t1 WHERE a = 10 OR b = 20 ORDER BY c LIMIT 1;
|
||||
SELECT a,b,c FROM t1;
|
||||
a b c
|
||||
1 2 3
|
||||
4 5 6
|
||||
7 8 9
|
||||
DROP TABLE t1;
|
19
storage/rocksdb/mysql-test/rocksdb/r/describe.result
Normal file
19
storage/rocksdb/mysql-test/rocksdb/r/describe.result
Normal file
|
@ -0,0 +1,19 @@
|
|||
DROP TABLE IF EXISTS t1, t2, t3;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), PRIMARY KEY (a)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (100,'foo'),(2, 'b');
|
||||
CREATE TABLE t2 (a INT, b CHAR(8), PRIMARY KEY (b)) ENGINE=rocksdb CHARACTER SET utf8;
|
||||
INSERT INTO t2 (a,b) VALUES (1, 'bar');
|
||||
CREATE TABLE t3 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb CHARACTER SET utf8;
|
||||
DESCRIBE t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) NO PRI 0
|
||||
b char(8) YES NULL
|
||||
DESC t2 a;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
DESCRIBE t3 '%';
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
b char(8) YES NULL
|
||||
pk int(11) NO PRI NULL auto_increment
|
||||
DROP TABLE t1, t2, t3;
|
|
@ -0,0 +1,6 @@
|
|||
DROP DATABASE IF EXISTS test_drop_database;
|
||||
CREATE DATABASE test_drop_database;
|
||||
CREATE TABLE t1 (a int, b int, c int, primary key (a), unique key (b)) ENGINE=ROCKSDB;
|
||||
ALTER TABLE t1 DROP PRIMARY KEY, ADD PRIMARY KEY (a);
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE test_drop_database;
|
154
storage/rocksdb/mysql-test/rocksdb/r/drop_index_inplace.result
Normal file
154
storage/rocksdb/mysql-test/rocksdb/r/drop_index_inplace.result
Normal file
|
@ -0,0 +1,154 @@
|
|||
drop table if exists t1;
|
||||
CREATE TABLE t1 (a INT, b INT AUTO_INCREMENT, KEY ka(a), KEY kb(a,b), PRIMARY KEY(b)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`b`),
|
||||
KEY `ka` (`a`),
|
||||
KEY `kb` (`a`,`b`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (a) VALUES (1);
|
||||
INSERT INTO t1 (a) VALUES (3);
|
||||
INSERT INTO t1 (a) VALUES (5);
|
||||
ALTER TABLE t1 DROP INDEX ka, ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`b`),
|
||||
KEY `kb` (`a`,`b`)
|
||||
) ENGINE=ROCKSDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t1 FORCE INDEX(ka) where a > 1;
|
||||
ERROR 42000: Key 'ka' doesn't exist in table 't1'
|
||||
SELECT * FROM t1 FORCE INDEX(kb) where a > 1;
|
||||
a b
|
||||
3 2
|
||||
5 3
|
||||
SELECT * FROM t1 where b > 1;
|
||||
a b
|
||||
3 2
|
||||
5 3
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT AUTO_INCREMENT, b INT, c INT, KEY kb(b), KEY kbc(b,c), KEY kc(c), PRIMARY KEY(a)) ENGINE=rocksdb;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
`c` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`a`),
|
||||
KEY `kb` (`b`),
|
||||
KEY `kbc` (`b`,`c`),
|
||||
KEY `kc` (`c`)
|
||||
) ENGINE=ROCKSDB DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (b,c) VALUES (1,2);
|
||||
INSERT INTO t1 (b,c) VALUES (3,4);
|
||||
INSERT INTO t1 (b,c) VALUES (5,6);
|
||||
ALTER TABLE t1 DROP INDEX kb, DROP INDEX kbc, ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
`c` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`a`),
|
||||
KEY `kc` (`c`)
|
||||
) ENGINE=ROCKSDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
`c` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`a`),
|
||||
KEY `kc` (`c`)
|
||||
) ENGINE=ROCKSDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
|
||||
INSERT INTO t1 (b,c) VALUES (1,2);
|
||||
INSERT INTO t1 (b,c) VALUES (3,4);
|
||||
INSERT INTO t1 (b,c) VALUES (5,6);
|
||||
SELECT * FROM t1 FORCE INDEX(kc) where c > 3;
|
||||
a b c
|
||||
2 3 4
|
||||
3 5 6
|
||||
5 3 4
|
||||
6 5 6
|
||||
SELECT * FROM t1 where b > 3;
|
||||
a b c
|
||||
3 5 6
|
||||
6 5 6
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b INT, c INT, KEY kb(b), KEY kbc(b,c), KEY kc(c), PRIMARY KEY(a)) ENGINE=rocksdb;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 a A 0 NULL NULL LSMTREE
|
||||
t1 1 kb 1 b A 0 NULL NULL YES LSMTREE
|
||||
t1 1 kbc 1 b A 0 NULL NULL YES LSMTREE
|
||||
t1 1 kbc 2 c A 0 NULL NULL YES LSMTREE
|
||||
t1 1 kc 1 c A 0 NULL NULL YES LSMTREE
|
||||
ALTER TABLE t1 DROP INDEX kb, DROP INDEX kbc, ALGORITHM=INPLACE;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 a A 0 NULL NULL LSMTREE
|
||||
t1 1 kc 1 c A 0 NULL NULL YES LSMTREE
|
||||
ALTER TABLE t1 DROP PRIMARY KEY;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 1 kc 1 c A 0 NULL NULL YES LSMTREE
|
||||
ALTER TABLE t1 DROP INDEX kc, ALGORITHM=INPLACE;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT AUTO_INCREMENT, b INT, c INT, PRIMARY KEY(a)) ENGINE=rocksdb;
|
||||
ALTER TABLE t1 ADD UNIQUE INDEX kb(b);
|
||||
ALTER TABLE t1 ADD UNIQUE INDEX kbc(b,c);
|
||||
ALTER TABLE t1 ADD UNIQUE INDEX kc(c);
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 a A 0 NULL NULL LSMTREE
|
||||
t1 0 kb 1 b A 0 NULL NULL YES LSMTREE
|
||||
t1 0 kbc 1 b A 0 NULL NULL YES LSMTREE
|
||||
t1 0 kbc 2 c A 0 NULL NULL YES LSMTREE
|
||||
t1 0 kc 1 c A 0 NULL NULL YES LSMTREE
|
||||
ALTER TABLE t1 DROP INDEX kb, DROP INDEX kbc;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 a A 0 NULL NULL LSMTREE
|
||||
t1 0 kc 1 c A 0 NULL NULL YES LSMTREE
|
||||
INSERT INTO t1 (b,c) VALUES (1,2);
|
||||
INSERT INTO t1 (b,c) VALUES (3,4);
|
||||
INSERT INTO t1 (b,c) VALUES (5,6);
|
||||
SELECT * FROM t1 FORCE INDEX(kc) where c > 3;
|
||||
a b c
|
||||
2 3 4
|
||||
3 5 6
|
||||
ALTER TABLE t1 DROP INDEX kc, ALGORITHM=INPLACE;
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`b` int(11) DEFAULT NULL,
|
||||
`c` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=ROCKSDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE IF NOT EXISTS t1 (col1 INT, col2 INT, col3 INT);
|
||||
INSERT INTO t1 (col1,col2,col3) VALUES (1,2,3);
|
||||
ALTER TABLE t1 ADD KEY idx ( col1, col2 );
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
ALTER TABLE t1 DROP COLUMN col2;
|
||||
ALTER TABLE t1 DROP COLUMN col3;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE IF NOT EXISTS t1 (col1 INT, col2 INT, col3 INT);
|
||||
INSERT INTO t1 (col1,col2,col3) VALUES (1,2,3);
|
||||
ALTER TABLE t1 ADD KEY idx ( col1, col2 );
|
||||
ANALYZE TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
ALTER TABLE t1 DROP COLUMN col2;
|
||||
ALTER TABLE t1 DROP COLUMN col3;
|
||||
DROP TABLE t1;
|
71
storage/rocksdb/mysql-test/rocksdb/r/drop_table.result
Normal file
71
storage/rocksdb/mysql-test/rocksdb/r/drop_table.result
Normal file
|
@ -0,0 +1,71 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
DROP TABLE IF EXISTS t4;
|
||||
DROP TABLE IF EXISTS t5;
|
||||
set global rocksdb_compact_cf = 'cf1';
|
||||
set global rocksdb_compact_cf = 'rev:cf2';
|
||||
set global rocksdb_signal_drop_index_thread = 1;
|
||||
CREATE TABLE t1 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
CREATE TABLE t2 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
CREATE TABLE t3 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
CREATE TABLE t4 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
DELETE FROM t1;
|
||||
DELETE FROM t2;
|
||||
DELETE FROM t3;
|
||||
DELETE FROM t4;
|
||||
drop table t2;
|
||||
DELETE FROM t1;
|
||||
DELETE FROM t4;
|
||||
drop table t3;
|
||||
DELETE FROM t1;
|
||||
DELETE FROM t4;
|
||||
drop table t4;
|
||||
CREATE TABLE t5 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
DELETE FROM t5;
|
||||
drop table t5;
|
||||
set global rocksdb_compact_cf = 'cf1';
|
||||
set global rocksdb_compact_cf = 'rev:cf2';
|
||||
set global rocksdb_signal_drop_index_thread = 1;
|
||||
Begin filtering dropped index+ 0
|
||||
Begin filtering dropped index+ 1
|
||||
Begin filtering dropped index+ 1
|
||||
Begin filtering dropped index+ 1
|
||||
Begin filtering dropped index+ 1
|
||||
Begin filtering dropped index+ 1
|
||||
Begin filtering dropped index+ 1
|
||||
Begin filtering dropped index+ 1
|
||||
Finished filtering dropped index+ 0
|
||||
Finished filtering dropped index+ 1
|
||||
Finished filtering dropped index+ 1
|
||||
Finished filtering dropped index+ 1
|
||||
Finished filtering dropped index+ 1
|
||||
Finished filtering dropped index+ 1
|
||||
Finished filtering dropped index+ 1
|
||||
Finished filtering dropped index+ 1
|
||||
drop table t1;
|
53
storage/rocksdb/mysql-test/rocksdb/r/drop_table2.result
Normal file
53
storage/rocksdb/mysql-test/rocksdb/r/drop_table2.result
Normal file
|
@ -0,0 +1,53 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
DROP TABLE IF EXISTS t4;
|
||||
DROP TABLE IF EXISTS t5;
|
||||
set global rocksdb_compact_cf = 'cf1';
|
||||
set global rocksdb_compact_cf = 'rev:cf2';
|
||||
set global rocksdb_signal_drop_index_thread = 1;
|
||||
CREATE TABLE t1 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
CREATE TABLE t2 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
CREATE TABLE t3 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
CREATE TABLE t4 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
DELETE FROM t1;
|
||||
DELETE FROM t2;
|
||||
DELETE FROM t3;
|
||||
DELETE FROM t4;
|
||||
DELETE FROM t1;
|
||||
DELETE FROM t4;
|
||||
DELETE FROM t1;
|
||||
DELETE FROM t4;
|
||||
CREATE TABLE t5 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
DELETE FROM t5;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
drop table t4;
|
||||
drop table t5;
|
||||
Compacted
|
20
storage/rocksdb/mysql-test/rocksdb/r/drop_table3.result
Normal file
20
storage/rocksdb/mysql-test/rocksdb/r/drop_table3.result
Normal file
|
@ -0,0 +1,20 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
set global rocksdb_compact_cf = 'cf1';
|
||||
set global rocksdb_compact_cf = 'rev:cf2';
|
||||
set global rocksdb_signal_drop_index_thread = 1;
|
||||
CREATE TABLE t1 (
|
||||
a int not null,
|
||||
b int not null,
|
||||
c varchar(500) not null,
|
||||
primary key (a,b) comment 'cf1',
|
||||
key (b) comment 'rev:cf2'
|
||||
) ENGINE=RocksDB;
|
||||
DELETE FROM t1;
|
||||
select variable_value into @a from information_schema.global_status where variable_name='rocksdb_compact_read_bytes';
|
||||
drop table t1;
|
||||
select case when variable_value-@a < 500000 then 'true' else 'false' end from information_schema.global_status where variable_name='rocksdb_compact_read_bytes';
|
||||
case when variable_value-@a < 500000 then 'true' else 'false' end
|
||||
true
|
||||
DROP TABLE IF EXISTS t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'test.t1'
|
362
storage/rocksdb/mysql-test/rocksdb/r/dup_key_update.result
Normal file
362
storage/rocksdb/mysql-test/rocksdb/r/dup_key_update.result
Normal file
|
@ -0,0 +1,362 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1 (id1 INT, id2 INT, id3 INT,
|
||||
PRIMARY KEY (id1, id2, id3),
|
||||
UNIQUE KEY (id3, id1)) ENGINE=ROCKSDB;
|
||||
CREATE TABLE t2 (id1 INT, id2 INT, id3 INT,
|
||||
PRIMARY KEY (id1, id2, id3),
|
||||
UNIQUE KEY (id3, id1) COMMENT 'rev:cf') ENGINE=ROCKSDB;
|
||||
INSERT INTO t1 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 9;
|
||||
SELECT * FROM t1 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 1 1
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 1 1
|
||||
INSERT INTO t1 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 10;
|
||||
SELECT * FROM t1 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 10 1
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 10 1
|
||||
INSERT INTO t1 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 11;
|
||||
SELECT * FROM t1 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
INSERT INTO t1 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 12;
|
||||
SELECT * FROM t1 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 12 5
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 12 5
|
||||
INSERT INTO t1 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 13;
|
||||
SELECT * FROM t1 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 13 5
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 13 5
|
||||
INSERT INTO t1 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 14;
|
||||
SELECT * FROM t1 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 14 5
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 14 5
|
||||
INSERT INTO t1 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 15;
|
||||
SELECT * FROM t1 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 15 9
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 15 9
|
||||
INSERT INTO t1 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 16;
|
||||
SELECT * FROM t1 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 16 9
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 16 9
|
||||
INSERT INTO t1 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 17;
|
||||
SELECT * FROM t1 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 17 9
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 17 9
|
||||
SELECT * FROM t1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 14 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 17 9
|
||||
SELECT * FROM t1 FORCE INDEX (id3);
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 14 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 17 9
|
||||
INSERT INTO t2 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 9;
|
||||
SELECT * FROM t2 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 1 1
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 1 1
|
||||
INSERT INTO t2 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 10;
|
||||
SELECT * FROM t2 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 10 1
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 10 1
|
||||
INSERT INTO t2 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 11;
|
||||
SELECT * FROM t2 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
INSERT INTO t2 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 12;
|
||||
SELECT * FROM t2 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 12 5
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 12 5
|
||||
INSERT INTO t2 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 13;
|
||||
SELECT * FROM t2 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 13 5
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 13 5
|
||||
INSERT INTO t2 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 14;
|
||||
SELECT * FROM t2 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 14 5
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 14 5
|
||||
INSERT INTO t2 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 15;
|
||||
SELECT * FROM t2 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 15 9
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 15 9
|
||||
INSERT INTO t2 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 16;
|
||||
SELECT * FROM t2 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 16 9
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 16 9
|
||||
INSERT INTO t2 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 17;
|
||||
SELECT * FROM t2 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 17 9
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 17 9
|
||||
SELECT * FROM t2;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 14 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 17 9
|
||||
SELECT * FROM t2 FORCE INDEX (id3);
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 14 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 17 9
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t1 (id1 varchar(128) CHARACTER SET latin1 COLLATE latin1_bin,
|
||||
id2 varchar(256) CHARACTER SET utf8 COLLATE utf8_bin,
|
||||
id3 varchar(200) CHARACTER SET latin1 COLLATE latin1_swedish_ci,
|
||||
PRIMARY KEY (id1, id2, id3),
|
||||
UNIQUE KEY (id3, id1)) ENGINE=ROCKSDB;
|
||||
CREATE TABLE t2 (id1 varchar(128) CHARACTER SET latin1 COLLATE latin1_bin,
|
||||
id2 varchar(256) CHARACTER SET utf8 COLLATE utf8_bin,
|
||||
id3 varchar(200) CHARACTER SET latin1 COLLATE latin1_swedish_ci,
|
||||
PRIMARY KEY (id1, id2, id3),
|
||||
UNIQUE KEY (id3, id1) COMMENT 'rev:cf') ENGINE=ROCKSDB;
|
||||
INSERT INTO t1 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 9;
|
||||
SELECT * FROM t1 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 1 1
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 1 1
|
||||
INSERT INTO t1 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 10;
|
||||
SELECT * FROM t1 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 10 1
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 10 1
|
||||
INSERT INTO t1 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 11;
|
||||
SELECT * FROM t1 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
INSERT INTO t1 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 12;
|
||||
SELECT * FROM t1 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 12 5
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 12 5
|
||||
INSERT INTO t1 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 13;
|
||||
SELECT * FROM t1 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 13 5
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 13 5
|
||||
INSERT INTO t1 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 14;
|
||||
SELECT * FROM t1 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 14 5
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 14 5
|
||||
INSERT INTO t1 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 15;
|
||||
SELECT * FROM t1 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 15 9
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 15 9
|
||||
INSERT INTO t1 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 16;
|
||||
SELECT * FROM t1 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 16 9
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 16 9
|
||||
INSERT INTO t1 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 17;
|
||||
SELECT * FROM t1 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 17 9
|
||||
SELECT * FROM t1 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 17 9
|
||||
SELECT * FROM t1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 14 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 17 9
|
||||
SELECT * FROM t1 FORCE INDEX (id3);
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 14 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 17 9
|
||||
INSERT INTO t2 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 9;
|
||||
SELECT * FROM t2 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 1 1
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 1 1
|
||||
INSERT INTO t2 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 10;
|
||||
SELECT * FROM t2 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 10 1
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 10 1
|
||||
INSERT INTO t2 VALUES (1, 1, 1) ON DUPLICATE KEY UPDATE id2 = 11;
|
||||
SELECT * FROM t2 WHERE id1 = 1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 1;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
INSERT INTO t2 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 12;
|
||||
SELECT * FROM t2 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 12 5
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 12 5
|
||||
INSERT INTO t2 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 13;
|
||||
SELECT * FROM t2 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 13 5
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 13 5
|
||||
INSERT INTO t2 VALUES (5, 5, 5) ON DUPLICATE KEY UPDATE id2 = 14;
|
||||
SELECT * FROM t2 WHERE id1 = 5;
|
||||
id1 id2 id3
|
||||
5 14 5
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 5;
|
||||
id1 id2 id3
|
||||
5 14 5
|
||||
INSERT INTO t2 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 15;
|
||||
SELECT * FROM t2 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 15 9
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 15 9
|
||||
INSERT INTO t2 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 16;
|
||||
SELECT * FROM t2 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 16 9
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 16 9
|
||||
INSERT INTO t2 VALUES (9, 9, 9) ON DUPLICATE KEY UPDATE id2 = 17;
|
||||
SELECT * FROM t2 WHERE id1 = 9;
|
||||
id1 id2 id3
|
||||
9 17 9
|
||||
SELECT * FROM t2 FORCE INDEX (id3) WHERE id3 = 9;
|
||||
id1 id2 id3
|
||||
9 17 9
|
||||
SELECT * FROM t2;
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 14 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 17 9
|
||||
SELECT * FROM t2 FORCE INDEX (id3);
|
||||
id1 id2 id3
|
||||
1 11 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 14 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 17 9
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
15
storage/rocksdb/mysql-test/rocksdb/r/duplicate_table.result
Normal file
15
storage/rocksdb/mysql-test/rocksdb/r/duplicate_table.result
Normal file
|
@ -0,0 +1,15 @@
|
|||
DROP TABLE IF EXISTS t;
|
||||
CREATE TABLE t(id int primary key) engine=rocksdb;
|
||||
INSERT INTO t values (1), (2), (3);
|
||||
CREATE TABLE t(id int primary key) engine=rocksdb;
|
||||
ERROR 42S01: Table 't' already exists
|
||||
FLUSH TABLES;
|
||||
CREATE TABLE t(id int primary key) engine=rocksdb;
|
||||
ERROR HY000: Table 'test.t' does not exist, but metadata information exists inside MyRocks. This is a sign of data inconsistency. Please check if './test/t.frm' exists, and try to restore it if it does not exist.
|
||||
FLUSH TABLES;
|
||||
SELECT * FROM t;
|
||||
id
|
||||
1
|
||||
2
|
||||
3
|
||||
DROP TABLE t;
|
|
@ -0,0 +1,4 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (i INT, PRIMARY KEY (i) COMMENT '__system__') ENGINE = ROCKSDB;
|
||||
ERROR HY000: Incorrect arguments to column family not valid for storing index data
|
||||
DROP TABLE IF EXISTS t1;
|
25
storage/rocksdb/mysql-test/rocksdb/r/foreign_key.result
Normal file
25
storage/rocksdb/mysql-test/rocksdb/r/foreign_key.result
Normal file
|
@ -0,0 +1,25 @@
|
|||
DROP TABLE IF EXISTS t1, t2;
|
||||
CREATE TABLE t1 (b INT PRIMARY KEY);
|
||||
CREATE TABLE t2 (a INT NOT NULL, b INT NOT NULL, FOREIGN KEY (b) REFERENCES t1(b));
|
||||
ERROR 42000: MyRocks does not currently support foreign key constraints
|
||||
CREATE TABLE t2 (a INT NOT NULL, bforeign INT NOT NULL);
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 (a INT NOT NULL, foreignkey INT NOT NULL);
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 (a INT NOT NULL, bforeign INT not null, FOREIGN KEY (bforeign) REFERENCES t1(b));
|
||||
ERROR 42000: MyRocks does not currently support foreign key constraints
|
||||
CREATE TABLE t2 (a INT NOT NULL, b INT NOT NULL);
|
||||
ALTER TABLE t2 ADD FOREIGN KEY (b) REFERENCES t1(b);
|
||||
ERROR 42000: MyRocks does not currently support foreign key constraints
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 (a INT NOT NULL);
|
||||
ALTER TABLE t2 ADD bforeign INT NOT NULL;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 (a INT NOT NULL);
|
||||
ALTER TABLE t2 ADD foreignkey INT NOT NULL;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 (a INT NOT NULL);
|
||||
ALTER TABLE t2 ADD bforeign INT NOT NULL, ADD FOREIGN KEY (bforeign) REFERENCES t1(b);
|
||||
ERROR 42000: MyRocks does not currently support foreign key constraints
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1,9 @@
|
|||
create table t (id int primary key, value int);
|
||||
begin;
|
||||
update t set value=100 where id in (1, 2);
|
||||
commit;
|
||||
begin;
|
||||
select * from t for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from t for update
|
||||
commit;
|
||||
drop table t;
|
504
storage/rocksdb/mysql-test/rocksdb/r/gap_lock_raise_error.result
Normal file
504
storage/rocksdb/mysql-test/rocksdb/r/gap_lock_raise_error.result
Normal file
|
@ -0,0 +1,504 @@
|
|||
drop table if exists gap1,gap2,gap3;
|
||||
CREATE DATABASE mysqlslap;
|
||||
CREATE TABLE gap1 (id1 INT, id2 INT, id3 INT, c1 INT, value INT,
|
||||
PRIMARY KEY (id1, id2, id3),
|
||||
INDEX i (c1)) ENGINE=rocksdb;
|
||||
CREATE TABLE gap2 like gap1;
|
||||
CREATE TABLE gap3 (id INT, value INT,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY ui(value)) ENGINE=rocksdb;
|
||||
insert into gap3 values (1,1), (2,2),(3,3),(4,4),(5,5);
|
||||
create table gap4 (
|
||||
pk int primary key,
|
||||
a int,
|
||||
b int,
|
||||
key(a)
|
||||
) ENGINE=rocksdb;
|
||||
insert into gap4 values (1,1,1), (2,2,2), (3,3,3), (4,4,4);
|
||||
create table gap5 like gap4;
|
||||
insert into gap5 values (1,1,1), (2,2,2), (3,3,3), (4,4,4);
|
||||
set session gap_lock_raise_error=1;
|
||||
set session gap_lock_write_log=1;
|
||||
set @save_gap_lock_write_log = @@gap_lock_write_log;
|
||||
set @save_gap_lock_raise_error = @@gap_lock_raise_error;
|
||||
set gap_lock_write_log = 1;
|
||||
set gap_lock_raise_error = 0;
|
||||
begin;
|
||||
update gap4 set a= (select 1+max(a) from gap5 where gap5.pk between 1 and 3 and gap5.b=gap4.b);
|
||||
1
|
||||
update gap4 set a= (select 2+max(a) from gap5 where gap5.pk between 1 and 3 and gap5.b=gap4.b);
|
||||
update gap4 set a= (select 3+max(a) from gap5 where gap5.pk between 1 and 3 and gap5.b=gap4.b);
|
||||
1
|
||||
1
|
||||
0
|
||||
flush logs;
|
||||
0
|
||||
rollback;
|
||||
set gap_lock_write_log = @save_gap_lock_write_log;
|
||||
set gap_lock_raise_error = @save_gap_lock_raise_error;
|
||||
set global gap_lock_write_log = 1;
|
||||
set global gap_lock_write_log = 0;
|
||||
1000
|
||||
set session autocommit=0;
|
||||
select * from gap1 limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 limit 1 for update
|
||||
select * from gap1 where value != 100 limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where value != 100 limit 1 for update
|
||||
select * from gap1 where id1=1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 for update
|
||||
select * from gap1 where id1=1 and id2= 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 for update
|
||||
select * from gap1 where id1=1 and id2= 1 and id3 != 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 and id3 != 1 for update
|
||||
select * from gap1 where id1=1 and id2= 1 and id3
|
||||
between 1 and 3 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 and id3
|
||||
between 1 and 3 for update
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||||
limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||||
limit 1 for update
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||||
limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||||
limit 1 for update
|
||||
select * from gap1 order by id1 asc limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 order by id1 asc limit 1 for update
|
||||
select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 for update
|
||||
select * from gap1 order by id1 desc limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 order by id1 desc limit 1 for update
|
||||
select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||||
limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||||
limit 1 for update
|
||||
select * from gap1 force index(i) where c1=1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 force index(i) where c1=1 for update
|
||||
select * from gap3 force index(ui) where value=1 for update;
|
||||
id value
|
||||
1 1
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 and value=1
|
||||
order by c1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap3 where id=1 for update;
|
||||
id value
|
||||
1 1
|
||||
set session autocommit=1;
|
||||
select * from gap1 limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 where value != 100 limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 where id1=1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
1 0 2 2 2
|
||||
1 0 3 3 3
|
||||
select * from gap1 where id1=1 and id2= 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 and id3 != 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 and id3
|
||||
between 1 and 3 for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||||
limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||||
limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 order by id1 asc limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 order by id1 desc limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
500 100 1000 1000 1000
|
||||
select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||||
limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
500 100 1000 1000 1000
|
||||
select * from gap1 force index(i) where c1=1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap3 force index(ui) where value=1 for update;
|
||||
id value
|
||||
1 1
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 and value=1
|
||||
order by c1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap3 where id=1 for update;
|
||||
id value
|
||||
1 1
|
||||
set session autocommit=0;
|
||||
select * from gap1 limit 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 limit 1 lock in share mode
|
||||
select * from gap1 where value != 100 limit 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where value != 100 limit 1 lock in share mode
|
||||
select * from gap1 where id1=1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 lock in share mode
|
||||
select * from gap1 where id1=1 and id2= 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 lock in share mode
|
||||
select * from gap1 where id1=1 and id2= 1 and id3 != 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 and id3 != 1 lock in share mode
|
||||
select * from gap1 where id1=1 and id2= 1 and id3
|
||||
between 1 and 3 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 and id3
|
||||
between 1 and 3 lock in share mode
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||||
limit 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||||
limit 1 lock in share mode
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||||
limit 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||||
limit 1 lock in share mode
|
||||
select * from gap1 order by id1 asc limit 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 order by id1 asc limit 1 lock in share mode
|
||||
select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 lock in share mode
|
||||
select * from gap1 order by id1 desc limit 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 order by id1 desc limit 1 lock in share mode
|
||||
select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||||
limit 1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||||
limit 1 lock in share mode
|
||||
select * from gap1 force index(i) where c1=1 lock in share mode;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 force index(i) where c1=1 lock in share mode
|
||||
select * from gap3 force index(ui) where value=1 lock in share mode;
|
||||
id value
|
||||
1 1
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 and value=1
|
||||
order by c1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap3 where id=1 lock in share mode;
|
||||
id value
|
||||
1 1
|
||||
set session autocommit=1;
|
||||
select * from gap1 limit 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 where value != 100 limit 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 where id1=1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
1 0 2 2 2
|
||||
1 0 3 3 3
|
||||
select * from gap1 where id1=1 and id2= 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 and id3 != 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 and id3
|
||||
between 1 and 3 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||||
limit 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||||
limit 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 order by id1 asc limit 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 order by id1 desc limit 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
500 100 1000 1000 1000
|
||||
select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||||
limit 1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
500 100 1000 1000 1000
|
||||
select * from gap1 force index(i) where c1=1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap3 force index(ui) where value=1 lock in share mode;
|
||||
id value
|
||||
1 1
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 and value=1
|
||||
order by c1 lock in share mode;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap3 where id=1 lock in share mode;
|
||||
id value
|
||||
1 1
|
||||
set session autocommit=0;
|
||||
select * from gap1 limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 where value != 100 limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 where id1=1 ;
|
||||
id1 id2 id3 c1 value
|
||||
1 0 2 2 2
|
||||
1 0 3 3 3
|
||||
select * from gap1 where id1=1 and id2= 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 and id3 != 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 and id3
|
||||
between 1 and 3 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||||
limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||||
limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 order by id1 asc limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 order by id1 desc limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
500 100 1000 1000 1000
|
||||
select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||||
limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
500 100 1000 1000 1000
|
||||
select * from gap1 force index(i) where c1=1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap3 force index(ui) where value=1 ;
|
||||
id value
|
||||
1 1
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 and value=1
|
||||
order by c1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap3 where id=1 ;
|
||||
id value
|
||||
1 1
|
||||
set session autocommit=1;
|
||||
select * from gap1 limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 where value != 100 limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 where id1=1 ;
|
||||
id1 id2 id3 c1 value
|
||||
1 0 2 2 2
|
||||
1 0 3 3 3
|
||||
select * from gap1 where id1=1 and id2= 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 and id3 != 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 and id3
|
||||
between 1 and 3 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 asc
|
||||
limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2= 1 order by id3 desc
|
||||
limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 order by id1 asc limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 order by id1 asc, id2 asc, id3 asc limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 order by id1 desc limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
500 100 1000 1000 1000
|
||||
select * from gap1 order by id1 desc, id2 desc, id3 desc
|
||||
limit 1 ;
|
||||
id1 id2 id3 c1 value
|
||||
500 100 1000 1000 1000
|
||||
select * from gap1 force index(i) where c1=1 ;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap3 force index(ui) where value=1 ;
|
||||
id value
|
||||
1 1
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3 in (1, 2, 3) ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap1 where id1=1 and id2=1 and id3=1 and value=1
|
||||
order by c1 ;
|
||||
id1 id2 id3 c1 value
|
||||
select * from gap3 where id=1 ;
|
||||
id value
|
||||
1 1
|
||||
set session autocommit=0;
|
||||
insert into gap1 (id1, id2, id3) values (-1,-1,-1);
|
||||
insert into gap1 (id1, id2, id3) values (-1,-1,-1)
|
||||
on duplicate key update value=100;
|
||||
update gap1 set value=100 where id1=1;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: update gap1 set value=100 where id1=1
|
||||
update gap1 set value=100 where id1=1 and id2=1 and id3=1;
|
||||
delete from gap1 where id1=2;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: delete from gap1 where id1=2
|
||||
delete from gap1 where id1=-1 and id2=-1 and id3=-1;
|
||||
commit;
|
||||
set session autocommit=1;
|
||||
insert into gap1 (id1, id2, id3) values (-1,-1,-1);
|
||||
insert into gap1 (id1, id2, id3) values (-1,-1,-1)
|
||||
on duplicate key update value=100;
|
||||
update gap1 set value=100 where id1=1;
|
||||
update gap1 set value=100 where id1=1 and id2=1 and id3=1;
|
||||
delete from gap1 where id1=2;
|
||||
delete from gap1 where id1=-1 and id2=-1 and id3=-1;
|
||||
commit;
|
||||
set session autocommit=1;
|
||||
insert into gap2 select * from gap1;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: insert into gap2 select * from gap1
|
||||
insert into gap2 select * from gap1 where id1=1;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: insert into gap2 select * from gap1 where id1=1
|
||||
insert into gap2 select * from gap1 where id1=1 and id2=1 and id3=1;
|
||||
create table t4 select * from gap1 where id1=1 and id2=1 and id3=1;
|
||||
drop table t4;
|
||||
create table t4 select * from gap1;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: create table t4 select * from gap1
|
||||
create table t4 select * from gap1 where id1=1;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: create table t4 select * from gap1 where id1=1
|
||||
update gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 set gap1.value=100 where gap2.id1=3
|
||||
and gap2.id2=3 and gap2.id3=3;
|
||||
update gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 set gap1.value=100 where gap2.id1=3;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: update gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 set gap1.value=100 where gap2.id1=3
|
||||
update gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 join gap3 on gap1.id1=gap3.id
|
||||
set gap1.value=100 where gap2.id1=3;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: update gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 join gap3 on gap1.id1=gap3.id
|
||||
set gap1.value=100 where gap2.id1=3
|
||||
update gap1 set gap1.value= (select count(*) from gap2);
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: update gap1 set gap1.value= (select count(*) from gap2)
|
||||
delete gap1 from gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 where gap2.id1=3
|
||||
and gap2.id2=3 and gap2.id3=3;
|
||||
delete gap1 from gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 where gap2.id1=3;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: delete gap1 from gap1 join gap2 on gap1.id1 and gap1.id2=gap2.id2 where gap2.id1=3
|
||||
select * from gap1, gap2 limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1, gap2 limit 1 for update
|
||||
select * from gap1 a, gap1 b limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 a, gap1 b limit 1 for update
|
||||
create table u1(
|
||||
c1 int,
|
||||
c2 int,
|
||||
c3 int,
|
||||
c4 int,
|
||||
primary key (c1, c2, c3),
|
||||
unique key (c3, c1)
|
||||
);
|
||||
set session gap_lock_raise_error=1;
|
||||
begin;
|
||||
insert into u1 values (1,1,1,1);
|
||||
commit;
|
||||
begin;
|
||||
insert into u1 values (1,2,1,1) on duplicate key update c4=10;
|
||||
commit;
|
||||
begin;
|
||||
select * from u1 where c3=1 and c1 = 1 for update;
|
||||
c1 c2 c3 c4
|
||||
1 1 1 10
|
||||
select * from u1 where c3=1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from u1 where c3=1 for update
|
||||
commit;
|
||||
drop table u1;
|
||||
set global gap_lock_write_log= 0;
|
||||
set global gap_lock_raise_error= 0;
|
||||
drop table if exists gap1, gap2, gap3, gap4, gap5;
|
||||
DROP DATABASE mysqlslap;
|
||||
0
|
||||
SET GLOBAL gap_lock_log_file='<GAP_LOCK_ORIG>';
|
||||
SET GLOBAL gap_lock_log_file='<GAP_LOCK>';
|
||||
flush general logs;
|
||||
SET @save_gap_lock_exceptions = @@global.gap_lock_exceptions;
|
||||
SET GLOBAL gap_lock_exceptions="t.*";
|
||||
drop table if exists gap1,gap2,gap3;
|
||||
CREATE DATABASE mysqlslap;
|
||||
CREATE TABLE gap1 (id1 INT, id2 INT, id3 INT, c1 INT, value INT,
|
||||
PRIMARY KEY (id1, id2, id3),
|
||||
INDEX i (c1)) ENGINE=rocksdb;
|
||||
CREATE TABLE gap2 like gap1;
|
||||
CREATE TABLE gap3 (id INT, value INT,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY ui(value)) ENGINE=rocksdb;
|
||||
insert into gap3 values (1,1), (2,2),(3,3),(4,4),(5,5);
|
||||
create table gap4 (
|
||||
pk int primary key,
|
||||
a int,
|
||||
b int,
|
||||
key(a)
|
||||
) ENGINE=rocksdb;
|
||||
insert into gap4 values (1,1,1), (2,2,2), (3,3,3), (4,4,4);
|
||||
create table gap5 like gap4;
|
||||
insert into gap5 values (1,1,1), (2,2,2), (3,3,3), (4,4,4);
|
||||
set session gap_lock_raise_error=1;
|
||||
set session gap_lock_write_log=1;
|
||||
set session autocommit=0;
|
||||
select * from gap1 limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 limit 1 for update
|
||||
select * from gap1 where value != 100 limit 1 for update;
|
||||
ERROR HY000: Using Gap Lock without full unique key in multi-table or multi-statement transactions is not allowed. You need either 1: Execute 'SET SESSION gap_lock_raise_error=0' if you are sure that your application does not rely on Gap Lock. 2: Rewrite queries to use all unique key columns in WHERE equal conditions. 3: Rewrite to single-table, single-statement transaction. Query: select * from gap1 where value != 100 limit 1 for update
|
||||
set global gap_lock_write_log= 0;
|
||||
set global gap_lock_raise_error= 0;
|
||||
drop table if exists gap1, gap2, gap3, gap4, gap5;
|
||||
DROP DATABASE mysqlslap;
|
||||
0
|
||||
SET GLOBAL gap_lock_log_file='<GAP_LOCK_ORIG>';
|
||||
SET GLOBAL gap_lock_log_file='<GAP_LOCK>';
|
||||
flush general logs;
|
||||
SET GLOBAL gap_lock_exceptions="gap.*";
|
||||
drop table if exists gap1,gap2,gap3;
|
||||
CREATE DATABASE mysqlslap;
|
||||
CREATE TABLE gap1 (id1 INT, id2 INT, id3 INT, c1 INT, value INT,
|
||||
PRIMARY KEY (id1, id2, id3),
|
||||
INDEX i (c1)) ENGINE=rocksdb;
|
||||
CREATE TABLE gap2 like gap1;
|
||||
CREATE TABLE gap3 (id INT, value INT,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY ui(value)) ENGINE=rocksdb;
|
||||
insert into gap3 values (1,1), (2,2),(3,3),(4,4),(5,5);
|
||||
create table gap4 (
|
||||
pk int primary key,
|
||||
a int,
|
||||
b int,
|
||||
key(a)
|
||||
) ENGINE=rocksdb;
|
||||
insert into gap4 values (1,1,1), (2,2,2), (3,3,3), (4,4,4);
|
||||
create table gap5 like gap4;
|
||||
insert into gap5 values (1,1,1), (2,2,2), (3,3,3), (4,4,4);
|
||||
set session gap_lock_raise_error=1;
|
||||
set session gap_lock_write_log=1;
|
||||
set session autocommit=0;
|
||||
select * from gap1 limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
select * from gap1 where value != 100 limit 1 for update;
|
||||
id1 id2 id3 c1 value
|
||||
0 0 1 1 1
|
||||
set global gap_lock_write_log= 0;
|
||||
set global gap_lock_raise_error= 0;
|
||||
drop table if exists gap1, gap2, gap3, gap4, gap5;
|
||||
DROP DATABASE mysqlslap;
|
||||
0
|
||||
SET GLOBAL gap_lock_log_file='<GAP_LOCK_ORIG>';
|
||||
SET GLOBAL gap_lock_log_file='<GAP_LOCK>';
|
||||
flush general logs;
|
||||
SET GLOBAL gap_lock_exceptions=@save_gap_lock_exceptions;
|
|
@ -0,0 +1,8 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1(a INT,b INT,KEY (a)) PARTITION BY HASH (a) PARTITIONS 3;
|
||||
SHOW TABLES;
|
||||
Tables_in_test
|
||||
t1
|
||||
ALTER TABLE t1 ADD PARTITION(PARTITION p3 DATA DIRECTORY='G:/mysqltest/p3Data' INDEX DIRECTORY='H:/mysqltest/p3Index');
|
||||
ERROR 42000: Incorrect table name 'H:/mysqltest/p3Index'
|
||||
DROP TABLE t1;
|
115
storage/rocksdb/mysql-test/rocksdb/r/handler_basic.result
Normal file
115
storage/rocksdb/mysql-test/rocksdb/r/handler_basic.result
Normal file
|
@ -0,0 +1,115 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
FLUSH STATUS;
|
||||
CREATE TABLE t1 (id INT PRIMARY KEY, a VARCHAR(100), b INT,
|
||||
INDEX b(b)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (id,a,b) VALUES (1,'foobar',100),(2,'z',0),(3,'bar',50);
|
||||
SHOW SESSION STATUS LIKE 'Handler_write%';
|
||||
Variable_name Value
|
||||
Handler_write 3
|
||||
UPDATE t1 SET b=1000 WHERE id=1;
|
||||
SHOW SESSION STATUS LIKE 'Handler_update%';
|
||||
Variable_name Value
|
||||
Handler_update 1
|
||||
DELETE FROM t1 WHERE id=2;
|
||||
SHOW SESSION STATUS LIKE 'Handler_delete%';
|
||||
Variable_name Value
|
||||
Handler_delete 1
|
||||
INSERT INTO t1 (id,b) VALUES(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10);
|
||||
SHOW SESSION STATUS LIKE 'Handler_write%';
|
||||
Variable_name Value
|
||||
Handler_write 10
|
||||
FLUSH STATUS;
|
||||
SELECT * FROM t1 WHERE id=8;
|
||||
id a b
|
||||
8 NULL 8
|
||||
SHOW SESSION STATUS LIKE 'Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 1
|
||||
Handler_read_last 0
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 0
|
||||
FLUSH STATUS;
|
||||
SELECT * FROM t1 WHERE b=6;
|
||||
id a b
|
||||
6 NULL 6
|
||||
SHOW SESSION STATUS LIKE 'Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 1
|
||||
Handler_read_last 0
|
||||
Handler_read_next 1
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 0
|
||||
FLUSH STATUS;
|
||||
SELECT * FROM t1;
|
||||
id a b
|
||||
1 foobar 1000
|
||||
10 NULL 10
|
||||
3 bar 50
|
||||
4 NULL 4
|
||||
5 NULL 5
|
||||
6 NULL 6
|
||||
7 NULL 7
|
||||
8 NULL 8
|
||||
9 NULL 9
|
||||
SHOW SESSION STATUS LIKE 'Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 0
|
||||
Handler_read_last 0
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 10
|
||||
FLUSH STATUS;
|
||||
SELECT * FROM t1 WHERE b <=5 ORDER BY b;
|
||||
id a b
|
||||
4 NULL 4
|
||||
5 NULL 5
|
||||
SHOW SESSION STATUS LIKE 'Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 1
|
||||
Handler_read_last 0
|
||||
Handler_read_next 2
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 0
|
||||
FLUSH STATUS;
|
||||
SELECT * FROM t1 WHERE id >=8 ORDER BY id;
|
||||
id a b
|
||||
8 NULL 8
|
||||
9 NULL 9
|
||||
10 NULL 10
|
||||
SHOW SESSION STATUS LIKE 'Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 1
|
||||
Handler_read_last 0
|
||||
Handler_read_next 3
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 0
|
||||
FLUSH STATUS;
|
||||
SELECT * FROM t1 WHERE id < 8 ORDER BY id;
|
||||
id a b
|
||||
1 foobar 1000
|
||||
3 bar 50
|
||||
4 NULL 4
|
||||
5 NULL 5
|
||||
6 NULL 6
|
||||
7 NULL 7
|
||||
SHOW SESSION STATUS LIKE 'Handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 1
|
||||
Handler_read_key 0
|
||||
Handler_read_last 0
|
||||
Handler_read_next 6
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 0
|
||||
DROP TABLE t1;
|
648
storage/rocksdb/mysql-test/rocksdb/r/hermitage.result
Normal file
648
storage/rocksdb/mysql-test/rocksdb/r/hermitage.result
Normal file
|
@ -0,0 +1,648 @@
|
|||
DROP TABLE IF EXISTS test;
|
||||
connect con1,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
connect con2,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
connect con3,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
connection con1;
|
||||
create table test (id int primary key, value int) engine=rocksdb;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
update test set value = 101 where id = 1;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con1;
|
||||
rollback;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
update test set value = 101 where id = 1;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
commit;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 11
|
||||
2 20
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
connection con2;
|
||||
update test set value = 22 where id = 2;
|
||||
connection con1;
|
||||
select * from test where id = 2;
|
||||
id value
|
||||
2 20
|
||||
connection con2;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
update test set value = 19 where id = 2;
|
||||
connection con2;
|
||||
update test set value = 12 where id = 1;
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
connection con3;
|
||||
select * from test;
|
||||
id value
|
||||
1 11
|
||||
2 19
|
||||
connection con2;
|
||||
update test set value = 18 where id = 2;
|
||||
connection con3;
|
||||
select * from test;
|
||||
id value
|
||||
1 11
|
||||
2 19
|
||||
connection con2;
|
||||
commit;
|
||||
connection con3;
|
||||
select * from test;
|
||||
id value
|
||||
1 12
|
||||
2 18
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where value = 30;
|
||||
id value
|
||||
connection con2;
|
||||
insert into test (id, value) values(3, 30);
|
||||
commit;
|
||||
connection con1;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
3 30
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
update test set value = value + 10;
|
||||
connection con2;
|
||||
select variable_value into @a from information_schema.global_status where variable_name='rocksdb_snapshot_conflict_errors';
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
delete from test where value = 20;
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
2 30
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con2;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
connection con2;
|
||||
update test set value = 12 where id = 1;
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 12
|
||||
2 20
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con2;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
select * from test where id = 2;
|
||||
id value
|
||||
2 20
|
||||
update test set value = 12 where id = 1;
|
||||
update test set value = 18 where id = 2;
|
||||
commit;
|
||||
connection con1;
|
||||
select * from test where id = 2;
|
||||
id value
|
||||
2 18
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where value % 5 = 0;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con2;
|
||||
update test set value = 12 where value = 10;
|
||||
commit;
|
||||
connection con1;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
1 12
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
update test set value = 12 where id = 1;
|
||||
update test set value = 18 where id = 2;
|
||||
commit;
|
||||
connection con1;
|
||||
delete from test where value = 20;
|
||||
select * from test where id = 2;
|
||||
id value
|
||||
2 18
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where id in (1,2);
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con2;
|
||||
select * from test where id in (1,2);
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
connection con2;
|
||||
update test set value = 21 where id = 2;
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
connection con2;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
connection con1;
|
||||
insert into test (id, value) values(3, 30);
|
||||
connection con2;
|
||||
insert into test (id, value) values(4, 42);
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
commit;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
3 30
|
||||
4 42
|
||||
connection con1;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
3 30
|
||||
4 42
|
||||
connection default;
|
||||
drop table test;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
disconnect con3;
|
||||
DROP TABLE IF EXISTS test;
|
||||
connect con1,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||
connect con2,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||
connect con3,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||
connection con1;
|
||||
create table test (id int primary key, value int) engine=rocksdb;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
update test set value = 101 where id = 1;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con1;
|
||||
rollback;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
update test set value = 101 where id = 1;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
commit;
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
connection con2;
|
||||
update test set value = 22 where id = 2;
|
||||
connection con1;
|
||||
select * from test where id = 2;
|
||||
id value
|
||||
2 20
|
||||
connection con2;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
update test set value = 19 where id = 2;
|
||||
connection con2;
|
||||
update test set value = 12 where id = 1;
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
connection con3;
|
||||
select * from test;
|
||||
id value
|
||||
1 11
|
||||
2 19
|
||||
connection con2;
|
||||
update test set value = 18 where id = 2;
|
||||
connection con3;
|
||||
select * from test;
|
||||
id value
|
||||
1 11
|
||||
2 19
|
||||
connection con2;
|
||||
commit;
|
||||
connection con3;
|
||||
select * from test;
|
||||
id value
|
||||
1 11
|
||||
2 19
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where value = 30;
|
||||
id value
|
||||
connection con2;
|
||||
insert into test (id, value) values(3, 30);
|
||||
commit;
|
||||
connection con1;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
update test set value = value + 10;
|
||||
connection con2;
|
||||
select variable_value into @a from information_schema.global_status where variable_name='rocksdb_snapshot_conflict_errors';
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
delete from test where value = 20;
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
select variable_value-@a from information_schema.global_status where variable_name='rocksdb_snapshot_conflict_errors';
|
||||
variable_value-@a
|
||||
1
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con2;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
connection con2;
|
||||
update test set value = 12 where id = 1;
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con2;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
select * from test where id = 2;
|
||||
id value
|
||||
2 20
|
||||
update test set value = 12 where id = 1;
|
||||
update test set value = 18 where id = 2;
|
||||
commit;
|
||||
connection con1;
|
||||
select * from test where id = 2;
|
||||
id value
|
||||
2 20
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where value % 5 = 0;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con2;
|
||||
update test set value = 12 where value = 10;
|
||||
commit;
|
||||
connection con1;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where id = 1;
|
||||
id value
|
||||
1 10
|
||||
connection con2;
|
||||
select * from test;
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
update test set value = 12 where id = 1;
|
||||
update test set value = 18 where id = 2;
|
||||
commit;
|
||||
connection con1;
|
||||
delete from test where value = 20;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where id in (1,2);
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con2;
|
||||
select * from test where id in (1,2);
|
||||
id value
|
||||
1 10
|
||||
2 20
|
||||
connection con1;
|
||||
update test set value = 11 where id = 1;
|
||||
connection con2;
|
||||
update test set value = 21 where id = 2;
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
commit;
|
||||
connection con1;
|
||||
truncate table test;
|
||||
insert into test (id, value) values (1, 10), (2, 20);
|
||||
begin;
|
||||
connection con2;
|
||||
begin;
|
||||
connection con3;
|
||||
begin;
|
||||
connection con1;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
connection con2;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
connection con1;
|
||||
insert into test (id, value) values(3, 30);
|
||||
connection con2;
|
||||
insert into test (id, value) values(4, 42);
|
||||
connection con1;
|
||||
commit;
|
||||
connection con2;
|
||||
commit;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
3 30
|
||||
4 42
|
||||
connection con1;
|
||||
select * from test where value % 3 = 0;
|
||||
id value
|
||||
3 30
|
||||
4 42
|
||||
connection default;
|
||||
drop table test;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
disconnect con3;
|
17
storage/rocksdb/mysql-test/rocksdb/r/i_s_ddl.result
Normal file
17
storage/rocksdb/mysql-test/rocksdb/r/i_s_ddl.result
Normal file
|
@ -0,0 +1,17 @@
|
|||
DROP TABLE IF EXISTS is_ddl_t1;
|
||||
DROP TABLE IF EXISTS is_ddl_t2;
|
||||
CREATE TABLE is_ddl_t1 (i INT, j INT, k INT, l INT,
|
||||
PRIMARY KEY (i), KEY (j), KEY (k, l) COMMENT 'kl_cf')
|
||||
ENGINE = ROCKSDB;
|
||||
CREATE TABLE is_ddl_t2 (x INT, y INT, z INT,
|
||||
PRIMARY KEY (z, y) COMMENT 'zy_cf',
|
||||
KEY (x)) ENGINE = ROCKSDB;
|
||||
SELECT TABLE_SCHEMA,TABLE_NAME,PARTITION_NAME,INDEX_NAME,INDEX_TYPE,KV_FORMAT_VERSION,CF FROM INFORMATION_SCHEMA.ROCKSDB_DDL WHERE TABLE_NAME like 'is_ddl_t%';
|
||||
TABLE_SCHEMA TABLE_NAME PARTITION_NAME INDEX_NAME INDEX_TYPE KV_FORMAT_VERSION CF
|
||||
test is_ddl_t2 NULL PRIMARY 1 11 zy_cf
|
||||
test is_ddl_t2 NULL x 2 11 default
|
||||
test is_ddl_t1 NULL PRIMARY 1 11 default
|
||||
test is_ddl_t1 NULL j 2 11 default
|
||||
test is_ddl_t1 NULL k 2 11 kl_cf
|
||||
DROP TABLE is_ddl_t1;
|
||||
DROP TABLE is_ddl_t2;
|
42
storage/rocksdb/mysql-test/rocksdb/r/index.result
Normal file
42
storage/rocksdb/mysql-test/rocksdb/r/index.result
Normal file
|
@ -0,0 +1,42 @@
|
|||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY (a)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY a_b (a,b) COMMENT 'a_b index'
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a_b 1 a A # NULL NULL YES LSMTREE a_b index
|
||||
t1 1 a_b 2 b A # NULL NULL YES LSMTREE a_b index
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY (a),
|
||||
KEY (b)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE
|
||||
t1 1 b 1 b A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (100,'z');
|
||||
ALTER TABLE t1 ADD KEY (a) COMMENT 'simple index on a';
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE simple index on a
|
||||
ALTER TABLE t1 DROP KEY a;
|
||||
DROP TABLE t1;
|
28
storage/rocksdb/mysql-test/rocksdb/r/index_file_map.result
Normal file
28
storage/rocksdb/mysql-test/rocksdb/r/index_file_map.result
Normal file
|
@ -0,0 +1,28 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t1 (i INT PRIMARY KEY, j INT, INDEX(j)) ENGINE = ROCKSDB;
|
||||
CREATE TABLE t2 (k INT PRIMARY KEY, l INT REFERENCES t1.i) ENGINE = ROCKSDB;
|
||||
INSERT INTO t1 VALUES (1,2), (2,4), (3,6), (4,8), (5,10);
|
||||
INSERT INTO t2 VALUES (100,1), (200,2), (300,3), (400,4);
|
||||
COMMIT;
|
||||
SET GLOBAL rocksdb_force_flush_memtable_now = 1;
|
||||
SELECT * FROM INFORMATION_SCHEMA.ROCKSDB_INDEX_FILE_MAP
|
||||
WHERE INDEX_NUMBER =
|
||||
(SELECT INDEX_NUMBER FROM INFORMATION_SCHEMA.ROCKSDB_DDL
|
||||
WHERE TABLE_NAME = 't1' AND INDEX_NAME = "PRIMARY");
|
||||
COLUMN_FAMILY INDEX_NUMBER SST_NAME NUM_ROWS DATA_SIZE ENTRY_DELETES ENTRY_SINGLEDELETES ENTRY_MERGES ENTRY_OTHERS
|
||||
# # SSTNAME 5 # # # # #
|
||||
SELECT * FROM INFORMATION_SCHEMA.ROCKSDB_INDEX_FILE_MAP
|
||||
WHERE INDEX_NUMBER =
|
||||
(SELECT INDEX_NUMBER FROM INFORMATION_SCHEMA.ROCKSDB_DDL
|
||||
WHERE TABLE_NAME = 't1' AND INDEX_NAME = "j");
|
||||
COLUMN_FAMILY INDEX_NUMBER SST_NAME NUM_ROWS DATA_SIZE ENTRY_DELETES ENTRY_SINGLEDELETES ENTRY_MERGES ENTRY_OTHERS
|
||||
# # SSTNAME 5 # # # # #
|
||||
SELECT * FROM INFORMATION_SCHEMA.ROCKSDB_INDEX_FILE_MAP
|
||||
WHERE INDEX_NUMBER =
|
||||
(SELECT INDEX_NUMBER FROM INFORMATION_SCHEMA.ROCKSDB_DDL
|
||||
WHERE TABLE_NAME = 't2' AND INDEX_NAME = "PRIMARY");
|
||||
COLUMN_FAMILY INDEX_NUMBER SST_NAME NUM_ROWS DATA_SIZE ENTRY_DELETES ENTRY_SINGLEDELETES ENTRY_MERGES ENTRY_OTHERS
|
||||
# # SSTNAME 4 # # # # #
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
|
@ -0,0 +1,51 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY (a) KEY_BLOCK_SIZE=8
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY ind1(b ASC) KEY_BLOCK_SIZE=0
|
||||
) ENGINE=rocksdb;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 ind1 1 b A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
PRIMARY KEY ind2(b(1) DESC) KEY_BLOCK_SIZE=32768 COMMENT 'big key_block_size value'
|
||||
) ENGINE=rocksdb;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 b A # 1 NULL LSMTREE big key_block_size value
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT AUTO_INCREMENT PRIMARY KEY,
|
||||
KEY a_b(a,b) KEY_BLOCK_SIZE=8192
|
||||
) ENGINE=rocksdb;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a_b 1 a A # NULL NULL YES LSMTREE
|
||||
t1 1 a_b 2 b A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
PRIMARY KEY (b)
|
||||
) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (100,'z');
|
||||
ALTER TABLE t1 ADD KEY(a) KEY_BLOCK_SIZE 8192;
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 b A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
48
storage/rocksdb/mysql-test/rocksdb/r/index_primary.result
Normal file
48
storage/rocksdb/mysql-test/rocksdb/r/index_primary.result
Normal file
|
@ -0,0 +1,48 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY,
|
||||
b CHAR(8)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 a A # NULL NULL LSMTREE
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b');
|
||||
INSERT INTO t1 (a,b) VALUES (1,'c');
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY,
|
||||
b CHAR(8) PRIMARY KEY
|
||||
) ENGINE=rocksdb;
|
||||
ERROR 42000: Multiple primary key defined
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
PRIMARY KEY (a,b)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 a A # NULL NULL LSMTREE
|
||||
t1 0 PRIMARY 2 b A # NULL NULL LSMTREE
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(1,'b'),(2,'a'),(2,'b');
|
||||
INSERT INTO t1 (a,b) VALUES (1,'b');
|
||||
ERROR 23000: Duplicate entry '1-b' for key 'PRIMARY'
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT KEY,
|
||||
b CHAR(8),
|
||||
KEY (b)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 a A # NULL NULL LSMTREE
|
||||
t1 1 b 1 b A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8) PRIMARY KEY
|
||||
) ENGINE=rocksdb;
|
||||
SHOW INDEX IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 b A # NULL NULL LSMTREE
|
||||
ALTER TABLE t1 ADD CONSTRAINT PRIMARY KEY pk (a);
|
||||
ERROR 42000: Multiple primary key defined
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 b A # NULL NULL LSMTREE
|
||||
DROP TABLE t1;
|
42
storage/rocksdb/mysql-test/rocksdb/r/index_type_btree.result
Normal file
42
storage/rocksdb/mysql-test/rocksdb/r/index_type_btree.result
Normal file
|
@ -0,0 +1,42 @@
|
|||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY USING BTREE (a)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY a_b USING BTREE (a,b) COMMENT 'a_b index'
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a_b 1 a A # NULL NULL YES LSMTREE a_b index
|
||||
t1 1 a_b 2 b A # NULL NULL YES LSMTREE a_b index
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY USING BTREE (a),
|
||||
KEY USING BTREE (b)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE
|
||||
t1 1 b 1 b A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (100,'z');
|
||||
ALTER TABLE t1 ADD KEY (a) USING BTREE COMMENT 'simple index on a';
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE simple index on a
|
||||
ALTER TABLE t1 DROP KEY a;
|
||||
DROP TABLE t1;
|
42
storage/rocksdb/mysql-test/rocksdb/r/index_type_hash.result
Normal file
42
storage/rocksdb/mysql-test/rocksdb/r/index_type_hash.result
Normal file
|
@ -0,0 +1,42 @@
|
|||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY USING HASH (a)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY a_b USING HASH (a,b) COMMENT 'a_b index'
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a_b 1 a A # NULL NULL YES LSMTREE a_b index
|
||||
t1 1 a_b 2 b A # NULL NULL YES LSMTREE a_b index
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
pk INT PRIMARY KEY,
|
||||
KEY USING HASH (a),
|
||||
KEY USING HASH (b)
|
||||
) ENGINE=rocksdb;
|
||||
SHOW KEYS IN t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE
|
||||
t1 1 b 1 b A # NULL NULL YES LSMTREE
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (100,'z');
|
||||
ALTER TABLE t1 ADD KEY (a) USING HASH COMMENT 'simple index on a';
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment
|
||||
t1 0 PRIMARY 1 pk A # NULL NULL LSMTREE
|
||||
t1 1 a 1 a A # NULL NULL YES LSMTREE simple index on a
|
||||
ALTER TABLE t1 DROP KEY a;
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1,78 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
DROP TABLE IF EXISTS t3;
|
||||
select * from INFORMATION_SCHEMA.ROCKSDB_GLOBAL_INFO;
|
||||
TYPE NAME VALUE
|
||||
MAX_INDEX_ID MAX_INDEX_ID max_index_id
|
||||
CF_FLAGS 0 default [0]
|
||||
CF_FLAGS 1 __system__ [0]
|
||||
select count(*) from INFORMATION_SCHEMA.ROCKSDB_GLOBAL_INFO;
|
||||
count(*)
|
||||
3
|
||||
CREATE TABLE t1 (i1 INT, i2 INT, PRIMARY KEY (i1)) ENGINE = ROCKSDB;
|
||||
INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3);
|
||||
select * from INFORMATION_SCHEMA.ROCKSDB_GLOBAL_INFO;
|
||||
TYPE NAME VALUE
|
||||
BINLOG FILE master-bin.000001
|
||||
BINLOG POS 1066
|
||||
BINLOG GTID uuid:5
|
||||
MAX_INDEX_ID MAX_INDEX_ID max_index_id
|
||||
CF_FLAGS 0 default [0]
|
||||
CF_FLAGS 1 __system__ [0]
|
||||
select count(*) from INFORMATION_SCHEMA.ROCKSDB_GLOBAL_INFO;
|
||||
count(*)
|
||||
6
|
||||
CREATE INDEX tindex1 on t1 (i1);
|
||||
CREATE INDEX tindex2 on t1 (i2);
|
||||
select * from INFORMATION_SCHEMA.ROCKSDB_GLOBAL_INFO where TYPE = 'CF_FLAGS';
|
||||
TYPE NAME VALUE
|
||||
CF_FLAGS 0 default [0]
|
||||
CF_FLAGS 1 __system__ [0]
|
||||
CREATE TABLE t2 (
|
||||
a int,
|
||||
b int,
|
||||
c int,
|
||||
d int,
|
||||
e int,
|
||||
PRIMARY KEY (a) COMMENT "cf_a",
|
||||
KEY (b) COMMENT "cf_b",
|
||||
KEY (c) COMMENT "cf_c",
|
||||
KEY (d) COMMENT "$per_index_cf",
|
||||
KEY (e) COMMENT "rev:cf_d") ENGINE=ROCKSDB;
|
||||
select * from INFORMATION_SCHEMA.ROCKSDB_GLOBAL_INFO where TYPE = 'CF_FLAGS';
|
||||
TYPE NAME VALUE
|
||||
CF_FLAGS 0 default [0]
|
||||
CF_FLAGS 1 __system__ [0]
|
||||
CF_FLAGS 2 cf_a [0]
|
||||
CF_FLAGS 3 cf_b [0]
|
||||
CF_FLAGS 4 cf_c [0]
|
||||
CF_FLAGS 5 test.t2.d [2]
|
||||
CF_FLAGS 6 rev:cf_d [1]
|
||||
CREATE TABLE t3 (a INT, PRIMARY KEY (a)) ENGINE=ROCKSDB;
|
||||
insert into t3 (a) values (1), (2), (3);
|
||||
SET @ORIG_ROCKSDB_PAUSE_BACKGROUND_WORK = @@GLOBAL.ROCKSDB_PAUSE_BACKGROUND_WORK;
|
||||
SHOW GLOBAL VARIABLES LIKE 'ROCKSDB_PAUSE_BACKGROUND_WORK';
|
||||
Variable_name Value
|
||||
rocksdb_pause_background_work OFF
|
||||
SET GLOBAL ROCKSDB_PAUSE_BACKGROUND_WORK=1;
|
||||
SHOW GLOBAL VARIABLES LIKE 'ROCKSDB_PAUSE_BACKGROUND_WORK';
|
||||
Variable_name Value
|
||||
rocksdb_pause_background_work ON
|
||||
SET GLOBAL ROCKSDB_PAUSE_BACKGROUND_WORK=1;
|
||||
SHOW GLOBAL VARIABLES LIKE 'ROCKSDB_PAUSE_BACKGROUND_WORK';
|
||||
Variable_name Value
|
||||
rocksdb_pause_background_work ON
|
||||
DROP TABLE t3;
|
||||
cf_id:0,index_id:268
|
||||
SET GLOBAL ROCKSDB_PAUSE_BACKGROUND_WORK=0;
|
||||
SHOW GLOBAL VARIABLES LIKE 'ROCKSDB_PAUSE_BACKGROUND_WORK';
|
||||
Variable_name Value
|
||||
rocksdb_pause_background_work OFF
|
||||
next line shouldn't cause assertion to fail
|
||||
SET GLOBAL ROCKSDB_PAUSE_BACKGROUND_WORK=0;
|
||||
SHOW GLOBAL VARIABLES LIKE 'ROCKSDB_PAUSE_BACKGROUND_WORK';
|
||||
Variable_name Value
|
||||
rocksdb_pause_background_work OFF
|
||||
SET GLOBAL ROCKSDB_PAUSE_BACKGROUND_WORK = @ORIG_ROCKSDB_PAUSE_BACKGROUND_WORK;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
|
@ -0,0 +1,120 @@
|
|||
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
|
||||
trx_id trx_state trx_started trx_requested_lock_id trx_wait_started trx_weight trx_mysql_thread_id trx_query trx_operation_state trx_tables_in_use trx_tables_locked trx_lock_structs trx_lock_memory_bytes trx_rows_locked trx_rows_modified trx_concurrency_tickets trx_isolation_level trx_unique_checks trx_foreign_key_checks trx_last_foreign_key_error trx_adaptive_hash_latched trx_adaptive_hash_timeout trx_is_read_only trx_autocommit_non_locking
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_TRX but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_FILE_STATUS;
|
||||
FILE OPERATION REQUESTS SLOW BYTES BYTES/R SVC:SECS SVC:MSECS/R SVC:MAX_MSECS WAIT:SECS WAIT:MSECS/R WAIT:MAX_MSECS
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_FILE_STATUS but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
|
||||
lock_id lock_trx_id lock_mode lock_type lock_table lock_index lock_space lock_page lock_rec lock_data
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_LOCKS but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
|
||||
requesting_trx_id requested_lock_id blocking_trx_id blocking_lock_id
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_LOCK_WAITS but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP;
|
||||
page_size compress_ops compress_ops_ok compress_time compress_ok_time compress_primary_ops compress_primary_ops_ok compress_primary_time compress_primary_ok_time compress_secondary_ops compress_secondary_ops_ok compress_secondary_time compress_secondary_ok_time uncompress_ops uncompress_time uncompress_primary_ops uncompress_primary_time uncompress_secondary_ops uncompress_secondary_time
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMP but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_RESET;
|
||||
page_size compress_ops compress_ops_ok compress_time compress_ok_time compress_primary_ops compress_primary_ops_ok compress_primary_time compress_primary_ok_time compress_secondary_ops compress_secondary_ops_ok compress_secondary_time compress_secondary_ok_time uncompress_ops uncompress_time uncompress_primary_ops uncompress_primary_time uncompress_secondary_ops uncompress_secondary_time
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMP_RESET but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX;
|
||||
database_name table_name index_name compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX_RESET;
|
||||
database_name table_name index_name compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX_RESET but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM;
|
||||
page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMPMEM but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM_RESET;
|
||||
page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMPMEM_RESET but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS;
|
||||
NAME SUBSYSTEM COUNT MAX_COUNT MIN_COUNT AVG_COUNT COUNT_RESET MAX_COUNT_RESET MIN_COUNT_RESET AVG_COUNT_RESET TIME_ENABLED TIME_DISABLED TIME_ELAPSED TIME_RESET STATUS TYPE COMMENT
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_METRICS but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DEFAULT_STOPWORD;
|
||||
value
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_FT_DEFAULT_STOPWORD but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_DELETED;
|
||||
DOC_ID
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_FT_DELETED but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_BEING_DELETED;
|
||||
DOC_ID
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_FT_BEING_DELETED but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
|
||||
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
|
||||
WORD FIRST_DOC_ID LAST_DOC_ID DOC_COUNT DOC_ID POSITION
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_CONFIG;
|
||||
KEY VALUE
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_FT_CONFIG but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS;
|
||||
POOL_ID POOL_SIZE FREE_BUFFERS DATABASE_PAGES OLD_DATABASE_PAGES MODIFIED_DATABASE_PAGES PENDING_DECOMPRESS PENDING_READS PENDING_FLUSH_LRU PENDING_FLUSH_LIST PAGES_MADE_YOUNG PAGES_NOT_MADE_YOUNG PAGES_MADE_YOUNG_RATE PAGES_MADE_NOT_YOUNG_RATE NUMBER_PAGES_READ NUMBER_PAGES_CREATED NUMBER_PAGES_WRITTEN PAGES_READ_RATE PAGES_CREATE_RATE PAGES_WRITTEN_RATE NUMBER_PAGES_GET HIT_RATE YOUNG_MAKE_PER_THOUSAND_GETS NOT_YOUNG_MAKE_PER_THOUSAND_GETS NUMBER_PAGES_READ_AHEAD NUMBER_READ_AHEAD_EVICTED READ_AHEAD_RATE READ_AHEAD_EVICTED_RATE LRU_IO_TOTAL LRU_IO_CURRENT UNCOMPRESS_TOTAL UNCOMPRESS_CURRENT
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE;
|
||||
POOL_ID BLOCK_ID SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE PAGE_STATE IO_FIX IS_OLD FREE_PAGE_CLOCK
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_BUFFER_PAGE but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU;
|
||||
POOL_ID LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES;
|
||||
TABLE_ID NAME FLAG N_COLS SPACE FILE_FORMAT ROW_FORMAT ZIP_PAGE_SIZE
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_TABLES but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;
|
||||
TABLE_ID NAME STATS_INITIALIZED NUM_ROWS CLUST_INDEX_SIZE OTHER_INDEX_SIZE MODIFIED_COUNTER AUTOINC REF_COUNT
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES;
|
||||
INDEX_ID NAME TABLE_ID TYPE N_FIELDS PAGE_NO SPACE
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_INDEXES but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS;
|
||||
TABLE_ID NAME POS MTYPE PRTYPE LEN
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS;
|
||||
INDEX_ID NAME POS
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_FIELDS but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
||||
ID FOR_NAME REF_NAME N_COLS TYPE
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_FOREIGN but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
||||
ID FOR_COL_NAME REF_COL_NAME POS
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES;
|
||||
SPACE NAME FLAG FILE_FORMAT ROW_FORMAT PAGE_SIZE ZIP_PAGE_SIZE
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DATAFILES;
|
||||
SPACE PATH
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_DATAFILES but the InnoDB storage engine is not installed
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DOCSTORE_FIELDS;
|
||||
INDEX_ID POS DOCUMENT_PATH DOCUMENT_TYPE
|
||||
Warnings:
|
||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_DOCSTORE_FIELDS but the InnoDB storage engine is not installed
|
202
storage/rocksdb/mysql-test/rocksdb/r/insert.result
Normal file
202
storage/rocksdb/mysql-test/rocksdb/r/insert.result
Normal file
|
@ -0,0 +1,202 @@
|
|||
DROP TABLE IF EXISTS t1, t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t1 VALUES (100,'foobar',100),(1,'a',101),(2,'b',103),(3,'c',104),(4,'d',105),(5,'e',106);
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
100 foobar
|
||||
2 b
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
INSERT t1 VALUE (10,'foo',107),(11,'abc',108);
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
10 foo
|
||||
100 foobar
|
||||
11 abc
|
||||
2 b
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
INSERT INTO t1 (b,a) VALUES ('test',0);
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0 test
|
||||
1 a
|
||||
10 foo
|
||||
100 foobar
|
||||
11 abc
|
||||
2 b
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
INSERT INTO t1 VALUES (DEFAULT,DEFAULT,NULL);
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0 test
|
||||
1 a
|
||||
10 foo
|
||||
100 foobar
|
||||
11 abc
|
||||
2 b
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
NULL NULL
|
||||
INSERT t1 (a) VALUE (10),(20);
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0 test
|
||||
1 a
|
||||
10 NULL
|
||||
10 foo
|
||||
100 foobar
|
||||
11 abc
|
||||
2 b
|
||||
20 NULL
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
NULL NULL
|
||||
INSERT INTO t1 SET a = 11, b = 'f';
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0 test
|
||||
1 a
|
||||
10 NULL
|
||||
10 foo
|
||||
100 foobar
|
||||
11 abc
|
||||
11 f
|
||||
2 b
|
||||
20 NULL
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
NULL NULL
|
||||
INSERT t1 SET b = DEFAULT;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0 test
|
||||
1 a
|
||||
10 NULL
|
||||
10 foo
|
||||
100 foobar
|
||||
11 abc
|
||||
11 f
|
||||
2 b
|
||||
20 NULL
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
NULL NULL
|
||||
NULL NULL
|
||||
CREATE TABLE t2 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t2 SELECT a,b,pk FROM t1;
|
||||
INSERT INTO t1 (a) SELECT a FROM t2 WHERE b = 'foo';
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0 test
|
||||
1 a
|
||||
10 NULL
|
||||
10 NULL
|
||||
10 foo
|
||||
100 foobar
|
||||
11 abc
|
||||
11 f
|
||||
2 b
|
||||
20 NULL
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
NULL NULL
|
||||
NULL NULL
|
||||
INSERT t1 (a,b) SELECT a,b FROM t1;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0 test
|
||||
0 test
|
||||
1 a
|
||||
1 a
|
||||
10 NULL
|
||||
10 NULL
|
||||
10 NULL
|
||||
10 NULL
|
||||
10 foo
|
||||
10 foo
|
||||
100 foobar
|
||||
100 foobar
|
||||
11 abc
|
||||
11 abc
|
||||
11 f
|
||||
11 f
|
||||
2 b
|
||||
2 b
|
||||
20 NULL
|
||||
20 NULL
|
||||
3 c
|
||||
3 c
|
||||
4 d
|
||||
4 d
|
||||
5 e
|
||||
5 e
|
||||
NULL NULL
|
||||
NULL NULL
|
||||
NULL NULL
|
||||
NULL NULL
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
BEGIN;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e'),(100,'foo');
|
||||
INSERT t1 (a,b) VALUE (10,'foo'),(11,'abc');
|
||||
COMMIT;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
10 foo
|
||||
100 foo
|
||||
11 abc
|
||||
2 b
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
BEGIN;
|
||||
INSERT INTO t1 (b,a) VALUES ('test',0);
|
||||
SAVEPOINT spt1;
|
||||
INSERT INTO t1 (a,b) VALUES (DEFAULT,DEFAULT);
|
||||
RELEASE SAVEPOINT spt1;
|
||||
INSERT INTO t1 (a,b) VALUES (DEFAULT,DEFAULT);
|
||||
ROLLBACK;
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
10 foo
|
||||
100 foo
|
||||
11 abc
|
||||
2 b
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
BEGIN;
|
||||
INSERT t1 (a) VALUE (10),(20);
|
||||
SAVEPOINT spt1;
|
||||
INSERT INTO t1 SET a = 11, b = 'f';
|
||||
INSERT t1 SET b = DEFAULT;
|
||||
ROLLBACK TO SAVEPOINT spt1;
|
||||
ERROR HY000: MyRocks currently does not support ROLLBACK TO SAVEPOINT if modifying rows.
|
||||
INSERT INTO t1 (b,a) VALUES ('test1',10);
|
||||
COMMIT;
|
||||
ERROR HY000: This transaction was rolled back and cannot be committed. Only supported operation is to roll it back, so all pending changes will be discarded. Please restart another transaction.
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
1 a
|
||||
10 foo
|
||||
100 foo
|
||||
11 abc
|
||||
2 b
|
||||
3 c
|
||||
4 d
|
||||
5 e
|
||||
DROP TABLE t1;
|
|
@ -0,0 +1,16 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
create table t1(
|
||||
id bigint not null primary key,
|
||||
i1 bigint, #unique
|
||||
i2 bigint, #repeating
|
||||
c1 varchar(20), #unique
|
||||
c2 varchar(20), #repeating
|
||||
index t1_2(i1)
|
||||
) engine=rocksdb;
|
||||
select count(*), sum(id), sum(i1), sum(i2) from t1;
|
||||
count(*) sum(id) sum(i1) sum(i2)
|
||||
50000 1250025000 1250025000 124980000
|
||||
select count(*), sum(id), sum(i1), sum(i2) from t1;
|
||||
count(*) sum(id) sum(i1) sum(i2)
|
||||
50000 1250025000 1250025000 124980000
|
||||
drop table t1;
|
63
storage/rocksdb/mysql-test/rocksdb/r/insert_with_keys.result
Normal file
63
storage/rocksdb/mysql-test/rocksdb/r/insert_with_keys.result
Normal file
|
@ -0,0 +1,63 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1 (a INT, b CHAR(8), pk INT AUTO_INCREMENT PRIMARY KEY, KEY(b)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e');
|
||||
INSERT INTO t1 (a,b) VALUES (100,'a'), (6,'f');
|
||||
INSERT INTO t1 (a,b) VALUES (30,'m'),(29,'n');
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(12345,'z');
|
||||
INSERT INTO t1 (a,b) VALUES (3,'a'),(0,'');
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0
|
||||
1 a
|
||||
1 a
|
||||
100 a
|
||||
12345 z
|
||||
2 b
|
||||
29 n
|
||||
3 a
|
||||
3 c
|
||||
30 m
|
||||
4 d
|
||||
5 e
|
||||
6 f
|
||||
DROP TABLE t1;
|
||||
#----------------------------------------
|
||||
# UNIQUE KEYS are not supported currently
|
||||
#-----------------------------------------
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b CHAR(8)) ENGINE=rocksdb;
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'e');
|
||||
INSERT INTO t1 (a,b) VALUES (100,'a'), (6,'f');
|
||||
INSERT INTO t1 (a,b) VALUES (30,'m'),(29,'n');
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(12345,'z');
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
INSERT INTO t1 (a,b) VALUES (3,'a'),(0,'');
|
||||
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
|
||||
INSERT INTO t1 (a,b) VALUES (0,'');
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0
|
||||
1 a
|
||||
100 a
|
||||
2 b
|
||||
29 n
|
||||
3 c
|
||||
30 m
|
||||
4 d
|
||||
5 e
|
||||
6 f
|
||||
INSERT IGNORE INTO t1 (a,b) VALUES (1,'a'),(12345,'z');
|
||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(12345,'z') ON DUPLICATE KEY UPDATE b = CONCAT(b,b);
|
||||
SELECT a,b FROM t1;
|
||||
a b
|
||||
0
|
||||
1 aa
|
||||
100 a
|
||||
12345 zz
|
||||
2 b
|
||||
29 n
|
||||
3 c
|
||||
30 m
|
||||
4 d
|
||||
5 e
|
||||
6 f
|
||||
DROP TABLE t1;
|
23
storage/rocksdb/mysql-test/rocksdb/r/issue100.result
Normal file
23
storage/rocksdb/mysql-test/rocksdb/r/issue100.result
Normal file
|
@ -0,0 +1,23 @@
|
|||
create table t1 (
|
||||
id int,
|
||||
value int,
|
||||
primary key (id)
|
||||
) engine=rocksdb;
|
||||
insert into t1 values(1,1),(2,2);
|
||||
set autocommit=0;
|
||||
begin;
|
||||
insert into t1 values (50,50);
|
||||
select * from t1;
|
||||
id value
|
||||
1 1
|
||||
2 2
|
||||
50 50
|
||||
update t1 set id=id+100;
|
||||
select * from t1;
|
||||
id value
|
||||
101 1
|
||||
102 2
|
||||
150 50
|
||||
rollback;
|
||||
set autocommit=1;
|
||||
drop table t1;
|
17
storage/rocksdb/mysql-test/rocksdb/r/issue100_delete.result
Normal file
17
storage/rocksdb/mysql-test/rocksdb/r/issue100_delete.result
Normal file
|
@ -0,0 +1,17 @@
|
|||
create table ten(a int primary key);
|
||||
insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table one_k(a int primary key);
|
||||
insert into one_k select A.a + B.a* 10 + C.a * 100 from ten A, ten B, ten C;
|
||||
create table t100(pk int primary key, a int, b int, key(a));
|
||||
insert into t100 select a,a,a from test.one_k;
|
||||
set global rocksdb_force_flush_memtable_now=1;
|
||||
select num_rows, entry_deletes, entry_singledeletes from information_schema.rocksdb_index_file_map where index_number = (select max(index_number) from information_schema.rocksdb_index_file_map) order by entry_deletes, entry_singledeletes;
|
||||
num_rows entry_deletes entry_singledeletes
|
||||
1000 0 0
|
||||
update t100 set a=a+1;
|
||||
set global rocksdb_force_flush_memtable_now=1;
|
||||
select num_rows, entry_deletes, entry_singledeletes from information_schema.rocksdb_index_file_map where index_number = (select max(index_number) from information_schema.rocksdb_index_file_map) order by entry_deletes, entry_singledeletes;
|
||||
num_rows entry_deletes entry_singledeletes
|
||||
1000 0 0
|
||||
1000 0 1000
|
||||
drop table ten, t100, one_k;
|
32
storage/rocksdb/mysql-test/rocksdb/r/issue111.result
Normal file
32
storage/rocksdb/mysql-test/rocksdb/r/issue111.result
Normal file
|
@ -0,0 +1,32 @@
|
|||
create table t1 (
|
||||
pk int not null primary key,
|
||||
col1 int not null,
|
||||
col2 int not null,
|
||||
key(col1)
|
||||
) engine=rocksdb;
|
||||
create table ten(a int primary key);
|
||||
insert into ten values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table one_k(a int primary key);
|
||||
insert into one_k select A.a + B.a* 10 + C.a * 100 from ten A, ten B, ten C;
|
||||
insert into t1 select a,a,a from one_k;
|
||||
# Start the transaction, get the snapshot
|
||||
begin;
|
||||
select * from t1 where col1<10;
|
||||
pk col1 col2
|
||||
0 0 0
|
||||
1 1 1
|
||||
2 2 2
|
||||
3 3 3
|
||||
4 4 4
|
||||
5 5 5
|
||||
6 6 6
|
||||
7 7 7
|
||||
8 8 8
|
||||
9 9 9
|
||||
# Connect with another connection and make a conflicting change
|
||||
begin;
|
||||
update t1 set col2=123456 where pk=0;
|
||||
commit;
|
||||
update t1 set col2=col2+1 where col1 < 10 limit 5;
|
||||
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
|
||||
drop table t1, ten, one_k;
|
28
storage/rocksdb/mysql-test/rocksdb/r/issue290.result
Normal file
28
storage/rocksdb/mysql-test/rocksdb/r/issue290.result
Normal file
|
@ -0,0 +1,28 @@
|
|||
CREATE TABLE `linktable` (
|
||||
`id1` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`id1_type` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`id2` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`id2_type` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`link_type` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`visibility` tinyint(3) NOT NULL DEFAULT '0',
|
||||
`data` varchar(255) NOT NULL DEFAULT '',
|
||||
`time` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`version` int(11) unsigned NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (link_type, `id1`,`id2`) COMMENT 'cf_link_pk',
|
||||
KEY `id1_type` (`id1`,`link_type`,`visibility`,`time`,`id2`,`version`,`data`) COMMENT 'rev:cf_link_id1_type'
|
||||
) ENGINE=RocksDB DEFAULT COLLATE=latin1_bin;
|
||||
set global rocksdb_force_flush_memtable_now=1;
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 1);
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 2);
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 3);
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 4);
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 5);
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 6);
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 7);
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 8);
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 9);
|
||||
insert into linktable (id1, link_type, id2) values (2, 1, 10);
|
||||
explain select id1, id2, link_type, data from linktable where id1=2 and link_type=1 and (id2=1 or id2=2 or id2=3 or id2=4 or id2=5);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE linktable range PRIMARY,id1_type PRIMARY 24 NULL # Using where
|
||||
drop table linktable;
|
12
storage/rocksdb/mysql-test/rocksdb/r/issue314.result
Normal file
12
storage/rocksdb/mysql-test/rocksdb/r/issue314.result
Normal file
|
@ -0,0 +1,12 @@
|
|||
drop table if exists t1;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
||||
CREATE TABLE t1(a int);
|
||||
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
INSERT INTO t1 VALUES(1);
|
||||
select * from t1;
|
||||
ERROR HY000: MyRocks supports only READ COMMITTED and REPEATABLE READ isolation levels. Please change from current isolation level SERIALIZABLE
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
drop table t1;
|
111
storage/rocksdb/mysql-test/rocksdb/r/level_read_committed.result
Normal file
111
storage/rocksdb/mysql-test/rocksdb/r/level_read_committed.result
Normal file
|
@ -0,0 +1,111 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
connect con1,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
connect con2,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
connection con1;
|
||||
CREATE TABLE t1 (a INT, pk INT AUTO_INCREMENT PRIMARY KEY) ENGINE=rocksdb;
|
||||
START TRANSACTION;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
connection con2;
|
||||
BEGIN;
|
||||
INSERT INTO t1 (a) VALUES(1);
|
||||
connection con1;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
connection con2;
|
||||
INSERT INTO t1 (a) VALUES (2);
|
||||
connection con1;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
INSERT INTO t1 (a) SELECT a+100 FROM t1;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
connection con2;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
COMMIT;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
connection con1;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
INSERT INTO t1 (a) SELECT a+200 FROM t1;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
201
|
||||
202
|
||||
COMMIT;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
201
|
||||
202
|
||||
connection con2;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
201
|
||||
202
|
||||
connection default;
|
||||
CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=rocksdb;
|
||||
INSERT INTO t2 (a) VALUES (1);
|
||||
COMMIT;
|
||||
connection con1;
|
||||
BEGIN;
|
||||
SELECT a from t2;
|
||||
a
|
||||
1
|
||||
INSERT INTO t2 (a) VALUES (1), (3);
|
||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||
connection con2;
|
||||
INSERT INTO t2 (a) VALUES (2);
|
||||
COMMIT;
|
||||
connection con1;
|
||||
SELECT a from t2;
|
||||
a
|
||||
1
|
||||
2
|
||||
COMMIT;
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t3 (
|
||||
pk int unsigned PRIMARY KEY,
|
||||
count int unsigned DEFAULT '0'
|
||||
) ENGINE=ROCKSDB;
|
||||
connect con1,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
connect con2,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
connection con1;
|
||||
BEGIN;
|
||||
SELECT * FROM t3;
|
||||
pk count
|
||||
connection con2;
|
||||
BEGIN;
|
||||
INSERT INTO t3 (pk) VALUES(1) ON DUPLICATE KEY UPDATE count=count+1;
|
||||
COMMIT;
|
||||
connection con1;
|
||||
INSERT INTO t3 (pk) VALUES(1) ON DUPLICATE KEY UPDATE count=count+1;
|
||||
COMMIT;
|
||||
SELECT count FROM t3;
|
||||
count
|
||||
1
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP TABLE t3;
|
|
@ -0,0 +1,116 @@
|
|||
DROP TABLE IF EXISTS t1;
|
||||
connect con1,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
connect con2,localhost,root,,;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
connection con1;
|
||||
CREATE TABLE t1 (a <INT_COLUMN>) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||
START TRANSACTION;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
connection con2;
|
||||
BEGIN;
|
||||
INSERT INTO t1 (a) VALUES(1);
|
||||
# WARNING: Statement ended with errno 0, errname ''.
|
||||
# If it differs from the result file, it might indicate a problem.
|
||||
connection con1;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
connection con2;
|
||||
INSERT INTO t1 (a) VALUES (2);
|
||||
# WARNING: Statement ended with errno 0, errname ''.
|
||||
# If it differs from the result file, it might indicate a problem.
|
||||
connection con1;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
INSERT INTO t1 (a) SELECT a+100 FROM t1;
|
||||
# WARNING: Statement ended with errno 0, errname ''.
|
||||
# If it differs from the result file, it might indicate a problem.
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
101
|
||||
102
|
||||
2
|
||||
connection con2;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
101
|
||||
102
|
||||
2
|
||||
COMMIT;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
101
|
||||
102
|
||||
2
|
||||
connection con1;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
101
|
||||
102
|
||||
2
|
||||
INSERT INTO t1 (a) SELECT a+200 FROM t1;
|
||||
# WARNING: Statement ended with errno 0, errname ''.
|
||||
# If it differs from the result file, it might indicate a problem.
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
101
|
||||
102
|
||||
2
|
||||
201
|
||||
202
|
||||
301
|
||||
302
|
||||
COMMIT;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
101
|
||||
102
|
||||
2
|
||||
201
|
||||
202
|
||||
301
|
||||
302
|
||||
connection con2;
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
101
|
||||
102
|
||||
2
|
||||
201
|
||||
202
|
||||
301
|
||||
302
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP TABLE t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
connect con1,localhost,root,,;
|
||||
connect con2,localhost,root,,;
|
||||
connection con1;
|
||||
CREATE TABLE t1 (a <INT_COLUMN>) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
START TRANSACTION WITH CONSISTENT SNAPSHOT;
|
||||
connection con2;
|
||||
INSERT INTO t1 (a) VALUES (1);
|
||||
connection con1;
|
||||
# If consistent read works on this isolation level (READ UNCOMMITTED), the following SELECT should not return the value we inserted (1)
|
||||
SELECT a FROM t1;
|
||||
a
|
||||
1
|
||||
COMMIT;
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP TABLE t1;
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue