docFields method

  1. @override
Future<Map<String, Map<String, Object?>>> docFields(
  1. String table,
  2. Iterable<String> docIds
)
override

The live field rows of the given documents, grouped by document id and keyed by bare field path (the portion of the record key after the "$docId\x1F" separator). Existence registers are not included; a document with no live field rows is absent from the result.

This is the materialisation read for point lookups and query pages: an indexed engine must serve it without scanning the whole table, and a scanning engine must serve the whole batch in one scan — never one scan per document.

Implementation

@override
Future<Map<String, Map<String, Object?>>> docFields(
    String table, Iterable<String> docIds) async {
  final raw = await _inner.docFields(table, docIds);
  return {
    for (final doc in raw.entries)
      doc.key: {
        for (final f in doc.value.entries) f.key: _resolve(f.value),
      },
  };
}