* quote.c
* Functions for quoting identifiers and literals
*
- * Portions Copyright (c) 2000-2011, PostgreSQL Global Development Group
+ * Portions Copyright (c) 2000-2017, PostgreSQL Global Development Group
*
*
* IDENTIFICATION
Datum
quote_literal(PG_FUNCTION_ARGS)
{
- text *t = PG_GETARG_TEXT_P(0);
+ text *t = PG_GETARG_TEXT_PP(0);
text *result;
char *cp1;
char *cp2;
int len;
- len = VARSIZE(t) - VARHDRSZ;
+ len = VARSIZE_ANY_EXHDR(t);
/* We make a worst-case result area; wasting a little space is OK */
result = (text *) palloc(len * 2 + 3 + VARHDRSZ);
- cp1 = VARDATA(t);
+ cp1 = VARDATA_ANY(t);
cp2 = VARDATA(result);
SET_VARSIZE(result, VARHDRSZ + quote_literal_internal(cp2, cp1, len));
len = strlen(rawstr);
/* We make a worst-case result area; wasting a little space is OK */
- result = palloc(len * 2 + 3);
+ result = palloc(len * 2 + 3 + 1);
newlen = quote_literal_internal(result, rawstr, len);
result[newlen] = '\0';