/src/postgres/src/include/libpq/pqformat.h
Line | Count | Source (jump to first uncovered line) |
1 | | /*------------------------------------------------------------------------- |
2 | | * |
3 | | * pqformat.h |
4 | | * Definitions for formatting and parsing frontend/backend messages |
5 | | * |
6 | | * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group |
7 | | * Portions Copyright (c) 1994, Regents of the University of California |
8 | | * |
9 | | * src/include/libpq/pqformat.h |
10 | | * |
11 | | *------------------------------------------------------------------------- |
12 | | */ |
13 | | #ifndef PQFORMAT_H |
14 | | #define PQFORMAT_H |
15 | | |
16 | | #include "lib/stringinfo.h" |
17 | | #include "mb/pg_wchar.h" |
18 | | #include "port/pg_bswap.h" |
19 | | |
20 | | extern void pq_beginmessage(StringInfo buf, char msgtype); |
21 | | extern void pq_beginmessage_reuse(StringInfo buf, char msgtype); |
22 | | extern void pq_endmessage(StringInfo buf); |
23 | | extern void pq_endmessage_reuse(StringInfo buf); |
24 | | |
25 | | extern void pq_sendbytes(StringInfo buf, const void *data, int datalen); |
26 | | extern void pq_sendcountedtext(StringInfo buf, const char *str, int slen); |
27 | | extern void pq_sendtext(StringInfo buf, const char *str, int slen); |
28 | | extern void pq_sendstring(StringInfo buf, const char *str); |
29 | | extern void pq_send_ascii_string(StringInfo buf, const char *str); |
30 | | extern void pq_sendfloat4(StringInfo buf, float4 f); |
31 | | extern void pq_sendfloat8(StringInfo buf, float8 f); |
32 | | |
33 | | /* |
34 | | * Append a [u]int8 to a StringInfo buffer, which already has enough space |
35 | | * preallocated. |
36 | | * |
37 | | * The use of pg_restrict allows the compiler to optimize the code based on |
38 | | * the assumption that buf, buf->len, buf->data and *buf->data don't |
39 | | * overlap. Without the annotation buf->len etc cannot be kept in a register |
40 | | * over subsequent pq_writeintN calls. |
41 | | * |
42 | | * The use of StringInfoData * rather than StringInfo is due to MSVC being |
43 | | * overly picky and demanding a * before a restrict. |
44 | | */ |
45 | | static inline void |
46 | | pq_writeint8(StringInfoData *pg_restrict buf, uint8 i) |
47 | 0 | { |
48 | 0 | uint8 ni = i; |
49 | |
|
50 | 0 | Assert(buf->len + (int) sizeof(uint8) <= buf->maxlen); |
51 | 0 | memcpy((char *pg_restrict) (buf->data + buf->len), &ni, sizeof(uint8)); |
52 | 0 | buf->len += sizeof(uint8); |
53 | 0 | } Unexecuted instantiation: printsimple.c:pq_writeint8 Unexecuted instantiation: printtup.c:pq_writeint8 Unexecuted instantiation: parallel.c:pq_writeint8 Unexecuted instantiation: async.c:pq_writeint8 Unexecuted instantiation: copyfromparse.c:pq_writeint8 Unexecuted instantiation: copyto.c:pq_writeint8 Unexecuted instantiation: explain.c:pq_writeint8 Unexecuted instantiation: explain_dr.c:pq_writeint8 Unexecuted instantiation: auth-sasl.c:pq_writeint8 Unexecuted instantiation: auth.c:pq_writeint8 Unexecuted instantiation: pqformat.c:pq_writeint8 Unexecuted instantiation: pqmq.c:pq_writeint8 Unexecuted instantiation: applyparallelworker.c:pq_writeint8 Unexecuted instantiation: proto.c:pq_writeint8 Unexecuted instantiation: worker.c:pq_writeint8 Unexecuted instantiation: walreceiver.c:pq_writeint8 Unexecuted instantiation: walsender.c:pq_writeint8 Unexecuted instantiation: basebackup_copy.c:pq_writeint8 Unexecuted instantiation: backend_startup.c:pq_writeint8 Unexecuted instantiation: dest.c:pq_writeint8 Unexecuted instantiation: fastpath.c:pq_writeint8 Unexecuted instantiation: postgres.c:pq_writeint8 Unexecuted instantiation: backend_progress.c:pq_writeint8 Unexecuted instantiation: array_userfuncs.c:pq_writeint8 Unexecuted instantiation: arrayfuncs.c:pq_writeint8 Unexecuted instantiation: bool.c:pq_writeint8 Unexecuted instantiation: cash.c:pq_writeint8 Unexecuted instantiation: char.c:pq_writeint8 Unexecuted instantiation: date.c:pq_writeint8 Unexecuted instantiation: enum.c:pq_writeint8 Unexecuted instantiation: float.c:pq_writeint8 Unexecuted instantiation: geo_ops.c:pq_writeint8 Unexecuted instantiation: int.c:pq_writeint8 Unexecuted instantiation: int8.c:pq_writeint8 Unexecuted instantiation: json.c:pq_writeint8 Unexecuted instantiation: jsonb.c:pq_writeint8 Unexecuted instantiation: jsonpath.c:pq_writeint8 Unexecuted instantiation: mac.c:pq_writeint8 Unexecuted instantiation: mac8.c:pq_writeint8 Unexecuted instantiation: multirangetypes.c:pq_writeint8 Unexecuted instantiation: name.c:pq_writeint8 Unexecuted instantiation: network.c:pq_writeint8 Unexecuted instantiation: numeric.c:pq_writeint8 Unexecuted instantiation: oid.c:pq_writeint8 Unexecuted instantiation: pg_lsn.c:pq_writeint8 Unexecuted instantiation: pseudotypes.c:pq_writeint8 Unexecuted instantiation: rangetypes.c:pq_writeint8 Unexecuted instantiation: rowtypes.c:pq_writeint8 Unexecuted instantiation: tid.c:pq_writeint8 Unexecuted instantiation: timestamp.c:pq_writeint8 Unexecuted instantiation: tsquery.c:pq_writeint8 Unexecuted instantiation: tsvector.c:pq_writeint8 Unexecuted instantiation: uuid.c:pq_writeint8 Unexecuted instantiation: varbit.c:pq_writeint8 Unexecuted instantiation: varchar.c:pq_writeint8 Unexecuted instantiation: varlena.c:pq_writeint8 Unexecuted instantiation: xid.c:pq_writeint8 Unexecuted instantiation: xid8funcs.c:pq_writeint8 Unexecuted instantiation: xml.c:pq_writeint8 Unexecuted instantiation: elog.c:pq_writeint8 Unexecuted instantiation: guc.c:pq_writeint8 |
54 | | |
55 | | /* |
56 | | * Append a [u]int16 to a StringInfo buffer, which already has enough space |
57 | | * preallocated. |
58 | | */ |
59 | | static inline void |
60 | | pq_writeint16(StringInfoData *pg_restrict buf, uint16 i) |
61 | 0 | { |
62 | 0 | uint16 ni = pg_hton16(i); |
63 | |
|
64 | 0 | Assert(buf->len + (int) sizeof(uint16) <= buf->maxlen); |
65 | 0 | memcpy((char *pg_restrict) (buf->data + buf->len), &ni, sizeof(uint16)); |
66 | 0 | buf->len += sizeof(uint16); |
67 | 0 | } Unexecuted instantiation: printsimple.c:pq_writeint16 Unexecuted instantiation: printtup.c:pq_writeint16 Unexecuted instantiation: parallel.c:pq_writeint16 Unexecuted instantiation: async.c:pq_writeint16 Unexecuted instantiation: copyfromparse.c:pq_writeint16 Unexecuted instantiation: copyto.c:pq_writeint16 Unexecuted instantiation: explain.c:pq_writeint16 Unexecuted instantiation: explain_dr.c:pq_writeint16 Unexecuted instantiation: auth-sasl.c:pq_writeint16 Unexecuted instantiation: auth.c:pq_writeint16 Unexecuted instantiation: pqformat.c:pq_writeint16 Unexecuted instantiation: pqmq.c:pq_writeint16 Unexecuted instantiation: applyparallelworker.c:pq_writeint16 Unexecuted instantiation: proto.c:pq_writeint16 Unexecuted instantiation: worker.c:pq_writeint16 Unexecuted instantiation: walreceiver.c:pq_writeint16 Unexecuted instantiation: walsender.c:pq_writeint16 Unexecuted instantiation: basebackup_copy.c:pq_writeint16 Unexecuted instantiation: backend_startup.c:pq_writeint16 Unexecuted instantiation: dest.c:pq_writeint16 Unexecuted instantiation: fastpath.c:pq_writeint16 Unexecuted instantiation: postgres.c:pq_writeint16 Unexecuted instantiation: backend_progress.c:pq_writeint16 Unexecuted instantiation: array_userfuncs.c:pq_writeint16 Unexecuted instantiation: arrayfuncs.c:pq_writeint16 Unexecuted instantiation: bool.c:pq_writeint16 Unexecuted instantiation: cash.c:pq_writeint16 Unexecuted instantiation: char.c:pq_writeint16 Unexecuted instantiation: date.c:pq_writeint16 Unexecuted instantiation: enum.c:pq_writeint16 Unexecuted instantiation: float.c:pq_writeint16 Unexecuted instantiation: geo_ops.c:pq_writeint16 Unexecuted instantiation: int.c:pq_writeint16 Unexecuted instantiation: int8.c:pq_writeint16 Unexecuted instantiation: json.c:pq_writeint16 Unexecuted instantiation: jsonb.c:pq_writeint16 Unexecuted instantiation: jsonpath.c:pq_writeint16 Unexecuted instantiation: mac.c:pq_writeint16 Unexecuted instantiation: mac8.c:pq_writeint16 Unexecuted instantiation: multirangetypes.c:pq_writeint16 Unexecuted instantiation: name.c:pq_writeint16 Unexecuted instantiation: network.c:pq_writeint16 Unexecuted instantiation: numeric.c:pq_writeint16 Unexecuted instantiation: oid.c:pq_writeint16 Unexecuted instantiation: pg_lsn.c:pq_writeint16 Unexecuted instantiation: pseudotypes.c:pq_writeint16 Unexecuted instantiation: rangetypes.c:pq_writeint16 Unexecuted instantiation: rowtypes.c:pq_writeint16 Unexecuted instantiation: tid.c:pq_writeint16 Unexecuted instantiation: timestamp.c:pq_writeint16 Unexecuted instantiation: tsquery.c:pq_writeint16 Unexecuted instantiation: tsvector.c:pq_writeint16 Unexecuted instantiation: uuid.c:pq_writeint16 Unexecuted instantiation: varbit.c:pq_writeint16 Unexecuted instantiation: varchar.c:pq_writeint16 Unexecuted instantiation: varlena.c:pq_writeint16 Unexecuted instantiation: xid.c:pq_writeint16 Unexecuted instantiation: xid8funcs.c:pq_writeint16 Unexecuted instantiation: xml.c:pq_writeint16 Unexecuted instantiation: elog.c:pq_writeint16 Unexecuted instantiation: guc.c:pq_writeint16 |
68 | | |
69 | | /* |
70 | | * Append a [u]int32 to a StringInfo buffer, which already has enough space |
71 | | * preallocated. |
72 | | */ |
73 | | static inline void |
74 | | pq_writeint32(StringInfoData *pg_restrict buf, uint32 i) |
75 | 0 | { |
76 | 0 | uint32 ni = pg_hton32(i); |
77 | |
|
78 | 0 | Assert(buf->len + (int) sizeof(uint32) <= buf->maxlen); |
79 | 0 | memcpy((char *pg_restrict) (buf->data + buf->len), &ni, sizeof(uint32)); |
80 | 0 | buf->len += sizeof(uint32); |
81 | 0 | } Unexecuted instantiation: printsimple.c:pq_writeint32 Unexecuted instantiation: printtup.c:pq_writeint32 Unexecuted instantiation: parallel.c:pq_writeint32 Unexecuted instantiation: async.c:pq_writeint32 Unexecuted instantiation: copyfromparse.c:pq_writeint32 Unexecuted instantiation: copyto.c:pq_writeint32 Unexecuted instantiation: explain.c:pq_writeint32 Unexecuted instantiation: explain_dr.c:pq_writeint32 Unexecuted instantiation: auth-sasl.c:pq_writeint32 Unexecuted instantiation: auth.c:pq_writeint32 Unexecuted instantiation: pqformat.c:pq_writeint32 Unexecuted instantiation: pqmq.c:pq_writeint32 Unexecuted instantiation: applyparallelworker.c:pq_writeint32 Unexecuted instantiation: proto.c:pq_writeint32 Unexecuted instantiation: worker.c:pq_writeint32 Unexecuted instantiation: walreceiver.c:pq_writeint32 Unexecuted instantiation: walsender.c:pq_writeint32 Unexecuted instantiation: basebackup_copy.c:pq_writeint32 Unexecuted instantiation: backend_startup.c:pq_writeint32 Unexecuted instantiation: dest.c:pq_writeint32 Unexecuted instantiation: fastpath.c:pq_writeint32 Unexecuted instantiation: postgres.c:pq_writeint32 Unexecuted instantiation: backend_progress.c:pq_writeint32 Unexecuted instantiation: array_userfuncs.c:pq_writeint32 Unexecuted instantiation: arrayfuncs.c:pq_writeint32 Unexecuted instantiation: bool.c:pq_writeint32 Unexecuted instantiation: cash.c:pq_writeint32 Unexecuted instantiation: char.c:pq_writeint32 Unexecuted instantiation: date.c:pq_writeint32 Unexecuted instantiation: enum.c:pq_writeint32 Unexecuted instantiation: float.c:pq_writeint32 Unexecuted instantiation: geo_ops.c:pq_writeint32 Unexecuted instantiation: int.c:pq_writeint32 Unexecuted instantiation: int8.c:pq_writeint32 Unexecuted instantiation: json.c:pq_writeint32 Unexecuted instantiation: jsonb.c:pq_writeint32 Unexecuted instantiation: jsonpath.c:pq_writeint32 Unexecuted instantiation: mac.c:pq_writeint32 Unexecuted instantiation: mac8.c:pq_writeint32 Unexecuted instantiation: multirangetypes.c:pq_writeint32 Unexecuted instantiation: name.c:pq_writeint32 Unexecuted instantiation: network.c:pq_writeint32 Unexecuted instantiation: numeric.c:pq_writeint32 Unexecuted instantiation: oid.c:pq_writeint32 Unexecuted instantiation: pg_lsn.c:pq_writeint32 Unexecuted instantiation: pseudotypes.c:pq_writeint32 Unexecuted instantiation: rangetypes.c:pq_writeint32 Unexecuted instantiation: rowtypes.c:pq_writeint32 Unexecuted instantiation: tid.c:pq_writeint32 Unexecuted instantiation: timestamp.c:pq_writeint32 Unexecuted instantiation: tsquery.c:pq_writeint32 Unexecuted instantiation: tsvector.c:pq_writeint32 Unexecuted instantiation: uuid.c:pq_writeint32 Unexecuted instantiation: varbit.c:pq_writeint32 Unexecuted instantiation: varchar.c:pq_writeint32 Unexecuted instantiation: varlena.c:pq_writeint32 Unexecuted instantiation: xid.c:pq_writeint32 Unexecuted instantiation: xid8funcs.c:pq_writeint32 Unexecuted instantiation: xml.c:pq_writeint32 Unexecuted instantiation: elog.c:pq_writeint32 Unexecuted instantiation: guc.c:pq_writeint32 |
82 | | |
83 | | /* |
84 | | * Append a [u]int64 to a StringInfo buffer, which already has enough space |
85 | | * preallocated. |
86 | | */ |
87 | | static inline void |
88 | | pq_writeint64(StringInfoData *pg_restrict buf, uint64 i) |
89 | 0 | { |
90 | 0 | uint64 ni = pg_hton64(i); |
91 | |
|
92 | 0 | Assert(buf->len + (int) sizeof(uint64) <= buf->maxlen); |
93 | 0 | memcpy((char *pg_restrict) (buf->data + buf->len), &ni, sizeof(uint64)); |
94 | 0 | buf->len += sizeof(uint64); |
95 | 0 | } Unexecuted instantiation: printsimple.c:pq_writeint64 Unexecuted instantiation: printtup.c:pq_writeint64 Unexecuted instantiation: parallel.c:pq_writeint64 Unexecuted instantiation: async.c:pq_writeint64 Unexecuted instantiation: copyfromparse.c:pq_writeint64 Unexecuted instantiation: copyto.c:pq_writeint64 Unexecuted instantiation: explain.c:pq_writeint64 Unexecuted instantiation: explain_dr.c:pq_writeint64 Unexecuted instantiation: auth-sasl.c:pq_writeint64 Unexecuted instantiation: auth.c:pq_writeint64 Unexecuted instantiation: pqformat.c:pq_writeint64 Unexecuted instantiation: pqmq.c:pq_writeint64 Unexecuted instantiation: applyparallelworker.c:pq_writeint64 Unexecuted instantiation: proto.c:pq_writeint64 Unexecuted instantiation: worker.c:pq_writeint64 Unexecuted instantiation: walreceiver.c:pq_writeint64 Unexecuted instantiation: walsender.c:pq_writeint64 Unexecuted instantiation: basebackup_copy.c:pq_writeint64 Unexecuted instantiation: backend_startup.c:pq_writeint64 Unexecuted instantiation: dest.c:pq_writeint64 Unexecuted instantiation: fastpath.c:pq_writeint64 Unexecuted instantiation: postgres.c:pq_writeint64 Unexecuted instantiation: backend_progress.c:pq_writeint64 Unexecuted instantiation: array_userfuncs.c:pq_writeint64 Unexecuted instantiation: arrayfuncs.c:pq_writeint64 Unexecuted instantiation: bool.c:pq_writeint64 Unexecuted instantiation: cash.c:pq_writeint64 Unexecuted instantiation: char.c:pq_writeint64 Unexecuted instantiation: date.c:pq_writeint64 Unexecuted instantiation: enum.c:pq_writeint64 Unexecuted instantiation: float.c:pq_writeint64 Unexecuted instantiation: geo_ops.c:pq_writeint64 Unexecuted instantiation: int.c:pq_writeint64 Unexecuted instantiation: int8.c:pq_writeint64 Unexecuted instantiation: json.c:pq_writeint64 Unexecuted instantiation: jsonb.c:pq_writeint64 Unexecuted instantiation: jsonpath.c:pq_writeint64 Unexecuted instantiation: mac.c:pq_writeint64 Unexecuted instantiation: mac8.c:pq_writeint64 Unexecuted instantiation: multirangetypes.c:pq_writeint64 Unexecuted instantiation: name.c:pq_writeint64 Unexecuted instantiation: network.c:pq_writeint64 Unexecuted instantiation: numeric.c:pq_writeint64 Unexecuted instantiation: oid.c:pq_writeint64 Unexecuted instantiation: pg_lsn.c:pq_writeint64 Unexecuted instantiation: pseudotypes.c:pq_writeint64 Unexecuted instantiation: rangetypes.c:pq_writeint64 Unexecuted instantiation: rowtypes.c:pq_writeint64 Unexecuted instantiation: tid.c:pq_writeint64 Unexecuted instantiation: timestamp.c:pq_writeint64 Unexecuted instantiation: tsquery.c:pq_writeint64 Unexecuted instantiation: tsvector.c:pq_writeint64 Unexecuted instantiation: uuid.c:pq_writeint64 Unexecuted instantiation: varbit.c:pq_writeint64 Unexecuted instantiation: varchar.c:pq_writeint64 Unexecuted instantiation: varlena.c:pq_writeint64 Unexecuted instantiation: xid.c:pq_writeint64 Unexecuted instantiation: xid8funcs.c:pq_writeint64 Unexecuted instantiation: xml.c:pq_writeint64 Unexecuted instantiation: elog.c:pq_writeint64 Unexecuted instantiation: guc.c:pq_writeint64 |
96 | | |
97 | | /* |
98 | | * Append a null-terminated text string (with conversion) to a buffer with |
99 | | * preallocated space. |
100 | | * |
101 | | * NB: The pre-allocated space needs to be sufficient for the string after |
102 | | * converting to client encoding. |
103 | | * |
104 | | * NB: passed text string must be null-terminated, and so is the data |
105 | | * sent to the frontend. |
106 | | */ |
107 | | static inline void |
108 | | pq_writestring(StringInfoData *pg_restrict buf, const char *pg_restrict str) |
109 | 0 | { |
110 | 0 | int slen = strlen(str); |
111 | 0 | char *p; |
112 | |
|
113 | 0 | p = pg_server_to_client(str, slen); |
114 | 0 | if (p != str) /* actual conversion has been done? */ |
115 | 0 | slen = strlen(p); |
116 | |
|
117 | 0 | Assert(buf->len + slen + 1 <= buf->maxlen); |
118 | |
|
119 | 0 | memcpy(((char *pg_restrict) buf->data + buf->len), p, slen + 1); |
120 | 0 | buf->len += slen + 1; |
121 | |
|
122 | 0 | if (p != str) |
123 | 0 | pfree(p); |
124 | 0 | } Unexecuted instantiation: printsimple.c:pq_writestring Unexecuted instantiation: printtup.c:pq_writestring Unexecuted instantiation: parallel.c:pq_writestring Unexecuted instantiation: async.c:pq_writestring Unexecuted instantiation: copyfromparse.c:pq_writestring Unexecuted instantiation: copyto.c:pq_writestring Unexecuted instantiation: explain.c:pq_writestring Unexecuted instantiation: explain_dr.c:pq_writestring Unexecuted instantiation: auth-sasl.c:pq_writestring Unexecuted instantiation: auth.c:pq_writestring Unexecuted instantiation: pqformat.c:pq_writestring Unexecuted instantiation: pqmq.c:pq_writestring Unexecuted instantiation: applyparallelworker.c:pq_writestring Unexecuted instantiation: proto.c:pq_writestring Unexecuted instantiation: worker.c:pq_writestring Unexecuted instantiation: walreceiver.c:pq_writestring Unexecuted instantiation: walsender.c:pq_writestring Unexecuted instantiation: basebackup_copy.c:pq_writestring Unexecuted instantiation: backend_startup.c:pq_writestring Unexecuted instantiation: dest.c:pq_writestring Unexecuted instantiation: fastpath.c:pq_writestring Unexecuted instantiation: postgres.c:pq_writestring Unexecuted instantiation: backend_progress.c:pq_writestring Unexecuted instantiation: array_userfuncs.c:pq_writestring Unexecuted instantiation: arrayfuncs.c:pq_writestring Unexecuted instantiation: bool.c:pq_writestring Unexecuted instantiation: cash.c:pq_writestring Unexecuted instantiation: char.c:pq_writestring Unexecuted instantiation: date.c:pq_writestring Unexecuted instantiation: enum.c:pq_writestring Unexecuted instantiation: float.c:pq_writestring Unexecuted instantiation: geo_ops.c:pq_writestring Unexecuted instantiation: int.c:pq_writestring Unexecuted instantiation: int8.c:pq_writestring Unexecuted instantiation: json.c:pq_writestring Unexecuted instantiation: jsonb.c:pq_writestring Unexecuted instantiation: jsonpath.c:pq_writestring Unexecuted instantiation: mac.c:pq_writestring Unexecuted instantiation: mac8.c:pq_writestring Unexecuted instantiation: multirangetypes.c:pq_writestring Unexecuted instantiation: name.c:pq_writestring Unexecuted instantiation: network.c:pq_writestring Unexecuted instantiation: numeric.c:pq_writestring Unexecuted instantiation: oid.c:pq_writestring Unexecuted instantiation: pg_lsn.c:pq_writestring Unexecuted instantiation: pseudotypes.c:pq_writestring Unexecuted instantiation: rangetypes.c:pq_writestring Unexecuted instantiation: rowtypes.c:pq_writestring Unexecuted instantiation: tid.c:pq_writestring Unexecuted instantiation: timestamp.c:pq_writestring Unexecuted instantiation: tsquery.c:pq_writestring Unexecuted instantiation: tsvector.c:pq_writestring Unexecuted instantiation: uuid.c:pq_writestring Unexecuted instantiation: varbit.c:pq_writestring Unexecuted instantiation: varchar.c:pq_writestring Unexecuted instantiation: varlena.c:pq_writestring Unexecuted instantiation: xid.c:pq_writestring Unexecuted instantiation: xid8funcs.c:pq_writestring Unexecuted instantiation: xml.c:pq_writestring Unexecuted instantiation: elog.c:pq_writestring Unexecuted instantiation: guc.c:pq_writestring |
125 | | |
126 | | /* append a binary [u]int8 to a StringInfo buffer */ |
127 | | static inline void |
128 | | pq_sendint8(StringInfo buf, uint8 i) |
129 | 0 | { |
130 | 0 | enlargeStringInfo(buf, sizeof(uint8)); |
131 | 0 | pq_writeint8(buf, i); |
132 | 0 | } Unexecuted instantiation: printsimple.c:pq_sendint8 Unexecuted instantiation: printtup.c:pq_sendint8 Unexecuted instantiation: parallel.c:pq_sendint8 Unexecuted instantiation: async.c:pq_sendint8 Unexecuted instantiation: copyfromparse.c:pq_sendint8 Unexecuted instantiation: copyto.c:pq_sendint8 Unexecuted instantiation: explain.c:pq_sendint8 Unexecuted instantiation: explain_dr.c:pq_sendint8 Unexecuted instantiation: auth-sasl.c:pq_sendint8 Unexecuted instantiation: auth.c:pq_sendint8 Unexecuted instantiation: pqformat.c:pq_sendint8 Unexecuted instantiation: pqmq.c:pq_sendint8 Unexecuted instantiation: applyparallelworker.c:pq_sendint8 Unexecuted instantiation: proto.c:pq_sendint8 Unexecuted instantiation: worker.c:pq_sendint8 Unexecuted instantiation: walreceiver.c:pq_sendint8 Unexecuted instantiation: walsender.c:pq_sendint8 Unexecuted instantiation: basebackup_copy.c:pq_sendint8 Unexecuted instantiation: backend_startup.c:pq_sendint8 Unexecuted instantiation: dest.c:pq_sendint8 Unexecuted instantiation: fastpath.c:pq_sendint8 Unexecuted instantiation: postgres.c:pq_sendint8 Unexecuted instantiation: backend_progress.c:pq_sendint8 Unexecuted instantiation: array_userfuncs.c:pq_sendint8 Unexecuted instantiation: arrayfuncs.c:pq_sendint8 Unexecuted instantiation: bool.c:pq_sendint8 Unexecuted instantiation: cash.c:pq_sendint8 Unexecuted instantiation: char.c:pq_sendint8 Unexecuted instantiation: date.c:pq_sendint8 Unexecuted instantiation: enum.c:pq_sendint8 Unexecuted instantiation: float.c:pq_sendint8 Unexecuted instantiation: geo_ops.c:pq_sendint8 Unexecuted instantiation: int.c:pq_sendint8 Unexecuted instantiation: int8.c:pq_sendint8 Unexecuted instantiation: json.c:pq_sendint8 Unexecuted instantiation: jsonb.c:pq_sendint8 Unexecuted instantiation: jsonpath.c:pq_sendint8 Unexecuted instantiation: mac.c:pq_sendint8 Unexecuted instantiation: mac8.c:pq_sendint8 Unexecuted instantiation: multirangetypes.c:pq_sendint8 Unexecuted instantiation: name.c:pq_sendint8 Unexecuted instantiation: network.c:pq_sendint8 Unexecuted instantiation: numeric.c:pq_sendint8 Unexecuted instantiation: oid.c:pq_sendint8 Unexecuted instantiation: pg_lsn.c:pq_sendint8 Unexecuted instantiation: pseudotypes.c:pq_sendint8 Unexecuted instantiation: rangetypes.c:pq_sendint8 Unexecuted instantiation: rowtypes.c:pq_sendint8 Unexecuted instantiation: tid.c:pq_sendint8 Unexecuted instantiation: timestamp.c:pq_sendint8 Unexecuted instantiation: tsquery.c:pq_sendint8 Unexecuted instantiation: tsvector.c:pq_sendint8 Unexecuted instantiation: uuid.c:pq_sendint8 Unexecuted instantiation: varbit.c:pq_sendint8 Unexecuted instantiation: varchar.c:pq_sendint8 Unexecuted instantiation: varlena.c:pq_sendint8 Unexecuted instantiation: xid.c:pq_sendint8 Unexecuted instantiation: xid8funcs.c:pq_sendint8 Unexecuted instantiation: xml.c:pq_sendint8 Unexecuted instantiation: elog.c:pq_sendint8 Unexecuted instantiation: guc.c:pq_sendint8 |
133 | | |
134 | | /* append a binary [u]int16 to a StringInfo buffer */ |
135 | | static inline void |
136 | | pq_sendint16(StringInfo buf, uint16 i) |
137 | 0 | { |
138 | 0 | enlargeStringInfo(buf, sizeof(uint16)); |
139 | 0 | pq_writeint16(buf, i); |
140 | 0 | } Unexecuted instantiation: printsimple.c:pq_sendint16 Unexecuted instantiation: printtup.c:pq_sendint16 Unexecuted instantiation: parallel.c:pq_sendint16 Unexecuted instantiation: async.c:pq_sendint16 Unexecuted instantiation: copyfromparse.c:pq_sendint16 Unexecuted instantiation: copyto.c:pq_sendint16 Unexecuted instantiation: explain.c:pq_sendint16 Unexecuted instantiation: explain_dr.c:pq_sendint16 Unexecuted instantiation: auth-sasl.c:pq_sendint16 Unexecuted instantiation: auth.c:pq_sendint16 Unexecuted instantiation: pqformat.c:pq_sendint16 Unexecuted instantiation: pqmq.c:pq_sendint16 Unexecuted instantiation: applyparallelworker.c:pq_sendint16 Unexecuted instantiation: proto.c:pq_sendint16 Unexecuted instantiation: worker.c:pq_sendint16 Unexecuted instantiation: walreceiver.c:pq_sendint16 Unexecuted instantiation: walsender.c:pq_sendint16 Unexecuted instantiation: basebackup_copy.c:pq_sendint16 Unexecuted instantiation: backend_startup.c:pq_sendint16 Unexecuted instantiation: dest.c:pq_sendint16 Unexecuted instantiation: fastpath.c:pq_sendint16 Unexecuted instantiation: postgres.c:pq_sendint16 Unexecuted instantiation: backend_progress.c:pq_sendint16 Unexecuted instantiation: array_userfuncs.c:pq_sendint16 Unexecuted instantiation: arrayfuncs.c:pq_sendint16 Unexecuted instantiation: bool.c:pq_sendint16 Unexecuted instantiation: cash.c:pq_sendint16 Unexecuted instantiation: char.c:pq_sendint16 Unexecuted instantiation: date.c:pq_sendint16 Unexecuted instantiation: enum.c:pq_sendint16 Unexecuted instantiation: float.c:pq_sendint16 Unexecuted instantiation: geo_ops.c:pq_sendint16 Unexecuted instantiation: int.c:pq_sendint16 Unexecuted instantiation: int8.c:pq_sendint16 Unexecuted instantiation: json.c:pq_sendint16 Unexecuted instantiation: jsonb.c:pq_sendint16 Unexecuted instantiation: jsonpath.c:pq_sendint16 Unexecuted instantiation: mac.c:pq_sendint16 Unexecuted instantiation: mac8.c:pq_sendint16 Unexecuted instantiation: multirangetypes.c:pq_sendint16 Unexecuted instantiation: name.c:pq_sendint16 Unexecuted instantiation: network.c:pq_sendint16 Unexecuted instantiation: numeric.c:pq_sendint16 Unexecuted instantiation: oid.c:pq_sendint16 Unexecuted instantiation: pg_lsn.c:pq_sendint16 Unexecuted instantiation: pseudotypes.c:pq_sendint16 Unexecuted instantiation: rangetypes.c:pq_sendint16 Unexecuted instantiation: rowtypes.c:pq_sendint16 Unexecuted instantiation: tid.c:pq_sendint16 Unexecuted instantiation: timestamp.c:pq_sendint16 Unexecuted instantiation: tsquery.c:pq_sendint16 Unexecuted instantiation: tsvector.c:pq_sendint16 Unexecuted instantiation: uuid.c:pq_sendint16 Unexecuted instantiation: varbit.c:pq_sendint16 Unexecuted instantiation: varchar.c:pq_sendint16 Unexecuted instantiation: varlena.c:pq_sendint16 Unexecuted instantiation: xid.c:pq_sendint16 Unexecuted instantiation: xid8funcs.c:pq_sendint16 Unexecuted instantiation: xml.c:pq_sendint16 Unexecuted instantiation: elog.c:pq_sendint16 Unexecuted instantiation: guc.c:pq_sendint16 |
141 | | |
142 | | /* append a binary [u]int32 to a StringInfo buffer */ |
143 | | static inline void |
144 | | pq_sendint32(StringInfo buf, uint32 i) |
145 | 0 | { |
146 | 0 | enlargeStringInfo(buf, sizeof(uint32)); |
147 | 0 | pq_writeint32(buf, i); |
148 | 0 | } Unexecuted instantiation: printsimple.c:pq_sendint32 Unexecuted instantiation: printtup.c:pq_sendint32 Unexecuted instantiation: parallel.c:pq_sendint32 Unexecuted instantiation: async.c:pq_sendint32 Unexecuted instantiation: copyfromparse.c:pq_sendint32 Unexecuted instantiation: copyto.c:pq_sendint32 Unexecuted instantiation: explain.c:pq_sendint32 Unexecuted instantiation: explain_dr.c:pq_sendint32 Unexecuted instantiation: auth-sasl.c:pq_sendint32 Unexecuted instantiation: auth.c:pq_sendint32 Unexecuted instantiation: pqformat.c:pq_sendint32 Unexecuted instantiation: pqmq.c:pq_sendint32 Unexecuted instantiation: applyparallelworker.c:pq_sendint32 Unexecuted instantiation: proto.c:pq_sendint32 Unexecuted instantiation: worker.c:pq_sendint32 Unexecuted instantiation: walreceiver.c:pq_sendint32 Unexecuted instantiation: walsender.c:pq_sendint32 Unexecuted instantiation: basebackup_copy.c:pq_sendint32 Unexecuted instantiation: backend_startup.c:pq_sendint32 Unexecuted instantiation: dest.c:pq_sendint32 Unexecuted instantiation: fastpath.c:pq_sendint32 Unexecuted instantiation: postgres.c:pq_sendint32 Unexecuted instantiation: backend_progress.c:pq_sendint32 Unexecuted instantiation: array_userfuncs.c:pq_sendint32 Unexecuted instantiation: arrayfuncs.c:pq_sendint32 Unexecuted instantiation: bool.c:pq_sendint32 Unexecuted instantiation: cash.c:pq_sendint32 Unexecuted instantiation: char.c:pq_sendint32 Unexecuted instantiation: date.c:pq_sendint32 Unexecuted instantiation: enum.c:pq_sendint32 Unexecuted instantiation: float.c:pq_sendint32 Unexecuted instantiation: geo_ops.c:pq_sendint32 Unexecuted instantiation: int.c:pq_sendint32 Unexecuted instantiation: int8.c:pq_sendint32 Unexecuted instantiation: json.c:pq_sendint32 Unexecuted instantiation: jsonb.c:pq_sendint32 Unexecuted instantiation: jsonpath.c:pq_sendint32 Unexecuted instantiation: mac.c:pq_sendint32 Unexecuted instantiation: mac8.c:pq_sendint32 Unexecuted instantiation: multirangetypes.c:pq_sendint32 Unexecuted instantiation: name.c:pq_sendint32 Unexecuted instantiation: network.c:pq_sendint32 Unexecuted instantiation: numeric.c:pq_sendint32 Unexecuted instantiation: oid.c:pq_sendint32 Unexecuted instantiation: pg_lsn.c:pq_sendint32 Unexecuted instantiation: pseudotypes.c:pq_sendint32 Unexecuted instantiation: rangetypes.c:pq_sendint32 Unexecuted instantiation: rowtypes.c:pq_sendint32 Unexecuted instantiation: tid.c:pq_sendint32 Unexecuted instantiation: timestamp.c:pq_sendint32 Unexecuted instantiation: tsquery.c:pq_sendint32 Unexecuted instantiation: tsvector.c:pq_sendint32 Unexecuted instantiation: uuid.c:pq_sendint32 Unexecuted instantiation: varbit.c:pq_sendint32 Unexecuted instantiation: varchar.c:pq_sendint32 Unexecuted instantiation: varlena.c:pq_sendint32 Unexecuted instantiation: xid.c:pq_sendint32 Unexecuted instantiation: xid8funcs.c:pq_sendint32 Unexecuted instantiation: xml.c:pq_sendint32 Unexecuted instantiation: elog.c:pq_sendint32 Unexecuted instantiation: guc.c:pq_sendint32 |
149 | | |
150 | | /* append a binary [u]int64 to a StringInfo buffer */ |
151 | | static inline void |
152 | | pq_sendint64(StringInfo buf, uint64 i) |
153 | 0 | { |
154 | 0 | enlargeStringInfo(buf, sizeof(uint64)); |
155 | 0 | pq_writeint64(buf, i); |
156 | 0 | } Unexecuted instantiation: printsimple.c:pq_sendint64 Unexecuted instantiation: printtup.c:pq_sendint64 Unexecuted instantiation: parallel.c:pq_sendint64 Unexecuted instantiation: async.c:pq_sendint64 Unexecuted instantiation: copyfromparse.c:pq_sendint64 Unexecuted instantiation: copyto.c:pq_sendint64 Unexecuted instantiation: explain.c:pq_sendint64 Unexecuted instantiation: explain_dr.c:pq_sendint64 Unexecuted instantiation: auth-sasl.c:pq_sendint64 Unexecuted instantiation: auth.c:pq_sendint64 Unexecuted instantiation: pqformat.c:pq_sendint64 Unexecuted instantiation: pqmq.c:pq_sendint64 Unexecuted instantiation: applyparallelworker.c:pq_sendint64 Unexecuted instantiation: proto.c:pq_sendint64 Unexecuted instantiation: worker.c:pq_sendint64 Unexecuted instantiation: walreceiver.c:pq_sendint64 Unexecuted instantiation: walsender.c:pq_sendint64 Unexecuted instantiation: basebackup_copy.c:pq_sendint64 Unexecuted instantiation: backend_startup.c:pq_sendint64 Unexecuted instantiation: dest.c:pq_sendint64 Unexecuted instantiation: fastpath.c:pq_sendint64 Unexecuted instantiation: postgres.c:pq_sendint64 Unexecuted instantiation: backend_progress.c:pq_sendint64 Unexecuted instantiation: array_userfuncs.c:pq_sendint64 Unexecuted instantiation: arrayfuncs.c:pq_sendint64 Unexecuted instantiation: bool.c:pq_sendint64 Unexecuted instantiation: cash.c:pq_sendint64 Unexecuted instantiation: char.c:pq_sendint64 Unexecuted instantiation: date.c:pq_sendint64 Unexecuted instantiation: enum.c:pq_sendint64 Unexecuted instantiation: float.c:pq_sendint64 Unexecuted instantiation: geo_ops.c:pq_sendint64 Unexecuted instantiation: int.c:pq_sendint64 Unexecuted instantiation: int8.c:pq_sendint64 Unexecuted instantiation: json.c:pq_sendint64 Unexecuted instantiation: jsonb.c:pq_sendint64 Unexecuted instantiation: jsonpath.c:pq_sendint64 Unexecuted instantiation: mac.c:pq_sendint64 Unexecuted instantiation: mac8.c:pq_sendint64 Unexecuted instantiation: multirangetypes.c:pq_sendint64 Unexecuted instantiation: name.c:pq_sendint64 Unexecuted instantiation: network.c:pq_sendint64 Unexecuted instantiation: numeric.c:pq_sendint64 Unexecuted instantiation: oid.c:pq_sendint64 Unexecuted instantiation: pg_lsn.c:pq_sendint64 Unexecuted instantiation: pseudotypes.c:pq_sendint64 Unexecuted instantiation: rangetypes.c:pq_sendint64 Unexecuted instantiation: rowtypes.c:pq_sendint64 Unexecuted instantiation: tid.c:pq_sendint64 Unexecuted instantiation: timestamp.c:pq_sendint64 Unexecuted instantiation: tsquery.c:pq_sendint64 Unexecuted instantiation: tsvector.c:pq_sendint64 Unexecuted instantiation: uuid.c:pq_sendint64 Unexecuted instantiation: varbit.c:pq_sendint64 Unexecuted instantiation: varchar.c:pq_sendint64 Unexecuted instantiation: varlena.c:pq_sendint64 Unexecuted instantiation: xid.c:pq_sendint64 Unexecuted instantiation: xid8funcs.c:pq_sendint64 Unexecuted instantiation: xml.c:pq_sendint64 Unexecuted instantiation: elog.c:pq_sendint64 Unexecuted instantiation: guc.c:pq_sendint64 |
157 | | |
158 | | /* append a binary byte to a StringInfo buffer */ |
159 | | static inline void |
160 | | pq_sendbyte(StringInfo buf, uint8 byt) |
161 | 0 | { |
162 | 0 | pq_sendint8(buf, byt); |
163 | 0 | } Unexecuted instantiation: printsimple.c:pq_sendbyte Unexecuted instantiation: printtup.c:pq_sendbyte Unexecuted instantiation: parallel.c:pq_sendbyte Unexecuted instantiation: async.c:pq_sendbyte Unexecuted instantiation: copyfromparse.c:pq_sendbyte Unexecuted instantiation: copyto.c:pq_sendbyte Unexecuted instantiation: explain.c:pq_sendbyte Unexecuted instantiation: explain_dr.c:pq_sendbyte Unexecuted instantiation: auth-sasl.c:pq_sendbyte Unexecuted instantiation: auth.c:pq_sendbyte Unexecuted instantiation: pqformat.c:pq_sendbyte Unexecuted instantiation: pqmq.c:pq_sendbyte Unexecuted instantiation: applyparallelworker.c:pq_sendbyte Unexecuted instantiation: proto.c:pq_sendbyte Unexecuted instantiation: worker.c:pq_sendbyte Unexecuted instantiation: walreceiver.c:pq_sendbyte Unexecuted instantiation: walsender.c:pq_sendbyte Unexecuted instantiation: basebackup_copy.c:pq_sendbyte Unexecuted instantiation: backend_startup.c:pq_sendbyte Unexecuted instantiation: dest.c:pq_sendbyte Unexecuted instantiation: fastpath.c:pq_sendbyte Unexecuted instantiation: postgres.c:pq_sendbyte Unexecuted instantiation: backend_progress.c:pq_sendbyte Unexecuted instantiation: array_userfuncs.c:pq_sendbyte Unexecuted instantiation: arrayfuncs.c:pq_sendbyte Unexecuted instantiation: bool.c:pq_sendbyte Unexecuted instantiation: cash.c:pq_sendbyte Unexecuted instantiation: char.c:pq_sendbyte Unexecuted instantiation: date.c:pq_sendbyte Unexecuted instantiation: enum.c:pq_sendbyte Unexecuted instantiation: float.c:pq_sendbyte Unexecuted instantiation: geo_ops.c:pq_sendbyte Unexecuted instantiation: int.c:pq_sendbyte Unexecuted instantiation: int8.c:pq_sendbyte Unexecuted instantiation: json.c:pq_sendbyte Unexecuted instantiation: jsonb.c:pq_sendbyte Unexecuted instantiation: jsonpath.c:pq_sendbyte Unexecuted instantiation: mac.c:pq_sendbyte Unexecuted instantiation: mac8.c:pq_sendbyte Unexecuted instantiation: multirangetypes.c:pq_sendbyte Unexecuted instantiation: name.c:pq_sendbyte Unexecuted instantiation: network.c:pq_sendbyte Unexecuted instantiation: numeric.c:pq_sendbyte Unexecuted instantiation: oid.c:pq_sendbyte Unexecuted instantiation: pg_lsn.c:pq_sendbyte Unexecuted instantiation: pseudotypes.c:pq_sendbyte Unexecuted instantiation: rangetypes.c:pq_sendbyte Unexecuted instantiation: rowtypes.c:pq_sendbyte Unexecuted instantiation: tid.c:pq_sendbyte Unexecuted instantiation: timestamp.c:pq_sendbyte Unexecuted instantiation: tsquery.c:pq_sendbyte Unexecuted instantiation: tsvector.c:pq_sendbyte Unexecuted instantiation: uuid.c:pq_sendbyte Unexecuted instantiation: varbit.c:pq_sendbyte Unexecuted instantiation: varchar.c:pq_sendbyte Unexecuted instantiation: varlena.c:pq_sendbyte Unexecuted instantiation: xid.c:pq_sendbyte Unexecuted instantiation: xid8funcs.c:pq_sendbyte Unexecuted instantiation: xml.c:pq_sendbyte Unexecuted instantiation: elog.c:pq_sendbyte Unexecuted instantiation: guc.c:pq_sendbyte |
164 | | |
165 | | /* |
166 | | * Append a binary integer to a StringInfo buffer |
167 | | * |
168 | | * This function is deprecated; prefer use of the functions above. |
169 | | */ |
170 | | static inline void |
171 | | pq_sendint(StringInfo buf, uint32 i, int b) |
172 | 0 | { |
173 | 0 | switch (b) |
174 | 0 | { |
175 | 0 | case 1: |
176 | 0 | pq_sendint8(buf, (uint8) i); |
177 | 0 | break; |
178 | 0 | case 2: |
179 | 0 | pq_sendint16(buf, (uint16) i); |
180 | 0 | break; |
181 | 0 | case 4: |
182 | 0 | pq_sendint32(buf, (uint32) i); |
183 | 0 | break; |
184 | 0 | default: |
185 | 0 | elog(ERROR, "unsupported integer size %d", b); |
186 | 0 | break; |
187 | 0 | } |
188 | 0 | } Unexecuted instantiation: printsimple.c:pq_sendint Unexecuted instantiation: printtup.c:pq_sendint Unexecuted instantiation: parallel.c:pq_sendint Unexecuted instantiation: async.c:pq_sendint Unexecuted instantiation: copyfromparse.c:pq_sendint Unexecuted instantiation: copyto.c:pq_sendint Unexecuted instantiation: explain.c:pq_sendint Unexecuted instantiation: explain_dr.c:pq_sendint Unexecuted instantiation: auth-sasl.c:pq_sendint Unexecuted instantiation: auth.c:pq_sendint Unexecuted instantiation: pqformat.c:pq_sendint Unexecuted instantiation: pqmq.c:pq_sendint Unexecuted instantiation: applyparallelworker.c:pq_sendint Unexecuted instantiation: proto.c:pq_sendint Unexecuted instantiation: worker.c:pq_sendint Unexecuted instantiation: walreceiver.c:pq_sendint Unexecuted instantiation: walsender.c:pq_sendint Unexecuted instantiation: basebackup_copy.c:pq_sendint Unexecuted instantiation: backend_startup.c:pq_sendint Unexecuted instantiation: dest.c:pq_sendint Unexecuted instantiation: fastpath.c:pq_sendint Unexecuted instantiation: postgres.c:pq_sendint Unexecuted instantiation: backend_progress.c:pq_sendint Unexecuted instantiation: array_userfuncs.c:pq_sendint Unexecuted instantiation: arrayfuncs.c:pq_sendint Unexecuted instantiation: bool.c:pq_sendint Unexecuted instantiation: cash.c:pq_sendint Unexecuted instantiation: char.c:pq_sendint Unexecuted instantiation: date.c:pq_sendint Unexecuted instantiation: enum.c:pq_sendint Unexecuted instantiation: float.c:pq_sendint Unexecuted instantiation: geo_ops.c:pq_sendint Unexecuted instantiation: int.c:pq_sendint Unexecuted instantiation: int8.c:pq_sendint Unexecuted instantiation: json.c:pq_sendint Unexecuted instantiation: jsonb.c:pq_sendint Unexecuted instantiation: jsonpath.c:pq_sendint Unexecuted instantiation: mac.c:pq_sendint Unexecuted instantiation: mac8.c:pq_sendint Unexecuted instantiation: multirangetypes.c:pq_sendint Unexecuted instantiation: name.c:pq_sendint Unexecuted instantiation: network.c:pq_sendint Unexecuted instantiation: numeric.c:pq_sendint Unexecuted instantiation: oid.c:pq_sendint Unexecuted instantiation: pg_lsn.c:pq_sendint Unexecuted instantiation: pseudotypes.c:pq_sendint Unexecuted instantiation: rangetypes.c:pq_sendint Unexecuted instantiation: rowtypes.c:pq_sendint Unexecuted instantiation: tid.c:pq_sendint Unexecuted instantiation: timestamp.c:pq_sendint Unexecuted instantiation: tsquery.c:pq_sendint Unexecuted instantiation: tsvector.c:pq_sendint Unexecuted instantiation: uuid.c:pq_sendint Unexecuted instantiation: varbit.c:pq_sendint Unexecuted instantiation: varchar.c:pq_sendint Unexecuted instantiation: varlena.c:pq_sendint Unexecuted instantiation: xid.c:pq_sendint Unexecuted instantiation: xid8funcs.c:pq_sendint Unexecuted instantiation: xml.c:pq_sendint Unexecuted instantiation: elog.c:pq_sendint Unexecuted instantiation: guc.c:pq_sendint |
189 | | |
190 | | |
191 | | extern void pq_begintypsend(StringInfo buf); |
192 | | extern bytea *pq_endtypsend(StringInfo buf); |
193 | | |
194 | | extern void pq_puttextmessage(char msgtype, const char *str); |
195 | | extern void pq_putemptymessage(char msgtype); |
196 | | |
197 | | extern int pq_getmsgbyte(StringInfo msg); |
198 | | extern unsigned int pq_getmsgint(StringInfo msg, int b); |
199 | | extern int64 pq_getmsgint64(StringInfo msg); |
200 | | extern float4 pq_getmsgfloat4(StringInfo msg); |
201 | | extern float8 pq_getmsgfloat8(StringInfo msg); |
202 | | extern const char *pq_getmsgbytes(StringInfo msg, int datalen); |
203 | | extern void pq_copymsgbytes(StringInfo msg, void *buf, int datalen); |
204 | | extern char *pq_getmsgtext(StringInfo msg, int rawbytes, int *nbytes); |
205 | | extern const char *pq_getmsgstring(StringInfo msg); |
206 | | extern const char *pq_getmsgrawstring(StringInfo msg); |
207 | | extern void pq_getmsgend(StringInfo msg); |
208 | | |
209 | | #endif /* PQFORMAT_H */ |