SdbIndexRefJoinExtension<K extends SdbKey, V extends SdbValue, I extends SdbIndexKey> extension

Join methods on an index, sugar over asJoinSource.

This is the shape to prefer: the join key is the index key, so it is read straight from the index instead of out of every stored value, which is what lets an implementation able to join natively do it efficiently.

Every method takes the same options as its SdbJoinSourceExtension counterpart; there is no key path, and options applies to the index key.

on

Methods

findJoinedRecords<JK extends SdbKey, JV extends SdbValue>(SdbClient client, {required SdbJoinTarget<JK, JV> target, SdbFindOptions<I>? options, SdbJoinFindOptions? joinOptions}) Future<List<SdbRecordSnapshot<JK, JV>>>

Available on SdbIndexRef<K, V, I>, provided by the SdbIndexRefJoinExtension extension

See SdbJoinSourceExtension.findJoinedRecords.
findJoinRecords<JK extends SdbKey, JV extends SdbValue>(SdbClient client, {required SdbJoinTarget<JK, JV> target, SdbFindOptions<I>? options, SdbJoinFindOptions? joinOptions}) Future<List<SdbRecordSnapshot<K, V>>>

Available on SdbIndexRef<K, V, I>, provided by the SdbIndexRefJoinExtension extension

See SdbJoinSourceExtension.findJoinRecords.
findJoinRows<JK extends SdbKey, JV extends SdbValue>(SdbClient client, {required SdbJoinTarget<JK, JV> target, SdbFindOptions<I>? options, SdbJoinFindOptions? joinOptions}) Future<List<SdbJoinRow<K, V, JK, JV>>>

Available on SdbIndexRef<K, V, I>, provided by the SdbIndexRefJoinExtension extension

See SdbJoinSourceExtension.findJoinRows.
joinCount<JK extends SdbKey, JV extends SdbValue>(SdbClient client, {required SdbJoinTarget<JK, JV> target, SdbFindOptions<I>? options, SdbJoinFindOptions? joinOptions}) Future<int>

Available on SdbIndexRef<K, V, I>, provided by the SdbIndexRefJoinExtension extension

See SdbJoinSourceExtension.joinCount.
joinIterate<JK extends SdbKey, JV extends SdbValue>(SdbClient client, {required SdbJoinTarget<JK, JV> target, SdbTransactionMode? mode, SdbFindOptions<I>? options, SdbJoinFindOptions? joinOptions, required SdbJoinRowHandler<K, V, JK, JV> onRow}) Future<void>

Available on SdbIndexRef<K, V, I>, provided by the SdbIndexRefJoinExtension extension

See SdbJoinSourceExtension.joinIterate.
joinIterateJoinedRecords<JK extends SdbKey, JV extends SdbValue>(SdbClient client, {required SdbJoinTarget<JK, JV> target, SdbTransactionMode? mode, SdbFindOptions<I>? options, SdbJoinFindOptions? joinOptions, required SdbJoinRecordHandler<JK, JV> onRecord}) Future<void>

Available on SdbIndexRef<K, V, I>, provided by the SdbIndexRefJoinExtension extension

See SdbJoinSourceExtension.joinIterateJoinedRecords.
joinIterateRecords<JK extends SdbKey, JV extends SdbValue>(SdbClient client, {required SdbJoinTarget<JK, JV> target, SdbTransactionMode? mode, SdbFindOptions<I>? options, SdbJoinFindOptions? joinOptions, required SdbJoinRecordHandler<K, V> onRecord}) Future<void>

Available on SdbIndexRef<K, V, I>, provided by the SdbIndexRefJoinExtension extension

See SdbJoinSourceExtension.joinIterateRecords.