mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
fix tests
This commit is contained in:
parent
8c822a7edf
commit
357df40c8f
@ -27,14 +27,18 @@ namespace DB
|
||||
const RedisStorageType & storage_type_,
|
||||
const DB::Block & sample_block,
|
||||
size_t max_block_size_)
|
||||
: ISource(sample_block), max_block_size(max_block_size_)// TODO
|
||||
: ISource(sample_block)
|
||||
, connection(std::move(connection_))
|
||||
, keys(keys_)
|
||||
, storage_type(storage_type_)
|
||||
, max_block_size{max_block_size_}
|
||||
{
|
||||
RedisColumnTypes columns_types_;
|
||||
if (storage_type_ == RedisStorageType::HASH_MAP)
|
||||
columns_types_ = REDIS_HASH_MAP_COLUMN_TYPES;
|
||||
else
|
||||
columns_types_ = REDIS_SIMPLE_COLUMN_TYPES;
|
||||
RedisSource(std::move(connection_), keys_, storage_type_, sample_block, columns_types_, max_block_size_);
|
||||
description.init(sample_block);
|
||||
}
|
||||
|
||||
RedisSource::RedisSource(
|
||||
|
@ -75,9 +75,8 @@ Pipe StorageRedis::read(
|
||||
|
||||
if (all_scan)
|
||||
{
|
||||
/// TODO use scan to avoid performance issue
|
||||
RedisCommand command_for_keys("KEYS");
|
||||
/// generate keys by table name prefix
|
||||
// command_for_keys << table_id.getTableName() + ":" + serializeStorageType(configuration.storage_type) + ":*";
|
||||
command_for_keys << "*";
|
||||
|
||||
auto all_keys = connection->client->execute<RedisArray>(command_for_keys);
|
||||
@ -136,7 +135,16 @@ Pipe StorageRedis::read(
|
||||
|
||||
RedisArray keys;
|
||||
for (size_t pos=begin; pos<std::min(end, num_keys); pos++)
|
||||
keys.add(fields->at(pos).get<String>());
|
||||
{
|
||||
if (WhichDataType(*primary_key_data_type).isStringOrFixedString())
|
||||
{
|
||||
keys.add(fields->at(pos).get<String>());
|
||||
}
|
||||
else
|
||||
{
|
||||
keys.add(toString(fields->at(pos))); /// TODO redis source deserialize
|
||||
}
|
||||
}
|
||||
|
||||
if (configuration.storage_type == RedisStorageType::HASH_MAP)
|
||||
{
|
||||
|
@ -181,3 +181,4 @@ def test_create_table(started_cluster):
|
||||
"""
|
||||
)
|
||||
|
||||
|
||||
|
@ -157,3 +157,63 @@ def test_customized_table_structure(started_cluster):
|
||||
FROM
|
||||
redis('{address}', 0, 'clickhouse', "simple", 10, "k Ss, v String")
|
||||
""")
|
||||
|
||||
|
||||
def test_data_type(started_cluster):
|
||||
client = get_redis_connection()
|
||||
address = get_address_for_ch()
|
||||
|
||||
# string
|
||||
client.flushall()
|
||||
client.set('0', '0')
|
||||
|
||||
response = TSV.toMat(node.query(
|
||||
f"""
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
redis('{address}', 0, 'clickhouse', 'simple', 10, "k String, v UInt8")
|
||||
WHERE
|
||||
k='0'
|
||||
FORMAT TSV
|
||||
"""))
|
||||
|
||||
assert (len(response) == 1)
|
||||
assert (response[0] == ['0', '0'])
|
||||
|
||||
# number
|
||||
client.flushall()
|
||||
client.set('0', '0')
|
||||
|
||||
response = TSV.toMat(node.query(
|
||||
f"""
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
redis('{address}', 0, 'clickhouse', 'simple', 10, "k UInt8, v UInt8")
|
||||
WHERE
|
||||
k=0
|
||||
FORMAT TSV
|
||||
"""))
|
||||
|
||||
assert (len(response) == 1)
|
||||
assert (response[0] == ['0', '0'])
|
||||
|
||||
# datetime
|
||||
client.flushall()
|
||||
client.set('2023-06-01 00:00:00', '0')
|
||||
|
||||
response = TSV.toMat(node.query(
|
||||
f"""
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
redis('{address}', 0, 'clickhouse', 'simple', 10, "k DateTime, v UInt8")
|
||||
WHERE
|
||||
k='2023-06-01 00:00:00'
|
||||
FORMAT TSV
|
||||
"""))
|
||||
|
||||
# TODO open
|
||||
# assert (len(response) == 1)
|
||||
# assert (response[0] == ['2023-06-01 00:00:00', '0'])
|
||||
|
Loading…
Reference in New Issue
Block a user