11extension :
22 name : parser_tools
33 description : Exposes functions for parsing referenced tables and usage context from SQL queries using DuckDB's native parser.
4- version : 0.1 .0
4+ version : 0.2 .0
55 language : C++
66 build : cmake
77 license : MIT
@@ -10,7 +10,7 @@ extension:
1010
1111repo :
1212 github : zacMode/duckdb_extension_parser_tools
13- ref : 9818c41f1fb2d7ee65486216a1b4576e5b659df9
13+ ref : 1d06e5c01d5ce65146b0739c2d257bca7caf2141
1414
1515docs :
1616 hello_world : |
8383 │ WITH cte AS (SELECT 1) SELECT * FROM cte │ true │
8484 └───────────────────────────────────────────────┴────────┘
8585
86+ -- Extract WHERE conditions from a query
87+ SELECT * FROM parse_where('SELECT * FROM MyTable WHERE time > 1 AND time < 100');
88+ ┌────────────────┬────────────┬─────────┐
89+ │ condition │ table_name │ context │
90+ │ varchar │ varchar │ varchar │
91+ ├────────────────┼────────────┼─────────┤
92+ │ ("time" > 1) │ MyTable │ WHERE │
93+ │ ("time" < 100) │ MyTable │ WHERE │
94+ └────────────────┴────────────┴─────────┘
95+
96+ -- Return detailed condition breakdown from a query
97+ SELECT * FROM parse_where_detailed('SELECT * FROM MyTable WHERE time > 1 AND time < 100');
98+ ┌─────────────┬───────────────┬─────────┬────────────┬─────────┐
99+ │ column_name │ operator_type │ value │ table_name │ context │
100+ │ varchar │ varchar │ varchar │ varchar │ varchar │
101+ ├─────────────┼───────────────┼─────────┼────────────┼─────────┤
102+ │ time │ > │ 1 │ MyTable │ WHERE │
103+ │ time │ < │ 100 │ MyTable │ WHERE │
104+ └─────────────┴───────────────┴─────────┴────────────┴─────────┘
105+
106+ -- Parse a query with a BETWEEN condition
107+ SELECT * FROM parse_where('SELECT * FROM MyTable WHERE time BETWEEN 1 AND 100');
108+ ┌────────────────────────────┬────────────┬─────────┐
109+ │ condition │ table_name │ context │
110+ │ varchar │ varchar │ varchar │
111+ ├────────────────────────────┼────────────┼─────────┤
112+ │ ("time" BETWEEN 1 AND 100) │ MyTable │ WHERE │
113+ └────────────────────────────┴────────────┴─────────┘
114+
115+ -- Detailed parsing of a BETWEEN condition
116+ SELECT * FROM parse_where_detailed('SELECT * FROM MyTable WHERE time BETWEEN 1 AND 100');
117+ ┌─────────────┬───────────────┬─────────┬────────────┬─────────┐
118+ │ column_name │ operator_type │ value │ table_name │ context │
119+ │ varchar │ varchar │ varchar │ varchar │ varchar │
120+ ├─────────────┼───────────────┼─────────┼────────────┼─────────┤
121+ │ time │ >= │ 1 │ MyTable │ WHERE │
122+ │ time │ <= │ 100 │ MyTable │ WHERE │
123+ └─────────────┴───────────────┴─────────┴────────────┴─────────┘
124+
125+
86126
87127 extended_description : |
88128 `parser_tools` is a DuckDB extension that enables SQL query introspection using DuckDB’s native parser.
0 commit comments