-- bugfixes GRANT USAGE ON SCHEMA oracle TO PUBLIC; GRANT USAGE ON SCHEMA plunit TO PUBLIC; CREATE OR REPLACE FUNCTION oracle.round(float4, int) RETURNS numeric AS $$SELECT pg_catalog.round($1::numeric, $2)$$ LANGUAGE sql IMMUTABLE STRICT; CREATE OR REPLACE FUNCTION oracle.trunc(float4, int) RETURNS numeric AS $$SELECT pg_catalog.trunc($1::numeric, $2)$$ LANGUAGE sql IMMUTABLE STRICT; COMMENT ON FUNCTION oracle.sessiontimezone() IS 'Ruturns session time zone'; COMMENT ON FUNCTION oracle.dbtimezone() IS 'Ruturns server time zone (orafce.timezone)'; CREATE OR REPLACE FUNCTION oracle.nvl(bigint, int) RETURNS bigint AS $$ SELECT coalesce($1, $2) $$ LANGUAGE sql IMMUTABLE; CREATE OR REPLACE FUNCTION oracle.nvl(numeric, int) RETURNS numeric AS $$ SELECT coalesce($1, $2) $$ LANGUAGE sql IMMUTABLE; CREATE OR REPLACE FUNCTION oracle.add_months(TIMESTAMP WITH TIME ZONE,INTEGER) RETURNS TIMESTAMP AS $$ SELECT (pg_catalog.add_months($1::pg_catalog.date, $2) + $1::time)::oracle.date; $$ LANGUAGE SQL IMMUTABLE STRICT; drop view oracle.user_tables; create view oracle.user_tables as select table_name from information_schema.tables where table_type = 'BASE TABLE'; -- new functionality CREATE FUNCTION oracle.orafce_concat2(varchar2, varchar2) RETURNS varchar2 AS 'MODULE_PATHNAME','orafce_concat2' LANGUAGE C IMMUTABLE; CREATE FUNCTION oracle.orafce_concat2(nvarchar2, nvarchar2) RETURNS nvarchar2 AS 'MODULE_PATHNAME','orafce_concat2' LANGUAGE C STABLE; CREATE OPERATOR || (procedure = oracle.orafce_concat2, leftarg = varchar2, rightarg = varchar2); CREATE OPERATOR || (procedure = oracle.orafce_concat2, leftarg = nvarchar2, rightarg = nvarchar2); CREATE OR REPLACE FUNCTION oracle.numtodsinterval(double precision, text) RETURNS interval AS $$ SELECT $1 * ('1' || $2)::interval $$ LANGUAGE sql IMMUTABLE STRICT;