[infinispan-dev] ISPN-2296 Query projections

Marko Lukša marko.luksa at gmail.com
Mon Sep 17 11:52:26 EDT 2012


Hey Sanne and others,

before I send a pull request, can you review my impl of ISPN-2296 at 
https://github.com/luksa/infinispan/compare/ISPN-2296. I'd like your 
input on this before implementing this on clustered queries.

Basically here's what I did:

Extracted an interface (QueryResultLoader - any ideas for a better 
name?) from EntityLoader and introduced ProjectionLoader. This took care 
of projection of actual fields.

For projecting the cache key, I introduced ProjectionConverter, which 
translates the fields passed to cacheQuery.projection(fields) into 
fields that hsearch can deal with (currently, only 
ispn.ProjectionConstants.KEY is replaced with 
hsearch.ProjectionConstants.ID). The converter is then also used to 
convert the actual values returned by hsearch (for 
cacheQuery.projection(ProjectionConstants.KEY), it converts the id 
returned by hsearch into the cache key).

Just for completeness, besides introducing ispn.PC.KEY, I also added 
PC.VALUE, which is equivalent to hsearch.PC.THIS.

Marko



More information about the infinispan-dev mailing list