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

Function registerDatabaseOrdinary

src/Databases/DatabaseOrdinary.cpp:777–808  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

775
776void registerDatabaseOrdinary(DatabaseFactory & factory);
777void registerDatabaseOrdinary(DatabaseFactory & factory)
778{
779 auto create_fn = [](const DatabaseFactory::Arguments & args)
780 {
781 if (!args.create_query.attach && !args.context->getSettingsRef()[Setting::allow_deprecated_database_ordinary])
782 throw Exception(
783 ErrorCodes::UNKNOWN_DATABASE_ENGINE,
784 "Ordinary database engine is deprecated (see also allow_deprecated_database_ordinary setting)");
785
786 // Do not warn about ordinary databases that is most likely created by recovering replicas
787 if (!args.database_name.ends_with(DatabaseReplicated::BROKEN_TABLES_SUFFIX))
788 args.context->addWarningMessageAboutDatabaseOrdinary(args.database_name);
789 else
790 args.context->addOrUpdateWarningMessage(
791 Context::WarningType::MAYBE_BROKEN_TABLES,
792 PreformattedMessage::create(
793 "The database {} is probably created during recovering a lost replica. If it has no tables, it can be deleted. If it "
794 "has tables, it worth to check why they were considered broken.",
795 backQuoteIfNeed(args.database_name)));
796
797 DatabaseMetadataDiskSettings database_metadata_disk_settings;
798 auto * engine_define = args.create_query.storage;
799 chassert(engine_define);
800 database_metadata_disk_settings.loadFromQuery(*engine_define, args.context, isLoadingFromExistingMetadata(args.mode));
801
802 return make_shared<DatabaseOrdinary>(args.database_name, args.metadata_path, args.context, database_metadata_disk_settings);
803 };
804 factory.registerDatabase("Ordinary", create_fn, /*features=*/{.supports_settings = true}, Documentation{
805 .description = "The legacy, deprecated default database engine. It stores each table in its own metadata file and has been superseded by the `Atomic` engine.",
806 .syntax = "ENGINE = Ordinary",
807 .related = {"Atomic"}});
808}
809}

Callers 1

registerDatabasesFunction · 0.85

Calls 8

backQuoteIfNeedFunction · 0.85
registerDatabaseMethod · 0.80
ExceptionClass · 0.50
createFunction · 0.50
loadFromQueryMethod · 0.45

Tested by

no test coverage detected