PostgreSQL Source Code
git master
|
Go to the source code of this file.
Data Structures | |
struct | ltree_level |
struct | ltree |
struct | lquery_variant |
struct | lquery_level |
struct | lquery |
struct | ITEM |
struct | ltxtquery |
struct | ltree_gist |
struct | LtreeGistOptions |
Macros | |
#define | LTREE_LABEL_MAX_CHARS 1000 |
#define | LOWER_NODE |
#define | LEVEL_HDRSIZE (offsetof(ltree_level,name)) |
#define | LEVEL_NEXT(x) ( (ltree_level*)( ((char*)(x)) + MAXALIGN(((ltree_level*)(x))->len + LEVEL_HDRSIZE) ) ) |
#define | LTREE_HDRSIZE MAXALIGN( offsetof(ltree, data) ) |
#define | LTREE_FIRST(x) ( (ltree_level*)( ((char*)(x))+LTREE_HDRSIZE ) ) |
#define | LTREE_MAX_LEVELS PG_UINT16_MAX /* ltree.numlevel is uint16 */ |
#define | LVAR_HDRSIZE MAXALIGN(offsetof(lquery_variant, name)) |
#define | LVAR_NEXT(x) ( (lquery_variant*)( ((char*)(x)) + MAXALIGN(((lquery_variant*)(x))->len) + LVAR_HDRSIZE ) ) |
#define | LVAR_ANYEND 0x01 /* '*' flag: prefix match */ |
#define | LVAR_INCASE 0x02 /* '@' flag: case-insensitive match */ |
#define | LVAR_SUBLEXEME 0x04 /* '%' flag: word-wise match */ |
#define | LQL_HDRSIZE MAXALIGN( offsetof(lquery_level,variants) ) |
#define | LQL_NEXT(x) ( (lquery_level*)( ((char*)(x)) + MAXALIGN(((lquery_level*)(x))->totallen) ) ) |
#define | LQL_FIRST(x) ( (lquery_variant*)( ((char*)(x))+LQL_HDRSIZE ) ) |
#define | LQL_NOT 0x10 /* level has '!' (NOT) prefix */ |
#define | LQL_COUNT 0x20 /* level is non-'*' and has repeat counts */ |
#define | FLG_CANLOOKSIGN(x) ( ( (x) & ( LQL_NOT | LVAR_ANYEND | LVAR_SUBLEXEME ) ) == 0 ) |
#define | LQL_CANLOOKSIGN(x) FLG_CANLOOKSIGN( ((lquery_level*)(x))->flag ) |
#define | LQUERY_HDRSIZE MAXALIGN( offsetof(lquery, data) ) |
#define | LQUERY_FIRST(x) ( (lquery_level*)( ((char*)(x))+LQUERY_HDRSIZE ) ) |
#define | LQUERY_MAX_LEVELS PG_UINT16_MAX /* lquery.numlevel is uint16 */ |
#define | LQUERY_HASNOT 0x01 |
#define | ISLABEL(x) ( t_isalnum(x) || t_iseq(x, '_') || t_iseq(x, '-') ) |
#define | HDRSIZEQT MAXALIGN(VARHDRSZ + sizeof(int32)) |
#define | COMPUTESIZE(size, lenofoperand) ( HDRSIZEQT + (size) * sizeof(ITEM) + (lenofoperand) ) |
#define | LTXTQUERY_TOO_BIG(size, lenofoperand) ((size) > (MaxAllocSize - HDRSIZEQT - (lenofoperand)) / sizeof(ITEM)) |
#define | GETQUERY(x) (ITEM*)( (char*)(x)+HDRSIZEQT ) |
#define | GETOPERAND(x) ( (char*)GETQUERY(x) + ((ltxtquery*)x)->size * sizeof(ITEM) ) |
#define | ISOPERATOR(x) ( (x)=='!' || (x)=='&' || (x)=='|' || (x)=='(' || (x)==')' ) |
#define | END 0 |
#define | ERR 1 |
#define | VAL 2 |
#define | OPR 3 |
#define | OPEN 4 |
#define | CLOSE 5 |
#define | VALTRUE 6 /* for stop words */ |
#define | VALFALSE 7 |
#define | DatumGetLtreeP(X) ((ltree *) PG_DETOAST_DATUM(X)) |
#define | DatumGetLtreePCopy(X) ((ltree *) PG_DETOAST_DATUM_COPY(X)) |
#define | PG_GETARG_LTREE_P(n) DatumGetLtreeP(PG_GETARG_DATUM(n)) |
#define | PG_GETARG_LTREE_P_COPY(n) DatumGetLtreePCopy(PG_GETARG_DATUM(n)) |
#define | DatumGetLqueryP(X) ((lquery *) PG_DETOAST_DATUM(X)) |
#define | DatumGetLqueryPCopy(X) ((lquery *) PG_DETOAST_DATUM_COPY(X)) |
#define | PG_GETARG_LQUERY_P(n) DatumGetLqueryP(PG_GETARG_DATUM(n)) |
#define | PG_GETARG_LQUERY_P_COPY(n) DatumGetLqueryPCopy(PG_GETARG_DATUM(n)) |
#define | DatumGetLtxtqueryP(X) ((ltxtquery *) PG_DETOAST_DATUM(X)) |
#define | DatumGetLtxtqueryPCopy(X) ((ltxtquery *) PG_DETOAST_DATUM_COPY(X)) |
#define | PG_GETARG_LTXTQUERY_P(n) DatumGetLtxtqueryP(PG_GETARG_DATUM(n)) |
#define | PG_GETARG_LTXTQUERY_P_COPY(n) DatumGetLtxtqueryPCopy(PG_GETARG_DATUM(n)) |
#define | BITBYTE 8 |
#define | SIGLENBIT(siglen) ((siglen) * BITBYTE) |
#define | LTREE_SIGLEN_DEFAULT (2 * sizeof(int32)) |
#define | LTREE_SIGLEN_MAX GISTMaxIndexKeySize |
#define | LTREE_GET_SIGLEN() |
#define | LOOPBYTE(siglen) for(i = 0; i < (siglen); i++) |
#define | GETBYTE(x, i) ( *( (BITVECP)(x) + (int)( (i) / BITBYTE ) ) ) |
#define | GETBITBYTE(x, i) ( ((unsigned char)(x)) >> i & 0x01 ) |
#define | CLRBIT(x, i) GETBYTE(x,i) &= ~( 0x01 << ( (i) % BITBYTE ) ) |
#define | SETBIT(x, i) GETBYTE(x,i) |= ( 0x01 << ( (i) % BITBYTE ) ) |
#define | GETBIT(x, i) ( (GETBYTE(x,i) >> ( (i) % BITBYTE )) & 0x01 ) |
#define | HASHVAL(val, siglen) (((unsigned int)(val)) % SIGLENBIT(siglen)) |
#define | HASH(sign, val, siglen) SETBIT((sign), HASHVAL(val, siglen)) |
#define | LTG_ONENODE 0x01 |
#define | LTG_ALLTRUE 0x02 |
#define | LTG_NORIGHT 0x04 |
#define | LTG_HDRSIZE MAXALIGN(VARHDRSZ + sizeof(uint32)) |
#define | LTG_SIGN(x) ( (BITVECP)( ((char*)(x))+LTG_HDRSIZE ) ) |
#define | LTG_NODE(x) ( (ltree*)( ((char*)(x))+LTG_HDRSIZE ) ) |
#define | LTG_ISONENODE(x) ( ((ltree_gist*)(x))->flag & LTG_ONENODE ) |
#define | LTG_ISALLTRUE(x) ( ((ltree_gist*)(x))->flag & LTG_ALLTRUE ) |
#define | LTG_ISNORIGHT(x) ( ((ltree_gist*)(x))->flag & LTG_NORIGHT ) |
#define | LTG_LNODE(x, siglen) ( (ltree*)( ( ((char*)(x))+LTG_HDRSIZE ) + ( LTG_ISALLTRUE(x) ? 0 : (siglen) ) ) ) |
#define | LTG_RENODE(x, siglen) ( (ltree*)( ((char*)LTG_LNODE(x, siglen)) + VARSIZE(LTG_LNODE(x, siglen))) ) |
#define | LTG_RNODE(x, siglen) ( LTG_ISNORIGHT(x) ? LTG_LNODE(x, siglen) : LTG_RENODE(x, siglen) ) |
#define | LTG_GETLNODE(x, siglen) ( LTG_ISONENODE(x) ? LTG_NODE(x) : LTG_LNODE(x, siglen) ) |
#define | LTG_GETRNODE(x, siglen) ( LTG_ISONENODE(x) ? LTG_NODE(x) : LTG_RNODE(x, siglen) ) |
#define | LTREE_ASIGLEN_DEFAULT (7 * sizeof(int32)) |
#define | LTREE_ASIGLEN_MAX GISTMaxIndexKeySize |
#define | LTREE_GET_ASIGLEN() |
#define | ASIGLENBIT(siglen) ((siglen) * BITBYTE) |
#define | ALOOPBYTE(siglen) for (i = 0; i < (siglen); i++) |
#define | AHASHVAL(val, siglen) (((unsigned int)(val)) % ASIGLENBIT(siglen)) |
#define | AHASH(sign, val, siglen) SETBIT((sign), AHASHVAL(val, siglen)) |
Typedefs | |
typedef struct ITEM | ITEM |
typedef unsigned char * | BITVECP |
#define AHASHVAL | ( | val, | |
siglen | |||
) | (((unsigned int)(val)) % ASIGLENBIT(siglen)) |
#define DatumGetLqueryP | ( | X | ) | ((lquery *) PG_DETOAST_DATUM(X)) |
#define DatumGetLqueryPCopy | ( | X | ) | ((lquery *) PG_DETOAST_DATUM_COPY(X)) |
#define DatumGetLtreeP | ( | X | ) | ((ltree *) PG_DETOAST_DATUM(X)) |
#define DatumGetLtreePCopy | ( | X | ) | ((ltree *) PG_DETOAST_DATUM_COPY(X)) |
#define DatumGetLtxtqueryP | ( | X | ) | ((ltxtquery *) PG_DETOAST_DATUM(X)) |
#define DatumGetLtxtqueryPCopy | ( | X | ) | ((ltxtquery *) PG_DETOAST_DATUM_COPY(X)) |
#define FLG_CANLOOKSIGN | ( | x | ) | ( ( (x) & ( LQL_NOT | LVAR_ANYEND | LVAR_SUBLEXEME ) ) == 0 ) |
#define LEVEL_HDRSIZE (offsetof(ltree_level,name)) |
#define LEVEL_NEXT | ( | x | ) | ( (ltree_level*)( ((char*)(x)) + MAXALIGN(((ltree_level*)(x))->len + LEVEL_HDRSIZE) ) ) |
#define LQL_CANLOOKSIGN | ( | x | ) | FLG_CANLOOKSIGN( ((lquery_level*)(x))->flag ) |
#define LQL_COUNT 0x20 /* level is non-'*' and has repeat counts */ |
#define LQL_FIRST | ( | x | ) | ( (lquery_variant*)( ((char*)(x))+LQL_HDRSIZE ) ) |
#define LQL_HDRSIZE MAXALIGN( offsetof(lquery_level,variants) ) |
#define LQL_NEXT | ( | x | ) | ( (lquery_level*)( ((char*)(x)) + MAXALIGN(((lquery_level*)(x))->totallen) ) ) |
#define LQUERY_FIRST | ( | x | ) | ( (lquery_level*)( ((char*)(x))+LQUERY_HDRSIZE ) ) |
#define LQUERY_MAX_LEVELS PG_UINT16_MAX /* lquery.numlevel is uint16 */ |
#define LTG_ISALLTRUE | ( | x | ) | ( ((ltree_gist*)(x))->flag & LTG_ALLTRUE ) |
#define LTG_ISNORIGHT | ( | x | ) | ( ((ltree_gist*)(x))->flag & LTG_NORIGHT ) |
#define LTG_ISONENODE | ( | x | ) | ( ((ltree_gist*)(x))->flag & LTG_ONENODE ) |
#define LTG_LNODE | ( | x, | |
siglen | |||
) | ( (ltree*)( ( ((char*)(x))+LTG_HDRSIZE ) + ( LTG_ISALLTRUE(x) ? 0 : (siglen) ) ) ) |
#define LTG_NODE | ( | x | ) | ( (ltree*)( ((char*)(x))+LTG_HDRSIZE ) ) |
#define LTG_RNODE | ( | x, | |
siglen | |||
) | ( LTG_ISNORIGHT(x) ? LTG_LNODE(x, siglen) : LTG_RENODE(x, siglen) ) |
#define LTG_SIGN | ( | x | ) | ( (BITVECP)( ((char*)(x))+LTG_HDRSIZE ) ) |
#define LTREE_ASIGLEN_MAX GISTMaxIndexKeySize |
#define LTREE_FIRST | ( | x | ) | ( (ltree_level*)( ((char*)(x))+LTREE_HDRSIZE ) ) |
#define LTREE_GET_ASIGLEN | ( | ) |
#define LTREE_GET_SIGLEN | ( | ) |
#define LTREE_MAX_LEVELS PG_UINT16_MAX /* ltree.numlevel is uint16 */ |
#define LTREE_SIGLEN_MAX GISTMaxIndexKeySize |
#define LTXTQUERY_TOO_BIG | ( | size, | |
lenofoperand | |||
) | ((size) > (MaxAllocSize - HDRSIZEQT - (lenofoperand)) / sizeof(ITEM)) |
#define LVAR_HDRSIZE MAXALIGN(offsetof(lquery_variant, name)) |
#define LVAR_INCASE 0x02 /* '@' flag: case-insensitive match */ |
#define LVAR_NEXT | ( | x | ) | ( (lquery_variant*)( ((char*)(x)) + MAXALIGN(((lquery_variant*)(x))->len) + LVAR_HDRSIZE ) ) |
#define PG_GETARG_LQUERY_P | ( | n | ) | DatumGetLqueryP(PG_GETARG_DATUM(n)) |
#define PG_GETARG_LQUERY_P_COPY | ( | n | ) | DatumGetLqueryPCopy(PG_GETARG_DATUM(n)) |
#define PG_GETARG_LTREE_P | ( | n | ) | DatumGetLtreeP(PG_GETARG_DATUM(n)) |
#define PG_GETARG_LTREE_P_COPY | ( | n | ) | DatumGetLtreePCopy(PG_GETARG_DATUM(n)) |
#define PG_GETARG_LTXTQUERY_P | ( | n | ) | DatumGetLtxtqueryP(PG_GETARG_DATUM(n)) |
#define PG_GETARG_LTXTQUERY_P_COPY | ( | n | ) | DatumGetLtxtqueryPCopy(PG_GETARG_DATUM(n)) |
PGDLLEXPORT Datum _lt_q_regex | ( | PG_FUNCTION_ARGS | ) |
Definition at line 135 of file _ltree_op.c.
References ARR_DATA_PTR, ARR_DIMS, ARR_NDIM, array_contains_nulls(), array_iterator(), ArrayGetNItems(), ereport, errcode(), errmsg(), ERROR, ltq_regex(), NEXTVAL, PG_FREE_IF_COPY, PG_GETARG_ARRAYTYPE_P, PG_RETURN_BOOL, and res.
Referenced by _lt_q_rregex().
PGDLLEXPORT Datum _lt_q_rregex | ( | PG_FUNCTION_ARGS | ) |
Definition at line 169 of file _ltree_op.c.
References _lt_q_regex(), DirectFunctionCall2, PG_GETARG_DATUM, and PG_RETURN_DATUM.
PGDLLEXPORT Datum _ltq_regex | ( | PG_FUNCTION_ARGS | ) |
Definition at line 114 of file _ltree_op.c.
References array_iterator(), ltq_regex(), PG_FREE_IF_COPY, PG_GETARG_ARRAYTYPE_P, PG_GETARG_LQUERY_P, PG_RETURN_BOOL, and res.
Referenced by _ltq_rregex().
PGDLLEXPORT Datum _ltq_rregex | ( | PG_FUNCTION_ARGS | ) |
Definition at line 126 of file _ltree_op.c.
References _ltq_regex(), DirectFunctionCall2, PG_GETARG_DATUM, and PG_RETURN_DATUM.
PGDLLEXPORT Datum _ltree_isparent | ( | PG_FUNCTION_ARGS | ) |
Definition at line 72 of file _ltree_op.c.
References array_iterator(), ltree_isparent(), PG_FREE_IF_COPY, PG_GETARG_ARRAYTYPE_P, PG_GETARG_LTREE_P, PG_RETURN_BOOL, and res.
Referenced by _ltree_r_isparent().
PGDLLEXPORT Datum _ltree_risparent | ( | PG_FUNCTION_ARGS | ) |
Definition at line 93 of file _ltree_op.c.
References array_iterator(), ltree_risparent(), PG_FREE_IF_COPY, PG_GETARG_ARRAYTYPE_P, PG_GETARG_LTREE_P, PG_RETURN_BOOL, and res.
Referenced by _ltree_r_risparent().
PGDLLEXPORT Datum _ltxtq_exec | ( | PG_FUNCTION_ARGS | ) |
Definition at line 179 of file _ltree_op.c.
References array_iterator(), ltxtq_exec(), PG_FREE_IF_COPY, PG_GETARG_ARRAYTYPE_P, PG_GETARG_LTXTQUERY_P, PG_RETURN_BOOL, and res.
Referenced by _ltxtq_rexec().
PGDLLEXPORT Datum _ltxtq_rexec | ( | PG_FUNCTION_ARGS | ) |
Definition at line 191 of file _ltree_op.c.
References _ltxtq_exec(), DirectFunctionCall2, PG_GETARG_DATUM, and PG_RETURN_DATUM.
bool compare_subnode | ( | ltree_level * | t, |
char * | qn, | ||
int | len, | ||
int(*)(const char *, const char *, size_t) | cmpptr, | ||
bool | anyend | ||
) |
Definition at line 44 of file lquery_op.c.
References getlexeme(), ltree_level::len, len, and ltree_level::name.
Referenced by checkcondition_str(), and checkLevel().
Definition at line 210 of file ltree_op.c.
References ltree_level::len, LEVEL_NEXT, LTREE_FIRST, ltree_level::name, and ltree::numlevel.
Referenced by ltree_consistent(), ltree_isparent(), and ltree_risparent().
Definition at line 493 of file ltree_op.c.
References a, i, ltree_level::len, len, LEVEL_HDRSIZE, LEVEL_NEXT, LTREE_FIRST, LTREE_HDRSIZE, MAXALIGN, Min, ltree_level::name, palloc0(), res, and SET_VARSIZE.
PGDLLEXPORT Datum lt_q_regex | ( | PG_FUNCTION_ARGS | ) |
Definition at line 239 of file lquery_op.c.
References ARR_DATA_PTR, ARR_DIMS, ARR_NDIM, array_contains_nulls(), ArrayGetNItems(), DatumGetBool(), DirectFunctionCall2, ereport, errcode(), errmsg(), ERROR, ltq_regex(), NEXTVAL, PG_FREE_IF_COPY, PG_GETARG_ARRAYTYPE_P, PG_GETARG_LTREE_P, PG_RETURN_BOOL, PointerGetDatum(), res, and tree.
Referenced by lt_q_rregex(), and ltree_consistent().
PGDLLEXPORT Datum lt_q_rregex | ( | PG_FUNCTION_ARGS | ) |
Definition at line 275 of file lquery_op.c.
References DirectFunctionCall2, lt_q_regex(), PG_GETARG_DATUM, and PG_RETURN_DATUM.
PGDLLEXPORT Datum ltq_regex | ( | PG_FUNCTION_ARGS | ) |
Definition at line 215 of file lquery_op.c.
References checkCond(), LQUERY_FIRST, LTREE_FIRST, lquery::numlevel, PG_FREE_IF_COPY, PG_GETARG_LQUERY_P, PG_GETARG_LTREE_P, PG_RETURN_BOOL, res, and tree.
Referenced by _lt_q_regex(), _ltq_extract_regex(), _ltq_regex(), lt_q_regex(), ltq_rregex(), and ltree_consistent().
PGDLLEXPORT Datum ltq_rregex | ( | PG_FUNCTION_ARGS | ) |
Definition at line 230 of file lquery_op.c.
References DirectFunctionCall2, ltq_regex(), PG_GETARG_DATUM, and PG_RETURN_DATUM.
PGDLLEXPORT Datum ltree_addltree | ( | PG_FUNCTION_ARGS | ) |
Definition at line 364 of file ltree_op.c.
References a, b, ltree_concat(), PG_FREE_IF_COPY, PG_GETARG_LTREE_P, and PG_RETURN_POINTER.
PGDLLEXPORT Datum ltree_addtext | ( | PG_FUNCTION_ARGS | ) |
Definition at line 377 of file ltree_op.c.
References a, b, DatumGetPointer(), DirectFunctionCall1, ltree_concat(), ltree_in(), pfree(), PG_FREE_IF_COPY, PG_GETARG_LTREE_P, PG_GETARG_TEXT_PP, PG_RETURN_POINTER, PointerGetDatum(), and text_to_cstring().
Definition at line 43 of file ltree_op.c.
References a, b, ltree_level::len, LEVEL_NEXT, LTREE_FIRST, Min, ltree_level::name, and res.
Referenced by gist_ischild(), gist_isparent(), ltree_consistent(), ltree_penalty(), ltree_picksplit(), ltree_union(), and treekey_cmp().
bool ltree_execute | ( | ITEM * | curitem, |
void * | checkval, | ||
bool | calcnot, | ||
bool(*)(void *checkval, ITEM *val) | chkcond | ||
) |
Definition at line 20 of file ltxtquery_op.c.
References check_stack_depth(), ITEM::left, ltree_execute(), ITEM::type, ITEM::val, and VAL.
Referenced by gist_qtxt(), ltree_execute(), and ltxtq_exec().
ltree_gist* ltree_gist_alloc | ( | bool | isalltrue, |
BITVECP | sign, | ||
int | siglen, | ||
ltree * | left, | ||
ltree * | right | ||
) |
Definition at line 42 of file ltree_gist.c.
References Assert, ltree_gist::flag, ISEQ, LTG_ALLTRUE, LTG_HDRSIZE, LTG_LNODE, LTG_NODE, LTG_NORIGHT, LTG_ONENODE, LTG_RNODE, LTG_SIGN, palloc(), SET_VARSIZE, sign, size, and VARSIZE.
Referenced by _ltree_compress(), _ltree_picksplit(), _ltree_union(), ltree_compress(), ltree_picksplit(), and ltree_union().
PGDLLEXPORT Datum ltree_in | ( | PG_FUNCTION_ARGS | ) |
Definition at line 174 of file ltree_io.c.
References buf, parse_ltree(), PG_GETARG_POINTER, PG_RETURN_NULL, PG_RETURN_POINTER, and res.
Referenced by ltree_addtext(), ltree_textadd(), and text2ltree().
PGDLLEXPORT Datum ltree_isparent | ( | PG_FUNCTION_ARGS | ) |
Definition at line 234 of file ltree_op.c.
References inner_isparent(), PG_FREE_IF_COPY, PG_GETARG_LTREE_P, PG_RETURN_BOOL, and res.
Referenced by _ltree_extract_isparent(), and _ltree_isparent().
PGDLLEXPORT Datum ltree_risparent | ( | PG_FUNCTION_ARGS | ) |
Definition at line 246 of file ltree_op.c.
References inner_isparent(), PG_FREE_IF_COPY, PG_GETARG_LTREE_P, PG_RETURN_BOOL, and res.
Referenced by _ltree_extract_risparent(), and _ltree_risparent().
int ltree_strncasecmp | ( | const char * | a, |
const char * | b, | ||
size_t | s | ||
) |
Definition at line 78 of file lquery_op.c.
References a, b, pfree(), res, and str_tolower().
Referenced by checkcondition_str(), and checkLevel().
PGDLLEXPORT Datum ltree_textadd | ( | PG_FUNCTION_ARGS | ) |
Definition at line 462 of file ltree_op.c.
References a, b, DatumGetPointer(), DirectFunctionCall1, ltree_concat(), ltree_in(), pfree(), PG_FREE_IF_COPY, PG_GETARG_LTREE_P, PG_GETARG_TEXT_PP, PG_RETURN_POINTER, PointerGetDatum(), and text_to_cstring().
PGDLLEXPORT Datum ltxtq_exec | ( | PG_FUNCTION_ARGS | ) |
Definition at line 84 of file ltxtquery_op.c.
References checkcondition_str(), GETOPERAND, GETQUERY, ltree_execute(), CHKVAL::node, CHKVAL::operand, PG_FREE_IF_COPY, PG_GETARG_LTREE_P, PG_GETARG_LTXTQUERY_P, PG_RETURN_BOOL, and val.
Referenced by _ltxtq_exec(), _ltxtq_extract_exec(), ltree_consistent(), and ltxtq_rexec().
PGDLLEXPORT Datum ltxtq_rexec | ( | PG_FUNCTION_ARGS | ) |
Definition at line 105 of file ltxtquery_op.c.
References DirectFunctionCall2, ltxtq_exec(), PG_GETARG_DATUM, and PG_RETURN_DATUM.