This is an automated email from the ASF dual-hosted git repository.
gian pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new d417ee4161e Add helper function for vector offset (#18443)
d417ee4161e is described below
commit d417ee4161e8451b80e175c9e519fcf6c04db734
Author: Adarsh Sanjeev <[email protected]>
AuthorDate: Wed Aug 27 16:35:38 2025 +0530
Add helper function for vector offset (#18443)
---
.../org/apache/druid/segment/column/ComplexColumn.java | 17 +++--------------
.../druid/segment/vector/ReadableVectorOffset.java | 13 +++++++++++++
2 files changed, 16 insertions(+), 14 deletions(-)
diff --git
a/processing/src/main/java/org/apache/druid/segment/column/ComplexColumn.java
b/processing/src/main/java/org/apache/druid/segment/column/ComplexColumn.java
index 6204d7d219d..3049b9eaf78 100644
---
a/processing/src/main/java/org/apache/druid/segment/column/ComplexColumn.java
+++
b/processing/src/main/java/org/apache/druid/segment/column/ComplexColumn.java
@@ -118,20 +118,9 @@ public interface ComplexColumn extends BaseColumn
return vector;
}
- if (offset.isContiguous()) {
- final int startOffset = offset.getStartOffset();
- final int vectorSize = offset.getCurrentVectorSize();
-
- for (int i = 0; i < vectorSize; i++) {
- vector[i] = getRowValue(startOffset + i);
- }
- } else {
- final int[] offsets = offset.getOffsets();
- final int vectorSize = offset.getCurrentVectorSize();
-
- for (int i = 0; i < vectorSize; i++) {
- vector[i] = getRowValue(offsets[i]);
- }
+ final int vectorSize = offset.getCurrentVectorSize();
+ for (int i = 0; i < vectorSize; i++) {
+ vector[i] = getRowValue(offset.getOffset(i));
}
id = offset.getId();
diff --git
a/processing/src/main/java/org/apache/druid/segment/vector/ReadableVectorOffset.java
b/processing/src/main/java/org/apache/druid/segment/vector/ReadableVectorOffset.java
index 79f47064f84..35cb0059946 100644
---
a/processing/src/main/java/org/apache/druid/segment/vector/ReadableVectorOffset.java
+++
b/processing/src/main/java/org/apache/druid/segment/vector/ReadableVectorOffset.java
@@ -52,4 +52,17 @@ public interface ReadableVectorOffset extends
ReadableVectorInspector
* Throws an exception if "isContiguous" is true.
*/
int[] getOffsets();
+
+ /**
+ * Gets the offset at a certain index. To be used in situations where the
caller has no optimized path available for
+ * contiguous processing.
+ */
+ default int getOffset(int index)
+ {
+ if (isContiguous()) {
+ return getStartOffset() + index;
+ } else {
+ return getOffsets()[index];
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]