Skip to content

Commit a673b1d

Browse files
authored
Merge pull request #443 from zacMode/patch-1
Update to 0.2.0 version of parser_tools
2 parents 0d7e5d5 + 86c75e2 commit a673b1d

1 file changed

Lines changed: 42 additions & 2 deletions

File tree

extensions/parser_tools/description.yml

Lines changed: 42 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.1.0
4+
version: 0.2.0
55
language: C++
66
build: cmake
77
license: MIT
@@ -10,7 +10,7 @@ extension:
1010

1111
repo:
1212
github: zacMode/duckdb_extension_parser_tools
13-
ref: 9818c41f1fb2d7ee65486216a1b4576e5b659df9
13+
ref: 1d06e5c01d5ce65146b0739c2d257bca7caf2141
1414

1515
docs:
1616
hello_world: |
@@ -83,6 +83,46 @@ docs:
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

Comments
 (0)