@@ -4740,6 +4740,7 @@ static void MtmProcessUtility(Node *parsetree, const char *queryString,
4740
4740
case T_LockStmt :
4741
4741
case T_CheckPointStmt :
4742
4742
case T_ReindexStmt :
4743
+ case T_ExplainStmt :
4743
4744
skipCommand = true;
4744
4745
break ;
4745
4746
@@ -4795,25 +4796,25 @@ static void MtmProcessUtility(Node *parsetree, const char *queryString,
4795
4796
}
4796
4797
break ;
4797
4798
4798
- case T_ExplainStmt :
4799
- /*
4800
- * EXPLAIN ANALYZE can create side-effects.
4801
- * Better to catch that by some general mechanism of detecting
4802
- * catalog and heap writes.
4803
- */
4804
- {
4805
- ExplainStmt * stmt = (ExplainStmt * )parsetree ;
4806
- ListCell * lc ;
4807
-
4808
- skipCommand = true;
4809
- foreach (lc ,stmt -> options )
4810
- {
4811
- DefElem * opt = (DefElem * )lfirst (lc );
4812
- if (strcmp (opt -> defname ,"analyze" )== 0 )
4813
- skipCommand = false;
4814
- }
4815
- }
4816
- break ;
4799
+ // case T_ExplainStmt:
4800
+ // /*
4801
+ // * EXPLAIN ANALYZE can create side-effects.
4802
+ // * Better to catch that by some general mechanism of detecting
4803
+ // * catalog and heap writes.
4804
+ // */
4805
+ // {
4806
+ // ExplainStmt *stmt = (ExplainStmt *) parsetree;
4807
+ // ListCell *lc;
4808
+
4809
+ // skipCommand = true;
4810
+ // foreach(lc, stmt->options)
4811
+ // {
4812
+ // DefElem *opt = (DefElem *) lfirst(lc);
4813
+ // if (strcmp(opt->defname, "analyze") == 0)
4814
+ // skipCommand = false;
4815
+ // }
4816
+ // }
4817
+ // break;
4817
4818
4818
4819
/* Save GUC context for consequent DDL execution */
4819
4820
case T_DiscardStmt :