This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 1a476dea72 Add TableSegmentsInfo to Thrift and Proto broker/server
messages (#15573)
1a476dea72 is described below
commit 1a476dea72ebf1c15e14ded28ae60c385f71b2c3
Author: Rajat Venkatesh <[email protected]>
AuthorDate: Wed Apr 30 06:48:25 2025 +0530
Add TableSegmentsInfo to Thrift and Proto broker/server messages (#15573)
---
.../apache/pinot/common/request/BrokerRequest.java | 4 +-
.../apache/pinot/common/request/DataSource.java | 4 +-
.../apache/pinot/common/request/Expression.java | 4 +-
.../pinot/common/request/ExpressionType.java | 4 +-
.../org/apache/pinot/common/request/Function.java | 4 +-
.../apache/pinot/common/request/Identifier.java | 4 +-
.../pinot/common/request/InstanceRequest.java | 237 +++++--
.../java/org/apache/pinot/common/request/Join.java | 4 +-
.../org/apache/pinot/common/request/JoinType.java | 4 +-
.../org/apache/pinot/common/request/Literal.java | 4 +-
.../apache/pinot/common/request/PinotQuery.java | 4 +-
.../apache/pinot/common/request/QuerySource.java | 4 +-
.../pinot/common/request/TableSegmentsInfo.java | 708 +++++++++++++++++++++
.../pinot/common/response/ProcessingException.java | 4 +-
pinot-common/src/main/proto/server.proto | 8 +
pinot-common/src/thrift/request.thrift | 7 +
.../core/query/request/ServerQueryRequest.java | 32 +
.../request/context/TableSegmentsContext.java | 46 ++
18 files changed, 1024 insertions(+), 62 deletions(-)
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/BrokerRequest.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/BrokerRequest.java
index f85c6c7470..a12401620e 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/request/BrokerRequest.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/request/BrokerRequest.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class BrokerRequest implements org.apache.thrift.TBase<BrokerRequest,
BrokerRequest._Fields>, java.io.Serializable, Cloneable,
Comparable<BrokerRequest> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("BrokerRequest");
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/DataSource.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/DataSource.java
index 8451397162..5bbd0e25d0 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/request/DataSource.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/request/DataSource.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class DataSource implements org.apache.thrift.TBase<DataSource,
DataSource._Fields>, java.io.Serializable, Cloneable, Comparable<DataSource> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("DataSource");
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/Expression.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/Expression.java
index 58c2a3bbb1..5ac0c55b2e 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/request/Expression.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/request/Expression.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class Expression implements org.apache.thrift.TBase<Expression,
Expression._Fields>, java.io.Serializable, Cloneable, Comparable<Expression> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("Expression");
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/ExpressionType.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/ExpressionType.java
index fd209646e4..f2070dd91f 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/request/ExpressionType.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/request/ExpressionType.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public enum ExpressionType implements org.apache.thrift.TEnum {
LITERAL(0),
IDENTIFIER(1),
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/Function.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/Function.java
index b493d73b9a..d7400ef53b 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/request/Function.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/request/Function.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class Function implements org.apache.thrift.TBase<Function,
Function._Fields>, java.io.Serializable, Cloneable, Comparable<Function> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("Function");
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/Identifier.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/Identifier.java
index ad06e69bb9..1cd194fac2 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/request/Identifier.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/request/Identifier.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class Identifier implements org.apache.thrift.TBase<Identifier,
Identifier._Fields>, java.io.Serializable, Cloneable, Comparable<Identifier> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("Identifier");
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/InstanceRequest.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/InstanceRequest.java
index 3ea150fd54..79ac876ba1 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/request/InstanceRequest.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/request/InstanceRequest.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest, InstanceRequest._Fields>,
java.io.Serializable, Cloneable, Comparable<InstanceRequest> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("InstanceRequest");
@@ -36,6 +36,7 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
private static final org.apache.thrift.protocol.TField BROKER_ID_FIELD_DESC
= new org.apache.thrift.protocol.TField("brokerId",
org.apache.thrift.protocol.TType.STRING, (short)5);
private static final org.apache.thrift.protocol.TField
OPTIONAL_SEGMENTS_FIELD_DESC = new
org.apache.thrift.protocol.TField("optionalSegments",
org.apache.thrift.protocol.TType.LIST, (short)6);
private static final org.apache.thrift.protocol.TField CID_FIELD_DESC = new
org.apache.thrift.protocol.TField("cid",
org.apache.thrift.protocol.TType.STRING, (short)7);
+ private static final org.apache.thrift.protocol.TField
TABLE_SEGMENTS_INFO_LIST_FIELD_DESC = new
org.apache.thrift.protocol.TField("tableSegmentsInfoList",
org.apache.thrift.protocol.TType.LIST, (short)8);
private static final org.apache.thrift.scheme.SchemeFactory
STANDARD_SCHEME_FACTORY = new InstanceRequestStandardSchemeFactory();
private static final org.apache.thrift.scheme.SchemeFactory
TUPLE_SCHEME_FACTORY = new InstanceRequestTupleSchemeFactory();
@@ -47,6 +48,7 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
private @org.apache.thrift.annotation.Nullable java.lang.String brokerId; //
optional
private @org.apache.thrift.annotation.Nullable
java.util.List<java.lang.String> optionalSegments; // optional
private @org.apache.thrift.annotation.Nullable java.lang.String cid; //
optional
+ private @org.apache.thrift.annotation.Nullable
java.util.List<TableSegmentsInfo> tableSegmentsInfoList; // optional
/** The set of fields this struct contains, along with convenience methods
for finding and manipulating them. */
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -56,7 +58,8 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
ENABLE_TRACE((short)4, "enableTrace"),
BROKER_ID((short)5, "brokerId"),
OPTIONAL_SEGMENTS((short)6, "optionalSegments"),
- CID((short)7, "cid");
+ CID((short)7, "cid"),
+ TABLE_SEGMENTS_INFO_LIST((short)8, "tableSegmentsInfoList");
private static final java.util.Map<java.lang.String, _Fields> byName = new
java.util.HashMap<java.lang.String, _Fields>();
@@ -86,6 +89,8 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
return OPTIONAL_SEGMENTS;
case 7: // CID
return CID;
+ case 8: // TABLE_SEGMENTS_INFO_LIST
+ return TABLE_SEGMENTS_INFO_LIST;
default:
return null;
}
@@ -132,7 +137,7 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
private static final int __REQUESTID_ISSET_ID = 0;
private static final int __ENABLETRACE_ISSET_ID = 1;
private byte __isset_bitfield = 0;
- private static final _Fields optionals[] =
{_Fields.SEARCH_SEGMENTS,_Fields.ENABLE_TRACE,_Fields.BROKER_ID,_Fields.OPTIONAL_SEGMENTS,_Fields.CID};
+ private static final _Fields optionals[] =
{_Fields.SEARCH_SEGMENTS,_Fields.ENABLE_TRACE,_Fields.BROKER_ID,_Fields.OPTIONAL_SEGMENTS,_Fields.CID,_Fields.TABLE_SEGMENTS_INFO_LIST};
public static final java.util.Map<_Fields,
org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
static {
java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap =
new java.util.EnumMap<_Fields,
org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -152,6 +157,9 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
new
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
tmpMap.put(_Fields.CID, new
org.apache.thrift.meta_data.FieldMetaData("cid",
org.apache.thrift.TFieldRequirementType.OPTIONAL,
new
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.TABLE_SEGMENTS_INFO_LIST, new
org.apache.thrift.meta_data.FieldMetaData("tableSegmentsInfoList",
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+ new
org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT,
TableSegmentsInfo.class))));
metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InstanceRequest.class,
metaDataMap);
}
@@ -193,6 +201,13 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
if (other.isSetCid()) {
this.cid = other.cid;
}
+ if (other.isSetTableSegmentsInfoList()) {
+ java.util.List<TableSegmentsInfo> __this__tableSegmentsInfoList = new
java.util.ArrayList<TableSegmentsInfo>(other.tableSegmentsInfoList.size());
+ for (TableSegmentsInfo other_element : other.tableSegmentsInfoList) {
+ __this__tableSegmentsInfoList.add(new
TableSegmentsInfo(other_element));
+ }
+ this.tableSegmentsInfoList = __this__tableSegmentsInfoList;
+ }
}
@Override
@@ -211,6 +226,7 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
this.brokerId = null;
this.optionalSegments = null;
this.cid = null;
+ this.tableSegmentsInfoList = null;
}
public long getRequestId() {
@@ -409,6 +425,46 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
}
}
+ public int getTableSegmentsInfoListSize() {
+ return (this.tableSegmentsInfoList == null) ? 0 :
this.tableSegmentsInfoList.size();
+ }
+
+ @org.apache.thrift.annotation.Nullable
+ public java.util.Iterator<TableSegmentsInfo>
getTableSegmentsInfoListIterator() {
+ return (this.tableSegmentsInfoList == null) ? null :
this.tableSegmentsInfoList.iterator();
+ }
+
+ public void addToTableSegmentsInfoList(TableSegmentsInfo elem) {
+ if (this.tableSegmentsInfoList == null) {
+ this.tableSegmentsInfoList = new
java.util.ArrayList<TableSegmentsInfo>();
+ }
+ this.tableSegmentsInfoList.add(elem);
+ }
+
+ @org.apache.thrift.annotation.Nullable
+ public java.util.List<TableSegmentsInfo> getTableSegmentsInfoList() {
+ return this.tableSegmentsInfoList;
+ }
+
+ public void setTableSegmentsInfoList(@org.apache.thrift.annotation.Nullable
java.util.List<TableSegmentsInfo> tableSegmentsInfoList) {
+ this.tableSegmentsInfoList = tableSegmentsInfoList;
+ }
+
+ public void unsetTableSegmentsInfoList() {
+ this.tableSegmentsInfoList = null;
+ }
+
+ /** Returns true if field tableSegmentsInfoList is set (has been assigned a
value) and false otherwise */
+ public boolean isSetTableSegmentsInfoList() {
+ return this.tableSegmentsInfoList != null;
+ }
+
+ public void setTableSegmentsInfoListIsSet(boolean value) {
+ if (!value) {
+ this.tableSegmentsInfoList = null;
+ }
+ }
+
@Override
public void setFieldValue(_Fields field,
@org.apache.thrift.annotation.Nullable java.lang.Object value) {
switch (field) {
@@ -468,6 +524,14 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
}
break;
+ case TABLE_SEGMENTS_INFO_LIST:
+ if (value == null) {
+ unsetTableSegmentsInfoList();
+ } else {
+ setTableSegmentsInfoList((java.util.List<TableSegmentsInfo>)value);
+ }
+ break;
+
}
}
@@ -496,6 +560,9 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
case CID:
return getCid();
+ case TABLE_SEGMENTS_INFO_LIST:
+ return getTableSegmentsInfoList();
+
}
throw new java.lang.IllegalStateException();
}
@@ -522,6 +589,8 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
return isSetOptionalSegments();
case CID:
return isSetCid();
+ case TABLE_SEGMENTS_INFO_LIST:
+ return isSetTableSegmentsInfoList();
}
throw new java.lang.IllegalStateException();
}
@@ -602,6 +671,15 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
return false;
}
+ boolean this_present_tableSegmentsInfoList = true &&
this.isSetTableSegmentsInfoList();
+ boolean that_present_tableSegmentsInfoList = true &&
that.isSetTableSegmentsInfoList();
+ if (this_present_tableSegmentsInfoList ||
that_present_tableSegmentsInfoList) {
+ if (!(this_present_tableSegmentsInfoList &&
that_present_tableSegmentsInfoList))
+ return false;
+ if (!this.tableSegmentsInfoList.equals(that.tableSegmentsInfoList))
+ return false;
+ }
+
return true;
}
@@ -635,6 +713,10 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
if (isSetCid())
hashCode = hashCode * 8191 + cid.hashCode();
+ hashCode = hashCode * 8191 + ((isSetTableSegmentsInfoList()) ? 131071 :
524287);
+ if (isSetTableSegmentsInfoList())
+ hashCode = hashCode * 8191 + tableSegmentsInfoList.hashCode();
+
return hashCode;
}
@@ -716,6 +798,16 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
return lastComparison;
}
}
+ lastComparison = java.lang.Boolean.compare(isSetTableSegmentsInfoList(),
other.isSetTableSegmentsInfoList());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetTableSegmentsInfoList()) {
+ lastComparison =
org.apache.thrift.TBaseHelper.compareTo(this.tableSegmentsInfoList,
other.tableSegmentsInfoList);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
return 0;
}
@@ -797,6 +889,16 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
}
first = false;
}
+ if (isSetTableSegmentsInfoList()) {
+ if (!first) sb.append(", ");
+ sb.append("tableSegmentsInfoList:");
+ if (this.tableSegmentsInfoList == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.tableSegmentsInfoList);
+ }
+ first = false;
+ }
sb.append(")");
return sb.toString();
}
@@ -875,13 +977,13 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
case 3: // SEARCH_SEGMENTS
if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
{
- org.apache.thrift.protocol.TList _list0 =
iprot.readListBegin();
- struct.searchSegments = new
java.util.ArrayList<java.lang.String>(_list0.size);
- @org.apache.thrift.annotation.Nullable java.lang.String _elem1;
- for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+ org.apache.thrift.protocol.TList _list16 =
iprot.readListBegin();
+ struct.searchSegments = new
java.util.ArrayList<java.lang.String>(_list16.size);
+ @org.apache.thrift.annotation.Nullable java.lang.String
_elem17;
+ for (int _i18 = 0; _i18 < _list16.size; ++_i18)
{
- _elem1 = iprot.readString();
- struct.searchSegments.add(_elem1);
+ _elem17 = iprot.readString();
+ struct.searchSegments.add(_elem17);
}
iprot.readListEnd();
}
@@ -909,13 +1011,13 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
case 6: // OPTIONAL_SEGMENTS
if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
{
- org.apache.thrift.protocol.TList _list3 =
iprot.readListBegin();
- struct.optionalSegments = new
java.util.ArrayList<java.lang.String>(_list3.size);
- @org.apache.thrift.annotation.Nullable java.lang.String _elem4;
- for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+ org.apache.thrift.protocol.TList _list19 =
iprot.readListBegin();
+ struct.optionalSegments = new
java.util.ArrayList<java.lang.String>(_list19.size);
+ @org.apache.thrift.annotation.Nullable java.lang.String
_elem20;
+ for (int _i21 = 0; _i21 < _list19.size; ++_i21)
{
- _elem4 = iprot.readString();
- struct.optionalSegments.add(_elem4);
+ _elem20 = iprot.readString();
+ struct.optionalSegments.add(_elem20);
}
iprot.readListEnd();
}
@@ -932,6 +1034,25 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
schemeField.type);
}
break;
+ case 8: // TABLE_SEGMENTS_INFO_LIST
+ if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+ {
+ org.apache.thrift.protocol.TList _list22 =
iprot.readListBegin();
+ struct.tableSegmentsInfoList = new
java.util.ArrayList<TableSegmentsInfo>(_list22.size);
+ @org.apache.thrift.annotation.Nullable TableSegmentsInfo
_elem23;
+ for (int _i24 = 0; _i24 < _list22.size; ++_i24)
+ {
+ _elem23 = new TableSegmentsInfo();
+ _elem23.read(iprot);
+ struct.tableSegmentsInfoList.add(_elem23);
+ }
+ iprot.readListEnd();
+ }
+ struct.setTableSegmentsInfoListIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
schemeField.type);
+ }
+ break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
schemeField.type);
}
@@ -959,9 +1080,9 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
oprot.writeFieldBegin(SEARCH_SEGMENTS_FIELD_DESC);
{
oprot.writeListBegin(new
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING,
struct.searchSegments.size()));
- for (java.lang.String _iter6 : struct.searchSegments)
+ for (java.lang.String _iter25 : struct.searchSegments)
{
- oprot.writeString(_iter6);
+ oprot.writeString(_iter25);
}
oprot.writeListEnd();
}
@@ -985,9 +1106,9 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
oprot.writeFieldBegin(OPTIONAL_SEGMENTS_FIELD_DESC);
{
oprot.writeListBegin(new
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING,
struct.optionalSegments.size()));
- for (java.lang.String _iter7 : struct.optionalSegments)
+ for (java.lang.String _iter26 : struct.optionalSegments)
{
- oprot.writeString(_iter7);
+ oprot.writeString(_iter26);
}
oprot.writeListEnd();
}
@@ -1001,6 +1122,20 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
oprot.writeFieldEnd();
}
}
+ if (struct.tableSegmentsInfoList != null) {
+ if (struct.isSetTableSegmentsInfoList()) {
+ oprot.writeFieldBegin(TABLE_SEGMENTS_INFO_LIST_FIELD_DESC);
+ {
+ oprot.writeListBegin(new
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT,
struct.tableSegmentsInfoList.size()));
+ for (TableSegmentsInfo _iter27 : struct.tableSegmentsInfoList)
+ {
+ _iter27.write(oprot);
+ }
+ oprot.writeListEnd();
+ }
+ oprot.writeFieldEnd();
+ }
+ }
oprot.writeFieldStop();
oprot.writeStructEnd();
}
@@ -1037,13 +1172,16 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
if (struct.isSetCid()) {
optionals.set(4);
}
- oprot.writeBitSet(optionals, 5);
+ if (struct.isSetTableSegmentsInfoList()) {
+ optionals.set(5);
+ }
+ oprot.writeBitSet(optionals, 6);
if (struct.isSetSearchSegments()) {
{
oprot.writeI32(struct.searchSegments.size());
- for (java.lang.String _iter8 : struct.searchSegments)
+ for (java.lang.String _iter28 : struct.searchSegments)
{
- oprot.writeString(_iter8);
+ oprot.writeString(_iter28);
}
}
}
@@ -1056,15 +1194,24 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
if (struct.isSetOptionalSegments()) {
{
oprot.writeI32(struct.optionalSegments.size());
- for (java.lang.String _iter9 : struct.optionalSegments)
+ for (java.lang.String _iter29 : struct.optionalSegments)
{
- oprot.writeString(_iter9);
+ oprot.writeString(_iter29);
}
}
}
if (struct.isSetCid()) {
oprot.writeString(struct.cid);
}
+ if (struct.isSetTableSegmentsInfoList()) {
+ {
+ oprot.writeI32(struct.tableSegmentsInfoList.size());
+ for (TableSegmentsInfo _iter30 : struct.tableSegmentsInfoList)
+ {
+ _iter30.write(oprot);
+ }
+ }
+ }
}
@Override
@@ -1075,16 +1222,16 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
struct.query = new BrokerRequest();
struct.query.read(iprot);
struct.setQueryIsSet(true);
- java.util.BitSet incoming = iprot.readBitSet(5);
+ java.util.BitSet incoming = iprot.readBitSet(6);
if (incoming.get(0)) {
{
- org.apache.thrift.protocol.TList _list10 =
iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
- struct.searchSegments = new
java.util.ArrayList<java.lang.String>(_list10.size);
- @org.apache.thrift.annotation.Nullable java.lang.String _elem11;
- for (int _i12 = 0; _i12 < _list10.size; ++_i12)
+ org.apache.thrift.protocol.TList _list31 =
iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
+ struct.searchSegments = new
java.util.ArrayList<java.lang.String>(_list31.size);
+ @org.apache.thrift.annotation.Nullable java.lang.String _elem32;
+ for (int _i33 = 0; _i33 < _list31.size; ++_i33)
{
- _elem11 = iprot.readString();
- struct.searchSegments.add(_elem11);
+ _elem32 = iprot.readString();
+ struct.searchSegments.add(_elem32);
}
}
struct.setSearchSegmentsIsSet(true);
@@ -1099,13 +1246,13 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
}
if (incoming.get(3)) {
{
- org.apache.thrift.protocol.TList _list13 =
iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
- struct.optionalSegments = new
java.util.ArrayList<java.lang.String>(_list13.size);
- @org.apache.thrift.annotation.Nullable java.lang.String _elem14;
- for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+ org.apache.thrift.protocol.TList _list34 =
iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
+ struct.optionalSegments = new
java.util.ArrayList<java.lang.String>(_list34.size);
+ @org.apache.thrift.annotation.Nullable java.lang.String _elem35;
+ for (int _i36 = 0; _i36 < _list34.size; ++_i36)
{
- _elem14 = iprot.readString();
- struct.optionalSegments.add(_elem14);
+ _elem35 = iprot.readString();
+ struct.optionalSegments.add(_elem35);
}
}
struct.setOptionalSegmentsIsSet(true);
@@ -1114,6 +1261,20 @@ public class InstanceRequest implements
org.apache.thrift.TBase<InstanceRequest,
struct.cid = iprot.readString();
struct.setCidIsSet(true);
}
+ if (incoming.get(5)) {
+ {
+ org.apache.thrift.protocol.TList _list37 =
iprot.readListBegin(org.apache.thrift.protocol.TType.STRUCT);
+ struct.tableSegmentsInfoList = new
java.util.ArrayList<TableSegmentsInfo>(_list37.size);
+ @org.apache.thrift.annotation.Nullable TableSegmentsInfo _elem38;
+ for (int _i39 = 0; _i39 < _list37.size; ++_i39)
+ {
+ _elem38 = new TableSegmentsInfo();
+ _elem38.read(iprot);
+ struct.tableSegmentsInfoList.add(_elem38);
+ }
+ }
+ struct.setTableSegmentsInfoListIsSet(true);
+ }
}
}
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/Join.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/Join.java
index 43c22610ab..08559cb92d 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/request/Join.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/request/Join.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class Join implements org.apache.thrift.TBase<Join, Join._Fields>,
java.io.Serializable, Cloneable, Comparable<Join> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("Join");
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/JoinType.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/JoinType.java
index 10f2e73c3b..a4ce68ce16 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/request/JoinType.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/request/JoinType.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public enum JoinType implements org.apache.thrift.TEnum {
INNER(0),
LEFT(1),
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/Literal.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/Literal.java
index bd350c2d99..ca15bb5f87 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/request/Literal.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/request/Literal.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class Literal extends org.apache.thrift.TUnion<Literal,
Literal._Fields> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("Literal");
private static final org.apache.thrift.protocol.TField BOOL_VALUE_FIELD_DESC
= new org.apache.thrift.protocol.TField("boolValue",
org.apache.thrift.protocol.TType.BOOL, (short)1);
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/PinotQuery.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/PinotQuery.java
index a0802d47d5..5b3d79f076 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/request/PinotQuery.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/request/PinotQuery.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class PinotQuery implements org.apache.thrift.TBase<PinotQuery,
PinotQuery._Fields>, java.io.Serializable, Cloneable, Comparable<PinotQuery> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("PinotQuery");
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/QuerySource.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/QuerySource.java
index e9061552b4..f675591b1b 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/request/QuerySource.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/request/QuerySource.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -25,7 +25,7 @@
package org.apache.pinot.common.request;
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class QuerySource implements org.apache.thrift.TBase<QuerySource,
QuerySource._Fields>, java.io.Serializable, Cloneable, Comparable<QuerySource> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("QuerySource");
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/request/TableSegmentsInfo.java
b/pinot-common/src/main/java/org/apache/pinot/common/request/TableSegmentsInfo.java
new file mode 100644
index 0000000000..8e4b37891d
--- /dev/null
+++
b/pinot-common/src/main/java/org/apache/pinot/common/request/TableSegmentsInfo.java
@@ -0,0 +1,708 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * Autogenerated by Thrift Compiler (0.21.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ * @generated
+ */
+package org.apache.pinot.common.request;
+
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
+public class TableSegmentsInfo implements
org.apache.thrift.TBase<TableSegmentsInfo, TableSegmentsInfo._Fields>,
java.io.Serializable, Cloneable, Comparable<TableSegmentsInfo> {
+ private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("TableSegmentsInfo");
+
+ private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC
= new org.apache.thrift.protocol.TField("tableName",
org.apache.thrift.protocol.TType.STRING, (short)1);
+ private static final org.apache.thrift.protocol.TField SEGMENTS_FIELD_DESC =
new org.apache.thrift.protocol.TField("segments",
org.apache.thrift.protocol.TType.LIST, (short)2);
+ private static final org.apache.thrift.protocol.TField
OPTIONAL_SEGMENTS_FIELD_DESC = new
org.apache.thrift.protocol.TField("optionalSegments",
org.apache.thrift.protocol.TType.LIST, (short)3);
+
+ private static final org.apache.thrift.scheme.SchemeFactory
STANDARD_SCHEME_FACTORY = new TableSegmentsInfoStandardSchemeFactory();
+ private static final org.apache.thrift.scheme.SchemeFactory
TUPLE_SCHEME_FACTORY = new TableSegmentsInfoTupleSchemeFactory();
+
+ private @org.apache.thrift.annotation.Nullable java.lang.String tableName;
// required
+ private @org.apache.thrift.annotation.Nullable
java.util.List<java.lang.String> segments; // required
+ private @org.apache.thrift.annotation.Nullable
java.util.List<java.lang.String> optionalSegments; // optional
+
+ /** The set of fields this struct contains, along with convenience methods
for finding and manipulating them. */
+ public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+ TABLE_NAME((short)1, "tableName"),
+ SEGMENTS((short)2, "segments"),
+ OPTIONAL_SEGMENTS((short)3, "optionalSegments");
+
+ private static final java.util.Map<java.lang.String, _Fields> byName = new
java.util.HashMap<java.lang.String, _Fields>();
+
+ static {
+ for (_Fields field : java.util.EnumSet.allOf(_Fields.class)) {
+ byName.put(field.getFieldName(), field);
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, or null if its not
found.
+ */
+ @org.apache.thrift.annotation.Nullable
+ public static _Fields findByThriftId(int fieldId) {
+ switch(fieldId) {
+ case 1: // TABLE_NAME
+ return TABLE_NAME;
+ case 2: // SEGMENTS
+ return SEGMENTS;
+ case 3: // OPTIONAL_SEGMENTS
+ return OPTIONAL_SEGMENTS;
+ default:
+ return null;
+ }
+ }
+
+ /**
+ * Find the _Fields constant that matches fieldId, throwing an exception
+ * if it is not found.
+ */
+ public static _Fields findByThriftIdOrThrow(int fieldId) {
+ _Fields fields = findByThriftId(fieldId);
+ if (fields == null) throw new java.lang.IllegalArgumentException("Field
" + fieldId + " doesn't exist!");
+ return fields;
+ }
+
+ /**
+ * Find the _Fields constant that matches name, or null if its not found.
+ */
+ @org.apache.thrift.annotation.Nullable
+ public static _Fields findByName(java.lang.String name) {
+ return byName.get(name);
+ }
+
+ private final short _thriftId;
+ private final java.lang.String _fieldName;
+
+ _Fields(short thriftId, java.lang.String fieldName) {
+ _thriftId = thriftId;
+ _fieldName = fieldName;
+ }
+
+ @Override
+ public short getThriftFieldId() {
+ return _thriftId;
+ }
+
+ @Override
+ public java.lang.String getFieldName() {
+ return _fieldName;
+ }
+ }
+
+ // isset id assignments
+ private static final _Fields optionals[] = {_Fields.OPTIONAL_SEGMENTS};
+ public static final java.util.Map<_Fields,
org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+ static {
+ java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap =
new java.util.EnumMap<_Fields,
org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+ tmpMap.put(_Fields.TABLE_NAME, new
org.apache.thrift.meta_data.FieldMetaData("tableName",
org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+ tmpMap.put(_Fields.SEGMENTS, new
org.apache.thrift.meta_data.FieldMetaData("segments",
org.apache.thrift.TFieldRequirementType.REQUIRED,
+ new
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+ new
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+ tmpMap.put(_Fields.OPTIONAL_SEGMENTS, new
org.apache.thrift.meta_data.FieldMetaData("optionalSegments",
org.apache.thrift.TFieldRequirementType.OPTIONAL,
+ new
org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
+ new
org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
+ metaDataMap = java.util.Collections.unmodifiableMap(tmpMap);
+
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(TableSegmentsInfo.class,
metaDataMap);
+ }
+
+ public TableSegmentsInfo() {
+ }
+
+ public TableSegmentsInfo(
+ java.lang.String tableName,
+ java.util.List<java.lang.String> segments)
+ {
+ this();
+ this.tableName = tableName;
+ this.segments = segments;
+ }
+
+ /**
+ * Performs a deep copy on <i>other</i>.
+ */
+ public TableSegmentsInfo(TableSegmentsInfo other) {
+ if (other.isSetTableName()) {
+ this.tableName = other.tableName;
+ }
+ if (other.isSetSegments()) {
+ java.util.List<java.lang.String> __this__segments = new
java.util.ArrayList<java.lang.String>(other.segments);
+ this.segments = __this__segments;
+ }
+ if (other.isSetOptionalSegments()) {
+ java.util.List<java.lang.String> __this__optionalSegments = new
java.util.ArrayList<java.lang.String>(other.optionalSegments);
+ this.optionalSegments = __this__optionalSegments;
+ }
+ }
+
+ @Override
+ public TableSegmentsInfo deepCopy() {
+ return new TableSegmentsInfo(this);
+ }
+
+ @Override
+ public void clear() {
+ this.tableName = null;
+ this.segments = null;
+ this.optionalSegments = null;
+ }
+
+ @org.apache.thrift.annotation.Nullable
+ public java.lang.String getTableName() {
+ return this.tableName;
+ }
+
+ public void setTableName(@org.apache.thrift.annotation.Nullable
java.lang.String tableName) {
+ this.tableName = tableName;
+ }
+
+ public void unsetTableName() {
+ this.tableName = null;
+ }
+
+ /** Returns true if field tableName is set (has been assigned a value) and
false otherwise */
+ public boolean isSetTableName() {
+ return this.tableName != null;
+ }
+
+ public void setTableNameIsSet(boolean value) {
+ if (!value) {
+ this.tableName = null;
+ }
+ }
+
+ public int getSegmentsSize() {
+ return (this.segments == null) ? 0 : this.segments.size();
+ }
+
+ @org.apache.thrift.annotation.Nullable
+ public java.util.Iterator<java.lang.String> getSegmentsIterator() {
+ return (this.segments == null) ? null : this.segments.iterator();
+ }
+
+ public void addToSegments(java.lang.String elem) {
+ if (this.segments == null) {
+ this.segments = new java.util.ArrayList<java.lang.String>();
+ }
+ this.segments.add(elem);
+ }
+
+ @org.apache.thrift.annotation.Nullable
+ public java.util.List<java.lang.String> getSegments() {
+ return this.segments;
+ }
+
+ public void setSegments(@org.apache.thrift.annotation.Nullable
java.util.List<java.lang.String> segments) {
+ this.segments = segments;
+ }
+
+ public void unsetSegments() {
+ this.segments = null;
+ }
+
+ /** Returns true if field segments is set (has been assigned a value) and
false otherwise */
+ public boolean isSetSegments() {
+ return this.segments != null;
+ }
+
+ public void setSegmentsIsSet(boolean value) {
+ if (!value) {
+ this.segments = null;
+ }
+ }
+
+ public int getOptionalSegmentsSize() {
+ return (this.optionalSegments == null) ? 0 : this.optionalSegments.size();
+ }
+
+ @org.apache.thrift.annotation.Nullable
+ public java.util.Iterator<java.lang.String> getOptionalSegmentsIterator() {
+ return (this.optionalSegments == null) ? null :
this.optionalSegments.iterator();
+ }
+
+ public void addToOptionalSegments(java.lang.String elem) {
+ if (this.optionalSegments == null) {
+ this.optionalSegments = new java.util.ArrayList<java.lang.String>();
+ }
+ this.optionalSegments.add(elem);
+ }
+
+ @org.apache.thrift.annotation.Nullable
+ public java.util.List<java.lang.String> getOptionalSegments() {
+ return this.optionalSegments;
+ }
+
+ public void setOptionalSegments(@org.apache.thrift.annotation.Nullable
java.util.List<java.lang.String> optionalSegments) {
+ this.optionalSegments = optionalSegments;
+ }
+
+ public void unsetOptionalSegments() {
+ this.optionalSegments = null;
+ }
+
+ /** Returns true if field optionalSegments is set (has been assigned a
value) and false otherwise */
+ public boolean isSetOptionalSegments() {
+ return this.optionalSegments != null;
+ }
+
+ public void setOptionalSegmentsIsSet(boolean value) {
+ if (!value) {
+ this.optionalSegments = null;
+ }
+ }
+
+ @Override
+ public void setFieldValue(_Fields field,
@org.apache.thrift.annotation.Nullable java.lang.Object value) {
+ switch (field) {
+ case TABLE_NAME:
+ if (value == null) {
+ unsetTableName();
+ } else {
+ setTableName((java.lang.String)value);
+ }
+ break;
+
+ case SEGMENTS:
+ if (value == null) {
+ unsetSegments();
+ } else {
+ setSegments((java.util.List<java.lang.String>)value);
+ }
+ break;
+
+ case OPTIONAL_SEGMENTS:
+ if (value == null) {
+ unsetOptionalSegments();
+ } else {
+ setOptionalSegments((java.util.List<java.lang.String>)value);
+ }
+ break;
+
+ }
+ }
+
+ @org.apache.thrift.annotation.Nullable
+ @Override
+ public java.lang.Object getFieldValue(_Fields field) {
+ switch (field) {
+ case TABLE_NAME:
+ return getTableName();
+
+ case SEGMENTS:
+ return getSegments();
+
+ case OPTIONAL_SEGMENTS:
+ return getOptionalSegments();
+
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ /** Returns true if field corresponding to fieldID is set (has been assigned
a value) and false otherwise */
+ @Override
+ public boolean isSet(_Fields field) {
+ if (field == null) {
+ throw new java.lang.IllegalArgumentException();
+ }
+
+ switch (field) {
+ case TABLE_NAME:
+ return isSetTableName();
+ case SEGMENTS:
+ return isSetSegments();
+ case OPTIONAL_SEGMENTS:
+ return isSetOptionalSegments();
+ }
+ throw new java.lang.IllegalStateException();
+ }
+
+ @Override
+ public boolean equals(java.lang.Object that) {
+ if (that instanceof TableSegmentsInfo)
+ return this.equals((TableSegmentsInfo)that);
+ return false;
+ }
+
+ public boolean equals(TableSegmentsInfo that) {
+ if (that == null)
+ return false;
+ if (this == that)
+ return true;
+
+ boolean this_present_tableName = true && this.isSetTableName();
+ boolean that_present_tableName = true && that.isSetTableName();
+ if (this_present_tableName || that_present_tableName) {
+ if (!(this_present_tableName && that_present_tableName))
+ return false;
+ if (!this.tableName.equals(that.tableName))
+ return false;
+ }
+
+ boolean this_present_segments = true && this.isSetSegments();
+ boolean that_present_segments = true && that.isSetSegments();
+ if (this_present_segments || that_present_segments) {
+ if (!(this_present_segments && that_present_segments))
+ return false;
+ if (!this.segments.equals(that.segments))
+ return false;
+ }
+
+ boolean this_present_optionalSegments = true &&
this.isSetOptionalSegments();
+ boolean that_present_optionalSegments = true &&
that.isSetOptionalSegments();
+ if (this_present_optionalSegments || that_present_optionalSegments) {
+ if (!(this_present_optionalSegments && that_present_optionalSegments))
+ return false;
+ if (!this.optionalSegments.equals(that.optionalSegments))
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hashCode = 1;
+
+ hashCode = hashCode * 8191 + ((isSetTableName()) ? 131071 : 524287);
+ if (isSetTableName())
+ hashCode = hashCode * 8191 + tableName.hashCode();
+
+ hashCode = hashCode * 8191 + ((isSetSegments()) ? 131071 : 524287);
+ if (isSetSegments())
+ hashCode = hashCode * 8191 + segments.hashCode();
+
+ hashCode = hashCode * 8191 + ((isSetOptionalSegments()) ? 131071 : 524287);
+ if (isSetOptionalSegments())
+ hashCode = hashCode * 8191 + optionalSegments.hashCode();
+
+ return hashCode;
+ }
+
+ @Override
+ public int compareTo(TableSegmentsInfo other) {
+ if (!getClass().equals(other.getClass())) {
+ return getClass().getName().compareTo(other.getClass().getName());
+ }
+
+ int lastComparison = 0;
+
+ lastComparison = java.lang.Boolean.compare(isSetTableName(),
other.isSetTableName());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetTableName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.tableName,
other.tableName);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = java.lang.Boolean.compare(isSetSegments(),
other.isSetSegments());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetSegments()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.segments,
other.segments);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ lastComparison = java.lang.Boolean.compare(isSetOptionalSegments(),
other.isSetOptionalSegments());
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ if (isSetOptionalSegments()) {
+ lastComparison =
org.apache.thrift.TBaseHelper.compareTo(this.optionalSegments,
other.optionalSegments);
+ if (lastComparison != 0) {
+ return lastComparison;
+ }
+ }
+ return 0;
+ }
+
+ @org.apache.thrift.annotation.Nullable
+ @Override
+ public _Fields fieldForId(int fieldId) {
+ return _Fields.findByThriftId(fieldId);
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol iprot) throws
org.apache.thrift.TException {
+ scheme(iprot).read(iprot, this);
+ }
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol oprot) throws
org.apache.thrift.TException {
+ scheme(oprot).write(oprot, this);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ java.lang.StringBuilder sb = new
java.lang.StringBuilder("TableSegmentsInfo(");
+ boolean first = true;
+
+ sb.append("tableName:");
+ if (this.tableName == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.tableName);
+ }
+ first = false;
+ if (!first) sb.append(", ");
+ sb.append("segments:");
+ if (this.segments == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.segments);
+ }
+ first = false;
+ if (isSetOptionalSegments()) {
+ if (!first) sb.append(", ");
+ sb.append("optionalSegments:");
+ if (this.optionalSegments == null) {
+ sb.append("null");
+ } else {
+ sb.append(this.optionalSegments);
+ }
+ first = false;
+ }
+ sb.append(")");
+ return sb.toString();
+ }
+
+ public void validate() throws org.apache.thrift.TException {
+ // check for required fields
+ if (!isSetTableName()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field
'tableName' is unset! Struct:" + toString());
+ }
+
+ if (!isSetSegments()) {
+ throw new org.apache.thrift.protocol.TProtocolException("Required field
'segments' is unset! Struct:" + toString());
+ }
+
+ // check for sub-struct validity
+ }
+
+ private void writeObject(java.io.ObjectOutputStream out) throws
java.io.IOException {
+ try {
+ write(new org.apache.thrift.protocol.TCompactProtocol(new
org.apache.thrift.transport.TIOStreamTransport(out)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private void readObject(java.io.ObjectInputStream in) throws
java.io.IOException, java.lang.ClassNotFoundException {
+ try {
+ read(new org.apache.thrift.protocol.TCompactProtocol(new
org.apache.thrift.transport.TIOStreamTransport(in)));
+ } catch (org.apache.thrift.TException te) {
+ throw new java.io.IOException(te);
+ }
+ }
+
+ private static class TableSegmentsInfoStandardSchemeFactory implements
org.apache.thrift.scheme.SchemeFactory {
+ @Override
+ public TableSegmentsInfoStandardScheme getScheme() {
+ return new TableSegmentsInfoStandardScheme();
+ }
+ }
+
+ private static class TableSegmentsInfoStandardScheme extends
org.apache.thrift.scheme.StandardScheme<TableSegmentsInfo> {
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol iprot,
TableSegmentsInfo struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TField schemeField;
+ iprot.readStructBegin();
+ while (true)
+ {
+ schemeField = iprot.readFieldBegin();
+ if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
+ break;
+ }
+ switch (schemeField.id) {
+ case 1: // TABLE_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.tableName = iprot.readString();
+ struct.setTableNameIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
schemeField.type);
+ }
+ break;
+ case 2: // SEGMENTS
+ if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+ {
+ org.apache.thrift.protocol.TList _list0 =
iprot.readListBegin();
+ struct.segments = new
java.util.ArrayList<java.lang.String>(_list0.size);
+ @org.apache.thrift.annotation.Nullable java.lang.String _elem1;
+ for (int _i2 = 0; _i2 < _list0.size; ++_i2)
+ {
+ _elem1 = iprot.readString();
+ struct.segments.add(_elem1);
+ }
+ iprot.readListEnd();
+ }
+ struct.setSegmentsIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
schemeField.type);
+ }
+ break;
+ case 3: // OPTIONAL_SEGMENTS
+ if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+ {
+ org.apache.thrift.protocol.TList _list3 =
iprot.readListBegin();
+ struct.optionalSegments = new
java.util.ArrayList<java.lang.String>(_list3.size);
+ @org.apache.thrift.annotation.Nullable java.lang.String _elem4;
+ for (int _i5 = 0; _i5 < _list3.size; ++_i5)
+ {
+ _elem4 = iprot.readString();
+ struct.optionalSegments.add(_elem4);
+ }
+ iprot.readListEnd();
+ }
+ struct.setOptionalSegmentsIsSet(true);
+ } else {
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
schemeField.type);
+ }
+ break;
+ default:
+ org.apache.thrift.protocol.TProtocolUtil.skip(iprot,
schemeField.type);
+ }
+ iprot.readFieldEnd();
+ }
+ iprot.readStructEnd();
+ struct.validate();
+ }
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol oprot,
TableSegmentsInfo struct) throws org.apache.thrift.TException {
+ struct.validate();
+
+ oprot.writeStructBegin(STRUCT_DESC);
+ if (struct.tableName != null) {
+ oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC);
+ oprot.writeString(struct.tableName);
+ oprot.writeFieldEnd();
+ }
+ if (struct.segments != null) {
+ oprot.writeFieldBegin(SEGMENTS_FIELD_DESC);
+ {
+ oprot.writeListBegin(new
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING,
struct.segments.size()));
+ for (java.lang.String _iter6 : struct.segments)
+ {
+ oprot.writeString(_iter6);
+ }
+ oprot.writeListEnd();
+ }
+ oprot.writeFieldEnd();
+ }
+ if (struct.optionalSegments != null) {
+ if (struct.isSetOptionalSegments()) {
+ oprot.writeFieldBegin(OPTIONAL_SEGMENTS_FIELD_DESC);
+ {
+ oprot.writeListBegin(new
org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING,
struct.optionalSegments.size()));
+ for (java.lang.String _iter7 : struct.optionalSegments)
+ {
+ oprot.writeString(_iter7);
+ }
+ oprot.writeListEnd();
+ }
+ oprot.writeFieldEnd();
+ }
+ }
+ oprot.writeFieldStop();
+ oprot.writeStructEnd();
+ }
+
+ }
+
+ private static class TableSegmentsInfoTupleSchemeFactory implements
org.apache.thrift.scheme.SchemeFactory {
+ @Override
+ public TableSegmentsInfoTupleScheme getScheme() {
+ return new TableSegmentsInfoTupleScheme();
+ }
+ }
+
+ private static class TableSegmentsInfoTupleScheme extends
org.apache.thrift.scheme.TupleScheme<TableSegmentsInfo> {
+
+ @Override
+ public void write(org.apache.thrift.protocol.TProtocol prot,
TableSegmentsInfo struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol oprot =
(org.apache.thrift.protocol.TTupleProtocol) prot;
+ oprot.writeString(struct.tableName);
+ {
+ oprot.writeI32(struct.segments.size());
+ for (java.lang.String _iter8 : struct.segments)
+ {
+ oprot.writeString(_iter8);
+ }
+ }
+ java.util.BitSet optionals = new java.util.BitSet();
+ if (struct.isSetOptionalSegments()) {
+ optionals.set(0);
+ }
+ oprot.writeBitSet(optionals, 1);
+ if (struct.isSetOptionalSegments()) {
+ {
+ oprot.writeI32(struct.optionalSegments.size());
+ for (java.lang.String _iter9 : struct.optionalSegments)
+ {
+ oprot.writeString(_iter9);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void read(org.apache.thrift.protocol.TProtocol prot,
TableSegmentsInfo struct) throws org.apache.thrift.TException {
+ org.apache.thrift.protocol.TTupleProtocol iprot =
(org.apache.thrift.protocol.TTupleProtocol) prot;
+ struct.tableName = iprot.readString();
+ struct.setTableNameIsSet(true);
+ {
+ org.apache.thrift.protocol.TList _list10 =
iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
+ struct.segments = new
java.util.ArrayList<java.lang.String>(_list10.size);
+ @org.apache.thrift.annotation.Nullable java.lang.String _elem11;
+ for (int _i12 = 0; _i12 < _list10.size; ++_i12)
+ {
+ _elem11 = iprot.readString();
+ struct.segments.add(_elem11);
+ }
+ }
+ struct.setSegmentsIsSet(true);
+ java.util.BitSet incoming = iprot.readBitSet(1);
+ if (incoming.get(0)) {
+ {
+ org.apache.thrift.protocol.TList _list13 =
iprot.readListBegin(org.apache.thrift.protocol.TType.STRING);
+ struct.optionalSegments = new
java.util.ArrayList<java.lang.String>(_list13.size);
+ @org.apache.thrift.annotation.Nullable java.lang.String _elem14;
+ for (int _i15 = 0; _i15 < _list13.size; ++_i15)
+ {
+ _elem14 = iprot.readString();
+ struct.optionalSegments.add(_elem14);
+ }
+ }
+ struct.setOptionalSegmentsIsSet(true);
+ }
+ }
+ }
+
+ private static <S extends org.apache.thrift.scheme.IScheme> S
scheme(org.apache.thrift.protocol.TProtocol proto) {
+ return
(org.apache.thrift.scheme.StandardScheme.class.equals(proto.getScheme()) ?
STANDARD_SCHEME_FACTORY : TUPLE_SCHEME_FACTORY).getScheme();
+ }
+}
+
diff --git
a/pinot-common/src/main/java/org/apache/pinot/common/response/ProcessingException.java
b/pinot-common/src/main/java/org/apache/pinot/common/response/ProcessingException.java
index 3f47c6c4b4..5a0c018e63 100644
---
a/pinot-common/src/main/java/org/apache/pinot/common/response/ProcessingException.java
+++
b/pinot-common/src/main/java/org/apache/pinot/common/response/ProcessingException.java
@@ -17,7 +17,7 @@
* under the License.
*/
/**
- * Autogenerated by Thrift Compiler (0.19.0)
+ * Autogenerated by Thrift Compiler (0.21.0)
*
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
* @generated
@@ -29,7 +29,7 @@ package org.apache.pinot.common.response;
*
*/
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked", "unused"})
[email protected](value = "Autogenerated by Thrift Compiler
(0.19.0)", date = "2025-03-03")
[email protected](value = "Autogenerated by Thrift Compiler
(0.21.0)", date = "2025-04-16")
public class ProcessingException extends org.apache.thrift.TException
implements org.apache.thrift.TBase<ProcessingException,
ProcessingException._Fields>, java.io.Serializable, Cloneable,
Comparable<ProcessingException> {
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new
org.apache.thrift.protocol.TStruct("ProcessingException");
diff --git a/pinot-common/src/main/proto/server.proto
b/pinot-common/src/main/proto/server.proto
index 7781d6f96e..17bfcef916 100644
--- a/pinot-common/src/main/proto/server.proto
+++ b/pinot-common/src/main/proto/server.proto
@@ -25,11 +25,19 @@ service PinotQueryServer {
rpc Submit(ServerRequest) returns (stream ServerResponse);
}
+message TableSegmentsInfo {
+ string tableName = 1;
+ repeated string segments = 2;
+ repeated string optionalSegments = 3;
+}
+
message ServerRequest {
map<string, string> metadata = 1;
string sql = 2;
repeated string segments = 3;
bytes payload = 4;
+ repeated string optionalSegments = 5;
+ repeated TableSegmentsInfo tableSegmentsInfo = 6;
}
message ServerResponse {
diff --git a/pinot-common/src/thrift/request.thrift
b/pinot-common/src/thrift/request.thrift
index 73a0334757..c213467744 100644
--- a/pinot-common/src/thrift/request.thrift
+++ b/pinot-common/src/thrift/request.thrift
@@ -45,6 +45,12 @@ struct BrokerRequest {
// 19: optional i32 limit = 0;
}
+struct TableSegmentsInfo {
+ 1: required string tableName;
+ 2: required list<string> segments;
+ 3: optional list<string> optionalSegments;
+}
+
struct InstanceRequest {
1: required i64 requestId;
2: required BrokerRequest query;
@@ -53,4 +59,5 @@ struct InstanceRequest {
5: optional string brokerId;
6: optional list<string> optionalSegments;
7: optional string cid;
+ 8: optional list<TableSegmentsInfo> tableSegmentsInfoList;
}
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/request/ServerQueryRequest.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/request/ServerQueryRequest.java
index c45a4c2cd2..b42fe241f0 100644
---
a/pinot-core/src/main/java/org/apache/pinot/core/query/request/ServerQueryRequest.java
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/request/ServerQueryRequest.java
@@ -18,14 +18,18 @@
*/
package org.apache.pinot.core.query.request;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nullable;
import org.apache.pinot.common.metrics.ServerMetrics;
import org.apache.pinot.common.proto.Server;
import org.apache.pinot.common.request.BrokerRequest;
import org.apache.pinot.common.request.InstanceRequest;
import org.apache.pinot.common.request.PinotQuery;
+import org.apache.pinot.common.request.TableSegmentsInfo;
import org.apache.pinot.core.query.request.context.QueryContext;
+import org.apache.pinot.core.query.request.context.TableSegmentsContext;
import org.apache.pinot.core.query.request.context.TimerContext;
import
org.apache.pinot.core.query.request.context.utils.QueryContextConverterUtils;
import org.apache.pinot.core.query.utils.QueryIdUtils;
@@ -54,6 +58,7 @@ public class ServerQueryRequest {
private final boolean _enableStreaming;
private final List<String> _segmentsToQuery;
private final List<String> _optionalSegments;
+ private final List<TableSegmentsContext> _tableSegmentsContexts;
private final QueryContext _queryContext;
// Request id might not be unique across brokers or for request hitting a
hybrid table. To solve that we may construct
@@ -86,6 +91,16 @@ public class ServerQueryRequest {
_queryId = QueryIdUtils.getQueryId(_brokerId, _requestId,
TableNameBuilder.getTableTypeFromTableName(_queryContext.getTableName()));
_timerContext = new TimerContext(_queryContext.getTableName(),
serverMetrics, queryArrivalTimeMs);
+ if (instanceRequest.getTableSegmentsInfoListSize() > 0) {
+ _tableSegmentsContexts = new
ArrayList<>(instanceRequest.getTableSegmentsInfoListSize());
+ for (TableSegmentsInfo tableSegmentsInfo :
instanceRequest.getTableSegmentsInfoList()) {
+ _tableSegmentsContexts.add(
+ new TableSegmentsContext(tableSegmentsInfo.getTableName(),
tableSegmentsInfo.getSegments(),
+ tableSegmentsInfo.getOptionalSegments()));
+ }
+ } else {
+ _tableSegmentsContexts = null;
+ }
}
/**
@@ -125,6 +140,17 @@ public class ServerQueryRequest {
_queryId = QueryIdUtils.getQueryId(_brokerId, _requestId,
TableNameBuilder.getTableTypeFromTableName(_queryContext.getTableName()));
_timerContext = new TimerContext(_queryContext.getTableName(),
serverMetrics, queryArrivalTimeMs);
+ if (serverRequest.getTableSegmentsInfoCount() > 0) {
+ _tableSegmentsContexts = new
ArrayList<>(serverRequest.getTableSegmentsInfoCount());
+ for (org.apache.pinot.common.proto.Server.TableSegmentsInfo
tableSegmentsInfo
+ : serverRequest.getTableSegmentsInfoList()) {
+ _tableSegmentsContexts.add(
+ new TableSegmentsContext(tableSegmentsInfo.getTableName(),
tableSegmentsInfo.getSegmentsList(),
+ tableSegmentsInfo.getOptionalSegmentsList()));
+ }
+ } else {
+ _tableSegmentsContexts = null;
+ }
}
/**
@@ -148,6 +174,7 @@ public class ServerQueryRequest {
_optionalSegments = null;
_timerContext = new TimerContext(_queryContext.getTableName(),
serverMetrics, queryArrivalTimeMs);
+ _tableSegmentsContexts = null;
}
private static QueryContext getQueryContext(PinotQuery pinotQuery) {
@@ -182,6 +209,11 @@ public class ServerQueryRequest {
return _optionalSegments;
}
+ @Nullable
+ public List<TableSegmentsContext> getTableSegmentsContexts() {
+ return _tableSegmentsContexts;
+ }
+
public QueryContext getQueryContext() {
return _queryContext;
}
diff --git
a/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/TableSegmentsContext.java
b/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/TableSegmentsContext.java
new file mode 100644
index 0000000000..59fe10f3ab
--- /dev/null
+++
b/pinot-core/src/main/java/org/apache/pinot/core/query/request/context/TableSegmentsContext.java
@@ -0,0 +1,46 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.pinot.core.query.request.context;
+
+import java.util.List;
+
+
+public class TableSegmentsContext {
+ private final String _tableName;
+ private final List<String> _segments;
+ private final List<String> _optionalSegments;
+
+ public TableSegmentsContext(String tableName, List<String> segments,
List<String> optionalSegments) {
+ _tableName = tableName;
+ _segments = segments;
+ _optionalSegments = optionalSegments;
+ }
+
+ public String getTableName() {
+ return _tableName;
+ }
+
+ public List<String> getSegments() {
+ return _segments;
+ }
+
+ public List<String> getOptionalSegments() {
+ return _optionalSegments;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]