Would someone care to defend this code? int total = 2 * JB_ROOT_COUNT(jb);
... if (total == 0) { *nentries = 0; PG_RETURN_POINTER(NULL); } ... while ((r = JsonbIteratorNext(&it, &v, false)) != WJB_DONE) { if (i >= total) { total *= 2; entries = (Datum *) repalloc(entries, sizeof(Datum) * total); } The early-exit code path supposes that JB_ROOT_COUNT is absolutely reliable as an indicator that there's nothing in the jsonb value. On the other hand, the realloc logic inside the iteration loop implies that JB_ROOT_COUNT is just an untrustworthy estimate. Which theory is correct? And why is there not a comment to be seen anywhere? If the code is correct then this logic is certainly worthy of a comment or three. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers