mirror of
https://github.com/postgres/postgres.git
synced 2025-12-12 02:37:31 +03:00
Binary send/receive routines for a few basic datatypes --- enough for
testing purposes.
This commit is contained in:
@@ -148,14 +148,18 @@ WHERE p1.typreceive = p2.oid AND p1.typtype in ('b', 'p') AND NOT
|
||||
-----+---------+-----+---------
|
||||
(0 rows)
|
||||
|
||||
-- As of 7.4, this check finds refcursor, which is borrowing
|
||||
-- other types' I/O routines
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
WHERE p1.typreceive = p2.oid AND p1.typtype in ('b', 'p') AND NOT
|
||||
(p1.typelem != 0 AND p1.typlen < 0) AND NOT
|
||||
(p2.prorettype = p1.oid AND NOT p2.proretset);
|
||||
oid | typname | oid | proname
|
||||
-----+---------+-----+---------
|
||||
(0 rows)
|
||||
(p2.prorettype = p1.oid AND NOT p2.proretset)
|
||||
ORDER BY 1;
|
||||
oid | typname | oid | proname
|
||||
------+-----------+------+----------
|
||||
1790 | refcursor | 2414 | textrecv
|
||||
(1 row)
|
||||
|
||||
-- Varlena array types will point to array_recv
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
@@ -168,15 +172,19 @@ WHERE p1.typreceive = p2.oid AND p1.typtype in ('b', 'p') AND
|
||||
(0 rows)
|
||||
|
||||
-- Check for bogus typsend routines
|
||||
-- As of 7.4, this check finds refcursor, which is borrowing
|
||||
-- other types' I/O routines
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
WHERE p1.typsend = p2.oid AND p1.typtype in ('b', 'p') AND NOT
|
||||
((p2.pronargs = 1 AND p2.proargtypes[0] = p1.oid) OR
|
||||
(p2.oid = 'array_send'::regproc AND
|
||||
p1.typelem != 0 AND p1.typlen = -1));
|
||||
oid | typname | oid | proname
|
||||
-----+---------+-----+---------
|
||||
(0 rows)
|
||||
p1.typelem != 0 AND p1.typlen = -1))
|
||||
ORDER BY 1;
|
||||
oid | typname | oid | proname
|
||||
------+-----------+------+----------
|
||||
1790 | refcursor | 2415 | textsend
|
||||
(1 row)
|
||||
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
|
||||
@@ -116,11 +116,14 @@ FROM pg_type AS p1, pg_proc AS p2
|
||||
WHERE p1.typreceive = p2.oid AND p1.typtype in ('b', 'p') AND NOT
|
||||
(p2.pronargs = 1 AND p2.proargtypes[0] = 'internal'::regtype);
|
||||
|
||||
-- As of 7.4, this check finds refcursor, which is borrowing
|
||||
-- other types' I/O routines
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
WHERE p1.typreceive = p2.oid AND p1.typtype in ('b', 'p') AND NOT
|
||||
(p1.typelem != 0 AND p1.typlen < 0) AND NOT
|
||||
(p2.prorettype = p1.oid AND NOT p2.proretset);
|
||||
(p2.prorettype = p1.oid AND NOT p2.proretset)
|
||||
ORDER BY 1;
|
||||
|
||||
-- Varlena array types will point to array_recv
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
@@ -131,12 +134,15 @@ WHERE p1.typreceive = p2.oid AND p1.typtype in ('b', 'p') AND
|
||||
|
||||
-- Check for bogus typsend routines
|
||||
|
||||
-- As of 7.4, this check finds refcursor, which is borrowing
|
||||
-- other types' I/O routines
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
WHERE p1.typsend = p2.oid AND p1.typtype in ('b', 'p') AND NOT
|
||||
((p2.pronargs = 1 AND p2.proargtypes[0] = p1.oid) OR
|
||||
(p2.oid = 'array_send'::regproc AND
|
||||
p1.typelem != 0 AND p1.typlen = -1));
|
||||
p1.typelem != 0 AND p1.typlen = -1))
|
||||
ORDER BY 1;
|
||||
|
||||
SELECT p1.oid, p1.typname, p2.oid, p2.proname
|
||||
FROM pg_type AS p1, pg_proc AS p2
|
||||
|
||||
Reference in New Issue
Block a user