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

Method getCreateQueryFromStorage

src/Databases/DatabaseOnDisk.cpp:850–882  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

848}
849
850ASTPtr DatabaseOnDisk::getCreateQueryFromStorage(const String & table_name, const StoragePtr & storage, bool throw_on_error) const
851{
852 auto metadata_ptr = storage->getInMemoryMetadataPtr(getContext(), false);
853 if (metadata_ptr == nullptr)
854 {
855 if (throw_on_error)
856 throw Exception(ErrorCodes::CANNOT_GET_CREATE_TABLE_QUERY, "Cannot get metadata of {}.{}",
857 backQuote(getDatabaseName()), backQuote(table_name));
858 return nullptr;
859 }
860
861 /// setup create table query storage info.
862 auto ast_engine = make_intrusive<ASTFunction>();
863 ast_engine->name = storage->getName();
864 ast_engine->setNoEmptyArgs(true);
865 auto ast_storage = make_intrusive<ASTStorage>();
866 ast_storage->set(ast_storage->engine, ast_engine);
867
868 const Settings & settings = getContext()->getSettingsRef();
869 auto create_table_query = DB::getCreateQueryFromStorage(
870 storage,
871 ast_storage,
872 false,
873 static_cast<unsigned>(settings[Setting::max_parser_depth]),
874 static_cast<unsigned>(settings[Setting::max_parser_backtracks]),
875 throw_on_error,
876 getContext());
877
878 create_table_query->set(create_table_query->as<ASTCreateQuery>()->comment,
879 make_intrusive<ASTLiteral>(metadata_ptr->comment));
880
881 return create_table_query;
882}
883
884void DatabaseOnDisk::modifySettingsMetadata(const SettingsChanges & settings_changes, ContextPtr)
885{

Callers

nothing calls this directly

Calls 8

backQuoteFunction · 0.85
setNoEmptyArgsMethod · 0.80
getContextFunction · 0.50
ExceptionClass · 0.50
getNameMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected