aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/quote.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/adt/quote.c')
-rw-r--r--src/backend/utils/adt/quote.c24
1 files changed, 5 insertions, 19 deletions
diff --git a/src/backend/utils/adt/quote.c b/src/backend/utils/adt/quote.c
index 519c6d874b5..6074414c372 100644
--- a/src/backend/utils/adt/quote.c
+++ b/src/backend/utils/adt/quote.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/quote.c,v 1.24 2008/03/23 00:24:19 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/quote.c,v 1.25 2008/03/25 22:42:44 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -23,26 +23,13 @@
Datum
quote_ident(PG_FUNCTION_ARGS)
{
- text *t = PG_GETARG_TEXT_P(0);
- text *result;
+ text *t = PG_GETARG_TEXT_PP(0);
const char *qstr;
char *str;
- int len;
-
- /* We have to convert to a C string to use quote_identifier */
- len = VARSIZE(t) - VARHDRSZ;
- str = (char *) palloc(len + 1);
- memcpy(str, VARDATA(t), len);
- str[len] = '\0';
+ str = text_to_cstring(t);
qstr = quote_identifier(str);
-
- len = strlen(qstr);
- result = (text *) palloc(len + VARHDRSZ);
- SET_VARSIZE(result, len + VARHDRSZ);
- memcpy(VARDATA(result), qstr, len);
-
- PG_RETURN_TEXT_P(result);
+ PG_RETURN_TEXT_P(cstring_to_text(qstr));
}
/*
@@ -106,8 +93,7 @@ Datum
quote_nullable(PG_FUNCTION_ARGS)
{
if (PG_ARGISNULL(0))
- PG_RETURN_DATUM(DirectFunctionCall1(textin,
- CStringGetDatum("NULL")));
+ PG_RETURN_TEXT_P(cstring_to_text("NULL"));
else
PG_RETURN_DATUM(DirectFunctionCall1(quote_literal,
PG_GETARG_DATUM(0)));