Re: Fixes for missing schema qualifications

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@postgresql.org>
Date: 2018-03-10T08:36:34Z
Lists: pgsql-hackers
On Fri, Mar 09, 2018 at 04:55:38PM +0900, Michael Paquier wrote:
> --- a/src/backend/catalog/information_schema.sql
> +++ b/src/backend/catalog/information_schema.sql
> @@ -186,7 +186,7 @@ CREATE FUNCTION _pg_interval_type(typid oid, mod int4) RETURNS text
>      AS
>  $$SELECT
>    CASE WHEN $1 IN (1186) /* interval */
> -           THEN upper(substring(format_type($1, $2) from 'interval[()0-9]* #"%#"' for '#'))
> +           THEN pg_catalog.upper(substring(pg_catalog.format_type($1, $2) from 'interval[()0-9]* #"%#"' for '#'))
>         ELSE null
>    END$$;
>  
> diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c
> index 3560318749..f345572c8c 100644
> --- a/src/bin/psql/command.c
> +++ b/src/bin/psql/command.c
> @@ -4483,7 +4483,7 @@ get_create_object_cmd(EditableObjectType obj_type, Oid oid,
>  				printfPQExpBuffer(query,
>  								  "SELECT nspname, relname, relkind, "
>  								  "pg_catalog.pg_get_viewdef(c.oid, true), "
> -								  "array_remove(array_remove(c.reloptions,'check_option=local'),'check_option=cascaded') AS reloptions, "
> +								  "pg_catalog.array_remove(pg_catalog.array_remove(c.reloptions,'check_option=local'),'check_option=cascaded') AS reloptions, "
>  								  "CASE WHEN 'check_option=local' = ANY (c.reloptions) THEN 'LOCAL'::text "
>  								  "WHEN 'check_option=cascaded' = ANY (c.reloptions) THEN 'CASCADED'::text ELSE NULL END AS checkoption "
>  								  "FROM pg_catalog.pg_class c "
> diff --git a/src/test/isolation/isolationtester.c b/src/test/isolation/isolationtester.c
> index 4ecad038bd..64d666f5cd 100644
> --- a/src/test/isolation/isolationtester.c
> +++ b/src/test/isolation/isolationtester.c
> @@ -184,7 +184,7 @@ main(int argc, char **argv)
>  		PQclear(res);
>  
>  		/* Get the backend pid for lock wait checking. */
> -		res = PQexec(conns[i], "SELECT pg_backend_pid()");
> +		res = PQexec(conns[i], "SELECT pg_catalog.pg_backend_pid()");
>  		if (PQresultStatus(res) == PGRES_TUPLES_OK)
>  		{
>  			if (PQntuples(res) == 1 && PQnfields(res) == 1)
> diff --git a/src/test/modules/worker_spi/worker_spi.c b/src/test/modules/worker_spi/worker_spi.c
> index 3b98b1682b..547bdb26c4 100644
> --- a/src/test/modules/worker_spi/worker_spi.c
> +++ b/src/test/modules/worker_spi/worker_spi.c
> @@ -115,7 +115,9 @@ initialize_worker_spi(worktable *table)
>  
>  	/* XXX could we use CREATE SCHEMA IF NOT EXISTS? */
>  	initStringInfo(&buf);
> -	appendStringInfo(&buf, "select count(*) from pg_namespace where nspname = '%s'",
> +	appendStringInfo(&buf,
> +					 "select pg_catalog.count(*) "
> +					 "from pg_catalog.pg_namespace where nspname = '%s'",

This qualifies some functions, but it leaves plenty of unqualified operators.


Commits

  1. Add some missing schema qualifications