Re: [pgAdmin] RM6018 Encoding issue updating database
От | Akshay Joshi |
---|---|
Тема | Re: [pgAdmin] RM6018 Encoding issue updating database |
Дата | |
Msg-id | CANxoLDdBwYv6kCBd9XumaeLd2beqZxy6tPeDop7fz8yhdp0o3g@mail.gmail.com обсуждение исходный текст |
Ответ на | [pgAdmin] RM6018 Encoding issue updating database (Rahul Shirsat <rahul.shirsat@enterprisedb.com>) |
Список | pgadmin-hackers |
Hi Khushboo
Can you please review this patch?
On Wed, Feb 17, 2021 at 2:10 PM Rahul Shirsat <rahul.shirsat@enterprisedb.com> wrote:
Hi Team,This is regarding RM6018 when a user sets the database encoding to SQL_ASCII and names the column with ascii characters.Code is written for escaping the ascii characters and getting its escaped value (here for È its encoding escaped value is \\xc8)I am trying to update È column for the second row. After encoding & decoding the column name generated so is \\xc8The actual issue is the dictionary key as a parameter passed for query execution.params = { '\\xc8' : 'some_value' }query = b'UPDATE public."\xfc" SET "\xc8" = %(\xc8)s WHERE "\xfc" = \'xyz\''query = query.encode(self.python_encoding)
params = self.escape_params_sqlascii(params)
cur.execute(query, params)As the cur.execute is unable to replace params in the query, it throws an error.The tried solutions are:
- Tried to have \xc8 as a key, but python internally read it as È, so fails.
- Tried placing the key as byte b'\xc8', doesn't work.
- Tried to change the \xc8 to \\xc8 inside the query, but risk involves query tampering.
- Tried including BYTES / BYTESARRAY typecasters according to psycopg docs https://www.psycopg.org/docs/usage.html#unicode-handling, still didn't work.
Examples given in psycopg docs for Unicode handling involve only record values passed & not the column names itself.Any other suggestions on how we can handle this?--Rahul ShirsatSenior Software Engineer | EnterpriseDB Corporation.
Thanks & Regards
Akshay Joshi
pgAdmin Hacker | Principal Software Architect
EDB PostgresMobile: +91 976-788-8246
Вложения
В списке pgadmin-hackers по дате отправления: