Skip to content

Commit 728c131

Browse files
committed
avoid ByteBuffer allocation for clustering key too
1 parent dea99f7 commit 728c131

4 files changed

Lines changed: 24 additions & 2 deletions

File tree

src/java/org/apache/cassandra/cql3/selection/ResultSetBuilder.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,11 @@ public void add(ByteBuffer v)
107107
inputRow.add(v);
108108
}
109109

110+
public void add(byte[] v)
111+
{
112+
inputRow.add(v);
113+
}
114+
110115
public void add(Cell<?> c, long nowInSec)
111116
{
112117
inputRow.add(c, nowInSec);

src/java/org/apache/cassandra/cql3/selection/Selector.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,12 +369,24 @@ public void add(ByteBuffer v)
369369
index++;
370370
}
371371

372+
public void add(byte[] v)
373+
{
374+
values[index] = v;
375+
376+
if (v != null)
377+
{
378+
writetimes.addNoTimestamp(index);
379+
ttls.addNoTimestamp(index);
380+
}
381+
index++;
382+
}
383+
372384
public void add(ColumnData columnData, long nowInSec)
373385
{
374386
ColumnMetadata column = columns.get(index);
375387
if (columnData == null)
376388
{
377-
add(null);
389+
add((byte[]) null);
378390
}
379391
else
380392
{

src/java/org/apache/cassandra/cql3/statements/SelectStatement.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1228,7 +1228,7 @@ public void processPartition(RowIterator partition, QueryOptions options, Result
12281228
result.add(keyComponents[def.position()]);
12291229
break;
12301230
case CLUSTERING:
1231-
result.add(row.clustering().bufferAt(def.position()));
1231+
result.add(row.clustering().arrayAt(def.position()));
12321232
break;
12331233
case REGULAR:
12341234
result.add(row.getColumnData(def), nowInSec);

src/java/org/apache/cassandra/db/ClusteringPrefix.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,11 @@ default ByteBuffer bufferAt(int i)
313313
return accessor().toBuffer(get(i));
314314
}
315315

316+
default byte[] arrayAt(int i)
317+
{
318+
return accessor().toArray(get(i));
319+
}
320+
316321
default String stringAt(int i, ClusteringComparator comparator)
317322
{
318323
return comparator.subtype(i).getString(get(i), accessor());

0 commit comments

Comments
 (0)