Remove assertion checking query ID in execMain.c
This assertion has been added by 24f520594809, but Alexander Lakhin has proved that the ExecutorRun() one can be broken by using a PL function that manipulates compute_query_id and track_activities, while the ones in ExecutorFinish() and ExecutorEnd() could be triggered when cleaning up portals at the beginning of a new query execution. Discussion: https://postgr.es/m/b37d8e6c-e83d-e157-8865-1b2460a6aef2@gmail.com
This commit is contained in:
parent
259a0a99fe
commit
4dd3087300
@ -71,18 +71,6 @@ ExecutorEnd_hook_type ExecutorEnd_hook = NULL;
|
||||
/* Hook for plugin to get control in ExecCheckPermissions() */
|
||||
ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook = NULL;
|
||||
|
||||
/*
|
||||
* Check that the query ID is set, which is something that happens only
|
||||
* if compute_query_id is enabled (or a module forced it), if track_activities
|
||||
* is enabled, and if a client provided a query string to map with the query
|
||||
* ID computed from it.
|
||||
*/
|
||||
#define EXEC_CHECK_QUERY_ID \
|
||||
do { \
|
||||
Assert(!IsQueryIdEnabled() || !pgstat_track_activities || \
|
||||
!debug_query_string || pgstat_get_my_query_id() != 0); \
|
||||
} while(0)
|
||||
|
||||
/* decls for local routines only used within this module */
|
||||
static void InitPlan(QueryDesc *queryDesc, int eflags);
|
||||
static void CheckValidRowMarkRel(Relation rel, RowMarkType markType);
|
||||
@ -308,9 +296,6 @@ ExecutorRun(QueryDesc *queryDesc,
|
||||
ScanDirection direction, uint64 count,
|
||||
bool execute_once)
|
||||
{
|
||||
/* If enabled, the query ID should be set. */
|
||||
EXEC_CHECK_QUERY_ID;
|
||||
|
||||
if (ExecutorRun_hook)
|
||||
(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);
|
||||
else
|
||||
@ -419,9 +404,6 @@ standard_ExecutorRun(QueryDesc *queryDesc,
|
||||
void
|
||||
ExecutorFinish(QueryDesc *queryDesc)
|
||||
{
|
||||
/* If enabled, the query ID should be set. */
|
||||
EXEC_CHECK_QUERY_ID;
|
||||
|
||||
if (ExecutorFinish_hook)
|
||||
(*ExecutorFinish_hook) (queryDesc);
|
||||
else
|
||||
@ -482,9 +464,6 @@ standard_ExecutorFinish(QueryDesc *queryDesc)
|
||||
void
|
||||
ExecutorEnd(QueryDesc *queryDesc)
|
||||
{
|
||||
/* If enabled, the query ID should be set. */
|
||||
EXEC_CHECK_QUERY_ID;
|
||||
|
||||
if (ExecutorEnd_hook)
|
||||
(*ExecutorEnd_hook) (queryDesc);
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user