~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/index.py

Merge from bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
317
317
    def iter_all_entries(self):
318
318
        """Iterate over all keys within the index.
319
319
 
320
 
        :return: An iterable of (key, value) or (key, value, reference_lists).
 
320
        :return: An iterable of (index, key, value) or (index, key, value, reference_lists).
321
321
            The former tuple is used when there are no reference lists in the
322
322
            index, making the API compatible with simple key:value index types.
323
323
            There is no defined order for the result iteration - it will be in
324
324
            the most efficient order for the index.
325
325
        """
326
326
        if 'evil' in debug.debug_flags:
327
 
            trace.mutter_callsite(2,
 
327
            trace.mutter_callsite(3,
328
328
                "iter_all_entries scales with size of history.")
329
329
        if self._nodes is None:
330
330
            self._buffer_all()
496
496
        """
497
497
        self._indices = indices
498
498
 
 
499
    def __repr__(self):
 
500
        return "%s(%s)" % (
 
501
                self.__class__.__name__,
 
502
                ', '.join(map(repr, self._indices)))
 
503
 
499
504
    def insert_index(self, pos, index):
500
505
        """Insert a new index in the list of indices to query.
501
506
 
510
515
        Duplicate keys across child indices are presumed to have the same
511
516
        value and are only reported once.
512
517
 
513
 
        :return: An iterable of (key, reference_lists, value). There is no
514
 
            defined order for the result iteration - it will be in the most
515
 
            efficient order for the index.
 
518
        :return: An iterable of (index, key, reference_lists, value).
 
519
            There is no defined order for the result iteration - it will be in
 
520
            the most efficient order for the index.
516
521
        """
517
522
        seen_keys = set()
518
523
        for index in self._indices:
528
533
        value and are only reported once.
529
534
 
530
535
        :param keys: An iterable providing the keys to be retrieved.
531
 
        :return: An iterable of (key, reference_lists, value). There is no
 
536
        :return: An iterable of (index, key, reference_lists, value). There is no
532
537
            defined order for the result iteration - it will be in the most
533
538
            efficient order for the index.
534
539
        """
610
615
    def iter_all_entries(self):
611
616
        """Iterate over all keys within the index
612
617
 
613
 
        :return: An iterable of (key, reference_lists, value). There is no
 
618
        :return: An iterable of (index, key, reference_lists, value). There is no
614
619
            defined order for the result iteration - it will be in the most
615
620
            efficient order for the index (in this case dictionary hash order).
616
621
        """
617
622
        if 'evil' in debug.debug_flags:
618
 
            trace.mutter_callsite(2,
 
623
            trace.mutter_callsite(3,
619
624
                "iter_all_entries scales with size of history.")
620
625
        if self.reference_lists:
621
626
            for key, (absent, references, value) in self._nodes.iteritems():
630
635
        """Iterate over keys within the index.
631
636
 
632
637
        :param keys: An iterable providing the keys to be retrieved.
633
 
        :return: An iterable of (key, reference_lists, value). There is no
 
638
        :return: An iterable of (index, key, reference_lists, value). There is no
634
639
            defined order for the result iteration - it will be in the most
635
640
            efficient order for the index (keys iteration order in this case).
636
641
        """
804
809
        iter_all_entries is implemented against the adapted index using
805
810
        iter_entries_prefix.
806
811
 
807
 
        :return: An iterable of (key, reference_lists, value). There is no
 
812
        :return: An iterable of (index, key, reference_lists, value). There is no
808
813
            defined order for the result iteration - it will be in the most
809
814
            efficient order for the index (in this case dictionary hash order).
810
815
        """