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.4 .0
4+ version : 0.5 .0
55 language : C++
66 build : cmake
77 license : MIT
@@ -10,7 +10,7 @@ extension:
1010
1111repo :
1212 github : zfarrell/duckdb_extension_parser_tools
13- ref : da3e91e673cfb3497b7a9498545fbbaba43a0ecd
13+ ref : 0c74f1b24610d324d6254fce6b32755f734e3df7
1414
1515docs :
1616 hello_world : |
@@ -121,8 +121,37 @@ docs:
121121 │ time │ >= │ 1 │ MyTable │ WHERE │
122122 │ time │ <= │ 100 │ MyTable │ WHERE │
123123 └─────────────┴───────────────┴─────────┴────────────┴─────────┘
124+
125+ -- Extract function calls
126+ SELECT * FROM parse_functions('SELECT upper(name), count(*) FROM users WHERE length(email) > 0');
127+ ┌───────────────┬─────────┬─────────┐
128+ │ function_name │ schema │ context │
129+ │ varchar │ varchar │ varchar │
130+ ├───────────────┼─────────┼─────────┤
131+ │ upper │ main │ select │
132+ │ count_star │ main │ select │
133+ │ length │ main │ where │
134+ └───────────────┴─────────┴─────────┘
124135
136+ -- Parse multi-statement as table
137+ SELECT * from parse_statements('SELECT 42; INSERT INTO log VALUES (1); SELECT 43;') as statements;
138+ ┌──────────────────────────────┐
139+ │ statement │
140+ │ varchar │
141+ ├──────────────────────────────┤
142+ │ SELECT 42 │
143+ │ INSERT INTO log (VALUES (1)) │
144+ │ SELECT 43 │
145+ └──────────────────────────────┘
125146
147+ -- Count statements
148+ SELECT num_statements('SELECT 1; SELECT 2; SELECT 3;');
149+ ┌────────────────┐
150+ │ num_statements │
151+ │ int64 │
152+ ├────────────────┤
153+ │ 3 │
154+ └────────────────┘
126155
127156 extended_description : |
128157 `parser_tools` is a DuckDB extension that enables SQL query introspection using DuckDB’s native parser.
0 commit comments