Skip to content

Commit 4b8b96e

Browse files
authored
fix(query): create table need fail if storage format is invalid (#16663)
1 parent 3d19b30 commit 4b8b96e

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

src/query/service/src/interpreters/interpreter_table_create.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15+
use std::str::FromStr;
1516
use std::sync::Arc;
1617

1718
use chrono::Utc;
@@ -40,6 +41,7 @@ use databend_common_pipeline_core::ExecutionInfo;
4041
use databend_common_sql::field_default_value;
4142
use databend_common_sql::plans::CreateTablePlan;
4243
use databend_common_storages_fuse::io::MetaReaders;
44+
use databend_common_storages_fuse::FuseStorageFormat;
4345
use databend_common_users::RoleCacheManager;
4446
use databend_common_users::UserApiProvider;
4547
use databend_enterprise_attach_table::get_attach_table_handler;
@@ -48,6 +50,7 @@ use databend_storages_common_table_meta::meta::TableSnapshot;
4850
use databend_storages_common_table_meta::meta::Versioned;
4951
use databend_storages_common_table_meta::table::OPT_KEY_COMMENT;
5052
use databend_storages_common_table_meta::table::OPT_KEY_SNAPSHOT_LOCATION;
53+
use databend_storages_common_table_meta::table::OPT_KEY_STORAGE_FORMAT;
5154
use databend_storages_common_table_meta::table::OPT_KEY_STORAGE_PREFIX;
5255
use databend_storages_common_table_meta::table::OPT_KEY_TEMP_PREFIX;
5356
use log::error;
@@ -367,6 +370,9 @@ impl CreateTableInterpreter {
367370
};
368371
let schema = TableSchemaRefExt::create(fields);
369372
let mut options = self.plan.options.clone();
373+
if let Some(storage_format) = options.get(OPT_KEY_STORAGE_FORMAT) {
374+
FuseStorageFormat::from_str(storage_format)?;
375+
}
370376
let comment = options.remove(OPT_KEY_COMMENT);
371377

372378
let mut table_meta = TableMeta {

tests/sqllogictests/suites/base/05_ddl/05_0000_ddl_create_tables.test

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ CREATE TABLE IF NOT EXISTS t(c1 int) ENGINE = Null
1919
statement error 2302
2020
CREATE TABLE t(c1 int) ENGINE = Null
2121

22+
statement error 1074
23+
CREATE TABLE IF NOT EXISTS members (name VARCHAR, age INT) STORAGE_FORMAT = 'abc'
24+
25+
statement error 1074
26+
CREATE TABLE members (name VARCHAR, age INT) STORAGE_FORMAT = 'abc'
27+
2228
statement ok
2329
create table t2(a int,b int) Engine = Fuse
2430

0 commit comments

Comments
 (0)