Skip to content

Commit

Permalink
Merge pull request #58841 from yariks5s/dictionary_table_exception_fix
Browse files Browse the repository at this point in the history
Fixing exceptions when table/dictionary already exist
  • Loading branch information
yariks5s committed Jan 29, 2024
2 parents 69a1935 + 3eba767 commit 5ba82ee
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/Interpreters/InterpreterCreateQuery.cpp
Expand Up @@ -1435,8 +1435,14 @@ bool InterpreterCreateQuery::doCreateTable(ASTCreateQuery & create,
interpreter.execute();
}
else
throw Exception(storage_already_exists_error_code,
"{} {}.{} already exists", storage_name, backQuoteIfNeed(create.getDatabase()), backQuoteIfNeed(create.getTable()));
{
if (database->getTable(create.getTable(), getContext())->isDictionary())
throw Exception(ErrorCodes::DICTIONARY_ALREADY_EXISTS,
"Dictionary {}.{} already exists", backQuoteIfNeed(create.getDatabase()), backQuoteIfNeed(create.getTable()));
else
throw Exception(ErrorCodes::TABLE_ALREADY_EXISTS,
"Table {}.{} already exists", backQuoteIfNeed(create.getDatabase()), backQuoteIfNeed(create.getTable()));
}
}
else if (!create.attach)
{
Expand Down
Empty file.
@@ -0,0 +1,6 @@
CREATE TABLE test_table (i Int64) engine=MergeTree order by i;
CREATE DICTIONARY test_dict (y String, value UInt64 DEFAULT 0) PRIMARY KEY y SOURCE(CLICKHOUSE(TABLE 'test_table')) LAYOUT(DIRECT());
CREATE TABLE test_dict (y Int64) engine=MergeTree order by y; -- { serverError DICTIONARY_ALREADY_EXISTS }
CREATE DICTIONARY test_table (y String, value UInt64 DEFAULT 0) PRIMARY KEY y SOURCE(CLICKHOUSE(TABLE 'test_table')) LAYOUT(DIRECT()); -- { serverError TABLE_ALREADY_EXISTS }
CREATE DICTIONARY test_dict (y String, value UInt64 DEFAULT 0) PRIMARY KEY y SOURCE(CLICKHOUSE(TABLE 'test_table')) LAYOUT(DIRECT()); -- { serverError DICTIONARY_ALREADY_EXISTS }
CREATE TABLE test_table (y Int64) engine=MergeTree order by y; -- { serverError TABLE_ALREADY_EXISTS }

0 comments on commit 5ba82ee

Please sign in to comment.