/* 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. -- Therefore we only add them if we detect that they aren't already there and -- dependent on the extension. DO LANGUAGE plpgsql $$ DECLARE my_schema pg_catalog.text := pg_catalog.quote_ident(pg_catalog.current_schema()); old_path pg_catalog.text := pg_catalog.current_setting('search_path'); BEGIN -- for safety, transiently set search_path to just pg_catalog+pg_temp PERFORM pg_catalog.set_config('search_path', 'pg_catalog, pg_temp', true); PERFORM 1 FROM pg_proc p JOIN pg_depend d ON p.proname = 'hstore_to_json_loose' AND d.classid = 'pg_proc'::regclass 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 THEN PERFORM pg_catalog.set_config('search_path', old_path, true); 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; PERFORM pg_catalog.set_config('search_path', old_path, true); END; $$;