diff options
Diffstat (limited to 'src')
29 files changed, 235 insertions, 235 deletions
diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c index 77f892fe501..5814dda31e2 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.70 2005/11/21 12:49:31 alvherre Exp $ + * $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.71 2006/02/27 16:09:49 petere Exp $ * * DESCRIPTION * These routines take the parse tree and pick out the @@ -632,7 +632,7 @@ CreateFunction(CreateFunctionStmt *stmt) * In PostgreSQL versions before 6.5, the SQL name of the created * function could not be different from the internal name, and * "prosrc" wasn't used. So there is code out there that does CREATE - * FUNCTION xyz AS '' LANGUAGE 'internal'. To preserve some modicum of + * FUNCTION xyz AS '' LANGUAGE internal. To preserve some modicum of * backwards compatibility, accept an empty "prosrc" value as meaning * the supplied SQL function name. */ diff --git a/src/backend/utils/fmgr/README b/src/backend/utils/fmgr/README index 235db10ea9b..87044787e8b 100644 --- a/src/backend/utils/fmgr/README +++ b/src/backend/utils/fmgr/README @@ -524,7 +524,7 @@ library, depending on whether or not you write a PG_FUNCTION_INFO_V1() for each one. The SQL declaration for a dynamically-loaded function is CREATE FUNCTION -foo ... LANGUAGE 'C' regardless of whether it is old- or new-style. +foo ... LANGUAGE C regardless of whether it is old- or new-style. New-style dynamic functions will be invoked directly by fmgr, and will therefore have the same performance as internal functions after the initial diff --git a/src/backend/utils/mb/conversion_procs/Makefile b/src/backend/utils/mb/conversion_procs/Makefile index cf07f42560b..6e67f382648 100644 --- a/src/backend/utils/mb/conversion_procs/Makefile +++ b/src/backend/utils/mb/conversion_procs/Makefile @@ -4,7 +4,7 @@ # Makefile for utils/mb/conversion_procs # # IDENTIFICATION -# $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/Makefile,v 1.16 2006/02/18 16:15:22 petere Exp $ +# $PostgreSQL: pgsql/src/backend/utils/mb/conversion_procs/Makefile,v 1.17 2006/02/27 16:09:49 petere Exp $ # #------------------------------------------------------------------------- @@ -167,7 +167,7 @@ ifeq ($(enable_shared), yes) func=$$1; shift; \ obj=$$1; shift; \ echo "-- $$se --> $$de"; \ - echo "CREATE OR REPLACE FUNCTION $$func (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$$"libdir"/$$obj', '$$func' LANGUAGE 'c' STRICT;"; \ + echo "CREATE OR REPLACE FUNCTION $$func (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$$"libdir"/$$obj', '$$func' LANGUAGE C STRICT;"; \ echo "DROP CONVERSION pg_catalog.$$name;"; \ echo "CREATE DEFAULT CONVERSION pg_catalog.$$name FOR '$$se' TO '$$de' FROM $$func;"; \ done > $@ diff --git a/src/interfaces/ecpg/test/test_func.pgc b/src/interfaces/ecpg/test/test_func.pgc index 466512a35b3..12350d220ee 100644 --- a/src/interfaces/ecpg/test/test_func.pgc +++ b/src/interfaces/ecpg/test/test_func.pgc @@ -21,7 +21,7 @@ int main(int argc, char* argv[]) { RAISE NOTICE 'TG_NAME=%, TG WHEN=%', TG_NAME, TG_WHEN; RETURN NEW; END; $test$ - LANGUAGE 'plpgsql'; + LANGUAGE plpgsql; EXEC SQL CREATE TRIGGER My_Table_Check_Trigger BEFORE INSERT diff --git a/src/pl/plpgsql/src/scan.l b/src/pl/plpgsql/src/scan.l index e69c8f17b02..0a6c9be20fa 100644 --- a/src/pl/plpgsql/src/scan.l +++ b/src/pl/plpgsql/src/scan.l @@ -4,7 +4,7 @@ * procedural language * * IDENTIFICATION - * $PostgreSQL: pgsql/src/pl/plpgsql/src/scan.l,v 1.42 2005/06/26 19:16:07 tgl Exp $ + * $PostgreSQL: pgsql/src/pl/plpgsql/src/scan.l,v 1.43 2006/02/27 16:09:50 petere Exp $ * * This software is copyrighted by Jan Wieck - Hamburg. * @@ -522,7 +522,7 @@ plpgsql_scanner_init(const char *str, int functype) * Hack: skip any initial newline, so that in the common coding layout * CREATE FUNCTION ... AS ' * code body - * ' LANGUAGE 'plpgsql'; + * ' LANGUAGE plpgsql; * we will think "line 1" is what the programmer thinks of as line 1. *---------- */ diff --git a/src/pl/tcl/expected/pltcl_setup.out b/src/pl/tcl/expected/pltcl_setup.out index e168b121b86..0d6d253b63c 100644 --- a/src/pl/tcl/expected/pltcl_setup.out +++ b/src/pl/tcl/expected/pltcl_setup.out @@ -52,7 +52,7 @@ create function check_pkey1_exists(int4, bpchar) returns bool as ' return "t" } return "f" -' language 'pltcl'; +' language pltcl; -- -- Trigger function on every change to T_pkey1 -- @@ -138,7 +138,7 @@ create function trig_pkey1_before() returns trigger as ' # Anything is fine - let operation pass through # return OK -' language 'pltcl'; +' language pltcl; create trigger pkey1_before before insert or update or delete on T_pkey1 for each row execute procedure trig_pkey1_before(); @@ -175,7 +175,7 @@ create function trig_pkey2_before() returns trigger as ' # Return modified tuple in NEW # return [array get NEW] -' language 'pltcl'; +' language pltcl; create trigger pkey2_before before insert or update on T_pkey2 for each row execute procedure trig_pkey2_before(); @@ -261,7 +261,7 @@ create function trig_pkey2_after() returns trigger as ' } return OK -' language 'pltcl'; +' language pltcl; create trigger pkey2_after after update or delete on T_pkey2 for each row execute procedure trig_pkey2_after(); @@ -355,7 +355,7 @@ create function check_primkey() returns trigger as ' # Anything is fine # return OK -' language 'pltcl'; +' language pltcl; create trigger dta1_before before insert or update on T_dta1 for each row execute procedure check_primkey('ref1', 'ref2', 'T_pkey1', 'key1', 'key2'); @@ -364,7 +364,7 @@ create trigger dta2_before before insert or update on T_dta2 check_primkey('ref1', 'ref2', 'T_pkey2', 'key1', 'key2'); create function tcl_int4add(int4,int4) returns int4 as ' return [expr $1 + $2] -' language 'pltcl'; +' language pltcl; -- We use split(n) as a quick-and-dirty way of parsing the input array -- value, which comes in as a string like '{1,2}'. There are better ways... create function tcl_int4_accum(int4[], int4) returns int4[] as ' @@ -372,12 +372,12 @@ create function tcl_int4_accum(int4[], int4) returns int4[] as ' set newsum [expr {[lindex $state 1] + $2}] set newcnt [expr {[lindex $state 2] + 1}] return "{$newsum,$newcnt}" -' language 'pltcl'; +' language pltcl; create function tcl_int4_avg(int4[]) returns int4 as ' set state [split $1 "{,}"] if {[lindex $state 2] == 0} { return_null } return [expr {[lindex $state 1] / [lindex $state 2]}] -' language 'pltcl'; +' language pltcl; create aggregate tcl_avg ( sfunc = tcl_int4_accum, basetype = int4, @@ -396,7 +396,7 @@ create function tcl_int4lt(int4,int4) returns bool as ' return t } return f -' language 'pltcl'; +' language pltcl; create operator @< ( leftarg = int4, rightarg = int4, diff --git a/src/pl/tcl/sql/pltcl_setup.sql b/src/pl/tcl/sql/pltcl_setup.sql index 78ddd867eb4..d938f9f4d65 100644 --- a/src/pl/tcl/sql/pltcl_setup.sql +++ b/src/pl/tcl/sql/pltcl_setup.sql @@ -58,7 +58,7 @@ create function check_pkey1_exists(int4, bpchar) returns bool as ' return "t" } return "f" -' language 'pltcl'; +' language pltcl; -- @@ -146,7 +146,7 @@ create function trig_pkey1_before() returns trigger as ' # Anything is fine - let operation pass through # return OK -' language 'pltcl'; +' language pltcl; create trigger pkey1_before before insert or update or delete on T_pkey1 @@ -187,7 +187,7 @@ create function trig_pkey2_before() returns trigger as ' # Return modified tuple in NEW # return [array get NEW] -' language 'pltcl'; +' language pltcl; create trigger pkey2_before before insert or update on T_pkey2 @@ -277,7 +277,7 @@ create function trig_pkey2_after() returns trigger as ' } return OK -' language 'pltcl'; +' language pltcl; create trigger pkey2_after after update or delete on T_pkey2 @@ -375,7 +375,7 @@ create function check_primkey() returns trigger as ' # Anything is fine # return OK -' language 'pltcl'; +' language pltcl; create trigger dta1_before before insert or update on T_dta1 @@ -390,7 +390,7 @@ create trigger dta2_before before insert or update on T_dta2 create function tcl_int4add(int4,int4) returns int4 as ' return [expr $1 + $2] -' language 'pltcl'; +' language pltcl; -- We use split(n) as a quick-and-dirty way of parsing the input array -- value, which comes in as a string like '{1,2}'. There are better ways... @@ -400,13 +400,13 @@ create function tcl_int4_accum(int4[], int4) returns int4[] as ' set newsum [expr {[lindex $state 1] + $2}] set newcnt [expr {[lindex $state 2] + 1}] return "{$newsum,$newcnt}" -' language 'pltcl'; +' language pltcl; create function tcl_int4_avg(int4[]) returns int4 as ' set state [split $1 "{,}"] if {[lindex $state 2] == 0} { return_null } return [expr {[lindex $state 1] / [lindex $state 2]}] -' language 'pltcl'; +' language pltcl; create aggregate tcl_avg ( sfunc = tcl_int4_accum, @@ -428,7 +428,7 @@ create function tcl_int4lt(int4,int4) returns bool as ' return t } return f -' language 'pltcl'; +' language pltcl; create operator @< ( leftarg = int4, diff --git a/src/test/regress/GNUmakefile b/src/test/regress/GNUmakefile index 5ed7c4ce2d9..7ed01ca629a 100644 --- a/src/test/regress/GNUmakefile +++ b/src/test/regress/GNUmakefile @@ -6,7 +6,7 @@ # Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group # Portions Copyright (c) 1994, Regents of the University of California # -# $PostgreSQL: pgsql/src/test/regress/GNUmakefile,v 1.55 2005/12/09 21:19:36 petere Exp $ +# $PostgreSQL: pgsql/src/test/regress/GNUmakefile,v 1.56 2006/02/27 16:09:50 petere Exp $ # #------------------------------------------------------------------------- @@ -62,7 +62,7 @@ uninstall: rm -f '$(DESTDIR)$(pgxsdir)/$(subdir)/pg_regress' -# Build dynamically-loaded object file for CREATE FUNCTION ... LANGUAGE 'C'. +# Build dynamically-loaded object file for CREATE FUNCTION ... LANGUAGE C. NAME = regress SO_MAJOR_VERSION= 0 diff --git a/src/test/regress/expected/copy2.out b/src/test/regress/expected/copy2.out index 99fba57a9e0..7759a411cd8 100644 --- a/src/test/regress/expected/copy2.out +++ b/src/test/regress/expected/copy2.out @@ -11,13 +11,13 @@ CREATE FUNCTION fn_x_before () RETURNS TRIGGER AS ' NEW.e := ''before trigger fired''::text; return NEW; END; -' language 'plpgsql'; +' LANGUAGE plpgsql; CREATE FUNCTION fn_x_after () RETURNS TRIGGER AS ' BEGIN UPDATE x set e=''after trigger fired'' where c=''stuff''; return NULL; END; -' language 'plpgsql'; +' LANGUAGE plpgsql; CREATE TRIGGER trg_x_after AFTER INSERT ON x FOR EACH ROW EXECUTE PROCEDURE fn_x_after(); CREATE TRIGGER trg_x_before BEFORE INSERT ON x diff --git a/src/test/regress/expected/create_type.out b/src/test/regress/expected/create_type.out index 101382e7392..4e2d44d5c41 100644 --- a/src/test/regress/expected/create_type.out +++ b/src/test/regress/expected/create_type.out @@ -18,24 +18,24 @@ CREATE TYPE city_budget ( CREATE FUNCTION int42_in(cstring) RETURNS int42 AS 'int4in' - LANGUAGE 'internal' WITH (isStrict); + LANGUAGE internal STRICT; NOTICE: type "int42" is not yet defined DETAIL: Creating a shell type definition. CREATE FUNCTION int42_out(int42) RETURNS cstring AS 'int4out' - LANGUAGE 'internal' WITH (isStrict); + LANGUAGE internal STRICT; NOTICE: argument type int42 is only a shell CREATE FUNCTION text_w_default_in(cstring) RETURNS text_w_default AS 'textin' - LANGUAGE 'internal' WITH (isStrict); + LANGUAGE internal STRICT; NOTICE: type "text_w_default" is not yet defined DETAIL: Creating a shell type definition. CREATE FUNCTION text_w_default_out(text_w_default) RETURNS cstring AS 'textout' - LANGUAGE 'internal' WITH (isStrict); + LANGUAGE internal STRICT; NOTICE: argument type text_w_default is only a shell CREATE TYPE int42 ( internallength = 4, diff --git a/src/test/regress/expected/plpgsql.out b/src/test/regress/expected/plpgsql.out index 1a4307dce28..5617b6ef010 100644 --- a/src/test/regress/expected/plpgsql.out +++ b/src/test/regress/expected/plpgsql.out @@ -100,7 +100,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_room_au after update on Room for each row execute procedure tg_room_au(); -- ************************************************************ @@ -112,7 +112,7 @@ begin delete from WSlot where roomno = old.roomno; return old; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_room_ad after delete on Room for each row execute procedure tg_room_ad(); -- ************************************************************ @@ -140,7 +140,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_pfield_au after update on PField for each row execute procedure tg_pfield_au(); -- ************************************************************ @@ -152,7 +152,7 @@ begin delete from PSlot where pfname = old.name; return old; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_pfield_ad after delete on PField for each row execute procedure tg_pfield_ad(); -- ************************************************************ @@ -184,7 +184,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_system_au after update on System for each row execute procedure tg_system_au(); -- ************************************************************ @@ -237,7 +237,7 @@ begin return old; end if; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_hub_a after insert or update or delete on Hub for each row execute procedure tg_hub_a(); -- ************************************************************ @@ -261,7 +261,7 @@ begin end loop; return 0; end -' language 'plpgsql'; +' language plpgsql; -- Test comments COMMENT ON FUNCTION tg_hub_adjustslots_wrong(bpchar, integer, integer) IS 'function with args'; ERROR: function tg_hub_adjustslots_wrong(character, integer, integer) does not exist @@ -301,7 +301,7 @@ begin new.slotname := sname; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_hslot_biu before insert or update on HSlot for each row execute procedure tg_hslot_biu(); -- ************************************************************ @@ -321,7 +321,7 @@ begin end if; raise exception ''no manual manipulation of HSlot''; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_hslot_bd before delete on HSlot for each row execute procedure tg_hslot_bd(); -- ************************************************************ @@ -335,7 +335,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_chkslotname before insert on PSlot for each row execute procedure tg_chkslotname('PS'); create trigger tg_chkslotname before insert @@ -357,7 +357,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_chkslotlink before insert or update on PSlot for each row execute procedure tg_chkslotlink(); create trigger tg_chkslotlink before insert or update @@ -379,7 +379,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_chkbacklink before insert or update on PSlot for each row execute procedure tg_chkbacklink(); create trigger tg_chkbacklink before insert or update @@ -409,7 +409,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_pslot_bu before update on PSlot for each row execute procedure tg_pslot_bu(); -- ************************************************************ @@ -435,7 +435,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_wslot_bu before update on WSlot for each row execute procedure tg_Wslot_bu(); -- ************************************************************ @@ -461,7 +461,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_pline_bu before update on PLine for each row execute procedure tg_pline_bu(); -- ************************************************************ @@ -487,7 +487,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_iface_bu before update on IFace for each row execute procedure tg_iface_bu(); -- ************************************************************ @@ -513,7 +513,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_hslot_bu before update on HSlot for each row execute procedure tg_hslot_bu(); -- ************************************************************ @@ -537,7 +537,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_phone_bu before update on PHone for each row execute procedure tg_phone_bu(); -- ************************************************************ @@ -576,7 +576,7 @@ begin return old; end if; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_backlink_a after insert or update or delete on PSlot for each row execute procedure tg_backlink_a('PS'); create trigger tg_backlink_a after insert or update or delete @@ -636,7 +636,7 @@ begin end if; raise exception ''illegal backlink beginning with %'', mytype; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ -- * Support function to clear out the backlink field if -- * it still points to specific slot @@ -718,7 +718,7 @@ begin return old; end if; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_slotlink_a after insert or update or delete on PSlot for each row execute procedure tg_slotlink_a('PS'); create trigger tg_slotlink_a after insert or update or delete @@ -812,7 +812,7 @@ begin end if; raise exception ''illegal slotlink beginning with %'', mytype; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ -- * Support function to clear out the slotlink field if -- * it still points to specific slot @@ -877,7 +877,7 @@ begin return 0; end if; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ -- * Describe the backside of a patchfield slot -- ************************************************************ @@ -920,7 +920,7 @@ begin end if; return rec.backlink; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ -- * Describe the front of a patchfield slot -- ************************************************************ @@ -954,7 +954,7 @@ begin end if; return psrec.slotlink; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ -- * Describe the front of a wall connector slot -- ************************************************************ @@ -1002,7 +1002,7 @@ begin end if; return rec.slotlink; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ -- * View of a patchfield describing backside and patches -- ************************************************************ @@ -1555,7 +1555,7 @@ BEGIN rslt = CAST($1 AS TEXT) || '','' || recursion_test($1 - 1, $2); END IF; RETURN rslt; -END;' LANGUAGE 'plpgsql'; +END;' LANGUAGE plpgsql; SELECT recursion_test(4,3); recursion_test ---------------- @@ -1600,7 +1600,7 @@ create function test_found() insert into found_test_tbl values (6); end if; return true; - end;' language 'plpgsql'; + end;' language plpgsql; select test_found(); test_found ------------ @@ -1629,7 +1629,7 @@ BEGIN RETURN NEXT rec; END LOOP; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; select * from test_table_func_rec(); a ----- @@ -1649,7 +1649,7 @@ BEGIN RETURN NEXT row; END LOOP; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; select * from test_table_func_row(); a ----- @@ -1669,7 +1669,7 @@ BEGIN RETURN NEXT i + 1; END LOOP; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; select * from test_ret_set_scalar(1,10); test_ret_set_scalar --------------------- @@ -1699,7 +1699,7 @@ BEGIN RETURN NEXT retval; END IF; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; SELECT * FROM test_ret_set_rec_dyn(1500) AS (a int, b int, c int); a | b | c ---+----+---- @@ -1725,7 +1725,7 @@ BEGIN SELECT INTO retval 50, 5::numeric, ''xxx''::text; RETURN retval; END IF; -END;' language 'plpgsql'; +END;' language plpgsql; SELECT * FROM test_ret_rec_dyn(1500) AS (a int, b int, c int); a | b | c ---+----+---- @@ -1870,7 +1870,7 @@ BEGIN ELSE RETURN FALSE; END IF; -END;' language 'plpgsql'; +END;' language plpgsql; create function perform_test_func() returns void as ' BEGIN IF FOUND then @@ -1890,7 +1890,7 @@ BEGIN END IF; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; SELECT perform_test_func(); perform_test_func ------------------- @@ -2230,13 +2230,13 @@ begin open rc for select a from rc_test; return rc; end -$$ language 'plpgsql'; +$$ language plpgsql; create function refcursor_test1(refcursor) returns refcursor as $$ begin perform return_refcursor($1); return $1; end -$$ language 'plpgsql'; +$$ language plpgsql; begin; select refcursor_test1('test1'); refcursor_test1 @@ -2282,7 +2282,7 @@ begin return false; end if; end -$$ language 'plpgsql'; +$$ language plpgsql; select refcursor_test2(20000, 20000) as "Should be false", refcursor_test2(20, 20) as "Should be true"; Should be false | Should be true diff --git a/src/test/regress/expected/polymorphism.out b/src/test/regress/expected/polymorphism.out index 55687467a0d..57a12583319 100644 --- a/src/test/regress/expected/polymorphism.out +++ b/src/test/regress/expected/polymorphism.out @@ -33,29 +33,29 @@ -- argument polymorphism, but within the constraints of valid aggregate -- functions, i.e. tf arg1 and tf return type must match -- polymorphic single arg transfn -CREATE FUNCTION stfp(anyarray) returns anyarray as -'select $1' language 'sql'; +CREATE FUNCTION stfp(anyarray) RETURNS anyarray AS +'select $1' LANGUAGE SQL; -- non-polymorphic single arg transfn -CREATE FUNCTION stfnp(int[]) returns int[] as -'select $1' language 'sql'; +CREATE FUNCTION stfnp(int[]) RETURNS int[] AS +'select $1' LANGUAGE SQL; -- dual polymorphic transfn -CREATE FUNCTION tfp(anyarray,anyelement) returns anyarray as -'select $1 || $2' language 'sql'; +CREATE FUNCTION tfp(anyarray,anyelement) RETURNS anyarray AS +'select $1 || $2' LANGUAGE SQL; -- dual non-polymorphic transfn -CREATE FUNCTION tfnp(int[],int) returns int[] as -'select $1 || $2' language 'sql'; +CREATE FUNCTION tfnp(int[],int) RETURNS int[] AS +'select $1 || $2' LANGUAGE SQL; -- arg1 only polymorphic transfn -CREATE FUNCTION tf1p(anyarray,int) returns anyarray as -'select $1' language 'sql'; +CREATE FUNCTION tf1p(anyarray,int) RETURNS anyarray AS +'select $1' LANGUAGE SQL; -- arg2 only polymorphic transfn -CREATE FUNCTION tf2p(int[],anyelement) returns int[] as -'select $1' language 'sql'; +CREATE FUNCTION tf2p(int[],anyelement) RETURNS int[] AS +'select $1' LANGUAGE SQL; -- finalfn polymorphic -CREATE FUNCTION ffp(anyarray) returns anyarray as -'select $1' language 'sql'; +CREATE FUNCTION ffp(anyarray) RETURNS anyarray AS +'select $1' LANGUAGE SQL; -- finalfn non-polymorphic CREATE FUNCTION ffnp(int[]) returns int[] as -'select $1' language 'sql'; +'select $1' LANGUAGE SQL; -- Try to cover all the possible states: -- -- Note: in Cases 1 & 2, we are trying to return P. Therefore, if the transfn diff --git a/src/test/regress/expected/portals.out b/src/test/regress/expected/portals.out index cbff0b4245a..ab62ac2705b 100644 --- a/src/test/regress/expected/portals.out +++ b/src/test/regress/expected/portals.out @@ -779,7 +779,7 @@ BEGIN; CREATE FUNCTION declares_cursor(text) RETURNS void AS 'DECLARE c CURSOR FOR SELECT stringu1 FROM tenk1 WHERE stringu1 LIKE $1;' - LANGUAGE 'sql'; + LANGUAGE SQL; SELECT declares_cursor('AB%'); declares_cursor ----------------- diff --git a/src/test/regress/expected/rangefuncs.out b/src/test/regress/expected/rangefuncs.out index 49fc121f04f..000d4e36c52 100644 --- a/src/test/regress/expected/rangefuncs.out +++ b/src/test/regress/expected/rangefuncs.out @@ -188,7 +188,7 @@ SELECT * FROM vw_getfoo; -- plpgsql, proretset = f, prorettype = b DROP VIEW vw_getfoo; DROP FUNCTION getfoo(int); -CREATE FUNCTION getfoo(int) RETURNS int AS 'DECLARE fooint int; BEGIN SELECT fooid into fooint FROM foo WHERE fooid = $1; RETURN fooint; END;' LANGUAGE 'plpgsql'; +CREATE FUNCTION getfoo(int) RETURNS int AS 'DECLARE fooint int; BEGIN SELECT fooid into fooint FROM foo WHERE fooid = $1; RETURN fooint; END;' LANGUAGE plpgsql; SELECT * FROM getfoo(1) AS t1; t1 ---- @@ -205,7 +205,7 @@ SELECT * FROM vw_getfoo; -- plpgsql, proretset = f, prorettype = c DROP VIEW vw_getfoo; DROP FUNCTION getfoo(int); -CREATE FUNCTION getfoo(int) RETURNS foo AS 'DECLARE footup foo%ROWTYPE; BEGIN SELECT * into footup FROM foo WHERE fooid = $1; RETURN footup; END;' LANGUAGE 'plpgsql'; +CREATE FUNCTION getfoo(int) RETURNS foo AS 'DECLARE footup foo%ROWTYPE; BEGIN SELECT * into footup FROM foo WHERE fooid = $1; RETURN footup; END;' LANGUAGE plpgsql; SELECT * FROM getfoo(1) AS t1; fooid | foosubid | fooname -------+----------+--------- diff --git a/src/test/regress/expected/rules.out b/src/test/regress/expected/rules.out index 90e38d013f3..7d38d3e8bbc 100644 --- a/src/test/regress/expected/rules.out +++ b/src/test/regress/expected/rules.out @@ -764,7 +764,7 @@ create view rtest_vview4 as select X.a, X.b, count(Y.a) as refcount group by X.a, X.b; create function rtest_viewfunc1(int4) returns int4 as 'select count(*)::int4 from rtest_view2 where a = $1' - language 'sql'; + language sql; create view rtest_vview5 as select a, b, rtest_viewfunc1(a) as refcount from rtest_view1; insert into rtest_view1 values (1, 'item 1', 't'); diff --git a/src/test/regress/expected/triggers.out b/src/test/regress/expected/triggers.out index 9d6692f35c5..e91c5a36320 100644 --- a/src/test/regress/expected/triggers.out +++ b/src/test/regress/expected/triggers.out @@ -276,7 +276,7 @@ drop sequence ttdummy_seq; CREATE TABLE log_table (tstamp timestamp default timeofday()::timestamp); CREATE TABLE main_table (a int, b int); COPY main_table (a,b) FROM stdin; -CREATE FUNCTION trigger_func() RETURNS trigger LANGUAGE 'plpgsql' AS ' +CREATE FUNCTION trigger_func() RETURNS trigger LANGUAGE plpgsql AS ' BEGIN RAISE NOTICE ''trigger_func() called: action = %, when = %, level = %'', TG_OP, TG_WHEN, TG_LEVEL; RETURN NULL; diff --git a/src/test/regress/input/create_function_1.source b/src/test/regress/input/create_function_1.source index faa73156dc2..fb357d93b07 100644 --- a/src/test/regress/input/create_function_1.source +++ b/src/test/regress/input/create_function_1.source @@ -5,74 +5,74 @@ CREATE FUNCTION widget_in(cstring) RETURNS widget AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; CREATE FUNCTION widget_out(widget) RETURNS cstring AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; CREATE FUNCTION int44in(cstring) RETURNS city_budget AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; CREATE FUNCTION int44out(city_budget) RETURNS cstring AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; CREATE FUNCTION check_primary_key () RETURNS trigger AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION check_foreign_key () RETURNS trigger AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION autoinc () RETURNS trigger AS '@abs_builddir@/../../../contrib/spi/autoinc@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION funny_dup17 () RETURNS trigger AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION ttdummy () RETURNS trigger AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION set_ttdummy (int4) RETURNS int4 AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; -- Things that shouldn't work: -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'SELECT ''not an integer'';'; -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'not even SQL'; -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'SELECT 1, 2, 3;'; -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'SELECT $2;'; -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'a', 'b'; -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE c +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE C AS 'nosuchfile'; -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE c +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE C AS '@abs_builddir@/regress@DLSUFFIX@', 'nosuchsymbol'; CREATE FUNCTION test1 (int) RETURNS int LANGUAGE internal diff --git a/src/test/regress/input/create_function_2.source b/src/test/regress/input/create_function_2.source index 07d26c1d8f5..98ecfe855f8 100644 --- a/src/test/regress/input/create_function_2.source +++ b/src/test/regress/input/create_function_2.source @@ -4,25 +4,25 @@ CREATE FUNCTION hobbies(person) RETURNS setof hobbies_r AS 'select * from hobbies_r where person = $1.name' - LANGUAGE 'sql'; + LANGUAGE SQL; CREATE FUNCTION hobby_construct(text, text) RETURNS hobbies_r AS 'select $1 as name, $2 as hobby' - LANGUAGE 'sql'; + LANGUAGE SQL; CREATE FUNCTION hobbies_by_name(hobbies_r.name%TYPE) RETURNS hobbies_r.person%TYPE AS 'select person from hobbies_r where name = $1' - LANGUAGE 'sql'; + LANGUAGE SQL; CREATE FUNCTION equipment(hobbies_r) RETURNS setof equipment_r AS 'select * from equipment_r where hobby = $1.name' - LANGUAGE 'sql'; + LANGUAGE SQL; CREATE FUNCTION user_relns() @@ -32,37 +32,37 @@ CREATE FUNCTION user_relns() where relnamespace = n.oid and (nspname !~ ''pg_.*'' and nspname <> ''information_schema'') and relkind <> ''i'' ' - LANGUAGE 'sql'; + LANGUAGE SQL; CREATE FUNCTION pt_in_widget(point, widget) RETURNS bool AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION overpaid(emp) RETURNS bool AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION boxarea(box) RETURNS float8 AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION interpt_pp(path, path) RETURNS point AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION reverse_name(name) RETURNS name AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'c'; + LANGUAGE C; CREATE FUNCTION oldstyle_length(int4, text) RETURNS int4 AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'c'; + LANGUAGE C; -- -- Function dynamic loading diff --git a/src/test/regress/output/create_function_1.source b/src/test/regress/output/create_function_1.source index ed275b1f482..a3c506598f6 100644 --- a/src/test/regress/output/create_function_1.source +++ b/src/test/regress/output/create_function_1.source @@ -4,76 +4,76 @@ CREATE FUNCTION widget_in(cstring) RETURNS widget AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; NOTICE: type "widget" is not yet defined DETAIL: Creating a shell type definition. CREATE FUNCTION widget_out(widget) RETURNS cstring AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; NOTICE: argument type widget is only a shell CREATE FUNCTION int44in(cstring) RETURNS city_budget AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; NOTICE: type "city_budget" is not yet defined DETAIL: Creating a shell type definition. CREATE FUNCTION int44out(city_budget) RETURNS cstring AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; NOTICE: argument type city_budget is only a shell CREATE FUNCTION check_primary_key () RETURNS trigger AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION check_foreign_key () RETURNS trigger AS '@abs_builddir@/../../../contrib/spi/refint@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION autoinc () RETURNS trigger AS '@abs_builddir@/../../../contrib/spi/autoinc@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION funny_dup17 () RETURNS trigger AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION ttdummy () RETURNS trigger AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION set_ttdummy (int4) RETURNS int4 AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C' STRICT; + LANGUAGE C STRICT; -- Things that shouldn't work: -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'SELECT ''not an integer'';'; ERROR: return type mismatch in function declared to return integer DETAIL: Actual return type is "unknown". CONTEXT: SQL function "test1" -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'not even SQL'; ERROR: syntax error at or near "not" at character 62 LINE 2: AS 'not even SQL'; ^ -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'SELECT 1, 2, 3;'; ERROR: return type mismatch in function declared to return integer DETAIL: Final SELECT must return exactly one column. CONTEXT: SQL function "test1" -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'SELECT $2;'; ERROR: there is no parameter $2 CONTEXT: SQL function "test1" -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE sql +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE SQL AS 'a', 'b'; ERROR: only one AS item needed for language "sql" -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE c +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE C AS 'nosuchfile'; ERROR: could not access file "nosuchfile": No such file or directory -CREATE FUNCTION test1 (int) RETURNS int LANGUAGE c +CREATE FUNCTION test1 (int) RETURNS int LANGUAGE C AS '@abs_builddir@/regress@DLSUFFIX@', 'nosuchsymbol'; ERROR: could not find function "nosuchsymbol" in file "@abs_builddir@/regress@DLSUFFIX@" CREATE FUNCTION test1 (int) RETURNS int LANGUAGE internal diff --git a/src/test/regress/output/create_function_2.source b/src/test/regress/output/create_function_2.source index dd308261d9f..57802a4f7e5 100644 --- a/src/test/regress/output/create_function_2.source +++ b/src/test/regress/output/create_function_2.source @@ -4,21 +4,21 @@ CREATE FUNCTION hobbies(person) RETURNS setof hobbies_r AS 'select * from hobbies_r where person = $1.name' - LANGUAGE 'sql'; + LANGUAGE SQL; CREATE FUNCTION hobby_construct(text, text) RETURNS hobbies_r AS 'select $1 as name, $2 as hobby' - LANGUAGE 'sql'; + LANGUAGE SQL; CREATE FUNCTION hobbies_by_name(hobbies_r.name%TYPE) RETURNS hobbies_r.person%TYPE AS 'select person from hobbies_r where name = $1' - LANGUAGE 'sql'; + LANGUAGE SQL; NOTICE: type reference hobbies_r.name%TYPE converted to text NOTICE: type reference hobbies_r.person%TYPE converted to text CREATE FUNCTION equipment(hobbies_r) RETURNS setof equipment_r AS 'select * from equipment_r where hobby = $1.name' - LANGUAGE 'sql'; + LANGUAGE SQL; CREATE FUNCTION user_relns() RETURNS setof name AS 'select relname @@ -26,31 +26,31 @@ CREATE FUNCTION user_relns() where relnamespace = n.oid and (nspname !~ ''pg_.*'' and nspname <> ''information_schema'') and relkind <> ''i'' ' - LANGUAGE 'sql'; + LANGUAGE SQL; CREATE FUNCTION pt_in_widget(point, widget) RETURNS bool AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION overpaid(emp) RETURNS bool AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION boxarea(box) RETURNS float8 AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION interpt_pp(path, path) RETURNS point AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'C'; + LANGUAGE C; CREATE FUNCTION reverse_name(name) RETURNS name AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'c'; + LANGUAGE C; CREATE FUNCTION oldstyle_length(int4, text) RETURNS int4 AS '@abs_builddir@/regress@DLSUFFIX@' - LANGUAGE 'c'; + LANGUAGE C; -- -- Function dynamic loading -- diff --git a/src/test/regress/sql/copy2.sql b/src/test/regress/sql/copy2.sql index 5d73256c122..b193388ab8c 100644 --- a/src/test/regress/sql/copy2.sql +++ b/src/test/regress/sql/copy2.sql @@ -11,14 +11,14 @@ CREATE FUNCTION fn_x_before () RETURNS TRIGGER AS ' NEW.e := ''before trigger fired''::text; return NEW; END; -' language 'plpgsql'; +' LANGUAGE plpgsql; CREATE FUNCTION fn_x_after () RETURNS TRIGGER AS ' BEGIN UPDATE x set e=''after trigger fired'' where c=''stuff''; return NULL; END; -' language 'plpgsql'; +' LANGUAGE plpgsql; CREATE TRIGGER trg_x_after AFTER INSERT ON x FOR EACH ROW EXECUTE PROCEDURE fn_x_after(); diff --git a/src/test/regress/sql/create_type.sql b/src/test/regress/sql/create_type.sql index 6e8fa84b7dc..66d78c9216b 100644 --- a/src/test/regress/sql/create_type.sql +++ b/src/test/regress/sql/create_type.sql @@ -22,19 +22,19 @@ CREATE TYPE city_budget ( CREATE FUNCTION int42_in(cstring) RETURNS int42 AS 'int4in' - LANGUAGE 'internal' WITH (isStrict); + LANGUAGE internal STRICT; CREATE FUNCTION int42_out(int42) RETURNS cstring AS 'int4out' - LANGUAGE 'internal' WITH (isStrict); + LANGUAGE internal STRICT; CREATE FUNCTION text_w_default_in(cstring) RETURNS text_w_default AS 'textin' - LANGUAGE 'internal' WITH (isStrict); + LANGUAGE internal STRICT; CREATE FUNCTION text_w_default_out(text_w_default) RETURNS cstring AS 'textout' - LANGUAGE 'internal' WITH (isStrict); + LANGUAGE internal STRICT; CREATE TYPE int42 ( internallength = 4, diff --git a/src/test/regress/sql/plpgsql.sql b/src/test/regress/sql/plpgsql.sql index 5e8db475720..a2d65817b1f 100644 --- a/src/test/regress/sql/plpgsql.sql +++ b/src/test/regress/sql/plpgsql.sql @@ -134,7 +134,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_room_au after update on Room for each row execute procedure tg_room_au(); @@ -149,7 +149,7 @@ begin delete from WSlot where roomno = old.roomno; return old; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_room_ad after delete on Room for each row execute procedure tg_room_ad(); @@ -183,7 +183,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_pfield_au after update on PField for each row execute procedure tg_pfield_au(); @@ -198,7 +198,7 @@ begin delete from PSlot where pfname = old.name; return old; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_pfield_ad after delete on PField for each row execute procedure tg_pfield_ad(); @@ -236,7 +236,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_system_au after update on System for each row execute procedure tg_system_au(); @@ -295,7 +295,7 @@ begin return old; end if; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_hub_a after insert or update or delete on Hub for each row execute procedure tg_hub_a(); @@ -322,7 +322,7 @@ begin end loop; return 0; end -' language 'plpgsql'; +' language plpgsql; -- Test comments COMMENT ON FUNCTION tg_hub_adjustslots_wrong(bpchar, integer, integer) IS 'function with args'; @@ -363,7 +363,7 @@ begin new.slotname := sname; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_hslot_biu before insert or update on HSlot for each row execute procedure tg_hslot_biu(); @@ -386,7 +386,7 @@ begin end if; raise exception ''no manual manipulation of HSlot''; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_hslot_bd before delete on HSlot for each row execute procedure tg_hslot_bd(); @@ -403,7 +403,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_chkslotname before insert on PSlot for each row execute procedure tg_chkslotname('PS'); @@ -432,7 +432,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_chkslotlink before insert or update on PSlot for each row execute procedure tg_chkslotlink(); @@ -461,7 +461,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_chkbacklink before insert or update on PSlot for each row execute procedure tg_chkbacklink(); @@ -496,7 +496,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_pslot_bu before update on PSlot for each row execute procedure tg_pslot_bu(); @@ -525,7 +525,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_wslot_bu before update on WSlot for each row execute procedure tg_Wslot_bu(); @@ -554,7 +554,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_pline_bu before update on PLine for each row execute procedure tg_pline_bu(); @@ -583,7 +583,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_iface_bu before update on IFace for each row execute procedure tg_iface_bu(); @@ -612,7 +612,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_hslot_bu before update on HSlot for each row execute procedure tg_hslot_bu(); @@ -639,7 +639,7 @@ begin end if; return new; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_phone_bu before update on PHone for each row execute procedure tg_phone_bu(); @@ -681,7 +681,7 @@ begin return old; end if; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_backlink_a after insert or update or delete @@ -747,7 +747,7 @@ begin end if; raise exception ''illegal backlink beginning with %'', mytype; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ @@ -833,7 +833,7 @@ begin return old; end if; end; -' language 'plpgsql'; +' language plpgsql; create trigger tg_slotlink_a after insert or update or delete @@ -935,7 +935,7 @@ begin end if; raise exception ''illegal slotlink beginning with %'', mytype; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ @@ -1002,7 +1002,7 @@ begin return 0; end if; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ @@ -1047,7 +1047,7 @@ begin end if; return rec.backlink; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ @@ -1083,7 +1083,7 @@ begin end if; return psrec.slotlink; end; -' language 'plpgsql'; +' language plpgsql; -- ************************************************************ @@ -1133,7 +1133,7 @@ begin end if; return rec.slotlink; end; -' language 'plpgsql'; +' language plpgsql; @@ -1437,7 +1437,7 @@ BEGIN rslt = CAST($1 AS TEXT) || '','' || recursion_test($1 - 1, $2); END IF; RETURN rslt; -END;' LANGUAGE 'plpgsql'; +END;' LANGUAGE plpgsql; SELECT recursion_test(4,3); @@ -1480,7 +1480,7 @@ create function test_found() insert into found_test_tbl values (6); end if; return true; - end;' language 'plpgsql'; + end;' language plpgsql; select test_found(); select * from found_test_tbl; @@ -1497,7 +1497,7 @@ BEGIN RETURN NEXT rec; END LOOP; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; select * from test_table_func_rec(); @@ -1509,7 +1509,7 @@ BEGIN RETURN NEXT row; END LOOP; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; select * from test_table_func_row(); @@ -1521,7 +1521,7 @@ BEGIN RETURN NEXT i + 1; END LOOP; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; select * from test_ret_set_scalar(1,10); @@ -1539,7 +1539,7 @@ BEGIN RETURN NEXT retval; END IF; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; SELECT * FROM test_ret_set_rec_dyn(1500) AS (a int, b int, c int); SELECT * FROM test_ret_set_rec_dyn(5) AS (a int, b numeric, c text); @@ -1555,7 +1555,7 @@ BEGIN SELECT INTO retval 50, 5::numeric, ''xxx''::text; RETURN retval; END IF; -END;' language 'plpgsql'; +END;' language plpgsql; SELECT * FROM test_ret_rec_dyn(1500) AS (a int, b int, c int); SELECT * FROM test_ret_rec_dyn(5) AS (a int, b numeric, c text); @@ -1658,7 +1658,7 @@ BEGIN ELSE RETURN FALSE; END IF; -END;' language 'plpgsql'; +END;' language plpgsql; create function perform_test_func() returns void as ' BEGIN @@ -1679,7 +1679,7 @@ BEGIN END IF; RETURN; -END;' language 'plpgsql'; +END;' language plpgsql; SELECT perform_test_func(); SELECT * FROM perform_test; @@ -1904,14 +1904,14 @@ begin open rc for select a from rc_test; return rc; end -$$ language 'plpgsql'; +$$ language plpgsql; create function refcursor_test1(refcursor) returns refcursor as $$ begin perform return_refcursor($1); return $1; end -$$ language 'plpgsql'; +$$ language plpgsql; begin; @@ -1940,7 +1940,7 @@ begin return false; end if; end -$$ language 'plpgsql'; +$$ language plpgsql; select refcursor_test2(20000, 20000) as "Should be false", refcursor_test2(20, 20) as "Should be true"; diff --git a/src/test/regress/sql/polymorphism.sql b/src/test/regress/sql/polymorphism.sql index 5175f9f93d1..13d691a9e80 100644 --- a/src/test/regress/sql/polymorphism.sql +++ b/src/test/regress/sql/polymorphism.sql @@ -37,32 +37,32 @@ -- functions, i.e. tf arg1 and tf return type must match -- polymorphic single arg transfn -CREATE FUNCTION stfp(anyarray) returns anyarray as -'select $1' language 'sql'; +CREATE FUNCTION stfp(anyarray) RETURNS anyarray AS +'select $1' LANGUAGE SQL; -- non-polymorphic single arg transfn -CREATE FUNCTION stfnp(int[]) returns int[] as -'select $1' language 'sql'; +CREATE FUNCTION stfnp(int[]) RETURNS int[] AS +'select $1' LANGUAGE SQL; -- dual polymorphic transfn -CREATE FUNCTION tfp(anyarray,anyelement) returns anyarray as -'select $1 || $2' language 'sql'; +CREATE FUNCTION tfp(anyarray,anyelement) RETURNS anyarray AS +'select $1 || $2' LANGUAGE SQL; -- dual non-polymorphic transfn -CREATE FUNCTION tfnp(int[],int) returns int[] as -'select $1 || $2' language 'sql'; +CREATE FUNCTION tfnp(int[],int) RETURNS int[] AS +'select $1 || $2' LANGUAGE SQL; -- arg1 only polymorphic transfn -CREATE FUNCTION tf1p(anyarray,int) returns anyarray as -'select $1' language 'sql'; +CREATE FUNCTION tf1p(anyarray,int) RETURNS anyarray AS +'select $1' LANGUAGE SQL; -- arg2 only polymorphic transfn -CREATE FUNCTION tf2p(int[],anyelement) returns int[] as -'select $1' language 'sql'; +CREATE FUNCTION tf2p(int[],anyelement) RETURNS int[] AS +'select $1' LANGUAGE SQL; -- finalfn polymorphic -CREATE FUNCTION ffp(anyarray) returns anyarray as -'select $1' language 'sql'; +CREATE FUNCTION ffp(anyarray) RETURNS anyarray AS +'select $1' LANGUAGE SQL; -- finalfn non-polymorphic CREATE FUNCTION ffnp(int[]) returns int[] as -'select $1' language 'sql'; +'select $1' LANGUAGE SQL; -- Try to cover all the possible states: -- diff --git a/src/test/regress/sql/portals.sql b/src/test/regress/sql/portals.sql index c0307874e80..43cbf05a90d 100644 --- a/src/test/regress/sql/portals.sql +++ b/src/test/regress/sql/portals.sql @@ -239,7 +239,7 @@ BEGIN; CREATE FUNCTION declares_cursor(text) RETURNS void AS 'DECLARE c CURSOR FOR SELECT stringu1 FROM tenk1 WHERE stringu1 LIKE $1;' - LANGUAGE 'sql'; + LANGUAGE SQL; SELECT declares_cursor('AB%'); diff --git a/src/test/regress/sql/rangefuncs.sql b/src/test/regress/sql/rangefuncs.sql index 50495897acd..c56e35ded4e 100644 --- a/src/test/regress/sql/rangefuncs.sql +++ b/src/test/regress/sql/rangefuncs.sql @@ -86,7 +86,7 @@ SELECT * FROM vw_getfoo; -- plpgsql, proretset = f, prorettype = b DROP VIEW vw_getfoo; DROP FUNCTION getfoo(int); -CREATE FUNCTION getfoo(int) RETURNS int AS 'DECLARE fooint int; BEGIN SELECT fooid into fooint FROM foo WHERE fooid = $1; RETURN fooint; END;' LANGUAGE 'plpgsql'; +CREATE FUNCTION getfoo(int) RETURNS int AS 'DECLARE fooint int; BEGIN SELECT fooid into fooint FROM foo WHERE fooid = $1; RETURN fooint; END;' LANGUAGE plpgsql; SELECT * FROM getfoo(1) AS t1; CREATE VIEW vw_getfoo AS SELECT * FROM getfoo(1); SELECT * FROM vw_getfoo; @@ -94,7 +94,7 @@ SELECT * FROM vw_getfoo; -- plpgsql, proretset = f, prorettype = c DROP VIEW vw_getfoo; DROP FUNCTION getfoo(int); -CREATE FUNCTION getfoo(int) RETURNS foo AS 'DECLARE footup foo%ROWTYPE; BEGIN SELECT * into footup FROM foo WHERE fooid = $1; RETURN footup; END;' LANGUAGE 'plpgsql'; +CREATE FUNCTION getfoo(int) RETURNS foo AS 'DECLARE footup foo%ROWTYPE; BEGIN SELECT * into footup FROM foo WHERE fooid = $1; RETURN footup; END;' LANGUAGE plpgsql; SELECT * FROM getfoo(1) AS t1; CREATE VIEW vw_getfoo AS SELECT * FROM getfoo(1); SELECT * FROM vw_getfoo; diff --git a/src/test/regress/sql/rules.sql b/src/test/regress/sql/rules.sql index ead8011a313..374e11d671c 100644 --- a/src/test/regress/sql/rules.sql +++ b/src/test/regress/sql/rules.sql @@ -431,7 +431,7 @@ create view rtest_vview4 as select X.a, X.b, count(Y.a) as refcount group by X.a, X.b; create function rtest_viewfunc1(int4) returns int4 as 'select count(*)::int4 from rtest_view2 where a = $1' - language 'sql'; + language sql; create view rtest_vview5 as select a, b, rtest_viewfunc1(a) as refcount from rtest_view1; diff --git a/src/test/regress/sql/triggers.sql b/src/test/regress/sql/triggers.sql index e4f3bc4308b..140b0f2d485 100644 --- a/src/test/regress/sql/triggers.sql +++ b/src/test/regress/sql/triggers.sql @@ -218,7 +218,7 @@ COPY main_table (a,b) FROM stdin; 80 15 \. -CREATE FUNCTION trigger_func() RETURNS trigger LANGUAGE 'plpgsql' AS ' +CREATE FUNCTION trigger_func() RETURNS trigger LANGUAGE plpgsql AS ' BEGIN RAISE NOTICE ''trigger_func() called: action = %, when = %, level = %'', TG_OP, TG_WHEN, TG_LEVEL; RETURN NULL; diff --git a/src/tutorial/funcs.source b/src/tutorial/funcs.source index 4dfdf278333..919ec7de28d 100644 --- a/src/tutorial/funcs.source +++ b/src/tutorial/funcs.source @@ -6,7 +6,7 @@ -- -- Copyright (c) 1994-5, Regents of the University of California -- --- $PostgreSQL: pgsql/src/tutorial/funcs.source,v 1.7 2003/11/29 22:41:33 pgsql Exp $ +-- $PostgreSQL: pgsql/src/tutorial/funcs.source,v 1.8 2006/02/27 16:09:50 petere Exp $ -- --------------------------------------------------------------------------- @@ -21,8 +21,8 @@ -- let's create a simple SQL function that takes no arguments and -- returns 1 -CREATE FUNCTION one() RETURNS int4 - AS 'SELECT 1 as ONE' LANGUAGE 'sql'; +CREATE FUNCTION one() RETURNS integer + AS 'SELECT 1 as ONE' LANGUAGE SQL; -- -- functions can be used in any expressions (eg. in the target list or @@ -34,8 +34,8 @@ SELECT one() AS answer; -- here's how you create a function that takes arguments. The following -- function returns the sum of its two arguments: -CREATE FUNCTION add_em(int4, int4) RETURNS int4 - AS 'SELECT $1 + $2' LANGUAGE 'sql'; +CREATE FUNCTION add_em(integer, integer) RETURNS integer + AS 'SELECT $1 + $2' LANGUAGE SQL; SELECT add_em(1, 2) AS answer; @@ -50,8 +50,8 @@ SELECT add_em(1, 2) AS answer; CREATE TABLE EMP ( name text, - salary int4, - age int4, + salary integer, + age integer, cubicle point ); @@ -64,8 +64,8 @@ INSERT INTO EMP VALUES ('Ginger', 4800, 30, '(2,4)'); -- the argument of a function can also be a tuple. For instance, -- double_salary takes a tuple of the EMP table -CREATE FUNCTION double_salary(EMP) RETURNS int4 - AS 'SELECT $1.salary * 2 AS salary' LANGUAGE 'sql'; +CREATE FUNCTION double_salary(EMP) RETURNS integer + AS 'SELECT $1.salary * 2 AS salary' LANGUAGE SQL; SELECT name, double_salary(EMP) AS dream FROM EMP @@ -80,7 +80,7 @@ CREATE FUNCTION new_emp() RETURNS EMP 1000 AS salary, 25 AS age, \'(2,2)\'::point AS cubicle' - LANGUAGE 'sql'; + LANGUAGE SQL; -- you can then project a column out of resulting the tuple by using the -- "function notation" for projection columns. (ie. bar(foo) is equivalent @@ -91,7 +91,7 @@ SELECT name(new_emp()) AS nobody; -- let's try one more function that returns tuples CREATE FUNCTION high_pay() RETURNS setof EMP AS 'SELECT * FROM EMP where salary > 1500' - LANGUAGE 'sql'; + LANGUAGE SQL; SELECT name(high_pay()) AS overpaid; @@ -109,10 +109,10 @@ SELECT name(high_pay()) AS overpaid; -- -- SELECT * FROM EMP; -- --- CREATE FUNCTION clean_EMP () RETURNS int4 +-- CREATE FUNCTION clean_EMP () RETURNS integer -- AS 'DELETE FROM EMP WHERE EMP.salary <= 0\; -- SELECT 1 AS ignore_this' --- LANGUAGE 'sql'; +-- LANGUAGE SQL; -- -- SELECT clean_EMP(); -- @@ -125,17 +125,17 @@ SELECT name(high_pay()) AS overpaid; -- See funcs.c for the definition of the C functions. ----------------------------- -CREATE FUNCTION add_one(int4) RETURNS int4 - AS '_OBJWD_/funcs' LANGUAGE 'c'; +CREATE FUNCTION add_one(integer) RETURNS integer + AS '_OBJWD_/funcs' LANGUAGE C; CREATE FUNCTION makepoint(point, point) RETURNS point - AS '_OBJWD_/funcs' LANGUAGE 'c'; + AS '_OBJWD_/funcs' LANGUAGE C; CREATE FUNCTION copytext(text) RETURNS text - AS '_OBJWD_/funcs' LANGUAGE 'c'; + AS '_OBJWD_/funcs' LANGUAGE C; -CREATE FUNCTION c_overpaid(EMP, int4) RETURNS bool - AS '_OBJWD_/funcs' LANGUAGE 'c'; +CREATE FUNCTION c_overpaid(EMP, integer) RETURNS boolean + AS '_OBJWD_/funcs' LANGUAGE C; SELECT add_one(3) AS four; @@ -149,14 +149,14 @@ WHERE name = 'Bill' or name = 'Sam'; -- remove functions that were created in this file -DROP FUNCTION c_overpaid(EMP, int4); +DROP FUNCTION c_overpaid(EMP, integer); DROP FUNCTION copytext(text); -DROP FUNCTION makepoint(point,point); -DROP FUNCTION add_one(int4); +DROP FUNCTION makepoint(point, point); +DROP FUNCTION add_one(integer); --DROP FUNCTION clean_EMP(); DROP FUNCTION high_pay(); DROP FUNCTION new_emp(); -DROP FUNCTION add_em(int4, int4); +DROP FUNCTION add_em(integer, integer); DROP FUNCTION one(); DROP FUNCTION double_salary(EMP); |