2013-09-30 05:41:56 +08:00
|
|
|
/* contrib/hstore/hstore--1.1--1.2.sql */
|
|
|
|
|
|
|
|
-- complain if script is sourced in psql, rather than via ALTER EXTENSION
|
|
|
|
\echo Use "ALTER EXTENSION hstore UPDATE TO '1.2'" to load this file. \quit
|
|
|
|
|
|
|
|
|
|
|
|
-- A version of 1.1 was shipped with these objects mistakenly in 9.3.0.
|
2013-11-10 22:20:52 +08:00
|
|
|
-- Therefore we only add them if we detect that they aren't already there and
|
2013-09-30 05:41:56 +08:00
|
|
|
-- dependent on the extension.
|
|
|
|
|
|
|
|
DO LANGUAGE plpgsql
|
|
|
|
|
|
|
|
$$
|
|
|
|
|
|
|
|
BEGIN
|
|
|
|
|
|
|
|
PERFORM 1
|
|
|
|
FROM pg_proc p
|
|
|
|
JOIN pg_depend d
|
|
|
|
ON p.proname = 'hstore_to_json_loose'
|
2013-09-30 23:33:54 +08:00
|
|
|
AND d.classid = 'pg_proc'::regclass
|
2013-09-30 05:41:56 +08:00
|
|
|
AND d.objid = p.oid
|
|
|
|
AND d.refclassid = 'pg_extension'::regclass
|
|
|
|
JOIN pg_extension x
|
|
|
|
ON d.refobjid = x.oid
|
|
|
|
AND x.extname = 'hstore';
|
|
|
|
|
|
|
|
IF NOT FOUND
|
2013-11-10 22:20:52 +08:00
|
|
|
THEN
|
2013-09-30 05:41:56 +08:00
|
|
|
|
|
|
|
CREATE FUNCTION hstore_to_json(hstore)
|
|
|
|
RETURNS json
|
|
|
|
AS 'MODULE_PATHNAME', 'hstore_to_json'
|
|
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
|
|
|
|
CREATE CAST (hstore AS json)
|
|
|
|
WITH FUNCTION hstore_to_json(hstore);
|
|
|
|
|
|
|
|
CREATE FUNCTION hstore_to_json_loose(hstore)
|
|
|
|
RETURNS json
|
|
|
|
AS 'MODULE_PATHNAME', 'hstore_to_json_loose'
|
|
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
|
|
|
|
END IF;
|
|
|
|
|
|
|
|
END;
|
|
|
|
|
|
|
|
$$;
|