HintStateDelete tried to free the elements of hstate->all_hints[] but
actually it only freed part of them. Correct the code as it intended.
Some other palloced blocks are being hanged under the struct but we
don't bother trying to be perfect at cleaning up the whole struct
since it will be freed up at query end.
if (hstate->hint_str)
pfree(hstate->hint_str);
- for (i = 0; i < hstate->num_hints[HINT_TYPE_SCAN_METHOD]; i++)
+ for (i = 0; i < hstate->nall_hints ; i++)
hstate->all_hints[i]->delete_func(hstate->all_hints[i]);
if (hstate->all_hints)
pfree(hstate->all_hints);
if (hstate->parent_index_infos)
list_free(hstate->parent_index_infos);
+
+ /*
+ * We have another few or dozen of palloced block in the struct, but don't
+ * bother completely clean up all of them since they will be cleaned-up at
+ * the end of this query.
+ */
}
/*