Re: hstore parser incorrectly handles malformed input

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Ryan Kelly <rpkelly22(at)gmail(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: hstore parser incorrectly handles malformed input
Date: 2012-04-26 19:50:33
Message-ID: 12884.1335469833@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Ryan Kelly <rpkelly22(at)gmail(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message rikard.pavelic 2012-04-26 22:20:51 BUG #6618: incorrect restore for composite columns when order changes
Previous Message Ryan Kelly 2012-04-26 19:05:13 hstore parser incorrectly handles malformed input