ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Igor Sapego (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (IGNITE-11845) ODBC driver works in a wrong way with UTF-16 encoding on Linux
Date Mon, 13 May 2019 13:54:00 GMT

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

Igor Sapego updated IGNITE-11845:
---------------------------------
    Description: 
When ones run a SQL statement, like {{SELECT Id FROM MyTable}}, the value is "garbled" returning
a value like {{8\00\05\07\09\0d\09\08\0-\0}} for the the Id column. It's similar to the expected
value, though, which is {{80579d98-9010-4610-b12e-ed33ed7d3c62}}.

When SQLLine tool is used, the values are not "garbled". This behaviour can be only observed
on Linux.

It might have something to do with UTF-16 due to a similar [SO question|https://stackoverflow.com/questions/3806305/powershell-2-0-generates-nulls-between-characters]
where characters are separated with a \0.

Maybe something to do with the UNICODE setting in this line from the ODBC logs

h2. Reproducer instructions (in attachment)

h3. Build
{noformat}
docker build . -t ignitegarbleddatareproducer -f IgniteGarbledDataReproducer/Dockerfile
{noformat}

h3. Execute
{noformat}
PS C:\IgniteGarbledDataReproducer> docker-compose up
Starting ignitegarbleddatareproducer_ignitegarbleddatareproducer_1 ... done
Attaching to ignitegarbleddatareproducer_ignitegarbleddatareproducer_1
ignitegarbleddatareproducer_1  | START
ignitegarbleddatareproducer_1  | DRIVER={Apache Ignite};ADDRESS=my-ignite-3e8b8cb9a4e192af.elb.us-east-1.amazonaws.com:10800;SSL_MODE=disable;
ignitegarbleddatareproducer_1  | Connection Opened
ignitegarbleddatareproducer_1  | DROP TABLE IF EXISTS MyTable;
ignitegarbleddatareproducer_1  | Table Dropped (if it existed)
ignitegarbleddatareproducer_1  | CREATE TABLE MyTable (Id varchar(36) not null, FirstName
varchar(255), LastName varchar(255), PRIMARY KEY (Id));
ignitegarbleddatareproducer_1  | Table Created
ignitegarbleddatareproducer_1  | INSERT INTO MyTable (Id) VALUES ('80579d98-9010-4610-b12e-ed33ed7d3c62');
ignitegarbleddatareproducer_1  | Data Inserted
ignitegarbleddatareproducer_1  | SELECT Id FROM MyTable;
ignitegarbleddatareproducer_1  | Id = '8 0 5 7 9 d 9 8 - '
ignitegarbleddatareproducer_1  | Data Returned
ignitegarbleddatareproducer_1  | DONE
ignitegarbleddatareproducer_ignitegarbleddatareproducer_1 exited with code 0
{noformat}

  was:
When ones run a SQL statement, like {{SELECT Id FROM MyTable}}, the value is "garbled" returning
a value like {{8\00\05\07\09\0d\09\08\0-\0}} for the the Id column. It's similar to the expected
value, though, which is {{80579d98-9010-4610-b12e-ed33ed7d3c62}}.

When SQLLine tool is used, the values are not "garbled". This behaviour can be only observed
on Linux.

h2. Reproducer instructions (in attachment)

h3. Build
{noformat}
docker build . -t ignitegarbleddatareproducer -f IgniteGarbledDataReproducer/Dockerfile
{noformat}

h3. Execute
{noformat}
PS C:\IgniteGarbledDataReproducer> docker-compose up
Starting ignitegarbleddatareproducer_ignitegarbleddatareproducer_1 ... done
Attaching to ignitegarbleddatareproducer_ignitegarbleddatareproducer_1
ignitegarbleddatareproducer_1  | START
ignitegarbleddatareproducer_1  | DRIVER={Apache Ignite};ADDRESS=my-ignite-3e8b8cb9a4e192af.elb.us-east-1.amazonaws.com:10800;SSL_MODE=disable;
ignitegarbleddatareproducer_1  | Connection Opened
ignitegarbleddatareproducer_1  | DROP TABLE IF EXISTS MyTable;
ignitegarbleddatareproducer_1  | Table Dropped (if it existed)
ignitegarbleddatareproducer_1  | CREATE TABLE MyTable (Id varchar(36) not null, FirstName
varchar(255), LastName varchar(255), PRIMARY KEY (Id));
ignitegarbleddatareproducer_1  | Table Created
ignitegarbleddatareproducer_1  | INSERT INTO MyTable (Id) VALUES ('80579d98-9010-4610-b12e-ed33ed7d3c62');
ignitegarbleddatareproducer_1  | Data Inserted
ignitegarbleddatareproducer_1  | SELECT Id FROM MyTable;
ignitegarbleddatareproducer_1  | Id = '8 0 5 7 9 d 9 8 - '
ignitegarbleddatareproducer_1  | Data Returned
ignitegarbleddatareproducer_1  | DONE
ignitegarbleddatareproducer_ignitegarbleddatareproducer_1 exited with code 0
{noformat}


> ODBC driver works in a wrong way with UTF-16 encoding on Linux
> --------------------------------------------------------------
>
>                 Key: IGNITE-11845
>                 URL: https://issues.apache.org/jira/browse/IGNITE-11845
>             Project: Ignite
>          Issue Type: Bug
>          Components: odbc
>    Affects Versions: 2.7
>            Reporter: Igor Sapego
>            Priority: Major
>         Attachments: Dockerfile, IgniteGarbledDataReproducer.csproj, Program.cs, docker-compose-override.yml,
docker-compose.yml, odbc.log
>
>
> When ones run a SQL statement, like {{SELECT Id FROM MyTable}}, the value is "garbled"
returning a value like {{8\00\05\07\09\0d\09\08\0-\0}} for the the Id column. It's similar
to the expected value, though, which is {{80579d98-9010-4610-b12e-ed33ed7d3c62}}.
> When SQLLine tool is used, the values are not "garbled". This behaviour can be only observed
on Linux.
> It might have something to do with UTF-16 due to a similar [SO question|https://stackoverflow.com/questions/3806305/powershell-2-0-generates-nulls-between-characters]
where characters are separated with a \0.
> Maybe something to do with the UNICODE setting in this line from the ODBC logs
> h2. Reproducer instructions (in attachment)
> h3. Build
> {noformat}
> docker build . -t ignitegarbleddatareproducer -f IgniteGarbledDataReproducer/Dockerfile
> {noformat}
> h3. Execute
> {noformat}
> PS C:\IgniteGarbledDataReproducer> docker-compose up
> Starting ignitegarbleddatareproducer_ignitegarbleddatareproducer_1 ... done
> Attaching to ignitegarbleddatareproducer_ignitegarbleddatareproducer_1
> ignitegarbleddatareproducer_1  | START
> ignitegarbleddatareproducer_1  | DRIVER={Apache Ignite};ADDRESS=my-ignite-3e8b8cb9a4e192af.elb.us-east-1.amazonaws.com:10800;SSL_MODE=disable;
> ignitegarbleddatareproducer_1  | Connection Opened
> ignitegarbleddatareproducer_1  | DROP TABLE IF EXISTS MyTable;
> ignitegarbleddatareproducer_1  | Table Dropped (if it existed)
> ignitegarbleddatareproducer_1  | CREATE TABLE MyTable (Id varchar(36) not null, FirstName
varchar(255), LastName varchar(255), PRIMARY KEY (Id));
> ignitegarbleddatareproducer_1  | Table Created
> ignitegarbleddatareproducer_1  | INSERT INTO MyTable (Id) VALUES ('80579d98-9010-4610-b12e-ed33ed7d3c62');
> ignitegarbleddatareproducer_1  | Data Inserted
> ignitegarbleddatareproducer_1  | SELECT Id FROM MyTable;
> ignitegarbleddatareproducer_1  | Id = '8 0 5 7 9 d 9 8 - '
> ignitegarbleddatareproducer_1  | Data Returned
> ignitegarbleddatareproducer_1  | DONE
> ignitegarbleddatareproducer_ignitegarbleddatareproducer_1 exited with code 0
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message