Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes16kdownloads
datum.h77 linesDownload Raw Back to utils
1/*-------------------------------------------------------------------------2 *3 * datum.h4 *	  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 datatype8 * of the Datum.  (We do it this way because in most situations the caller9 * can look up the info just once and use it for many per-datum operations.)10 *11 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group12 * Portions Copyright (c) 1994, Regents of the University of California13 *14 * src/include/utils/datum.h15 *16 *-------------------------------------------------------------------------17 */18#ifndef DATUM_H19#define DATUM_H20 21/*22 * datumGetSize - find the "real" length of a datum23 */24extern Size datumGetSize(Datum value, bool typByVal, int typLen);25 26/*27 * datumCopy - make a copy of a non-NULL datum.28 *29 * If the datatype is pass-by-reference, memory is obtained with palloc().30 */31extern Datum datumCopy(Datum value, bool typByVal, int typLen);32 33/*34 * datumTransfer - transfer a non-NULL datum into the current memory context.35 *36 * Differs from datumCopy() in its handling of read-write expanded objects.37 */38extern Datum datumTransfer(Datum value, bool typByVal, int typLen);39 40/*41 * datumIsEqual42 * return true if two datums of the same type are equal, false otherwise.43 *44 * XXX : See comments in the code for restrictions!45 */46extern bool datumIsEqual(Datum value1, Datum value2,47						 bool typByVal, int typLen);48 49/*50 * datum_image_eq51 *52 * Compares two datums for identical contents, based on byte images.  Return53 * true if the two datums are equal, false otherwise.54 */55extern bool datum_image_eq(Datum value1, Datum value2,56						   bool typByVal, int typLen);57 58/*59 * datum_image_hash60 *61 * Generates hash value for 'value' based on its bits rather than logical62 * value.63 */64extern uint32 datum_image_hash(Datum value, bool typByVal, int typLen);65 66/*67 * Serialize and restore datums so that we can transfer them to parallel68 * workers.69 */70extern Size datumEstimateSpace(Datum value, bool isnull, bool typByVal,71							   int typLen);72extern void datumSerialize(Datum value, bool isnull, bool typByVal,73						   int typLen, char **start_address);74extern Datum datumRestore(char **start_address, bool *isnull);75 76#endif							/* DATUM_H */77 
codekingpro/portable-devtools · Team Ai