HI team, I'm a newbie to the postgres. When I learn the code of libpq, the achieve of PQmakeEmptyPGresult, cause my curiosity.
The old version code: PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status) { PGresult *result; result = (PGresult *) malloc(sizeof(PGresult)); if (!result) return NULL; result->ntups = 0; result->numAttributes = 0; result->attDescs = NULL; result->tuples = NULL; result->tupArrSize = 0; result->numParameters = 0; result->paramDescs = NULL; result->resultStatus = status; result->cmdStatus[0] = '\0'; result->binary = 0; result->events = NULL; result->nEvents = 0; result->errMsg = NULL; result->errFields = NULL; result->errQuery = NULL; result->null_field[0] = '\0'; result->curBlock = NULL; result->curOffset = 0; result->spaceLeft = 0; result->memorySize = sizeof(PGresult); /* ............. */ return result; } My version: PQmakeEmptyPGresult(PGconn *conn, ExecStatusType status) { PGresult *result; result = (PGresult *) calloc(sizeof(PGresult)); if (!result) return NULL; result->memorySize = sizeof(PGresult); /* ............. */ return result; } Why not have a change?I don't know. I'm a newbie, so I don't think I can commit a patch for postgres, just instead of send mail to ask. Yours, Wenyi.