mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Clean up CREATE FUNCTION syntax usage in contrib and elsewhere, in
particular get rid of single quotes around language names and old WITH () construct.
This commit is contained in:
@ -315,7 +315,7 @@ Notes
|
||||
|
||||
CREATE OR REPLACE FUNCTION crosstab_float8_5_cols(text)
|
||||
RETURNS setof my_crosstab_float8_5_cols
|
||||
AS '$libdir/tablefunc','crosstab' LANGUAGE 'c' STABLE STRICT;
|
||||
AS '$libdir/tablefunc','crosstab' LANGUAGE C STABLE STRICT;
|
||||
|
||||
B. Use OUT parameters to define the return type implicitly.
|
||||
The same example could also be done this way:
|
||||
@ -328,7 +328,7 @@ Notes
|
||||
OUT category_4 FLOAT8,
|
||||
OUT category_5 FLOAT8)
|
||||
RETURNS setof record
|
||||
AS '$libdir/tablefunc','crosstab' LANGUAGE 'c' STABLE STRICT;
|
||||
AS '$libdir/tablefunc','crosstab' LANGUAGE C STABLE STRICT;
|
||||
|
||||
|
||||
Example usage
|
||||
|
@ -128,7 +128,7 @@ CREATE FUNCTION crosstab_out(text,
|
||||
OUT rowid text, OUT att1 text, OUT att2 text, OUT att3 text)
|
||||
RETURNS setof record
|
||||
AS '$libdir/tablefunc','crosstab'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
SELECT * FROM crosstab_out('SELECT rowid, attribute, val FROM ct where rowclass = ''group1'' ORDER BY 1,2;');
|
||||
rowid | att1 | att2 | att3
|
||||
-------+------+------+------
|
||||
@ -231,7 +231,7 @@ create type my_crosstab_result as (
|
||||
CREATE FUNCTION crosstab_named(text, text)
|
||||
RETURNS setof my_crosstab_result
|
||||
AS '$libdir/tablefunc','crosstab_hash'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
SELECT * FROM crosstab_named(
|
||||
'SELECT rowid, rowdt, attribute, val FROM cth ORDER BY 1',
|
||||
'SELECT DISTINCT attribute FROM cth ORDER BY 1');
|
||||
@ -248,7 +248,7 @@ CREATE FUNCTION crosstab_out(text, text,
|
||||
OUT test_startdate timestamp, OUT volts float8)
|
||||
RETURNS setof record
|
||||
AS '$libdir/tablefunc','crosstab_hash'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
SELECT * FROM crosstab_out(
|
||||
'SELECT rowid, rowdt, attribute, val FROM cth ORDER BY 1',
|
||||
'SELECT DISTINCT attribute FROM cth ORDER BY 1');
|
||||
|
@ -44,7 +44,7 @@ CREATE FUNCTION crosstab_out(text,
|
||||
OUT rowid text, OUT att1 text, OUT att2 text, OUT att3 text)
|
||||
RETURNS setof record
|
||||
AS '$libdir/tablefunc','crosstab'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
SELECT * FROM crosstab_out('SELECT rowid, attribute, val FROM ct where rowclass = ''group1'' ORDER BY 1,2;');
|
||||
|
||||
@ -119,7 +119,7 @@ create type my_crosstab_result as (
|
||||
CREATE FUNCTION crosstab_named(text, text)
|
||||
RETURNS setof my_crosstab_result
|
||||
AS '$libdir/tablefunc','crosstab_hash'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
SELECT * FROM crosstab_named(
|
||||
'SELECT rowid, rowdt, attribute, val FROM cth ORDER BY 1',
|
||||
@ -133,7 +133,7 @@ CREATE FUNCTION crosstab_out(text, text,
|
||||
OUT test_startdate timestamp, OUT volts float8)
|
||||
RETURNS setof record
|
||||
AS '$libdir/tablefunc','crosstab_hash'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
SELECT * FROM crosstab_out(
|
||||
'SELECT rowid, rowdt, attribute, val FROM cth ORDER BY 1',
|
||||
|
@ -4,13 +4,13 @@ SET search_path = public;
|
||||
CREATE OR REPLACE FUNCTION normal_rand(int4, float8, float8)
|
||||
RETURNS setof float8
|
||||
AS 'MODULE_PATHNAME','normal_rand'
|
||||
LANGUAGE 'C' VOLATILE STRICT;
|
||||
LANGUAGE C VOLATILE STRICT;
|
||||
|
||||
-- the generic crosstab function:
|
||||
CREATE OR REPLACE FUNCTION crosstab(text)
|
||||
RETURNS setof record
|
||||
AS 'MODULE_PATHNAME','crosstab'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
-- examples of building custom type-specific crosstab functions:
|
||||
CREATE TYPE tablefunc_crosstab_2 AS
|
||||
@ -40,47 +40,47 @@ CREATE TYPE tablefunc_crosstab_4 AS
|
||||
CREATE OR REPLACE FUNCTION crosstab2(text)
|
||||
RETURNS setof tablefunc_crosstab_2
|
||||
AS 'MODULE_PATHNAME','crosstab'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION crosstab3(text)
|
||||
RETURNS setof tablefunc_crosstab_3
|
||||
AS 'MODULE_PATHNAME','crosstab'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION crosstab4(text)
|
||||
RETURNS setof tablefunc_crosstab_4
|
||||
AS 'MODULE_PATHNAME','crosstab'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
-- obsolete:
|
||||
CREATE OR REPLACE FUNCTION crosstab(text,int)
|
||||
RETURNS setof record
|
||||
AS 'MODULE_PATHNAME','crosstab'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION crosstab(text,text)
|
||||
RETURNS setof record
|
||||
AS 'MODULE_PATHNAME','crosstab_hash'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION connectby(text,text,text,text,int,text)
|
||||
RETURNS setof record
|
||||
AS 'MODULE_PATHNAME','connectby_text'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION connectby(text,text,text,text,int)
|
||||
RETURNS setof record
|
||||
AS 'MODULE_PATHNAME','connectby_text'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
-- These 2 take the name of a field to ORDER BY as 4th arg (for sorting siblings)
|
||||
|
||||
CREATE OR REPLACE FUNCTION connectby(text,text,text,text,text,int,text)
|
||||
RETURNS setof record
|
||||
AS 'MODULE_PATHNAME','connectby_text_serial'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
||||
CREATE OR REPLACE FUNCTION connectby(text,text,text,text,text,int)
|
||||
RETURNS setof record
|
||||
AS 'MODULE_PATHNAME','connectby_text_serial'
|
||||
LANGUAGE 'C' STABLE STRICT;
|
||||
LANGUAGE C STABLE STRICT;
|
||||
|
Reference in New Issue
Block a user