Обсуждение: Non working example

Поиск
Список
Период
Сортировка

Non working example

От
PG Doc comments form
Дата:
The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/10/functions-string.html
Description:

Either I'm doing something wrong or the example `encode('123\000\001',
'base64')` will always result in a parsing error "string contains null
byte".

Re: Non working example

От
Daniel Gustafsson
Дата:
> On 29 Jun 2019, at 12:45, PG Doc comments form <noreply@postgresql.org> wrote:
>
> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/10/functions-string.html
> Description:
>
> Either I'm doing something wrong or the example `encode('123\000\001',
> 'base64')` will always result in a parsing error "string contains null
> byte”.

I think it’s something in the former category, the example works fine:

db=# select encode('123\000\001', 'base64');
  encode
----------
 MTIzAAE=
(1 row)

How are you executing the example, via psql, another client or in some other
way?  Is the data perhaps being in some preprocessed along the way before it
reaches postgres?  If you copy/paste it in psql, does that work?

cheers ./daniel


Re: Non working example

От
Maarten van Gijssel
Дата:
After I posted the question, I realised my mistake 😅. I was using the pg gem in Ruby to run the SQL "SELECT encode('123\000\001', 'base64')", the double quotes ensure the `\0` will be interpreted as a null byte hence throwing the error. Sorry, my mistake!

Regards,
Maarten

Op ma 1 jul. 2019 om 11:02 schreef Daniel Gustafsson <daniel@yesql.se>:
> On 29 Jun 2019, at 12:45, PG Doc comments form <noreply@postgresql.org> wrote:
>
> The following documentation comment has been logged on the website:
>
> Page: https://www.postgresql.org/docs/10/functions-string.html
> Description:
>
> Either I'm doing something wrong or the example `encode('123\000\001',
> 'base64')` will always result in a parsing error "string contains null
> byte”.

I think it’s something in the former category, the example works fine:

db=# select encode('123\000\001', 'base64');
  encode
----------
 MTIzAAE=
(1 row)

How are you executing the example, via psql, another client or in some other
way?  Is the data perhaps being in some preprocessed along the way before it
reaches postgres?  If you copy/paste it in psql, does that work?

cheers ./daniel

Re: Non working example

От
Daniel Gustafsson
Дата:
> On 1 Jul 2019, at 12:19, Maarten van Gijssel <maarten@vgijssel.nl> wrote:
>
> After I posted the question, I realised my mistake 😅. I was using the pg gem in Ruby to run the SQL "SELECT
encode('123\000\001','base64')", the double quotes ensure the `\0` will be interpreted as a null byte hence throwing
theerror. 

Aha, there we go.

> Sorry, my mistake!

No worries at all.

cheers ./daniel