Repository navigation
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
TCBot Test Analysis
Possible Blockers (0)No blockers found. New Tests (11)
|
…rs/query/GridQueryProcessor.java Co-authored-by: Vladimir Steshin <vladsz83@gmail.com>
| <scope>test</scope> | ||
| </dependency> | ||
|
|
||
| <dependency> |
There was a problem hiding this comment.
Is it necessary to add? I tried to removed. Th project is built normally, some related tests tun. CalciteOnlyNodeIntegrationTest works locally without it. Tried to remove Ignite's libs from the .m2.
| } | ||
|
|
||
| streamState = new StreamState((SqlSetStreamingCommand)cmd, cliIo); | ||
| StreamState streamState0 = new StreamState(cmd0, cliIo); |
There was a problem hiding this comment.
Suggestion: let's rename cmd0 to smth. like streamingCmd.
Also above:
boolean newVal = ((SqlSetStreamingCommand)cmd).isTurnOn(); -> boolean newVal = cmd0.isTurnOn()
| } | ||
|
|
||
| streamState = new StreamState((SqlSetStreamingCommand)cmd, cliIo); | ||
| StreamState streamState0 = new StreamState(cmd0, cliIo); |
There was a problem hiding this comment.
How can I test this change? Any test? CalciteOnlyNodeIntegrationTest seems to work without it.
|
|
||
| /** | ||
| * @param engineName Query engine name. | ||
| * @return {@code True} if a query engine with the given name can be selected by the {@code QUERY_ENGINE} hint or |
There was a problem hiding this comment.
Up to you. If we refer to a hint like {@code QUERY_ENGINE}, we might refer to the property in the same way.
| CASE_INSENSITIVE); | ||
|
|
||
| /** Error message for the features that require the H2 query engine when it is not on the classpath. */ | ||
| private static final String INDEXING_DISABLED_MSG = "Failed to execute query because indexing is disabled " + |
There was a problem hiding this comment.
Suggestion: because indexing is disabled -> because the indexing is disabled
| CASE_INSENSITIVE); | ||
|
|
||
| /** Error message for the features that require the H2 query engine when it is not on the classpath. */ | ||
| private static final String INDEXING_DISABLED_MSG = "Failed to execute query because indexing is disabled " + |
There was a problem hiding this comment.
Check checkxModuleEnabled() pls.
I don't like x in the name. But the question is can we join/reuse the messages somehow?
| ) throws IgniteSQLException; | ||
|
|
||
| /** @return Configuration of the engine. */ | ||
| default QueryEngineConfigurationEx config() { |
| } | ||
|
|
||
| if ((qry instanceof SqlQuery || qry instanceof TextQuery) && !ctx.kernalContext().query().indexingEnabled()) { | ||
| throw new CacheException("Failed to execute query. " + qry.getClass().getSimpleName() + " is supported " + |
There was a problem hiding this comment.
Up to you. Maybe we should finally rename indexing to h2/h2engine within the internals.
| } | ||
|
|
||
| if ((qry instanceof SqlQuery || qry instanceof TextQuery) && !ctx.kernalContext().query().indexingEnabled()) { | ||
| throw new CacheException("Failed to execute query. " + qry.getClass().getSimpleName() + " is supported " + |
There was a problem hiding this comment.
Suggestion: query. " + qry.getClass().getSimpleName() + " is -> query. '" + qry.getClass().getSimpleName() + "' is
|
|
||
| if ((qry instanceof SqlQuery || qry instanceof TextQuery) && !ctx.kernalContext().query().indexingEnabled()) { | ||
| throw new CacheException("Failed to execute query. " + qry.getClass().getSimpleName() + " is supported " + | ||
| "by the H2 query engine only, add module 'ignite-indexing' to the classpath of all Ignite nodes" + |
There was a problem hiding this comment.
Suggestion: only, add module 'ignite-indexing' -> only. Add module 'ignite-indexing' or To proceed, add module 'ignite-indexing'
Prerequisites for making Calcite the default SQL engine (IGNITE-29117): a node with
ignite-calcitebut withoutignite-indexingon 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 withoutignite-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. CoversSqlFieldsQuery/DDL/DML, deprecatedSqlQuery,TextQuery,SET STREAMING,COPY, thequeryEngineJDBC property and theQUERY_ENGINEhint.QueryEngine.config()), so?queryEngine=calciteand/*+ QUERY_ENGINE('calcite') */work without an explicitSqlConfiguration. The JDBC/ODBC handshakes askGridQueryProcessor.queryEngineConfigured()instead of scanning the user configuration, which does not contain the implicit entry.IgniteCacheProxyImpl.validate()rejects deprecatedSqlQueryandTextQuerywithout H2 with a message namingignite-indexing(and suggestingSqlFieldsQuery) instead of an NPE / bare "Indexing is disabled.".querySqlandstreamUpdateQuerycheck indexing like the other H2-only paths.executeNativeenables the stream state only after the server acceptedSET STREAMING ON. Previously a rejected command left the state set andConnection.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
SqlQueryis not ported to Calcite and stays H2-only;SET STREAMINGandCOPYkeep failing with the Calcite parse error (the test pins the current message).🤖 Generated with Claude Code