{
zval *pgsql_link;
char *table_name, *pg_delim = NULL, *pg_null_as = NULL;
- int table_name_len, pg_delim_len, pg_null_as_len;
+ int table_name_len, pg_delim_len, pg_null_as_len, free_pg_null = 0;
char *query;
int id = -1;
PGconn *pgsql;
if (!pg_null_as) {
pg_null_as = safe_estrdup("\\\\N");
+ free_pg_null = 1;
}
if (memchr(table_name, '.', table_name_len)) {
PQclear(pgsql_result);
}
pgsql_result = PQexec(pgsql, query);
- efree(pg_null_as);
+ if (free_pg_null) {
+ efree(pg_null_as);
+ }
efree(query);
if (pgsql_result) {