mirror of
https://github.com/postgres/postgres.git
synced 2025-05-06 19:59:18 +03:00
Extension scripts should never use CREATE OR REPLACE for initial object creation. If there is a collision with a pre-existing (probably user-created) object, we want extension installation to fail, not silently overwrite the user's object. Bloom and sslinfo both violated this precept. Also fix a number of scripts that had no standard header (the file name comment and the \echo...\quit guard). Probably the \echo...\quit hack is less important now than it was in 9.1 days, but that doesn't mean that individual extensions get to choose whether to use it or not. And fix a couple of evident copy-and-pasteos in file name comments. No need for back-patch: the REPLACE bugs are both new in 9.6, and the rest of this is pretty much cosmetic. Andreas Karlsson and Tom Lane
25 lines
842 B
SQL
25 lines
842 B
SQL
/* contrib/hstore_plpython/hstore_plpython3u--1.0.sql */
|
|
|
|
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
|
|
\echo Use "CREATE EXTENSION hstore_plpython3u" to load this file. \quit
|
|
|
|
-- make sure the prerequisite libraries are loaded
|
|
LOAD 'plpython3';
|
|
SELECT NULL::hstore;
|
|
|
|
|
|
CREATE FUNCTION hstore_to_plpython3(val internal) RETURNS internal
|
|
LANGUAGE C STRICT IMMUTABLE
|
|
AS 'MODULE_PATHNAME', 'hstore_to_plpython';
|
|
|
|
CREATE FUNCTION plpython3_to_hstore(val internal) RETURNS hstore
|
|
LANGUAGE C STRICT IMMUTABLE
|
|
AS 'MODULE_PATHNAME', 'plpython_to_hstore';
|
|
|
|
CREATE TRANSFORM FOR hstore LANGUAGE plpython3u (
|
|
FROM SQL WITH FUNCTION hstore_to_plpython3(internal),
|
|
TO SQL WITH FUNCTION plpython3_to_hstore(internal)
|
|
);
|
|
|
|
COMMENT ON TRANSFORM FOR hstore LANGUAGE plpython3u IS 'transform between hstore and Python dict';
|