mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-30 19:00:29 +08:00
Allow binary I/O of type "void".
void_send is useful for the same reason that void_out doesn't throw error, namely that someone might do "select void_returning_func(...)" from a client that prefers to operate in binary mode. The void_recv function may or may not have any practical use, but we provide it for symmetry. Radosław Smogura
This commit is contained in:
parent
edb382179d
commit
1ab9b012bd
@ -212,6 +212,34 @@ void_out(PG_FUNCTION_ARGS)
|
||||
PG_RETURN_CSTRING(pstrdup(""));
|
||||
}
|
||||
|
||||
/*
|
||||
* void_recv - binary input routine for pseudo-type VOID.
|
||||
*
|
||||
* Note that since we consume no bytes, an attempt to send anything but
|
||||
* an empty string will result in an "invalid message format" error.
|
||||
*/
|
||||
Datum
|
||||
void_recv(PG_FUNCTION_ARGS)
|
||||
{
|
||||
PG_RETURN_VOID();
|
||||
}
|
||||
|
||||
/*
|
||||
* void_send - binary output routine for pseudo-type VOID.
|
||||
*
|
||||
* We allow this so that "SELECT function_returning_void(...)" works
|
||||
* even when binary output is requested.
|
||||
*/
|
||||
Datum
|
||||
void_send(PG_FUNCTION_ARGS)
|
||||
{
|
||||
StringInfoData buf;
|
||||
|
||||
/* send an empty string */
|
||||
pq_begintypsend(&buf);
|
||||
PG_RETURN_BYTEA_P(pq_endtypsend(&buf));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* trigger_in - input routine for pseudo-type TRIGGER.
|
||||
|
@ -53,6 +53,6 @@
|
||||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 201102191
|
||||
#define CATALOG_VERSION_NO 201102221
|
||||
|
||||
#endif
|
||||
|
@ -4226,6 +4226,10 @@ DATA(insert OID = 2502 ( anyarray_recv PGNSP PGUID 12 1 0 0 f f f t f s 1 0
|
||||
DESCR("I/O");
|
||||
DATA(insert OID = 2503 ( anyarray_send PGNSP PGUID 12 1 0 0 f f f t f s 1 0 17 "2277" _null_ _null_ _null_ _null_ anyarray_send _null_ _null_ _null_ ));
|
||||
DESCR("I/O");
|
||||
DATA(insert OID = 3120 ( void_recv PGNSP PGUID 12 1 0 0 f f f t f i 1 0 2278 "2281" _null_ _null_ _null_ _null_ void_recv _null_ _null_ _null_ ));
|
||||
DESCR("I/O");
|
||||
DATA(insert OID = 3121 ( void_send PGNSP PGUID 12 1 0 0 f f f t f i 1 0 17 "2278" _null_ _null_ _null_ _null_ void_send _null_ _null_ _null_ ));
|
||||
DESCR("I/O");
|
||||
|
||||
/* System-view support functions with pretty-print option */
|
||||
DATA(insert OID = 2504 ( pg_get_ruledef PGNSP PGUID 12 1 0 0 f f f t f s 2 0 25 "26 16" _null_ _null_ _null_ _null_ pg_get_ruledef_ext _null_ _null_ _null_ ));
|
||||
|
@ -615,7 +615,7 @@ DATA(insert OID = 2276 ( any PGNSP PGUID 4 t p P f t \054 0 0 0 any_in any_ou
|
||||
#define ANYOID 2276
|
||||
DATA(insert OID = 2277 ( anyarray PGNSP PGUID -1 f p P f t \054 0 0 0 anyarray_in anyarray_out anyarray_recv anyarray_send - - - d x f 0 -1 0 0 _null_ _null_ ));
|
||||
#define ANYARRAYOID 2277
|
||||
DATA(insert OID = 2278 ( void PGNSP PGUID 4 t p P f t \054 0 0 0 void_in void_out - - - - - i p f 0 -1 0 0 _null_ _null_ ));
|
||||
DATA(insert OID = 2278 ( void PGNSP PGUID 4 t p P f t \054 0 0 0 void_in void_out void_recv void_send - - - i p f 0 -1 0 0 _null_ _null_ ));
|
||||
#define VOIDOID 2278
|
||||
DATA(insert OID = 2279 ( trigger PGNSP PGUID 4 t p P f t \054 0 0 0 trigger_in trigger_out - - - - - i p f 0 -1 0 0 _null_ _null_ ));
|
||||
#define TRIGGEROID 2279
|
||||
|
@ -504,6 +504,8 @@ extern Datum anyenum_in(PG_FUNCTION_ARGS);
|
||||
extern Datum anyenum_out(PG_FUNCTION_ARGS);
|
||||
extern Datum void_in(PG_FUNCTION_ARGS);
|
||||
extern Datum void_out(PG_FUNCTION_ARGS);
|
||||
extern Datum void_recv(PG_FUNCTION_ARGS);
|
||||
extern Datum void_send(PG_FUNCTION_ARGS);
|
||||
extern Datum trigger_in(PG_FUNCTION_ARGS);
|
||||
extern Datum trigger_out(PG_FUNCTION_ARGS);
|
||||
extern Datum language_handler_in(PG_FUNCTION_ARGS);
|
||||
|
Loading…
Reference in New Issue
Block a user