import random
import tables
print 'tables.__version__', tables.__version__

nrows=10000-1

class Distance(tables.IsDescription):
    frame = tables.Int32Col(pos=0)
    distance = tables.Float64Col(pos=1)

h5file = tables.open_file('index.h5', mode='w')
table = h5file.create_table(h5file.root, 'distance_table', Distance,
                          'distance table', expectedrows=nrows)
r = table.row
for i in range(nrows):
    #r['frame'] = nrows-i
    r['frame'] = random.randint(0, nrows)
    r['distance'] = float(i**2)
    r.append()
table.flush()

table.cols.frame.create_index(optlevel=9, _testmode=True, _verbose=True)
#table.cols.frame.optimizeIndex(level=5, verbose=1)

results = [r.nrow for r in table.where('frame < 2')]
print "frame<2 -->", table.read_coordinates(results)
#print "frame<2 -->", table.get_where_list('frame < 2')

results = [r.nrow for r in table.where('(1 < frame) & (frame <= 5)')]
print "rows-->", results
print "1<frame<=5 -->", table.read_coordinates(results)
#print "1<frame<=5 -->", table.get_where_list('(1 < frame) & (frame <= 5)')

h5file.close()
