This fix is to correct issue AG-254 which is due to how Postgres
implements the LIMIT clause - basically, terminating a query in
progress once it receives the requested number of rows from it.
The ExecEndNestLoopVLE function, which deals with cleanup for the VLE
nested loop, was not cleaning up its internal context stack. This
caused, in some cases, the index routines to improperly free the
contexts, sometimes attempting to free them twice.
The fix is to properly unwind the context stack. The following was done
to correct the issue -
ExecEndNestLoopVLE was modified to clean up the context
stack, if necessary, by calculating and checking its depth.
Additionally, regression tests were modified to include tests for this
fix -
regress/sql/cypher_dml.sql - tests added.
regress/expected/cypher_dml.out - includes new output.
Note: This fix compiles and passes all install checks.
This fix is to correct issue AG-254 which is due to how Postgres implements the LIMIT clause - basically, terminating a query in progress once it receives the requested number of rows from it.
The
ExecEndNestLoopVLE
function, which deals with cleanup for the VLE nested loop, was not cleaning up its internal context stack. This caused, in some cases, the index routines to improperly free the contexts, sometimes attempting to free them twice.The fix is to properly unwind the context stack. The following was done to correct the issue -
ExecEndNestLoopVLE
was modified to clean up the context stack, if necessary, by calculating and checking its depth.Additionally, regression tests were modified to include tests for this fix -
regress/sql/cypher_dml.sql
- tests added.regress/expected/cypher_dml.out
- includes new output.Note: This fix compiles and passes all install checks.
-jrg