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() */
|
/* Hook for plugin to get control in ExecCheckPermissions() */
|
||||||
ExecutorCheckPerms_hook_type ExecutorCheckPerms_hook = NULL;
|
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 */
|
/* decls for local routines only used within this module */
|
||||||
static void InitPlan(QueryDesc *queryDesc, int eflags);
|
static void InitPlan(QueryDesc *queryDesc, int eflags);
|
||||||
static void CheckValidRowMarkRel(Relation rel, RowMarkType markType);
|
static void CheckValidRowMarkRel(Relation rel, RowMarkType markType);
|
||||||
@ -308,9 +296,6 @@ ExecutorRun(QueryDesc *queryDesc,
|
|||||||
ScanDirection direction, uint64 count,
|
ScanDirection direction, uint64 count,
|
||||||
bool execute_once)
|
bool execute_once)
|
||||||
{
|
{
|
||||||
/* If enabled, the query ID should be set. */
|
|
||||||
EXEC_CHECK_QUERY_ID;
|
|
||||||
|
|
||||||
if (ExecutorRun_hook)
|
if (ExecutorRun_hook)
|
||||||
(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);
|
(*ExecutorRun_hook) (queryDesc, direction, count, execute_once);
|
||||||
else
|
else
|
||||||
@ -419,9 +404,6 @@ standard_ExecutorRun(QueryDesc *queryDesc,
|
|||||||
void
|
void
|
||||||
ExecutorFinish(QueryDesc *queryDesc)
|
ExecutorFinish(QueryDesc *queryDesc)
|
||||||
{
|
{
|
||||||
/* If enabled, the query ID should be set. */
|
|
||||||
EXEC_CHECK_QUERY_ID;
|
|
||||||
|
|
||||||
if (ExecutorFinish_hook)
|
if (ExecutorFinish_hook)
|
||||||
(*ExecutorFinish_hook) (queryDesc);
|
(*ExecutorFinish_hook) (queryDesc);
|
||||||
else
|
else
|
||||||
@ -482,9 +464,6 @@ standard_ExecutorFinish(QueryDesc *queryDesc)
|
|||||||
void
|
void
|
||||||
ExecutorEnd(QueryDesc *queryDesc)
|
ExecutorEnd(QueryDesc *queryDesc)
|
||||||
{
|
{
|
||||||
/* If enabled, the query ID should be set. */
|
|
||||||
EXEC_CHECK_QUERY_ID;
|
|
||||||
|
|
||||||
if (ExecutorEnd_hook)
|
if (ExecutorEnd_hook)
|
||||||
(*ExecutorEnd_hook) (queryDesc);
|
(*ExecutorEnd_hook) (queryDesc);
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user