• Alfredo Di Napoli's avatar
    Fix bug in selectCountDocs · 6ff05ee1
    Alfredo Di Napoli authored
    The refactored DB API now has a separate building block to create an Opaleye query that
    counts the number of returned results; we do that via `countRows`, exactly like the previous version.
    
    However, I have discovered a small footgun in the Opaleye API -- if you have
    two `Select` statements both calling countRows in a chain, that will always yield a value of 1,
    because the inner `countRows` will give you the actual number of results by returning
    a single row with an integer inside (i.e. the count).
    
    However, the subsequent (outer) call to `countRows` will return the number of rows
    of the previous step .. which is always going to be one!
    
    The bug was that I had left somewhere the spurious `countRows` in the query which
    would return the number of documents needed for the TFICF field, triggering the bug
    (because then we had `it` ALWAYS equal to 1.0).
    
    In the new API, while we cannot prevent the bug at the type level we can
    easily do an audit by grepping for `countRows`, making sure we have exactly one instance,
    i.e. inside `mkOpaCountQuery`.
    6ff05ee1
Name
Last commit
Last update
..
API Loading commit data...
Core Loading commit data...
Database Loading commit data...
Graph Loading commit data...
Ngrams Loading commit data...
Offline Loading commit data...
Parsers Loading commit data...
Server Loading commit data...
Utils Loading commit data...
API.hs Loading commit data...
Instances.hs Loading commit data...
Types.hs Loading commit data...
Utils.hs Loading commit data...