[
https://issues.apache.org/jira/browse/IGNITE-20650?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrey Mashenkov reassigned IGNITE-20650:
-----------------------------------------
Assignee: Andrey Mashenkov
> Table API. Field names are not resolved correctly.
> --------------------------------------------------
>
> Key: IGNITE-20650
> URL: https://issues.apache.org/jira/browse/IGNITE-20650
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Reporter: Maksim Zhuravkov
> Assignee: Andrey Mashenkov
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Current implementation of Tuple/Record field name is not consistent with
> requirements specified in https://issues.apache.org/jira/browse/IGNITE-16322:
> Field access:
> {code:java}
> Ignite ignite = CLUSTER_NODES.get(0);
> IgniteTables tables = ignite.tables();
> sql("CREATE TABLE \"values\" (\"Id\" INTEGER PRIMARY KEY, \"Val\" VARCHAR)");
> sql("INSERT INTO \"values\" VALUES(1, '1')");
> Table table = tables.table("\"values\"");
> RecordView<Tuple> recordView = table.recordView();
> Tuple key = Tuple.create(Map.of("id", 1));
> Tuple record = recordView.get(null, key);
> // Works
> assertNotNull(record);
> // Works
> assertNotNull(record.value("\"Id\""));
> // https://issues.apache.org/jira/browse/IGNITE-16322
> // According to the ticket, the following assertions should not fail:
>
> // Invalid column name: columnName=Id
> assertNotNull(record.value("Id"));
> // Invalid column name: columnName=ID
> assertNotNull(record.value("ID"));
> {code}
> New tuple:
> {code:java}
> Ignite ignite = CLUSTER_NODES.get(0);
> IgniteTables tables = ignite.tables();
> sql("CREATE TABLE vals (\"Id\" INTEGER PRIMARY KEY, val VARCHAR)");
> sql("INSERT INTO vals VALUES(1, '1')");
> Table vals = tables.table("vals");
> Tuple val1 = Tuple.create(Map.of("id", 2, "val", "1"));
> vals.recordView().insert(null, val1);
> Tuple val2 = Tuple.create(Map.of("ID", 2, "val", "2"));
> vals.recordView().insert(null, val2);
> Tuple val3 = Tuple.create(Map.of("\"Id\"", 3, "val", "3"));
> // Error Missed key column: Id
> vals.recordView().insert(null, val3);
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)