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
</row>
<row>
<entry><type>bool</type></entry>
- <entry><type>char</type></entry>
+ <entry><type>unsigned char</type></entry>
</row>
</tbody>
/*
- * 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
#define BlockNumber unsigned int
#define Oid unsigned int
#define ForkNumber int
-#define bool char
+#define bool unsigned char
provider postgresql {