This is an automated email from the ASF dual-hosted git repository.
xiangfu0 pushed a change to branch xiangfu0/codex1/sorted-exchange-core
in repository https://gitbox.apache.org/repos/asf/pinot.git
omit e66ef07ee41 Preserve partition workers for complete-input window sorts
omit e4db9b59a80 Align stage-equivalence field coverage with receive nodes
omit 3843f0795d1 Remove the extra merge-cursor blank line
omit ba0498c33f7 Keep complete window input when fallback stages use older
servers
omit f12c89c40e7 Complete ordered-window review fixes
omit 8f0b844868e Address ordered-window merge review feedback
omit 192a34790f2 [test] Verify homogeneous snapshot builds disable k-way
merge
omit 069c022bbff Align window input sort plan expectations with complete
input
omit f46c09fa0bb Retain complete input for global window receiver sorts
omit 80ca7ec3e97 [MSE] Express ordered streams with a k-way merge exchange
omit 6ab29db2027 [build] Include Zstd API annotations for compiler
validation
omit 85d19bca2bb [MSE] Use current planner test APIs
omit 712a9c74c2d [MSE] Simplify sorted mailbox merging
omit 7a879e469db [MSE] Speed up four-sender sorted window merge
omit 862715533a5 [MSE] Address sender-sorted window review feedback
omit bae0b0c8283 [MSE] Minimize sender-sorted merge changes
omit de8485d8a86 [MSE] Avoid eager sort buffer allocation
omit 9a42c49a9dc [MSE] Limit sender-sorted merge to global windows
omit d6487b0b501 [MSE] Optimize sorted mailbox merge
omit d107d91460c [MSE] Merge sender-sorted streams for ordered windows
add 91fbab84f5d Move the segment assignment partition column to
SegmentAssignmentConfig (#19958)
add b02a7651269 Fix broker routing ignoring a shutting down server while
another server is excluded (#19997)
add 8f20062cd13 Give the dimension table tests their own temp directory
(#20004)
add 77ec2fbf1cf Fold MSE literal function calls with runtime value types
(#19948)
add af3c64f7eb7 Make sorted ORDER BY late materialization automatic
(#20003)
add 678c8b07a90 Hold the consumer semaphore while a replace reverts upsert
metadata (#19817)
add b3bf808a371 Bump org.eclipse.sisu:sisu-maven-plugin from 1.1.0 to
1.1.1 (#20013)
add b5631229eae Bump org.roaringbitmap:RoaringBitmap from 1.6.24 to 1.6.25
(#20011)
add b047e331c11 Bump io.grpc:grpc-bom from 1.85.0 to 1.85.1 (#20014)
add f57c2285ec2 Validate segment assignment for strict replica-group
routing (#20006)
add b99203c6026 Reuse the outer local repo in the assembly-descriptor IT
and report its real error (#19885)
add f1bdf98e6ea Read Parquet unsigned 32-bit integers as long (#19999)
add 60b13a0640b Treat a segment whose partition function cannot be built
as unpartitioned in broker routing (#19953)
add 230045f26d4 Rewrite arrayContains on multi-value columns into an
indexable EQUALS filter (#20000)
add f290065ed21 Add -outputFormat and -outputFile options to PostQuery CLI
command (#19610)
add 8cf16156a44 Remove the kept new segment when a resumed pauseless
commit start completes without it (#19995)
add adb87d861c8 Avoid redundant local input copies and support Zstandard
batch archives (#19898)
add e106c097f46 Bump software.amazon.awssdk:bom from 2.56.0 to 2.57.0
(#20012)
add dc759c51e66 Support FIRST_WITH_TIME and LAST_WITH_TIME without a data
type (#19986)
add d3893e27874 Parse validationTypesToSkip once and apply it consistently
(#20019)
add ac12baf5be9 Add jsonExtractScalar scalar function for
JSON_EXTRACT_SCALAR (#18979)
add 083f2937380 Meter failed ERROR-segment repairs per table (#20018)
add e3b4e41cb29 Track partition assignment in IdealState for strict
replica-group tables (#19916)
add 62958d8ff1b Throw FileNotFoundException from
GcsPinotFS.copyToLocalFile for a missing object (#20026)
add aea5680a40b Detect servers that stop answering queries but keep their
connection open (#19452)
add c5ac29be0e6 Refresh MSE gRPC channels when a server restarts (#19875)
add ad6b54f7b38 Enable query fingerprinting by default and reload cluster
overrides (#20038)
add bff525d98ea Keep source nulls when deriving a column at segment load
(#19955)
add c5b8107fa6a Return the cause chain when an /ingestFromFile record
fails (#19716)
add efffb312091 Bump org.webjars:swagger-ui from 5.33.2 to 5.34.0 (#20045)
add 332a350000e Bump org.apache.pulsar:pulsar-bom from 5.0.0 to 5.0.1
(#20046)
add 8ab072694fe Bump reactor-netty.version from 1.3.7 to 1.3.8 (#20047)
add 452de38982a Bump com.gradle:develocity-maven-extension from 2.6.0 to
2.6.1 (#20049)
add 531bcd02591 Bump com.github.jnr:jnr-posix from 3.2.4 to 3.2.5 (#20053)
add 93978b69b20 Bump software.amazon.awssdk:bom from 2.57.0 to 2.57.3
(#20050)
add 2fd3001a330 Bump com.github.jnr:jnr-ffi from 2.3.3 to 2.3.4 (#20051)
add 960190cbe91 Bump at.yawk.lz4:lz4-java from 1.12.0 to 1.12.1 (#20052)
add 7e772548357 Bump actions/setup-python from 7.0.0 to 7.1.0 (#20055)
add c051ac7643b Bump docker/login-action from 4.6.0 to 4.7.0 (#20056)
add 9c48dac9d7b Close the posting list stream in OffHeapJsonIndexCreator
(#19925)
add 401528f2cc2 Bump io.projectreactor:reactor-core from 3.8.7 to 3.8.8
(#20054)
add d085f946779 Recover unhealthy MSE workers that are not servers in the
routing manager (#20005)
add 32bc2ee2da7 Prebuild Lucene doc ID mappings from numeric doc values
(#19897)
add 19dec509431 Reject the join distribution types that answer the join
wrong (#19862)
add 9c8b2901d3e Require consecutive readiness checks in the
integration-test base (#20015)
add 7835c7dc378 Support MODE on STRING, BOOLEAN and TIMESTAMP inputs
(#19991)
add b58776bca94 Return the input's logical type from ANY_VALUE (#19990)
add 3381db70831 Support is_leaf_return_final_result hint for aggregation
without GROUP BY (#20063)
add eeebb520118 Preserve wide Parquet INT96 timestamps (#20060)
add 3a83ea5f587 Fix NPE when sorting a no-dictionary sorted column that is
an aggregation key (#20002)
add ee7f50ac767 Retry task deletion when Helix fails to remove the job
context (#20009)
add 52d9c8027b8 Add scoped buffer reads for compressed forward indexes
(#20069)
add fcd05cca42d Fix compiled aggregation inputs after timestamp index
rewrites (#20035)
add e94cf06c161 Update DOAP metadata for Apache Pinot 1.6.0 (#20078)
add c03190564e6 Remove expired plan maker constant aliases (#20079)
add 6e0a0a1b35a Support ARRAY_AGG without a data type (#19988)
add 0de3f5e3ffc Cover ANY_VALUE block reads across all stored types
(#19905)
add 3f6fef49e05 Send v1 DataTable responses to Netty and gRPC as pages
instead of one byte[] (#19943)
add ad97f19f7d6 Bump dnsjava:dnsjava from 3.6.5 to 3.7.0 (#20087)
add c6c5aee5e47 Bump org.jacoco:jacoco-maven-plugin from 0.8.15 to 0.8.16
(#20086)
add 7341df07c8d Preserve live instance fields during controller updates
(#20064)
add 577dc1fd937 Bump com.google.errorprone:error_prone_annotations from
2.50.0 to 2.51.0 (#20048)
add e58b6fc2e6a Fix MSE leaf final results for array and raw sketch
aggregations (#20074)
add c91d0e8378d Fix the shared test query server answering every query
with an error (#20096)
add 20cac709644 Add per-table hybrid retention strategy with cluster-level
fallback (#20057)
add 481d4768b72 Revert "Add per-table hybrid retention strategy with
cluster-level fallback (…" (#20101)
add baf1c493137 [MSE] Merge sender-sorted streams for ordered windows
add 7f360018b3f [MSE] Optimize sorted mailbox merge
add 06223c4a090 [MSE] Limit sender-sorted merge to global windows
add cd200a52a73 [MSE] Avoid eager sort buffer allocation
add 15963008a34 [MSE] Minimize sender-sorted merge changes
add eaae4f9c621 [MSE] Address sender-sorted window review feedback
add 8d222b8cdc2 [MSE] Speed up four-sender sorted window merge
add fd01b62a2f2 [MSE] Simplify sorted mailbox merging
add 9205e896d33 [MSE] Use current planner test APIs
add ead7520cede [build] Include Zstd API annotations for compiler
validation
add 9bc53a4ab67 [MSE] Express ordered streams with a k-way merge exchange
add d5f5d3d766c Retain complete input for global window receiver sorts
add 1cf85058a9a Align window input sort plan expectations with complete
input
add 067bdcb5c75 [test] Verify homogeneous snapshot builds disable k-way
merge
add 3194d04f5b1 Address ordered-window merge review feedback
add f0f839c6b9f Complete ordered-window review fixes
add 810ca14cfde Keep complete window input when fallback stages use older
servers
add e07e184497c Remove the extra merge-cursor blank line
add 80558b56997 Align stage-equivalence field coverage with receive nodes
add be31a33d114 Preserve partition workers for complete-input window sorts
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (e66ef07ee41)
\
N -- N -- N refs/heads/xiangfu0/codex1/sorted-exchange-core
(be31a33d114)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/workflows/build-all-pinot-docker-image.yml | 6 +-
.../workflows/build-pinot-base-docker-image.yml | 4 +-
.github/workflows/build-pinot-docker-image.yml | 2 +-
.github/workflows/build-superset-docker-image.yml | 2 +-
.../nightly-build-all-pinot-docker-image.yml | 6 +-
...htly-build-multi-arch-superset-docker-image.yml | 4 +-
.github/workflows/pr-flow-checks.yml | 2 +-
.github/workflows/pr-flow.yml | 4 +-
.mvn/extensions.xml | 2 +-
doap_Pinot.rdf | 6 +-
docker/images/pinot/Dockerfile | 2 +-
docker/images/pinot/Dockerfile.build | 2 +-
docker/images/pinot/Dockerfile.package | 2 +-
pinot-bom/pom.xml | 2 +-
.../broker/broker/helix/BaseBrokerStarter.java | 21 +-
.../requesthandler/BaseBrokerRequestHandler.java | 53 +-
.../BaseSingleStageBrokerRequestHandler.java | 25 +-
.../requesthandler/GrpcBrokerRequestHandler.java | 4 +-
.../requesthandler/InferAnyValueTypeProvider.java | 70 ++
.../MultiStageBrokerRequestHandler.java | 46 +-
.../SingleConnectionBrokerRequestHandler.java | 77 +-
.../routing/manager/BaseBrokerRoutingManager.java | 44 +-
.../segmentpartition/SegmentPartitionUtils.java | 32 +-
.../BaseSingleStageBrokerRequestHandlerTest.java | 94 ++-
.../InferAnyValueTypeProviderTest.java | 69 ++
.../MultiStageBrokerRequestHandlerTest.java | 188 ++++-
...ionBrokerRequestHandlerFailureDetectorTest.java | 454 +++++++++++
.../routing/manager/BrokerRoutingManagerTest.java | 63 +-
.../SegmentPartitionUtilsTest.java | 24 +
.../SinglePartitionColumnSegmentPrunerTest.java | 13 +
.../pinot/client/admin/TableAdminClient.java | 6 +-
.../assignment/InstanceAssignmentConfigUtils.java | 4 +-
.../assignment/PartitionAssignmentUtils.java | 117 +++
.../apache/pinot/common/datatable/DataTable.java | 11 +
.../pinot/common/datatable/DataTableImplV4.java | 89 ++-
...BaseExponentialBackoffRetryFailureDetector.java | 132 +++-
.../failuredetector/ConnectionFailureDetector.java | 9 +-
.../common/failuredetector/FailureDetector.java | 23 +
.../pinot/common/function/JsonPathCache.java | 11 +-
.../common/function/TransformFunctionType.java | 9 +-
.../common/function/scalar/JsonFunctions.java | 458 ++++++++++-
.../pinot/common/metadata/ZKMetadataProvider.java | 10 +-
.../pinot/common/metrics/ControllerMeter.java | 6 +-
.../pinot/common/request/InstanceRequest.java | 106 ++-
.../apache/pinot/common/utils/ArrayListUtils.java | 94 +--
.../org/apache/pinot/common/utils/DataSchema.java | 98 +--
.../apache/pinot/common/utils/ExceptionUtils.java | 45 ++
.../apache/pinot/common/utils/JsonNumberUtils.java | 207 +++++
.../common/utils/config/QueryOptionsUtils.java | 13 +-
.../apache/pinot/sql/parsers/CalciteSqlParser.java | 11 +
.../rewriter/CompileTimeFunctionsInvoker.java | 7 +
.../assignment/PartitionAssignmentUtilsTest.java | 65 ++
.../ConnectionFailureDetectorTest.java | 284 ++++++-
.../common/function/FastJsonPathExtractorTest.java | 21 +-
.../pinot/common/function/JsonFunctionsTest.java | 352 +++++++++
.../pinot/common/utils/ArrayListUtilsTest.java | 117 ---
.../pinot/common/utils/ExceptionUtilsTest.java | 129 +++
.../pinot/common/utils/JsonNumberUtilsTest.java | 86 +-
.../common/utils/TarCompressionUtilsTest.java | 4 +-
.../utils/config/TableConfigSerDeUtilsTest.java | 46 +-
.../pinot/sql/parsers/CalciteSqlCompilerTest.java | 17 +
.../pinot/sql/parsers/CalciteSqlParserTest.java | 14 +
pinot-common/src/thrift/request.thrift | 4 +
.../exception/ControllerApplicationException.java | 23 +-
.../resources/PinotIngestionRestletResource.java | 27 +-
.../api/resources/PinotTableRestletResource.java | 29 +-
.../api/resources/TableConfigValidationUtils.java | 109 ++-
.../api/resources/TableConfigsRestletResource.java | 43 +-
.../resources/WebApplicationExceptionMapper.java | 19 +-
.../api/upload/SegmentValidationUtils.java | 56 +-
.../helix/core/PinotHelixResourceManager.java | 165 +++-
.../assignment/segment/BaseSegmentAssignment.java | 174 +++-
.../BaseStrictRealtimeSegmentAssignment.java | 146 ----
.../MultiTierStrictRealtimeSegmentAssignment.java | 131 ---
.../segment/OfflineSegmentAssignment.java | 136 +++-
.../segment/RealtimeSegmentAssignment.java | 193 ++++-
.../core/assignment/segment/SegmentAssignment.java | 18 +-
.../segment/SegmentAssignmentFactory.java | 26 +-
.../assignment/segment/SegmentAssignmentUtils.java | 11 +
.../SingleTierStrictRealtimeSegmentAssignment.java | 75 --
.../core/assignment/segment/TableAssignment.java | 59 ++
.../strategy/SegmentAssignmentStrategyFactory.java | 74 +-
.../core/cleanup/StaleInstancesCleanupTask.java | 9 +-
.../core/minion/PinotHelixTaskResourceManager.java | 36 +-
.../realtime/PinotLLCRealtimeSegmentManager.java | 135 ++--
.../helix/core/rebalance/TableRebalancer.java | 876 ++++++++++++---------
.../pinot/controller/util/TaskConfigUtils.java | 24 +-
...PinotIngestionRestletResourceStatelessTest.java | 86 +-
.../api/TableConfigsRestletResourceTest.java | 7 -
.../ControllerApplicationExceptionTest.java | 36 +-
.../PinotIngestionRestletResourceTest.java | 140 ++++
.../resources/TableConfigValidationUtilsTest.java | 76 ++
.../WebApplicationExceptionMapperTest.java | 98 +++
.../api/upload/SegmentValidationUtilsTest.java | 8 +-
.../controller/helix/PinotResourceManagerTest.java | 2 -
...otHelixResourceManagerConfigValidationTest.java | 107 +++
.../PinotHelixResourceManagerStatelessTest.java | 152 ++++
.../instance/InstanceAssignmentTest.java | 3 +-
...NonReplicaGroupTieredSegmentAssignmentTest.java | 49 +-
...artitionPinnedOfflineSegmentAssignmentTest.java | 353 +++++++++
...rtitionPinnedRealtimeSegmentAssignmentTest.java | 704 +++++++++++++++++
...altimeNonReplicaGroupSegmentAssignmentTest.java | 82 +-
...NonReplicaGroupTieredSegmentAssignmentTest.java | 42 +-
.../RealtimeReplicaGroupSegmentAssignmentTest.java | 167 ++--
.../segment/SegmentAssignmentTestUtils.java | 10 +
.../StrictRealtimeSegmentAssignmentTest.java | 534 -------------
.../AllServersSegmentAssignmentStrategyTest.java | 37 +-
.../BalancedNumSegmentAssignmentStrategyTest.java | 40 +-
.../ReplicaGroupSegmentAssignmentStrategyTest.java | 166 ++--
...nReplicaGroupSegmentAssignmentStrategyTest.java | 57 +-
.../RoundRobinSegmentAssignmentStrategyTest.java | 27 +-
.../SegmentAssignmentStrategyFactoryTest.java | 9 +-
.../cleanup/StaleInstancesCleanupTaskTest.java | 29 +
.../minion/PinotHelixTaskResourceManagerTest.java | 54 ++
.../PinotLLCRealtimeSegmentManagerTest.java | 210 ++++-
.../TableRebalancerClusterStatelessTest.java | 43 +
.../helix/core/rebalance/TableRebalancerTest.java | 339 ++++++--
.../pinot/controller/util/TaskConfigUtilsTest.java | 16 +
.../apache/pinot/core/common/ObjectSerDeUtils.java | 98 ++-
.../common/datatable/DataTableBuilderUtils.java | 52 +-
.../realtime/RealtimeSegmentDataManager.java | 57 +-
.../apache/pinot/core/data/table/IndexedTable.java | 6 +-
.../pinot/core/data/table/IntermediateRecord.java | 7 +-
.../apache/pinot/core/data/table/TableResizer.java | 40 +-
.../pinot/core/function/scalar/IdSetFunctions.java | 19 +-
.../blocks/results/AggregationResultsBlock.java | 63 +-
.../query/LinearSelectionOrderByOperator.java | 154 ++--
.../SelectionPartiallyOrderedByDescOperation.java | 16 +-
.../SelectionPartiallyOrderedByLinearOperator.java | 10 +-
.../operator/streaming/StreamingResponseUtils.java | 20 +-
.../function/ArrayLiteralTransformFunction.java | 20 +
.../JsonExtractScalarTransformFunction.java | 123 +--
.../apache/pinot/core/plan/SelectionPlanNode.java | 57 +-
.../core/plan/maker/InstancePlanMakerImplV2.java | 233 ++++--
.../aggregation/function/AggregationFunction.java | 23 +-
.../function/AggregationFunctionUtils.java | 29 +-
.../function/AnyValueAggregationFunction.java | 263 ++++---
.../function/BaseAggregationFunction.java | 2 +-
.../BaseSingleInputAggregationFunction.java | 3 +-
...igDecimalValueWithTimeAggregationFunction.java} | 50 +-
...irstBytesValueWithTimeAggregationFunction.java} | 67 +-
...rstLastWithTimeAggregationFunctionProvider.java | 25 +
.../FirstLongValueWithTimeAggregationFunction.java | 16 +-
.../function/FirstWithTimeAggregationFunction.java | 12 +-
.../function/HistogramAggregationFunction.java | 9 +-
...igDecimalValueWithTimeAggregationFunction.java} | 50 +-
...LastBytesValueWithTimeAggregationFunction.java} | 67 +-
.../LastLongValueWithTimeAggregationFunction.java | 16 +-
.../function/LastWithTimeAggregationFunction.java | 12 +-
.../function/ModeAggregationFunction.java | 201 ++++-
.../function/array/ArrayAggBytesFunction.java | 4 +-
.../array/ArrayAggDistinctBytesFunction.java | 5 +-
.../array/BaseArrayAggBigDecimalFunction.java | 12 +-
.../function/array/BaseArrayAggBytesFunction.java | 3 +-
.../function/array/BaseArrayAggDoubleFunction.java | 9 +-
.../function/array/BaseArrayAggFloatFunction.java | 9 +-
.../function/array/BaseArrayAggFunction.java | 2 +-
.../function/array/BaseArrayAggIntFunction.java | 9 +-
.../function/array/BaseArrayAggLongFunction.java | 9 +-
.../function/array/BaseArrayAggStringFunction.java | 13 +-
.../array/SumArrayDoubleAggregationFunction.java | 7 +-
.../array/SumArrayLongAggregationFunction.java | 7 +-
.../function/funnel/BitmapMergeStrategy.java | 5 +-
.../funnel/FunnelCountAggregationFunction.java | 13 +-
.../FunnelCountAggregationFunctionFactory.java | 5 +-
.../aggregation/function/funnel/MergeStrategy.java | 3 +-
.../function/funnel/PartitionedMergeStrategy.java | 24 +-
.../function/funnel/SetMergeStrategy.java | 5 +-
.../function/funnel/ThetaSketchMergeStrategy.java | 5 +-
.../window/FunnelBaseAggregationFunction.java | 2 +-
...unnelEventsFunctionEvalAggregationFunction.java | 63 +-
.../window/FunnelMatchStepAggregationFunction.java | 18 +-
...FunnelStepDurationStatsAggregationFunction.java | 33 +-
.../pinot/core/query/optimizer/QueryOptimizer.java | 10 +-
.../filter/ArrayContainsFilterOptimizer.java | 166 ++++
.../AggregateFunctionRewriteOptimizer.java | 192 ++++-
.../query/reduce/AggregationDataTableReducer.java | 13 +-
.../core/query/reduce/GroupByDataTableReducer.java | 19 +-
.../core/query/request/context/QueryContext.java | 128 +--
.../context/utils/QueryContextConverterUtils.java | 11 +-
.../query/scheduler/BinaryWorkloadScheduler.java | 15 +-
.../core/query/scheduler/PriorityScheduler.java | 11 +-
.../pinot/core/query/scheduler/QueryScheduler.java | 119 ++-
.../query/scheduler/SchedulerQueryContext.java | 7 +-
.../core/query/scheduler/WorkloadScheduler.java | 9 +-
.../query/scheduler/fcfs/FCFSQueryScheduler.java | 7 +-
.../core/transport/InstanceRequestHandler.java | 53 +-
.../apache/pinot/core/transport/QueryRouter.java | 149 +++-
.../pinot/core/transport/ServerChannels.java | 47 +-
.../org/apache/pinot/core/util/NumberUtils.java | 122 +--
.../pinot/core/common/ObjectSerDeUtilsTest.java | 51 ++
.../core/common/datatable/DataTableSerDeTest.java | 23 +-
.../DimensionTableDataBytesPrimaryKeyTest.java | 4 +-
.../offline/DimensionTableDataManagerTest.java | 4 +-
.../realtime/RealtimeSegmentDataManagerTest.java | 26 +-
.../table/UnboundedConcurrentIndexedTableTest.java | 2 +-
.../pinot/core/function/FunctionRegistryTest.java | 2 +-
.../core/function/scalar/IdSetFunctionsTest.java | 7 +-
.../streaming/StreamingResponseUtilsTest.java | 72 ++
.../ArrayLiteralTransformFunctionTest.java | 29 +
.../JsonExtractScalarTransformFunctionTest.java | 34 +-
.../plan/maker/QueryOverrideWithHintsTest.java | 349 +++++++-
.../AggregationFunctionNullContractTest.java | 12 +-
.../function/AggregationFunctionUtilsTest.java | 25 +-
.../function/AnyValueAggregationFunctionTest.java | 170 +++-
.../function/ModeAggregationFunctionTest.java | 181 +++++
.../function/ValueAggregationNullHandlingTest.java | 20 +-
.../function/funnel/FunnelFinalResultTest.java | 48 +-
.../function/funnel/FunnelNullHandlingTest.java | 16 +-
.../core/query/optimizer/QueryOptimizerTest.java | 48 +-
.../AggregateFunctionRewriteOptimizerTest.java | 264 +++++++
.../scheduler/QuerySchedulerResponseApiTest.java | 98 +++
.../core/transport/InstanceRequestHandlerTest.java | 56 ++
.../pinot/core/transport/QueryRoutingTest.java | 353 ++++++++-
.../pinot/core/transport/QueryServerTestUtils.java | 89 +++
.../pinot/core/transport/ServerChannelsTest.java | 39 +-
.../apache/pinot/core/util/NumberUtilsTest.java | 12 +
.../apache/pinot/queries/AnyValueQueriesTest.java | 230 ++++++
.../pinot/queries/ArrayAggMvQueriesTest.java | 19 +
.../apache/pinot/queries/ArrayAggQueriesTest.java | 43 +
.../pinot/queries/ArrayAggStarTreeQueriesTest.java | 42 +-
.../ArrayContainsMultiValueQueriesTest.java | 115 +++
.../pinot/queries/FirstWithTimeQueriesTest.java | 148 ++++
.../org/apache/pinot/queries/IdSetQueriesTest.java | 37 +
...nnerSegmentSelectionSingleValueQueriesTest.java | 113 +--
.../pinot/queries/LastWithTimeQueriesTest.java | 148 ++++
.../org/apache/pinot/queries/ModeQueriesTest.java | 210 ++++-
.../queries/NullHandlingEnabledQueriesTest.java | 71 +-
.../queries/TextMatchTransformFunctionTest.java | 12 +-
.../apache/pinot/queries/TimestampQueriesTest.java | 70 ++
.../tests/BaseClusterIntegrationTest.java | 32 +-
.../tests/BaseDedupIntegrationTest.java | 2 -
.../tests/DedupPreloadIntegrationTest.java | 2 -
.../integration/tests/custom/JsonPathTest.java | 107 +++
.../tests/custom/OfflineUpsertTableTest.java | 17 +-
.../tests/custom/VectorUpsertTableTest.java | 2 -
.../simpleMeetup_realtime_table_config.json | 6 +-
.../resources/udf-test-results/all-functions.yaml | 3 +-
.../AbstractAggregationFunctionBenchmark.java | 8 +-
pinot-plugins/assembly-descriptor/pom.xml | 14 +
.../src/it/projects/simple-assembly/pom.xml | 19 +-
.../src/it/projects/simple-assembly/verify.groovy | 12 +-
.../batch/common/BaseSegmentPushJobRunner.java | 11 +-
.../batch/hadoop/HadoopSegmentCreationMapper.java | 3 +-
.../hadoop/HadoopSegmentMetadataPushJobRunner.java | 18 +-
.../hadoop/HadoopSegmentTarPushJobRunner.java | 14 +-
.../hadoop/HadoopSegmentUriPushJobRunner.java | 15 +-
.../spark3/SparkSegmentGenerationJobRunner.java | 3 +-
.../spark3/SparkSegmentMetadataPushJobRunner.java | 16 +-
.../BaseSparkSegmentMetadataPushJobRunner.java | 10 +-
.../common/BaseSparkSegmentTarPushJobRunner.java | 10 +-
.../common/BaseSparkSegmentUriPushJobRunner.java | 14 +-
.../BaseSparkSegmentMetadataPushJobRunnerTest.java | 125 +++
.../standalone/SegmentGenerationJobRunner.java | 23 +-
.../standalone/SegmentGenerationJobRunnerTest.java | 151 ++++
.../apache/pinot/plugin/filesystem/GcsPinotFS.java | 4 +-
.../filesystem/GcsPinotFSNullSafetyTest.java | 22 +
.../parquet/ParquetAvroRecordExtractor.java | 45 +-
.../parquet/ParquetAvroRecordReader.java | 22 +-
.../parquet/ParquetNativeRecordExtractor.java | 18 +-
.../parquet/ParquetNativeRecordReader.java | 3 +-
.../parquet/ParquetRecordReaderConfig.java | 1 +
.../plugin/inputformat/parquet/ParquetUtils.java | 76 +-
.../parquet/ParquetAvroRecordExtractorTest.java | 27 +-
.../parquet/ParquetNativeRecordExtractorTest.java | 85 +-
.../parquet/ParquetReaderLogicalTypesTest.java | 158 ++++
.../inputformat/parquet/ParquetTestUtils.java | 14 +
.../segmentuploader/SegmentUploaderDefault.java | 2 +-
.../pinot/calcite/rel/hint/PinotHintOptions.java | 8 +
.../PinotAggregateExchangeNodeInsertRule.java | 9 +
.../PinotAggregateTypeArgumentRewriteRule.java | 254 ++++++
.../PinotApproximateAggregateRewriteRule.java | 22 +-
.../rel/rules/PinotEvaluateLiteralRule.java | 135 +++-
.../rel/rules/PinotJoinExchangeNodeInsertRule.java | 134 +++-
.../pinot/calcite/rel/rules/PinotRuleUtils.java | 21 +
.../org/apache/pinot/query/QueryEnvironment.java | 24 +-
.../query/planner/logical/RexExpressionUtils.java | 50 +-
.../v2/opt/rules/AggregatePushdownRule.java | 9 +
.../rules/PinotJoinExchangeNodeInsertRuleTest.java | 143 ++++
.../query/ApproximateAggregateRewriteTest.java | 32 +
.../apache/pinot/query/QueryCompilationTest.java | 128 +++
.../pinot/query/QueryPlannerRuleOptionsTest.java | 24 +-
.../src/test/resources/queries/AggregatePlans.json | 242 ++++++
.../resources/queries/LiteralEvaluationPlans.json | 108 +++
.../apache/pinot/query/mailbox/MailboxService.java | 18 +-
.../query/mailbox/channel/ChannelManager.java | 73 +-
.../query/runtime/operator/AggregateOperator.java | 8 +-
.../query/runtime/operator/BaseJoinOperator.java | 8 +-
.../query/runtime/operator/FilterOperator.java | 4 +-
.../pinot/query/runtime/operator/LeafOperator.java | 45 +-
.../query/runtime/operator/LookupJoinOperator.java | 5 +-
.../operator/MultistageAggregationExecutor.java | 37 +-
.../operator/MultistageGroupByExecutor.java | 12 +-
.../query/runtime/operator/TransformOperator.java | 5 +-
.../query/runtime/operator/UnnestOperator.java | 4 +-
.../runtime/operator/operands/FilterOperand.java | 45 +-
.../runtime/operator/operands/FunctionOperand.java | 60 +-
.../operator/operands/TransformOperandFactory.java | 38 +-
.../query/runtime/operator/utils/SortUtils.java | 4 +-
.../query/runtime/operator/utils/TypeUtils.java | 44 --
.../plan/server/ServerPlanRequestVisitor.java | 40 +-
.../query/service/dispatch/DispatchClient.java | 21 +
.../query/service/dispatch/QueryDispatcher.java | 89 ++-
.../query/mailbox/channel/ChannelManagerTest.java | 111 ++-
.../runtime/operator/AggregateOperatorTest.java | 106 ++-
.../query/runtime/operator/LeafOperatorTest.java | 67 ++
.../SerializedIntermediateResultMergeTest.java | 2 +-
.../query/runtime/queries/QueryRunnerTest.java | 217 ++++-
.../query/runtime/queries/QueryRunnerTestBase.java | 9 +
.../service/dispatch/QueryDispatcherTest.java | 142 ++++
.../src/test/resources/queries/IdSet.json | 7 +-
.../test/resources/queries/LiteralExpressions.json | 33 +
.../test/resources/queries/NonEquiOuterJoins.json | 58 ++
.../src/test/resources/queries/QueryHints.json | 89 +++
.../src/test/resources/queries/UDFAggregates.json | 272 ++++++-
...StringLongPair.java => BigDecimalLongPair.java} | 27 +-
.../{StringLongPair.java => BytesLongPair.java} | 26 +-
.../indexsegment/mutable/MutableSegmentImpl.java | 51 +-
.../MultiColumnRealtimeLuceneTextIndex.java | 2 +-
.../invertedindex/RealtimeLuceneTextIndex.java | 2 +-
.../segment/creator/RecordProcessingException.java | 16 +-
.../RecordReaderSegmentCreationDataSource.java | 2 +-
.../impl/SegmentIndexCreationDriverImpl.java | 3 +-
.../impl/inv/json/OffHeapJsonIndexCreator.java | 25 +-
.../creator/impl/text/LuceneTextIndexCreator.java | 112 +--
.../defaultcolumn/BaseDefaultColumnHandler.java | 57 +-
.../forward/BaseChunkForwardIndexReader.java | 10 +-
.../forward/VarByteChunkForwardIndexReaderV4.java | 15 +-
.../index/readers/text/LuceneTextIndexReader.java | 164 +---
.../text/MultiColumnLuceneTextIndexReader.java | 4 +-
.../local/segment/store/TextIndexUtils.java | 68 ++
.../segment/local/utils/SegmentPushUtils.java | 39 +-
.../segment/local/utils/TableConfigUtils.java | 742 +++++++++++------
.../converter/RealtimeSegmentConverterTest.java | 142 ++++
.../creator/RecordProcessingExceptionTest.java | 143 ++++
.../segment/local/segment/index/JsonIndexTest.java | 97 +++
.../index/creator/LuceneTextIndexCreatorTest.java | 287 ++++++-
.../local/segment/index/loader/LoaderTest.java | 54 +-
.../index/loader/SegmentPreProcessorTest.java | 67 ++
.../TextIndexRollbackRecoveryTest.java | 2 +-
.../text/LuceneTextIndexCompatibleTest.java | 174 +++-
.../readers/text/LuceneTextIndexCountTest.java | 22 +-
.../segment/store/FilePerIndexDirectoryTest.java | 22 +-
.../store/SingleFileIndexDirectoryTest.java | 22 +-
.../segment/local/utils/SegmentPushUtilsTest.java | 140 ++++
.../segment/local/utils/TableConfigUtilsTest.java | 755 +++++++++++++++---
.../pinot/segment/spi/AggregationFunctionType.java | 26 +-
.../pinot/segment/spi/index/TextIndexConfig.java | 6 +-
.../pinot/segment/spi/memory/PinotDataBuffer.java | 12 +
.../server/starter/helix/BaseServerStarter.java | 10 +-
...ava => ServerMailboxChannelRefreshHandler.java} | 107 ++-
.../warmup/PageCacheWarmupServerQueryExecutor.java | 5 +-
...=> ServerMailboxChannelRefreshHandlerTest.java} | 155 +++-
.../PageCacheWarmupServerQueryExecutorTest.java | 7 +-
.../config/table/ReplicaGroupStrategyConfig.java | 4 +-
.../SegmentsValidationAndRetentionConfig.java | 9 +-
.../table/assignment/InstanceAssignmentConfig.java | 35 +-
.../InstanceReplicaGroupPartitionConfig.java | 9 +-
.../table/assignment/SegmentAssignmentConfig.java | 22 +-
.../pinot/spi/ingestion/batch/spec/Constants.java | 20 +
.../batch/spec/SegmentGenerationJobSpec.java | 20 +
.../apache/pinot/spi/utils/CommonConstants.java | 56 +-
.../pinot/spi/utils/StoredValueComparator.java | 59 ++
.../spi/utils/builder/TableConfigBuilder.java | 3 +-
pinot-tools/pom.xml | 4 +
.../command/LaunchBackfillIngestionJobCommand.java | 35 +-
.../tools/admin/command/PostQueryCommand.java | 130 ++-
.../userAttributes_offline_table_config.json | 3 +-
.../userFactEvents_offline_table_config.json | 6 +-
.../userGroups_offline_table_config.json | 6 +-
...upsertJsonMeetupRsvp_realtime_table_config.json | 1 -
.../upsertMeetupRsvp_realtime_table_config.json | 1 -
...ertPartialMeetupRsvp_realtime_table_config.json | 1 -
.../LaunchBackfillIngestionJobCommandTest.java | 59 ++
.../tools/admin/command/PostQueryCommandTest.java | 330 ++++++++
pom.xml | 28 +-
376 files changed, 19935 insertions(+), 5316 deletions(-)
create mode 100644
pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/InferAnyValueTypeProvider.java
create mode 100644
pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/InferAnyValueTypeProviderTest.java
create mode 100644
pinot-broker/src/test/java/org/apache/pinot/broker/requesthandler/SingleConnectionBrokerRequestHandlerFailureDetectorTest.java
create mode 100644
pinot-common/src/main/java/org/apache/pinot/common/assignment/PartitionAssignmentUtils.java
create mode 100644
pinot-common/src/main/java/org/apache/pinot/common/utils/JsonNumberUtils.java
create mode 100644
pinot-common/src/test/java/org/apache/pinot/common/assignment/PartitionAssignmentUtilsTest.java
create mode 100644
pinot-common/src/test/java/org/apache/pinot/common/utils/ExceptionUtilsTest.java
copy pinot-core/src/test/java/org/apache/pinot/core/util/NumberUtilsTest.java
=>
pinot-common/src/test/java/org/apache/pinot/common/utils/JsonNumberUtilsTest.java
(59%)
delete mode 100644
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/BaseStrictRealtimeSegmentAssignment.java
delete mode 100644
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/MultiTierStrictRealtimeSegmentAssignment.java
delete mode 100644
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/SingleTierStrictRealtimeSegmentAssignment.java
create mode 100644
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/TableAssignment.java
create mode 100644
pinot-controller/src/test/java/org/apache/pinot/controller/api/resources/PinotIngestionRestletResourceTest.java
create mode 100644
pinot-controller/src/test/java/org/apache/pinot/controller/api/resources/WebApplicationExceptionMapperTest.java
create mode 100644
pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/PartitionPinnedOfflineSegmentAssignmentTest.java
create mode 100644
pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/PartitionPinnedRealtimeSegmentAssignmentTest.java
delete mode 100644
pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/StrictRealtimeSegmentAssignmentTest.java
copy
pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/{FirstLongValueWithTimeAggregationFunction.java
=> FirstBigDecimalValueWithTimeAggregationFunction.java} (64%)
copy
pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/{FirstFloatValueWithTimeAggregationFunction.java
=> FirstBytesValueWithTimeAggregationFunction.java} (57%)
copy
pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/{LastDoubleValueWithTimeAggregationFunction.java
=> LastBigDecimalValueWithTimeAggregationFunction.java} (64%)
copy
pinot-core/src/main/java/org/apache/pinot/core/query/aggregation/function/{LastFloatValueWithTimeAggregationFunction.java
=> LastBytesValueWithTimeAggregationFunction.java} (57%)
create mode 100644
pinot-core/src/main/java/org/apache/pinot/core/query/optimizer/filter/ArrayContainsFilterOptimizer.java
create mode 100644
pinot-core/src/test/java/org/apache/pinot/core/operator/streaming/StreamingResponseUtilsTest.java
create mode 100644
pinot-core/src/test/java/org/apache/pinot/core/query/optimizer/statement/AggregateFunctionRewriteOptimizerTest.java
create mode 100644
pinot-core/src/test/java/org/apache/pinot/core/query/scheduler/QuerySchedulerResponseApiTest.java
create mode 100644
pinot-core/src/test/java/org/apache/pinot/core/transport/QueryServerTestUtils.java
create mode 100644
pinot-core/src/test/java/org/apache/pinot/queries/AnyValueQueriesTest.java
create mode 100644
pinot-core/src/test/java/org/apache/pinot/queries/ArrayContainsMultiValueQueriesTest.java
create mode 100644
pinot-plugins/pinot-batch-ingestion/pinot-batch-ingestion-spark-base/src/test/java/org/apache/pinot/plugin/ingestion/batch/spark/common/BaseSparkSegmentMetadataPushJobRunnerTest.java
create mode 100644
pinot-query-planner/src/main/java/org/apache/pinot/calcite/rel/rules/PinotAggregateTypeArgumentRewriteRule.java
create mode 100644
pinot-query-planner/src/test/java/org/apache/pinot/calcite/rel/rules/PinotJoinExchangeNodeInsertRuleTest.java
copy
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/customobject/{StringLongPair.java
=> BigDecimalLongPair.java} (59%)
copy
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/customobject/{StringLongPair.java
=> BytesLongPair.java} (62%)
copy
pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/admin/PinotAdminException.java
=>
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/RecordProcessingException.java
(70%)
create mode 100644
pinot-segment-local/src/test/java/org/apache/pinot/segment/local/segment/creator/RecordProcessingExceptionTest.java
rename
pinot-server/src/main/java/org/apache/pinot/server/starter/helix/{ServerGrpcChannelBackoffResetHandler.java
=> ServerMailboxChannelRefreshHandler.java} (53%)
rename
pinot-server/src/test/java/org/apache/pinot/server/starter/helix/{ServerGrpcChannelBackoffResetHandlerTest.java
=> ServerMailboxChannelRefreshHandlerTest.java} (55%)
create mode 100644
pinot-spi/src/main/java/org/apache/pinot/spi/utils/StoredValueComparator.java
create mode 100644
pinot-tools/src/test/java/org/apache/pinot/tools/admin/command/LaunchBackfillIngestionJobCommandTest.java
create mode 100644
pinot-tools/src/test/java/org/apache/pinot/tools/admin/command/PostQueryCommandTest.java
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]