RANK: Adopt a new ranking implementation.
authorBen Pfaff <blp@cs.stanford.edu>
Thu, 31 Jan 2013 07:03:29 +0000 (23:03 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Fri, 1 Feb 2013 05:54:18 +0000 (21:54 -0800)
commit2bcadd734a1045461be498f4f0d197001a983107
treef02ea59a4ed27c4cdb7942f392a2acb9a1a8d15a
parent2beb35516f8749170f786022441a676347f1074d
RANK: Adopt a new ranking implementation.

Before this commit, the implementation of RANK made multiple passes
through the active file, opening and closing it (with proc_open()
and proc_commit()) as many times as there were input variables.
This worked in simple cases, but it could never work with
TEMPORARY since the second proc_open() will see a different set
of data from the first one.

This commit rewrites RANK to open and read the active file only
once.  It does not make RANK properly work with TEMPORARY, but
it brings it much closer.  It may also be faster in some cases
because, although it makes the same number of passes through
the input data (necessarily), each pass discards all the input
columns except the ones that are really need for that pass.
src/language/stats/rank.c