[
https://issues.apache.org/jira/browse/IGNITE-23676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17901513#comment-17901513
]
Ignite TC Bot commented on IGNITE-23676:
----------------------------------------
{panel:title=Branch: [pull/11663/head] Base: [master] : No blockers
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/11663/head] Base: [master] : No new tests
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}{panel}
[TeamCity *--> Run :: All*
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=8166101&buildTypeId=IgniteTests24Java8_RunAll]
> Calcite engine. Failed to remove sensitive information from JOINs
> -----------------------------------------------------------------
>
> Key: IGNITE-23676
> URL: https://issues.apache.org/jira/browse/IGNITE-23676
> Project: Ignite
> Issue Type: Bug
> Reporter: Aleksey Plekhanov
> Assignee: Aleksey Plekhanov
> Priority: Major
> Labels: calcite, ise
> Time Spent: 10m
> Remaining Estimate: 0h
>
> SqlJoin AST node stores some internal fields as literals (joinType,
> conditionType, natural). These fields are converted to dynamic parameters
> during sensitive information removal and can't be constructed to SqlJoin
> again.
> {noformat}
> Unable to remove sensitive information from SQL node of class:
> org.apache.calcite.sql.SqlSelect
> java.lang.ClassCastException: class org.apache.calcite.sql.SqlDynamicParam
> cannot be cast to class org.apache.calcite.sql.SqlLiteral
> (org.apache.calcite.sql.SqlDynamicParam and org.apache.calcite.sql.SqlLiteral
> are in unnamed module of loader 'app')
> at
> org.apache.calcite.sql.SqlJoin$SqlJoinOperator.createCall(SqlJoin.java:203)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at
> org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.result(SqlShuttle.java:117)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at org.apache.calcite.sql.util.SqlShuttle.visit(SqlShuttle.java:69)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at
> org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:574)
> ~[classes/:?]
> at
> org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:551)
> ~[classes/:?]
> at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:166)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at
> org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild(SqlShuttle.java:134)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at
> org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.visitChild(SqlShuttle.java:101)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at org.apache.calcite.sql.SqlOperator.acceptCall(SqlOperator.java:962)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at
> org.apache.calcite.sql.SqlSelectOperator.acceptCall(SqlSelectOperator.java:129)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at org.apache.calcite.sql.util.SqlShuttle.visit(SqlShuttle.java:68)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at
> org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:574)
> ~[classes/:?]
> at
> org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:551)
> ~[classes/:?]
> at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:166)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at
> org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.removeSensitive(CalciteQueryProcessor.java:550)
> [classes/:?]
> at
> org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.parseAndProcessQuery(CalciteQueryProcessor.java:536)
> [classes/:?]
> at
> org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.query(CalciteQueryProcessor.java:396)
> [classes/:?]
> {noformat}
>
> The full set of nodes, which currently have SqlLiteral as a field:
> * SqlJoin (natural boolean, joinType enum, conditionType enum)
> * SqlWindow (isRows boolean, allowPartial boolean)
> * SqlExplain (detailLevel enum, depth enum, format enum)
> * SqlWithItem (recursive boolean)
> * SqlBasicCall (functionQuantifier enum)
> * SqlMatchRecognize(strictStart boolean, strictEnd boolean, rowsPerMatch
> enum, interval SqlIntervalLiteral)
> * IgniteSqlKill*
> * IgniteSqlCreateUser (pwd string)
> * IgniteSqlAlterUser (pwd string)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)