Skip to content

Commit

Permalink
Add ts/ds test for table properties (#251)
Browse files Browse the repository at this point in the history
  • Loading branch information
wyxxxcat authored and w41ter committed Nov 29, 2024
1 parent 27a95de commit 80d63f3
Show file tree
Hide file tree
Showing 44 changed files with 3,417 additions and 22 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you 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.

suite("test_ds_tbl_auto_bucket") {
def helper = new GroovyShell(new Binding(['suite': delegate]))
.evaluate(new File("${context.config.suitePath}/../common", "helper.groovy"))

def dbName = context.dbName
def tableName = "tbl_" + helper.randomSuffix()
def test_num = 0
def insert_num = 5

def exist = { res -> Boolean
return res.size() != 0
}

sql "DROP TABLE IF EXISTS ${dbName}.${tableName}"
target_sql "DROP TABLE IF EXISTS TEST_${dbName}.${tableName}"

helper.enableDbBinlog()

sql """
CREATE TABLE if NOT EXISTS ${tableName}
(
`test` INT,
`id` INT
)
ENGINE=OLAP
AGGREGATE KEY(`test`, `id`)
PARTITION BY RANGE(`id`)
(
)
DISTRIBUTED BY HASH(`id`) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"binlog.enable" = "true"
)
"""

helper.ccrJobDelete()
helper.ccrJobCreate()

assertTrue(helper.checkRestoreFinishTimesOf("${tableName}", 30))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "sql"))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "target"))

def target_res = target_sql "SHOW CREATE TABLE ${tableName}"

assertTrue(target_res[0][1].contains("DISTRIBUTED BY HASH(`id`) BUCKETS AUTO"))
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you 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.

suite("test_ds_tbl_auto_compaction") {
def helper = new GroovyShell(new Binding(['suite': delegate]))
.evaluate(new File("${context.config.suitePath}/../common", "helper.groovy"))

def dbName = context.dbName
def tableName = "tbl_" + helper.randomSuffix()
def test_num = 0
def insert_num = 5

def exist = { res -> Boolean
return res.size() != 0
}

sql "DROP TABLE IF EXISTS ${dbName}.${tableName}"
target_sql "DROP TABLE IF EXISTS TEST_${dbName}.${tableName}"

helper.enableDbBinlog()

sql """
CREATE TABLE if NOT EXISTS ${tableName}
(
`test` INT,
`id` INT
)
ENGINE=OLAP
AGGREGATE KEY(`test`, `id`)
PARTITION BY RANGE(`id`)
(
)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"binlog.enable" = "true",
"disable_auto_compaction" = "false"
)
"""

helper.ccrJobDelete()
helper.ccrJobCreate()

assertTrue(helper.checkRestoreFinishTimesOf("${tableName}", 30))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "sql"))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "target"))

def target_res = target_sql "SHOW CREATE TABLE ${tableName}"

assertTrue(target_res[0][1].contains("\"disable_auto_compaction\" = \"false\""))
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you 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.

suite("test_ds_tbl_auto_increment") {
def helper = new GroovyShell(new Binding(['suite': delegate]))
.evaluate(new File("${context.config.suitePath}/../common", "helper.groovy"))

def dbName = context.dbName
def tableName = "tbl_" + helper.randomSuffix()
def test_num = 0
def insert_num = 5

def exist = { res -> Boolean
return res.size() != 0
}

sql "DROP TABLE IF EXISTS ${dbName}.${tableName}"
target_sql "DROP TABLE IF EXISTS TEST_${dbName}.${tableName}"

helper.enableDbBinlog()

sql """
CREATE TABLE ${tableName} (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`value` int(11) NOT NULL
) ENGINE=OLAP
DUPLICATE KEY(`id`)
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
)
"""

for (int index = 0; index < insert_num; index++) {
sql "INSERT INTO ${tableName} (value) VALUES (${insert_num})"
}
sql "sync"

helper.ccrJobDelete()
helper.ccrJobCreate()

assertTrue(helper.checkRestoreFinishTimesOf("${tableName}", 30))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "sql"))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "target"))

