~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

Viewing changes to src/include/utils/datum.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-05-11 10:41:53 UTC
  • Revision ID: james.westby@ubuntu.com-20110511104153-psbh2o58553fv1m0
Tags: upstream-9.1~beta1
ImportĀ upstreamĀ versionĀ 9.1~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*-------------------------------------------------------------------------
 
2
 *
 
3
 * datum.h
 
4
 *        POSTGRES Datum (abstract data type) manipulation routines.
 
5
 *
 
6
 * These routines are driven by the 'typbyval' and 'typlen' information,
 
7
 * which must previously have been obtained by the caller for the datatype
 
8
 * of the Datum.  (We do it this way because in most situations the caller
 
9
 * can look up the info just once and use it for many per-datum operations.)
 
10
 *
 
11
 * Portions Copyright (c) 1996-2011, PostgreSQL Global Development Group
 
12
 * Portions Copyright (c) 1994, Regents of the University of California
 
13
 *
 
14
 * src/include/utils/datum.h
 
15
 *
 
16
 *-------------------------------------------------------------------------
 
17
 */
 
18
#ifndef DATUM_H
 
19
#define DATUM_H
 
20
 
 
21
/*
 
22
 * datumGetSize - find the "real" length of a datum
 
23
 */
 
24
extern Size datumGetSize(Datum value, bool typByVal, int typLen);
 
25
 
 
26
/*
 
27
 * datumCopy - make a copy of a datum.
 
28
 *
 
29
 * If the datatype is pass-by-reference, memory is obtained with palloc().
 
30
 */
 
31
extern Datum datumCopy(Datum value, bool typByVal, int typLen);
 
32
 
 
33
/*
 
34
 * datumFree - free a datum previously allocated by datumCopy, if any.
 
35
 *
 
36
 * Does nothing if datatype is pass-by-value.
 
37
 */
 
38
extern void datumFree(Datum value, bool typByVal, int typLen);
 
39
 
 
40
/*
 
41
 * datumIsEqual
 
42
 * return true if two datums of the same type are equal, false otherwise.
 
43
 *
 
44
 * XXX : See comments in the code for restrictions!
 
45
 */
 
46
extern bool datumIsEqual(Datum value1, Datum value2,
 
47
                         bool typByVal, int typLen);
 
48
 
 
49
#endif   /* DATUM_H */