nizhikov opened a new pull request, #13668:
URL: https://github.com/apache/ignite/pull/13668

   Prerequisites for making Calcite the default SQL engine (IGNITE-29117): a 
node with `ignite-calcite` but without `ignite-indexing` on the classpath must 
work for the supported SQL entry points and fail with a precise error for the 
H2-only ones.
   
   ### What
   - **`CalciteOnlyNodeIntegrationTest`** (calcite module): starts the node 
under test in a child JVM (`IgniteProcessProxy`) whose classpath is the test 
classpath without `ignite-indexing`, H2 and Lucene, so it runs in the existing 
CI jobs. The test JVM talks to that node via thin JDBC, the thin client and a 
thin-client compute task for the cache API checks. Covers 
`SqlFieldsQuery`/DDL/DML, deprecated `SqlQuery`, `TextQuery`, `SET STREAMING`, 
`COPY`, the `queryEngine` JDBC property and the `QUERY_ENGINE` hint.
   - **Implicit engine configuration**: when no engines are configured and H2 
is absent, the only available engine is registered with its default 
configuration (new `QueryEngine.config()`), so `?queryEngine=calcite` and `/*+ 
QUERY_ENGINE('calcite') */` work without an explicit `SqlConfiguration`. The 
JDBC/ODBC handshakes ask `GridQueryProcessor.queryEngineConfigured()` instead 
of scanning the user configuration, which does not contain the implicit entry.
   - **Precise errors for H2-only query types**: 
`IgniteCacheProxyImpl.validate()` rejects deprecated `SqlQuery` and `TextQuery` 
without H2 with a message naming `ignite-indexing` (and suggesting 
`SqlFieldsQuery`) instead of an NPE / bare "Indexing is disabled.". `querySql` 
and `streamUpdateQuery` check indexing like the other H2-only paths.
   - **Thin JDBC driver**: `executeNative` enables the stream state only after 
the server accepted `SET STREAMING ON`. Previously a rejected command left the 
state set and `Connection.close()` blocked forever waiting for a batch 
response. Latent with H2 (the command never fails), reachable on a Calcite-only 
node.
   
   ### Why
   Decisions taken while preparing the engine switch: deprecated `SqlQuery` is 
not ported to Calcite and stays H2-only; `SET STREAMING` and `COPY` keep 
failing with the Calcite parse error (the test pins the current message).
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to