bugfix: fix rowgroup not unlocked after ctrl-c command bugfix: fix scan error while some tpcc query rollbacked but not sync to delta

This commit is contained in:
SetnameWang
2024-11-08 11:30:01 +08:00
parent 2d130223a5
commit b649bc8191
5 changed files with 52 additions and 19 deletions

View File

@ -76,7 +76,6 @@ public:
void FillPerRowGroupDelta(_in_ IMCStoreScanState* state, _in_ uint32 cuid, _out_ VectorBatch* vecBatchOut);
bool InsertDeltaRowToBatch(_in_ IMCStoreScanState* state, ItemPointerData item, _out_ VectorBatch* vecBatchOut);
bool ImcstoreFillByDeltaScan(_in_ CStoreScanState* state, _out_ VectorBatch* vecBatchOut) override;
void UnlockRowGroups();
private:
IMCUStorage** m_imcuStorage;
@ -90,5 +89,12 @@ private:
List* m_currentRowGroups;
};
typedef struct PinnedRowGroup : public BaseObject {
RowGroup *rowgroup;
IMCSDesc *desc;
PinnedRowGroup(RowGroup *rowgroup, IMCSDesc *desc) : rowgroup(rowgroup), desc(desc) {};
} PinnedRowGroup;
void UnlockRowGroups();
#endif // ENABLE_HTAP
#endif // IMCSTORE_AM_H

View File

@ -3014,6 +3014,12 @@ typedef struct knl_u_datavec_context {
int ivfflat_probes;
} knl_u_datavec_context;
#ifdef ENABLE_HTAP
typedef struct knl_u_imcstore_context {
List* pinnedRowGroups;
} knl_u_imcstore_context;
#endif
typedef struct knl_session_context {
volatile knl_session_status status;
/* used for threadworker, elem in m_readySessionList */
@ -3170,6 +3176,10 @@ typedef struct knl_session_context {
knl_u_datavec_context datavec_ctx;
#ifdef ENABLE_HTAP
knl_u_imcstore_context imcstore_ctx;
#endif
} knl_session_context;
enum stp_xact_err_type {