11#include " parse_tables.hpp"
22#include " duckdb.hpp"
33#include " duckdb/parser/parser.hpp"
4+ #include " duckdb/parser/parser_options.hpp"
5+ #include < algorithm>
6+ #include < cctype>
47#include " duckdb/parser/statement/select_statement.hpp"
58#include " duckdb/parser/query_node/select_node.hpp"
69#include " duckdb/parser/tableref/basetableref.hpp"
710#include " duckdb/parser/tableref/joinref.hpp"
811#include " duckdb/parser/tableref/subqueryref.hpp"
9- #include " duckdb/main/extension_util.hpp"
1012#include " duckdb/function/scalar/nested_functions.hpp"
1113
1214
@@ -152,9 +154,8 @@ static void ExtractTablesFromSQL(const std::string &sql, std::vector<TableRefRes
152154 parser.ParseQuery (sql);
153155 } catch (const ParserException &ex) {
154156 // swallow parser exceptions to make this function more robust. is_parsable can be used if needed
155- return ;
157+ return ;
156158 }
157-
158159
159160 for (auto &stmt : parser.statements ) {
160161 if (stmt->type == StatementType::SELECT_STATEMENT) {
@@ -323,19 +324,19 @@ static void IsParsableFunction(DataChunk &args, ExpressionState &state, Vector &
323324// Extension scaffolding
324325// ---------------------------------------------------
325326
326- void RegisterParseTablesFunction (DatabaseInstance &db ) {
327+ void RegisterParseTablesFunction (ExtensionLoader &loader ) {
327328 TableFunction tf (" parse_tables" , {LogicalType::VARCHAR}, ParseTablesFunction, ParseTablesBind, ParseTablesInit);
328- ExtensionUtil:: RegisterFunction (db, tf);
329+ loader. RegisterFunction (tf);
329330}
330331
331- void RegisterParseTableScalarFunction (DatabaseInstance &db ) {
332+ void RegisterParseTableScalarFunction (ExtensionLoader &loader ) {
332333 // parse_table_names is overloaded, allowing for an optional boolean argument
333334 // that indicates whether to include CTEs in the result
334335 // usage: parse_tables(sql_query [, include_cte])
335336 ScalarFunctionSet set (" parse_table_names" );
336337 set.AddFunction (ScalarFunction ({LogicalType::VARCHAR}, LogicalType::LIST (LogicalType::VARCHAR), ParseTablesScalarFunction));
337338 set.AddFunction (ScalarFunction ({LogicalType::VARCHAR, LogicalType::BOOLEAN}, LogicalType::LIST (LogicalType::VARCHAR), ParseTablesScalarFunction));
338- ExtensionUtil:: RegisterFunction (db, set);
339+ loader. RegisterFunction (set);
339340
340341 // parse_tables_struct is a scalar function that returns a list of structs
341342 auto return_type = LogicalType::LIST (LogicalType::STRUCT ({
@@ -344,11 +345,11 @@ void RegisterParseTableScalarFunction(DatabaseInstance &db) {
344345 {" context" , LogicalType::VARCHAR}
345346 }));
346347 ScalarFunction sf (" parse_tables" , {LogicalType::VARCHAR}, return_type, ParseTablesScalarFunction_struct);
347- ExtensionUtil:: RegisterFunction (db, sf);
348+ loader. RegisterFunction (sf);
348349
349350 // is_parsable is a scalar function that returns a boolean indicating whether the SQL query is parsable (no parse errors)
350351 ScalarFunction is_parsable (" is_parsable" , {LogicalType::VARCHAR}, LogicalType::BOOLEAN, IsParsableFunction);
351- ExtensionUtil:: RegisterFunction (db, is_parsable);
352+ loader. RegisterFunction (is_parsable);
352353}
353354
354355} // namespace duckdb
0 commit comments