@@ -115,62 +115,7 @@ regardless of direction. See `ArrowQuery`'s "Aggregation strategy" and
115115## Package
116116
117117Everything lives under ` com.github.gbenroscience.sqlv1 ` .
118-
119- ## Verification status (please read before relying on this in production)
120-
121- This module was originally written and reviewed in a sandboxed environment
122- ** without network access to Maven Central** but ** with a JDK 21 compiler**
123- available locally, letting the dependency-free part of it actually be
124- compiled and run (see below). The ` CASE ` /` CAST ` /` GROUP BY ` /` HAVING ` /
125- ` ORDER BY ` /` LIMIT ` additions described in this README were made in a
126- follow-up sandbox with ** no compiler available at all** (no ` javac ` , and no
127- network access to install one) — those additions were reviewed by hand
128- (balanced syntax, matching method signatures across files) but never
129- compiled. Concretely, that means three different levels of confidence for
130- three different parts of this module:
131-
132- - ** ` SqlLexer ` , ` SqlParser ` , the ` ast ` package, and ` BoolExprs ` ** (SQL text
133- → AST → ParserNG expression text; no Arrow dependency at all) were
134- ** actually compiled and run** in that sandbox, against a real JDK 21
135- ` javac ` /` java ` , via the dependency-free harness
136- ` src/test/java/.../ParserSmokeTest.java ` , for the original ` SELECT ` /
137- ` WHERE ` grammar. All 38 of its checks passed, including the
138- embedded-boolean-condition cases (` if(sin(x) > 0, tan(x), 0.2) ` and
139- friends). The JUnit test class ` SqlParserTest ` (42 ` @Test ` methods)
140- mirrors the same checks in ordinary JUnit 5 for this module's real build,
141- since JUnit itself wasn't fetchable in that sandbox to run it there
142- directly.
143-
144- ** ` CASE ` /` WHEN ` /` THEN ` /` ELSE ` /` END ` , ` CAST ` , ` GROUP BY ` , ` HAVING ` ,
145- ` ORDER BY ` , and ` LIMIT ` were added afterward, in a sandbox with no
146- compiler available at all (not even ` javac ` , let alone network access) —
147- they were reviewed line-by-line against the existing code's own patterns
148- and checked for balanced syntax and matching signatures across files, but
149- have not been compiled or run anywhere.** Extend ` ParserSmokeTest ` /
150- ` SqlParserTest ` to cover them, and run the full suite, before relying on
151- these specific additions.
152-
153- - ** ` ArrowQuery ` and ` ArrowSql ` ** (the classes that actually call into
154- ` arrow-vector ` and ` parser-ng-arrow ` ) could ** not** be compiled in that
155- sandbox — ` arrow-vector ` , ` arrow-memory-netty ` , and ` parser-ng-arrow ` 's
156- own compiled classes were unreachable without Maven Central. These were
157- written carefully against:
158- - the exact public method signatures of ` ArrowExpressionEvaluator ` ,
159- ` ArrowExpressionEvaluators ` , ` NullPolicy ` , ` ArrowExecutionBackend ` , and
160- ` ArrowBindingException ` , read directly from the ` parser-ng-arrow `
161- source in this repo; and
162- - the standard, stable public Apache Arrow Java API
163- (` VectorSchemaRoot ` , ` FieldVector ` , ` Float4Vector ` /` Float8Vector ` ,
164- ` Field ` , ` Schema ` , ` BufferAllocator ` ) at the same patterns already used
165- inside ` parser-ng-arrow ` itself (e.g. ` Field.createVector(allocator) ` ,
166- ` copyFromSafe(from, to, src) ` , the `VectorSchemaRoot(Schema, List<FieldVector >,
167- int)` constructor) — but ** not run** .
168-
169- ** Please run ` mvn -pl parser-ng-sql test ` yourself before depending on
170- this in anything important** , and treat ` ArrowQuery ` /` ArrowSql ` as
171- needing that first real build/test pass to be confident of, even though
172- every method call in them was checked by hand against the exact API it
173- targets.
118+
174119
175120## Known v1 limitations (by design, not oversight)
176121
0 commit comments