Use wrappers of PG_DETOAST_DATUM_PACKED() more.
This makes almost all core code follow the policy introduced in the previous commit. Specific decisions: - Text search support functions with char* and length arguments, such as prsstart and lexize, may receive unaligned strings. I doubt maintainers of non-core text search code will notice. - Use plain VARDATA() on values detoasted or synthesized earlier in the same function. Use VARDATA_ANY() on varlenas sourced outside the function, even if they happen to always have four-byte headers. As an exception, retain the universal practice of using VARDATA() on return values of SendFunctionCall(). - Retain PG_GETARG_BYTEA_P() in pageinspect. (Page images are too large for a one-byte header, so this misses no optimization.) Sites that do not call get_page_from_raw() typically need the four-byte alignment. - For now, do not change btree_gist. Its use of four-byte headers in memory is partly entangled with storage of 4-byte headers inside GBT_VARKEY, on disk. - For now, do not change gtrgm_consistent() or gtrgm_distance(). They incorporate the varlena header into a cache, and there are multiple credible implementation strategies to consider.
This commit is contained in:
parent
9d7726c2ba
commit
3a0d473192
|
@ -124,8 +124,8 @@ pg_file_write(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
requireSuperuser();
|
requireSuperuser();
|
||||||
|
|
||||||
filename = convert_and_check_filename(PG_GETARG_TEXT_P(0), false);
|
filename = convert_and_check_filename(PG_GETARG_TEXT_PP(0), false);
|
||||||
data = PG_GETARG_TEXT_P(1);
|
data = PG_GETARG_TEXT_PP(1);
|
||||||
|
|
||||||
if (!PG_GETARG_BOOL(2))
|
if (!PG_GETARG_BOOL(2))
|
||||||
{
|
{
|
||||||
|
@ -147,8 +147,8 @@ pg_file_write(PG_FUNCTION_ARGS)
|
||||||
errmsg("could not open file \"%s\" for writing: %m",
|
errmsg("could not open file \"%s\" for writing: %m",
|
||||||
filename)));
|
filename)));
|
||||||
|
|
||||||
count = fwrite(VARDATA(data), 1, VARSIZE(data) - VARHDRSZ, f);
|
count = fwrite(VARDATA_ANY(data), 1, VARSIZE_ANY_EXHDR(data), f);
|
||||||
if (count != VARSIZE(data) - VARHDRSZ || FreeFile(f))
|
if (count != VARSIZE_ANY_EXHDR(data) || FreeFile(f))
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode_for_file_access(),
|
(errcode_for_file_access(),
|
||||||
errmsg("could not write file \"%s\": %m", filename)));
|
errmsg("could not write file \"%s\": %m", filename)));
|
||||||
|
@ -170,12 +170,12 @@ pg_file_rename(PG_FUNCTION_ARGS)
|
||||||
if (PG_ARGISNULL(0) || PG_ARGISNULL(1))
|
if (PG_ARGISNULL(0) || PG_ARGISNULL(1))
|
||||||
PG_RETURN_NULL();
|
PG_RETURN_NULL();
|
||||||
|
|
||||||
fn1 = convert_and_check_filename(PG_GETARG_TEXT_P(0), false);
|
fn1 = convert_and_check_filename(PG_GETARG_TEXT_PP(0), false);
|
||||||
fn2 = convert_and_check_filename(PG_GETARG_TEXT_P(1), false);
|
fn2 = convert_and_check_filename(PG_GETARG_TEXT_PP(1), false);
|
||||||
if (PG_ARGISNULL(2))
|
if (PG_ARGISNULL(2))
|
||||||
fn3 = 0;
|
fn3 = 0;
|
||||||
else
|
else
|
||||||
fn3 = convert_and_check_filename(PG_GETARG_TEXT_P(2), false);
|
fn3 = convert_and_check_filename(PG_GETARG_TEXT_PP(2), false);
|
||||||
|
|
||||||
if (access(fn1, W_OK) < 0)
|
if (access(fn1, W_OK) < 0)
|
||||||
{
|
{
|
||||||
|
@ -254,7 +254,7 @@ pg_file_unlink(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
requireSuperuser();
|
requireSuperuser();
|
||||||
|
|
||||||
filename = convert_and_check_filename(PG_GETARG_TEXT_P(0), false);
|
filename = convert_and_check_filename(PG_GETARG_TEXT_PP(0), false);
|
||||||
|
|
||||||
if (access(filename, W_OK) < 0)
|
if (access(filename, W_OK) < 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1502,7 +1502,7 @@ dblink_get_pkey(PG_FUNCTION_ARGS)
|
||||||
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
|
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
|
||||||
|
|
||||||
/* open target relation */
|
/* open target relation */
|
||||||
rel = get_rel_from_relname(PG_GETARG_TEXT_P(0), AccessShareLock, ACL_SELECT);
|
rel = get_rel_from_relname(PG_GETARG_TEXT_PP(0), AccessShareLock, ACL_SELECT);
|
||||||
|
|
||||||
/* get the array of attnums */
|
/* get the array of attnums */
|
||||||
results = get_pkey_attnames(rel, &numatts);
|
results = get_pkey_attnames(rel, &numatts);
|
||||||
|
@ -1603,7 +1603,7 @@ PG_FUNCTION_INFO_V1(dblink_build_sql_insert);
|
||||||
Datum
|
Datum
|
||||||
dblink_build_sql_insert(PG_FUNCTION_ARGS)
|
dblink_build_sql_insert(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname_text = PG_GETARG_TEXT_P(0);
|
text *relname_text = PG_GETARG_TEXT_PP(0);
|
||||||
int2vector *pkattnums_arg = (int2vector *) PG_GETARG_POINTER(1);
|
int2vector *pkattnums_arg = (int2vector *) PG_GETARG_POINTER(1);
|
||||||
int32 pknumatts_arg = PG_GETARG_INT32(2);
|
int32 pknumatts_arg = PG_GETARG_INT32(2);
|
||||||
ArrayType *src_pkattvals_arry = PG_GETARG_ARRAYTYPE_P(3);
|
ArrayType *src_pkattvals_arry = PG_GETARG_ARRAYTYPE_P(3);
|
||||||
|
@ -1694,7 +1694,7 @@ PG_FUNCTION_INFO_V1(dblink_build_sql_delete);
|
||||||
Datum
|
Datum
|
||||||
dblink_build_sql_delete(PG_FUNCTION_ARGS)
|
dblink_build_sql_delete(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname_text = PG_GETARG_TEXT_P(0);
|
text *relname_text = PG_GETARG_TEXT_PP(0);
|
||||||
int2vector *pkattnums_arg = (int2vector *) PG_GETARG_POINTER(1);
|
int2vector *pkattnums_arg = (int2vector *) PG_GETARG_POINTER(1);
|
||||||
int32 pknumatts_arg = PG_GETARG_INT32(2);
|
int32 pknumatts_arg = PG_GETARG_INT32(2);
|
||||||
ArrayType *tgt_pkattvals_arry = PG_GETARG_ARRAYTYPE_P(3);
|
ArrayType *tgt_pkattvals_arry = PG_GETARG_ARRAYTYPE_P(3);
|
||||||
|
@ -1771,7 +1771,7 @@ PG_FUNCTION_INFO_V1(dblink_build_sql_update);
|
||||||
Datum
|
Datum
|
||||||
dblink_build_sql_update(PG_FUNCTION_ARGS)
|
dblink_build_sql_update(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname_text = PG_GETARG_TEXT_P(0);
|
text *relname_text = PG_GETARG_TEXT_PP(0);
|
||||||
int2vector *pkattnums_arg = (int2vector *) PG_GETARG_POINTER(1);
|
int2vector *pkattnums_arg = (int2vector *) PG_GETARG_POINTER(1);
|
||||||
int32 pknumatts_arg = PG_GETARG_INT32(2);
|
int32 pknumatts_arg = PG_GETARG_INT32(2);
|
||||||
ArrayType *src_pkattvals_arry = PG_GETARG_ARRAYTYPE_P(3);
|
ArrayType *src_pkattvals_arry = PG_GETARG_ARRAYTYPE_P(3);
|
||||||
|
@ -2338,7 +2338,7 @@ quote_ident_cstr(char *rawstr)
|
||||||
char *result;
|
char *result;
|
||||||
|
|
||||||
rawstr_text = cstring_to_text(rawstr);
|
rawstr_text = cstring_to_text(rawstr);
|
||||||
result_text = DatumGetTextP(DirectFunctionCall1(quote_ident,
|
result_text = DatumGetTextPP(DirectFunctionCall1(quote_ident,
|
||||||
PointerGetDatum(rawstr_text)));
|
PointerGetDatum(rawstr_text)));
|
||||||
result = text_to_cstring(result_text);
|
result = text_to_cstring(result_text);
|
||||||
|
|
||||||
|
|
|
@ -139,7 +139,7 @@ dmetaphone(PG_FUNCTION_ARGS)
|
||||||
if (PG_ARGISNULL(0))
|
if (PG_ARGISNULL(0))
|
||||||
PG_RETURN_NULL();
|
PG_RETURN_NULL();
|
||||||
#endif
|
#endif
|
||||||
arg = PG_GETARG_TEXT_P(0);
|
arg = PG_GETARG_TEXT_PP(0);
|
||||||
aptr = text_to_cstring(arg);
|
aptr = text_to_cstring(arg);
|
||||||
|
|
||||||
DoubleMetaphone(aptr, codes);
|
DoubleMetaphone(aptr, codes);
|
||||||
|
@ -168,7 +168,7 @@ dmetaphone_alt(PG_FUNCTION_ARGS)
|
||||||
if (PG_ARGISNULL(0))
|
if (PG_ARGISNULL(0))
|
||||||
PG_RETURN_NULL();
|
PG_RETURN_NULL();
|
||||||
#endif
|
#endif
|
||||||
arg = PG_GETARG_TEXT_P(0);
|
arg = PG_GETARG_TEXT_PP(0);
|
||||||
aptr = text_to_cstring(arg);
|
aptr = text_to_cstring(arg);
|
||||||
|
|
||||||
DoubleMetaphone(aptr, codes);
|
DoubleMetaphone(aptr, codes);
|
||||||
|
|
|
@ -736,7 +736,7 @@ soundex(PG_FUNCTION_ARGS)
|
||||||
char outstr[SOUNDEX_LEN + 1];
|
char outstr[SOUNDEX_LEN + 1];
|
||||||
char *arg;
|
char *arg;
|
||||||
|
|
||||||
arg = text_to_cstring(PG_GETARG_TEXT_P(0));
|
arg = text_to_cstring(PG_GETARG_TEXT_PP(0));
|
||||||
|
|
||||||
_soundex(arg, outstr);
|
_soundex(arg, outstr);
|
||||||
|
|
||||||
|
@ -802,8 +802,8 @@ difference(PG_FUNCTION_ARGS)
|
||||||
int i,
|
int i,
|
||||||
result;
|
result;
|
||||||
|
|
||||||
_soundex(text_to_cstring(PG_GETARG_TEXT_P(0)), sndx1);
|
_soundex(text_to_cstring(PG_GETARG_TEXT_PP(0)), sndx1);
|
||||||
_soundex(text_to_cstring(PG_GETARG_TEXT_P(1)), sndx2);
|
_soundex(text_to_cstring(PG_GETARG_TEXT_PP(1)), sndx2);
|
||||||
|
|
||||||
result = 0;
|
result = 0;
|
||||||
for (i = 0; i < SOUNDEX_LEN; i++)
|
for (i = 0; i < SOUNDEX_LEN; i++)
|
||||||
|
|
|
@ -200,9 +200,9 @@ Datum
|
||||||
sort(PG_FUNCTION_ARGS)
|
sort(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
ArrayType *a = PG_GETARG_ARRAYTYPE_P_COPY(0);
|
ArrayType *a = PG_GETARG_ARRAYTYPE_P_COPY(0);
|
||||||
text *dirstr = (fcinfo->nargs == 2) ? PG_GETARG_TEXT_P(1) : NULL;
|
text *dirstr = (fcinfo->nargs == 2) ? PG_GETARG_TEXT_PP(1) : NULL;
|
||||||
int32 dc = (dirstr) ? VARSIZE(dirstr) - VARHDRSZ : 0;
|
int32 dc = (dirstr) ? VARSIZE_ANY_EXHDR(dirstr) : 0;
|
||||||
char *d = (dirstr) ? VARDATA(dirstr) : NULL;
|
char *d = (dirstr) ? VARDATA_ANY(dirstr) : NULL;
|
||||||
int dir = -1;
|
int dir = -1;
|
||||||
|
|
||||||
CHECKARRVALID(a);
|
CHECKARRVALID(a);
|
||||||
|
|
|
@ -159,7 +159,7 @@ GetBTPageStatistics(BlockNumber blkno, Buffer buffer, BTPageStat *stat)
|
||||||
Datum
|
Datum
|
||||||
bt_page_stats(PG_FUNCTION_ARGS)
|
bt_page_stats(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
uint32 blkno = PG_GETARG_UINT32(1);
|
uint32 blkno = PG_GETARG_UINT32(1);
|
||||||
Buffer buffer;
|
Buffer buffer;
|
||||||
Relation rel;
|
Relation rel;
|
||||||
|
@ -256,7 +256,7 @@ struct user_args
|
||||||
Datum
|
Datum
|
||||||
bt_page_items(PG_FUNCTION_ARGS)
|
bt_page_items(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
uint32 blkno = PG_GETARG_UINT32(1);
|
uint32 blkno = PG_GETARG_UINT32(1);
|
||||||
Datum result;
|
Datum result;
|
||||||
char *values[6];
|
char *values[6];
|
||||||
|
@ -408,7 +408,7 @@ bt_page_items(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
bt_metap(PG_FUNCTION_ARGS)
|
bt_metap(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
Datum result;
|
Datum result;
|
||||||
Relation rel;
|
Relation rel;
|
||||||
RangeVar *relrv;
|
RangeVar *relrv;
|
||||||
|
|
|
@ -45,7 +45,7 @@ PG_FUNCTION_INFO_V1(get_raw_page);
|
||||||
Datum
|
Datum
|
||||||
get_raw_page(PG_FUNCTION_ARGS)
|
get_raw_page(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
uint32 blkno = PG_GETARG_UINT32(1);
|
uint32 blkno = PG_GETARG_UINT32(1);
|
||||||
bytea *raw_page;
|
bytea *raw_page;
|
||||||
|
|
||||||
|
@ -74,8 +74,8 @@ PG_FUNCTION_INFO_V1(get_raw_page_fork);
|
||||||
Datum
|
Datum
|
||||||
get_raw_page_fork(PG_FUNCTION_ARGS)
|
get_raw_page_fork(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
text *forkname = PG_GETARG_TEXT_P(1);
|
text *forkname = PG_GETARG_TEXT_PP(1);
|
||||||
uint32 blkno = PG_GETARG_UINT32(2);
|
uint32 blkno = PG_GETARG_UINT32(2);
|
||||||
bytea *raw_page;
|
bytea *raw_page;
|
||||||
ForkNumber forknum;
|
ForkNumber forknum;
|
||||||
|
@ -184,7 +184,7 @@ get_page_from_raw(bytea *raw_page)
|
||||||
Page page;
|
Page page;
|
||||||
int raw_page_size;
|
int raw_page_size;
|
||||||
|
|
||||||
raw_page_size = VARSIZE(raw_page) - VARHDRSZ;
|
raw_page_size = VARSIZE_ANY_EXHDR(raw_page);
|
||||||
|
|
||||||
if (raw_page_size != BLCKSZ)
|
if (raw_page_size != BLCKSZ)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
|
@ -195,7 +195,7 @@ get_page_from_raw(bytea *raw_page)
|
||||||
|
|
||||||
page = palloc(raw_page_size);
|
page = palloc(raw_page_size);
|
||||||
|
|
||||||
memcpy(page, VARDATA(raw_page), raw_page_size);
|
memcpy(page, VARDATA_ANY(raw_page), raw_page_size);
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@ pg_prewarm(PG_FUNCTION_ARGS)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
(errmsg("prewarm type cannot be null"))));
|
(errmsg("prewarm type cannot be null"))));
|
||||||
type = PG_GETARG_TEXT_P(1);
|
type = PG_GETARG_TEXT_PP(1);
|
||||||
ttype = text_to_cstring(type);
|
ttype = text_to_cstring(type);
|
||||||
if (strcmp(ttype, "prefetch") == 0)
|
if (strcmp(ttype, "prefetch") == 0)
|
||||||
ptype = PREWARM_PREFETCH;
|
ptype = PREWARM_PREFETCH;
|
||||||
|
@ -99,7 +99,7 @@ pg_prewarm(PG_FUNCTION_ARGS)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
(errmsg("relation fork cannot be null"))));
|
(errmsg("relation fork cannot be null"))));
|
||||||
forkName = PG_GETARG_TEXT_P(2);
|
forkName = PG_GETARG_TEXT_PP(2);
|
||||||
forkString = text_to_cstring(forkName);
|
forkString = text_to_cstring(forkName);
|
||||||
forkNumber = forkname_to_number(forkString);
|
forkNumber = forkname_to_number(forkString);
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ gin_extract_trgm(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
gin_extract_value_trgm(PG_FUNCTION_ARGS)
|
gin_extract_value_trgm(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *val = (text *) PG_GETARG_TEXT_P(0);
|
text *val = (text *) PG_GETARG_TEXT_PP(0);
|
||||||
int32 *nentries = (int32 *) PG_GETARG_POINTER(1);
|
int32 *nentries = (int32 *) PG_GETARG_POINTER(1);
|
||||||
Datum *entries = NULL;
|
Datum *entries = NULL;
|
||||||
TRGM *trg;
|
TRGM *trg;
|
||||||
|
@ -43,7 +43,7 @@ gin_extract_value_trgm(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
*nentries = 0;
|
*nentries = 0;
|
||||||
|
|
||||||
trg = generate_trgm(VARDATA(val), VARSIZE(val) - VARHDRSZ);
|
trg = generate_trgm(VARDATA_ANY(val), VARSIZE_ANY_EXHDR(val));
|
||||||
trglen = ARRNELEM(trg);
|
trglen = ARRNELEM(trg);
|
||||||
|
|
||||||
if (trglen > 0)
|
if (trglen > 0)
|
||||||
|
@ -70,7 +70,7 @@ gin_extract_value_trgm(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
gin_extract_query_trgm(PG_FUNCTION_ARGS)
|
gin_extract_query_trgm(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *val = (text *) PG_GETARG_TEXT_P(0);
|
text *val = (text *) PG_GETARG_TEXT_PP(0);
|
||||||
int32 *nentries = (int32 *) PG_GETARG_POINTER(1);
|
int32 *nentries = (int32 *) PG_GETARG_POINTER(1);
|
||||||
StrategyNumber strategy = PG_GETARG_UINT16(2);
|
StrategyNumber strategy = PG_GETARG_UINT16(2);
|
||||||
|
|
||||||
|
@ -90,7 +90,7 @@ gin_extract_query_trgm(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
case SimilarityStrategyNumber:
|
case SimilarityStrategyNumber:
|
||||||
case WordSimilarityStrategyNumber:
|
case WordSimilarityStrategyNumber:
|
||||||
trg = generate_trgm(VARDATA(val), VARSIZE(val) - VARHDRSZ);
|
trg = generate_trgm(VARDATA_ANY(val), VARSIZE_ANY_EXHDR(val));
|
||||||
break;
|
break;
|
||||||
case ILikeStrategyNumber:
|
case ILikeStrategyNumber:
|
||||||
#ifndef IGNORECASE
|
#ifndef IGNORECASE
|
||||||
|
@ -103,7 +103,8 @@ gin_extract_query_trgm(PG_FUNCTION_ARGS)
|
||||||
* For wildcard search we extract all the trigrams that every
|
* For wildcard search we extract all the trigrams that every
|
||||||
* potentially-matching string must include.
|
* potentially-matching string must include.
|
||||||
*/
|
*/
|
||||||
trg = generate_wildcard_trgm(VARDATA(val), VARSIZE(val) - VARHDRSZ);
|
trg = generate_wildcard_trgm(VARDATA_ANY(val),
|
||||||
|
VARSIZE_ANY_EXHDR(val));
|
||||||
break;
|
break;
|
||||||
case RegExpICaseStrategyNumber:
|
case RegExpICaseStrategyNumber:
|
||||||
#ifndef IGNORECASE
|
#ifndef IGNORECASE
|
||||||
|
@ -170,7 +171,7 @@ gin_trgm_consistent(PG_FUNCTION_ARGS)
|
||||||
bool *check = (bool *) PG_GETARG_POINTER(0);
|
bool *check = (bool *) PG_GETARG_POINTER(0);
|
||||||
StrategyNumber strategy = PG_GETARG_UINT16(1);
|
StrategyNumber strategy = PG_GETARG_UINT16(1);
|
||||||
|
|
||||||
/* text *query = PG_GETARG_TEXT_P(2); */
|
/* text *query = PG_GETARG_TEXT_PP(2); */
|
||||||
int32 nkeys = PG_GETARG_INT32(3);
|
int32 nkeys = PG_GETARG_INT32(3);
|
||||||
Pointer *extra_data = (Pointer *) PG_GETARG_POINTER(4);
|
Pointer *extra_data = (Pointer *) PG_GETARG_POINTER(4);
|
||||||
bool *recheck = (bool *) PG_GETARG_POINTER(5);
|
bool *recheck = (bool *) PG_GETARG_POINTER(5);
|
||||||
|
@ -268,7 +269,7 @@ gin_trgm_triconsistent(PG_FUNCTION_ARGS)
|
||||||
GinTernaryValue *check = (GinTernaryValue *) PG_GETARG_POINTER(0);
|
GinTernaryValue *check = (GinTernaryValue *) PG_GETARG_POINTER(0);
|
||||||
StrategyNumber strategy = PG_GETARG_UINT16(1);
|
StrategyNumber strategy = PG_GETARG_UINT16(1);
|
||||||
|
|
||||||
/* text *query = PG_GETARG_TEXT_P(2); */
|
/* text *query = PG_GETARG_TEXT_PP(2); */
|
||||||
int32 nkeys = PG_GETARG_INT32(3);
|
int32 nkeys = PG_GETARG_INT32(3);
|
||||||
Pointer *extra_data = (Pointer *) PG_GETARG_POINTER(4);
|
Pointer *extra_data = (Pointer *) PG_GETARG_POINTER(4);
|
||||||
GinTernaryValue res = GIN_MAYBE;
|
GinTernaryValue res = GIN_MAYBE;
|
||||||
|
|
|
@ -100,9 +100,9 @@ gtrgm_compress(PG_FUNCTION_ARGS)
|
||||||
if (entry->leafkey)
|
if (entry->leafkey)
|
||||||
{ /* trgm */
|
{ /* trgm */
|
||||||
TRGM *res;
|
TRGM *res;
|
||||||
text *val = DatumGetTextP(entry->key);
|
text *val = DatumGetTextPP(entry->key);
|
||||||
|
|
||||||
res = generate_trgm(VARDATA(val), VARSIZE(val) - VARHDRSZ);
|
res = generate_trgm(VARDATA_ANY(val), VARSIZE_ANY_EXHDR(val));
|
||||||
retval = (GISTENTRY *) palloc(sizeof(GISTENTRY));
|
retval = (GISTENTRY *) palloc(sizeof(GISTENTRY));
|
||||||
gistentryinit(*retval, PointerGetDatum(res),
|
gistentryinit(*retval, PointerGetDatum(res),
|
||||||
entry->rel, entry->page,
|
entry->rel, entry->page,
|
||||||
|
@ -142,7 +142,7 @@ gtrgm_decompress(PG_FUNCTION_ARGS)
|
||||||
GISTENTRY *retval;
|
GISTENTRY *retval;
|
||||||
text *key;
|
text *key;
|
||||||
|
|
||||||
key = DatumGetTextP(entry->key);
|
key = DatumGetTextPP(entry->key);
|
||||||
|
|
||||||
if (key != (text *) DatumGetPointer(entry->key))
|
if (key != (text *) DatumGetPointer(entry->key))
|
||||||
{
|
{
|
||||||
|
@ -200,11 +200,12 @@ gtrgm_consistent(PG_FUNCTION_ARGS)
|
||||||
* depends on strategy.
|
* depends on strategy.
|
||||||
*
|
*
|
||||||
* The cached structure is a single palloc chunk containing the
|
* The cached structure is a single palloc chunk containing the
|
||||||
* gtrgm_consistent_cache header, then the input query (starting at a
|
* gtrgm_consistent_cache header, then the input query (4-byte length
|
||||||
* MAXALIGN boundary), then the TRGM value (also starting at a MAXALIGN
|
* word, uncompressed, starting at a MAXALIGN boundary), then the TRGM
|
||||||
* boundary). However we don't try to include the regex graph (if any) in
|
* value (also starting at a MAXALIGN boundary). However we don't try to
|
||||||
* that struct. (XXX currently, this approach can leak regex graphs
|
* include the regex graph (if any) in that struct. (XXX currently, this
|
||||||
* across index rescans. Not clear if that's worth fixing.)
|
* approach can leak regex graphs across index rescans. Not clear if
|
||||||
|
* that's worth fixing.)
|
||||||
*/
|
*/
|
||||||
cache = (gtrgm_consistent_cache *) fcinfo->flinfo->fn_extra;
|
cache = (gtrgm_consistent_cache *) fcinfo->flinfo->fn_extra;
|
||||||
if (cache == NULL ||
|
if (cache == NULL ||
|
||||||
|
|
|
@ -878,14 +878,14 @@ trgm2int(trgm *ptr)
|
||||||
Datum
|
Datum
|
||||||
show_trgm(PG_FUNCTION_ARGS)
|
show_trgm(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in = PG_GETARG_TEXT_P(0);
|
text *in = PG_GETARG_TEXT_PP(0);
|
||||||
TRGM *trg;
|
TRGM *trg;
|
||||||
Datum *d;
|
Datum *d;
|
||||||
ArrayType *a;
|
ArrayType *a;
|
||||||
trgm *ptr;
|
trgm *ptr;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
trg = generate_trgm(VARDATA(in), VARSIZE(in) - VARHDRSZ);
|
trg = generate_trgm(VARDATA_ANY(in), VARSIZE_ANY_EXHDR(in));
|
||||||
d = (Datum *) palloc(sizeof(Datum) * (1 + ARRNELEM(trg)));
|
d = (Datum *) palloc(sizeof(Datum) * (1 + ARRNELEM(trg)));
|
||||||
|
|
||||||
for (i = 0, ptr = GETARR(trg); i < ARRNELEM(trg); i++, ptr++)
|
for (i = 0, ptr = GETARR(trg); i < ARRNELEM(trg); i++, ptr++)
|
||||||
|
@ -1053,14 +1053,14 @@ trgm_presence_map(TRGM *query, TRGM *key)
|
||||||
Datum
|
Datum
|
||||||
similarity(PG_FUNCTION_ARGS)
|
similarity(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in1 = PG_GETARG_TEXT_P(0);
|
text *in1 = PG_GETARG_TEXT_PP(0);
|
||||||
text *in2 = PG_GETARG_TEXT_P(1);
|
text *in2 = PG_GETARG_TEXT_PP(1);
|
||||||
TRGM *trg1,
|
TRGM *trg1,
|
||||||
*trg2;
|
*trg2;
|
||||||
float4 res;
|
float4 res;
|
||||||
|
|
||||||
trg1 = generate_trgm(VARDATA(in1), VARSIZE(in1) - VARHDRSZ);
|
trg1 = generate_trgm(VARDATA_ANY(in1), VARSIZE_ANY_EXHDR(in1));
|
||||||
trg2 = generate_trgm(VARDATA(in2), VARSIZE(in2) - VARHDRSZ);
|
trg2 = generate_trgm(VARDATA_ANY(in2), VARSIZE_ANY_EXHDR(in2));
|
||||||
|
|
||||||
res = cnt_sml(trg1, trg2, false);
|
res = cnt_sml(trg1, trg2, false);
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ pg_digest(PG_FUNCTION_ARGS)
|
||||||
PX_MD *md;
|
PX_MD *md;
|
||||||
bytea *res;
|
bytea *res;
|
||||||
|
|
||||||
name = PG_GETARG_TEXT_P(1);
|
name = PG_GETARG_TEXT_PP(1);
|
||||||
|
|
||||||
/* will give error if fails */
|
/* will give error if fails */
|
||||||
md = find_provider(name, (PFN) px_find_digest, "Digest", 0);
|
md = find_provider(name, (PFN) px_find_digest, "Digest", 0);
|
||||||
|
@ -72,10 +72,10 @@ pg_digest(PG_FUNCTION_ARGS)
|
||||||
res = (text *) palloc(hlen + VARHDRSZ);
|
res = (text *) palloc(hlen + VARHDRSZ);
|
||||||
SET_VARSIZE(res, hlen + VARHDRSZ);
|
SET_VARSIZE(res, hlen + VARHDRSZ);
|
||||||
|
|
||||||
arg = PG_GETARG_BYTEA_P(0);
|
arg = PG_GETARG_BYTEA_PP(0);
|
||||||
len = VARSIZE(arg) - VARHDRSZ;
|
len = VARSIZE_ANY_EXHDR(arg);
|
||||||
|
|
||||||
px_md_update(md, (uint8 *) VARDATA(arg), len);
|
px_md_update(md, (uint8 *) VARDATA_ANY(arg), len);
|
||||||
px_md_finish(md, (uint8 *) VARDATA(res));
|
px_md_finish(md, (uint8 *) VARDATA(res));
|
||||||
px_md_free(md);
|
px_md_free(md);
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ pg_hmac(PG_FUNCTION_ARGS)
|
||||||
PX_HMAC *h;
|
PX_HMAC *h;
|
||||||
bytea *res;
|
bytea *res;
|
||||||
|
|
||||||
name = PG_GETARG_TEXT_P(2);
|
name = PG_GETARG_TEXT_PP(2);
|
||||||
|
|
||||||
/* will give error if fails */
|
/* will give error if fails */
|
||||||
h = find_provider(name, (PFN) px_find_hmac, "HMAC", 0);
|
h = find_provider(name, (PFN) px_find_hmac, "HMAC", 0);
|
||||||
|
@ -110,13 +110,13 @@ pg_hmac(PG_FUNCTION_ARGS)
|
||||||
res = (text *) palloc(hlen + VARHDRSZ);
|
res = (text *) palloc(hlen + VARHDRSZ);
|
||||||
SET_VARSIZE(res, hlen + VARHDRSZ);
|
SET_VARSIZE(res, hlen + VARHDRSZ);
|
||||||
|
|
||||||
arg = PG_GETARG_BYTEA_P(0);
|
arg = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
len = VARSIZE(arg) - VARHDRSZ;
|
len = VARSIZE_ANY_EXHDR(arg);
|
||||||
klen = VARSIZE(key) - VARHDRSZ;
|
klen = VARSIZE_ANY_EXHDR(key);
|
||||||
|
|
||||||
px_hmac_init(h, (uint8 *) VARDATA(key), klen);
|
px_hmac_init(h, (uint8 *) VARDATA_ANY(key), klen);
|
||||||
px_hmac_update(h, (uint8 *) VARDATA(arg), len);
|
px_hmac_update(h, (uint8 *) VARDATA_ANY(arg), len);
|
||||||
px_hmac_finish(h, (uint8 *) VARDATA(res));
|
px_hmac_finish(h, (uint8 *) VARDATA(res));
|
||||||
px_hmac_free(h);
|
px_hmac_free(h);
|
||||||
|
|
||||||
|
@ -228,20 +228,20 @@ pg_encrypt(PG_FUNCTION_ARGS)
|
||||||
klen,
|
klen,
|
||||||
rlen;
|
rlen;
|
||||||
|
|
||||||
type = PG_GETARG_TEXT_P(2);
|
type = PG_GETARG_TEXT_PP(2);
|
||||||
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
|
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
dlen = VARSIZE(data) - VARHDRSZ;
|
dlen = VARSIZE_ANY_EXHDR(data);
|
||||||
klen = VARSIZE(key) - VARHDRSZ;
|
klen = VARSIZE_ANY_EXHDR(key);
|
||||||
|
|
||||||
rlen = px_combo_encrypt_len(c, dlen);
|
rlen = px_combo_encrypt_len(c, dlen);
|
||||||
res = palloc(VARHDRSZ + rlen);
|
res = palloc(VARHDRSZ + rlen);
|
||||||
|
|
||||||
err = px_combo_init(c, (uint8 *) VARDATA(key), klen, NULL, 0);
|
err = px_combo_init(c, (uint8 *) VARDATA_ANY(key), klen, NULL, 0);
|
||||||
if (!err)
|
if (!err)
|
||||||
err = px_combo_encrypt(c, (uint8 *) VARDATA(data), dlen,
|
err = px_combo_encrypt(c, (uint8 *) VARDATA_ANY(data), dlen,
|
||||||
(uint8 *) VARDATA(res), &rlen);
|
(uint8 *) VARDATA(res), &rlen);
|
||||||
px_combo_free(c);
|
px_combo_free(c);
|
||||||
|
|
||||||
|
@ -277,20 +277,20 @@ pg_decrypt(PG_FUNCTION_ARGS)
|
||||||
klen,
|
klen,
|
||||||
rlen;
|
rlen;
|
||||||
|
|
||||||
type = PG_GETARG_TEXT_P(2);
|
type = PG_GETARG_TEXT_PP(2);
|
||||||
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
|
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
dlen = VARSIZE(data) - VARHDRSZ;
|
dlen = VARSIZE_ANY_EXHDR(data);
|
||||||
klen = VARSIZE(key) - VARHDRSZ;
|
klen = VARSIZE_ANY_EXHDR(key);
|
||||||
|
|
||||||
rlen = px_combo_decrypt_len(c, dlen);
|
rlen = px_combo_decrypt_len(c, dlen);
|
||||||
res = palloc(VARHDRSZ + rlen);
|
res = palloc(VARHDRSZ + rlen);
|
||||||
|
|
||||||
err = px_combo_init(c, (uint8 *) VARDATA(key), klen, NULL, 0);
|
err = px_combo_init(c, (uint8 *) VARDATA_ANY(key), klen, NULL, 0);
|
||||||
if (!err)
|
if (!err)
|
||||||
err = px_combo_decrypt(c, (uint8 *) VARDATA(data), dlen,
|
err = px_combo_decrypt(c, (uint8 *) VARDATA_ANY(data), dlen,
|
||||||
(uint8 *) VARDATA(res), &rlen);
|
(uint8 *) VARDATA(res), &rlen);
|
||||||
|
|
||||||
px_combo_free(c);
|
px_combo_free(c);
|
||||||
|
@ -327,23 +327,23 @@ pg_encrypt_iv(PG_FUNCTION_ARGS)
|
||||||
ivlen,
|
ivlen,
|
||||||
rlen;
|
rlen;
|
||||||
|
|
||||||
type = PG_GETARG_TEXT_P(3);
|
type = PG_GETARG_TEXT_PP(3);
|
||||||
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
|
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
iv = PG_GETARG_BYTEA_P(2);
|
iv = PG_GETARG_BYTEA_PP(2);
|
||||||
dlen = VARSIZE(data) - VARHDRSZ;
|
dlen = VARSIZE_ANY_EXHDR(data);
|
||||||
klen = VARSIZE(key) - VARHDRSZ;
|
klen = VARSIZE_ANY_EXHDR(key);
|
||||||
ivlen = VARSIZE(iv) - VARHDRSZ;
|
ivlen = VARSIZE_ANY_EXHDR(iv);
|
||||||
|
|
||||||
rlen = px_combo_encrypt_len(c, dlen);
|
rlen = px_combo_encrypt_len(c, dlen);
|
||||||
res = palloc(VARHDRSZ + rlen);
|
res = palloc(VARHDRSZ + rlen);
|
||||||
|
|
||||||
err = px_combo_init(c, (uint8 *) VARDATA(key), klen,
|
err = px_combo_init(c, (uint8 *) VARDATA_ANY(key), klen,
|
||||||
(uint8 *) VARDATA(iv), ivlen);
|
(uint8 *) VARDATA_ANY(iv), ivlen);
|
||||||
if (!err)
|
if (!err)
|
||||||
err = px_combo_encrypt(c, (uint8 *) VARDATA(data), dlen,
|
err = px_combo_encrypt(c, (uint8 *) VARDATA_ANY(data), dlen,
|
||||||
(uint8 *) VARDATA(res), &rlen);
|
(uint8 *) VARDATA(res), &rlen);
|
||||||
|
|
||||||
px_combo_free(c);
|
px_combo_free(c);
|
||||||
|
@ -381,23 +381,23 @@ pg_decrypt_iv(PG_FUNCTION_ARGS)
|
||||||
rlen,
|
rlen,
|
||||||
ivlen;
|
ivlen;
|
||||||
|
|
||||||
type = PG_GETARG_TEXT_P(3);
|
type = PG_GETARG_TEXT_PP(3);
|
||||||
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
|
c = find_provider(type, (PFN) px_find_combo, "Cipher", 0);
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
iv = PG_GETARG_BYTEA_P(2);
|
iv = PG_GETARG_BYTEA_PP(2);
|
||||||
dlen = VARSIZE(data) - VARHDRSZ;
|
dlen = VARSIZE_ANY_EXHDR(data);
|
||||||
klen = VARSIZE(key) - VARHDRSZ;
|
klen = VARSIZE_ANY_EXHDR(key);
|
||||||
ivlen = VARSIZE(iv) - VARHDRSZ;
|
ivlen = VARSIZE_ANY_EXHDR(iv);
|
||||||
|
|
||||||
rlen = px_combo_decrypt_len(c, dlen);
|
rlen = px_combo_decrypt_len(c, dlen);
|
||||||
res = palloc(VARHDRSZ + rlen);
|
res = palloc(VARHDRSZ + rlen);
|
||||||
|
|
||||||
err = px_combo_init(c, (uint8 *) VARDATA(key), klen,
|
err = px_combo_init(c, (uint8 *) VARDATA_ANY(key), klen,
|
||||||
(uint8 *) VARDATA(iv), ivlen);
|
(uint8 *) VARDATA_ANY(iv), ivlen);
|
||||||
if (!err)
|
if (!err)
|
||||||
err = px_combo_decrypt(c, (uint8 *) VARDATA(data), dlen,
|
err = px_combo_decrypt(c, (uint8 *) VARDATA_ANY(data), dlen,
|
||||||
(uint8 *) VARDATA(res), &rlen);
|
(uint8 *) VARDATA(res), &rlen);
|
||||||
|
|
||||||
px_combo_free(c);
|
px_combo_free(c);
|
||||||
|
@ -480,8 +480,8 @@ find_provider(text *name,
|
||||||
char *buf;
|
char *buf;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
buf = downcase_truncate_identifier(VARDATA(name),
|
buf = downcase_truncate_identifier(VARDATA_ANY(name),
|
||||||
VARSIZE(name) - VARHDRSZ,
|
VARSIZE_ANY_EXHDR(name),
|
||||||
false);
|
false);
|
||||||
|
|
||||||
err = provider_lookup(buf, &res);
|
err = provider_lookup(buf, &res);
|
||||||
|
|
|
@ -67,9 +67,9 @@ PG_FUNCTION_INFO_V1(pgp_armor_headers);
|
||||||
static text *
|
static text *
|
||||||
convert_charset(text *src, int cset_from, int cset_to)
|
convert_charset(text *src, int cset_from, int cset_to)
|
||||||
{
|
{
|
||||||
int src_len = VARSIZE(src) - VARHDRSZ;
|
int src_len = VARSIZE_ANY_EXHDR(src);
|
||||||
unsigned char *dst;
|
unsigned char *dst;
|
||||||
unsigned char *csrc = (unsigned char *) VARDATA(src);
|
unsigned char *csrc = (unsigned char *) VARDATA_ANY(src);
|
||||||
text *res;
|
text *res;
|
||||||
|
|
||||||
dst = pg_do_encoding_conversion(csrc, src_len, cset_from, cset_to);
|
dst = pg_do_encoding_conversion(csrc, src_len, cset_from, cset_to);
|
||||||
|
@ -109,7 +109,7 @@ string_is_ascii(const char *str)
|
||||||
static void
|
static void
|
||||||
clear_and_pfree(text *p)
|
clear_and_pfree(text *p)
|
||||||
{
|
{
|
||||||
px_memset(p, 0, VARSIZE(p));
|
px_memset(p, 0, VARSIZE_ANY(p));
|
||||||
pfree(p);
|
pfree(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -356,8 +356,8 @@ parse_args(PGP_Context *ctx, uint8 *args, int arg_len,
|
||||||
static MBuf *
|
static MBuf *
|
||||||
create_mbuf_from_vardata(text *data)
|
create_mbuf_from_vardata(text *data)
|
||||||
{
|
{
|
||||||
return mbuf_create_from_data((uint8 *) VARDATA(data),
|
return mbuf_create_from_data((uint8 *) VARDATA_ANY(data),
|
||||||
VARSIZE(data) - VARHDRSZ);
|
VARSIZE_ANY_EXHDR(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -369,8 +369,8 @@ init_work(PGP_Context **ctx_p, int is_text,
|
||||||
fill_expect(ex, is_text);
|
fill_expect(ex, is_text);
|
||||||
|
|
||||||
if (err == 0 && args != NULL)
|
if (err == 0 && args != NULL)
|
||||||
err = parse_args(*ctx_p, (uint8 *) VARDATA(args),
|
err = parse_args(*ctx_p, (uint8 *) VARDATA_ANY(args),
|
||||||
VARSIZE(args) - VARHDRSZ, ex);
|
VARSIZE_ANY_EXHDR(args), ex);
|
||||||
|
|
||||||
if (err)
|
if (err)
|
||||||
px_THROW_ERROR(err);
|
px_THROW_ERROR(err);
|
||||||
|
@ -408,7 +408,7 @@ encrypt_internal(int is_pubenc, int is_text,
|
||||||
}
|
}
|
||||||
|
|
||||||
src = create_mbuf_from_vardata(data);
|
src = create_mbuf_from_vardata(data);
|
||||||
dst = mbuf_create(VARSIZE(data) + 128);
|
dst = mbuf_create(VARSIZE_ANY(data) + 128);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* reserve room for header
|
* reserve room for header
|
||||||
|
@ -427,8 +427,8 @@ encrypt_internal(int is_pubenc, int is_text,
|
||||||
mbuf_free(kbuf);
|
mbuf_free(kbuf);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
err = pgp_set_symkey(ctx, (uint8 *) VARDATA(key),
|
err = pgp_set_symkey(ctx, (uint8 *) VARDATA_ANY(key),
|
||||||
VARSIZE(key) - VARHDRSZ);
|
VARSIZE_ANY_EXHDR(key));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* encrypt
|
* encrypt
|
||||||
|
@ -485,9 +485,9 @@ decrypt_internal(int is_pubenc, int need_text, text *data,
|
||||||
|
|
||||||
init_work(&ctx, need_text, args, &ex);
|
init_work(&ctx, need_text, args, &ex);
|
||||||
|
|
||||||
src = mbuf_create_from_data((uint8 *) VARDATA(data),
|
src = mbuf_create_from_data((uint8 *) VARDATA_ANY(data),
|
||||||
VARSIZE(data) - VARHDRSZ);
|
VARSIZE_ANY_EXHDR(data));
|
||||||
dst = mbuf_create(VARSIZE(data) + 2048);
|
dst = mbuf_create(VARSIZE_ANY(data) + 2048);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* reserve room for header
|
* reserve room for header
|
||||||
|
@ -505,16 +505,16 @@ decrypt_internal(int is_pubenc, int need_text, text *data,
|
||||||
|
|
||||||
if (keypsw)
|
if (keypsw)
|
||||||
{
|
{
|
||||||
psw = (uint8 *) VARDATA(keypsw);
|
psw = (uint8 *) VARDATA_ANY(keypsw);
|
||||||
psw_len = VARSIZE(keypsw) - VARHDRSZ;
|
psw_len = VARSIZE_ANY_EXHDR(keypsw);
|
||||||
}
|
}
|
||||||
kbuf = create_mbuf_from_vardata(key);
|
kbuf = create_mbuf_from_vardata(key);
|
||||||
err = pgp_set_pubkey(ctx, kbuf, psw, psw_len, 1);
|
err = pgp_set_pubkey(ctx, kbuf, psw, psw_len, 1);
|
||||||
mbuf_free(kbuf);
|
mbuf_free(kbuf);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
err = pgp_set_symkey(ctx, (uint8 *) VARDATA(key),
|
err = pgp_set_symkey(ctx, (uint8 *) VARDATA_ANY(key),
|
||||||
VARSIZE(key) - VARHDRSZ);
|
VARSIZE_ANY_EXHDR(key));
|
||||||
|
|
||||||
/* decrypt */
|
/* decrypt */
|
||||||
if (err >= 0)
|
if (err >= 0)
|
||||||
|
@ -571,10 +571,10 @@ pgp_sym_encrypt_bytea(PG_FUNCTION_ARGS)
|
||||||
text *arg = NULL;
|
text *arg = NULL;
|
||||||
text *res;
|
text *res;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
if (PG_NARGS() > 2)
|
if (PG_NARGS() > 2)
|
||||||
arg = PG_GETARG_BYTEA_P(2);
|
arg = PG_GETARG_BYTEA_PP(2);
|
||||||
|
|
||||||
res = encrypt_internal(0, 0, data, key, arg);
|
res = encrypt_internal(0, 0, data, key, arg);
|
||||||
|
|
||||||
|
@ -593,10 +593,10 @@ pgp_sym_encrypt_text(PG_FUNCTION_ARGS)
|
||||||
text *arg = NULL;
|
text *arg = NULL;
|
||||||
text *res;
|
text *res;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
if (PG_NARGS() > 2)
|
if (PG_NARGS() > 2)
|
||||||
arg = PG_GETARG_BYTEA_P(2);
|
arg = PG_GETARG_BYTEA_PP(2);
|
||||||
|
|
||||||
res = encrypt_internal(0, 1, data, key, arg);
|
res = encrypt_internal(0, 1, data, key, arg);
|
||||||
|
|
||||||
|
@ -616,10 +616,10 @@ pgp_sym_decrypt_bytea(PG_FUNCTION_ARGS)
|
||||||
text *arg = NULL;
|
text *arg = NULL;
|
||||||
text *res;
|
text *res;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
if (PG_NARGS() > 2)
|
if (PG_NARGS() > 2)
|
||||||
arg = PG_GETARG_BYTEA_P(2);
|
arg = PG_GETARG_BYTEA_PP(2);
|
||||||
|
|
||||||
res = decrypt_internal(0, 0, data, key, NULL, arg);
|
res = decrypt_internal(0, 0, data, key, NULL, arg);
|
||||||
|
|
||||||
|
@ -638,10 +638,10 @@ pgp_sym_decrypt_text(PG_FUNCTION_ARGS)
|
||||||
text *arg = NULL;
|
text *arg = NULL;
|
||||||
text *res;
|
text *res;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
if (PG_NARGS() > 2)
|
if (PG_NARGS() > 2)
|
||||||
arg = PG_GETARG_BYTEA_P(2);
|
arg = PG_GETARG_BYTEA_PP(2);
|
||||||
|
|
||||||
res = decrypt_internal(0, 1, data, key, NULL, arg);
|
res = decrypt_internal(0, 1, data, key, NULL, arg);
|
||||||
|
|
||||||
|
@ -664,10 +664,10 @@ pgp_pub_encrypt_bytea(PG_FUNCTION_ARGS)
|
||||||
text *arg = NULL;
|
text *arg = NULL;
|
||||||
text *res;
|
text *res;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
if (PG_NARGS() > 2)
|
if (PG_NARGS() > 2)
|
||||||
arg = PG_GETARG_BYTEA_P(2);
|
arg = PG_GETARG_BYTEA_PP(2);
|
||||||
|
|
||||||
res = encrypt_internal(1, 0, data, key, arg);
|
res = encrypt_internal(1, 0, data, key, arg);
|
||||||
|
|
||||||
|
@ -686,10 +686,10 @@ pgp_pub_encrypt_text(PG_FUNCTION_ARGS)
|
||||||
text *arg = NULL;
|
text *arg = NULL;
|
||||||
text *res;
|
text *res;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
if (PG_NARGS() > 2)
|
if (PG_NARGS() > 2)
|
||||||
arg = PG_GETARG_BYTEA_P(2);
|
arg = PG_GETARG_BYTEA_PP(2);
|
||||||
|
|
||||||
res = encrypt_internal(1, 1, data, key, arg);
|
res = encrypt_internal(1, 1, data, key, arg);
|
||||||
|
|
||||||
|
@ -710,12 +710,12 @@ pgp_pub_decrypt_bytea(PG_FUNCTION_ARGS)
|
||||||
*arg = NULL;
|
*arg = NULL;
|
||||||
text *res;
|
text *res;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
if (PG_NARGS() > 2)
|
if (PG_NARGS() > 2)
|
||||||
psw = PG_GETARG_BYTEA_P(2);
|
psw = PG_GETARG_BYTEA_PP(2);
|
||||||
if (PG_NARGS() > 3)
|
if (PG_NARGS() > 3)
|
||||||
arg = PG_GETARG_BYTEA_P(3);
|
arg = PG_GETARG_BYTEA_PP(3);
|
||||||
|
|
||||||
res = decrypt_internal(1, 0, data, key, psw, arg);
|
res = decrypt_internal(1, 0, data, key, psw, arg);
|
||||||
|
|
||||||
|
@ -737,12 +737,12 @@ pgp_pub_decrypt_text(PG_FUNCTION_ARGS)
|
||||||
*arg = NULL;
|
*arg = NULL;
|
||||||
text *res;
|
text *res;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
key = PG_GETARG_BYTEA_P(1);
|
key = PG_GETARG_BYTEA_PP(1);
|
||||||
if (PG_NARGS() > 2)
|
if (PG_NARGS() > 2)
|
||||||
psw = PG_GETARG_BYTEA_P(2);
|
psw = PG_GETARG_BYTEA_PP(2);
|
||||||
if (PG_NARGS() > 3)
|
if (PG_NARGS() > 3)
|
||||||
arg = PG_GETARG_BYTEA_P(3);
|
arg = PG_GETARG_BYTEA_PP(3);
|
||||||
|
|
||||||
res = decrypt_internal(1, 1, data, key, psw, arg);
|
res = decrypt_internal(1, 1, data, key, psw, arg);
|
||||||
|
|
||||||
|
@ -865,8 +865,8 @@ pg_armor(PG_FUNCTION_ARGS)
|
||||||
char **keys = NULL,
|
char **keys = NULL,
|
||||||
**values = NULL;
|
**values = NULL;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
data_len = VARSIZE(data) - VARHDRSZ;
|
data_len = VARSIZE_ANY_EXHDR(data);
|
||||||
if (PG_NARGS() == 3)
|
if (PG_NARGS() == 3)
|
||||||
{
|
{
|
||||||
num_headers = parse_key_value_arrays(PG_GETARG_ARRAYTYPE_P(1),
|
num_headers = parse_key_value_arrays(PG_GETARG_ARRAYTYPE_P(1),
|
||||||
|
@ -880,7 +880,7 @@ pg_armor(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
initStringInfo(&buf);
|
initStringInfo(&buf);
|
||||||
|
|
||||||
pgp_armor_encode((uint8 *) VARDATA(data), data_len, &buf,
|
pgp_armor_encode((uint8 *) VARDATA_ANY(data), data_len, &buf,
|
||||||
num_headers, keys, values);
|
num_headers, keys, values);
|
||||||
|
|
||||||
res = palloc(VARHDRSZ + buf.len);
|
res = palloc(VARHDRSZ + buf.len);
|
||||||
|
@ -901,12 +901,12 @@ pg_dearmor(PG_FUNCTION_ARGS)
|
||||||
int ret;
|
int ret;
|
||||||
StringInfoData buf;
|
StringInfoData buf;
|
||||||
|
|
||||||
data = PG_GETARG_TEXT_P(0);
|
data = PG_GETARG_TEXT_PP(0);
|
||||||
data_len = VARSIZE(data) - VARHDRSZ;
|
data_len = VARSIZE_ANY_EXHDR(data);
|
||||||
|
|
||||||
initStringInfo(&buf);
|
initStringInfo(&buf);
|
||||||
|
|
||||||
ret = pgp_armor_decode((uint8 *) VARDATA(data), data_len, &buf);
|
ret = pgp_armor_decode((uint8 *) VARDATA_ANY(data), data_len, &buf);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
px_THROW_ERROR(ret);
|
px_THROW_ERROR(ret);
|
||||||
res = palloc(VARHDRSZ + buf.len);
|
res = palloc(VARHDRSZ + buf.len);
|
||||||
|
@ -1004,7 +1004,7 @@ pgp_key_id_w(PG_FUNCTION_ARGS)
|
||||||
int res_len;
|
int res_len;
|
||||||
MBuf *buf;
|
MBuf *buf;
|
||||||
|
|
||||||
data = PG_GETARG_BYTEA_P(0);
|
data = PG_GETARG_BYTEA_PP(0);
|
||||||
buf = create_mbuf_from_vardata(data);
|
buf = create_mbuf_from_vardata(data);
|
||||||
res = palloc(VARHDRSZ + 17);
|
res = palloc(VARHDRSZ + 17);
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ pgrowlocks(PG_FUNCTION_ARGS)
|
||||||
attinmeta = TupleDescGetAttInMetadata(tupdesc);
|
attinmeta = TupleDescGetAttInMetadata(tupdesc);
|
||||||
funcctx->attinmeta = attinmeta;
|
funcctx->attinmeta = attinmeta;
|
||||||
|
|
||||||
relname = PG_GETARG_TEXT_P(0);
|
relname = PG_GETARG_TEXT_PP(0);
|
||||||
relrv = makeRangeVarFromNameList(textToQualifiedNameList(relname));
|
relrv = makeRangeVarFromNameList(textToQualifiedNameList(relname));
|
||||||
rel = heap_openrv(relrv, AccessShareLock);
|
rel = heap_openrv(relrv, AccessShareLock);
|
||||||
|
|
||||||
|
|
|
@ -143,7 +143,7 @@ static void check_relation_relkind(Relation rel);
|
||||||
Datum
|
Datum
|
||||||
pgstatindex(PG_FUNCTION_ARGS)
|
pgstatindex(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
Relation rel;
|
Relation rel;
|
||||||
RangeVar *relrv;
|
RangeVar *relrv;
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ pgstatindex(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
pgstatindex_v1_5(PG_FUNCTION_ARGS)
|
pgstatindex_v1_5(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
Relation rel;
|
Relation rel;
|
||||||
RangeVar *relrv;
|
RangeVar *relrv;
|
||||||
|
|
||||||
|
@ -377,7 +377,7 @@ pgstatindex_impl(Relation rel, FunctionCallInfo fcinfo)
|
||||||
Datum
|
Datum
|
||||||
pg_relpages(PG_FUNCTION_ARGS)
|
pg_relpages(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
int64 relpages;
|
int64 relpages;
|
||||||
Relation rel;
|
Relation rel;
|
||||||
RangeVar *relrv;
|
RangeVar *relrv;
|
||||||
|
@ -406,7 +406,7 @@ pg_relpages(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
pg_relpages_v1_5(PG_FUNCTION_ARGS)
|
pg_relpages_v1_5(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
int64 relpages;
|
int64 relpages;
|
||||||
Relation rel;
|
Relation rel;
|
||||||
RangeVar *relrv;
|
RangeVar *relrv;
|
||||||
|
|
|
@ -165,7 +165,7 @@ build_pgstattuple_type(pgstattuple_type *stat, FunctionCallInfo fcinfo)
|
||||||
Datum
|
Datum
|
||||||
pgstattuple(PG_FUNCTION_ARGS)
|
pgstattuple(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
RangeVar *relrv;
|
RangeVar *relrv;
|
||||||
Relation rel;
|
Relation rel;
|
||||||
|
|
||||||
|
@ -191,7 +191,7 @@ pgstattuple(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
pgstattuple_v1_5(PG_FUNCTION_ARGS)
|
pgstattuple_v1_5(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
RangeVar *relrv;
|
RangeVar *relrv;
|
||||||
Relation rel;
|
Relation rel;
|
||||||
|
|
||||||
|
|
|
@ -590,7 +590,7 @@ PG_FUNCTION_INFO_V1(sepgsql_mcstrans_in);
|
||||||
Datum
|
Datum
|
||||||
sepgsql_mcstrans_in(PG_FUNCTION_ARGS)
|
sepgsql_mcstrans_in(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *label = PG_GETARG_TEXT_P(0);
|
text *label = PG_GETARG_TEXT_PP(0);
|
||||||
char *raw_label;
|
char *raw_label;
|
||||||
char *result;
|
char *result;
|
||||||
|
|
||||||
|
@ -630,7 +630,7 @@ PG_FUNCTION_INFO_V1(sepgsql_mcstrans_out);
|
||||||
Datum
|
Datum
|
||||||
sepgsql_mcstrans_out(PG_FUNCTION_ARGS)
|
sepgsql_mcstrans_out(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *label = PG_GETARG_TEXT_P(0);
|
text *label = PG_GETARG_TEXT_PP(0);
|
||||||
char *qual_label;
|
char *qual_label;
|
||||||
char *result;
|
char *result;
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,7 @@ autoinc(PG_FUNCTION_ARGS)
|
||||||
newvals[chnattrs] = Int32GetDatum((int32) DatumGetInt64(newvals[chnattrs]));
|
newvals[chnattrs] = Int32GetDatum((int32) DatumGetInt64(newvals[chnattrs]));
|
||||||
}
|
}
|
||||||
newnulls[chnattrs] = false;
|
newnulls[chnattrs] = false;
|
||||||
pfree(DatumGetTextP(seqname));
|
pfree(DatumGetTextPP(seqname));
|
||||||
chnattrs++;
|
chnattrs++;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -225,7 +225,7 @@ PG_FUNCTION_INFO_V1(ssl_client_dn_field);
|
||||||
Datum
|
Datum
|
||||||
ssl_client_dn_field(PG_FUNCTION_ARGS)
|
ssl_client_dn_field(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *fieldname = PG_GETARG_TEXT_P(0);
|
text *fieldname = PG_GETARG_TEXT_PP(0);
|
||||||
Datum result;
|
Datum result;
|
||||||
|
|
||||||
if (!(MyProcPort->peer))
|
if (!(MyProcPort->peer))
|
||||||
|
@ -260,7 +260,7 @@ PG_FUNCTION_INFO_V1(ssl_issuer_field);
|
||||||
Datum
|
Datum
|
||||||
ssl_issuer_field(PG_FUNCTION_ARGS)
|
ssl_issuer_field(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *fieldname = PG_GETARG_TEXT_P(0);
|
text *fieldname = PG_GETARG_TEXT_PP(0);
|
||||||
Datum result;
|
Datum result;
|
||||||
|
|
||||||
if (!(MyProcPort->peer))
|
if (!(MyProcPort->peer))
|
||||||
|
|
|
@ -384,14 +384,14 @@ unaccent_dict(PG_FUNCTION_ARGS)
|
||||||
dictOid = PG_GETARG_OID(0);
|
dictOid = PG_GETARG_OID(0);
|
||||||
strArg = 1;
|
strArg = 1;
|
||||||
}
|
}
|
||||||
str = PG_GETARG_TEXT_P(strArg);
|
str = PG_GETARG_TEXT_PP(strArg);
|
||||||
|
|
||||||
dict = lookup_ts_dictionary_cache(dictOid);
|
dict = lookup_ts_dictionary_cache(dictOid);
|
||||||
|
|
||||||
res = (TSLexeme *) DatumGetPointer(FunctionCall4(&(dict->lexize),
|
res = (TSLexeme *) DatumGetPointer(FunctionCall4(&(dict->lexize),
|
||||||
PointerGetDatum(dict->dictData),
|
PointerGetDatum(dict->dictData),
|
||||||
PointerGetDatum(VARDATA(str)),
|
PointerGetDatum(VARDATA_ANY(str)),
|
||||||
Int32GetDatum(VARSIZE(str) - VARHDRSZ),
|
Int32GetDatum(VARSIZE_ANY_EXHDR(str)),
|
||||||
PointerGetDatum(NULL)));
|
PointerGetDatum(NULL)));
|
||||||
|
|
||||||
PG_FREE_IF_COPY(str, strArg);
|
PG_FREE_IF_COPY(str, strArg);
|
||||||
|
|
|
@ -503,13 +503,13 @@ Datum
|
||||||
uuid_generate_v3(PG_FUNCTION_ARGS)
|
uuid_generate_v3(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
pg_uuid_t *ns = PG_GETARG_UUID_P(0);
|
pg_uuid_t *ns = PG_GETARG_UUID_P(0);
|
||||||
text *name = PG_GETARG_TEXT_P(1);
|
text *name = PG_GETARG_TEXT_PP(1);
|
||||||
|
|
||||||
#ifdef HAVE_UUID_OSSP
|
#ifdef HAVE_UUID_OSSP
|
||||||
return uuid_generate_v35_internal(UUID_MAKE_V3, ns, name);
|
return uuid_generate_v35_internal(UUID_MAKE_V3, ns, name);
|
||||||
#else
|
#else
|
||||||
return uuid_generate_internal(UUID_MAKE_V3, (unsigned char *) ns,
|
return uuid_generate_internal(UUID_MAKE_V3, (unsigned char *) ns,
|
||||||
VARDATA(name), VARSIZE(name) - VARHDRSZ);
|
VARDATA_ANY(name), VARSIZE_ANY_EXHDR(name));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -525,12 +525,12 @@ Datum
|
||||||
uuid_generate_v5(PG_FUNCTION_ARGS)
|
uuid_generate_v5(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
pg_uuid_t *ns = PG_GETARG_UUID_P(0);
|
pg_uuid_t *ns = PG_GETARG_UUID_P(0);
|
||||||
text *name = PG_GETARG_TEXT_P(1);
|
text *name = PG_GETARG_TEXT_PP(1);
|
||||||
|
|
||||||
#ifdef HAVE_UUID_OSSP
|
#ifdef HAVE_UUID_OSSP
|
||||||
return uuid_generate_v35_internal(UUID_MAKE_V5, ns, name);
|
return uuid_generate_v35_internal(UUID_MAKE_V5, ns, name);
|
||||||
#else
|
#else
|
||||||
return uuid_generate_internal(UUID_MAKE_V5, (unsigned char *) ns,
|
return uuid_generate_internal(UUID_MAKE_V5, (unsigned char *) ns,
|
||||||
VARDATA(name), VARSIZE(name) - VARHDRSZ);
|
VARDATA_ANY(name), VARSIZE_ANY_EXHDR(name));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,9 +95,9 @@ PG_FUNCTION_INFO_V1(xml_is_well_formed);
|
||||||
Datum
|
Datum
|
||||||
xml_is_well_formed(PG_FUNCTION_ARGS)
|
xml_is_well_formed(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *t = PG_GETARG_TEXT_P(0); /* document buffer */
|
text *t = PG_GETARG_TEXT_PP(0); /* document buffer */
|
||||||
bool result = false;
|
bool result = false;
|
||||||
int32 docsize = VARSIZE(t) - VARHDRSZ;
|
int32 docsize = VARSIZE_ANY_EXHDR(t);
|
||||||
xmlDocPtr doctree;
|
xmlDocPtr doctree;
|
||||||
PgXmlErrorContext *xmlerrcxt;
|
PgXmlErrorContext *xmlerrcxt;
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ xml_is_well_formed(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
PG_TRY();
|
PG_TRY();
|
||||||
{
|
{
|
||||||
doctree = xmlParseMemory((char *) VARDATA(t), docsize);
|
doctree = xmlParseMemory((char *) VARDATA_ANY(t), docsize);
|
||||||
|
|
||||||
result = (doctree != NULL);
|
result = (doctree != NULL);
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ PG_FUNCTION_INFO_V1(xml_encode_special_chars);
|
||||||
Datum
|
Datum
|
||||||
xml_encode_special_chars(PG_FUNCTION_ARGS)
|
xml_encode_special_chars(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *tin = PG_GETARG_TEXT_P(0);
|
text *tin = PG_GETARG_TEXT_PP(0);
|
||||||
text *tout;
|
text *tout;
|
||||||
xmlChar *ts,
|
xmlChar *ts,
|
||||||
*tt;
|
*tt;
|
||||||
|
@ -248,10 +248,10 @@ PG_FUNCTION_INFO_V1(xpath_nodeset);
|
||||||
Datum
|
Datum
|
||||||
xpath_nodeset(PG_FUNCTION_ARGS)
|
xpath_nodeset(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *document = PG_GETARG_TEXT_P(0);
|
text *document = PG_GETARG_TEXT_PP(0);
|
||||||
text *xpathsupp = PG_GETARG_TEXT_P(1); /* XPath expression */
|
text *xpathsupp = PG_GETARG_TEXT_PP(1); /* XPath expression */
|
||||||
xmlChar *toptag = pgxml_texttoxmlchar(PG_GETARG_TEXT_P(2));
|
xmlChar *toptag = pgxml_texttoxmlchar(PG_GETARG_TEXT_PP(2));
|
||||||
xmlChar *septag = pgxml_texttoxmlchar(PG_GETARG_TEXT_P(3));
|
xmlChar *septag = pgxml_texttoxmlchar(PG_GETARG_TEXT_PP(3));
|
||||||
xmlChar *xpath;
|
xmlChar *xpath;
|
||||||
text *xpres;
|
text *xpres;
|
||||||
xmlXPathObjectPtr res;
|
xmlXPathObjectPtr res;
|
||||||
|
@ -281,9 +281,9 @@ PG_FUNCTION_INFO_V1(xpath_list);
|
||||||
Datum
|
Datum
|
||||||
xpath_list(PG_FUNCTION_ARGS)
|
xpath_list(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *document = PG_GETARG_TEXT_P(0);
|
text *document = PG_GETARG_TEXT_PP(0);
|
||||||
text *xpathsupp = PG_GETARG_TEXT_P(1); /* XPath expression */
|
text *xpathsupp = PG_GETARG_TEXT_PP(1); /* XPath expression */
|
||||||
xmlChar *plainsep = pgxml_texttoxmlchar(PG_GETARG_TEXT_P(2));
|
xmlChar *plainsep = pgxml_texttoxmlchar(PG_GETARG_TEXT_PP(2));
|
||||||
xmlChar *xpath;
|
xmlChar *xpath;
|
||||||
text *xpres;
|
text *xpres;
|
||||||
xmlXPathObjectPtr res;
|
xmlXPathObjectPtr res;
|
||||||
|
@ -310,15 +310,15 @@ PG_FUNCTION_INFO_V1(xpath_string);
|
||||||
Datum
|
Datum
|
||||||
xpath_string(PG_FUNCTION_ARGS)
|
xpath_string(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *document = PG_GETARG_TEXT_P(0);
|
text *document = PG_GETARG_TEXT_PP(0);
|
||||||
text *xpathsupp = PG_GETARG_TEXT_P(1); /* XPath expression */
|
text *xpathsupp = PG_GETARG_TEXT_PP(1); /* XPath expression */
|
||||||
xmlChar *xpath;
|
xmlChar *xpath;
|
||||||
int32 pathsize;
|
int32 pathsize;
|
||||||
text *xpres;
|
text *xpres;
|
||||||
xmlXPathObjectPtr res;
|
xmlXPathObjectPtr res;
|
||||||
xpath_workspace workspace;
|
xpath_workspace workspace;
|
||||||
|
|
||||||
pathsize = VARSIZE(xpathsupp) - VARHDRSZ;
|
pathsize = VARSIZE_ANY_EXHDR(xpathsupp);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We encapsulate the supplied path with "string()" = 8 chars + 1 for NUL
|
* We encapsulate the supplied path with "string()" = 8 chars + 1 for NUL
|
||||||
|
@ -328,7 +328,7 @@ xpath_string(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
xpath = (xmlChar *) palloc(pathsize + 9);
|
xpath = (xmlChar *) palloc(pathsize + 9);
|
||||||
memcpy((char *) xpath, "string(", 7);
|
memcpy((char *) xpath, "string(", 7);
|
||||||
memcpy((char *) (xpath + 7), VARDATA(xpathsupp), pathsize);
|
memcpy((char *) (xpath + 7), VARDATA_ANY(xpathsupp), pathsize);
|
||||||
xpath[pathsize + 7] = ')';
|
xpath[pathsize + 7] = ')';
|
||||||
xpath[pathsize + 8] = '\0';
|
xpath[pathsize + 8] = '\0';
|
||||||
|
|
||||||
|
@ -351,8 +351,8 @@ PG_FUNCTION_INFO_V1(xpath_number);
|
||||||
Datum
|
Datum
|
||||||
xpath_number(PG_FUNCTION_ARGS)
|
xpath_number(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *document = PG_GETARG_TEXT_P(0);
|
text *document = PG_GETARG_TEXT_PP(0);
|
||||||
text *xpathsupp = PG_GETARG_TEXT_P(1); /* XPath expression */
|
text *xpathsupp = PG_GETARG_TEXT_PP(1); /* XPath expression */
|
||||||
xmlChar *xpath;
|
xmlChar *xpath;
|
||||||
float4 fRes;
|
float4 fRes;
|
||||||
xmlXPathObjectPtr res;
|
xmlXPathObjectPtr res;
|
||||||
|
@ -383,8 +383,8 @@ PG_FUNCTION_INFO_V1(xpath_bool);
|
||||||
Datum
|
Datum
|
||||||
xpath_bool(PG_FUNCTION_ARGS)
|
xpath_bool(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *document = PG_GETARG_TEXT_P(0);
|
text *document = PG_GETARG_TEXT_PP(0);
|
||||||
text *xpathsupp = PG_GETARG_TEXT_P(1); /* XPath expression */
|
text *xpathsupp = PG_GETARG_TEXT_PP(1); /* XPath expression */
|
||||||
xmlChar *xpath;
|
xmlChar *xpath;
|
||||||
int bRes;
|
int bRes;
|
||||||
xmlXPathObjectPtr res;
|
xmlXPathObjectPtr res;
|
||||||
|
@ -413,7 +413,7 @@ xpath_bool(PG_FUNCTION_ARGS)
|
||||||
static xmlXPathObjectPtr
|
static xmlXPathObjectPtr
|
||||||
pgxml_xpath(text *document, xmlChar *xpath, xpath_workspace *workspace)
|
pgxml_xpath(text *document, xmlChar *xpath, xpath_workspace *workspace)
|
||||||
{
|
{
|
||||||
int32 docsize = VARSIZE(document) - VARHDRSZ;
|
int32 docsize = VARSIZE_ANY_EXHDR(document);
|
||||||
PgXmlErrorContext *xmlerrcxt;
|
PgXmlErrorContext *xmlerrcxt;
|
||||||
xmlXPathCompExprPtr comppath;
|
xmlXPathCompExprPtr comppath;
|
||||||
|
|
||||||
|
@ -425,7 +425,7 @@ pgxml_xpath(text *document, xmlChar *xpath, xpath_workspace *workspace)
|
||||||
|
|
||||||
PG_TRY();
|
PG_TRY();
|
||||||
{
|
{
|
||||||
workspace->doctree = xmlParseMemory((char *) VARDATA(document),
|
workspace->doctree = xmlParseMemory((char *) VARDATA_ANY(document),
|
||||||
docsize);
|
docsize);
|
||||||
if (workspace->doctree != NULL)
|
if (workspace->doctree != NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -49,8 +49,8 @@ xslt_process(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
#ifdef USE_LIBXSLT
|
#ifdef USE_LIBXSLT
|
||||||
|
|
||||||
text *doct = PG_GETARG_TEXT_P(0);
|
text *doct = PG_GETARG_TEXT_PP(0);
|
||||||
text *ssheet = PG_GETARG_TEXT_P(1);
|
text *ssheet = PG_GETARG_TEXT_PP(1);
|
||||||
text *result;
|
text *result;
|
||||||
text *paramstr;
|
text *paramstr;
|
||||||
const char **params;
|
const char **params;
|
||||||
|
@ -66,7 +66,7 @@ xslt_process(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
if (fcinfo->nargs == 3)
|
if (fcinfo->nargs == 3)
|
||||||
{
|
{
|
||||||
paramstr = PG_GETARG_TEXT_P(2);
|
paramstr = PG_GETARG_TEXT_PP(2);
|
||||||
params = parse_params(paramstr);
|
params = parse_params(paramstr);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -85,16 +85,16 @@ xslt_process(PG_FUNCTION_ARGS)
|
||||||
bool xslt_sec_prefs_error;
|
bool xslt_sec_prefs_error;
|
||||||
|
|
||||||
/* Parse document */
|
/* Parse document */
|
||||||
doctree = xmlParseMemory((char *) VARDATA(doct),
|
doctree = xmlParseMemory((char *) VARDATA_ANY(doct),
|
||||||
VARSIZE(doct) - VARHDRSZ);
|
VARSIZE_ANY_EXHDR(doct));
|
||||||
|
|
||||||
if (doctree == NULL)
|
if (doctree == NULL)
|
||||||
xml_ereport(xmlerrcxt, ERROR, ERRCODE_EXTERNAL_ROUTINE_EXCEPTION,
|
xml_ereport(xmlerrcxt, ERROR, ERRCODE_EXTERNAL_ROUTINE_EXCEPTION,
|
||||||
"error parsing XML document");
|
"error parsing XML document");
|
||||||
|
|
||||||
/* Same for stylesheet */
|
/* Same for stylesheet */
|
||||||
ssdoc = xmlParseMemory((char *) VARDATA(ssheet),
|
ssdoc = xmlParseMemory((char *) VARDATA_ANY(ssheet),
|
||||||
VARSIZE(ssheet) - VARHDRSZ);
|
VARSIZE_ANY_EXHDR(ssheet));
|
||||||
|
|
||||||
if (ssdoc == NULL)
|
if (ssdoc == NULL)
|
||||||
xml_ereport(xmlerrcxt, ERROR, ERRCODE_EXTERNAL_ROUTINE_EXCEPTION,
|
xml_ereport(xmlerrcxt, ERROR, ERRCODE_EXTERNAL_ROUTINE_EXCEPTION,
|
||||||
|
|
|
@ -568,8 +568,9 @@ spg_text_leaf_consistent(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
leafValue = DatumGetTextPP(in->leafDatum);
|
leafValue = DatumGetTextPP(in->leafDatum);
|
||||||
|
|
||||||
|
/* As above, in->reconstructedValue isn't toasted or short. */
|
||||||
if (DatumGetPointer(in->reconstructedValue))
|
if (DatumGetPointer(in->reconstructedValue))
|
||||||
reconstrValue = DatumGetTextP(in->reconstructedValue);
|
reconstrValue = (text *) DatumGetPointer(in->reconstructedValue);
|
||||||
|
|
||||||
Assert(reconstrValue == NULL ? level == 0 :
|
Assert(reconstrValue == NULL ? level == 0 :
|
||||||
VARSIZE_ANY_EXHDR(reconstrValue) == level);
|
VARSIZE_ANY_EXHDR(reconstrValue) == level);
|
||||||
|
|
|
@ -72,7 +72,7 @@ nonexclusive_base_backup_cleanup(int code, Datum arg)
|
||||||
Datum
|
Datum
|
||||||
pg_start_backup(PG_FUNCTION_ARGS)
|
pg_start_backup(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *backupid = PG_GETARG_TEXT_P(0);
|
text *backupid = PG_GETARG_TEXT_PP(0);
|
||||||
bool fast = PG_GETARG_BOOL(1);
|
bool fast = PG_GETARG_BOOL(1);
|
||||||
bool exclusive = PG_GETARG_BOOL(2);
|
bool exclusive = PG_GETARG_BOOL(2);
|
||||||
char *backupidstr;
|
char *backupidstr;
|
||||||
|
@ -309,7 +309,7 @@ pg_switch_wal(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
pg_create_restore_point(PG_FUNCTION_ARGS)
|
pg_create_restore_point(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *restore_name = PG_GETARG_TEXT_P(0);
|
text *restore_name = PG_GETARG_TEXT_PP(0);
|
||||||
char *restore_name_str;
|
char *restore_name_str;
|
||||||
XLogRecPtr restorepoint;
|
XLogRecPtr restorepoint;
|
||||||
|
|
||||||
|
|
|
@ -2317,7 +2317,7 @@ Datum
|
||||||
pg_extension_config_dump(PG_FUNCTION_ARGS)
|
pg_extension_config_dump(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid tableoid = PG_GETARG_OID(0);
|
Oid tableoid = PG_GETARG_OID(0);
|
||||||
text *wherecond = PG_GETARG_TEXT_P(1);
|
text *wherecond = PG_GETARG_TEXT_PP(1);
|
||||||
char *tablename;
|
char *tablename;
|
||||||
Relation extRel;
|
Relation extRel;
|
||||||
ScanKeyData key[1];
|
ScanKeyData key[1];
|
||||||
|
|
|
@ -538,7 +538,7 @@ DeleteSequenceTuple(Oid relid)
|
||||||
Datum
|
Datum
|
||||||
nextval(PG_FUNCTION_ARGS)
|
nextval(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *seqin = PG_GETARG_TEXT_P(0);
|
text *seqin = PG_GETARG_TEXT_PP(0);
|
||||||
RangeVar *sequence;
|
RangeVar *sequence;
|
||||||
Oid relid;
|
Oid relid;
|
||||||
|
|
||||||
|
|
|
@ -1673,13 +1673,13 @@ RelationBuildTriggers(Relation relation)
|
||||||
bytea *val;
|
bytea *val;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
val = DatumGetByteaP(fastgetattr(htup,
|
val = DatumGetByteaPP(fastgetattr(htup,
|
||||||
Anum_pg_trigger_tgargs,
|
Anum_pg_trigger_tgargs,
|
||||||
tgrel->rd_att, &isnull));
|
tgrel->rd_att, &isnull));
|
||||||
if (isnull)
|
if (isnull)
|
||||||
elog(ERROR, "tgargs is null in trigger for relation \"%s\"",
|
elog(ERROR, "tgargs is null in trigger for relation \"%s\"",
|
||||||
RelationGetRelationName(relation));
|
RelationGetRelationName(relation));
|
||||||
p = (char *) VARDATA(val);
|
p = (char *) VARDATA_ANY(val);
|
||||||
build->tgargs = (char **) palloc(build->tgnargs * sizeof(char *));
|
build->tgargs = (char **) palloc(build->tgnargs * sizeof(char *));
|
||||||
for (i = 0; i < build->tgnargs; i++)
|
for (i = 0; i < build->tgnargs; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1561,9 +1561,9 @@ serialize_deflist(List *deflist)
|
||||||
List *
|
List *
|
||||||
deserialize_deflist(Datum txt)
|
deserialize_deflist(Datum txt)
|
||||||
{
|
{
|
||||||
text *in = DatumGetTextP(txt); /* in case it's toasted */
|
text *in = DatumGetTextPP(txt); /* in case it's toasted */
|
||||||
List *result = NIL;
|
List *result = NIL;
|
||||||
int len = VARSIZE(in) - VARHDRSZ;
|
int len = VARSIZE_ANY_EXHDR(in);
|
||||||
char *ptr,
|
char *ptr,
|
||||||
*endptr,
|
*endptr,
|
||||||
*workspace,
|
*workspace,
|
||||||
|
@ -1583,7 +1583,7 @@ deserialize_deflist(Datum txt)
|
||||||
ds_state state = CS_WAITKEY;
|
ds_state state = CS_WAITKEY;
|
||||||
|
|
||||||
workspace = (char *) palloc(len + 1); /* certainly enough room */
|
workspace = (char *) palloc(len + 1); /* certainly enough room */
|
||||||
ptr = VARDATA(in);
|
ptr = VARDATA_ANY(in);
|
||||||
endptr = ptr + len;
|
endptr = ptr + len;
|
||||||
for (; ptr < endptr; ptr++)
|
for (; ptr < endptr; ptr++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -3440,7 +3440,7 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
|
||||||
value = ExecEvalExpr(e, econtext, &isnull);
|
value = ExecEvalExpr(e, econtext, &isnull);
|
||||||
if (isnull)
|
if (isnull)
|
||||||
return (Datum) 0;
|
return (Datum) 0;
|
||||||
data = DatumGetTextP(value);
|
data = DatumGetTextPP(value);
|
||||||
|
|
||||||
e = (ExprState *) lsecond(xmlExpr->args);
|
e = (ExprState *) lsecond(xmlExpr->args);
|
||||||
value = ExecEvalExpr(e, econtext, &isnull);
|
value = ExecEvalExpr(e, econtext, &isnull);
|
||||||
|
@ -3471,7 +3471,7 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
|
||||||
if (isnull)
|
if (isnull)
|
||||||
arg = NULL;
|
arg = NULL;
|
||||||
else
|
else
|
||||||
arg = DatumGetTextP(value);
|
arg = DatumGetTextPP(value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -3504,7 +3504,7 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
|
||||||
if (isnull)
|
if (isnull)
|
||||||
version = NULL;
|
version = NULL;
|
||||||
else
|
else
|
||||||
version = DatumGetTextP(value);
|
version = DatumGetTextPP(value);
|
||||||
|
|
||||||
e = (ExprState *) lthird(xmlExpr->args);
|
e = (ExprState *) lthird(xmlExpr->args);
|
||||||
value = ExecEvalExpr(e, econtext, &isnull);
|
value = ExecEvalExpr(e, econtext, &isnull);
|
||||||
|
|
|
@ -399,12 +399,12 @@ Datum
|
||||||
be_lowrite(PG_FUNCTION_ARGS)
|
be_lowrite(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
int32 fd = PG_GETARG_INT32(0);
|
int32 fd = PG_GETARG_INT32(0);
|
||||||
bytea *wbuf = PG_GETARG_BYTEA_P(1);
|
bytea *wbuf = PG_GETARG_BYTEA_PP(1);
|
||||||
int bytestowrite;
|
int bytestowrite;
|
||||||
int totalwritten;
|
int totalwritten;
|
||||||
|
|
||||||
bytestowrite = VARSIZE(wbuf) - VARHDRSZ;
|
bytestowrite = VARSIZE_ANY_EXHDR(wbuf);
|
||||||
totalwritten = lo_write(fd, VARDATA(wbuf), bytestowrite);
|
totalwritten = lo_write(fd, VARDATA_ANY(wbuf), bytestowrite);
|
||||||
PG_RETURN_INT32(totalwritten);
|
PG_RETURN_INT32(totalwritten);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1307,7 +1307,7 @@ pg_replication_origin_xact_reset(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
pg_replication_origin_advance(PG_FUNCTION_ARGS)
|
pg_replication_origin_advance(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *name = PG_GETARG_TEXT_P(0);
|
text *name = PG_GETARG_TEXT_PP(0);
|
||||||
XLogRecPtr remote_commit = PG_GETARG_LSN(1);
|
XLogRecPtr remote_commit = PG_GETARG_LSN(1);
|
||||||
RepOriginId node;
|
RepOriginId node;
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ Datum
|
||||||
ts_lexize(PG_FUNCTION_ARGS)
|
ts_lexize(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid dictId = PG_GETARG_OID(0);
|
Oid dictId = PG_GETARG_OID(0);
|
||||||
text *in = PG_GETARG_TEXT_P(1);
|
text *in = PG_GETARG_TEXT_PP(1);
|
||||||
ArrayType *a;
|
ArrayType *a;
|
||||||
TSDictionaryCacheEntry *dict;
|
TSDictionaryCacheEntry *dict;
|
||||||
TSLexeme *res,
|
TSLexeme *res,
|
||||||
|
@ -38,8 +38,8 @@ ts_lexize(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
res = (TSLexeme *) DatumGetPointer(FunctionCall4(&dict->lexize,
|
res = (TSLexeme *) DatumGetPointer(FunctionCall4(&dict->lexize,
|
||||||
PointerGetDatum(dict->dictData),
|
PointerGetDatum(dict->dictData),
|
||||||
PointerGetDatum(VARDATA(in)),
|
PointerGetDatum(VARDATA_ANY(in)),
|
||||||
Int32GetDatum(VARSIZE(in) - VARHDRSZ),
|
Int32GetDatum(VARSIZE_ANY_EXHDR(in)),
|
||||||
PointerGetDatum(&dstate)));
|
PointerGetDatum(&dstate)));
|
||||||
|
|
||||||
if (dstate.getnext)
|
if (dstate.getnext)
|
||||||
|
@ -47,8 +47,8 @@ ts_lexize(PG_FUNCTION_ARGS)
|
||||||
dstate.isend = true;
|
dstate.isend = true;
|
||||||
ptr = (TSLexeme *) DatumGetPointer(FunctionCall4(&dict->lexize,
|
ptr = (TSLexeme *) DatumGetPointer(FunctionCall4(&dict->lexize,
|
||||||
PointerGetDatum(dict->dictData),
|
PointerGetDatum(dict->dictData),
|
||||||
PointerGetDatum(VARDATA(in)),
|
PointerGetDatum(VARDATA_ANY(in)),
|
||||||
Int32GetDatum(VARSIZE(in) - VARHDRSZ),
|
Int32GetDatum(VARSIZE_ANY_EXHDR(in)),
|
||||||
PointerGetDatum(&dstate)));
|
PointerGetDatum(&dstate)));
|
||||||
if (ptr != NULL)
|
if (ptr != NULL)
|
||||||
res = ptr;
|
res = ptr;
|
||||||
|
|
|
@ -216,19 +216,19 @@ Datum
|
||||||
to_tsvector_byid(PG_FUNCTION_ARGS)
|
to_tsvector_byid(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid cfgId = PG_GETARG_OID(0);
|
Oid cfgId = PG_GETARG_OID(0);
|
||||||
text *in = PG_GETARG_TEXT_P(1);
|
text *in = PG_GETARG_TEXT_PP(1);
|
||||||
ParsedText prs;
|
ParsedText prs;
|
||||||
TSVector out;
|
TSVector out;
|
||||||
|
|
||||||
prs.lenwords = (VARSIZE(in) - VARHDRSZ) / 6; /* just estimation of
|
prs.lenwords = VARSIZE_ANY_EXHDR(in) / 6; /* just estimation of word's
|
||||||
* word's number */
|
* number */
|
||||||
if (prs.lenwords == 0)
|
if (prs.lenwords == 0)
|
||||||
prs.lenwords = 2;
|
prs.lenwords = 2;
|
||||||
prs.curwords = 0;
|
prs.curwords = 0;
|
||||||
prs.pos = 0;
|
prs.pos = 0;
|
||||||
prs.words = (ParsedWord *) palloc(sizeof(ParsedWord) * prs.lenwords);
|
prs.words = (ParsedWord *) palloc(sizeof(ParsedWord) * prs.lenwords);
|
||||||
|
|
||||||
parsetext(cfgId, &prs, VARDATA(in), VARSIZE(in) - VARHDRSZ);
|
parsetext(cfgId, &prs, VARDATA_ANY(in), VARSIZE_ANY_EXHDR(in));
|
||||||
PG_FREE_IF_COPY(in, 1);
|
PG_FREE_IF_COPY(in, 1);
|
||||||
|
|
||||||
if (prs.curwords)
|
if (prs.curwords)
|
||||||
|
@ -247,7 +247,7 @@ to_tsvector_byid(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
to_tsvector(PG_FUNCTION_ARGS)
|
to_tsvector(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in = PG_GETARG_TEXT_P(0);
|
text *in = PG_GETARG_TEXT_PP(0);
|
||||||
Oid cfgId;
|
Oid cfgId;
|
||||||
|
|
||||||
cfgId = getTSCurrentConfig(true);
|
cfgId = getTSCurrentConfig(true);
|
||||||
|
@ -362,7 +362,7 @@ pushval_morph(Datum opaque, TSQueryParserState state, char *strval, int lenval,
|
||||||
Datum
|
Datum
|
||||||
to_tsquery_byid(PG_FUNCTION_ARGS)
|
to_tsquery_byid(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in = PG_GETARG_TEXT_P(1);
|
text *in = PG_GETARG_TEXT_PP(1);
|
||||||
TSQuery query;
|
TSQuery query;
|
||||||
MorphOpaque data;
|
MorphOpaque data;
|
||||||
|
|
||||||
|
@ -380,7 +380,7 @@ to_tsquery_byid(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
to_tsquery(PG_FUNCTION_ARGS)
|
to_tsquery(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in = PG_GETARG_TEXT_P(0);
|
text *in = PG_GETARG_TEXT_PP(0);
|
||||||
Oid cfgId;
|
Oid cfgId;
|
||||||
|
|
||||||
cfgId = getTSCurrentConfig(true);
|
cfgId = getTSCurrentConfig(true);
|
||||||
|
@ -392,7 +392,7 @@ to_tsquery(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
plainto_tsquery_byid(PG_FUNCTION_ARGS)
|
plainto_tsquery_byid(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in = PG_GETARG_TEXT_P(1);
|
text *in = PG_GETARG_TEXT_PP(1);
|
||||||
TSQuery query;
|
TSQuery query;
|
||||||
MorphOpaque data;
|
MorphOpaque data;
|
||||||
|
|
||||||
|
@ -410,7 +410,7 @@ plainto_tsquery_byid(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
plainto_tsquery(PG_FUNCTION_ARGS)
|
plainto_tsquery(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in = PG_GETARG_TEXT_P(0);
|
text *in = PG_GETARG_TEXT_PP(0);
|
||||||
Oid cfgId;
|
Oid cfgId;
|
||||||
|
|
||||||
cfgId = getTSCurrentConfig(true);
|
cfgId = getTSCurrentConfig(true);
|
||||||
|
@ -423,7 +423,7 @@ plainto_tsquery(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
phraseto_tsquery_byid(PG_FUNCTION_ARGS)
|
phraseto_tsquery_byid(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in = PG_GETARG_TEXT_P(1);
|
text *in = PG_GETARG_TEXT_PP(1);
|
||||||
TSQuery query;
|
TSQuery query;
|
||||||
MorphOpaque data;
|
MorphOpaque data;
|
||||||
|
|
||||||
|
@ -441,7 +441,7 @@ phraseto_tsquery_byid(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
phraseto_tsquery(PG_FUNCTION_ARGS)
|
phraseto_tsquery(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in = PG_GETARG_TEXT_P(0);
|
text *in = PG_GETARG_TEXT_PP(0);
|
||||||
Oid cfgId;
|
Oid cfgId;
|
||||||
|
|
||||||
cfgId = getTSCurrentConfig(true);
|
cfgId = getTSCurrentConfig(true);
|
||||||
|
|
|
@ -123,7 +123,7 @@ ts_token_type_byname(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
if (SRF_IS_FIRSTCALL())
|
if (SRF_IS_FIRSTCALL())
|
||||||
{
|
{
|
||||||
text *prsname = PG_GETARG_TEXT_P(0);
|
text *prsname = PG_GETARG_TEXT_PP(0);
|
||||||
Oid prsId;
|
Oid prsId;
|
||||||
|
|
||||||
funcctx = SRF_FIRSTCALL_INIT();
|
funcctx = SRF_FIRSTCALL_INIT();
|
||||||
|
@ -172,8 +172,8 @@ prs_setup_firstcall(FuncCallContext *funcctx, Oid prsid, text *txt)
|
||||||
st->list = (LexemeEntry *) palloc(sizeof(LexemeEntry) * st->len);
|
st->list = (LexemeEntry *) palloc(sizeof(LexemeEntry) * st->len);
|
||||||
|
|
||||||
prsdata = (void *) DatumGetPointer(FunctionCall2(&prs->prsstart,
|
prsdata = (void *) DatumGetPointer(FunctionCall2(&prs->prsstart,
|
||||||
PointerGetDatum(VARDATA(txt)),
|
PointerGetDatum(VARDATA_ANY(txt)),
|
||||||
Int32GetDatum(VARSIZE(txt) - VARHDRSZ)));
|
Int32GetDatum(VARSIZE_ANY_EXHDR(txt))));
|
||||||
|
|
||||||
while ((type = DatumGetInt32(FunctionCall3(&prs->prstoken,
|
while ((type = DatumGetInt32(FunctionCall3(&prs->prstoken,
|
||||||
PointerGetDatum(prsdata),
|
PointerGetDatum(prsdata),
|
||||||
|
@ -248,7 +248,7 @@ ts_parse_byid(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
if (SRF_IS_FIRSTCALL())
|
if (SRF_IS_FIRSTCALL())
|
||||||
{
|
{
|
||||||
text *txt = PG_GETARG_TEXT_P(1);
|
text *txt = PG_GETARG_TEXT_PP(1);
|
||||||
|
|
||||||
funcctx = SRF_FIRSTCALL_INIT();
|
funcctx = SRF_FIRSTCALL_INIT();
|
||||||
prs_setup_firstcall(funcctx, PG_GETARG_OID(0), txt);
|
prs_setup_firstcall(funcctx, PG_GETARG_OID(0), txt);
|
||||||
|
@ -270,8 +270,8 @@ ts_parse_byname(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
if (SRF_IS_FIRSTCALL())
|
if (SRF_IS_FIRSTCALL())
|
||||||
{
|
{
|
||||||
text *prsname = PG_GETARG_TEXT_P(0);
|
text *prsname = PG_GETARG_TEXT_PP(0);
|
||||||
text *txt = PG_GETARG_TEXT_P(1);
|
text *txt = PG_GETARG_TEXT_PP(1);
|
||||||
Oid prsId;
|
Oid prsId;
|
||||||
|
|
||||||
funcctx = SRF_FIRSTCALL_INIT();
|
funcctx = SRF_FIRSTCALL_INIT();
|
||||||
|
@ -289,9 +289,9 @@ ts_parse_byname(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
ts_headline_byid_opt(PG_FUNCTION_ARGS)
|
ts_headline_byid_opt(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *in = PG_GETARG_TEXT_P(1);
|
text *in = PG_GETARG_TEXT_PP(1);
|
||||||
TSQuery query = PG_GETARG_TSQUERY(2);
|
TSQuery query = PG_GETARG_TSQUERY(2);
|
||||||
text *opt = (PG_NARGS() > 3 && PG_GETARG_POINTER(3)) ? PG_GETARG_TEXT_P(3) : NULL;
|
text *opt = (PG_NARGS() > 3 && PG_GETARG_POINTER(3)) ? PG_GETARG_TEXT_PP(3) : NULL;
|
||||||
HeadlineParsedText prs;
|
HeadlineParsedText prs;
|
||||||
List *prsoptions;
|
List *prsoptions;
|
||||||
text *out;
|
text *out;
|
||||||
|
@ -310,7 +310,8 @@ ts_headline_byid_opt(PG_FUNCTION_ARGS)
|
||||||
prs.lenwords = 32;
|
prs.lenwords = 32;
|
||||||
prs.words = (HeadlineWordEntry *) palloc(sizeof(HeadlineWordEntry) * prs.lenwords);
|
prs.words = (HeadlineWordEntry *) palloc(sizeof(HeadlineWordEntry) * prs.lenwords);
|
||||||
|
|
||||||
hlparsetext(cfg->cfgId, &prs, query, VARDATA(in), VARSIZE(in) - VARHDRSZ);
|
hlparsetext(cfg->cfgId, &prs, query,
|
||||||
|
VARDATA_ANY(in), VARSIZE_ANY_EXHDR(in));
|
||||||
|
|
||||||
if (opt)
|
if (opt)
|
||||||
prsoptions = deserialize_deflist(PointerGetDatum(opt));
|
prsoptions = deserialize_deflist(PointerGetDatum(opt));
|
||||||
|
|
|
@ -1559,7 +1559,7 @@ makeaclitem(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid grantee = PG_GETARG_OID(0);
|
Oid grantee = PG_GETARG_OID(0);
|
||||||
Oid grantor = PG_GETARG_OID(1);
|
Oid grantor = PG_GETARG_OID(1);
|
||||||
text *privtext = PG_GETARG_TEXT_P(2);
|
text *privtext = PG_GETARG_TEXT_PP(2);
|
||||||
bool goption = PG_GETARG_BOOL(3);
|
bool goption = PG_GETARG_BOOL(3);
|
||||||
AclItem *result;
|
AclItem *result;
|
||||||
AclMode priv;
|
AclMode priv;
|
||||||
|
@ -1835,8 +1835,8 @@ Datum
|
||||||
has_table_privilege_name_name(PG_FUNCTION_ARGS)
|
has_table_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name rolename = PG_GETARG_NAME(0);
|
Name rolename = PG_GETARG_NAME(0);
|
||||||
text *tablename = PG_GETARG_TEXT_P(1);
|
text *tablename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -1860,8 +1860,8 @@ has_table_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_table_privilege_name(PG_FUNCTION_ARGS)
|
has_table_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *tablename = PG_GETARG_TEXT_P(0);
|
text *tablename = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -1886,7 +1886,7 @@ has_table_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid tableoid = PG_GETARG_OID(1);
|
Oid tableoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -1912,7 +1912,7 @@ Datum
|
||||||
has_table_privilege_id(PG_FUNCTION_ARGS)
|
has_table_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid tableoid = PG_GETARG_OID(0);
|
Oid tableoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -1937,8 +1937,8 @@ Datum
|
||||||
has_table_privilege_id_name(PG_FUNCTION_ARGS)
|
has_table_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *tablename = PG_GETARG_TEXT_P(1);
|
text *tablename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -1961,7 +1961,7 @@ has_table_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid tableoid = PG_GETARG_OID(1);
|
Oid tableoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -2043,8 +2043,8 @@ Datum
|
||||||
has_sequence_privilege_name_name(PG_FUNCTION_ARGS)
|
has_sequence_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name rolename = PG_GETARG_NAME(0);
|
Name rolename = PG_GETARG_NAME(0);
|
||||||
text *sequencename = PG_GETARG_TEXT_P(1);
|
text *sequencename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid sequenceoid;
|
Oid sequenceoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2073,8 +2073,8 @@ has_sequence_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_sequence_privilege_name(PG_FUNCTION_ARGS)
|
has_sequence_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *sequencename = PG_GETARG_TEXT_P(0);
|
text *sequencename = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid sequenceoid;
|
Oid sequenceoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2104,7 +2104,7 @@ has_sequence_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid sequenceoid = PG_GETARG_OID(1);
|
Oid sequenceoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -2136,7 +2136,7 @@ Datum
|
||||||
has_sequence_privilege_id(PG_FUNCTION_ARGS)
|
has_sequence_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid sequenceoid = PG_GETARG_OID(0);
|
Oid sequenceoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -2167,8 +2167,8 @@ Datum
|
||||||
has_sequence_privilege_id_name(PG_FUNCTION_ARGS)
|
has_sequence_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *sequencename = PG_GETARG_TEXT_P(1);
|
text *sequencename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid sequenceoid;
|
Oid sequenceoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -2196,7 +2196,7 @@ has_sequence_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid sequenceoid = PG_GETARG_OID(1);
|
Oid sequenceoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
char relkind;
|
char relkind;
|
||||||
|
@ -2254,8 +2254,8 @@ Datum
|
||||||
has_any_column_privilege_name_name(PG_FUNCTION_ARGS)
|
has_any_column_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name rolename = PG_GETARG_NAME(0);
|
Name rolename = PG_GETARG_NAME(0);
|
||||||
text *tablename = PG_GETARG_TEXT_P(1);
|
text *tablename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2283,8 +2283,8 @@ has_any_column_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_any_column_privilege_name(PG_FUNCTION_ARGS)
|
has_any_column_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *tablename = PG_GETARG_TEXT_P(0);
|
text *tablename = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2313,7 +2313,7 @@ has_any_column_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid tableoid = PG_GETARG_OID(1);
|
Oid tableoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -2343,7 +2343,7 @@ Datum
|
||||||
has_any_column_privilege_id(PG_FUNCTION_ARGS)
|
has_any_column_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid tableoid = PG_GETARG_OID(0);
|
Oid tableoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -2372,8 +2372,8 @@ Datum
|
||||||
has_any_column_privilege_id_name(PG_FUNCTION_ARGS)
|
has_any_column_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *tablename = PG_GETARG_TEXT_P(1);
|
text *tablename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -2400,7 +2400,7 @@ has_any_column_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid tableoid = PG_GETARG_OID(1);
|
Oid tableoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -2494,9 +2494,9 @@ Datum
|
||||||
has_column_privilege_name_name_name(PG_FUNCTION_ARGS)
|
has_column_privilege_name_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name rolename = PG_GETARG_NAME(0);
|
Name rolename = PG_GETARG_NAME(0);
|
||||||
text *tablename = PG_GETARG_TEXT_P(1);
|
text *tablename = PG_GETARG_TEXT_PP(1);
|
||||||
text *column = PG_GETARG_TEXT_P(2);
|
text *column = PG_GETARG_TEXT_PP(2);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(3);
|
text *priv_type_text = PG_GETARG_TEXT_PP(3);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AttrNumber colattnum;
|
AttrNumber colattnum;
|
||||||
|
@ -2523,9 +2523,9 @@ Datum
|
||||||
has_column_privilege_name_name_attnum(PG_FUNCTION_ARGS)
|
has_column_privilege_name_name_attnum(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name rolename = PG_GETARG_NAME(0);
|
Name rolename = PG_GETARG_NAME(0);
|
||||||
text *tablename = PG_GETARG_TEXT_P(1);
|
text *tablename = PG_GETARG_TEXT_PP(1);
|
||||||
AttrNumber colattnum = PG_GETARG_INT16(2);
|
AttrNumber colattnum = PG_GETARG_INT16(2);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(3);
|
text *priv_type_text = PG_GETARG_TEXT_PP(3);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2551,8 +2551,8 @@ has_column_privilege_name_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid tableoid = PG_GETARG_OID(1);
|
Oid tableoid = PG_GETARG_OID(1);
|
||||||
text *column = PG_GETARG_TEXT_P(2);
|
text *column = PG_GETARG_TEXT_PP(2);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(3);
|
text *priv_type_text = PG_GETARG_TEXT_PP(3);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AttrNumber colattnum;
|
AttrNumber colattnum;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2579,7 +2579,7 @@ has_column_privilege_name_id_attnum(PG_FUNCTION_ARGS)
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid tableoid = PG_GETARG_OID(1);
|
Oid tableoid = PG_GETARG_OID(1);
|
||||||
AttrNumber colattnum = PG_GETARG_INT16(2);
|
AttrNumber colattnum = PG_GETARG_INT16(2);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(3);
|
text *priv_type_text = PG_GETARG_TEXT_PP(3);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
int privresult;
|
int privresult;
|
||||||
|
@ -2602,9 +2602,9 @@ Datum
|
||||||
has_column_privilege_id_name_name(PG_FUNCTION_ARGS)
|
has_column_privilege_id_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *tablename = PG_GETARG_TEXT_P(1);
|
text *tablename = PG_GETARG_TEXT_PP(1);
|
||||||
text *column = PG_GETARG_TEXT_P(2);
|
text *column = PG_GETARG_TEXT_PP(2);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(3);
|
text *priv_type_text = PG_GETARG_TEXT_PP(3);
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AttrNumber colattnum;
|
AttrNumber colattnum;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2629,9 +2629,9 @@ Datum
|
||||||
has_column_privilege_id_name_attnum(PG_FUNCTION_ARGS)
|
has_column_privilege_id_name_attnum(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *tablename = PG_GETARG_TEXT_P(1);
|
text *tablename = PG_GETARG_TEXT_PP(1);
|
||||||
AttrNumber colattnum = PG_GETARG_INT16(2);
|
AttrNumber colattnum = PG_GETARG_INT16(2);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(3);
|
text *priv_type_text = PG_GETARG_TEXT_PP(3);
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
int privresult;
|
int privresult;
|
||||||
|
@ -2655,8 +2655,8 @@ has_column_privilege_id_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid tableoid = PG_GETARG_OID(1);
|
Oid tableoid = PG_GETARG_OID(1);
|
||||||
text *column = PG_GETARG_TEXT_P(2);
|
text *column = PG_GETARG_TEXT_PP(2);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(3);
|
text *priv_type_text = PG_GETARG_TEXT_PP(3);
|
||||||
AttrNumber colattnum;
|
AttrNumber colattnum;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
int privresult;
|
int privresult;
|
||||||
|
@ -2681,7 +2681,7 @@ has_column_privilege_id_id_attnum(PG_FUNCTION_ARGS)
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid tableoid = PG_GETARG_OID(1);
|
Oid tableoid = PG_GETARG_OID(1);
|
||||||
AttrNumber colattnum = PG_GETARG_INT16(2);
|
AttrNumber colattnum = PG_GETARG_INT16(2);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(3);
|
text *priv_type_text = PG_GETARG_TEXT_PP(3);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
int privresult;
|
int privresult;
|
||||||
|
|
||||||
|
@ -2702,9 +2702,9 @@ has_column_privilege_id_id_attnum(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_column_privilege_name_name(PG_FUNCTION_ARGS)
|
has_column_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *tablename = PG_GETARG_TEXT_P(0);
|
text *tablename = PG_GETARG_TEXT_PP(0);
|
||||||
text *column = PG_GETARG_TEXT_P(1);
|
text *column = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AttrNumber colattnum;
|
AttrNumber colattnum;
|
||||||
|
@ -2731,9 +2731,9 @@ has_column_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_column_privilege_name_attnum(PG_FUNCTION_ARGS)
|
has_column_privilege_name_attnum(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *tablename = PG_GETARG_TEXT_P(0);
|
text *tablename = PG_GETARG_TEXT_PP(0);
|
||||||
AttrNumber colattnum = PG_GETARG_INT16(1);
|
AttrNumber colattnum = PG_GETARG_INT16(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2759,8 +2759,8 @@ Datum
|
||||||
has_column_privilege_id_name(PG_FUNCTION_ARGS)
|
has_column_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid tableoid = PG_GETARG_OID(0);
|
Oid tableoid = PG_GETARG_OID(0);
|
||||||
text *column = PG_GETARG_TEXT_P(1);
|
text *column = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AttrNumber colattnum;
|
AttrNumber colattnum;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2787,7 +2787,7 @@ has_column_privilege_id_attnum(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid tableoid = PG_GETARG_OID(0);
|
Oid tableoid = PG_GETARG_OID(0);
|
||||||
AttrNumber colattnum = PG_GETARG_INT16(1);
|
AttrNumber colattnum = PG_GETARG_INT16(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
int privresult;
|
int privresult;
|
||||||
|
@ -2868,8 +2868,8 @@ Datum
|
||||||
has_database_privilege_name_name(PG_FUNCTION_ARGS)
|
has_database_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
text *databasename = PG_GETARG_TEXT_P(1);
|
text *databasename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid databaseoid;
|
Oid databaseoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2893,8 +2893,8 @@ has_database_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_database_privilege_name(PG_FUNCTION_ARGS)
|
has_database_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *databasename = PG_GETARG_TEXT_P(0);
|
text *databasename = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid databaseoid;
|
Oid databaseoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -2919,7 +2919,7 @@ has_database_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid databaseoid = PG_GETARG_OID(1);
|
Oid databaseoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -2945,7 +2945,7 @@ Datum
|
||||||
has_database_privilege_id(PG_FUNCTION_ARGS)
|
has_database_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid databaseoid = PG_GETARG_OID(0);
|
Oid databaseoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -2970,8 +2970,8 @@ Datum
|
||||||
has_database_privilege_id_name(PG_FUNCTION_ARGS)
|
has_database_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *databasename = PG_GETARG_TEXT_P(1);
|
text *databasename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid databaseoid;
|
Oid databaseoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -2994,7 +2994,7 @@ has_database_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid databaseoid = PG_GETARG_OID(1);
|
Oid databaseoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -3066,8 +3066,8 @@ Datum
|
||||||
has_foreign_data_wrapper_privilege_name_name(PG_FUNCTION_ARGS)
|
has_foreign_data_wrapper_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
text *fdwname = PG_GETARG_TEXT_P(1);
|
text *fdwname = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid fdwid;
|
Oid fdwid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3091,8 +3091,8 @@ has_foreign_data_wrapper_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_foreign_data_wrapper_privilege_name(PG_FUNCTION_ARGS)
|
has_foreign_data_wrapper_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *fdwname = PG_GETARG_TEXT_P(0);
|
text *fdwname = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid fdwid;
|
Oid fdwid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3117,7 +3117,7 @@ has_foreign_data_wrapper_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid fdwid = PG_GETARG_OID(1);
|
Oid fdwid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3140,7 +3140,7 @@ Datum
|
||||||
has_foreign_data_wrapper_privilege_id(PG_FUNCTION_ARGS)
|
has_foreign_data_wrapper_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid fdwid = PG_GETARG_OID(0);
|
Oid fdwid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3162,8 +3162,8 @@ Datum
|
||||||
has_foreign_data_wrapper_privilege_id_name(PG_FUNCTION_ARGS)
|
has_foreign_data_wrapper_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *fdwname = PG_GETARG_TEXT_P(1);
|
text *fdwname = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid fdwid;
|
Oid fdwid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3186,7 +3186,7 @@ has_foreign_data_wrapper_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid fdwid = PG_GETARG_OID(1);
|
Oid fdwid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -3248,8 +3248,8 @@ Datum
|
||||||
has_function_privilege_name_name(PG_FUNCTION_ARGS)
|
has_function_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
text *functionname = PG_GETARG_TEXT_P(1);
|
text *functionname = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid functionoid;
|
Oid functionoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3273,8 +3273,8 @@ has_function_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_function_privilege_name(PG_FUNCTION_ARGS)
|
has_function_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *functionname = PG_GETARG_TEXT_P(0);
|
text *functionname = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid functionoid;
|
Oid functionoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3299,7 +3299,7 @@ has_function_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid functionoid = PG_GETARG_OID(1);
|
Oid functionoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3325,7 +3325,7 @@ Datum
|
||||||
has_function_privilege_id(PG_FUNCTION_ARGS)
|
has_function_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid functionoid = PG_GETARG_OID(0);
|
Oid functionoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3350,8 +3350,8 @@ Datum
|
||||||
has_function_privilege_id_name(PG_FUNCTION_ARGS)
|
has_function_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *functionname = PG_GETARG_TEXT_P(1);
|
text *functionname = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid functionoid;
|
Oid functionoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3374,7 +3374,7 @@ has_function_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid functionoid = PG_GETARG_OID(1);
|
Oid functionoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -3448,8 +3448,8 @@ Datum
|
||||||
has_language_privilege_name_name(PG_FUNCTION_ARGS)
|
has_language_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
text *languagename = PG_GETARG_TEXT_P(1);
|
text *languagename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid languageoid;
|
Oid languageoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3473,8 +3473,8 @@ has_language_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_language_privilege_name(PG_FUNCTION_ARGS)
|
has_language_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *languagename = PG_GETARG_TEXT_P(0);
|
text *languagename = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid languageoid;
|
Oid languageoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3499,7 +3499,7 @@ has_language_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid languageoid = PG_GETARG_OID(1);
|
Oid languageoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3525,7 +3525,7 @@ Datum
|
||||||
has_language_privilege_id(PG_FUNCTION_ARGS)
|
has_language_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid languageoid = PG_GETARG_OID(0);
|
Oid languageoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3550,8 +3550,8 @@ Datum
|
||||||
has_language_privilege_id_name(PG_FUNCTION_ARGS)
|
has_language_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *languagename = PG_GETARG_TEXT_P(1);
|
text *languagename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid languageoid;
|
Oid languageoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3574,7 +3574,7 @@ has_language_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid languageoid = PG_GETARG_OID(1);
|
Oid languageoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -3639,8 +3639,8 @@ Datum
|
||||||
has_schema_privilege_name_name(PG_FUNCTION_ARGS)
|
has_schema_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
text *schemaname = PG_GETARG_TEXT_P(1);
|
text *schemaname = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid schemaoid;
|
Oid schemaoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3664,8 +3664,8 @@ has_schema_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_schema_privilege_name(PG_FUNCTION_ARGS)
|
has_schema_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *schemaname = PG_GETARG_TEXT_P(0);
|
text *schemaname = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid schemaoid;
|
Oid schemaoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3690,7 +3690,7 @@ has_schema_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid schemaoid = PG_GETARG_OID(1);
|
Oid schemaoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3716,7 +3716,7 @@ Datum
|
||||||
has_schema_privilege_id(PG_FUNCTION_ARGS)
|
has_schema_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid schemaoid = PG_GETARG_OID(0);
|
Oid schemaoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3741,8 +3741,8 @@ Datum
|
||||||
has_schema_privilege_id_name(PG_FUNCTION_ARGS)
|
has_schema_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *schemaname = PG_GETARG_TEXT_P(1);
|
text *schemaname = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid schemaoid;
|
Oid schemaoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3765,7 +3765,7 @@ has_schema_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid schemaoid = PG_GETARG_OID(1);
|
Oid schemaoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -3832,8 +3832,8 @@ Datum
|
||||||
has_server_privilege_name_name(PG_FUNCTION_ARGS)
|
has_server_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
text *servername = PG_GETARG_TEXT_P(1);
|
text *servername = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid serverid;
|
Oid serverid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3857,8 +3857,8 @@ has_server_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_server_privilege_name(PG_FUNCTION_ARGS)
|
has_server_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *servername = PG_GETARG_TEXT_P(0);
|
text *servername = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid serverid;
|
Oid serverid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -3883,7 +3883,7 @@ has_server_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid serverid = PG_GETARG_OID(1);
|
Oid serverid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3906,7 +3906,7 @@ Datum
|
||||||
has_server_privilege_id(PG_FUNCTION_ARGS)
|
has_server_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid serverid = PG_GETARG_OID(0);
|
Oid serverid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3928,8 +3928,8 @@ Datum
|
||||||
has_server_privilege_id_name(PG_FUNCTION_ARGS)
|
has_server_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *servername = PG_GETARG_TEXT_P(1);
|
text *servername = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid serverid;
|
Oid serverid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -3952,7 +3952,7 @@ has_server_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid serverid = PG_GETARG_OID(1);
|
Oid serverid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -4014,8 +4014,8 @@ Datum
|
||||||
has_tablespace_privilege_name_name(PG_FUNCTION_ARGS)
|
has_tablespace_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
text *tablespacename = PG_GETARG_TEXT_P(1);
|
text *tablespacename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tablespaceoid;
|
Oid tablespaceoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -4039,8 +4039,8 @@ has_tablespace_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_tablespace_privilege_name(PG_FUNCTION_ARGS)
|
has_tablespace_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *tablespacename = PG_GETARG_TEXT_P(0);
|
text *tablespacename = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid tablespaceoid;
|
Oid tablespaceoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -4065,7 +4065,7 @@ has_tablespace_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid tablespaceoid = PG_GETARG_OID(1);
|
Oid tablespaceoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -4088,7 +4088,7 @@ Datum
|
||||||
has_tablespace_privilege_id(PG_FUNCTION_ARGS)
|
has_tablespace_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid tablespaceoid = PG_GETARG_OID(0);
|
Oid tablespaceoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -4110,8 +4110,8 @@ Datum
|
||||||
has_tablespace_privilege_id_name(PG_FUNCTION_ARGS)
|
has_tablespace_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *tablespacename = PG_GETARG_TEXT_P(1);
|
text *tablespacename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid tablespaceoid;
|
Oid tablespaceoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -4134,7 +4134,7 @@ has_tablespace_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid tablespaceoid = PG_GETARG_OID(1);
|
Oid tablespaceoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -4195,8 +4195,8 @@ Datum
|
||||||
has_type_privilege_name_name(PG_FUNCTION_ARGS)
|
has_type_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
text *typename = PG_GETARG_TEXT_P(1);
|
text *typename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid typeoid;
|
Oid typeoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -4220,8 +4220,8 @@ has_type_privilege_name_name(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
has_type_privilege_name(PG_FUNCTION_ARGS)
|
has_type_privilege_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *typename = PG_GETARG_TEXT_P(0);
|
text *typename = PG_GETARG_TEXT_PP(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid typeoid;
|
Oid typeoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -4246,7 +4246,7 @@ has_type_privilege_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid typeoid = PG_GETARG_OID(1);
|
Oid typeoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -4272,7 +4272,7 @@ Datum
|
||||||
has_type_privilege_id(PG_FUNCTION_ARGS)
|
has_type_privilege_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid typeoid = PG_GETARG_OID(0);
|
Oid typeoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -4297,8 +4297,8 @@ Datum
|
||||||
has_type_privilege_id_name(PG_FUNCTION_ARGS)
|
has_type_privilege_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
text *typename = PG_GETARG_TEXT_P(1);
|
text *typename = PG_GETARG_TEXT_PP(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid typeoid;
|
Oid typeoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -4321,7 +4321,7 @@ has_type_privilege_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid typeoid = PG_GETARG_OID(1);
|
Oid typeoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
@ -4396,7 +4396,7 @@ pg_has_role_name_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Name rolename = PG_GETARG_NAME(1);
|
Name rolename = PG_GETARG_NAME(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid roleoid;
|
Oid roleoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -4421,7 +4421,7 @@ Datum
|
||||||
pg_has_role_name(PG_FUNCTION_ARGS)
|
pg_has_role_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name rolename = PG_GETARG_NAME(0);
|
Name rolename = PG_GETARG_NAME(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
Oid roleoid;
|
Oid roleoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
|
@ -4446,7 +4446,7 @@ pg_has_role_name_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Name username = PG_GETARG_NAME(0);
|
Name username = PG_GETARG_NAME(0);
|
||||||
Oid roleoid = PG_GETARG_OID(1);
|
Oid roleoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -4469,7 +4469,7 @@ Datum
|
||||||
pg_has_role_id(PG_FUNCTION_ARGS)
|
pg_has_role_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleoid = PG_GETARG_OID(0);
|
Oid roleoid = PG_GETARG_OID(0);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(1);
|
text *priv_type_text = PG_GETARG_TEXT_PP(1);
|
||||||
Oid roleid;
|
Oid roleid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -4492,7 +4492,7 @@ pg_has_role_id_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Name rolename = PG_GETARG_NAME(1);
|
Name rolename = PG_GETARG_NAME(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
Oid roleoid;
|
Oid roleoid;
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
@ -4515,7 +4515,7 @@ pg_has_role_id_id(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid roleid = PG_GETARG_OID(0);
|
Oid roleid = PG_GETARG_OID(0);
|
||||||
Oid roleoid = PG_GETARG_OID(1);
|
Oid roleoid = PG_GETARG_OID(1);
|
||||||
text *priv_type_text = PG_GETARG_TEXT_P(2);
|
text *priv_type_text = PG_GETARG_TEXT_PP(2);
|
||||||
AclMode mode;
|
AclMode mode;
|
||||||
AclResult aclresult;
|
AclResult aclresult;
|
||||||
|
|
||||||
|
|
|
@ -175,7 +175,7 @@ i4tochar(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
text_char(PG_FUNCTION_ARGS)
|
text_char(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *arg1 = PG_GETARG_TEXT_P(0);
|
text *arg1 = PG_GETARG_TEXT_PP(0);
|
||||||
char result;
|
char result;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -183,8 +183,8 @@ text_char(PG_FUNCTION_ARGS)
|
||||||
* If the input is longer than one character, the excess data is silently
|
* If the input is longer than one character, the excess data is silently
|
||||||
* discarded.
|
* discarded.
|
||||||
*/
|
*/
|
||||||
if (VARSIZE(arg1) > VARHDRSZ)
|
if (VARSIZE_ANY_EXHDR(arg1) > 0)
|
||||||
result = *(VARDATA(arg1));
|
result = *(VARDATA_ANY(arg1));
|
||||||
else
|
else
|
||||||
result = '\0';
|
result = '\0';
|
||||||
|
|
||||||
|
|
|
@ -308,7 +308,7 @@ Datum
|
||||||
pg_relation_size(PG_FUNCTION_ARGS)
|
pg_relation_size(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Oid relOid = PG_GETARG_OID(0);
|
Oid relOid = PG_GETARG_OID(0);
|
||||||
text *forkName = PG_GETARG_TEXT_P(1);
|
text *forkName = PG_GETARG_TEXT_PP(1);
|
||||||
Relation rel;
|
Relation rel;
|
||||||
int64 size;
|
int64 size;
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ static const struct pg_encoding *pg_find_encoding(const char *name);
|
||||||
Datum
|
Datum
|
||||||
binary_encode(PG_FUNCTION_ARGS)
|
binary_encode(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
bytea *data = PG_GETARG_BYTEA_P(0);
|
bytea *data = PG_GETARG_BYTEA_PP(0);
|
||||||
Datum name = PG_GETARG_DATUM(1);
|
Datum name = PG_GETARG_DATUM(1);
|
||||||
text *result;
|
text *result;
|
||||||
char *namebuf;
|
char *namebuf;
|
||||||
|
@ -44,7 +44,7 @@ binary_encode(PG_FUNCTION_ARGS)
|
||||||
res;
|
res;
|
||||||
const struct pg_encoding *enc;
|
const struct pg_encoding *enc;
|
||||||
|
|
||||||
datalen = VARSIZE(data) - VARHDRSZ;
|
datalen = VARSIZE_ANY_EXHDR(data);
|
||||||
|
|
||||||
namebuf = TextDatumGetCString(name);
|
namebuf = TextDatumGetCString(name);
|
||||||
|
|
||||||
|
@ -54,10 +54,10 @@ binary_encode(PG_FUNCTION_ARGS)
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("unrecognized encoding: \"%s\"", namebuf)));
|
errmsg("unrecognized encoding: \"%s\"", namebuf)));
|
||||||
|
|
||||||
resultlen = enc->encode_len(VARDATA(data), datalen);
|
resultlen = enc->encode_len(VARDATA_ANY(data), datalen);
|
||||||
result = palloc(VARHDRSZ + resultlen);
|
result = palloc(VARHDRSZ + resultlen);
|
||||||
|
|
||||||
res = enc->encode(VARDATA(data), datalen, VARDATA(result));
|
res = enc->encode(VARDATA_ANY(data), datalen, VARDATA(result));
|
||||||
|
|
||||||
/* Make this FATAL 'cause we've trodden on memory ... */
|
/* Make this FATAL 'cause we've trodden on memory ... */
|
||||||
if (res > resultlen)
|
if (res > resultlen)
|
||||||
|
@ -71,7 +71,7 @@ binary_encode(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
binary_decode(PG_FUNCTION_ARGS)
|
binary_decode(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *data = PG_GETARG_TEXT_P(0);
|
text *data = PG_GETARG_TEXT_PP(0);
|
||||||
Datum name = PG_GETARG_DATUM(1);
|
Datum name = PG_GETARG_DATUM(1);
|
||||||
bytea *result;
|
bytea *result;
|
||||||
char *namebuf;
|
char *namebuf;
|
||||||
|
@ -80,7 +80,7 @@ binary_decode(PG_FUNCTION_ARGS)
|
||||||
res;
|
res;
|
||||||
const struct pg_encoding *enc;
|
const struct pg_encoding *enc;
|
||||||
|
|
||||||
datalen = VARSIZE(data) - VARHDRSZ;
|
datalen = VARSIZE_ANY_EXHDR(data);
|
||||||
|
|
||||||
namebuf = TextDatumGetCString(name);
|
namebuf = TextDatumGetCString(name);
|
||||||
|
|
||||||
|
@ -90,10 +90,10 @@ binary_decode(PG_FUNCTION_ARGS)
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("unrecognized encoding: \"%s\"", namebuf)));
|
errmsg("unrecognized encoding: \"%s\"", namebuf)));
|
||||||
|
|
||||||
resultlen = enc->decode_len(VARDATA(data), datalen);
|
resultlen = enc->decode_len(VARDATA_ANY(data), datalen);
|
||||||
result = palloc(VARHDRSZ + resultlen);
|
result = palloc(VARHDRSZ + resultlen);
|
||||||
|
|
||||||
res = enc->decode(VARDATA(data), datalen, VARDATA(result));
|
res = enc->decode(VARDATA_ANY(data), datalen, VARDATA(result));
|
||||||
|
|
||||||
/* Make this FATAL 'cause we've trodden on memory ... */
|
/* Make this FATAL 'cause we've trodden on memory ... */
|
||||||
if (res > resultlen)
|
if (res > resultlen)
|
||||||
|
|
|
@ -3380,13 +3380,13 @@ Datum
|
||||||
timestamp_to_char(PG_FUNCTION_ARGS)
|
timestamp_to_char(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Timestamp dt = PG_GETARG_TIMESTAMP(0);
|
Timestamp dt = PG_GETARG_TIMESTAMP(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1),
|
text *fmt = PG_GETARG_TEXT_PP(1),
|
||||||
*res;
|
*res;
|
||||||
TmToChar tmtc;
|
TmToChar tmtc;
|
||||||
struct pg_tm *tm;
|
struct pg_tm *tm;
|
||||||
int thisdate;
|
int thisdate;
|
||||||
|
|
||||||
if ((VARSIZE(fmt) - VARHDRSZ) <= 0 || TIMESTAMP_NOT_FINITE(dt))
|
if (VARSIZE_ANY_EXHDR(fmt) <= 0 || TIMESTAMP_NOT_FINITE(dt))
|
||||||
PG_RETURN_NULL();
|
PG_RETURN_NULL();
|
||||||
|
|
||||||
ZERO_tmtc(&tmtc);
|
ZERO_tmtc(&tmtc);
|
||||||
|
@ -3411,14 +3411,14 @@ Datum
|
||||||
timestamptz_to_char(PG_FUNCTION_ARGS)
|
timestamptz_to_char(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
TimestampTz dt = PG_GETARG_TIMESTAMP(0);
|
TimestampTz dt = PG_GETARG_TIMESTAMP(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1),
|
text *fmt = PG_GETARG_TEXT_PP(1),
|
||||||
*res;
|
*res;
|
||||||
TmToChar tmtc;
|
TmToChar tmtc;
|
||||||
int tz;
|
int tz;
|
||||||
struct pg_tm *tm;
|
struct pg_tm *tm;
|
||||||
int thisdate;
|
int thisdate;
|
||||||
|
|
||||||
if ((VARSIZE(fmt) - VARHDRSZ) <= 0 || TIMESTAMP_NOT_FINITE(dt))
|
if (VARSIZE_ANY_EXHDR(fmt) <= 0 || TIMESTAMP_NOT_FINITE(dt))
|
||||||
PG_RETURN_NULL();
|
PG_RETURN_NULL();
|
||||||
|
|
||||||
ZERO_tmtc(&tmtc);
|
ZERO_tmtc(&tmtc);
|
||||||
|
@ -3448,12 +3448,12 @@ Datum
|
||||||
interval_to_char(PG_FUNCTION_ARGS)
|
interval_to_char(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Interval *it = PG_GETARG_INTERVAL_P(0);
|
Interval *it = PG_GETARG_INTERVAL_P(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1),
|
text *fmt = PG_GETARG_TEXT_PP(1),
|
||||||
*res;
|
*res;
|
||||||
TmToChar tmtc;
|
TmToChar tmtc;
|
||||||
struct pg_tm *tm;
|
struct pg_tm *tm;
|
||||||
|
|
||||||
if ((VARSIZE(fmt) - VARHDRSZ) <= 0)
|
if (VARSIZE_ANY_EXHDR(fmt) <= 0)
|
||||||
PG_RETURN_NULL();
|
PG_RETURN_NULL();
|
||||||
|
|
||||||
ZERO_tmtc(&tmtc);
|
ZERO_tmtc(&tmtc);
|
||||||
|
@ -3481,8 +3481,8 @@ interval_to_char(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
to_timestamp(PG_FUNCTION_ARGS)
|
to_timestamp(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *date_txt = PG_GETARG_TEXT_P(0);
|
text *date_txt = PG_GETARG_TEXT_PP(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1);
|
text *fmt = PG_GETARG_TEXT_PP(1);
|
||||||
Timestamp result;
|
Timestamp result;
|
||||||
int tz;
|
int tz;
|
||||||
struct pg_tm tm;
|
struct pg_tm tm;
|
||||||
|
@ -3508,8 +3508,8 @@ to_timestamp(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
to_date(PG_FUNCTION_ARGS)
|
to_date(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *date_txt = PG_GETARG_TEXT_P(0);
|
text *date_txt = PG_GETARG_TEXT_PP(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1);
|
text *fmt = PG_GETARG_TEXT_PP(1);
|
||||||
DateADT result;
|
DateADT result;
|
||||||
struct pg_tm tm;
|
struct pg_tm tm;
|
||||||
fsec_t fsec;
|
fsec_t fsec;
|
||||||
|
@ -5038,8 +5038,8 @@ do { \
|
||||||
Datum
|
Datum
|
||||||
numeric_to_number(PG_FUNCTION_ARGS)
|
numeric_to_number(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *value = PG_GETARG_TEXT_P(0);
|
text *value = PG_GETARG_TEXT_PP(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1);
|
text *fmt = PG_GETARG_TEXT_PP(1);
|
||||||
NUMDesc Num;
|
NUMDesc Num;
|
||||||
Datum result;
|
Datum result;
|
||||||
FormatNode *format;
|
FormatNode *format;
|
||||||
|
@ -5049,7 +5049,7 @@ numeric_to_number(PG_FUNCTION_ARGS)
|
||||||
int scale,
|
int scale,
|
||||||
precision;
|
precision;
|
||||||
|
|
||||||
len = VARSIZE(fmt) - VARHDRSZ;
|
len = VARSIZE_ANY_EXHDR(fmt);
|
||||||
|
|
||||||
if (len <= 0 || len >= INT_MAX / NUM_MAX_ITEM_SIZ)
|
if (len <= 0 || len >= INT_MAX / NUM_MAX_ITEM_SIZ)
|
||||||
PG_RETURN_NULL();
|
PG_RETURN_NULL();
|
||||||
|
@ -5058,8 +5058,8 @@ numeric_to_number(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
numstr = (char *) palloc((len * NUM_MAX_ITEM_SIZ) + 1);
|
numstr = (char *) palloc((len * NUM_MAX_ITEM_SIZ) + 1);
|
||||||
|
|
||||||
NUM_processor(format, &Num, VARDATA(value), numstr,
|
NUM_processor(format, &Num, VARDATA_ANY(value), numstr,
|
||||||
VARSIZE(value) - VARHDRSZ, 0, 0, false, PG_GET_COLLATION());
|
VARSIZE_ANY_EXHDR(value), 0, 0, false, PG_GET_COLLATION());
|
||||||
|
|
||||||
scale = Num.post;
|
scale = Num.post;
|
||||||
precision = Num.pre + Num.multi + scale;
|
precision = Num.pre + Num.multi + scale;
|
||||||
|
@ -5100,7 +5100,7 @@ Datum
|
||||||
numeric_to_char(PG_FUNCTION_ARGS)
|
numeric_to_char(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
Numeric value = PG_GETARG_NUMERIC(0);
|
Numeric value = PG_GETARG_NUMERIC(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1);
|
text *fmt = PG_GETARG_TEXT_PP(1);
|
||||||
NUMDesc Num;
|
NUMDesc Num;
|
||||||
FormatNode *format;
|
FormatNode *format;
|
||||||
text *result;
|
text *result;
|
||||||
|
@ -5224,7 +5224,7 @@ Datum
|
||||||
int4_to_char(PG_FUNCTION_ARGS)
|
int4_to_char(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
int32 value = PG_GETARG_INT32(0);
|
int32 value = PG_GETARG_INT32(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1);
|
text *fmt = PG_GETARG_TEXT_PP(1);
|
||||||
NUMDesc Num;
|
NUMDesc Num;
|
||||||
FormatNode *format;
|
FormatNode *format;
|
||||||
text *result;
|
text *result;
|
||||||
|
@ -5319,7 +5319,7 @@ Datum
|
||||||
int8_to_char(PG_FUNCTION_ARGS)
|
int8_to_char(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
int64 value = PG_GETARG_INT64(0);
|
int64 value = PG_GETARG_INT64(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1);
|
text *fmt = PG_GETARG_TEXT_PP(1);
|
||||||
NUMDesc Num;
|
NUMDesc Num;
|
||||||
FormatNode *format;
|
FormatNode *format;
|
||||||
text *result;
|
text *result;
|
||||||
|
@ -5429,7 +5429,7 @@ Datum
|
||||||
float4_to_char(PG_FUNCTION_ARGS)
|
float4_to_char(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
float4 value = PG_GETARG_FLOAT4(0);
|
float4 value = PG_GETARG_FLOAT4(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1);
|
text *fmt = PG_GETARG_TEXT_PP(1);
|
||||||
NUMDesc Num;
|
NUMDesc Num;
|
||||||
FormatNode *format;
|
FormatNode *format;
|
||||||
text *result;
|
text *result;
|
||||||
|
@ -5535,7 +5535,7 @@ Datum
|
||||||
float8_to_char(PG_FUNCTION_ARGS)
|
float8_to_char(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
float8 value = PG_GETARG_FLOAT8(0);
|
float8 value = PG_GETARG_FLOAT8(0);
|
||||||
text *fmt = PG_GETARG_TEXT_P(1);
|
text *fmt = PG_GETARG_TEXT_PP(1);
|
||||||
NUMDesc Num;
|
NUMDesc Num;
|
||||||
FormatNode *format;
|
FormatNode *format;
|
||||||
text *result;
|
text *result;
|
||||||
|
|
|
@ -187,7 +187,7 @@ read_text_file(const char *filename, int64 seek_offset, int64 bytes_to_read,
|
||||||
Datum
|
Datum
|
||||||
pg_read_file(PG_FUNCTION_ARGS)
|
pg_read_file(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *filename_t = PG_GETARG_TEXT_P(0);
|
text *filename_t = PG_GETARG_TEXT_PP(0);
|
||||||
int64 seek_offset = 0;
|
int64 seek_offset = 0;
|
||||||
int64 bytes_to_read = -1;
|
int64 bytes_to_read = -1;
|
||||||
bool missing_ok = false;
|
bool missing_ok = false;
|
||||||
|
@ -228,7 +228,7 @@ pg_read_file(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
pg_read_binary_file(PG_FUNCTION_ARGS)
|
pg_read_binary_file(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *filename_t = PG_GETARG_TEXT_P(0);
|
text *filename_t = PG_GETARG_TEXT_PP(0);
|
||||||
int64 seek_offset = 0;
|
int64 seek_offset = 0;
|
||||||
int64 bytes_to_read = -1;
|
int64 bytes_to_read = -1;
|
||||||
bool missing_ok = false;
|
bool missing_ok = false;
|
||||||
|
@ -303,7 +303,7 @@ pg_read_binary_file_all(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
pg_stat_file(PG_FUNCTION_ARGS)
|
pg_stat_file(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *filename_t = PG_GETARG_TEXT_P(0);
|
text *filename_t = PG_GETARG_TEXT_PP(0);
|
||||||
char *filename;
|
char *filename;
|
||||||
struct stat fst;
|
struct stat fst;
|
||||||
Datum values[6];
|
Datum values[6];
|
||||||
|
@ -421,7 +421,7 @@ pg_ls_dir(PG_FUNCTION_ARGS)
|
||||||
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
|
oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
|
||||||
|
|
||||||
fctx = palloc(sizeof(directory_fctx));
|
fctx = palloc(sizeof(directory_fctx));
|
||||||
fctx->location = convert_and_check_filename(PG_GETARG_TEXT_P(0));
|
fctx->location = convert_and_check_filename(PG_GETARG_TEXT_PP(0));
|
||||||
|
|
||||||
fctx->include_dot_dirs = include_dot_dirs;
|
fctx->include_dot_dirs = include_dot_dirs;
|
||||||
fctx->dirdesc = AllocateDir(fctx->location);
|
fctx->dirdesc = AllocateDir(fctx->location);
|
||||||
|
|
|
@ -299,8 +299,8 @@ json_recv(PG_FUNCTION_ARGS)
|
||||||
JsonLexContext *
|
JsonLexContext *
|
||||||
makeJsonLexContext(text *json, bool need_escapes)
|
makeJsonLexContext(text *json, bool need_escapes)
|
||||||
{
|
{
|
||||||
return makeJsonLexContextCstringLen(VARDATA(json),
|
return makeJsonLexContextCstringLen(VARDATA_ANY(json),
|
||||||
VARSIZE(json) - VARHDRSZ,
|
VARSIZE_ANY_EXHDR(json),
|
||||||
need_escapes);
|
need_escapes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1570,7 +1570,7 @@ datum_to_json(Datum val, bool is_null, StringInfo result,
|
||||||
break;
|
break;
|
||||||
case JSONTYPE_CAST:
|
case JSONTYPE_CAST:
|
||||||
/* outfuncoid refers to a cast function, not an output function */
|
/* outfuncoid refers to a cast function, not an output function */
|
||||||
jsontext = DatumGetTextP(OidFunctionCall1(outfuncoid, val));
|
jsontext = DatumGetTextPP(OidFunctionCall1(outfuncoid, val));
|
||||||
outputstr = text_to_cstring(jsontext);
|
outputstr = text_to_cstring(jsontext);
|
||||||
appendStringInfoString(result, outputstr);
|
appendStringInfoString(result, outputstr);
|
||||||
pfree(outputstr);
|
pfree(outputstr);
|
||||||
|
@ -2492,7 +2492,7 @@ json_typeof(PG_FUNCTION_ARGS)
|
||||||
JsonTokenType tok;
|
JsonTokenType tok;
|
||||||
char *type;
|
char *type;
|
||||||
|
|
||||||
json = PG_GETARG_TEXT_P(0);
|
json = PG_GETARG_TEXT_PP(0);
|
||||||
lex = makeJsonLexContext(json, false);
|
lex = makeJsonLexContext(json, false);
|
||||||
|
|
||||||
/* Lex exactly one token from the input and check its type. */
|
/* Lex exactly one token from the input and check its type. */
|
||||||
|
|
|
@ -857,7 +857,7 @@ datum_to_jsonb(Datum val, bool is_null, JsonbInState *result,
|
||||||
/* parse the json right into the existing result object */
|
/* parse the json right into the existing result object */
|
||||||
JsonLexContext *lex;
|
JsonLexContext *lex;
|
||||||
JsonSemAction sem;
|
JsonSemAction sem;
|
||||||
text *json = DatumGetTextP(val);
|
text *json = DatumGetTextPP(val);
|
||||||
|
|
||||||
lex = makeJsonLexContext(json, true);
|
lex = makeJsonLexContext(json, true);
|
||||||
|
|
||||||
|
|
|
@ -371,7 +371,7 @@ json_object_keys(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
if (SRF_IS_FIRSTCALL())
|
if (SRF_IS_FIRSTCALL())
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
JsonLexContext *lex = makeJsonLexContext(json, true);
|
JsonLexContext *lex = makeJsonLexContext(json, true);
|
||||||
JsonSemAction *sem;
|
JsonSemAction *sem;
|
||||||
MemoryContext oldcontext;
|
MemoryContext oldcontext;
|
||||||
|
@ -482,7 +482,7 @@ okeys_scalar(void *state, char *token, JsonTokenType tokentype)
|
||||||
Datum
|
Datum
|
||||||
json_object_field(PG_FUNCTION_ARGS)
|
json_object_field(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
text *fname = PG_GETARG_TEXT_PP(1);
|
text *fname = PG_GETARG_TEXT_PP(1);
|
||||||
char *fnamestr = text_to_cstring(fname);
|
char *fnamestr = text_to_cstring(fname);
|
||||||
text *result;
|
text *result;
|
||||||
|
@ -518,7 +518,7 @@ jsonb_object_field(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
json_object_field_text(PG_FUNCTION_ARGS)
|
json_object_field_text(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
text *fname = PG_GETARG_TEXT_PP(1);
|
text *fname = PG_GETARG_TEXT_PP(1);
|
||||||
char *fnamestr = text_to_cstring(fname);
|
char *fnamestr = text_to_cstring(fname);
|
||||||
text *result;
|
text *result;
|
||||||
|
@ -585,7 +585,7 @@ jsonb_object_field_text(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
json_array_element(PG_FUNCTION_ARGS)
|
json_array_element(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
int element = PG_GETARG_INT32(1);
|
int element = PG_GETARG_INT32(1);
|
||||||
text *result;
|
text *result;
|
||||||
|
|
||||||
|
@ -628,7 +628,7 @@ jsonb_array_element(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
json_array_element_text(PG_FUNCTION_ARGS)
|
json_array_element_text(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
int element = PG_GETARG_INT32(1);
|
int element = PG_GETARG_INT32(1);
|
||||||
text *result;
|
text *result;
|
||||||
|
|
||||||
|
@ -717,7 +717,7 @@ json_extract_path_text(PG_FUNCTION_ARGS)
|
||||||
static Datum
|
static Datum
|
||||||
get_path_all(FunctionCallInfo fcinfo, bool as_text)
|
get_path_all(FunctionCallInfo fcinfo, bool as_text)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
ArrayType *path = PG_GETARG_ARRAYTYPE_P(1);
|
ArrayType *path = PG_GETARG_ARRAYTYPE_P(1);
|
||||||
text *result;
|
text *result;
|
||||||
Datum *pathtext;
|
Datum *pathtext;
|
||||||
|
@ -1338,7 +1338,7 @@ get_jsonb_path_all(FunctionCallInfo fcinfo, bool as_text)
|
||||||
Datum
|
Datum
|
||||||
json_array_length(PG_FUNCTION_ARGS)
|
json_array_length(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
AlenState *state;
|
AlenState *state;
|
||||||
JsonLexContext *lex;
|
JsonLexContext *lex;
|
||||||
JsonSemAction *sem;
|
JsonSemAction *sem;
|
||||||
|
@ -1592,7 +1592,7 @@ each_worker_jsonb(FunctionCallInfo fcinfo, const char *funcname, bool as_text)
|
||||||
static Datum
|
static Datum
|
||||||
each_worker(FunctionCallInfo fcinfo, bool as_text)
|
each_worker(FunctionCallInfo fcinfo, bool as_text)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
JsonLexContext *lex;
|
JsonLexContext *lex;
|
||||||
JsonSemAction *sem;
|
JsonSemAction *sem;
|
||||||
ReturnSetInfo *rsi;
|
ReturnSetInfo *rsi;
|
||||||
|
@ -1906,7 +1906,7 @@ json_array_elements_text(PG_FUNCTION_ARGS)
|
||||||
static Datum
|
static Datum
|
||||||
elements_worker(FunctionCallInfo fcinfo, const char *funcname, bool as_text)
|
elements_worker(FunctionCallInfo fcinfo, const char *funcname, bool as_text)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
|
|
||||||
/* elements only needs escaped strings when as_text */
|
/* elements only needs escaped strings when as_text */
|
||||||
JsonLexContext *lex = makeJsonLexContext(json, as_text);
|
JsonLexContext *lex = makeJsonLexContext(json, as_text);
|
||||||
|
@ -2177,7 +2177,7 @@ populate_record_worker(FunctionCallInfo fcinfo, const char *funcname,
|
||||||
if (jtype == JSONOID)
|
if (jtype == JSONOID)
|
||||||
{
|
{
|
||||||
/* just get the text */
|
/* just get the text */
|
||||||
json = PG_GETARG_TEXT_P(json_arg_num);
|
json = PG_GETARG_TEXT_PP(json_arg_num);
|
||||||
|
|
||||||
json_hash = get_json_object_as_hash(json, funcname);
|
json_hash = get_json_object_as_hash(json, funcname);
|
||||||
|
|
||||||
|
@ -2767,7 +2767,7 @@ populate_recordset_worker(FunctionCallInfo fcinfo, const char *funcname,
|
||||||
|
|
||||||
if (jtype == JSONOID)
|
if (jtype == JSONOID)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(json_arg_num);
|
text *json = PG_GETARG_TEXT_PP(json_arg_num);
|
||||||
JsonLexContext *lex;
|
JsonLexContext *lex;
|
||||||
JsonSemAction *sem;
|
JsonSemAction *sem;
|
||||||
|
|
||||||
|
@ -3193,7 +3193,7 @@ sn_scalar(void *state, char *token, JsonTokenType tokentype)
|
||||||
Datum
|
Datum
|
||||||
json_strip_nulls(PG_FUNCTION_ARGS)
|
json_strip_nulls(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *json = PG_GETARG_TEXT_P(0);
|
text *json = PG_GETARG_TEXT_PP(0);
|
||||||
StripnullState *state;
|
StripnullState *state;
|
||||||
JsonLexContext *lex;
|
JsonLexContext *lex;
|
||||||
JsonSemAction *sem;
|
JsonSemAction *sem;
|
||||||
|
|
|
@ -175,14 +175,14 @@ Generic_Text_IC_like(text *str, text *pat, Oid collation)
|
||||||
if (pg_database_encoding_max_length() > 1)
|
if (pg_database_encoding_max_length() > 1)
|
||||||
{
|
{
|
||||||
/* lower's result is never packed, so OK to use old macros here */
|
/* lower's result is never packed, so OK to use old macros here */
|
||||||
pat = DatumGetTextP(DirectFunctionCall1Coll(lower, collation,
|
pat = DatumGetTextPP(DirectFunctionCall1Coll(lower, collation,
|
||||||
PointerGetDatum(pat)));
|
PointerGetDatum(pat)));
|
||||||
p = VARDATA(pat);
|
p = VARDATA_ANY(pat);
|
||||||
plen = (VARSIZE(pat) - VARHDRSZ);
|
plen = VARSIZE_ANY_EXHDR(pat);
|
||||||
str = DatumGetTextP(DirectFunctionCall1Coll(lower, collation,
|
str = DatumGetTextPP(DirectFunctionCall1Coll(lower, collation,
|
||||||
PointerGetDatum(str)));
|
PointerGetDatum(str)));
|
||||||
s = VARDATA(str);
|
s = VARDATA_ANY(str);
|
||||||
slen = (VARSIZE(str) - VARHDRSZ);
|
slen = VARSIZE_ANY_EXHDR(str);
|
||||||
if (GetDatabaseEncoding() == PG_UTF8)
|
if (GetDatabaseEncoding() == PG_UTF8)
|
||||||
return UTF8_MatchText(s, slen, p, plen, 0, true);
|
return UTF8_MatchText(s, slen, p, plen, 0, true);
|
||||||
else
|
else
|
||||||
|
@ -365,8 +365,8 @@ nameiclike(PG_FUNCTION_ARGS)
|
||||||
bool result;
|
bool result;
|
||||||
text *strtext;
|
text *strtext;
|
||||||
|
|
||||||
strtext = DatumGetTextP(DirectFunctionCall1(name_text,
|
strtext = DatumGetTextPP(DirectFunctionCall1(name_text,
|
||||||
NameGetDatum(str)));
|
NameGetDatum(str)));
|
||||||
result = (Generic_Text_IC_like(strtext, pat, PG_GET_COLLATION()) == LIKE_TRUE);
|
result = (Generic_Text_IC_like(strtext, pat, PG_GET_COLLATION()) == LIKE_TRUE);
|
||||||
|
|
||||||
PG_RETURN_BOOL(result);
|
PG_RETURN_BOOL(result);
|
||||||
|
@ -380,8 +380,8 @@ nameicnlike(PG_FUNCTION_ARGS)
|
||||||
bool result;
|
bool result;
|
||||||
text *strtext;
|
text *strtext;
|
||||||
|
|
||||||
strtext = DatumGetTextP(DirectFunctionCall1(name_text,
|
strtext = DatumGetTextPP(DirectFunctionCall1(name_text,
|
||||||
NameGetDatum(str)));
|
NameGetDatum(str)));
|
||||||
result = (Generic_Text_IC_like(strtext, pat, PG_GET_COLLATION()) != LIKE_TRUE);
|
result = (Generic_Text_IC_like(strtext, pat, PG_GET_COLLATION()) != LIKE_TRUE);
|
||||||
|
|
||||||
PG_RETURN_BOOL(result);
|
PG_RETURN_BOOL(result);
|
||||||
|
|
|
@ -3601,7 +3601,7 @@ numeric_avg_serialize(PG_FUNCTION_ARGS)
|
||||||
|
|
||||||
temp = DirectFunctionCall1(numeric_send,
|
temp = DirectFunctionCall1(numeric_send,
|
||||||
NumericGetDatum(make_result(&tmp_var)));
|
NumericGetDatum(make_result(&tmp_var)));
|
||||||
sumX = DatumGetByteaP(temp);
|
sumX = DatumGetByteaPP(temp);
|
||||||
free_var(&tmp_var);
|
free_var(&tmp_var);
|
||||||
|
|
||||||
pq_begintypsend(&buf);
|
pq_begintypsend(&buf);
|
||||||
|
@ -3610,7 +3610,7 @@ numeric_avg_serialize(PG_FUNCTION_ARGS)
|
||||||
pq_sendint64(&buf, state->N);
|
pq_sendint64(&buf, state->N);
|
||||||
|
|
||||||
/* sumX */
|
/* sumX */
|
||||||
pq_sendbytes(&buf, VARDATA(sumX), VARSIZE(sumX) - VARHDRSZ);
|
pq_sendbytes(&buf, VARDATA_ANY(sumX), VARSIZE_ANY_EXHDR(sumX));
|
||||||
|
|
||||||
/* maxScale */
|
/* maxScale */
|
||||||
pq_sendint(&buf, state->maxScale, 4);
|
pq_sendint(&buf, state->maxScale, 4);
|
||||||
|
@ -3643,14 +3643,15 @@ numeric_avg_deserialize(PG_FUNCTION_ARGS)
|
||||||
if (!AggCheckCallContext(fcinfo, NULL))
|
if (!AggCheckCallContext(fcinfo, NULL))
|
||||||
elog(ERROR, "aggregate function called in non-aggregate context");
|
elog(ERROR, "aggregate function called in non-aggregate context");
|
||||||
|
|
||||||
sstate = PG_GETARG_BYTEA_P(0);
|
sstate = PG_GETARG_BYTEA_PP(0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copy the bytea into a StringInfo so that we can "receive" it using the
|
* Copy the bytea into a StringInfo so that we can "receive" it using the
|
||||||
* standard recv-function infrastructure.
|
* standard recv-function infrastructure.
|
||||||
*/
|
*/
|
||||||
initStringInfo(&buf);
|
initStringInfo(&buf);
|
||||||
appendBinaryStringInfo(&buf, VARDATA(sstate), VARSIZE(sstate) - VARHDRSZ);
|
appendBinaryStringInfo(&buf,
|
||||||
|
VARDATA_ANY(sstate), VARSIZE_ANY_EXHDR(sstate));
|
||||||
|
|
||||||
result = makeNumericAggStateCurrentContext(false);
|
result = makeNumericAggStateCurrentContext(false);
|
||||||
|
|
||||||
|
@ -3713,12 +3714,12 @@ numeric_serialize(PG_FUNCTION_ARGS)
|
||||||
accum_sum_final(&state->sumX, &tmp_var);
|
accum_sum_final(&state->sumX, &tmp_var);
|
||||||
temp = DirectFunctionCall1(numeric_send,
|
temp = DirectFunctionCall1(numeric_send,
|
||||||
NumericGetDatum(make_result(&tmp_var)));
|
NumericGetDatum(make_result(&tmp_var)));
|
||||||
sumX = DatumGetByteaP(temp);
|
sumX = DatumGetByteaPP(temp);
|
||||||
|
|
||||||
accum_sum_final(&state->sumX2, &tmp_var);
|
accum_sum_final(&state->sumX2, &tmp_var);
|
||||||
temp = DirectFunctionCall1(numeric_send,
|
temp = DirectFunctionCall1(numeric_send,
|
||||||
NumericGetDatum(make_result(&tmp_var)));
|
NumericGetDatum(make_result(&tmp_var)));
|
||||||
sumX2 = DatumGetByteaP(temp);
|
sumX2 = DatumGetByteaPP(temp);
|
||||||
|
|
||||||
free_var(&tmp_var);
|
free_var(&tmp_var);
|
||||||
|
|
||||||
|
@ -3728,10 +3729,10 @@ numeric_serialize(PG_FUNCTION_ARGS)
|
||||||
pq_sendint64(&buf, state->N);
|
pq_sendint64(&buf, state->N);
|
||||||
|
|
||||||
/* sumX */
|
/* sumX */
|
||||||
pq_sendbytes(&buf, VARDATA(sumX), VARSIZE(sumX) - VARHDRSZ);
|
pq_sendbytes(&buf, VARDATA_ANY(sumX), VARSIZE_ANY_EXHDR(sumX));
|
||||||
|
|
||||||
/* sumX2 */
|
/* sumX2 */
|
||||||
pq_sendbytes(&buf, VARDATA(sumX2), VARSIZE(sumX2) - VARHDRSZ);
|
pq_sendbytes(&buf, VARDATA_ANY(sumX2), VARSIZE_ANY_EXHDR(sumX2));
|
||||||
|
|
||||||
/* maxScale */
|
/* maxScale */
|
||||||
pq_sendint(&buf, state->maxScale, 4);
|
pq_sendint(&buf, state->maxScale, 4);
|
||||||
|
@ -3765,14 +3766,15 @@ numeric_deserialize(PG_FUNCTION_ARGS)
|
||||||
if (!AggCheckCallContext(fcinfo, NULL))
|
if (!AggCheckCallContext(fcinfo, NULL))
|
||||||
elog(ERROR, "aggregate function called in non-aggregate context");
|
elog(ERROR, "aggregate function called in non-aggregate context");
|
||||||
|
|
||||||
sstate = PG_GETARG_BYTEA_P(0);
|
sstate = PG_GETARG_BYTEA_PP(0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copy the bytea into a StringInfo so that we can "receive" it using the
|
* Copy the bytea into a StringInfo so that we can "receive" it using the
|
||||||
* standard recv-function infrastructure.
|
* standard recv-function infrastructure.
|
||||||
*/
|
*/
|
||||||
initStringInfo(&buf);
|
initStringInfo(&buf);
|
||||||
appendBinaryStringInfo(&buf, VARDATA(sstate), VARSIZE(sstate) - VARHDRSZ);
|
appendBinaryStringInfo(&buf,
|
||||||
|
VARDATA_ANY(sstate), VARSIZE_ANY_EXHDR(sstate));
|
||||||
|
|
||||||
result = makeNumericAggStateCurrentContext(false);
|
result = makeNumericAggStateCurrentContext(false);
|
||||||
|
|
||||||
|
@ -4114,7 +4116,7 @@ numeric_poly_serialize(PG_FUNCTION_ARGS)
|
||||||
#endif
|
#endif
|
||||||
temp = DirectFunctionCall1(numeric_send,
|
temp = DirectFunctionCall1(numeric_send,
|
||||||
NumericGetDatum(make_result(&num)));
|
NumericGetDatum(make_result(&num)));
|
||||||
sumX = DatumGetByteaP(temp);
|
sumX = DatumGetByteaPP(temp);
|
||||||
|
|
||||||
#ifdef HAVE_INT128
|
#ifdef HAVE_INT128
|
||||||
int128_to_numericvar(state->sumX2, &num);
|
int128_to_numericvar(state->sumX2, &num);
|
||||||
|
@ -4123,7 +4125,7 @@ numeric_poly_serialize(PG_FUNCTION_ARGS)
|
||||||
#endif
|
#endif
|
||||||
temp = DirectFunctionCall1(numeric_send,
|
temp = DirectFunctionCall1(numeric_send,
|
||||||
NumericGetDatum(make_result(&num)));
|
NumericGetDatum(make_result(&num)));
|
||||||
sumX2 = DatumGetByteaP(temp);
|
sumX2 = DatumGetByteaPP(temp);
|
||||||
|
|
||||||
free_var(&num);
|
free_var(&num);
|
||||||
}
|
}
|
||||||
|
@ -4134,10 +4136,10 @@ numeric_poly_serialize(PG_FUNCTION_ARGS)
|
||||||
pq_sendint64(&buf, state->N);
|
pq_sendint64(&buf, state->N);
|
||||||
|
|
||||||
/* sumX */
|
/* sumX */
|
||||||
pq_sendbytes(&buf, VARDATA(sumX), VARSIZE(sumX) - VARHDRSZ);
|
pq_sendbytes(&buf, VARDATA_ANY(sumX), VARSIZE_ANY_EXHDR(sumX));
|
||||||
|
|
||||||
/* sumX2 */
|
/* sumX2 */
|
||||||
pq_sendbytes(&buf, VARDATA(sumX2), VARSIZE(sumX2) - VARHDRSZ);
|
pq_sendbytes(&buf, VARDATA_ANY(sumX2), VARSIZE_ANY_EXHDR(sumX2));
|
||||||
|
|
||||||
result = pq_endtypsend(&buf);
|
result = pq_endtypsend(&buf);
|
||||||
|
|
||||||
|
@ -4163,14 +4165,15 @@ numeric_poly_deserialize(PG_FUNCTION_ARGS)
|
||||||
if (!AggCheckCallContext(fcinfo, NULL))
|
if (!AggCheckCallContext(fcinfo, NULL))
|
||||||
elog(ERROR, "aggregate function called in non-aggregate context");
|
elog(ERROR, "aggregate function called in non-aggregate context");
|
||||||
|
|
||||||
sstate = PG_GETARG_BYTEA_P(0);
|
sstate = PG_GETARG_BYTEA_PP(0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copy the bytea into a StringInfo so that we can "receive" it using the
|
* Copy the bytea into a StringInfo so that we can "receive" it using the
|
||||||
* standard recv-function infrastructure.
|
* standard recv-function infrastructure.
|
||||||
*/
|
*/
|
||||||
initStringInfo(&buf);
|
initStringInfo(&buf);
|
||||||
appendBinaryStringInfo(&buf, VARDATA(sstate), VARSIZE(sstate) - VARHDRSZ);
|
appendBinaryStringInfo(&buf,
|
||||||
|
VARDATA_ANY(sstate), VARSIZE_ANY_EXHDR(sstate));
|
||||||
|
|
||||||
result = makePolyNumAggStateCurrentContext(false);
|
result = makePolyNumAggStateCurrentContext(false);
|
||||||
|
|
||||||
|
@ -4338,7 +4341,7 @@ int8_avg_serialize(PG_FUNCTION_ARGS)
|
||||||
#endif
|
#endif
|
||||||
temp = DirectFunctionCall1(numeric_send,
|
temp = DirectFunctionCall1(numeric_send,
|
||||||
NumericGetDatum(make_result(&num)));
|
NumericGetDatum(make_result(&num)));
|
||||||
sumX = DatumGetByteaP(temp);
|
sumX = DatumGetByteaPP(temp);
|
||||||
|
|
||||||
free_var(&num);
|
free_var(&num);
|
||||||
}
|
}
|
||||||
|
@ -4349,7 +4352,7 @@ int8_avg_serialize(PG_FUNCTION_ARGS)
|
||||||
pq_sendint64(&buf, state->N);
|
pq_sendint64(&buf, state->N);
|
||||||
|
|
||||||
/* sumX */
|
/* sumX */
|
||||||
pq_sendbytes(&buf, VARDATA(sumX), VARSIZE(sumX) - VARHDRSZ);
|
pq_sendbytes(&buf, VARDATA_ANY(sumX), VARSIZE_ANY_EXHDR(sumX));
|
||||||
|
|
||||||
result = pq_endtypsend(&buf);
|
result = pq_endtypsend(&buf);
|
||||||
|
|
||||||
|
@ -4372,14 +4375,15 @@ int8_avg_deserialize(PG_FUNCTION_ARGS)
|
||||||
if (!AggCheckCallContext(fcinfo, NULL))
|
if (!AggCheckCallContext(fcinfo, NULL))
|
||||||
elog(ERROR, "aggregate function called in non-aggregate context");
|
elog(ERROR, "aggregate function called in non-aggregate context");
|
||||||
|
|
||||||
sstate = PG_GETARG_BYTEA_P(0);
|
sstate = PG_GETARG_BYTEA_PP(0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copy the bytea into a StringInfo so that we can "receive" it using the
|
* Copy the bytea into a StringInfo so that we can "receive" it using the
|
||||||
* standard recv-function infrastructure.
|
* standard recv-function infrastructure.
|
||||||
*/
|
*/
|
||||||
initStringInfo(&buf);
|
initStringInfo(&buf);
|
||||||
appendBinaryStringInfo(&buf, VARDATA(sstate), VARSIZE(sstate) - VARHDRSZ);
|
appendBinaryStringInfo(&buf,
|
||||||
|
VARDATA_ANY(sstate), VARSIZE_ANY_EXHDR(sstate));
|
||||||
|
|
||||||
result = makePolyNumAggStateCurrentContext(false);
|
result = makePolyNumAggStateCurrentContext(false);
|
||||||
|
|
||||||
|
|
|
@ -76,17 +76,17 @@ quote_literal_internal(char *dst, const char *src, size_t len)
|
||||||
Datum
|
Datum
|
||||||
quote_literal(PG_FUNCTION_ARGS)
|
quote_literal(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *t = PG_GETARG_TEXT_P(0);
|
text *t = PG_GETARG_TEXT_PP(0);
|
||||||
text *result;
|
text *result;
|
||||||
char *cp1;
|
char *cp1;
|
||||||
char *cp2;
|
char *cp2;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
len = VARSIZE(t) - VARHDRSZ;
|
len = VARSIZE_ANY_EXHDR(t);
|
||||||
/* We make a worst-case result area; wasting a little space is OK */
|
/* We make a worst-case result area; wasting a little space is OK */
|
||||||
result = (text *) palloc(len * 2 + 3 + VARHDRSZ);
|
result = (text *) palloc(len * 2 + 3 + VARHDRSZ);
|
||||||
|
|
||||||
cp1 = VARDATA(t);
|
cp1 = VARDATA_ANY(t);
|
||||||
cp2 = VARDATA(result);
|
cp2 = VARDATA(result);
|
||||||
|
|
||||||
SET_VARSIZE(result, VARHDRSZ + quote_literal_internal(cp2, cp1, len));
|
SET_VARSIZE(result, VARHDRSZ + quote_literal_internal(cp2, cp1, len));
|
||||||
|
|
|
@ -404,7 +404,7 @@ range_constructor3(PG_FUNCTION_ARGS)
|
||||||
(errcode(ERRCODE_DATA_EXCEPTION),
|
(errcode(ERRCODE_DATA_EXCEPTION),
|
||||||
errmsg("range constructor flags argument must not be null")));
|
errmsg("range constructor flags argument must not be null")));
|
||||||
|
|
||||||
flags = range_parse_flags(text_to_cstring(PG_GETARG_TEXT_P(2)));
|
flags = range_parse_flags(text_to_cstring(PG_GETARG_TEXT_PP(2)));
|
||||||
|
|
||||||
lower.val = PG_ARGISNULL(0) ? (Datum) 0 : arg1;
|
lower.val = PG_ARGISNULL(0) ? (Datum) 0 : arg1;
|
||||||
lower.infinite = PG_ARGISNULL(0);
|
lower.infinite = PG_ARGISNULL(0);
|
||||||
|
|
|
@ -1810,7 +1810,7 @@ regnamespacesend(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
text_regclass(PG_FUNCTION_ARGS)
|
text_regclass(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
Oid result;
|
Oid result;
|
||||||
RangeVar *rv;
|
RangeVar *rv;
|
||||||
|
|
||||||
|
|
|
@ -647,7 +647,7 @@ Datum
|
||||||
pg_get_viewdef_name(PG_FUNCTION_ARGS)
|
pg_get_viewdef_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
/* By qualified name */
|
/* By qualified name */
|
||||||
text *viewname = PG_GETARG_TEXT_P(0);
|
text *viewname = PG_GETARG_TEXT_PP(0);
|
||||||
int prettyFlags;
|
int prettyFlags;
|
||||||
RangeVar *viewrel;
|
RangeVar *viewrel;
|
||||||
Oid viewoid;
|
Oid viewoid;
|
||||||
|
@ -672,7 +672,7 @@ Datum
|
||||||
pg_get_viewdef_name_ext(PG_FUNCTION_ARGS)
|
pg_get_viewdef_name_ext(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
/* By qualified name */
|
/* By qualified name */
|
||||||
text *viewname = PG_GETARG_TEXT_P(0);
|
text *viewname = PG_GETARG_TEXT_PP(0);
|
||||||
bool pretty = PG_GETARG_BOOL(1);
|
bool pretty = PG_GETARG_BOOL(1);
|
||||||
int prettyFlags;
|
int prettyFlags;
|
||||||
RangeVar *viewrel;
|
RangeVar *viewrel;
|
||||||
|
@ -1034,7 +1034,7 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty)
|
||||||
tgrel->rd_att, &isnull);
|
tgrel->rd_att, &isnull);
|
||||||
if (isnull)
|
if (isnull)
|
||||||
elog(ERROR, "tgargs is null for trigger %u", trigid);
|
elog(ERROR, "tgargs is null for trigger %u", trigid);
|
||||||
p = (char *) VARDATA(DatumGetByteaP(value));
|
p = (char *) VARDATA_ANY(DatumGetByteaPP(value));
|
||||||
for (i = 0; i < trigrec->tgnargs; i++)
|
for (i = 0; i < trigrec->tgnargs; i++)
|
||||||
{
|
{
|
||||||
if (i > 0)
|
if (i > 0)
|
||||||
|
@ -2034,7 +2034,7 @@ decompile_column_index_array(Datum column_index_array, Oid relId,
|
||||||
Datum
|
Datum
|
||||||
pg_get_expr(PG_FUNCTION_ARGS)
|
pg_get_expr(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *expr = PG_GETARG_TEXT_P(0);
|
text *expr = PG_GETARG_TEXT_PP(0);
|
||||||
Oid relid = PG_GETARG_OID(1);
|
Oid relid = PG_GETARG_OID(1);
|
||||||
int prettyFlags;
|
int prettyFlags;
|
||||||
char *relname;
|
char *relname;
|
||||||
|
@ -2064,7 +2064,7 @@ pg_get_expr(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
pg_get_expr_ext(PG_FUNCTION_ARGS)
|
pg_get_expr_ext(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *expr = PG_GETARG_TEXT_P(0);
|
text *expr = PG_GETARG_TEXT_PP(0);
|
||||||
Oid relid = PG_GETARG_OID(1);
|
Oid relid = PG_GETARG_OID(1);
|
||||||
bool pretty = PG_GETARG_BOOL(2);
|
bool pretty = PG_GETARG_BOOL(2);
|
||||||
int prettyFlags;
|
int prettyFlags;
|
||||||
|
@ -2162,7 +2162,7 @@ pg_get_userbyid(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
pg_get_serial_sequence(PG_FUNCTION_ARGS)
|
pg_get_serial_sequence(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *tablename = PG_GETARG_TEXT_P(0);
|
text *tablename = PG_GETARG_TEXT_PP(0);
|
||||||
text *columnname = PG_GETARG_TEXT_PP(1);
|
text *columnname = PG_GETARG_TEXT_PP(1);
|
||||||
RangeVar *tablerv;
|
RangeVar *tablerv;
|
||||||
Oid tableOid;
|
Oid tableOid;
|
||||||
|
|
|
@ -5342,13 +5342,12 @@ like_fixed_prefix(Const *patt_const, bool case_insensitive, Oid collation,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bytea *bstr = DatumGetByteaP(patt_const->constvalue);
|
bytea *bstr = DatumGetByteaPP(patt_const->constvalue);
|
||||||
|
|
||||||
pattlen = VARSIZE(bstr) - VARHDRSZ;
|
pattlen = VARSIZE_ANY_EXHDR(bstr);
|
||||||
patt = (char *) palloc(pattlen);
|
patt = (char *) palloc(pattlen);
|
||||||
memcpy(patt, VARDATA(bstr), pattlen);
|
memcpy(patt, VARDATA_ANY(bstr), pattlen);
|
||||||
if ((Pointer) bstr != DatumGetPointer(patt_const->constvalue))
|
Assert((Pointer) bstr == DatumGetPointer(patt_const->constvalue));
|
||||||
pfree(bstr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
match = palloc(pattlen + 1);
|
match = palloc(pattlen + 1);
|
||||||
|
@ -5858,13 +5857,12 @@ make_greater_string(const Const *str_const, FmgrInfo *ltproc, Oid collation)
|
||||||
}
|
}
|
||||||
else if (datatype == BYTEAOID)
|
else if (datatype == BYTEAOID)
|
||||||
{
|
{
|
||||||
bytea *bstr = DatumGetByteaP(str_const->constvalue);
|
bytea *bstr = DatumGetByteaPP(str_const->constvalue);
|
||||||
|
|
||||||
len = VARSIZE(bstr) - VARHDRSZ;
|
len = VARSIZE_ANY_EXHDR(bstr);
|
||||||
workstr = (char *) palloc(len);
|
workstr = (char *) palloc(len);
|
||||||
memcpy(workstr, VARDATA(bstr), len);
|
memcpy(workstr, VARDATA_ANY(bstr), len);
|
||||||
if ((Pointer) bstr != DatumGetPointer(str_const->constvalue))
|
Assert((Pointer) bstr == DatumGetPointer(str_const->constvalue));
|
||||||
pfree(bstr);
|
|
||||||
cmpstr = str_const->constvalue;
|
cmpstr = str_const->constvalue;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -368,7 +368,7 @@ currtid_byreloid(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
currtid_byrelname(PG_FUNCTION_ARGS)
|
currtid_byrelname(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *relname = PG_GETARG_TEXT_P(0);
|
text *relname = PG_GETARG_TEXT_PP(0);
|
||||||
ItemPointer tid = PG_GETARG_ITEMPOINTER(1);
|
ItemPointer tid = PG_GETARG_ITEMPOINTER(1);
|
||||||
ItemPointer result;
|
ItemPointer result;
|
||||||
RangeVar *relrv;
|
RangeVar *relrv;
|
||||||
|
|
|
@ -280,7 +280,7 @@ Datum
|
||||||
tsquery_rewrite_query(PG_FUNCTION_ARGS)
|
tsquery_rewrite_query(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
TSQuery query = PG_GETARG_TSQUERY_COPY(0);
|
TSQuery query = PG_GETARG_TSQUERY_COPY(0);
|
||||||
text *in = PG_GETARG_TEXT_P(1);
|
text *in = PG_GETARG_TEXT_PP(1);
|
||||||
TSQuery rewrited = query;
|
TSQuery rewrited = query;
|
||||||
MemoryContext outercontext = CurrentMemoryContext;
|
MemoryContext outercontext = CurrentMemoryContext;
|
||||||
MemoryContext oldcontext;
|
MemoryContext oldcontext;
|
||||||
|
|
|
@ -557,8 +557,8 @@ tsvector_delete_str(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
TSVector tsin = PG_GETARG_TSVECTOR(0),
|
TSVector tsin = PG_GETARG_TSVECTOR(0),
|
||||||
tsout;
|
tsout;
|
||||||
text *tlexeme = PG_GETARG_TEXT_P(1);
|
text *tlexeme = PG_GETARG_TEXT_PP(1);
|
||||||
char *lexeme = VARDATA(tlexeme);
|
char *lexeme = VARDATA_ANY(tlexeme);
|
||||||
int lexeme_len = VARSIZE_ANY_EXHDR(tlexeme),
|
int lexeme_len = VARSIZE_ANY_EXHDR(tlexeme),
|
||||||
skip_index;
|
skip_index;
|
||||||
|
|
||||||
|
@ -2320,8 +2320,8 @@ ts_stat_sql(MemoryContext persistentContext, text *txt, text *ws)
|
||||||
{
|
{
|
||||||
char *buf;
|
char *buf;
|
||||||
|
|
||||||
buf = VARDATA(ws);
|
buf = VARDATA_ANY(ws);
|
||||||
while (buf - VARDATA(ws) < VARSIZE(ws) - VARHDRSZ)
|
while (buf - VARDATA_ANY(ws) < VARSIZE_ANY_EXHDR(ws))
|
||||||
{
|
{
|
||||||
if (pg_mblen(buf) == 1)
|
if (pg_mblen(buf) == 1)
|
||||||
{
|
{
|
||||||
|
@ -2384,7 +2384,7 @@ ts_stat1(PG_FUNCTION_ARGS)
|
||||||
if (SRF_IS_FIRSTCALL())
|
if (SRF_IS_FIRSTCALL())
|
||||||
{
|
{
|
||||||
TSVectorStat *stat;
|
TSVectorStat *stat;
|
||||||
text *txt = PG_GETARG_TEXT_P(0);
|
text *txt = PG_GETARG_TEXT_PP(0);
|
||||||
|
|
||||||
funcctx = SRF_FIRSTCALL_INIT();
|
funcctx = SRF_FIRSTCALL_INIT();
|
||||||
SPI_connect();
|
SPI_connect();
|
||||||
|
@ -2409,8 +2409,8 @@ ts_stat2(PG_FUNCTION_ARGS)
|
||||||
if (SRF_IS_FIRSTCALL())
|
if (SRF_IS_FIRSTCALL())
|
||||||
{
|
{
|
||||||
TSVectorStat *stat;
|
TSVectorStat *stat;
|
||||||
text *txt = PG_GETARG_TEXT_P(0);
|
text *txt = PG_GETARG_TEXT_PP(0);
|
||||||
text *ws = PG_GETARG_TEXT_P(1);
|
text *ws = PG_GETARG_TEXT_PP(1);
|
||||||
|
|
||||||
funcctx = SRF_FIRSTCALL_INIT();
|
funcctx = SRF_FIRSTCALL_INIT();
|
||||||
SPI_connect();
|
SPI_connect();
|
||||||
|
@ -2570,9 +2570,9 @@ tsvector_update_trigger(PG_FUNCTION_ARGS, bool config_column)
|
||||||
if (isnull)
|
if (isnull)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
txt = DatumGetTextP(datum);
|
txt = DatumGetTextPP(datum);
|
||||||
|
|
||||||
parsetext(cfgId, &prs, VARDATA(txt), VARSIZE(txt) - VARHDRSZ);
|
parsetext(cfgId, &prs, VARDATA_ANY(txt), VARSIZE_ANY_EXHDR(txt));
|
||||||
|
|
||||||
if (txt != (text *) DatumGetPointer(datum))
|
if (txt != (text *) DatumGetPointer(datum))
|
||||||
pfree(txt);
|
pfree(txt);
|
||||||
|
|
|
@ -2662,7 +2662,7 @@ bytea_catenate(bytea *t1, bytea *t2)
|
||||||
}
|
}
|
||||||
|
|
||||||
#define PG_STR_GET_BYTEA(str_) \
|
#define PG_STR_GET_BYTEA(str_) \
|
||||||
DatumGetByteaP(DirectFunctionCall1(byteain, CStringGetDatum(str_)))
|
DatumGetByteaPP(DirectFunctionCall1(byteain, CStringGetDatum(str_)))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* bytea_substr()
|
* bytea_substr()
|
||||||
|
@ -2934,13 +2934,12 @@ byteaGetBit(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
byteaSetByte(PG_FUNCTION_ARGS)
|
byteaSetByte(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
bytea *v = PG_GETARG_BYTEA_P(0);
|
bytea *res = PG_GETARG_BYTEA_P_COPY(0);
|
||||||
int32 n = PG_GETARG_INT32(1);
|
int32 n = PG_GETARG_INT32(1);
|
||||||
int32 newByte = PG_GETARG_INT32(2);
|
int32 newByte = PG_GETARG_INT32(2);
|
||||||
int len;
|
int len;
|
||||||
bytea *res;
|
|
||||||
|
|
||||||
len = VARSIZE(v) - VARHDRSZ;
|
len = VARSIZE(res) - VARHDRSZ;
|
||||||
|
|
||||||
if (n < 0 || n >= len)
|
if (n < 0 || n >= len)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
|
@ -2948,12 +2947,6 @@ byteaSetByte(PG_FUNCTION_ARGS)
|
||||||
errmsg("index %d out of valid range, 0..%d",
|
errmsg("index %d out of valid range, 0..%d",
|
||||||
n, len - 1)));
|
n, len - 1)));
|
||||||
|
|
||||||
/*
|
|
||||||
* Make a copy of the original varlena.
|
|
||||||
*/
|
|
||||||
res = (bytea *) palloc(VARSIZE(v));
|
|
||||||
memcpy((char *) res, (char *) v, VARSIZE(v));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Now set the byte.
|
* Now set the byte.
|
||||||
*/
|
*/
|
||||||
|
@ -2973,17 +2966,16 @@ byteaSetByte(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
byteaSetBit(PG_FUNCTION_ARGS)
|
byteaSetBit(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
bytea *v = PG_GETARG_BYTEA_P(0);
|
bytea *res = PG_GETARG_BYTEA_P_COPY(0);
|
||||||
int32 n = PG_GETARG_INT32(1);
|
int32 n = PG_GETARG_INT32(1);
|
||||||
int32 newBit = PG_GETARG_INT32(2);
|
int32 newBit = PG_GETARG_INT32(2);
|
||||||
bytea *res;
|
|
||||||
int len;
|
int len;
|
||||||
int oldByte,
|
int oldByte,
|
||||||
newByte;
|
newByte;
|
||||||
int byteNo,
|
int byteNo,
|
||||||
bitNo;
|
bitNo;
|
||||||
|
|
||||||
len = VARSIZE(v) - VARHDRSZ;
|
len = VARSIZE(res) - VARHDRSZ;
|
||||||
|
|
||||||
if (n < 0 || n >= len * 8)
|
if (n < 0 || n >= len * 8)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
|
@ -3002,12 +2994,6 @@ byteaSetBit(PG_FUNCTION_ARGS)
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("new bit must be 0 or 1")));
|
errmsg("new bit must be 0 or 1")));
|
||||||
|
|
||||||
/*
|
|
||||||
* Make a copy of the original varlena.
|
|
||||||
*/
|
|
||||||
res = (bytea *) palloc(VARSIZE(v));
|
|
||||||
memcpy((char *) res, (char *) v, VARSIZE(v));
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update the byte.
|
* Update the byte.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -433,7 +433,7 @@ xml_send(PG_FUNCTION_ARGS)
|
||||||
static void
|
static void
|
||||||
appendStringInfoText(StringInfo str, const text *t)
|
appendStringInfoText(StringInfo str, const text *t)
|
||||||
{
|
{
|
||||||
appendBinaryStringInfo(str, VARDATA(t), VARSIZE(t) - VARHDRSZ);
|
appendBinaryStringInfo(str, VARDATA_ANY(t), VARSIZE_ANY_EXHDR(t));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -466,9 +466,9 @@ Datum
|
||||||
xmlcomment(PG_FUNCTION_ARGS)
|
xmlcomment(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
#ifdef USE_LIBXML
|
#ifdef USE_LIBXML
|
||||||
text *arg = PG_GETARG_TEXT_P(0);
|
text *arg = PG_GETARG_TEXT_PP(0);
|
||||||
char *argdata = VARDATA(arg);
|
char *argdata = VARDATA_ANY(arg);
|
||||||
int len = VARSIZE(arg) - VARHDRSZ;
|
int len = VARSIZE_ANY_EXHDR(arg);
|
||||||
StringInfoData buf;
|
StringInfoData buf;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
@ -590,7 +590,7 @@ xmlconcat2(PG_FUNCTION_ARGS)
|
||||||
Datum
|
Datum
|
||||||
texttoxml(PG_FUNCTION_ARGS)
|
texttoxml(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
text *data = PG_GETARG_TEXT_P(0);
|
text *data = PG_GETARG_TEXT_PP(0);
|
||||||
|
|
||||||
PG_RETURN_XML_P(xmlparse(data, xmloption, true));
|
PG_RETURN_XML_P(xmlparse(data, xmloption, true));
|
||||||
}
|
}
|
||||||
|
@ -1402,7 +1402,7 @@ xml_parse(text *data, XmlOptionType xmloption_arg, bool preserve_whitespace,
|
||||||
volatile xmlParserCtxtPtr ctxt = NULL;
|
volatile xmlParserCtxtPtr ctxt = NULL;
|
||||||
volatile xmlDocPtr doc = NULL;
|
volatile xmlDocPtr doc = NULL;
|
||||||
|
|
||||||
len = VARSIZE(data) - VARHDRSZ; /* will be useful later */
|
len = VARSIZE_ANY_EXHDR(data); /* will be useful later */
|
||||||
string = xml_text2xmlChar(data);
|
string = xml_text2xmlChar(data);
|
||||||
|
|
||||||
utf8string = pg_do_encoding_conversion(string,
|
utf8string = pg_do_encoding_conversion(string,
|
||||||
|
@ -3876,14 +3876,14 @@ xpath_internal(text *xpath_expr_text, xmltype *data, ArrayType *namespaces,
|
||||||
|
|
||||||
datastr = VARDATA(data);
|
datastr = VARDATA(data);
|
||||||
len = VARSIZE(data) - VARHDRSZ;
|
len = VARSIZE(data) - VARHDRSZ;
|
||||||
xpath_len = VARSIZE(xpath_expr_text) - VARHDRSZ;
|
xpath_len = VARSIZE_ANY_EXHDR(xpath_expr_text);
|
||||||
if (xpath_len == 0)
|
if (xpath_len == 0)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_DATA_EXCEPTION),
|
(errcode(ERRCODE_DATA_EXCEPTION),
|
||||||
errmsg("empty XPath expression")));
|
errmsg("empty XPath expression")));
|
||||||
|
|
||||||
string = pg_xmlCharStrndup(datastr, len);
|
string = pg_xmlCharStrndup(datastr, len);
|
||||||
xpath_expr = pg_xmlCharStrndup(VARDATA(xpath_expr_text), xpath_len);
|
xpath_expr = pg_xmlCharStrndup(VARDATA_ANY(xpath_expr_text), xpath_len);
|
||||||
|
|
||||||
xmlerrcxt = pg_xml_init(PG_XML_STRICTNESS_ALL);
|
xmlerrcxt = pg_xml_init(PG_XML_STRICTNESS_ALL);
|
||||||
|
|
||||||
|
@ -4001,7 +4001,7 @@ Datum
|
||||||
xpath(PG_FUNCTION_ARGS)
|
xpath(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
#ifdef USE_LIBXML
|
#ifdef USE_LIBXML
|
||||||
text *xpath_expr_text = PG_GETARG_TEXT_P(0);
|
text *xpath_expr_text = PG_GETARG_TEXT_PP(0);
|
||||||
xmltype *data = PG_GETARG_XML_P(1);
|
xmltype *data = PG_GETARG_XML_P(1);
|
||||||
ArrayType *namespaces = PG_GETARG_ARRAYTYPE_P(2);
|
ArrayType *namespaces = PG_GETARG_ARRAYTYPE_P(2);
|
||||||
ArrayBuildState *astate;
|
ArrayBuildState *astate;
|
||||||
|
@ -4024,7 +4024,7 @@ Datum
|
||||||
xmlexists(PG_FUNCTION_ARGS)
|
xmlexists(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
#ifdef USE_LIBXML
|
#ifdef USE_LIBXML
|
||||||
text *xpath_expr_text = PG_GETARG_TEXT_P(0);
|
text *xpath_expr_text = PG_GETARG_TEXT_PP(0);
|
||||||
xmltype *data = PG_GETARG_XML_P(1);
|
xmltype *data = PG_GETARG_XML_P(1);
|
||||||
int res_nitems;
|
int res_nitems;
|
||||||
|
|
||||||
|
@ -4047,7 +4047,7 @@ Datum
|
||||||
xpath_exists(PG_FUNCTION_ARGS)
|
xpath_exists(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
#ifdef USE_LIBXML
|
#ifdef USE_LIBXML
|
||||||
text *xpath_expr_text = PG_GETARG_TEXT_P(0);
|
text *xpath_expr_text = PG_GETARG_TEXT_PP(0);
|
||||||
xmltype *data = PG_GETARG_XML_P(1);
|
xmltype *data = PG_GETARG_XML_P(1);
|
||||||
ArrayType *namespaces = PG_GETARG_ARRAYTYPE_P(2);
|
ArrayType *namespaces = PG_GETARG_ARRAYTYPE_P(2);
|
||||||
int res_nitems;
|
int res_nitems;
|
||||||
|
@ -4097,7 +4097,7 @@ Datum
|
||||||
xml_is_well_formed(PG_FUNCTION_ARGS)
|
xml_is_well_formed(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
#ifdef USE_LIBXML
|
#ifdef USE_LIBXML
|
||||||
text *data = PG_GETARG_TEXT_P(0);
|
text *data = PG_GETARG_TEXT_PP(0);
|
||||||
|
|
||||||
PG_RETURN_BOOL(wellformed_xml(data, xmloption));
|
PG_RETURN_BOOL(wellformed_xml(data, xmloption));
|
||||||
#else
|
#else
|
||||||
|
@ -4110,7 +4110,7 @@ Datum
|
||||||
xml_is_well_formed_document(PG_FUNCTION_ARGS)
|
xml_is_well_formed_document(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
#ifdef USE_LIBXML
|
#ifdef USE_LIBXML
|
||||||
text *data = PG_GETARG_TEXT_P(0);
|
text *data = PG_GETARG_TEXT_PP(0);
|
||||||
|
|
||||||
PG_RETURN_BOOL(wellformed_xml(data, XMLOPTION_DOCUMENT));
|
PG_RETURN_BOOL(wellformed_xml(data, XMLOPTION_DOCUMENT));
|
||||||
#else
|
#else
|
||||||
|
@ -4123,7 +4123,7 @@ Datum
|
||||||
xml_is_well_formed_content(PG_FUNCTION_ARGS)
|
xml_is_well_formed_content(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
#ifdef USE_LIBXML
|
#ifdef USE_LIBXML
|
||||||
text *data = PG_GETARG_TEXT_P(0);
|
text *data = PG_GETARG_TEXT_PP(0);
|
||||||
|
|
||||||
PG_RETURN_BOOL(wellformed_xml(data, XMLOPTION_CONTENT));
|
PG_RETURN_BOOL(wellformed_xml(data, XMLOPTION_CONTENT));
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -154,7 +154,7 @@ Datum
|
||||||
row_security_active_name(PG_FUNCTION_ARGS)
|
row_security_active_name(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
/* By qualified name */
|
/* By qualified name */
|
||||||
text *tablename = PG_GETARG_TEXT_P(0);
|
text *tablename = PG_GETARG_TEXT_PP(0);
|
||||||
RangeVar *tablerel;
|
RangeVar *tablerel;
|
||||||
Oid tableoid;
|
Oid tableoid;
|
||||||
int rls_status;
|
int rls_status;
|
||||||
|
|
|
@ -116,7 +116,7 @@ util_quote_literal(sv)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
text *arg = sv2text(sv);
|
text *arg = sv2text(sv);
|
||||||
text *quoted = DatumGetTextP(DirectFunctionCall1(quote_literal, PointerGetDatum(arg)));
|
text *quoted = DatumGetTextPP(DirectFunctionCall1(quote_literal, PointerGetDatum(arg)));
|
||||||
char *str;
|
char *str;
|
||||||
|
|
||||||
pfree(arg);
|
pfree(arg);
|
||||||
|
@ -138,7 +138,7 @@ util_quote_nullable(sv)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
text *arg = sv2text(sv);
|
text *arg = sv2text(sv);
|
||||||
text *quoted = DatumGetTextP(DirectFunctionCall1(quote_nullable, PointerGetDatum(arg)));
|
text *quoted = DatumGetTextPP(DirectFunctionCall1(quote_nullable, PointerGetDatum(arg)));
|
||||||
char *str;
|
char *str;
|
||||||
|
|
||||||
pfree(arg);
|
pfree(arg);
|
||||||
|
@ -158,7 +158,7 @@ util_quote_ident(sv)
|
||||||
char *str;
|
char *str;
|
||||||
CODE:
|
CODE:
|
||||||
arg = sv2text(sv);
|
arg = sv2text(sv);
|
||||||
quoted = DatumGetTextP(DirectFunctionCall1(quote_ident, PointerGetDatum(arg)));
|
quoted = DatumGetTextPP(DirectFunctionCall1(quote_ident, PointerGetDatum(arg)));
|
||||||
|
|
||||||
pfree(arg);
|
pfree(arg);
|
||||||
str = text_to_cstring(quoted);
|
str = text_to_cstring(quoted);
|
||||||
|
@ -175,9 +175,9 @@ util_decode_bytea(sv)
|
||||||
text *ret;
|
text *ret;
|
||||||
CODE:
|
CODE:
|
||||||
arg = SvPVbyte_nolen(sv);
|
arg = SvPVbyte_nolen(sv);
|
||||||
ret = DatumGetTextP(DirectFunctionCall1(byteain, PointerGetDatum(arg)));
|
ret = DatumGetTextPP(DirectFunctionCall1(byteain, PointerGetDatum(arg)));
|
||||||
/* not cstr2sv because this is raw bytes not utf8'able */
|
/* not cstr2sv because this is raw bytes not utf8'able */
|
||||||
RETVAL = newSVpvn(VARDATA(ret), (VARSIZE(ret) - VARHDRSZ));
|
RETVAL = newSVpvn(VARDATA_ANY(ret), VARSIZE_ANY_EXHDR(ret));
|
||||||
OUTPUT:
|
OUTPUT:
|
||||||
RETVAL
|
RETVAL
|
||||||
|
|
||||||
|
|
|
@ -603,9 +603,9 @@ PLyLong_FromOid(PLyDatumToOb *arg, Datum d)
|
||||||
static PyObject *
|
static PyObject *
|
||||||
PLyBytes_FromBytea(PLyDatumToOb *arg, Datum d)
|
PLyBytes_FromBytea(PLyDatumToOb *arg, Datum d)
|
||||||
{
|
{
|
||||||
text *txt = DatumGetByteaP(d);
|
text *txt = DatumGetByteaPP(d);
|
||||||
char *str = VARDATA(txt);
|
char *str = VARDATA_ANY(txt);
|
||||||
size_t size = VARSIZE(txt) - VARHDRSZ;
|
size_t size = VARSIZE_ANY_EXHDR(txt);
|
||||||
|
|
||||||
return PyBytes_FromStringAndSize(str, size);
|
return PyBytes_FromStringAndSize(str, size);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue