[ 
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)

Reply via email to