Re: Use more CppAsString2() in pg_amcheck.c

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Date: 2024-10-18T13:18:26Z
Lists: pgsql-hackers
On 2024-Oct-18, Michael Paquier wrote:

> pg_amcheck.c is one of these places where relkind and relpersistence
> values are hardcoded in queries based on the contents of pg_class_d.h.
> Similarly to other places in src/bin/, let's sprinkle some
> CppAsString2() and feed to the binary the values from the header.  The
> patch attached does that.

Hmm, aren't you losing the single quotes?  I think you would need to do

> @@ -857,7 +858,7 @@ prepare_heap_command(PQExpBuffer sql, RelationInfo *rel, PGconn *conn)
>  
>  	appendPQExpBuffer(sql,
>  					  "\n) v WHERE c.oid = %u "
> -					  "AND c.relpersistence != 't'",
> +					  "AND c.relpersistence != '%s'",
>  					  rel->reloid, CppAsString2(RELPERSISTENCE_TEMP));

in order for this to work properly, no?

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
"La vida es para el que se aventura"



Commits

  1. pg_amcheck: Use CppAsString2() for relkind and relpersistence in queries