all,
could somebody clue me to why the below code doesn't work. my schema is;
create column family StockHistory
with comparator = 'CompositeType(LongType,UTF8Type)'
and default_validation_class = 'UTF8Type'
and key_validation_class = 'UTF8Type';
the time part works but i'm getting other column with the second half
not equaling the value set. it's like it's ignoring the string part of
the composite.
Composite start = new Composite();
Composite end = new Composite();
start.addComponent(0,
startDate.toDateTimeAtStartOfDay().toDate().getTime(),
Composite.ComponentEquality.EQUAL);
end.addComponent(0,
endDate.toDateMidnight().toDate().getTime(),
Composite.ComponentEquality.EQUAL);
start.addComponent(1, "ticks", Composite.ComponentEquality.EQUAL);
end.addComponent(1, "ticks",
Composite.ComponentEquality.GREATER_THAN_EQUAL);
SliceQuery<String, Composite, String> sliceQuery =
HFactory.createSliceQuery(_keyspace, _stringSerializer,
new CompositeSerializer(), _stringSerializer);
sliceQuery.setColumnFamily(CF_STOCK_HISTORY).setKey(symbol);
sliceQuery.setRange(start, end, false, 10);
QueryResult<ColumnSlice<Composite, String>> result =
sliceQuery.execute();
ColumnSlice<Composite, String> cs = result.get();
SortedSet<String> historyJSON = new TreeSet<String>();
for ( HColumn<Composite, String> col: cs.getColumns() ) {
System.out.println(col.getName().get(0, _longSerializer)
+"|"+ col.getName().get(1,StringSerializer.get()));
}
this outputs the following;
1327035600000|ticks
1327046400000|quote
1327294800000|ticks
1327305600000|quote
1327381200000|ticks
1327392000000|quote
1327467600000|ticks
1327478400000|quote
1327554000000|ticks
1327564800000|quote
thanks,
deno