init
This commit is contained in:
69
db_include/access/valid.h
Executable file
69
db_include/access/valid.h
Executable file
@@ -0,0 +1,69 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* valid.h
|
||||
* POSTGRES tuple qualification validity definitions.
|
||||
*
|
||||
*
|
||||
* Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* src/include/access/valid.h
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef VALID_H
|
||||
#define VALID_H
|
||||
|
||||
/*
|
||||
* HeapKeyTest
|
||||
*
|
||||
* Test a heap tuple to see if it satisfies a scan key.
|
||||
*/
|
||||
#define HeapKeyTest(tuple, \
|
||||
tupdesc, \
|
||||
nkeys, \
|
||||
keys, \
|
||||
result) \
|
||||
do \
|
||||
{ \
|
||||
/* Use underscores to protect the variables passed in as parameters */ \
|
||||
int __cur_nkeys = (nkeys); \
|
||||
ScanKey __cur_keys = (keys); \
|
||||
\
|
||||
(result) = true; /* may change */ \
|
||||
for (; __cur_nkeys--; __cur_keys++) \
|
||||
{ \
|
||||
Datum __atp; \
|
||||
bool __isnull; \
|
||||
Datum __test; \
|
||||
\
|
||||
if (__cur_keys->sk_flags & SK_ISNULL) \
|
||||
{ \
|
||||
(result) = false; \
|
||||
break; \
|
||||
} \
|
||||
\
|
||||
__atp = heap_getattr((tuple), \
|
||||
__cur_keys->sk_attno, \
|
||||
(tupdesc), \
|
||||
&__isnull); \
|
||||
\
|
||||
if (__isnull) \
|
||||
{ \
|
||||
(result) = false; \
|
||||
break; \
|
||||
} \
|
||||
\
|
||||
__test = FunctionCall2Coll(&__cur_keys->sk_func, \
|
||||
__cur_keys->sk_collation, \
|
||||
__atp, __cur_keys->sk_argument); \
|
||||
\
|
||||
if (!DatumGetBool(__test)) \
|
||||
{ \
|
||||
(result) = false; \
|
||||
break; \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#endif /* VALID_H */
|
||||
Reference in New Issue
Block a user