With today's CVS code (originally noticed with 8.2beta3), on a PC where INT_MAX=0x7FFFFFFF=2147483647
postgres=# select version(); version --------------------------------------------------------------------------------------------------------------------------------- PostgreSQL 8.3devel on i386-unknown-netbsdelf4.99.20, compiled by GCC gcc (GCC) 4.1.2 20070110 prerelease (NetBSD nb1 20070603) (1 row) postgres=# select to_char(2147483647,'999,999,999'); to_char -------------- ###,###,### (1 row) postgres=# select to_char(2147483648,'999,999,999'); WARNING: detected write past chunk end in ExprContext 0x845509c WARNING: detected write past chunk end in ExprContext 0x845509c to_char -------------- ###,###,### (1 row) postgres=# select to_char(2147483648,'99,999,999'); to_char ------------- ##,###,### (1 row) postgres=# select to_char(2147483648,'9,999,999,999'); to_char ---------------- 2,147,483,648 (1 row) postgres=# select to_char(1234567890123,'999,999,999,999'); WARNING: detected write past chunk end in ExprContext 0x845509c WARNING: detected write past chunk end in ExprContext 0x845509c to_char ------------------ ###,###,###,### (1 row) postgres=# select to_char(1234567890123,'99,999,999,999'); to_char ----------------- ##,###,###,### (1 row) So strangely, to get the worrying WARNING, I seem to need >INT_MAX with a format string with 1 less positions than necessary - no wonder I seemed to only see it randomly... Thoughts? Cheers, Patrick ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match