title: Iterating over selection with query of an HDFStore
body: <p>I have a very large table in an HDFStore of which I would like to select a subset using a query and then iterate over the subset chunk by chunk. I would like the query to take place <em>before</em> the selection is broken into chunks, so that all of the chunks are the same size.</p>
  
  <p>The documentation <a href="http://pandas.pydata.org/pandas-docs/dev/io.html#iterator" rel="nofollow">here</a> seems to indicate that this is the default behavior but is not so clear. However, it seems to me that the chunking is actually taking place <em>before</em> the query, as shown in this example:</p>
  
  <pre><code>In [1]: pd.__version__
  Out[1]: '0.13.0-299-gc9013b8'
  
  In [2]: df = pd.DataFrame({'number': np.arange(1,11)})
  
  In [3]: df
  Out[3]: 
     number
  0       1
  1       2
  2       3
  3       4
  4       5
  5       6
  6       7
  7       8
  8       9
  9      10
  
  [10 rows x 1 columns]
  
  
  In [4]: with pd.get_store('test.h5') as store:
              store.append('df', df, data_columns=['number'])
  
  In [5]: evens = [2, 4, 6, 8, 10]
  
  In [6]: with pd.get_store('test.h5') as store:
              for chunk in store.select('df', 'number=evens', chunksize=5):
                  print len(chunk)
  
          2
          3
  </code></pre>
  
  <p>I would expect only a single chunk of size 5 if the querying were happening before the result is broken into chunks, but this example gives two chunks of lengths 2 and 3.</p>
  
  <p>Is this the intended behavior and if so is there an efficient workaround to give chunks of the same size without reading the table into memory?</p>