mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
encoding conversion of any elog/ereport message being sent to the frontend. This generalizes a patch that I put in last October, which suppressed translation of only specific messages known to be associated with recursive can't-translate-the-message behavior. As shown in bug #4680, we need a more general answer in order to have some hope of coping with broken encoding conversion setups. This approach seems a good deal less klugy anyway. Patch in all supported branches.
50 lines
2.0 KiB
C
50 lines
2.0 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* pqformat.h
|
|
* Definitions for formatting and parsing frontend/backend messages
|
|
*
|
|
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $PostgreSQL: pgsql/src/include/libpq/pqformat.h,v 1.28 2009/03/02 21:18:43 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef PQFORMAT_H
|
|
#define PQFORMAT_H
|
|
|
|
#include "lib/stringinfo.h"
|
|
|
|
extern void pq_beginmessage(StringInfo buf, char msgtype);
|
|
extern void pq_sendbyte(StringInfo buf, int byt);
|
|
extern void pq_sendbytes(StringInfo buf, const char *data, int datalen);
|
|
extern void pq_sendcountedtext(StringInfo buf, const char *str, int slen,
|
|
bool countincludesself);
|
|
extern void pq_sendtext(StringInfo buf, const char *str, int slen);
|
|
extern void pq_sendstring(StringInfo buf, const char *str);
|
|
extern void pq_send_ascii_string(StringInfo buf, const char *str);
|
|
extern void pq_sendint(StringInfo buf, int i, int b);
|
|
extern void pq_sendint64(StringInfo buf, int64 i);
|
|
extern void pq_sendfloat4(StringInfo buf, float4 f);
|
|
extern void pq_sendfloat8(StringInfo buf, float8 f);
|
|
extern void pq_endmessage(StringInfo buf);
|
|
|
|
extern void pq_begintypsend(StringInfo buf);
|
|
extern bytea *pq_endtypsend(StringInfo buf);
|
|
|
|
extern void pq_puttextmessage(char msgtype, const char *str);
|
|
extern void pq_putemptymessage(char msgtype);
|
|
|
|
extern int pq_getmsgbyte(StringInfo msg);
|
|
extern unsigned int pq_getmsgint(StringInfo msg, int b);
|
|
extern int64 pq_getmsgint64(StringInfo msg);
|
|
extern float4 pq_getmsgfloat4(StringInfo msg);
|
|
extern float8 pq_getmsgfloat8(StringInfo msg);
|
|
extern const char *pq_getmsgbytes(StringInfo msg, int datalen);
|
|
extern void pq_copymsgbytes(StringInfo msg, char *buf, int datalen);
|
|
extern char *pq_getmsgtext(StringInfo msg, int rawbytes, int *nbytes);
|
|
extern const char *pq_getmsgstring(StringInfo msg);
|
|
extern void pq_getmsgend(StringInfo msg);
|
|
|
|
#endif /* PQFORMAT_H */
|