mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
Support hex-string input and output for type BYTEA.
Both hex format and the traditional "escape" format are automatically handled on input. The output format is selected by the new GUC variable bytea_output. As committed, bytea_output defaults to HEX, which is an *incompatible change*. We will keep it this way for awhile for testing purposes, but should consider whether to switch to the more backwards-compatible default of ESCAPE before 8.5 is released. Peter Eisentraut
This commit is contained in:
50
src/include/utils/bytea.h
Normal file
50
src/include/utils/bytea.h
Normal file
@ -0,0 +1,50 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* bytea.h
|
||||
* Declarations for BYTEA data type support.
|
||||
*
|
||||
*
|
||||
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/utils/bytea.h,v 1.1 2009/08/04 16:08:36 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef BYTEA_H
|
||||
#define BYTEA_H
|
||||
|
||||
#include "fmgr.h"
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
BYTEA_OUTPUT_ESCAPE,
|
||||
BYTEA_OUTPUT_HEX
|
||||
} ByteaOutputType;
|
||||
|
||||
extern int bytea_output; /* ByteaOutputType, but int for GUC enum */
|
||||
|
||||
/* functions are in utils/adt/varlena.c */
|
||||
extern Datum byteain(PG_FUNCTION_ARGS);
|
||||
extern Datum byteaout(PG_FUNCTION_ARGS);
|
||||
extern Datum bytearecv(PG_FUNCTION_ARGS);
|
||||
extern Datum byteasend(PG_FUNCTION_ARGS);
|
||||
extern Datum byteaoctetlen(PG_FUNCTION_ARGS);
|
||||
extern Datum byteaGetByte(PG_FUNCTION_ARGS);
|
||||
extern Datum byteaGetBit(PG_FUNCTION_ARGS);
|
||||
extern Datum byteaSetByte(PG_FUNCTION_ARGS);
|
||||
extern Datum byteaSetBit(PG_FUNCTION_ARGS);
|
||||
extern Datum byteaeq(PG_FUNCTION_ARGS);
|
||||
extern Datum byteane(PG_FUNCTION_ARGS);
|
||||
extern Datum bytealt(PG_FUNCTION_ARGS);
|
||||
extern Datum byteale(PG_FUNCTION_ARGS);
|
||||
extern Datum byteagt(PG_FUNCTION_ARGS);
|
||||
extern Datum byteage(PG_FUNCTION_ARGS);
|
||||
extern Datum byteacmp(PG_FUNCTION_ARGS);
|
||||
extern Datum byteacat(PG_FUNCTION_ARGS);
|
||||
extern Datum byteapos(PG_FUNCTION_ARGS);
|
||||
extern Datum bytea_substr(PG_FUNCTION_ARGS);
|
||||
extern Datum bytea_substr_no_len(PG_FUNCTION_ARGS);
|
||||
|
||||
#endif /* BYTEA_H */
|
Reference in New Issue
Block a user