Hi Sergey, Thank you for the patch. It looks good to me except below.
We have modified the patch as we fixed the memory leak ( review comment given by Ashesh ) and also fixed the compilation warnings. Can you please review and let us know ? Thanks, Neel Patel On Mon, Feb 15, 2021 at 6:15 PM Neel Patel <neel.pa...@enterprisedb.com> wrote: > 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 <dp...@pgadmin.org> wrote: > >> Hi >> >> On Sat, Feb 6, 2021 at 5:00 AM Sergey Burladyan <eshkin...@gmail.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@postgres ERROR: >>> unterminated quoted string at or near "'" at character 8 >>> 2021-02-05 23:19:05 UTC [15600-2] postgres@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 >> >>
pgagent_unicode.patch
Description: Binary data