Re: hstore parser incorrectly handles malformed input - Mailing list pgsql-bugs

From Tom Lane
Subject Re: hstore parser incorrectly handles malformed input
Date
Msg-id 12884.1335469833@sss.pgh.pa.us
Whole thread Raw
In response to hstore parser incorrectly handles malformed input  (Ryan Kelly <rpkelly22@gmail.com>)
Responses Re: hstore parser incorrectly handles malformed input  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
Ryan Kelly <rpkelly22@gmail.com> writes:
> It seems that the hstore parser has some odd behavior in the the
> handling of certain malformed input constructions:

> [db]> select 'a=>,b=>1'::hstore;
>     hstore
> --------------
>  "a"=>",b=>1"

> [db]> select 'a=> ,b=>1'::hstore;
>     hstore
> --------------
>  "a"=>",b=>1"

> [db]> select 'a=>, b=>1'::hstore;
> ERROR:  Syntax error near 'b' at position 5
> LINE 2: select 'a=>, b=>1'::hstore;

> In my mind, all of these should have been rejected as erroneous input.
> To that end, I have attached a patch which causes all of these inputs
> to be rejected as invalid.

Hm, I would have expected all three of these to result in "a" having
an empty-string value.  I see nothing in the hstore documentation
suggesting that I must write a=>"" or some such to get an empty value,
and it also says "whitespace between pairs or around the => sign is
ignored".  So what is your reasoning for calling this malformed input?

(We're in agreement that the current behavior is wrong, though.)

            regards, tom lane

pgsql-bugs by date:

Previous
From: Ryan Kelly
Date:
Subject: hstore parser incorrectly handles malformed input
Next
From: rikard.pavelic@zg.htnet.hr
Date:
Subject: BUG #6618: incorrect restore for composite columns when order changes