Fix MOT update indexed column check to be recursive

This commit is contained in:
Vinoth Veeraraghavan
2020-11-30 10:24:45 +08:00
parent 6a2918b6a3
commit 427d68ddba
3 changed files with 111 additions and 39 deletions

View File

@ -39,15 +39,21 @@ extern bool analyze_requires_snapshot(Node* parseTree);
extern void CheckSelectLocking(Query* qry);
extern void applyLockingClause(Query* qry, Index rtindex, bool forUpdate, bool noWait, bool pushedDown);
extern void CheckTablesStorageEngine(Query* qry, StorageEngineType* type);
extern bool IsMOTIndexedColumnUpdate(Query* qry);
extern bool CheckMotIndexedColumnUpdate(Query* qry);
typedef struct RTEDetectorContext {
bool isMotTable;
bool isPageTable;
List* queryNodes;
int sublevels_up;
int sublevelsUp;
} RTEDetectorContext;
typedef struct UpdateDetectorContext {
bool isIndexedColumnUpdate;
List* queryNodes;
int sublevelsUp;
} UpdateDetectorContext;
/* Record the rel name and corresponding columan name info */
typedef struct RelColumnInfo {
char* relname;