本文整理汇总了C++中PG_GETARG_CSTRING函数的典型用法代码示例。如果您正苦于以下问题:C++ PG_GETARG_CSTRING函数的具体用法?C++ PG_GETARG_CSTRING怎么用?C++ PG_GETARG_CSTRING使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了PG_GETARG_CSTRING函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: varcharin
/*
* Convert a C string to VARCHAR internal representation. atttypmod
* is the declared length of the type plus VARHDRSZ.
*/
Datum
varcharin(PG_FUNCTION_ARGS)
{
char *s = PG_GETARG_CSTRING(0);
#ifdef NOT_USED
Oid typelem = PG_GETARG_OID(1);
#endif
int32 atttypmod = PG_GETARG_INT32(2);
VarChar *result;
result = varchar_input(s, strlen(s), atttypmod);
PG_RETURN_VARCHAR_P(result);
}
开发者ID:shubham2094,项目名称:postgresql_8.1,代码行数:18,代码来源:varchar.c
示例2: json_in
/*
* Input.
*/
Datum
json_in(PG_FUNCTION_ARGS)
{
char *json = PG_GETARG_CSTRING(0);
text *result = cstring_to_text(json);
JsonLexContext *lex;
/* validate it */
lex = makeJsonLexContext(result, false);
pg_parse_json(lex, NullSemAction);
/* Internal representation is the same as text, for now */
PG_RETURN_TEXT_P(result);
}
开发者ID:TesterRandolph,项目名称:postgres-x2,代码行数:17,代码来源:json.c
示例3: win866_to_win1251
Datum
win866_to_win1251(PG_FUNCTION_ARGS)
{
unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
int len = PG_GETARG_INT32(4);
unsigned char *buf;
CHECK_ENCODING_CONVERSION_ARGS(PG_WIN866, PG_WIN1251);
/*
* Note: There are a few characters like the "Numero" sign that exist in
* all the other cyrillic encodings (win1251, ISO_8859-5 and cp866), but
* not in KOI8R. As we use MULE_INTERNAL/KOI8R as an intermediary, we will
* fail to convert those characters.
*/
buf = palloc(len * ENCODING_GROWTH_RATE + 1);
win8662mic(src, buf, len);
mic2win1251(buf, dest, strlen((char *) buf));
pfree(buf);
PG_RETURN_VOID();
}
开发者ID:AllenDou,项目名称:postgresql,代码行数:23,代码来源:cyrillic_and_mic.c
示例4: smgrin
Datum
smgrin(PG_FUNCTION_ARGS)
{
char *s = PG_GETARG_CSTRING(0);
int16 i;
for (i = 0; i < NStorageManagers; i++)
{
if (strcmp(s, StorageManager[i].smgr_name) == 0)
PG_RETURN_INT16(i);
}
elog(ERROR, "unrecognized storage manager name \"%s\"", s);
PG_RETURN_INT16(0);
}
开发者ID:AllenDou,项目名称:postgresql,代码行数:14,代码来源:smgrtype.c
示例5: utf8_to_iso8859_1
Datum
utf8_to_iso8859_1(PG_FUNCTION_ARGS)
{
unsigned char *src = (unsigned char *) PG_GETARG_CSTRING(2);
unsigned char *dest = (unsigned char *) PG_GETARG_CSTRING(3);
int len = PG_GETARG_INT32(4);
unsigned short c,
c1,
c2;
Assert(PG_GETARG_INT32(0) == PG_UTF8);
Assert(PG_GETARG_INT32(1) == PG_LATIN1);
Assert(len >= 0);
while (len >= 0 && (c = *src++))
{
if ((c & 0xe0) == 0xc0)
{
c1 = c & 0x1f;
c2 = *src++ & 0x3f;
*dest = c1 << 6;
*dest++ |= c2;
len -= 2;
}
else if ((c & 0xe0) == 0xe0)
elog(ERROR, "could not convert UTF8 character 0x%04x to ISO8859-1",
c);
else
{
*dest++ = c;
len--;
}
}
*dest = '\0';
PG_RETURN_VOID();
}
开发者ID:jaiminpan,项目名称:bizgres,代码行数:37,代码来源:utf8_and_iso8859_1.c
示例6: geography_in
Datum geography_in(PG_FUNCTION_ARGS)
{
char *str = PG_GETARG_CSTRING(0);
/* Datum geog_oid = PG_GETARG_OID(1); Not needed. */
int32 geog_typmod = -1;
LWGEOM_PARSER_RESULT lwg_parser_result;
LWGEOM *lwgeom = NULL;
GSERIALIZED *g_ser = NULL;
if ( (PG_NARGS()>2) && (!PG_ARGISNULL(2)) ) {
geog_typmod = PG_GETARG_INT32(2);
}
lwgeom_parser_result_init(&lwg_parser_result);
/* Empty string. */
if ( str[0] == '\0' )
ereport(ERROR,(errmsg("parse error - invalid geometry")));
/* WKB? Let's find out. */
if ( str[0] == '0' )
{
/* TODO: 20101206: No parser checks! This is inline with current 1.5 behavior, but needs discussion */
lwgeom = lwgeom_from_hexwkb(str, LW_PARSER_CHECK_NONE);
/* Error out if something went sideways */
if ( ! lwgeom )
ereport(ERROR,(errmsg("parse error - invalid geometry")));
}
/* WKT then. */
else
{
if ( lwgeom_parse_wkt(&lwg_parser_result, str, LW_PARSER_CHECK_ALL) == LW_FAILURE )
PG_PARSER_ERROR(lwg_parser_result);
lwgeom = lwg_parser_result.geom;
}
/* Error on any SRID != default */
srid_is_latlong(fcinfo, lwgeom->srid);
/* Convert to gserialized */
g_ser = gserialized_geography_from_lwgeom(lwgeom, geog_typmod);
/* Clean up temporary object */
lwgeom_free(lwgeom);
PG_RETURN_POINTER(g_ser);
}
开发者ID:mborne,项目名称:sfcgal-with-postgis,代码行数:49,代码来源:geography_inout.c
示例7: reltimein
/*
* reltimein - converts a reltime string in an internal format
*/
Datum
reltimein(PG_FUNCTION_ARGS)
{
char *str = PG_GETARG_CSTRING(0);
RelativeTime result;
struct pg_tm tt,
*tm = &tt;
fsec_t fsec;
int dtype;
int dterr;
char *field[MAXDATEFIELDS];
int nf,
ftype[MAXDATEFIELDS];
char workbuf[MAXDATELEN + 1];
dterr = ParseDateTime(str, workbuf, sizeof(workbuf),
field, ftype, MAXDATEFIELDS, &nf);
if (dterr == 0)
dterr = DecodeInterval(field, ftype, nf, INTERVAL_FULL_RANGE,
&dtype, tm, &fsec);
/* if those functions think it's a bad format, try ISO8601 style */
if (dterr == DTERR_BAD_FORMAT)
dterr = DecodeISO8601Interval(str,
&dtype, tm, &fsec);
if (dterr != 0)
{
if (dterr == DTERR_FIELD_OVERFLOW)
dterr = DTERR_INTERVAL_OVERFLOW;
DateTimeParseError(dterr, str, "reltime");
}
switch (dtype)
{
case DTK_DELTA:
result = ((tm->tm_hour * MINS_PER_HOUR + tm->tm_min) * SECS_PER_MINUTE) + tm->tm_sec;
result += tm->tm_year * SECS_PER_YEAR + ((tm->tm_mon * DAYS_PER_MONTH) + tm->tm_mday) * SECS_PER_DAY;
break;
default:
elog(ERROR, "unexpected dtype %d while parsing reltime \"%s\"",
dtype, str);
result = INVALID_RELTIME;
break;
}
PG_RETURN_RELATIVETIME(result);
}
开发者ID:GisKook,项目名称:Gis,代码行数:52,代码来源:nabstime.c
示例8: seg_in
Datum
seg_in(PG_FUNCTION_ARGS)
{
char *str = PG_GETARG_CSTRING(0);
SEG *result = palloc(sizeof(SEG));
seg_scanner_init(str);
if (seg_yyparse(result) != 0)
seg_yyerror(result, "bogus input");
seg_scanner_finish();
PG_RETURN_POINTER(result);
}
开发者ID:0x0FFF,项目名称:postgres,代码行数:15,代码来源:seg.c
示例9: namein
/*
* namein - converts "..." to internal representation
*
* Note:
* [Old] Currently if strlen(s) < NAMEDATALEN, the extra chars are nulls
* Now, always NULL terminated
*/
Datum
namein(PG_FUNCTION_ARGS)
{
char *s = PG_GETARG_CSTRING(0);
NameData *result;
int len;
len = strlen(s);
len = pg_mbcliplen(s, len, NAMEDATALEN - 1);
result = (NameData *) palloc0(NAMEDATALEN);
memcpy(NameStr(*result), s, len);
PG_RETURN_NAME(result);
}
开发者ID:qiuyesuifeng,项目名称:gpdb,代码行数:22,代码来源:name.c
示例10: timeIndeterminateType_in
Datum timeIndeterminateType_in( PG_FUNCTION_ARGS )
{
try
{
int4 ret = indeterminate[ PG_GETARG_CSTRING( 0 ) ];
PG_RETURN_INT32( ret );
}
catch ( std::out_of_range & e )
{
ereport( ERROR,
( errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
errmsg( e.what() )));
}
PG_RETURN_NULL(); // Never reached
}
开发者ID:helenk,项目名称:wdb,代码行数:15,代码来源:timeIndeterminateType.cpp
示例11: cube_in
/* [(xLL(1)...xLL(N)),(xUR(1)...xUR(n))] */
Datum
cube_in(PG_FUNCTION_ARGS)
{
char *str = PG_GETARG_CSTRING(0);
void *result;
cube_scanner_init(str);
if (cube_yyparse(&result) != 0)
cube_yyerror("bogus input");
cube_scanner_finish();
PG_RETURN_NDBOX(result);
}
开发者ID:DBInsight,项目名称:postgres-x2,代码行数:16,代码来源:cube.c
示例12: mol_adjust_query_properties
Datum mol_adjust_query_properties(PG_FUNCTION_ARGS) {
CROMol mol;
fcinfo->flinfo->fn_extra =
searchMolCache(fcinfo->flinfo->fn_extra, fcinfo->flinfo->fn_mcxt,
PG_GETARG_DATUM(0), NULL, &mol, NULL);
Assert(mol != 0);
char *data = PG_GETARG_CSTRING(1);
CROMol adj = MolAdjustQueryProperties(mol, data);
if (!adj) PG_RETURN_NULL();
Mol *res = deconstructROMol(adj);
freeCROMol(adj);
PG_RETURN_MOL_P(res);
}
开发者ID:Richard-Hall,项目名称:rdkit,代码行数:15,代码来源:mol_op.c
示例13: get_and_purge_connection
/*
* get_and_purge_connection first gets a connection using the provided hostname
* and port before immediately passing that connection to PurgeConnection.
* Simply a wrapper around PurgeConnection that uses hostname/port rather than
* PGconn.
*/
Datum
get_and_purge_connection(PG_FUNCTION_ARGS)
{
char *nodeName = PG_GETARG_CSTRING(0);
int32 nodePort = PG_GETARG_INT32(1);
PGconn *connection = GetOrEstablishConnection(nodeName, nodePort);
if (connection == NULL)
{
PG_RETURN_BOOL(false);
}
PurgeConnection(connection);
PG_RETURN_BOOL(true);
}
开发者ID:amosbird,项目名称:citus,代码行数:22,代码来源:connection_cache.c
示例14: tidin
/* ----------------------------------------------------------------
* tidin
* ----------------------------------------------------------------
*/
Datum
tidin(PG_FUNCTION_ARGS)
{
char *str = PG_GETARG_CSTRING(0);
char *p,
*coord[NTIDARGS];
int i;
ItemPointer result;
BlockNumber blockNumber;
OffsetNumber offsetNumber;
char *badp;
int hold_offset;
for (i = 0, p = str; *p && i < NTIDARGS && *p != RDELIM; p++)
if (*p == DELIM || (*p == LDELIM && !i))
coord[i++] = p + 1;
if (i < NTIDARGS)
ereport(ERROR,
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
errmsg("invalid input syntax for type tid: \"%s\"",
str)));
errno = 0;
blockNumber = strtoul(coord[0], &badp, 10);
if (errno || *badp != DELIM)
ereport(ERROR,
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
errmsg("invalid input syntax for type tid: \"%s\"",
str)));
hold_offset = strtol(coord[1], &badp, 10);
if (errno || *badp != RDELIM ||
hold_offset > USHRT_MAX || hold_offset < 0)
ereport(ERROR,
(errcode(ERRCODE_INVALID_TEXT_REPRESENTATION),
errmsg("invalid input syntax for type tid: \"%s\"",
str)));
offsetNumber = hold_offset;
result = (ItemPointer) palloc(sizeof(ItemPointerData));
ItemPointerSet(result, blockNumber, offsetNumber);
PG_RETURN_ITEMPOINTER(result);
}
开发者ID:myechuri,项目名称:pipelinedb,代码行数:51,代码来源:tid.c
示例15: connect_and_purge_connection
/*
* get_and_purge_connection first gets a connection using the provided hostname
* and port before immediately passing that connection to PurgeConnection. This
* is to test PurgeConnection behvaior when circumventing the cache.
*/
Datum
connect_and_purge_connection(PG_FUNCTION_ARGS)
{
char *nodeName = PG_GETARG_CSTRING(0);
int32 nodePort = PG_GETARG_INT32(1);
char *nodeUser = CurrentUserName();
PGconn *connection = ConnectToNode(nodeName, nodePort, nodeUser);
if (connection == NULL)
{
PG_RETURN_BOOL(false);
}
PurgeConnection(connection);
PG_RETURN_BOOL(true);
}
开发者ID:amosbird,项目名称:citus,代码行数:22,代码来源:connection_cache.c
示例16: hstore_in
Datum
hstore_in(PG_FUNCTION_ARGS)
{
HSParser state;
int4 buflen;
HStore *out;
state.begin = PG_GETARG_CSTRING(0);
parse_hstore(&state);
state.pcur = hstoreUniquePairs(state.pairs, state.pcur, &buflen);
out = hstorePairs(state.pairs, state.pcur, buflen);
PG_RETURN_POINTER(out);
}
开发者ID:d,项目名称:gpdb,代码行数:17,代码来源:hstore_io.c
示例17: to_regtype
/*
* to_regtype - converts "typename" to type OID
*
* If the name is not found, we return NULL.
*/
Datum
to_regtype(PG_FUNCTION_ARGS)
{
char *typ_name = PG_GETARG_CSTRING(0);
Oid result;
int32 typmod;
/*
* Invoke the full parser to deal with special cases such as array syntax.
*/
parseTypeString(typ_name, &result, &typmod, true);
if (OidIsValid(result))
PG_RETURN_OID(result);
else
PG_RETURN_NULL();
}
开发者ID:Distrotech,项目名称:postgresql,代码行数:22,代码来源:regproc.c
示例18: xmlnode_in
Datum
xmlnode_in(PG_FUNCTION_ARGS)
{
pg_enc dbEnc;
XMLNodeParserStateData parserState;
char *input = PG_GETARG_CSTRING(0);
if (strlen(input) == 0)
{
elog(ERROR, "zero length input string");
}
dbEnc = GetDatabaseEncoding();
initXMLParserState(&parserState, input, false);
xmlnodeParseNode(&parserState);
finalizeXMLParserState(&parserState);
PG_RETURN_POINTER(parserState.result);
}
开发者ID:andreypopp,项目名称:pg_xnode,代码行数:17,代码来源:xmlnode.c
示例19: int44in
Datum
int44in(PG_FUNCTION_ARGS)
{
char *input_string = PG_GETARG_CSTRING(0);
int32 *result = (int32 *) palloc(4 * sizeof(int32));
int i;
i = sscanf(input_string,
"%d, %d, %d, %d",
&result[0],
&result[1],
&result[2],
&result[3]);
while (i < 4)
result[i++] = 0;
PG_RETURN_POINTER(result);
}
开发者ID:MasahikoSawada,项目名称:postgresql,代码行数:18,代码来源:regress.c
示例20: reverse_name
Datum
reverse_name(PG_FUNCTION_ARGS)
{
char *string = PG_GETARG_CSTRING(0);
int i;
int len;
char *new_string;
new_string = palloc0(NAMEDATALEN);
for (i = 0; i < NAMEDATALEN && string[i]; ++i)
;
if (i == NAMEDATALEN || !string[i])
--i;
len = i;
for (; i >= 0; --i)
new_string[len - i] = string[i];
PG_RETURN_CSTRING(new_string);
}
开发者ID:MasahikoSawada,项目名称:postgresql,代码行数:18,代码来源:regress.c
注:本文中的PG_GETARG_CSTRING函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论