MCPcopy Create free account
hub / github.com/ByConity/ByConity / parseStorageID

Method parseStorageID

src/Interpreters/ExternalLoaderCnchCatalogRepository.cpp:162–189  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

160}
161
162StorageID ExternalLoaderCnchCatalogRepository::parseStorageID(const std::string & loadable_definition_name, const Context* context)
163{
164 constexpr size_t max_size = 10000;
165 constexpr unsigned long max_parser_depth = 10;
166
167 Tokens tokens(loadable_definition_name.data(), loadable_definition_name.data() + loadable_definition_name.size(), max_size);
168 IParser::Pos pos(tokens, max_parser_depth);
169 Expected expected;
170
171 ParserIdentifier name_p;
172 ParserToken s_dot(TokenType::Dot);
173 ASTPtr database;
174 ASTPtr table;
175
176 if (!name_p.parse(pos, table, expected))
177 throw Exception("Failed to parse table id: " + loadable_definition_name, ErrorCodes::LOGICAL_ERROR);
178
179 if (!s_dot.ignore(pos, expected))
180 throw Exception("Failed to parse table id: " + loadable_definition_name, ErrorCodes::LOGICAL_ERROR);
181
182 database = table;
183 if (context)
184 tryRewriteCnchDatabaseName(database, context);
185 if (!name_p.parse(pos, table, expected))
186 throw Exception("Failed to parse table id: " + loadable_definition_name, ErrorCodes::LOGICAL_ERROR);
187
188 return StorageID{getIdentifierName(database), getIdentifierName(table)};
189}
190
191std::optional<UUID> ExternalLoaderCnchCatalogRepository::resolveDictionaryName(const std::string & name, const std::string & current_database_name, ContextPtr context)
192{

Callers

nothing calls this directly

Calls 7

ExceptionClass · 0.70
getIdentifierNameFunction · 0.50
dataMethod · 0.45
sizeMethod · 0.45
parseMethod · 0.45
ignoreMethod · 0.45

Tested by

no test coverage detected