Skip site navigation (1) Skip section navigation (2)

Bug in pl/pgsql with hstore OR bug in pl/pgsql IF (text field is boolean?)

From: "Oleg Serov" <serovov(at)gmail(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: Bug in pl/pgsql with hstore OR bug in pl/pgsql IF (text field is boolean?)
Date: 2008-10-27 14:08:35
Message-ID: cec7c6df0810270708w896e19fgf7eb4a3c1a9d06d5@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-bugs
I can't get hstore value by key. i have very interesting error
DEMO SQL CODE:
------------------------------------------------------------------------------

ROLLBACK;
BEGIN;
-- VERSION INFO
SELECT VERSION();
-- RESULT:
-- PostgreSQL 8.3.4 on i686-redhat-linux-gnu, compiled by GCC gcc
(GCC) 4.1.2 20071124 (Red Hat 4.1.2-42)
-- TEST FOR HSTORE:
SELECT (('test' => 'testvalue')::hstore)->'test'; -- HSTORE WORKS!
-- HSTORE OK;


-- BUG REPRODUCTION FUNCTION
CREATE OR REPLACE FUNCTION "hstore_bug" () RETURNS pg_catalog.void AS
$body$
DECLARE
    res HSTORE;
BEGIN
    res := ('test' => NULL)::hstore;

    IF res->'test' IS NULL THEN
    	RAISE EXCEPTION 'HSTORE IS OK';
    END IF;

    RAISE EXCEPTION 'HSTORE IS BUGGY';
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY DEFINER;


--- BUG REPRODUCTION:
SELECT hstore_bug();
-- ERROR MSG
-- ERROR:  operator does not exist: hstore -> boolean
-- LINE 1: SELECT   $1 ->'test' IS NULL
--                     ^
-- HINT:  No operator matches the given name and argument type(s). You
might need to add explicit type casts.
-- QUERY:  SELECT   $1 ->'test' IS NULL
-- CONTEXT:  PL/pgSQL function "hstore_bug" line 6 at IF

Responses

pgsql-bugs by date

Next:From: hubert depesz lubaczewskiDate: 2008-10-27 14:14:46
Subject: Re: Bug in pl/pgsql with hstore OR bug in pl/pgsql IF (textfield is boolean?)
Previous:From: Peter EisentrautDate: 2008-10-27 09:55:44
Subject: Re: Upgrade from 7.4.5 to 8.3.3

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group