mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
RocksDB doesn't support DESC indexes yet
disallow descending indexes in rocksdb
This commit is contained in:
@@ -7533,8 +7533,7 @@ int ha_rocksdb::create_key_def(const TABLE *const table_arg, const uint i,
|
||||
(*new_key_def)->m_ttl_column = ttl_column;
|
||||
}
|
||||
// initialize key_def
|
||||
(*new_key_def)->setup(table_arg, tbl_def_arg);
|
||||
DBUG_RETURN(HA_EXIT_SUCCESS);
|
||||
DBUG_RETURN((*new_key_def)->setup(table_arg, tbl_def_arg));
|
||||
}
|
||||
|
||||
int rdb_normalize_tablename(const std::string &tablename,
|
||||
|
@@ -23,6 +23,11 @@ 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;
|
||||
ERROR HY000: Table storage engine 'ROCKSDB' does not support the create option 'DESC'
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
PRIMARY KEY ind2(b(1)) KEY_BLOCK_SIZE=32768 COMMENT 'big key_block_size value'
|
||||
) ENGINE=rocksdb;
|
||||
Warnings:
|
||||
Warning 1280 Name 'ind2' ignored for PRIMARY key.
|
||||
SHOW INDEX IN t1;
|
||||
|
@@ -28,11 +28,17 @@ CREATE TABLE t1 (a INT,
|
||||
SHOW INDEX IN t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--error ER_ILLEGAL_HA_CREATE_OPTION
|
||||
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;
|
||||
|
||||
CREATE TABLE t1 (a INT,
|
||||
b CHAR(8),
|
||||
PRIMARY KEY ind2(b(1)) KEY_BLOCK_SIZE=32768 COMMENT 'big key_block_size value'
|
||||
) ENGINE=rocksdb;
|
||||
|
||||
--replace_column 7 #
|
||||
SHOW INDEX IN t1;
|
||||
|
||||
|
@@ -390,7 +390,7 @@ Rdb_key_def::~Rdb_key_def() {
|
||||
m_pack_info = nullptr;
|
||||
}
|
||||
|
||||
void Rdb_key_def::setup(const TABLE *const tbl,
|
||||
uint Rdb_key_def::setup(const TABLE *const tbl,
|
||||
const Rdb_tbl_def *const tbl_def) {
|
||||
DBUG_ASSERT(tbl != nullptr);
|
||||
DBUG_ASSERT(tbl_def != nullptr);
|
||||
@@ -406,7 +406,7 @@ void Rdb_key_def::setup(const TABLE *const tbl,
|
||||
RDB_MUTEX_LOCK_CHECK(m_mutex);
|
||||
if (m_maxlength != 0) {
|
||||
RDB_MUTEX_UNLOCK_CHECK(m_mutex);
|
||||
return;
|
||||
return HA_EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
KEY *key_info = nullptr;
|
||||
@@ -488,6 +488,14 @@ void Rdb_key_def::setup(const TABLE *const tbl,
|
||||
for (uint src_i = 0; src_i < m_key_parts; src_i++, keypart_to_set++) {
|
||||
Field *const field = key_part ? key_part->field : nullptr;
|
||||
|
||||
if (key_part && key_part->key_part_flag & HA_REVERSE_SORT)
|
||||
{
|
||||
my_error(ER_ILLEGAL_HA_CREATE_OPTION, MYF(0),
|
||||
"ROCKSDB", "DESC");
|
||||
RDB_MUTEX_UNLOCK_CHECK(m_mutex);
|
||||
return HA_EXIT_FAILURE;
|
||||
}
|
||||
|
||||
if (simulating_extkey && !hidden_pk_exists) {
|
||||
DBUG_ASSERT(secondary_key);
|
||||
/* Check if this field is already present in the key definition */
|
||||
@@ -591,6 +599,7 @@ void Rdb_key_def::setup(const TABLE *const tbl,
|
||||
|
||||
RDB_MUTEX_UNLOCK_CHECK(m_mutex);
|
||||
}
|
||||
return HA_EXIT_SUCCESS;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -593,7 +593,7 @@ class Rdb_key_def {
|
||||
SECONDARY_FORMAT_VERSION_UPDATE3 = 65535,
|
||||
};
|
||||
|
||||
void setup(const TABLE *const table, const Rdb_tbl_def *const tbl_def);
|
||||
uint setup(const TABLE *const table, const Rdb_tbl_def *const tbl_def);
|
||||
|
||||
static uint extract_ttl_duration(const TABLE *const table_arg,
|
||||
const Rdb_tbl_def *const tbl_def_arg,
|
||||
|
Reference in New Issue
Block a user