Skip to content

Commit ad05e51

Browse files
author
Burak Serdar
committed
Move key spec generation to association query
1 parent fb2a622 commit ad05e51

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

crud/src/main/java/com/redhat/lightblue/assoc/ep/Assemble.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,7 @@ public void commit() {
218218
// Try to build an index from results
219219
MemDocIndex docIndex=null;
220220
if(aq.getQuery()!=null&&numSlots>MEM_INDEX_THRESHOLD) {
221-
// Lets see if we can build a key spec from this query
222-
GetIndexKeySpec giks=new GetIndexKeySpec(aq.getQueryFieldInfo());
223-
KeySpec keySpec=giks.iterate(aq.getQuery());
221+
KeySpec keySpec=aq.getIndexKeySpec();
224222
LOGGER.debug("In-memory index key spec:{}",keySpec);
225223
if(keySpec!=null) {
226224
// There is a key spec, meaning we can index the docs

crud/src/main/java/com/redhat/lightblue/assoc/ep/AssociationQuery.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import com.redhat.lightblue.assoc.QueryFieldInfo;
1313
import com.redhat.lightblue.assoc.AnalyzeQuery;
1414

15+
import com.redhat.lightblue.mindex.GetIndexKeySpec;
16+
import com.redhat.lightblue.mindex.KeySpec;
17+
1518
import com.redhat.lightblue.query.QueryExpression;
1619

1720
/**
@@ -25,6 +28,8 @@ public class AssociationQuery {
2528
// If non-null, query is either always true or always false
2629
private final Boolean always;
2730
private final List<QueryFieldInfo> qfi;
31+
// In-memory index key spec
32+
private final KeySpec keySpec;
2833

2934
public AssociationQuery(CompositeMetadata root,
3035
CompositeMetadata currentEntity,
@@ -61,11 +66,18 @@ public AssociationQuery(CompositeMetadata root,
6166
} else {
6267
always=null;
6368
}
69+
keySpec=null;
6470
} else {
6571
query = Searches.and(queries);
72+
GetIndexKeySpec giks=new GetIndexKeySpec(qfi);
73+
keySpec=giks.iterate(query);
6674
always=null;
6775
}
6876
}
77+
78+
public KeySpec getIndexKeySpec() {
79+
return keySpec;
80+
}
6981

7082
public List<QueryFieldInfo> getQueryFieldInfo() {
7183
return qfi;

0 commit comments

Comments
 (0)