diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-06-05 07:29:25 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-06-05 07:29:25 +0000 |
| commit | 48165ec2262b73c5b81a6caabab66d883d013a83 (patch) | |
| tree | 08e878a2a1e7f76981406ac2b34729a510aecac6 /src/test | |
| parent | c61db5ba2decf2e620f6ce3699d4b702957ed72a (diff) | |
| download | postgresql-48165ec2262b73c5b81a6caabab66d883d013a83.tar.gz | |
Latest round of fmgr updates. All functions with bool,char, or int2
inputs have been converted to newstyle. This should go a long way towards
fixing our portability problems with platforms where char and short
parameters are passed differently from int-width parameters. Still
more to do for the Alpha port however.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/opr_sanity.out | 42 | ||||
| -rw-r--r-- | src/test/regress/input/create_function_2.source | 2 | ||||
| -rw-r--r-- | src/test/regress/output/create_function_2.source | 2 | ||||
| -rw-r--r-- | src/test/regress/regress.c | 24 | ||||
| -rw-r--r-- | src/test/regress/sql/opr_sanity.sql | 42 |
5 files changed, 76 insertions, 36 deletions
diff --git a/src/test/regress/expected/opr_sanity.out b/src/test/regress/expected/opr_sanity.out index 5adf28926c..974575e53b 100644 --- a/src/test/regress/expected/opr_sanity.out +++ b/src/test/regress/expected/opr_sanity.out @@ -46,7 +46,7 @@ WHERE p1.oid != p2.oid AND -----+---------+-----+--------- (0 rows) --- Considering only built-in procs (prolang = 11), look for multiple uses +-- Considering only built-in procs (prolang = 11/12), look for multiple uses -- of the same internal function (ie, matching prosrc fields). It's OK to -- have several entries with different pronames for the same internal function, -- but conflicts in the number of arguments and other critical items should @@ -54,7 +54,9 @@ WHERE p1.oid != p2.oid AND SELECT p1.oid, p1.proname, p2.oid, p2.proname FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proisinh != p2.proisinh OR p1.proistrusted != p2.proistrusted OR p1.proiscachable != p2.proiscachable OR @@ -73,7 +75,9 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.prorettype, p2.prorettype FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.prorettype < p2.prorettype); prorettype | prorettype ------------+------------ @@ -84,7 +88,9 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.proargtypes[0], p2.proargtypes[0] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[0] < p2.proargtypes[0]); proargtypes | proargtypes -------------+------------- @@ -95,7 +101,9 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.proargtypes[1], p2.proargtypes[1] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[1] < p2.proargtypes[1]); proargtypes | proargtypes -------------+------------- @@ -104,7 +112,9 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.proargtypes[2], p2.proargtypes[2] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[2] < p2.proargtypes[2]); proargtypes | proargtypes -------------+------------- @@ -113,7 +123,9 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.proargtypes[3], p2.proargtypes[3] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[3] < p2.proargtypes[3]); proargtypes | proargtypes -------------+------------- @@ -122,7 +134,9 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.proargtypes[4], p2.proargtypes[4] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[4] < p2.proargtypes[4]); proargtypes | proargtypes -------------+------------- @@ -131,7 +145,9 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.proargtypes[5], p2.proargtypes[5] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[5] < p2.proargtypes[5]); proargtypes | proargtypes -------------+------------- @@ -140,7 +156,9 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.proargtypes[6], p2.proargtypes[6] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[6] < p2.proargtypes[6]); proargtypes | proargtypes -------------+------------- @@ -149,7 +167,9 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.proargtypes[7], p2.proargtypes[7] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[7] < p2.proargtypes[7]); proargtypes | proargtypes -------------+------------- diff --git a/src/test/regress/input/create_function_2.source b/src/test/regress/input/create_function_2.source index ebc612261f..a135a8fa9c 100644 --- a/src/test/regress/input/create_function_2.source +++ b/src/test/regress/input/create_function_2.source @@ -35,7 +35,7 @@ CREATE FUNCTION pt_in_widget(point, widget) CREATE FUNCTION overpaid(emp) RETURNS bool AS '_OBJWD_/regress_DLSUFFIX_' - LANGUAGE 'c'; + LANGUAGE 'newC'; CREATE FUNCTION boxarea(box) RETURNS int4 diff --git a/src/test/regress/output/create_function_2.source b/src/test/regress/output/create_function_2.source index 2d86915cc1..f04cf7356c 100644 --- a/src/test/regress/output/create_function_2.source +++ b/src/test/regress/output/create_function_2.source @@ -27,7 +27,7 @@ CREATE FUNCTION pt_in_widget(point, widget) CREATE FUNCTION overpaid(emp) RETURNS bool AS '_OBJWD_/regress_DLSUFFIX_' - LANGUAGE 'c'; + LANGUAGE 'newC'; CREATE FUNCTION boxarea(box) RETURNS int4 AS '_OBJWD_/regress_DLSUFFIX_' diff --git a/src/test/regress/regress.c b/src/test/regress/regress.c index f58b0d9d8c..18fb2d1996 100644 --- a/src/test/regress/regress.c +++ b/src/test/regress/regress.c @@ -1,5 +1,5 @@ /* - * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.37 2000/05/29 01:59:15 tgl Exp $ + * $Header: /cvsroot/pgsql/src/test/regress/regress.c,v 1.38 2000/06/05 07:29:22 tgl Exp $ */ #include <float.h> /* faked on sunos */ @@ -14,14 +14,14 @@ #define RDELIM ')' #define DELIM ',' -typedef void *TUPLE; +typedef TupleTableSlot *TUPLE; extern double *regress_dist_ptpath(Point *pt, PATH *path); extern double *regress_path_dist(PATH *p1, PATH *p2); extern PATH *poly2path(POLYGON *poly); extern Point *interpt_pp(PATH *p1, PATH *p2); extern void regress_lseg_construct(LSEG *lseg, Point *pt1, Point *pt2); -extern char overpaid(TUPLE tuple); +extern Datum overpaid(PG_FUNCTION_ARGS); extern int boxarea(BOX *box); extern char *reverse_name(char *string); @@ -176,16 +176,17 @@ Point *pt2; lseg->m = point_sl(pt1, pt2); } - -char -overpaid(tuple) -TUPLE tuple; +Datum +overpaid(PG_FUNCTION_ARGS) { + TUPLE tuple = (TUPLE) PG_GETARG_POINTER(0); bool isnull; long salary; salary = (long) GetAttributeByName(tuple, "salary", &isnull); - return salary > 699; + if (isnull) + PG_RETURN_NULL(); + PG_RETURN_BOOL(salary > 699); } /* New type "widget" @@ -395,13 +396,12 @@ funny_dup17(PG_FUNCTION_ARGS) if (SPI_processed > 0) { - selected = int4in( - SPI_getvalue( + selected = DatumGetInt32(DirectFunctionCall1(int4in, + CStringGetDatum(SPI_getvalue( SPI_tuptable->vals[0], SPI_tuptable->tupdesc, 1 - ) - ); + )))); } elog(NOTICE, "funny_dup17 (fired %s) on level %3d: %d/%d tuples inserted/selected", diff --git a/src/test/regress/sql/opr_sanity.sql b/src/test/regress/sql/opr_sanity.sql index e378171fd8..d87702f0e3 100644 --- a/src/test/regress/sql/opr_sanity.sql +++ b/src/test/regress/sql/opr_sanity.sql @@ -44,7 +44,7 @@ WHERE p1.oid != p2.oid AND p1.pronargs = p2.pronargs AND p1.proargtypes = p2.proargtypes; --- Considering only built-in procs (prolang = 11), look for multiple uses +-- Considering only built-in procs (prolang = 11/12), look for multiple uses -- of the same internal function (ie, matching prosrc fields). It's OK to -- have several entries with different pronames for the same internal function, -- but conflicts in the number of arguments and other critical items should @@ -53,7 +53,9 @@ WHERE p1.oid != p2.oid AND SELECT p1.oid, p1.proname, p2.oid, p2.proname FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proisinh != p2.proisinh OR p1.proistrusted != p2.proistrusted OR p1.proiscachable != p2.proiscachable OR @@ -70,55 +72,73 @@ WHERE p1.oid != p2.oid AND SELECT DISTINCT p1.prorettype, p2.prorettype FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.prorettype < p2.prorettype); SELECT DISTINCT p1.proargtypes[0], p2.proargtypes[0] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[0] < p2.proargtypes[0]); SELECT DISTINCT p1.proargtypes[1], p2.proargtypes[1] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[1] < p2.proargtypes[1]); SELECT DISTINCT p1.proargtypes[2], p2.proargtypes[2] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[2] < p2.proargtypes[2]); SELECT DISTINCT p1.proargtypes[3], p2.proargtypes[3] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[3] < p2.proargtypes[3]); SELECT DISTINCT p1.proargtypes[4], p2.proargtypes[4] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[4] < p2.proargtypes[4]); SELECT DISTINCT p1.proargtypes[5], p2.proargtypes[5] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[5] < p2.proargtypes[5]); SELECT DISTINCT p1.proargtypes[6], p2.proargtypes[6] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[6] < p2.proargtypes[6]); SELECT DISTINCT p1.proargtypes[7], p2.proargtypes[7] FROM pg_proc AS p1, pg_proc AS p2 WHERE p1.oid != p2.oid AND - p1.prosrc = p2.prosrc AND p1.prolang = 11 AND p2.prolang = 11 AND + p1.prosrc = p2.prosrc AND + (p1.prolang = 11 OR p1.prolang = 12) AND + (p2.prolang = 11 OR p2.prolang = 12) AND (p1.proargtypes[7] < p2.proargtypes[7]); -- **************** pg_operator **************** |
