Skip to content

Commit cc04a96

Browse files
committed
exclude from_cte, and add more unit tests
1 parent 890d878 commit cc04a96

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

src/parse_tables.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ static void ParseTablesScalarFunction(DataChunk &args, ExpressionState &state, V
234234
if (exclude_cte) {
235235
std::unordered_set<std::string> excluded_types;
236236
excluded_types.insert("cte");
237+
excluded_types.insert("from_cte");
237238
ExtractTablesFromSQL(query_string, parsed_tables, excluded_types);
238239
} else {
239240
ExtractTablesFromSQL(query_string, parsed_tables);

test/sql/parse_tools/scalar_functions/parse_table_names.test

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,22 @@ require parser_tools
1414
query I
1515
SELECT parse_table_names('select * from MyTable');
1616
----
17-
[MyTable]
17+
[MyTable]
18+
19+
# default behavior: exclude CTE
20+
query I
21+
SELECT parse_table_names('with cte_test as(select 1) select * from MyTable, cte_test');
22+
----
23+
[MyTable]
24+
25+
# default behavior: exclude CTE (explicitly specify true)
26+
query I
27+
SELECT parse_table_names('with cte_test as(select 1) select * from MyTable, cte_test', true);
28+
----
29+
[MyTable]
30+
31+
# test optional bool argument: don't exclude CTE tables
32+
query I
33+
SELECT parse_table_names('with cte_test as(select 1) select * from MyTable, cte_test', false);
34+
----
35+
[cte_test, MyTable, cte_test]

0 commit comments

Comments
 (0)