Sync our DTrace infrastructure with c.h's definition of type bool.
authorTom Lane <[email protected]>
Wed, 6 Nov 2019 16:11:40 +0000 (11:11 -0500)
committerTom Lane <[email protected]>
Wed, 6 Nov 2019 16:11:40 +0000 (11:11 -0500)
Since commit d26a810eb, we've defined bool as being either _Bool from
<stdbool.h>, or "unsigned char"; but that commit overlooked the fact
that probes.d has "#define bool char".  For consistency, make it say
"unsigned char" instead.  This should be strictly a cosmetic change,
but it seems best to be in sync.

Formally, in the now-normal case where we're using <stdbool.h>, it'd
be better to write "#define bool _Bool".  However, then we'd need
some build infrastructure to inject that configuration choice into
probes.d, and it doesn't seem worth the trouble.  We only use
<stdbool.h> if sizeof(_Bool) is 1, so having DTrace think that
bool parameters are "unsigned char" should be close enough.

Back-patch to v12 where d26a810eb came in.

Discussion: https://postgr.es/m/CAA4eK1LmaKO7Du9M9Lo=kxGU8sB6aL8fa3sF6z6d5yYYVe3BuQ@mail.gmail.com

doc/src/sgml/monitoring.sgml
src/backend/utils/probes.d

index e6c49eebadef7952b8221e59da9d7ea0a4b316f9..d18b271a58d5a94802a0fb7306dee3dac919a0a5 100644 (file)
@@ -4638,7 +4638,7 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS pid,
     </row>
     <row>
      <entry><type>bool</type></entry>
-     <entry><type>char</type></entry>
+     <entry><type>unsigned char</type></entry>
     </row>
 
    </tbody>
index 33ac627799c3dcbb6cf002f5a3c26fb8eba0ef19..f08a49c9dd2ab855a3bb06a25b6133946bd88e10 100644 (file)
@@ -9,10 +9,10 @@
 
 
 /*
- * Typedefs used in PostgreSQL.
+ * Typedefs used in PostgreSQL probes.
  *
  * NOTE: Do not use system-provided typedefs (e.g. uintptr_t, uint32_t, etc)
- * in probe definitions, as they cause compilation errors on macOS 10.5.
+ * in probe definitions, as they cause compilation errors on macOS.
  */
 #define LocalTransactionId unsigned int
 #define LWLockMode int
@@ -20,7 +20,7 @@
 #define BlockNumber unsigned int
 #define Oid unsigned int
 #define ForkNumber int
-#define bool char
+#define bool unsigned char
 
 provider postgresql {