Merge pull request #8663 from nikvas0/fix_lazy_db

Fix "DROP TABLE IF EXISTS" for lazy database
This commit is contained in:
alexey-milovidov 2020-01-16 13:24:37 +03:00 committed by GitHub
commit e409051304
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 2 deletions

View File

@ -122,7 +122,7 @@ StoragePtr DatabaseLazy::tryGetTable(
std::lock_guard lock(mutex);
auto it = tables_cache.find(table_name);
if (it == tables_cache.end())
throw Exception("Table " + backQuote(getDatabaseName()) + "." + backQuote(table_name) + " doesn't exist.", ErrorCodes::UNKNOWN_TABLE);
return {};
if (it->second.table)
{

View File

@ -1,3 +1,5 @@
DROP DATABASE IF EXISTS testlazy;
CREATE TABLE `таблица_со_странным_названием` (a UInt64, b UInt64) ENGINE = Log;
INSERT INTO `таблица_со_странным_названием` VALUES (1, 1);
SELECT * FROM `таблица_со_странным_названием`;
@ -8,4 +10,13 @@ CREATE TABLE testlazy.`таблица_со_странным_названием`
INSERT INTO testlazy.`таблица_со_странным_названием` VALUES (1, 1);
SELECT * FROM testlazy.`таблица_со_странным_названием`;
DROP TABLE testlazy.`таблица_со_странным_названием`;
DROP DATABASE testlazy
DROP DATABASE testlazy;
CREATE DATABASE testlazy ENGINE = Lazy(10);
DROP TABLE IF EXISTS testlazy.test;
CREATE TABLE IF NOT EXISTS testlazy.test (a UInt64, b UInt64) ENGINE = Log;
CREATE TABLE IF NOT EXISTS testlazy.test (a UInt64, b UInt64) ENGINE = Log;
INSERT INTO testlazy.test VALUES (1, 1);
SELECT * FROM testlazy.test;
DROP TABLE IF EXISTS testlazy.test;
DROP DATABASE testlazy;