MCPcopy Create free account
hub / github.com/ClickHouse/ClickHouse / getCreateDatabaseQueryImpl

Method getCreateDatabaseQueryImpl

src/Databases/DatabaseOnDisk.cpp:563–593  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

561}
562
563ASTPtr DatabaseOnDisk::getCreateDatabaseQueryImpl() const
564{
565 auto default_db_disk = getContext()->getDatabaseDisk();
566 ASTPtr ast;
567
568 const auto & settings = getContext()->getSettingsRef();
569 {
570 auto metadata_file_path = DatabaseCatalog::getMetadataFilePath(database_name);
571 ast = parseQueryFromMetadata(log, getContext(), default_db_disk, metadata_file_path, true);
572 auto & ast_create_query = ast->as<ASTCreateQuery &>();
573 ast_create_query.attach = false;
574 ast_create_query.setDatabase(database_name);
575 }
576 if (!ast)
577 {
578 /// Handle databases (such as default) for which there are no database.sql files.
579 /// If database.sql doesn't exist, then engine is Ordinary
580 String query = "CREATE DATABASE " + backQuoteIfNeed(database_name) + " ENGINE = Ordinary";
581 ParserCreateQuery parser;
582 ast = parseQuery(
583 parser, query.data(), query.data() + query.size(), "", 0, settings[Setting::max_parser_depth], settings[Setting::max_parser_backtracks]);
584 }
585
586 if (!comment.empty())
587 {
588 auto & ast_create_query = ast->as<ASTCreateQuery &>();
589 ast_create_query.set(ast_create_query.comment, make_intrusive<ASTLiteral>(comment));
590 }
591
592 return ast;
593}
594
595void DatabaseOnDisk::drop(ContextPtr local_context)
596{

Callers

nothing calls this directly

Calls 9

backQuoteIfNeedFunction · 0.85
parseQueryFunction · 0.85
getDatabaseDiskMethod · 0.80
getContextFunction · 0.50
setDatabaseMethod · 0.45
dataMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected