Skip to content
This repository was archived by the owner on Apr 14, 2022. It is now read-only.

Commit f163301

Browse files
committed
WIP: find_index: distinguish same named connections
TODO: add a test.
1 parent 569ce80 commit f163301

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

graphql/find_index.lua

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,10 @@ local function build_connection_indexes(indexes, collections)
329329
check(collections, 'collections', 'table')
330330
local connection_indexes = {}
331331
for collection_name, collection in pairs(collections) do
332+
assert(connection_indexes[collection_name] == nil)
333+
local cur_indexes = {}
334+
connection_indexes[collection_name] = cur_indexes
335+
332336
for _, c in ipairs(collection.connections) do
333337
local ok = (c.destination_collection ~= nil and c.variants == nil)
334338
or (c.destination_collection == nil and c.variants ~= nil)
@@ -339,20 +343,20 @@ local function build_connection_indexes(indexes, collections)
339343
end
340344

341345
if c.destination_collection ~= nil then
342-
if connection_indexes[c.destination_collection] == nil then
343-
connection_indexes[c.destination_collection] = {}
346+
if cur_indexes[c.destination_collection] == nil then
347+
cur_indexes[c.destination_collection] = {}
344348
end
345349
validate_connection_vs_index(c, collection_name, indexes)
346-
connection_indexes[c.destination_collection][c.name] = {
350+
cur_indexes[c.destination_collection][c.name] = {
347351
index_name = c.index_name,
348352
connection_type = c.type,
349353
}
350354
end
351355

352356
if c.variants ~= nil then
353357
for _, v in ipairs(c.variants) do
354-
if connection_indexes[v.destination_collection] == nil then
355-
connection_indexes[v.destination_collection] = {}
358+
if cur_indexes[v.destination_collection] == nil then
359+
cur_indexes[v.destination_collection] = {}
356360
end
357361
local quazi_connection = {
358362
type = c.type,
@@ -363,7 +367,7 @@ local function build_connection_indexes(indexes, collections)
363367
}
364368
validate_connection_vs_index(quazi_connection,
365369
collection_name, indexes)
366-
connection_indexes[v.destination_collection][c.name] = {
370+
cur_indexes[v.destination_collection][c.name] = {
367371
index_name = v.index_name,
368372
connection_type = c.type,
369373
}
@@ -540,8 +544,9 @@ local function get_index_name(self, collection_name, from, filter, args)
540544
-- performed by an index from the connection, then the result will be
541545
-- postprocessed using `pivot`.
542546
if from.collection_name ~= nil then
547+
local cur_indexes = connection_indexes[from.collection_name]
543548
local connection_index =
544-
connection_indexes[collection_name][from.connection_name]
549+
cur_indexes[collection_name][from.connection_name]
545550
local index_name = connection_index.index_name
546551
assert(index_name ~= nil, 'index_name must not be nil')
547552
-- offset in this case uses frontend filtering, so we should not set

0 commit comments

Comments
 (0)