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

Reply via email to