- * We cheat quite a lot here by assuming that a pointer datum will be
- * preserved intact when nodeAgg.c thinks it is a value of type "internal".
- * This will in fact work because internal is stated to be pass-by-value
- * in pg_type.h, and nodeAgg will never do anything with a pass-by-value
- * transvalue except pass it around in Datum form. But it's mighty
- * shaky seeing that internal is also stated to be 4 bytes wide in
- * pg_type.h. If nodeAgg did put the value into a tuple this would
- * crash and burn on 64-bit machines.
+ * The transition type for array_agg() is declared to be "internal", which
+ * is a pass-by-value type the same size as a pointer. So we can safely
+ * pass the ArrayBuildState pointer through nodeAgg.c's machinations.