1.1 --- a/iixr/positions.py Fri Jan 28 01:36:25 2011 +0100
1.2 +++ b/iixr/positions.py Thu Feb 03 01:26:35 2011 +0100
1.3 @@ -20,7 +20,6 @@
1.4
1.5 from iixr.files import *
1.6 from iixr.data import vint, vint_to_array
1.7 -from array import array
1.8
1.9 class PositionWriter(FileWriter):
1.10
1.11 @@ -58,20 +57,17 @@
1.12 # Write the number of positions.
1.13 # Write the number of values per position.
1.14
1.15 - output = array('B')
1.16 - vint_to_array(self.docnum_size, output)
1.17 - self.last_docnum = self.write_sequence(output, docnum, self.last_docnum, self.docnum_size, monotonic=0)
1.18 - vint_to_array(len(positions), output)
1.19 - vint_to_array(size, output)
1.20 + self.write_number(self.docnum_size)
1.21 + self.last_docnum = self.write_sequence(docnum, self.last_docnum, self.docnum_size, monotonic=0)
1.22 + self.write_number(len(positions))
1.23 + self.write_number(size)
1.24
1.25 # Write the position deltas.
1.26
1.27 last = self.get_initial_value(size)
1.28
1.29 for position in positions:
1.30 - last = self.write_sequence(output, position, last, size)
1.31 -
1.32 - output.tofile(self.f)
1.33 + last = self.write_sequence(position, last, size)
1.34
1.35 self.last_docnum = docnum
1.36
1.37 @@ -150,15 +146,10 @@
1.38 # Write the position file offset delta.
1.39 # Write the document count.
1.40
1.41 - output = array('B')
1.42 - vint_to_array(self.docnum_size, output)
1.43 - self.last_docnum = self.write_sequence(output, docnum, self.last_docnum, self.docnum_size, monotonic=0)
1.44 - vint_to_array(pos_offset - self.last_pos_offset, output)
1.45 - vint_to_array(count, output)
1.46 -
1.47 - # Actually write the data.
1.48 -
1.49 - output.tofile(self.f)
1.50 + self.write_number(self.docnum_size)
1.51 + self.last_docnum = self.write_sequence(docnum, self.last_docnum, self.docnum_size, monotonic=0)
1.52 + self.write_number(pos_offset - self.last_pos_offset)
1.53 + self.write_number(count)
1.54
1.55 self.last_pos_offset = pos_offset
1.56
1.57 @@ -335,7 +326,7 @@
1.58
1.59 # Remember the first index entry offset.
1.60
1.61 - index_offset = self.position_index_writer.f.tell()
1.62 + index_offset = self.position_index_writer.tell()
1.63
1.64 # Write the positions.
1.65
1.66 @@ -346,7 +337,7 @@
1.67
1.68 # Retain the first record offset for a subsequent index entry.
1.69
1.70 - first_offset = self.position_writer.f.tell()
1.71 + first_offset = self.position_writer.tell()
1.72 first_docnum = None
1.73
1.74 doc_positions.sort()
1.75 @@ -366,7 +357,7 @@
1.76
1.77 self.position_index_writer.write_positions(first_docnum, first_offset, self.interval)
1.78
1.79 - first_offset = self.position_writer.f.tell()
1.80 + first_offset = self.position_writer.tell()
1.81 first_docnum = None
1.82
1.83 # Reset the position writer so that position readers accessing