Skip to content

Commit 55e64e1

Browse files
authored
Upgrade parser tools
Includes new statement parsing functions from hotdata-dev/duckdb_extension_parser_tools#8
1 parent 55ef64d commit 55e64e1

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

extensions/parser_tools/description.yml

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
extension:
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

1111
repo:
1212
github: zfarrell/duckdb_extension_parser_tools
13-
ref: da3e91e673cfb3497b7a9498545fbbaba43a0ecd
13+
ref: 0c74f1b24610d324d6254fce6b32755f734e3df7
1414

1515
docs:
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

Comments
 (0)