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

Andrey Mashenkov updated IGNITE-19938:
--------------------------------------
    Description: 
Now ColumnParams builder is not restrictive at all, and allows to create 
columns with invalid parameters. 
E.g. some types requires precision and/or scale, while this make no sense for 
the others.
Some of our tests allows "undefined" values for precision/scale/length for any 
column type, which passes to the column descriptors as special value (zero) 
with no reason. They should be fixed as well.
Also, we have multiple places where default and max prevision and scale are 
defined: in catalog, in schema (see NativeType) and in sql-engine modules. 
Let's make a single point of truth.

Let's add parameters validation to builder and check precision/scale/length are 
valid values, regarding the actual column type, SQL standard document and that 
we may need different validation strategy for CREATE and ALTER commands.

Startpoint is 
{code:java}
CatalogUtils.fromParams(ColumnParams params)
{code}



  was:
Now ColumnParams builder is not restrictive at all, and allows to create 
columns with invalid parameters. 
E.g. some types requires precision and/or scale, while this make no sense for 
the others.
Also, our tests allows "undefined" values for precision/scale/length for any 
column type, which passes to the column descriptors as special value (zero) 
with no reason.

Let's add parameters validation to builder and check precision/scale/length are 
valid values, regarding the actual column type, SQL standard document and that 
we may need different validation strategy for CREATE and ALTER commands.


Startpoint is 
{code:java}
CatalogUtils.fromParams(ColumnParams params)
{code}




> Add validation for columns parameters in Catalog.
> -------------------------------------------------
>
>                 Key: IGNITE-19938
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19938
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Andrey Mashenkov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> Now ColumnParams builder is not restrictive at all, and allows to create 
> columns with invalid parameters. 
> E.g. some types requires precision and/or scale, while this make no sense for 
> the others.
> Some of our tests allows "undefined" values for precision/scale/length for 
> any column type, which passes to the column descriptors as special value 
> (zero) with no reason. They should be fixed as well.
> Also, we have multiple places where default and max prevision and scale are 
> defined: in catalog, in schema (see NativeType) and in sql-engine modules. 
> Let's make a single point of truth.
> Let's add parameters validation to builder and check precision/scale/length 
> are valid values, regarding the actual column type, SQL standard document and 
> that we may need different validation strategy for CREATE and ALTER commands.
> Startpoint is 
> {code:java}
> CatalogUtils.fromParams(ColumnParams params)
> {code}



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

Reply via email to