def target_res = target_sql "SHOW CREATE TABLE ${tableName}"

assertTrue(target_res[0][1].contains("`id` bigint NOT NULL AUTO_INCREMENT(1)"))

target_res = target_sql "select * from ${tableName} order by id"

for (int index = 0; index < insert_num; index++) {
assertEquals(target_res[index][0],index + 1)
assertEquals(target_res[index][1],insert_num)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you 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.

suite("test_ds_tbl_binlog") {
def helper = new GroovyShell(new Binding(['suite': delegate]))
.evaluate(new File("${context.config.suitePath}/../common", "helper.groovy"))

def dbName = context.dbName
def tableName = "tbl_" + helper.randomSuffix()
def test_num = 0
def insert_num = 5

def exist = { res -> Boolean
return res.size() != 0
}

sql "DROP TABLE IF EXISTS ${dbName}.${tableName}"
target_sql "DROP TABLE IF EXISTS TEST_${dbName}.${tableName}"

helper.enableDbBinlog()

sql """
CREATE TABLE if NOT EXISTS ${tableName}
(
`test` INT,
`id` INT
)
ENGINE=OLAP
AGGREGATE KEY(`test`, `id`)
PARTITION BY RANGE(`id`)
(
)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"binlog.enable" = "true",
"binlog.ttl_seconds" = "86401",
"binlog.max_bytes" = "9223372036854775806",
"binlog.max_history_nums" = "9223372036854775806"
)
"""

helper.ccrJobDelete()
helper.ccrJobCreate()

assertTrue(helper.checkRestoreFinishTimesOf("${tableName}", 30))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "sql"))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "target"))

def target_res = target_sql "SHOW CREATE TABLE ${tableName}"

assertTrue(target_res[0][1].contains("\"binlog.enable\" = \"true\""))
assertTrue(target_res[0][1].contains("\"binlog.ttl_seconds\" = \"86401\""))
assertTrue(target_res[0][1].contains("\"binlog.max_bytes\" = \"9223372036854775806\""))
assertTrue(target_res[0][1].contains("\"binlog.max_history_nums\" = \"9223372036854775806\""))
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you 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.

suite("test_ds_tbl_bloom_filter") {
def helper = new GroovyShell(new Binding(['suite': delegate]))
.evaluate(new File("${context.config.suitePath}/../common", "helper.groovy"))

def dbName = context.dbName
def tableName = "tbl_" + helper.randomSuffix()

def exist = { res -> Boolean
return res.size() != 0
}

sql "DROP TABLE IF EXISTS ${dbName}.${tableName}"
target_sql "DROP TABLE IF EXISTS TEST_${dbName}.${tableName}"

helper.enableDbBinlog()

sql """
CREATE TABLE if NOT EXISTS ${tableName}
(
`test` INT,
`id` INT,
INDEX id_idx (`id`) USING INVERTED COMMENT 'test_index'
)
ENGINE=OLAP
AGGREGATE KEY(`test`, `id`)
PARTITION BY RANGE(`id`)
(
)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"binlog.enable" = "true",
"bloom_filter_columns" = "test"
)
"""

helper.ccrJobDelete()
helper.ccrJobCreate()

assertTrue(helper.checkRestoreFinishTimesOf("${tableName}", 30))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "sql"))

assertTrue(helper.checkShowTimesOf("SHOW TABLES LIKE \"${tableName}\"", exist, 60, "target"))

def target_res = target_sql "SHOW CREATE TABLE ${tableName}"

assertTrue(target_res[0][1].contains("\"bloom_filter_columns\" = \"test\""))
assertTrue(target_res[0][1].contains("INDEX id_idx (`id`) USING INVERTED COMMENT 'test_index'"))
}
Loading

0 comments on commit 80d63f3

Please sign in to comment.