I'm using libpq to read array values, and I noticed that sometimes the values are returned in Binary and sometimes - in Text format.
1. Returned in Binary format: int formats[1] = { 1 }; // request binary format res = PQexec(conn, "SELECT rgField FROM aTable", 1, formats); assert(PQfformat(res, 0) == 1); // this is OK 2. Returned in Text format: res = PQexec(conn, "SELECT ARRAY[1,2,3]", 1, formats); assert(PQfformat(res, 0) == 1); // this fails??? This is not a big issue, I can parse the text representation of the array. But I wanted to understand why Postgres returns data in Text format when Binary was requested. Am I missing something?