summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-06-05 07:29:25 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-06-05 07:29:25 +0000
commit48165ec2262b73c5b81a6caabab66d883d013a83 (patch)
tree08e878a2a1e7f76981406ac2b34729a510aecac6 /src/test
parentc61db5ba2decf2e620f6ce3699d4b702957ed72a (diff)
downloadpostgresql-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.out42
-rw-r--r--src/test/regress/input/create_function_2.source2
-rw-r--r--src/test/regress/output/create_function_2.source2
-rw-r--r--src/test/regress/regress.c24
-rw-r--r--src/test/regress/sql/opr_sanity.sql42
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 ****************