Re: pgagent unicode support

From: Neel Patel <neel(dot)patel(at)enterprisedb(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: Sergey Burladyan <eshkinkot(at)gmail(dot)com>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>, Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
Subject: Re: pgagent unicode support
Date: 2021-02-15 12:45:26
Message-ID: CACCA4P0PG8y_u9vDwTTL4AHbXOfP1k7joLY4tjLQ40DNpWgyoA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Thanks Sergey for the patch.

Sure Dave.
There is some compilation warning in linux, I will fix those and test
pgAgent in windows and update the thread.

On Mon, Feb 8, 2021 at 2:55 PM Dave Page <dpage(at)pgadmin(dot)org> wrote:

> Hi
>
> On Sat, Feb 6, 2021 at 5:00 AM Sergey Burladyan <eshkinkot(at)gmail(dot)com>
> wrote:
>
>> Currently pgagent doesn't handle unicode correctly.
>>
>> CharToWString function corrupt multibyte characters because it processes
>> string one byte at a time:
>> 148 std::string s = std::string(cstr);
>> 149 std::wstring wsTmp(s.begin(), s.end());
>>
>> WStringToChar function does not take into account that there can be
>> _multi_byte character on wcstombs output and create buffer with
>> size = wcslen:
>> 157 int wstr_length = wcslen(wchar_str);
>> 158 char *dst = new char[wstr_length + 10];
>>
>> Also pgagent do not setup locale with setlocale(), without it all
>> wcs/mbs functions cannot handle multibyte strings.
>>
>> For example:
>>
>> === step code ===
>> select 'это проверка кириллицы в теле запроса pgagent'
>> =================
>>
>> === postgres log ===
>> 2021-02-05 23:19:05 UTC [15600-1] postgres(at)postgres ERROR: unterminated
>> quoted string at or near "'" at character 8
>> 2021-02-05 23:19:05 UTC [15600-2] postgres(at)postgres STATEMENT: select '
>> ====================
>>
>> Please see attached patch.
>> I only test it on GNU/Linux and can't test it on Windows, sorry.
>>
>
> Thanks for the patch! Neel/Ashesh; can you take a look please? It looks OK
> to me, but then I'm not overly familiar with multibyte string handling.
> What, if anything, needs to be done on Windows?
>
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EDB: http://www.enterprisedb.com
>
>

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Pradip Parkale 2021-02-15 12:56:47 Re: [pgAdmin][RM6153]: Add publication and subscription support in Schema Diff.
Previous Message Akshay Joshi 2021-02-15 12:01:39 pgAdmin 4 commit: Fixed SonarQube issues