You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Anatoli Karman (Jira)" <ji...@apache.org> on 2024/03/25 08:31:00 UTC

[jira] [Commented] (IGNITE-19702) Unable to create column with default value with literal convertion

    [ https://issues.apache.org/jira/browse/IGNITE-19702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17830398#comment-17830398 ] 

Anatoli Karman commented on IGNITE-19702:
-----------------------------------------

Somewhat similar issue has been encountered for UUID data type insert statements that use default values.

{*}Queries to reproduce{*}:
{code:java}
create table createTableWithDefaultValues(key INTEGER not null, val UUID not null default '4a2f1859-c73b-4eec-a29c-629ec68d8735', primary key (key));

insert into createTableWithDefaultValues(key) values (106080);{code}
Results in a _*java.lang.IllegalArgumentException*_
{code:java}
Caused by: java.lang.IllegalArgumentException
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:129)
at org.apache.calcite.rex.RexLiteral.<init>(RexLiteral.java:231)
at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1034)
at org.apache.ignite.internal.sql.engine.rex.IgniteRexBuilder.makeLiteral(IgniteRexBuilder.java:55)
at org.apache.calcite.rex.RexBuilder.makeLiteral(RexBuilder.java:1577)
at org.apache.ignite.internal.sql.engine.schema.TableDescriptorImpl.newColumnDefaultValue(TableDescriptorImpl.java:121)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertColumnList(SqlToRelConverter.java:4060)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertInsert(SqlToRelConverter.java:3856)
at org.apache.ignite.internal.sql.engine.prepare.IgniteSqlToRelConvertor.convertInsert(IgniteSqlToRelConvertor.java:117)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:3771)
at org.apache.ignite.internal.sql.engine.prepare.IgniteSqlToRelConvertor.convertQueryRecursive(IgniteSqlToRelConvertor.java:86)
at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:610)
at org.apache.ignite.internal.sql.engine.prepare.IgnitePlanner.rel(IgnitePlanner.java:342)
at org.apache.ignite.internal.sql.engine.prepare.PlannerHelper.optimize(PlannerHelper.java:84)
at org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$prepareDml$8(PrepareServiceImpl.java:400)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700){code}

> Unable to create column with default value with literal convertion
> ------------------------------------------------------------------
>
>                 Key: IGNITE-19702
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19702
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 3.0
>            Reporter: Alexander Belyak
>            Priority: Major
>              Labels: ignite-3
>
> DDL command to create a column with default value fails if it require some type of conversion (string to time, date, timestamp, uuid). For example:
> {noformat}
> create table ttt6(key int primary key, val TIMESTAMP default '2022-02-01 12:12:12');{noformat}
> returns
> {noformat}
> [Code: 0, SQL State: 50000]  Exception while executing query [query=create table ttt6(key int primary key, val TIMESTAMP default '2022-02-01 12:12:12')]. Error message:Unable co convert literal{noformat}



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