[
https://issues.apache.org/jira/browse/IGNITE-23676?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aleksey Plekhanov updated IGNITE-23676:
---------------------------------------
Description:
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.34.0.jar:1.34.0]
at
org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.result(SqlShuttle.java:117)
~[calcite-core-1.34.0.jar:1.34.0]
at org.apache.calcite.sql.util.SqlShuttle.visit(SqlShuttle.java:69)
~[calcite-core-1.34.0.jar:1.34.0]
at
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:568)
~[ignite-calcite-2.16.0.jar:2.16.0]
at
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:545)
~[ignite-calcite-2.16.0.jar:2.16.0]
at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:161)
~[calcite-core-1.34.0.jar:1.34.0]
{noformat}
The full set of nodes, which currently have SqlLiteral as a field:
SqlJoin, SqlWindow, SqlExplain, SqlWithItem, SqlBasicCall, SqlMatchRecognize,
IgniteSqlKill*, IgniteSqlCreateUser, IgniteSqlAlterUser
was:
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.34.0.jar:1.34.0]
at
org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.result(SqlShuttle.java:117)
~[calcite-core-1.34.0.jar:1.34.0]
at org.apache.calcite.sql.util.SqlShuttle.visit(SqlShuttle.java:69)
~[calcite-core-1.34.0.jar:1.34.0]
at
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:568)
~[ignite-calcite-2.16.0.jar:2.16.0]
at
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:545)
~[ignite-calcite-2.16.0.jar:2.16.0]
at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:161)
~[calcite-core-1.34.0.jar:1.34.0]
{noformat}
> 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
> Priority: Major
> Labels: calcite, ise
>
> 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.34.0.jar:1.34.0]
> at
> org.apache.calcite.sql.util.SqlShuttle$CallCopyingArgHandler.result(SqlShuttle.java:117)
> ~[calcite-core-1.34.0.jar:1.34.0]
> at org.apache.calcite.sql.util.SqlShuttle.visit(SqlShuttle.java:69)
> ~[calcite-core-1.34.0.jar:1.34.0]
> at
> org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:568)
> ~[ignite-calcite-2.16.0.jar:2.16.0]
> at
> org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor$2.visit(CalciteQueryProcessor.java:545)
> ~[ignite-calcite-2.16.0.jar:2.16.0]
> at org.apache.calcite.sql.SqlCall.accept(SqlCall.java:161)
> ~[calcite-core-1.34.0.jar:1.34.0]
> {noformat}
>
> The full set of nodes, which currently have SqlLiteral as a field:
> SqlJoin, SqlWindow, SqlExplain, SqlWithItem, SqlBasicCall, SqlMatchRecognize,
> IgniteSqlKill*, IgniteSqlCreateUser, IgniteSqlAlterUser
--
This message was sent by Atlassian Jira
(v8.20.10#820010)