[ https://issues.apache.org/jira/browse/IGNITE-18015?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrey Mashenkov updated IGNITE-18015: -------------------------------------- Description: It is not possible to insert data into a column with custom precision: {code} Column's type mismatch [column=Column [... expectedType=TemporalNativeType [name=NativeTypeSpec [name=DATETIME, fixed=true], precision=4], actualType=TemporalNativeType [name=NativeTypeSpec [name=DATETIME, fixed=true], precision=6], val=2022-01-02T03:04] {code} Caused by the fact that *NativeTypes.fromObject* always uses default precision. *Reproducer:* {code:java} TableDefinition tblDef = SchemaBuilders.tableBuilder("PUB", "TEMP").columns( SchemaBuilders.column("key", ColumnType.INT32).build(), SchemaBuilders.column("time", ColumnType.time(3)).asNullable(true).build(), SchemaBuilders.column("datetime", ColumnType.datetime(4)).asNullable(true).build(), SchemaBuilders.column("timestamp", ColumnType.timestamp(5)).asNullable(true).build() ).withPrimaryKey("key").build(); var node = startedNodes.get(0); ((TableManager) node.tables()).createTableAsync(tblDef.name(), tblCh -> SchemaConfigurationConverter.convert(tblDef, tblCh).changeReplicas(1).changePartitions(10) ).join(); var table = client().tables().table("TEMP"); var view = table.recordView(); var tuple = Tuple.create().set("key", 1) .set("time", LocalTime.of(1, 2)) .set("datetime", LocalDateTime.of(2022, 1, 2, 3, 4)) .set("timestamp", Instant.ofEpochSecond(123)); view.upsert(null, tuple); {code} The same is valid for var-length types. was: It is not possible to insert data into a column with custom precision: {code} Column's type mismatch [column=Column [... expectedType=TemporalNativeType [name=NativeTypeSpec [name=DATETIME, fixed=true], precision=4], actualType=TemporalNativeType [name=NativeTypeSpec [name=DATETIME, fixed=true], precision=6], val=2022-01-02T03:04] {code} Caused by the fact that *NativeTypes.fromObject* always uses default precision. *Reproducer:* {code:java} TableDefinition tblDef = SchemaBuilders.tableBuilder("PUB", "TEMP").columns( SchemaBuilders.column("key", ColumnType.INT32).build(), SchemaBuilders.column("time", ColumnType.time(3)).asNullable(true).build(), SchemaBuilders.column("datetime", ColumnType.datetime(4)).asNullable(true).build(), SchemaBuilders.column("timestamp", ColumnType.timestamp(5)).asNullable(true).build() ).withPrimaryKey("key").build(); var node = startedNodes.get(0); ((TableManager) node.tables()).createTableAsync(tblDef.name(), tblCh -> SchemaConfigurationConverter.convert(tblDef, tblCh).changeReplicas(1).changePartitions(10) ).join(); var table = client().tables().table("TEMP"); var view = table.recordView(); var tuple = Tuple.create().set("key", 1) .set("time", LocalTime.of(1, 2)) .set("datetime", LocalDateTime.of(2022, 1, 2, 3, 4)) .set("timestamp", Instant.ofEpochSecond(123)); view.upsert(null, tuple); {code} > Column's type mismatch error when inserting data into temporal columns with > custom precision > -------------------------------------------------------------------------------------------- > > Key: IGNITE-18015 > URL: https://issues.apache.org/jira/browse/IGNITE-18015 > Project: Ignite > Issue Type: Bug > Components: sql > Reporter: Pavel Tupitsyn > Assignee: Andrey Mashenkov > Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > > It is not possible to insert data into a column with custom precision: > {code} > Column's type mismatch [column=Column [... expectedType=TemporalNativeType > [name=NativeTypeSpec [name=DATETIME, fixed=true], precision=4], > actualType=TemporalNativeType [name=NativeTypeSpec [name=DATETIME, > fixed=true], precision=6], val=2022-01-02T03:04] > {code} > Caused by the fact that *NativeTypes.fromObject* always uses default > precision. > *Reproducer:* > {code:java} > TableDefinition tblDef = SchemaBuilders.tableBuilder("PUB", > "TEMP").columns( > SchemaBuilders.column("key", ColumnType.INT32).build(), > SchemaBuilders.column("time", > ColumnType.time(3)).asNullable(true).build(), > SchemaBuilders.column("datetime", > ColumnType.datetime(4)).asNullable(true).build(), > SchemaBuilders.column("timestamp", > ColumnType.timestamp(5)).asNullable(true).build() > ).withPrimaryKey("key").build(); > var node = startedNodes.get(0); > ((TableManager) node.tables()).createTableAsync(tblDef.name(), tblCh > -> > SchemaConfigurationConverter.convert(tblDef, > tblCh).changeReplicas(1).changePartitions(10) > ).join(); > var table = client().tables().table("TEMP"); > var view = table.recordView(); > var tuple = Tuple.create().set("key", 1) > .set("time", LocalTime.of(1, 2)) > .set("datetime", LocalDateTime.of(2022, 1, 2, 3, 4)) > .set("timestamp", Instant.ofEpochSecond(123)); > view.upsert(null, tuple); > {code} > The same is valid for var-length types. -- This message was sent by Atlassian Jira (v8.20.10#820010)