]> granicus.if.org Git - postgresql/commitdiff
Fix regrole and regnamespace output functions to do quoting, too.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 4 Jan 2016 06:53:24 +0000 (01:53 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 4 Jan 2016 06:53:24 +0000 (01:53 -0500)
We discussed this but somehow failed to implement it...

src/backend/utils/adt/regproc.c

index fc939e641ff5743e8558bf93a40c202ac48b5d58..0f17eb8000f078a1ec077380394aeb12f5361b68 100644 (file)
@@ -1642,12 +1642,18 @@ regroleout(PG_FUNCTION_ARGS)
 
        result = GetUserNameFromId(roleoid, true);
 
-       if (!result)
+       if (result)
+       {
+               /* pstrdup is not really necessary, but it avoids a compiler warning */
+               result = pstrdup(quote_identifier(result));
+       }
+       else
        {
                /* If OID doesn't match any role, return it numerically */
                result = (char *) palloc(NAMEDATALEN);
                snprintf(result, NAMEDATALEN, "%u", roleoid);
        }
+
        PG_RETURN_CSTRING(result);
 }
 
@@ -1757,12 +1763,18 @@ regnamespaceout(PG_FUNCTION_ARGS)
 
        result = get_namespace_name(nspid);
 
-       if (!result)
+       if (result)
+       {
+               /* pstrdup is not really necessary, but it avoids a compiler warning */
+               result = pstrdup(quote_identifier(result));
+       }
+       else
        {
                /* If OID doesn't match any namespace, return it numerically */
                result = (char *) palloc(NAMEDATALEN);
                snprintf(result, NAMEDATALEN, "%u", nspid);
        }
+
        PG_RETURN_CSTRING(result);
 }