[Asterisk-code-review] func_odbc: acf_odbc_read() and cli_odbc_read() unicode support (...asterisk[master])

Alexei Gradinari asteriskteam at digium.com
Wed Sep 4 08:42:36 CDT 2019


Alexei Gradinari has posted comments on this change. ( https://gerrit.asterisk.org/c/asterisk/+/12812 )

Change subject: func_odbc:  acf_odbc_read() and cli_odbc_read() unicode support
......................................................................


Patch Set 4:

> Patch Set 4:
> 
> > Patch Set 4:
> > 
> > > Patch Set 4:
> > > 
> > > > Patch Set 4:
> > > > 
> > > > I don't think the predefined multiplier is a good idea.
> > > > The ODBC Driver Manager should resolve this issue.
> > > > There are 2 encodings: server (driver) and client (application).
> > > > If the server encoding is UTF16 and client is UTF8 then Driver Manager should convert UTF16 to UTF8 and vice versa. Look at SQL_ATTR_APP_UNICODE_TYPE and SQL_ATTR_DRIVER_UNICODE_TYPE
> > > 
> > > Okay, it's theoretically possible to get server and client encodings. But how you offer to convert a buffer length for UTF16 (commonly used server encoding for Windows) to a buffer length for UTF8 (commonly used Asterisk, CLI, SIP-Phones encoding)? AFAIK, there're no algos for it in theory.
> > 
> > I just did a test with MySQL.
> > 
> > CREATE TABLE test_utf8 (
> >     test_fld varchar(200)
> > ) DEFAULT CHARACTER SET utf8
> >   DEFAULT COLLATE utf8_general_ci;
> > 
> > CREATE TABLE test_utf16 (
> >     test_fld varchar(200)
> > ) DEFAULT CHARACTER SET utf16
> >   DEFAULT COLLATE utf16_general_ci;
> > 
> > The SQLDescribeCol returns collen=200 for both tables.
> > SQLColAttribute with SQL_DESC_OCTET_LENGTH returns
> > test_utf8  - 600
> > test_utf16 - 800
> 
> It's OK for MySQL (that can store the data in various encodings). But MS SQL (prior 2019) can store Unicode data (NCHAR/NVARCHAR/NTEXT types) in UTF-16 only.

My point is that the ODBC driver should correctly return SQL_DESC_OCTET_LENGTH.
If it's not that the issue either with driver configuration or driver implementation.


-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/12812
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: master
Gerrit-Change-Id: I50e86c8a277996f13d4a4b9b318ece0d60b279bf
Gerrit-Change-Number: 12812
Gerrit-PatchSet: 4
Gerrit-Owner: Boris P. Korzun <drtr0jan at yandex.ru>
Gerrit-Reviewer: Alexei Gradinari <alex2grad at gmail.com>
Gerrit-Reviewer: Boris P. Korzun <drtr0jan at yandex.ru>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-CC: Sean Bright <sean.bright at gmail.com>
Gerrit-Comment-Date: Wed, 04 Sep 2019 13:42:36 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20190904/485b723b/attachment.html>


More information about the asterisk-code-review mailing list