From 01b2fc5c534d40ac96ce3d88e8922f6b2cad67d3 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Tue, 27 Jan 2026 05:07:42 +0000 Subject: [PATCH 1/2] fix: cache clear --- packages/nocodb/src/models/View.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/nocodb/src/models/View.ts b/packages/nocodb/src/models/View.ts index 66017b85da..f6cae50d88 100644 --- a/packages/nocodb/src/models/View.ts +++ b/packages/nocodb/src/models/View.ts @@ -2028,14 +2028,28 @@ export default class View implements ViewType { deleteKeys.push( `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:queries`, `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:count`, - `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read`, + `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:false:false:false`, + `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:false:false:true`, + `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:false:true:false`, + `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:false:true:true`, + `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:true:false:false`, + `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:true:false:true`, + `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:true:true:false`, + `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:true:true:true`, ); } deleteKeys.push( `${CacheScope.SINGLE_QUERY}:${modelId}:default:queries`, `${CacheScope.SINGLE_QUERY}:${modelId}:default:count`, - `${CacheScope.SINGLE_QUERY}:${modelId}:default:read`, + `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:false:false:false`, + `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:false:false:true`, + `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:false:true:false`, + `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:false:true:true`, + `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:true:false:false`, + `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:true:false:true`, + `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:true:true:false`, + `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:true:true:true`, ); await NocoCache.del(context, deleteKeys); From 39369fdfa40d10d225fca8dfdf61c6fd01eec0ac Mon Sep 17 00:00:00 2001 From: Pranav C Date: Tue, 27 Jan 2026 05:07:42 +0000 Subject: [PATCH 2/2] fix: optimize cache key generation using bitwise flags --- packages/nocodb/src/models/View.ts | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/packages/nocodb/src/models/View.ts b/packages/nocodb/src/models/View.ts index f6cae50d88..2c0eec1071 100644 --- a/packages/nocodb/src/models/View.ts +++ b/packages/nocodb/src/models/View.ts @@ -2028,29 +2028,25 @@ export default class View implements ViewType { deleteKeys.push( `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:queries`, `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:count`, - `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:false:false:false`, - `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:false:false:true`, - `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:false:true:false`, - `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:false:true:true`, - `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:true:false:false`, - `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:true:false:true`, - `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:true:true:false`, - `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:true:true:true`, ); + // Add all 8 combinations of bitwise flags (0-7) + for (let flags = 0; flags < 8; flags++) { + deleteKeys.push( + `${CacheScope.SINGLE_QUERY}:${modelId}:${view.id}:read:${flags}`, + ); + } } deleteKeys.push( `${CacheScope.SINGLE_QUERY}:${modelId}:default:queries`, `${CacheScope.SINGLE_QUERY}:${modelId}:default:count`, - `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:false:false:false`, - `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:false:false:true`, - `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:false:true:false`, - `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:false:true:true`, - `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:true:false:false`, - `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:true:false:true`, - `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:true:true:false`, - `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:true:true:true`, ); + // Add all 8 combinations of bitwise flags (0-7) + for (let flags = 0; flags < 8; flags++) { + deleteKeys.push( + `${CacheScope.SINGLE_QUERY}:${modelId}:default:read:${flags}`, + ); + } await NocoCache.del(context, deleteKeys); }