You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Maksim Zhuravkov (Jira)" <ji...@apache.org> on 2023/03/01 09:12:00 UTC

[jira] [Updated] (IGNITE-18653) Sql. The number of dynamic parameters can be checked once.

     [ https://issues.apache.org/jira/browse/IGNITE-18653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Maksim Zhuravkov updated IGNITE-18653:
--------------------------------------
    Description: 
Since Apache Calcite's SqlParser maintains the number of dynamic parameters internally (as a protected field) it is possible to simplify the check that ensures that the number of dynamic parameters in a query is equal to the number of provided parameters.

1) See how that check is implemented for an SqlExplain in IgniteSqlValidator::validate - it simply checks the number of dynamic parameters in a query. We can implement that check in similar fashion for other queries.

2) Remove the redundant array of bound checks for dynamic parameters in IgniteSqlValidator since they are going to be no longer necessary after this change.

Solution:

Check the number of dynamic parameters prior to validation and reject the query if the number of dynamic parameters in the query and the number of provided parameters do not match.

 

  was:
Since Apache Calcite's SqlParser maintains the number of dynamic parameters internally (as a protected field) it is possible to simplify the check that ensures that the number of dynamic parameters in a query is equal to the number of provided parameters.

1) See how that check is implemented for an SqlExplain in IgniteSqlValidator::validate - it simply checks the number of dynamic parameters in a query. We can implement that check in similar fashion for other queries.

2) Remove the redundant array of bound checks for dynamic parameters in IgniteSqlValidator since they are going to be no longer necessary after this change.

 


> Sql. The number of dynamic parameters can be checked once.
> ----------------------------------------------------------
>
>                 Key: IGNITE-18653
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18653
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Maksim Zhuravkov
>            Assignee: Maksim Zhuravkov
>            Priority: Minor
>              Labels: calcite, calcite3-required, ignite-3
>             Fix For: 3.0.0-beta2
>
>
> Since Apache Calcite's SqlParser maintains the number of dynamic parameters internally (as a protected field) it is possible to simplify the check that ensures that the number of dynamic parameters in a query is equal to the number of provided parameters.
> 1) See how that check is implemented for an SqlExplain in IgniteSqlValidator::validate - it simply checks the number of dynamic parameters in a query. We can implement that check in similar fashion for other queries.
> 2) Remove the redundant array of bound checks for dynamic parameters in IgniteSqlValidator since they are going to be no longer necessary after this change.
> Solution:
> Check the number of dynamic parameters prior to validation and reject the query if the number of dynamic parameters in the query and the number of provided parameters do not match.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)