Thread: Non working example

Non working example

From
PG Doc comments form
Date:
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

From
Daniel Gustafsson
Date:
> 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

From
Maarten van Gijssel
Date:
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

From
Daniel Gustafsson
Date:
> 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