Create IndexFunctions on the fly for NoSQL secondary keys

The IndexFunction provides a way to construct a secondary row key
for an object instance, given some query that needs to scan along
that particular subset of fields.  Filtering for constants and
any nulls is done in Java prior to constructing the key, such that
these are omitted from the index.

This may differ from how a SQL implementation would sort the same
information in an ORDER BY clause, but we shouldn't need to be
sorting by nullable columns.

Change-Id: I9cfecfa58420c8629aee8053beec075c34a139a6
Signed-off-by: Shawn O. Pearce <sop@google.com>
5 files changed