mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
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.
This commit is contained in:
@ -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
|
||||
-------------+-------------
|
||||
|
@ -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
|
||||
|
@ -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_'
|
||||
|
@ -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",
|
||||
|
@ -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 ****************
|
||||
|
Reference in New Issue
Block a user