Re: nested hstore patch - FailedAssertion("!(value->array.nelems == 1)

From: "Erik Rijkers" <er(at)xs4all(dot)nl>
To: "Andrew Dunstan" <andrew(at)dunslane(dot)net>
Cc: david(at)justatheory(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: nested hstore patch - FailedAssertion("!(value->array.nelems == 1)
Date: 2014-01-14 23:53:29
Message-ID: 0f163e22f9a4ed756b0c560b7bda376c.squirrel@webmail.xs4all.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, January 13, 2014 16:36, Andrew Dunstan wrote:
> A new version of the patch is attached. It includes all of Erik's docs

> [ nested_hstore_and_jsonb-2.patch ]

This crashes the server:

testdb=# select 'x' || ('a=>"1"':: hstore) ;
The connection to the server was lost. Attempting reset: Failed.

logging:
TRAP: FailedAssertion("!(value->array.nelems == 1)", File: "jsonb_support.c", Line: 904)
2014-01-15 00:32:01.854 CET 1206 LOG: server process (PID 3918) was terminated by signal 6: Aborted
2014-01-15 00:32:01.854 CET 1206 DETAIL: Failed process was running: select 'x' || ('a=>"1"':: hstore) ;

Btw, I find it strange that:

testdb=# select ('a=>""':: hstore) #%> '{a}' ;
?column?
----------
""
(1 row)

so that:

Time: 0.641 ms
testdb=# select ( ('a=>""':: hstore) #%> '{a}' ) = '' ;
?column?
----------
f
(1 row)

testdb=# select ( ('a=>""':: hstore) #%> '{a}' ) = '""' ;
?column?
----------
t
(1 row)

Maybe there is a rationale, but it seems to me that
('a=>""':: hstore) #%> '{a}'
should deliver the empty string '', and not two double quotes.

Thanks,

Erik Rijkers

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2014-01-15 00:13:53 Re: INSERT...ON DUPLICATE KEY LOCK FOR UPDATE
Previous Message Dave Chinner 2014-01-14 23:37:41 Re: [Lsf-pc] Linux kernel impact on PostgreSQL performance