From 47bfed96f6deebe798f482e661b32da4d979e28c Mon Sep 17 00:00:00 2001 From: chronolaw Date: Thu, 31 Oct 2024 16:41:22 +0800 Subject: [PATCH] refactor(dbless): clean logic of selec_by_field --- kong/db/strategies/off/init.lua | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/kong/db/strategies/off/init.lua b/kong/db/strategies/off/init.lua index d15a2c6c7aa4..e083168c9036 100644 --- a/kong/db/strategies/off/init.lua +++ b/kong/db/strategies/off/init.lua @@ -208,23 +208,14 @@ local function select_by_field(self, field, value, options) _, value = next(value) end - local ws_id - - if field == "cache_key" then - -- align with cache_key insertion logic in _set_entity_for_txn - ws_id = get_default_workspace() - - else - ws_id = workspace_id(schema, options) - - local unique_across_ws = schema.fields[field].unique_across_ws - -- only accept global query by field if field is unique across workspaces - assert(not options or options.workspace ~= null or unique_across_ws) - - if unique_across_ws then - ws_id = get_default_workspace() - end - end + local unique_across_ws = schema.fields[field].unique_across_ws + -- only accept global query by field if field is unique across workspaces + assert(not options or options.workspace ~= null or unique_across_ws) + + -- align with cache_key insertion logic in _set_entity_for_txn + local ws_id = (unique_across_ws or field == "cache_key") and + get_default_workspace() or + workspace_id(schema, options) local key = unique_field_key(schema.name, ws_id, field, value)