summaryrefslogtreecommitdiff
path: root/src/include/utils/varbit.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/utils/varbit.h')
-rw-r--r--src/include/utils/varbit.h93
1 files changed, 0 insertions, 93 deletions
diff --git a/src/include/utils/varbit.h b/src/include/utils/varbit.h
deleted file mode 100644
index 42ea863151e..00000000000
--- a/src/include/utils/varbit.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*-------------------------------------------------------------------------
- *
- * varbit.h
- * Functions for the SQL datatypes BIT() and BIT VARYING().
- *
- * Code originally contributed by Adriaan Joubert.
- *
- * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
- * Portions Copyright (c) 1994, Regents of the University of California
- *
- * $Id: varbit.h,v 1.14 2002/06/20 20:29:53 momjian Exp $
- *
- *-------------------------------------------------------------------------
- */
-#ifndef VARBIT_H
-#define VARBIT_H
-
-#include "fmgr.h"
-
-/*
- * Modeled on struct varlena from postgres.h, but data type is bits8.
- */
-typedef struct
-{
- int32 vl_len; /* standard varlena header (total size in
- * bytes) */
- int32 bit_len; /* number of valid bits */
- bits8 bit_dat[1]; /* bit string, most sig. byte first */
-} VarBit;
-
-/*
- * fmgr interface macros
- *
- * BIT and BIT VARYING are toastable varlena types. They are the same
- * as far as representation goes, so we just have one set of macros.
- */
-#define DatumGetVarBitP(X) ((VarBit *) PG_DETOAST_DATUM(X))
-#define DatumGetVarBitPCopy(X) ((VarBit *) PG_DETOAST_DATUM_COPY(X))
-#define VarBitPGetDatum(X) PointerGetDatum(X)
-#define PG_GETARG_VARBIT_P(n) DatumGetVarBitP(PG_GETARG_DATUM(n))
-#define PG_GETARG_VARBIT_P_COPY(n) DatumGetVarBitPCopy(PG_GETARG_DATUM(n))
-#define PG_RETURN_VARBIT_P(x) return VarBitPGetDatum(x)
-
-/* Header overhead *in addition to* VARHDRSZ */
-#define VARBITHDRSZ sizeof(int32)
-/* Number of bits in this bit string */
-#define VARBITLEN(PTR) (((VarBit *) (PTR))->bit_len)
-/* Pointer to the first byte containing bit string data */
-#define VARBITS(PTR) (((VarBit *) (PTR))->bit_dat)
-/* Number of bytes in the data section of a bit string */
-#define VARBITBYTES(PTR) (VARSIZE(PTR) - VARHDRSZ - VARBITHDRSZ)
-/* Padding of the bit string at the end (in bits) */
-#define VARBITPAD(PTR) (VARBITBYTES(PTR)*BITS_PER_BYTE - VARBITLEN(PTR))
-/* Number of bytes needed to store a bit string of a given length */
-#define VARBITTOTALLEN(BITLEN) (((BITLEN) + BITS_PER_BYTE-1)/BITS_PER_BYTE + \
- VARHDRSZ + VARBITHDRSZ)
-/* pointer beyond the end of the bit string (like end() in STL containers) */
-#define VARBITEND(PTR) (((bits8 *) (PTR)) + VARSIZE(PTR))
-/* Mask that will cover exactly one byte, i.e. BITS_PER_BYTE bits */
-#define BITMASK 0xFF
-#define BITHIGH 0x80
-
-
-extern Datum bit_in(PG_FUNCTION_ARGS);
-extern Datum bit_out(PG_FUNCTION_ARGS);
-extern Datum varbit_in(PG_FUNCTION_ARGS);
-extern Datum varbit_out(PG_FUNCTION_ARGS);
-extern Datum bit(PG_FUNCTION_ARGS);
-extern Datum _bit(PG_FUNCTION_ARGS);
-extern Datum varbit(PG_FUNCTION_ARGS);
-extern Datum _varbit(PG_FUNCTION_ARGS);
-extern Datum biteq(PG_FUNCTION_ARGS);
-extern Datum bitne(PG_FUNCTION_ARGS);
-extern Datum bitlt(PG_FUNCTION_ARGS);
-extern Datum bitle(PG_FUNCTION_ARGS);
-extern Datum bitgt(PG_FUNCTION_ARGS);
-extern Datum bitge(PG_FUNCTION_ARGS);
-extern Datum bitcmp(PG_FUNCTION_ARGS);
-extern Datum bitand(PG_FUNCTION_ARGS);
-extern Datum bitor(PG_FUNCTION_ARGS);
-extern Datum bitxor(PG_FUNCTION_ARGS);
-extern Datum bitnot(PG_FUNCTION_ARGS);
-extern Datum bitshiftleft(PG_FUNCTION_ARGS);
-extern Datum bitshiftright(PG_FUNCTION_ARGS);
-extern Datum bitcat(PG_FUNCTION_ARGS);
-extern Datum bitsubstr(PG_FUNCTION_ARGS);
-extern Datum bitlength(PG_FUNCTION_ARGS);
-extern Datum bitoctetlength(PG_FUNCTION_ARGS);
-extern Datum bitfromint4(PG_FUNCTION_ARGS);
-extern Datum bittoint4(PG_FUNCTION_ARGS);
-extern Datum bitposition(PG_FUNCTION_ARGS);
-
-#endif