> @@ -5963,8 +5967,20 @@ describePublications(const char *pattern)
> {
> /* Get the tables for the specified publication */
> printfPQExpBuffer(&buf,
> - "SELECT n.nspname, c.relname\n"
> - "FROM pg_catalog.pg_class c,\n"
> + "SELECT n.nspname, c.relname, \n");
> + if (pset.sversion >= 150000)
> + appendPQExpBufferStr(&buf,
> + " CASE WHEN pr.prattrs IS NOT NULL THEN\n"
> + " pg_catalog.array_to_string"
> + "(ARRAY(SELECT attname\n"
> + " FROM pg_catalog.generate_series(0,
pg_catalog.array_upper(pr.prattrs::int[],1)) s,\n"
> + " pg_catalog.pg_attribute\n"
> + " WHERE attrelid = c.oid AND attnum = prattrs[s]), ', ')\n"
> + " ELSE NULL END AS columns");
> + else
> + appendPQExpBufferStr(&buf, "NULL as columns");
> + appendPQExpBuffer(&buf,
> + "\nFROM pg_catalog.pg_class c,\n"
> " pg_catalog.pg_namespace n,\n"
> " pg_catalog.pg_publication_rel pr\n"
> "WHERE c.relnamespace = n.oid\n"
I suppose this should use pr.prattrs::pg_catalog.int2[] ?
Did the DatumGetBool issue expose a deficiency in testing ?
I think the !am_partition path was never being hit.
--
Justin