73 lines
2.4 KiB
Bash
73 lines
2.4 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Copyright 2019 PingCAP, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# before v4.0.5 tiflash doesn't support tls, so we should skip this test then
|
|
(check_cluster_version 4 0 5 'TiFlash' && [ -n "$TIFLASH" ]) || exit 0
|
|
|
|
set -euE
|
|
# Populate the mydumper source
|
|
DBPATH="$TEST_DIR/tiflash.mydump"
|
|
mkdir -p $DBPATH
|
|
DB=test_tiflash
|
|
|
|
cat > "$DBPATH/$DB.t1.0.sql" << _EOF_
|
|
INSERT INTO t1 (s, i, j) VALUES
|
|
("this_is_test1", 1, 1),
|
|
("this_is_test2", 2, 2),
|
|
("this_is_test3", 3, 3),
|
|
("this_is_test4", 4, 4),
|
|
("this_is_test5", 5, 5);
|
|
_EOF_
|
|
|
|
echo "INSERT INTO t2 VALUES (1, 1), (2, 2)" > "$DBPATH/$DB.t2.0.sql"
|
|
echo "INSERT INTO t2 VALUES (3, 3), (4, 4)" > "$DBPATH/$DB.t2.1.sql"
|
|
|
|
tiflash_replica_ready() {
|
|
i=0
|
|
run_sql "select sum(AVAILABLE) from information_schema.tiflash_replica WHERE TABLE_NAME = \"$1\""
|
|
while ! check_contains "sum(AVAILABLE): 1" check; do
|
|
i=$((i+1))
|
|
if [ "$i" -gt 100 ]; then
|
|
echo "wait tiflash replica ready timeout"
|
|
return 1
|
|
fi
|
|
sleep 3
|
|
run_sql "select sum(AVAILABLE) from information_schema.tiflash_replica WHERE TABLE_NAME = \"$1\""
|
|
done
|
|
}
|
|
|
|
for BACKEND in importer tidb local; do
|
|
run_sql "DROP DATABASE IF EXISTS $DB"
|
|
run_sql "CREATE DATABASE $DB"
|
|
run_sql "CREATE TABLE $DB.t1 (i INT, j INT, s varchar(32), PRIMARY KEY(s, i));"
|
|
run_sql "ALTER TABLE $DB.t1 SET TIFLASH REPLICA 1;"
|
|
tiflash_replica_ready t1
|
|
run_sql "CREATE TABLE $DB.t2 (i INT, j TINYINT);"
|
|
run_sql "ALTER TABLE $DB.t2 SET TIFLASH REPLICA 1;"
|
|
tiflash_replica_ready t2
|
|
|
|
run_lightning -d "$DBPATH" --backend $BACKEND 2> /dev/null
|
|
|
|
run_sql "SELECT /*+ read_from_storage(tiflash[t1]) */ count(*), sum(i) FROM \`$DB\`.t1"
|
|
check_contains "count(*): 5"
|
|
check_contains "sum(i): 15"
|
|
|
|
run_sql "SELECT /*+ read_from_storage(tiflash[t2]) */ count(*), sum(i) FROM \`$DB\`.t2"
|
|
check_contains "count(*): 4"
|
|
check_contains "sum(i): 10"
|
|
|
|
done
|