This is an automated email from the ASF dual-hosted git repository. xvrl pushed a commit to branch opencensus-ext in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
commit 1124418d7ec3cf0858b9d23d9490029e55f132a2 Merge: 574634e 0695e48 Author: Xavier Léauté <[email protected]> AuthorDate: Wed Jul 24 15:00:55 2019 -0700 Merge remote-tracking branch 'origin/master' into confluent-master .github/ISSUE_TEMPLATE/problem_report.md | 1 + .github/pull_request_template.md | 62 + .github/stale.yml | 99 +- .idea/inspectionProfiles/Druid.xml | 29 +- .travis.yml | 34 +- CONTRIBUTING.md | 4 - LICENSE | 2 +- LICENSE.BINARY | 1265 -------- NOTICE | 62 +- NOTICE.BINARY | 945 +----- README.md | 2 +- benchmarks/pom.xml | 12 + .../benchmark/ExpressionAggregationBenchmark.java | 21 +- .../benchmark/ExpressionSelectorBenchmark.java | 21 +- .../druid/benchmark/FilterPartitionBenchmark.java | 5 +- .../benchmark/FilteredAggregatorBenchmark.java | 40 +- .../benchmark/GroupByTypeInterfaceBenchmark.java | 9 +- .../benchmark/TopNTypeInterfaceBenchmark.java | 9 +- .../benchmark/datagen/BenchmarkColumnSchema.java | 22 + .../benchmark/datagen/BenchmarkSchemaInfo.java | 11 + .../druid/benchmark/datagen/BenchmarkSchemas.java | 2 +- .../druid/benchmark/datagen/SegmentGenerator.java | 130 +- .../indexing/IncrementalIndexReadBenchmark.java | 5 +- .../indexing/IndexIngestionBenchmark.java | 3 +- .../benchmark/indexing/IndexMergeBenchmark.java | 5 +- .../benchmark/indexing/IndexPersistBenchmark.java | 5 +- .../query/CachingClusteredClientBenchmark.java | 569 ++++ .../druid/benchmark/query/GroupByBenchmark.java | 61 +- .../druid/benchmark/query/QueryBenchmarkUtil.java | 5 +- .../druid/benchmark/query/ScanBenchmark.java | 12 +- .../druid/benchmark/query/SearchBenchmark.java | 12 +- .../druid/benchmark/query/SelectBenchmark.java | 10 +- .../benchmark/query/SerializingQueryRunner.java | 5 +- .../apache/druid/benchmark/query/SqlBenchmark.java | 209 +- .../benchmark/query/SqlVsNativeBenchmark.java | 173 ++ .../druid/benchmark/query/TimeseriesBenchmark.java | 11 +- .../druid/benchmark/query/TopNBenchmark.java | 11 +- .../query/timecompare/TimeCompareBenchmark.java | 10 +- .../NewestSegmentFirstPolicyBenchmark.java | 14 +- benchmarks/src/main/resources/log4j2.xml | 32 + build.sh | 27 + codestyle/checkstyle-suppressions.xml | 3 - codestyle/druid-forbidden-apis.txt | 4 +- codestyle/spotbugs-exclude.xml | 7 - .../druid/collections/CombiningIterable.java | 51 +- .../druid/collections/CombiningIterator.java | 30 +- .../druid/collections/OrderedMergeIterator.java | 139 - .../druid/collections/OrderedMergeSequence.java | 212 -- .../apache/druid/common/config/NullHandling.java | 2 +- .../druid/common/guava/CombiningSequence.java | 24 +- .../org/apache/druid/common/guava/GuavaUtils.java | 17 +- .../apache/druid/data/input/FirehoseFactoryV2.java | 51 - .../org/apache/druid/data/input/FirehoseV2.java | 91 - .../apache/druid/guice/GuiceInjectableValues.java | 2 +- .../apache/druid/java/util/common/FileUtils.java | 8 + .../druid/java/util/common/guava/BaseSequence.java | 29 +- .../java/util/common/guava/FilteredSequence.java | 4 +- .../util/common/guava/FilteringAccumulator.java | 4 +- .../common/guava/FilteringYieldingAccumulator.java | 4 +- .../druid/java/util/common/guava/Sequence.java | 11 +- .../druid/java/util/common/guava/Sequences.java | 2 +- .../java/util/common/guava/nary/BinaryFn.java | 27 - .../common/guava/nary/SortedMergeIterator.java | 105 - .../java/util/common/lifecycle/Lifecycle.java | 6 +- .../druid/java/util/common/logger/Logger.java | 5 + .../druid/java/util/emitter/EmittingLogger.java | 14 +- .../client/response/StatusResponseHandler.java | 17 +- .../org/apache/druid/math/expr/ApplyFunction.java | 28 +- .../main/java/org/apache/druid/math/expr/Expr.java | 301 +- .../java/org/apache/druid/math/expr/ExprEval.java | 18 +- .../apache/druid/math/expr/ExprListenerImpl.java | 72 +- .../org/apache/druid/math/expr/ExprMacroTable.java | 17 +- .../java/org/apache/druid/math/expr/Function.java | 249 +- .../java/org/apache/druid/math/expr/Parser.java | 105 +- .../druid/metadata/DefaultPasswordProvider.java | 2 +- .../org/apache/druid/timeline/TimelineLookup.java | 3 +- .../druid/timeline/VersionedIntervalTimeline.java | 65 +- .../partition/ImmutablePartitionHolder.java | 4 +- .../druid/timeline/partition/PartitionHolder.java | 52 +- .../org/apache/druid/utils/CollectionUtils.java | 33 + .../java/org/apache/druid/utils/package-info.java | 23 + .../apache/druid/collections/BlockingPoolTest.java | 178 +- .../druid/collections/CombiningIteratorTest.java | 16 +- .../collections/OrderedMergeIteratorTest.java | 190 -- .../collections/OrderedMergeSequenceTest.java | 350 --- .../druid/common/guava/ComplexSequenceTest.java | 34 +- .../common/guava/nary/SortedMergeIteratorTest.java | 55 - .../emitter/core/ParametrizedUriEmitterTest.java | 18 +- .../java/util/http/client/FriendlyServersTest.java | 14 +- .../java/util/http/client/JankyServersTest.java | 15 +- .../apache/druid/math/expr/ApplyFunctionTest.java | 16 +- .../org/apache/druid/math/expr/FunctionTest.java | 47 +- .../org/apache/druid/math/expr/ParserTest.java | 59 +- .../timeline/VersionedIntervalTimelineTest.java | 32 +- .../partition/IntegerPartitionChunkTest.java | 80 +- .../partition/StringPartitionChunkTest.java | 86 +- dev/code-review/concurrency.md | 199 ++ dev/committer-instructions.md | 55 +- dev/intellij-sdk-config.jpg | Bin 1043813 -> 885115 bytes dev/teamcity.md | 4 +- distribution/docker/docker-compose.yml | 16 + distribution/pom.xml | 26 +- docs/_bin/generate-license-dependency-reports.py | 97 +- docs/_bin/generate-license.py | 568 ++++ docs/_redirects.json | 15 +- docs/content/configuration/index.md | 11 +- docs/content/configuration/realtime.md | 98 - docs/content/dependencies/zookeeper.md | 4 +- docs/content/design/realtime.md | 80 - .../extensions-contrib/distinctcount.md | 4 +- .../development/extensions-contrib/influx.md | 2 + .../development/extensions-contrib/kafka-simple.md | 56 - .../extensions-contrib/materialized-view.md | 3 + .../extensions-contrib/momentsketch-quantiles.md | 6 + .../extensions-contrib/moving-average-query.md | 9 + .../development/extensions-contrib/rabbitmq.md | 81 - .../development/extensions-contrib/rocketmq.md | 29 - .../extensions-contrib/tdigestsketch-quantiles.md | 5 + .../extensions-core/approximate-histograms.md | 2 + .../extensions-core/datasketches-hll.md | 7 +- .../extensions-core/datasketches-theta.md | 12 + .../extensions-core/druid-basic-security.md | 5 + .../development/extensions-core/druid-lookups.md | 1 + .../extensions-core/kafka-eight-firehose.md | 54 - .../development/extensions-core/kafka-ingestion.md | 3 +- .../extensions-core/kinesis-ingestion.md | 3 +- docs/content/development/extensions-core/orc.md | 4 + docs/content/development/extensions.md | 7 +- docs/content/development/overview.md | 3 +- docs/content/ingestion/delete-data.md | 3 +- docs/content/ingestion/firehose.md | 127 +- docs/content/ingestion/hadoop.md | 3 +- docs/content/ingestion/ingestion-spec.md | 2 - docs/content/ingestion/native_tasks.md | 10 + docs/content/ingestion/standalone-realtime.md | 46 + docs/content/ingestion/stream-pull.md | 376 --- docs/content/misc/math-expr.md | 55 +- docs/content/operations/api-reference.md | 32 +- docs/content/operations/pull-deps.md | 17 +- docs/content/querying/filters.md | 6 + docs/content/querying/granularities.md | 9 +- docs/content/querying/multi-value-dimensions.md | 28 +- docs/content/querying/query-context.md | 28 + docs/content/querying/sql.md | 158 +- .../img/tutorial-batch-data-loader-01.png | Bin 99355 -> 56488 bytes .../img/tutorial-batch-data-loader-02.png | Bin 521148 -> 360295 bytes .../img/tutorial-batch-data-loader-03.png | Bin 217008 -> 137443 bytes .../img/tutorial-batch-data-loader-04.png | Bin 261225 -> 167252 bytes .../img/tutorial-batch-data-loader-05.png | Bin 256368 -> 162488 bytes .../img/tutorial-batch-data-loader-06.png | Bin 105983 -> 64301 bytes .../img/tutorial-batch-data-loader-07.png | Bin 81399 -> 46529 bytes .../img/tutorial-batch-data-loader-08.png | Bin 162397 -> 103928 bytes .../img/tutorial-batch-data-loader-09.png | Bin 107662 -> 63348 bytes .../img/tutorial-batch-data-loader-10.png | Bin 79080 -> 44516 bytes .../img/tutorial-batch-data-loader-11.png | Bin 133329 -> 83288 bytes .../img/tutorial-batch-submit-task-01.png | Bin 113916 -> 69356 bytes .../img/tutorial-batch-submit-task-02.png | Bin 136268 -> 86076 bytes .../tutorials/img/tutorial-compaction-01.png | Bin 55153 -> 35710 bytes .../tutorials/img/tutorial-compaction-02.png | Bin 279736 -> 166571 bytes .../tutorials/img/tutorial-compaction-03.png | Bin 40114 -> 26755 bytes .../tutorials/img/tutorial-compaction-04.png | Bin 312142 -> 184365 bytes .../tutorials/img/tutorial-compaction-05.png | Bin 39784 -> 26588 bytes .../tutorials/img/tutorial-compaction-06.png | Bin 351505 -> 206717 bytes .../tutorials/img/tutorial-compaction-07.png | Bin 40106 -> 26683 bytes .../tutorials/img/tutorial-compaction-08.png | Bin 43257 -> 28751 bytes .../content/tutorials/img/tutorial-deletion-01.png | Bin 72062 -> 43586 bytes .../content/tutorials/img/tutorial-deletion-02.png | Bin 810422 -> 439602 bytes .../content/tutorials/img/tutorial-deletion-03.png | Bin 805673 -> 437304 bytes docs/content/tutorials/img/tutorial-kafka-01.png | Bin 136317 -> 85477 bytes docs/content/tutorials/img/tutorial-kafka-02.png | Bin 125452 -> 75709 bytes docs/content/tutorials/img/tutorial-query-01.png | Bin 153120 -> 100930 bytes docs/content/tutorials/img/tutorial-query-02.png | Bin 129962 -> 83369 bytes docs/content/tutorials/img/tutorial-query-03.png | Bin 106082 -> 65038 bytes docs/content/tutorials/img/tutorial-query-04.png | Bin 108331 -> 66423 bytes docs/content/tutorials/img/tutorial-query-05.png | Bin 87070 -> 51855 bytes docs/content/tutorials/img/tutorial-query-06.png | Bin 130612 -> 82211 bytes docs/content/tutorials/img/tutorial-query-07.png | Bin 125457 -> 78633 bytes .../tutorials/img/tutorial-quickstart-01.png | Bin 56955 -> 29834 bytes .../tutorials/img/tutorial-retention-00.png | Bin 138304 -> 77704 bytes .../tutorials/img/tutorial-retention-01.png | Bin 53955 -> 35171 bytes .../tutorials/img/tutorial-retention-02.png | Bin 410930 -> 240310 bytes .../tutorials/img/tutorial-retention-03.png | Bin 44144 -> 30029 bytes .../tutorials/img/tutorial-retention-04.png | Bin 67493 -> 44617 bytes .../tutorials/img/tutorial-retention-05.png | Bin 61639 -> 38992 bytes .../tutorials/img/tutorial-retention-06.png | Bin 233034 -> 137570 bytes docs/content/tutorials/tutorial-batch-hadoop.md | 2 +- docs/content/tutorials/tutorial-delete-data.md | 2 +- docs/content/tutorials/tutorial-tranquility.md | 2 +- docs/img/druid-architecture.png | Bin 207086 -> 134117 bytes docs/img/druid-column-types.png | Bin 103962 -> 93363 bytes docs/img/druid-dataflow-2x.png | Bin 141623 -> 130160 bytes docs/img/druid-dataflow-3.png | Bin 90365 -> 71425 bytes docs/img/druid-manage-1.png | Bin 111559 -> 80415 bytes docs/img/druid-production.png | Bin 51195 -> 40124 bytes docs/img/druid-timeline.png | Bin 36729 -> 24160 bytes docs/img/indexing_service.png | Bin 48510 -> 22490 bytes docs/img/segmentPropagation.png | Bin 64451 -> 30569 bytes examples/pom.xml | 134 - .../apache/druid/examples/ExamplesDruidModule.java | 56 - .../twitter/TwitterSpritzerFirehoseFactory.java | 387 --- .../druid/examples/wikipedia/IrcDecoder.java | 34 - .../examples/wikipedia/IrcFirehoseFactory.java | 256 -- .../examples/wikipedia/IrcInputRowParser.java | 107 - .../examples/wikipedia/WikipediaIrcDecoder.java | 307 -- .../org.apache.druid.initialization.DruidModule | 16 - .../ambari/metrics/AmbariMetricsEmitter.java | 3 - .../druid/storage/azure/AzureByteSourceTest.java | 7 +- .../storage/azure/AzureDataSegmentKillerTest.java | 24 +- .../storage/azure/AzureDataSegmentPullerTest.java | 20 +- .../storage/azure/AzureDataSegmentPusherTest.java | 16 +- .../druid/storage/azure/AzureTaskLogsTest.java | 24 +- .../cloudfiles/CloudFilesByteSourceTest.java | 25 +- .../cloudfiles/CloudFilesObjectApiProxyTest.java | 21 +- .../distinctcount/DistinctCountTopNQueryTest.java | 6 +- extensions-contrib/druid-rocketmq/pom.xml | 58 - .../firehose/rocketmq/RocketMQDruidModule.java | 50 - .../firehose/rocketmq/RocketMQFirehoseFactory.java | 584 ---- .../druid/data/input/influx/InfluxParserTest.java | 42 +- .../kafka-eight-simpleConsumer/pom.xml | 89 - .../kafka/KafkaEightSimpleConsumerDruidModule.java | 49 - .../KafkaEightSimpleConsumerFirehoseFactory.java | 350 --- .../druid/firehose/kafka/KafkaSimpleConsumer.java | 390 --- .../org.apache.druid.initialization.DruidModule | 16 - .../MaterializedViewSupervisor.java | 4 +- .../MaterializedViewSupervisorSpec.java | 1 + .../MaterializedViewSupervisorSpecTest.java | 99 +- .../MaterializedViewSupervisorTest.java | 65 +- .../MaterializedViewQueryQueryToolChest.java | 7 +- .../MaterializedViewQueryRunner.java | 5 +- .../materializedview/DatasourceOptimizerTest.java | 111 +- .../MaterializedViewQueryTest.java | 36 +- .../momentsketch/MomentSketchModule.java | 4 +- .../momentsketch/MomentSketchWrapperTest.java | 9 +- .../aggregator/MomentsSketchAggregatorTest.java | 23 +- .../movingaverage/MovingAverageQueryRunner.java | 20 +- .../movingaverage/MovingAverageIterableTest.java | 521 ++-- .../movingaverage/MovingAverageQueryTest.java | 80 +- .../PostAveragerAggregatorCalculatorTest.java | 29 +- .../query/movingaverage/RowBucketIterableTest.java | 224 +- .../averagers/BaseAveragerFactoryTest.java | 12 +- .../movingaverage/averagers/BaseAveragerTest.java | 87 +- .../averagers/DoubleMaxAveragerFactoryTest.java | 10 +- .../averagers/DoubleMaxAveragerTest.java | 19 +- .../averagers/DoubleMeanAveragerFactoryTest.java | 9 +- .../averagers/DoubleMeanAveragerTest.java | 20 +- .../DoubleMeanAveragerWithPeriodTest.java | 15 +- .../DoubleMeanNoNullAveragerFactoryTest.java | 9 +- .../averagers/DoubleMeanNoNullAveragerTest.java | 25 +- .../averagers/DoubleMinAveragerFactoryTest.java | 9 +- .../averagers/DoubleMinAveragerTest.java | 17 +- .../averagers/LongMaxAveragerFactoryTest.java | 9 +- .../averagers/LongMaxAveragerTest.java | 19 +- .../averagers/LongMeanAveragerFactoryTest.java | 9 +- .../averagers/LongMeanAveragerTest.java | 17 +- .../LongMeanNoNullAveragerFactoryTest.java | 9 +- .../averagers/LongMeanNoNullAveragerTest.java | 18 +- .../averagers/LongMinAveragerFactoryTest.java | 9 +- .../averagers/LongMinAveragerTest.java | 19 +- .../druid/emitter/opentsdb/EventConverterTest.java | 12 +- extensions-contrib/rabbitmq/pom.xml | 83 - .../rabbitmq/JacksonifiedConnectionFactory.java | 280 -- .../firehose/rabbitmq/RabbitMQDruidModule.java | 51 - .../firehose/rabbitmq/RabbitMQFirehoseConfig.java | 186 -- .../firehose/rabbitmq/RabbitMQFirehoseFactory.java | 339 --- .../org.apache.druid.initialization.DruidModule | 16 - .../rabbitmq/RabbitMQFirehoseFactoryTest.java | 111 - .../examples/rabbitmq/RabbitMQProducerMain.java | 212 -- .../emitter/statsd/DimensionConverterTest.java | 9 +- .../druid/emitter/statsd/StatsDEmitterTest.java | 56 +- extensions-contrib/tdigestsketch/pom.xml | 2 +- .../tdigestsketch/TDigestSketchModule.java | 5 +- .../input/thrift/ThriftInputRowParserTest.java | 15 +- .../druid/segment/MapVirtualColumnGroupByTest.java | 5 +- .../druid/segment/MapVirtualColumnSelectTest.java | 3 +- .../druid/segment/MapVirtualColumnTopNTest.java | 5 +- .../data/input/AvroHadoopInputRowParserTest.java | 13 +- .../data/input/AvroStreamInputRowParserTest.java | 97 +- .../SchemaRegistryBasedAvroBytesDecoderTest.java | 18 +- .../hll/HllSketchAggregatorFactory.java | 44 +- .../hll/HllSketchBuildAggregatorFactory.java | 6 +- .../hll/HllSketchMergeAggregatorFactory.java | 14 +- .../datasketches/hll/HllSketchModule.java | 12 +- .../hll/sql/HllSketchSqlAggregator.java | 15 +- .../quantiles/DoublesSketchBuildAggregator.java | 3 + .../quantiles/DoublesSketchMergeAggregator.java | 3 + .../DoublesSketchMergeBufferAggregator.java | 3 +- .../quantiles/DoublesSketchModule.java | 4 +- .../datasketches/theta/SketchAggregator.java | 4 + .../datasketches/theta/SketchHolder.java | 6 +- .../datasketches/theta/SketchModule.java | 19 +- .../theta/SketchToStringPostAggregator.java | 136 + .../theta/oldapi/OldApiSketchModule.java | 29 +- .../tuple/ArrayOfDoublesSketchBuildAggregator.java | 4 + .../ArrayOfDoublesSketchBuildBufferAggregator.java | 3 + .../tuple/ArrayOfDoublesSketchMergeAggregator.java | 3 + .../tuple/ArrayOfDoublesSketchModule.java | 20 +- .../hll/HllSketchAggregatorFactoryTest.java | 284 ++ .../datasketches/hll/HllSketchAggregatorTest.java | 278 +- .../hll/HllSketchMergeAggregatorFactoryTest.java | 159 + .../hll/sql/HllSketchSqlAggregatorTest.java | 47 +- ...ouperUsingSketchMergeAggregatorFactoryTest.java | 15 +- .../theta/SketchToStringPostAggregatorTest.java | 55 + .../druid/guice/BloomFilterSerializersModule.java | 6 +- .../query/expressions/BloomFilterExprMacro.java | 2 +- .../druid/query/filter/BloomDimFilterTest.java | 15 +- .../druid/query/filter/BloomKFilterTest.java | 274 +- .../query/filter/sql/BloomDimFilterSqlTest.java | 6 + .../druid/storage/google/GoogleByteSourceTest.java | 7 +- .../google/GoogleDataSegmentKillerTest.java | 38 +- .../google/GoogleDataSegmentPullerTest.java | 14 +- .../google/GoogleDataSegmentPusherTest.java | 23 +- .../druid/storage/google/GoogleTaskLogsTest.java | 51 +- .../ApproximateHistogramAggregatorFactory.java | 111 +- .../histogram/ApproximateHistogramDruidModule.java | 9 +- ...proximateHistogramFoldingAggregatorFactory.java | 94 +- .../FixedBucketsHistogramAggregatorFactory.java | 57 +- ...FixedBucketsHistogramQuantileSqlAggregator.java | 6 +- .../histogram/sql/QuantileSqlAggregator.java | 9 +- .../ApproximateHistogramAggregatorTest.java | 40 +- .../ApproximateHistogramGroupByQueryTest.java | 6 +- .../ApproximateHistogramTopNQueryTest.java | 16 +- .../FixedBucketsHistogramBufferAggregatorTest.java | 57 +- .../FixedBucketsHistogramGroupByQueryTest.java | 8 +- .../FixedBucketsHistogramTopNQueryTest.java | 21 +- ...dBucketsHistogramQuantileSqlAggregatorTest.java | 58 +- .../histogram/sql/QuantileSqlAggregatorTest.java | 26 +- extensions-core/kafka-eight/pom.xml | 75 - .../firehose/kafka/KafkaEightDruidModule.java | 52 - .../firehose/kafka/KafkaEightFirehoseFactory.java | 176 -- .../org.apache.druid.initialization.DruidModule | 16 - .../lookup/KafkaLookupExtractorFactoryTest.java | 54 +- .../IncrementalPublishingKafkaIndexTaskRunner.java | 12 +- .../indexing/kafka/KafkaIndexTaskTuningConfig.java | 4 + .../indexing/kafka/supervisor/KafkaSupervisor.java | 6 + .../kafka/supervisor/KafkaSupervisorSpec.java | 1 + .../supervisor/KafkaSupervisorTuningConfig.java | 3 + .../indexing/kafka/KafkaIndexTaskClientTest.java | 238 +- .../druid/indexing/kafka/KafkaIndexTaskTest.java | 45 +- .../kafka/KafkaIndexTaskTuningConfigTest.java | 12 +- .../kafka/supervisor/KafkaSupervisorTest.java | 1352 +++++---- .../KafkaSupervisorTuningConfigTest.java | 8 +- .../TestModifiedKafkaIndexTaskTuningConfig.java | 2 + .../kinesis/KinesisIndexTaskTuningConfig.java | 3 + .../kinesis/supervisor/KinesisSupervisorSpec.java | 1 + .../supervisor/KinesisSupervisorTuningConfig.java | 3 + .../kinesis/KinesisIndexTaskClientTest.java | 224 +- .../indexing/kinesis/KinesisIndexTaskTest.java | 777 +++-- .../kinesis/KinesisIndexTaskTuningConfigTest.java | 3 + .../kinesis/KinesisRecordSupplierTest.java | 379 +-- .../indexing/kinesis/KinesisSamplerSpecTest.java | 15 +- .../kinesis/supervisor/KinesisSupervisorTest.java | 923 +++--- .../TestModifiedKinesisIndexTaskTuningConfig.java | 3 + .../lookup/NamespaceLookupExtractorFactory.java | 2 +- .../OffHeapNamespaceExtractionCacheManager.java | 2 +- .../namespace/UriExtractionNamespaceTest.java | 8 +- .../input/orc/OrcHadoopInputRowParserTest.java | 117 +- .../input/parquet/ParquetExtensionsModule.java | 8 +- .../data/input/parquet/CompatParquetInputTest.java | 96 +- .../input/parquet/DecimalParquetInputTest.java | 25 +- .../input/parquet/FlattenSpecParquetInputTest.java | 98 +- .../input/parquet/TimestampsParquetInputTest.java | 11 +- .../data/input/parquet/WikiParquetInputTest.java | 9 +- .../input/protobuf/ProtobufInputRowParserTest.java | 19 +- .../druid/storage/s3/S3DataSegmentPusher.java | 13 +- .../org/apache/druid/storage/s3/S3TaskLogs.java | 4 +- .../apache/druid/storage/s3/S3TaskLogsConfig.java | 22 + .../java/org/apache/druid/storage/s3/S3Utils.java | 23 + .../apache/druid/storage/s3/S3TaskLogsTest.java | 106 + .../storage/s3/TestAWSCredentialsProvider.java | 16 +- .../s3/TestFileSessionCredentialsProvider.java | 9 +- .../query/aggregation/stats/DruidStatsModule.java | 5 +- .../variance/VarianceGroupByQueryTest.java | 18 +- .../variance/VarianceTimeseriesQueryTest.java | 18 +- .../variance/VarianceTopNQueryTest.java | 9 +- .../druid/indexer/DeterminePartitionsJob.java | 38 +- .../druid/indexer/HadoopDruidIndexerConfig.java | 5 + .../apache/druid/indexer/HadoopTuningConfig.java | 14 + .../apache/druid/indexer/IndexGeneratorJob.java | 2 +- .../druid/indexer/BatchDeltaIngestionTest.java | 1 + .../indexer/DetermineHashedPartitionsJobTest.java | 1 + .../druid/indexer/DeterminePartitionsJobTest.java | 1 + .../indexer/HadoopDruidIndexerConfigTest.java | 2 + .../druid/indexer/HadoopTuningConfigTest.java | 2 + .../druid/indexer/IndexGeneratorJobTest.java | 1 + .../org/apache/druid/indexer/JobHelperTest.java | 1 + .../indexer/path/GranularityPathSpecTest.java | 1 + .../indexing/common/SegmentLoaderFactory.java | 2 +- .../druid/indexing/common/config/TaskConfig.java | 25 +- .../index/RealtimeAppenderatorTuningConfig.java | 12 + .../indexing/common/index/YeOldePlumberSchool.java | 2 +- .../task/AppenderatorDriverRealtimeIndexTask.java | 2 +- .../indexing/common/task/HadoopIndexTask.java | 3 +- .../druid/indexing/common/task/IndexTask.java | 46 +- .../druid/indexing/common/task/KillTask.java | 4 + .../task/batch/parallel/ParallelIndexSubTask.java | 2 +- .../parallel/ParallelIndexSupervisorTask.java | 1 + .../batch/parallel/ParallelIndexTuningConfig.java | 4 +- .../druid/indexing/overlord/ForkingTaskRunner.java | 42 +- .../druid/indexing/overlord/RemoteTaskRunner.java | 4 +- .../overlord/SingleTaskBackgroundRunner.java | 8 +- .../apache/druid/indexing/overlord/TaskQueue.java | 15 +- .../overlord/WorkerTaskRunnerQueryAdapter.java | 3 +- .../druid/indexing/overlord/hrtr/WorkerHolder.java | 6 +- .../indexing/overlord/http/OverlordResource.java | 6 +- .../overlord/supervisor/SupervisorManager.java | 20 - .../overlord/supervisor/SupervisorResource.java | 34 +- .../SeekableStreamDataSourceMetadata.java | 8 +- .../SeekableStreamEndSequenceNumbers.java | 8 +- .../SeekableStreamIndexTaskRunner.java | 9 +- .../SeekableStreamIndexTaskTuningConfig.java | 13 + .../SeekableStreamStartSequenceNumbers.java | 8 +- .../supervisor/SeekableStreamSupervisor.java | 3 +- .../indexing/worker/IntermediaryDataManager.java | 331 +++ .../druid/indexing/worker/config/WorkerConfig.java | 31 +- .../indexing/worker/http/ShuffleResource.java | 122 + .../worker/http/TaskManagementResource.java | 6 +- .../druid/indexing/worker/http/WorkerResource.java | 2 +- .../druid/indexing/common/TaskToolboxTest.java | 2 +- .../druid/indexing/common/TestRealtimeTask.java | 3 +- .../common/actions/RemoteTaskActionClientTest.java | 23 +- .../common/actions/SegmentListActionsTest.java | 4 +- .../AppenderatorDriverRealtimeIndexTaskTest.java | 6 +- .../common/task/CompactionTaskRunTest.java | 11 +- .../indexing/common/task/CompactionTaskTest.java | 6 + .../druid/indexing/common/task/HadoopTaskTest.java | 1 + .../druid/indexing/common/task/IndexTaskTest.java | 6 +- .../common/task/RealtimeIndexTaskTest.java | 7 +- .../druid/indexing/common/task/TaskSerdeTest.java | 6 +- .../ParallelIndexSupervisorTaskKillTest.java | 1 + .../ParallelIndexSupervisorTaskResourceTest.java | 1 + .../ParallelIndexSupervisorTaskSerdeTest.java | 1 + .../parallel/ParallelIndexSupervisorTaskTest.java | 2 + .../parallel/ParallelIndexTuningConfigTest.java | 1 + .../firehose/IngestSegmentFirehoseFactoryTest.java | 24 +- .../IngestSegmentFirehoseFactoryTimelineTest.java | 4 +- .../overlord/SingleTaskBackgroundRunnerTest.java | 1 + .../druid/indexing/overlord/TaskLifecycleTest.java | 9 +- .../overlord/supervisor/SupervisorManagerTest.java | 16 +- .../supervisor/SupervisorResourceTest.java | 270 +- .../SeekableStreamSupervisorStateTest.java | 113 +- .../IntermediaryDataManagerAutoCleanupTest.java | 148 + ...ermediaryDataManagerManualAddAndDeleteTest.java | 174 ++ .../indexing/worker/TaskAnnouncementTest.java | 3 +- .../indexing/worker/WorkerTaskManagerTest.java | 1 + .../indexing/worker/WorkerTaskMonitorTest.java | 1 + integration-tests/README.md | 3 + .../clients/AbstractQueryResourceTestClient.java | 3 +- .../clients/ClientInfoResourceTestClient.java | 3 +- .../clients/CoordinatorResourceTestClient.java | 3 +- .../clients/EventReceiverFirehoseTestClient.java | 4 +- .../clients/OverlordResourceTestClient.java | 11 +- .../testing/utils/AbstractTestQueryHelper.java | 2 +- .../org/apache/druid/testing/utils/RetryUtil.java | 4 +- .../java/org/testng/DruidTestRunnerFactory.java | 4 +- .../druid/tests/indexer/ITUnionQueryTest.java | 4 +- .../security/ITBasicAuthConfigurationTest.java | 4 +- .../org/apache/druid/tests/security/ITTLSTest.java | 4 +- licenses.yaml | 3088 +++++++++++++++++++ licenses/APACHE2 | 210 ++ licenses/bin/@babel-polyfill.MIT | 22 + licenses/bin/@types-dom4.MIT | 21 + licenses/bin/array-includes.MIT | 21 - licenses/bin/copy-to-clipboard.MIT | 21 + licenses/bin/core-js.MIT | 19 + licenses/bin/create-react-context.MIT | 19 + licenses/bin/debug.MIT | 19 + licenses/bin/define-properties.MIT | 21 - licenses/bin/es-abstract.MIT | 21 - licenses/bin/es-to-primitive.MIT | 22 - licenses/bin/es6-shim.MIT | 26 - licenses/bin/es7-shim.MIT | 22 - licenses/bin/file-saver.MIT | 11 + licenses/bin/follow-redirects.MIT | 18 + licenses/bin/function-bind.MIT | 20 - licenses/bin/gud.MIT | 21 + licenses/bin/has-own-prop.MIT | 9 + licenses/bin/has-symbols.MIT | 21 - licenses/bin/has.MIT | 22 - licenses/bin/history.MIT | 4 +- licenses/bin/iconv-lite.MIT | 21 + licenses/bin/is-callable.MIT | 22 - licenses/bin/is-date-object.MIT | 22 - licenses/bin/is-regex.MIT | 20 - licenses/bin/is-stream.MIT | 21 + licenses/bin/is-symbol.MIT | 22 - licenses/bin/isarray.MIT | 16 +- licenses/bin/isomorphic-fetch.MIT | 21 + licenses/bin/javax.activation-api.CDDL11 | 362 +++ licenses/bin/javax.annotation-api.CDDL11 | 362 +++ licenses/bin/jersey-json.CDDL11 | 550 ++++ licenses/bin/js-tokens.MIT | 21 + licenses/bin/lodash.debounce.MIT | 47 + licenses/bin/lodash.get.MIT | 47 + licenses/bin/lodash.isequal.MIT | 47 + licenses/bin/loose-envify.MIT | 21 + licenses/bin/memoize-one.MIT | 21 + licenses/bin/mini-create-react-context.MIT | 21 + licenses/bin/ms.MIT | 21 + licenses/bin/node-fetch.MIT | 22 + licenses/bin/normalize.css.MIT | 21 + licenses/bin/object-keys.MIT | 21 - licenses/bin/old-jaxb.CDDL11 | 362 +++ licenses/bin/popper.js.MIT | 25 + licenses/bin/react-lifecycles-compat.MIT | 21 + licenses/bin/react-popper.MIT | 21 + licenses/bin/react-router-dom.MIT | 58 +- licenses/bin/react-router.MIT | 61 +- licenses/bin/react-splitter-layout.MIT | 19 + licenses/bin/react-transition-group.BSD3 | 2 +- licenses/bin/regenerator-runtime.MIT | 21 + licenses/bin/resize-observer-polyfill.MIT | 21 + licenses/bin/safer-buffer.MIT | 21 + licenses/bin/setimmediate.MIT | 20 + licenses/bin/string-at.MIT | 22 - licenses/bin/tiny-invariant.MIT | 21 + licenses/bin/tiny-warning.MIT | 21 + licenses/bin/toggle-selection.MIT | 21 + licenses/bin/typed-styles.MIT | 21 + licenses/bin/ua-parser-js.MIT | 2 +- licenses/bin/whatwg-fetch.MIT | 20 + licenses/src/porter-stemmer.BSD3 | 30 + pom.xml | 18 +- .../collections/bitmap/BatchIteratorAdapter.java | 58 + .../druid/collections/bitmap/ImmutableBitmap.java | 9 + .../collections/bitmap/WrappedBitSetBitmap.java | 12 +- .../bitmap/WrappedImmutableRoaringBitmap.java | 7 + .../apache/druid/jackson/AggregatorsModule.java | 18 +- .../org/apache/druid/query/AsyncQueryRunner.java | 4 +- .../apache/druid/query/BySegmentQueryRunner.java | 4 +- .../druid/query/BySegmentSkippingQueryRunner.java | 7 +- .../druid/query/CPUTimeMetricQueryRunner.java | 4 +- .../druid/query/ChainedExecutionQueryRunner.java | 4 +- .../org/apache/druid/query/ConcatQueryRunner.java | 5 +- .../apache/druid/query/DefaultQueryMetrics.java | 6 + .../druid/query/FinalizeResultsQueryRunner.java | 5 +- .../druid/query/FluentQueryRunnerBuilder.java | 4 +- .../druid/query/GroupByMergedQueryRunner.java | 4 +- .../druid/query/IntervalChunkingQueryRunner.java | 4 +- .../druid/query/MetricsEmittingQueryRunner.java | 4 +- .../org/apache/druid/query/NoopQueryRunner.java | 5 +- .../query/PerSegmentOptimizingQueryRunner.java | 5 +- .../java/org/apache/druid/query/QueryContexts.java | 61 + .../java/org/apache/druid/query/QueryMetrics.java | 6 + .../java/org/apache/druid/query/QueryPlus.java | 4 +- .../java/org/apache/druid/query/QueryRunner.java | 12 +- .../org/apache/druid/query/QueryRunnerFactory.java | 30 +- .../org/apache/druid/query/QueryRunnerHelper.java | 28 +- .../org/apache/druid/query/QueryToolChest.java | 32 +- .../query/ReferenceCountingSegmentQueryRunner.java | 5 +- .../ReportTimelineMissingSegmentQueryRunner.java | 8 +- .../main/java/org/apache/druid/query/Result.java | 3 - .../apache/druid/query/ResultMergeQueryRunner.java | 29 +- .../org/apache/druid/query/RetryQueryRunner.java | 10 +- .../apache/druid/query/SubqueryQueryRunner.java | 5 +- .../org/apache/druid/query/TimewarpOperator.java | 4 +- .../org/apache/druid/query/UnionQueryRunner.java | 5 +- .../query/aggregation/AggregatorAdapters.java | 389 +++ .../druid/query/aggregation/AggregatorFactory.java | 18 + .../druid/query/aggregation/BufferAggregator.java | 4 + .../query/aggregation/CountAggregatorFactory.java | 13 + .../query/aggregation/CountVectorAggregator.java | 66 + .../aggregation/DoubleSumAggregatorFactory.java | 23 + .../aggregation/DoubleSumVectorAggregator.java | 83 + .../aggregation/FilteredAggregatorFactory.java | 60 +- .../aggregation/FilteredVectorAggregator.java | 153 + .../aggregation/FloatSumAggregatorFactory.java | 23 + .../aggregation/FloatSumVectorAggregator.java | 84 + .../aggregation/LongSumAggregatorFactory.java | 27 +- .../query/aggregation/LongSumVectorAggregator.java | 83 + .../query/aggregation/NoopVectorAggregator.java | 74 + .../aggregation/NullableAggregatorFactory.java | 71 +- .../aggregation/NullableBufferAggregator.java | 26 +- .../aggregation/NullableVectorAggregator.java | 165 ++ .../aggregation/SimpleDoubleAggregatorFactory.java | 2 +- .../aggregation/SimpleFloatAggregatorFactory.java | 2 +- .../aggregation/SimpleLongAggregatorFactory.java | 2 +- .../aggregation/SuppressedAggregatorFactory.java | 93 + .../druid/query/aggregation/VectorAggregator.java | 86 + .../cardinality/CardinalityBufferAggregator.java | 13 +- .../aggregation/first/StringFirstAggregator.java | 2 +- .../first/StringFirstBufferAggregator.java | 2 +- .../hyperloglog/HyperUniquesAggregatorFactory.java | 22 + .../hyperloglog/HyperUniquesBufferAggregator.java | 30 +- .../aggregation/hyperloglog/HyperUniquesSerde.java | 5 + .../hyperloglog/HyperUniquesVectorAggregator.java | 116 + .../hyperloglog/PreComputedHyperUniquesSerde.java | 5 +- .../aggregation/last/StringLastAggregator.java | 2 +- .../last/StringLastBufferAggregator.java | 2 +- .../aggregation/post/ExpressionPostAggregator.java | 11 +- .../query/aggregation/post/PostAggregatorIds.java | 3 +- .../query/context/ConcurrentResponseContext.java | 45 + .../query/context/DefaultResponseContext.java | 45 + .../druid/query/context/ResponseContext.java | 131 + .../DataSourceMetadataQueryRunnerFactory.java | 6 +- .../DataSourceQueryQueryToolChest.java | 4 +- .../query/dimension/DefaultDimensionSpec.java | 20 + .../druid/query/dimension/DimensionSpec.java | 22 + .../query/dimension/VectorColumnStrategizer.java | 41 + .../expression/TimestampExtractExprMacro.java | 30 +- .../druid/query/expression/TrimExprMacro.java | 16 +- .../druid/query/filter/ExpressionDimFilter.java | 2 +- .../java/org/apache/druid/query/filter/Filter.java | 22 + .../druid/query/filter/IntervalDimFilter.java | 6 + .../StringValueMatcherColumnSelectorStrategy.java | 64 +- .../apache/druid/query/filter/ValueMatcher.java | 5 + .../ValueMatcherColumnSelectorStrategyFactory.java | 2 +- .../filter/vector/BaseVectorValueMatcher.java | 44 + .../filter/vector/BooleanVectorValueMatcher.java | 63 + .../filter/vector/DoubleVectorValueMatcher.java | 105 + .../filter/vector/FloatVectorValueMatcher.java | 105 + .../filter/vector/LongVectorValueMatcher.java | 105 + .../vector/MultiValueStringVectorValueMatcher.java | 208 ++ .../query/filter/vector/ReadableVectorMatch.java | 68 + .../SingleValueStringVectorValueMatcher.java | 192 ++ .../druid/query/filter/vector/VectorMatch.java | 267 ++ .../query/filter/vector/VectorValueMatcher.java | 42 + .../VectorValueMatcherColumnStrategizer.java | 74 + .../filter/vector/VectorValueMatcherFactory.java | 31 + .../apache/druid/query/groupby/GroupByQuery.java | 1 + .../druid/query/groupby/GroupByQueryConfig.java | 16 +- .../druid/query/groupby/GroupByQueryEngine.java | 10 +- .../query/groupby/GroupByQueryQueryToolChest.java | 47 +- .../query/groupby/GroupByQueryRunnerFactory.java | 6 +- .../groupby/RowBasedColumnSelectorFactory.java | 3 +- .../epinephelinae/AbstractBufferHashGrouper.java | 49 +- .../groupby/epinephelinae/AggregateResult.java | 48 +- .../groupby/epinephelinae/BufferArrayGrouper.java | 169 +- .../groupby/epinephelinae/BufferHashGrouper.java | 207 +- .../groupby/epinephelinae/ByteBufferHashTable.java | 17 +- .../groupby/epinephelinae/ByteBufferKeySerde.java | 91 + .../epinephelinae/CloseableGrouperIterator.java | 5 +- .../groupby/epinephelinae/ConcurrentGrouper.java | 5 +- .../groupby/epinephelinae/GroupByBinaryFnV2.java | 7 +- .../epinephelinae/GroupByMergingQueryRunnerV2.java | 4 +- .../epinephelinae/GroupByQueryEngineV2.java | 208 +- .../druid/query/groupby/epinephelinae/Grouper.java | 8 +- .../query/groupby/epinephelinae/Groupers.java | 66 +- .../epinephelinae/LimitedBufferHashGrouper.java | 40 +- .../epinephelinae/RowBasedGrouperHelper.java | 570 ++-- .../groupby/epinephelinae/SpillingGrouper.java | 21 +- .../query/groupby/epinephelinae/VectorGrouper.java | 77 + .../vector/DoubleGroupByVectorColumnSelector.java | 71 + .../vector/FloatGroupByVectorColumnSelector.java | 69 + .../vector/GroupByVectorColumnSelector.java | 37 + .../vector/GroupByVectorColumnStrategizer.java | 70 + .../vector/LongGroupByVectorColumnSelector.java | 70 + ...ngleValueStringGroupByVectorColumnSelector.java | 69 + .../epinephelinae/vector/VectorGroupByEngine.java | 436 +++ .../query/groupby/strategy/GroupByStrategy.java | 29 +- .../query/groupby/strategy/GroupByStrategyV1.java | 4 +- .../query/groupby/strategy/GroupByStrategyV2.java | 42 +- .../query/lookup/RegisteredLookupExtractionFn.java | 2 +- .../SegmentMetadataQueryQueryToolChest.java | 16 +- .../SegmentMetadataQueryRunnerFactory.java | 5 +- .../metadata/metadata/AllColumnIncluderator.java | 2 + .../metadata/metadata/ColumnIncluderator.java | 4 - .../metadata/metadata/ListColumnIncluderator.java | 4 +- .../metadata/metadata/NoneColumnIncluderator.java | 2 + .../apache/druid/query/scan/ScanQueryEngine.java | 23 +- .../query/scan/ScanQueryLimitRowIterator.java | 4 +- .../druid/query/scan/ScanQueryRunnerFactory.java | 16 +- .../query/search/DefaultSearchQueryMetrics.java | 6 + .../apache/druid/query/search/SearchBinaryFn.java | 7 +- .../query/search/SearchQueryQueryToolChest.java | 40 +- .../druid/query/search/SearchQueryRunner.java | 4 +- .../apache/druid/query/search/SearchStrategy.java | 2 +- .../query/select/DefaultSelectQueryMetrics.java | 6 + .../apache/druid/query/select/SelectBinaryFn.java | 5 +- .../query/select/SelectQueryQueryToolChest.java | 41 +- .../query/select/SelectQueryRunnerFactory.java | 4 +- .../query/spec/SpecificSegmentQueryRunner.java | 12 +- .../TimeBoundaryQueryQueryToolChest.java | 4 +- .../TimeBoundaryQueryRunnerFactory.java | 4 +- .../druid/query/timeseries/TimeseriesBinaryFn.java | 5 +- .../query/timeseries/TimeseriesQueryEngine.java | 272 +- .../timeseries/TimeseriesQueryQueryToolChest.java | 49 +- .../timeseries/TimeseriesQueryRunnerFactory.java | 4 +- .../query/timeseries/TimeseriesResultBuilder.java | 7 +- .../query/topn/AlphaNumericTopNMetricSpec.java | 2 +- .../org/apache/druid/query/topn/TopNBinaryFn.java | 4 +- .../apache/druid/query/topn/TopNQueryBuilder.java | 12 + .../druid/query/topn/TopNQueryQueryToolChest.java | 57 +- .../druid/query/topn/TopNQueryRunnerFactory.java | 4 +- .../types/StringTopNColumnSelectorStrategy.java | 3 +- .../query/vector/VectorCursorGranularizer.java | 173 ++ .../druid/segment/ColumnSelectorFactory.java | 2 + .../main/java/org/apache/druid/segment/Cursor.java | 4 +- .../org/apache/druid/segment/CursorFactory.java | 43 + .../druid/segment/DimensionDictionarySelector.java | 104 + .../druid/segment/DimensionHandlerUtils.java | 78 + .../apache/druid/segment/DimensionSelector.java | 78 +- .../druid/segment/DoubleDimensionIndexer.java | 2 +- .../druid/segment/FloatDimensionIndexer.java | 2 +- .../java/org/apache/druid/segment/IndexIO.java | 2 +- .../apache/druid/segment/LongDimensionIndexer.java | 2 +- .../org/apache/druid/segment/MetricHolder.java | 4 + .../QueryableIndexCursorSequenceBuilder.java | 602 ++++ .../druid/segment/QueryableIndexSegment.java | 4 +- .../segment/QueryableIndexStorageAdapter.java | 603 ++-- .../segment/SingleScanTimeDimensionSelector.java | 4 +- .../org/apache/druid/segment/StorageAdapter.java | 5 + .../druid/segment/StringDimensionIndexer.java | 6 +- .../druid/segment/StringDimensionMergerV9.java | 42 +- .../org/apache/druid/segment/VirtualColumns.java | 5 + .../apache/druid/segment/column/BaseColumn.java | 14 + .../apache/druid/segment/column/ColumnBuilder.java | 9 +- .../segment/column/ColumnCapabilitiesImpl.java | 12 + .../druid/segment/column/ColumnDescriptor.java | 4 + .../apache/druid/segment/column/ComplexColumn.java | 52 + .../segment/column/DictionaryEncodedColumn.java | 13 + .../apache/druid/segment/column/DoublesColumn.java | 9 +- .../segment/column/DoublesColumnWithNulls.java | 8 + .../apache/druid/segment/column/FloatsColumn.java | 8 + .../segment/column/FloatsColumnWithNulls.java | 8 + .../apache/druid/segment/column/LongsColumn.java | 8 + .../druid/segment/column/LongsColumnWithNulls.java | 8 + .../column/StringDictionaryEncodedColumn.java | 163 +- .../data/BlockLayoutColumnarDoublesSerializer.java | 3 + .../data/BlockLayoutColumnarDoublesSupplier.java | 65 +- .../data/BlockLayoutColumnarFloatsSerializer.java | 3 + .../data/BlockLayoutColumnarFloatsSupplier.java | 69 +- .../data/BlockLayoutColumnarLongsSerializer.java | 3 + .../data/BlockLayoutColumnarLongsSupplier.java | 52 +- .../druid/segment/data/ByteBufferWriter.java | 4 + .../apache/druid/segment/data/ColumnarDoubles.java | 76 +- .../apache/druid/segment/data/ColumnarFloats.java | 75 +- .../apache/druid/segment/data/ColumnarLongs.java | 75 +- .../druid/segment/data/ColumnarMultiInts.java | 10 + .../data/CompressedColumnarIntsSerializer.java | 6 +- .../CompressedVSizeColumnarIntsSerializer.java | 5 +- .../data/CompressedVSizeColumnarIntsSupplier.java | 64 +- .../CompressedVSizeColumnarMultiIntsSupplier.java | 41 +- .../druid/segment/data/CompressionFactory.java | 21 + .../data/EntireLayoutColumnarFloatsSupplier.java | 16 - .../data/EntireLayoutColumnarLongsSupplier.java | 16 - .../apache/druid/segment/data/GenericIndexed.java | 1 + .../druid/segment/data/GenericIndexedWriter.java | 3 + .../org/apache/druid/segment/data/IndexedInts.java | 15 + .../data/IntermediateColumnarLongsSerializer.java | 6 +- .../segment/data/LongsLongEncodingReader.java | 13 + .../segment/data/LongsLongEncodingWriter.java | 4 + .../apache/druid/segment/data/ReadableOffset.java | 2 + .../segment/data/VSizeColumnarIntsSerializer.java | 6 +- .../druid/segment/data/VSizeColumnarMultiInts.java | 6 + .../data/VSizeColumnarMultiIntsSerializer.java | 4 + .../apache/druid/segment/data/VSizeLongSerde.java | 9 +- .../org/apache/druid/segment/filter/AndFilter.java | 50 +- .../apache/druid/segment/filter/BoundFilter.java | 20 + .../segment/filter/DimensionPredicateFilter.java | 20 + .../druid/segment/filter/ExpressionFilter.java | 2 +- .../org/apache/druid/segment/filter/InFilter.java | 20 + .../apache/druid/segment/filter/LikeFilter.java | 20 + .../org/apache/druid/segment/filter/NotFilter.java | 33 + .../org/apache/druid/segment/filter/OrFilter.java | 125 +- .../druid/segment/filter/SelectorFilter.java | 20 + .../segment/incremental/IncrementalIndex.java | 88 +- .../incremental/IncrementalIndexAdapter.java | 1 + .../IncrementalIndexColumnSelectorFactory.java | 9 +- .../incremental/IncrementalIndexRowHolder.java | 3 + .../incremental/IncrementalIndexRowIterator.java | 7 +- .../IncrementalIndexStorageAdapter.java | 34 +- .../incremental/OffheapIncrementalIndex.java | 5 + .../incremental/OnheapIncrementalIndex.java | 4 +- .../segment/serde/ComplexColumnPartSerde.java | 18 +- .../apache/druid/segment/serde/ComplexMetrics.java | 12 +- .../serde/DictionaryEncodedColumnPartSerde.java | 10 +- .../serde/DoubleNumericColumnPartSerde.java | 37 +- .../serde/DoubleNumericColumnPartSerdeV2.java | 5 +- .../segment/serde/FloatNumericColumnPartSerde.java | 2 + .../serde/FloatNumericColumnPartSerdeV2.java | 5 +- .../segment/serde/LongNumericColumnPartSerde.java | 35 +- .../serde/LongNumericColumnPartSerdeV2.java | 11 +- .../vector/BaseDoubleVectorValueSelector.java | 88 + .../vector/BaseFloatVectorValueSelector.java | 88 + .../vector/BaseLongVectorValueSelector.java | 88 + .../druid/segment/vector/BitmapVectorOffset.java | 134 + .../druid/segment/vector/FilteredVectorOffset.java | 175 ++ .../vector/MultiValueDimensionVectorSelector.java | 37 + .../druid/segment/vector/NilVectorSelector.java | 178 ++ .../druid/segment/vector/NoFilterVectorOffset.java | 90 + .../QueryableIndexVectorColumnSelectorFactory.java | 194 ++ .../druid/segment/vector/ReadableVectorOffset.java | 67 + .../vector/SingleValueDimensionVectorSelector.java | 37 + .../vector/VectorColumnSelectorFactory.java | 69 + .../apache/druid/segment/vector/VectorCursor.java | 76 + .../druid/segment/vector/VectorObjectSelector.java | 33 + .../apache/druid/segment/vector/VectorOffset.java | 43 + .../druid/segment/vector/VectorSelectorUtils.java | 63 + .../druid/segment/vector/VectorSizeInspector.java | 39 + .../druid/segment/vector/VectorValueSelector.java | 55 + .../druid/segment/virtual/ExpressionSelectors.java | 27 +- .../segment/virtual/ExpressionVirtualColumn.java | 7 +- .../RowBasedExpressionColumnValueSelector.java | 2 +- ...gInputCachingExpressionColumnValueSelector.java | 2 +- ...gInputCachingExpressionColumnValueSelector.java | 5 +- .../SingleStringInputDimensionSelector.java | 44 +- .../druid/collections/CombiningIterableTest.java | 41 +- .../druid/granularity/QueryGranularityTest.java | 2 +- .../apache/druid/query/AsyncQueryRunnerTest.java | 16 +- .../query/ChainedExecutionQueryRunnerTest.java | 11 +- .../druid/query/DefaultQueryMetricsTest.java | 3 +- .../org/apache/druid/query/DoubleStorageTest.java | 6 +- .../query/IntervalChunkingQueryRunnerTest.java | 10 +- .../druid/query/MultiValuedDimensionTest.java | 151 +- .../apache/druid/query/QueryRunnerTestHelper.java | 16 +- .../apache/druid/query/RetryQueryRunnerTest.java | 59 +- .../apache/druid/query/SchemaEvolutionTest.java | 2 +- .../apache/druid/query/TimewarpOperatorTest.java | 25 +- .../apache/druid/query/UnionQueryRunnerTest.java | 7 +- .../query/aggregation/AggregationTestHelper.java | 9 +- .../query/aggregation/AggregatorUtilTest.java | 4 +- .../druid/query/cache/CacheKeyBuilderTest.java | 109 +- .../DataSourceMetadataQueryTest.java | 8 +- .../druid/query/filter/vector/VectorMatchTest.java | 127 + ...GroupByLimitPushDownInsufficientBufferTest.java | 11 +- .../GroupByLimitPushDownMultiNodeMergeTest.java | 11 +- .../query/groupby/GroupByMultiSegmentTest.java | 5 +- .../query/groupby/GroupByQueryMergeBufferTest.java | 47 +- .../groupby/GroupByQueryRunnerFactoryTest.java | 9 +- .../query/groupby/GroupByQueryRunnerTest.java | 1009 ++++--- .../groupby/GroupByQueryRunnerTestHelper.java | 2 +- .../groupby/GroupByTimeseriesQueryRunnerTest.java | 135 +- .../query/groupby/NestedQueryPushDownTest.java | 17 +- .../epinephelinae/BufferArrayGrouperTest.java | 15 +- .../epinephelinae/BufferHashGrouperTest.java | 26 +- .../LimitedBufferHashGrouperTest.java | 15 +- .../having/DimensionSelectorHavingSpecTest.java | 81 +- .../druid/query/groupby/having/HavingSpecTest.java | 195 +- .../druid/query/metadata/SegmentAnalyzerTest.java | 4 +- .../query/metadata/SegmentMetadataQueryTest.java | 47 +- .../metadata/SegmentMetadataUnionQueryTest.java | 5 +- .../query/scan/MultiSegmentScanQueryTest.java | 13 +- .../query/scan/ScanQueryLimitRowIteratorTest.java | 7 +- .../query/scan/ScanQueryRunnerFactoryTest.java | 4 +- .../druid/query/scan/ScanQueryRunnerTest.java | 38 +- .../druid/query/search/SearchQueryRunnerTest.java | 6 +- .../search/SearchQueryRunnerWithCaseTest.java | 74 +- .../query/select/MultiSegmentSelectQueryTest.java | 9 +- .../druid/query/select/SelectQueryRunnerTest.java | 35 +- .../query/spec/SpecificSegmentQueryRunnerTest.java | 19 +- .../timeboundary/TimeBoundaryQueryRunnerTest.java | 22 +- .../timeseries/TimeSeriesUnionQueryRunnerTest.java | 11 +- .../timeseries/TimeseriesQueryRunnerBonusTest.java | 4 +- .../timeseries/TimeseriesQueryRunnerTest.java | 279 +- .../query/topn/DefaultTopNQueryMetricsTest.java | 3 +- .../topn/TopNMetricSpecOptimizationsTest.java | 134 +- .../query/topn/TopNQueryQueryToolChestTest.java | 14 +- .../druid/query/topn/TopNQueryRunnerBenchmark.java | 13 +- .../druid/query/topn/TopNQueryRunnerTest.java | 387 ++- .../org/apache/druid/query/topn/TopNQueryTest.java | 58 +- .../druid/query/topn/TopNUnionQueryTest.java | 14 +- .../java/org/apache/druid/segment/AppendTest.java | 50 +- .../org/apache/druid/segment/CloserRuleTest.java | 2 +- .../segment/IndexMergerV9WithSpatialIndexTest.java | 7 +- .../apache/druid/segment/IntIteratorUtilsTest.java | 21 +- .../org/apache/druid/segment/IntListUtilsTest.java | 7 +- .../apache/druid/segment/MergeIntIteratorTest.java | 29 +- .../QueryableIndexCursorSequenceBuilderTest.java | 117 + .../apache/druid/segment/SchemalessIndexTest.java | 5 +- .../druid/segment/SchemalessTestFullTest.java | 26 +- .../druid/segment/SchemalessTestSimpleTest.java | 17 +- .../java/org/apache/druid/segment/TestIndex.java | 5 +- .../segment/data/BitmapCreationBenchmark.java | 2 +- .../data/CompressedColumnarIntsSerializerTest.java | 13 +- .../segment/data/CompressedFloatsSerdeTest.java | 2 +- .../segment/data/CompressedLongsSerdeTest.java | 2 +- .../CompressedVSizeColumnarIntsSerializerTest.java | 9 +- .../druid/segment/data/IncrementalIndexTest.java | 10 +- ...ressedVSizeColumnarMultiIntsSerializerTest.java | 19 +- .../data/VSizeColumnarIntsSerializerTest.java | 9 +- .../druid/segment/filter/BaseFilterTest.java | 240 +- .../druid/segment/filter/BoundFilterTest.java | 4 +- .../segment/filter/ColumnComparisonFilterTest.java | 52 +- .../druid/segment/filter/ExpressionFilterTest.java | 123 +- .../apache/druid/segment/filter/FiltersTest.java | 5 +- .../filter/FloatAndDoubleFilteringTest.java | 6 +- .../druid/segment/filter/JavaScriptFilterTest.java | 118 +- .../druid/segment/filter/LongFilteringTest.java | 4 +- .../druid/segment/filter/SelectorFilterTest.java | 61 +- .../segment/filter/SpatialFilterBonusTest.java | 10 +- .../druid/segment/filter/SpatialFilterTest.java | 7 +- .../druid/segment/filter/TimeFilteringTest.java | 6 +- .../IncrementalIndexStorageAdapterTest.java | 2 +- .../OnheapIncrementalIndexBenchmark.java | 8 +- .../druid/segment/serde/ComplexMetricsTest.java | 78 + .../virtual/DummyStringVirtualColumnTest.java | 4 +- .../virtual/ExpressionVirtualColumnTest.java | 17 +- .../druid/segment/virtual/VirtualColumnsTest.java | 3 +- publications/demo/figures/caching.png | Bin 36103 -> 29789 bytes publications/demo/figures/realtime_flow.png | Bin 52345 -> 41583 bytes publications/demo/figures/realtime_timeline.png | Bin 37015 -> 29939 bytes .../demo/figures/throughput_vs_cardinality.png | Bin 75254 -> 50493 bytes .../demo/figures/throughput_vs_num_dims.png | Bin 74606 -> 50912 bytes .../demo/figures/throughput_vs_num_metrics.png | Bin 87298 -> 63279 bytes publications/demo/figures/tpch_scaling.png | Bin 44252 -> 35808 bytes .../radstack/figures/druid_vs_bigquery.png | Bin 159171 -> 95074 bytes publications/radstack/figures/imps_clicks.png | Bin 195536 -> 135883 bytes publications/radstack/figures/joined.png | Bin 168080 -> 116192 bytes publications/radstack/figures/pipeline.png | Bin 401963 -> 288696 bytes publications/radstack/figures/precompute.png | Bin 55497 -> 17375 bytes publications/radstack/figures/radstack.png | Bin 17202 -> 10926 bytes publications/radstack/figures/shuffled.png | Bin 184794 -> 131290 bytes .../radstack/figures/throughput_vs_cardinality.png | Bin 75254 -> 50493 bytes .../radstack/figures/throughput_vs_num_dims.png | Bin 74606 -> 50912 bytes .../radstack/figures/throughput_vs_num_metrics.png | Bin 87298 -> 63279 bytes .../figures/throughput_vs_cardinality.png | Bin 75254 -> 50493 bytes .../whitepaper/figures/throughput_vs_num_dims.png | Bin 74606 -> 50912 bytes .../figures/throughput_vs_num_metrics.png | Bin 87298 -> 63279 bytes .../org/apache/druid/client/BrokerServerView.java | 44 +- .../druid/client/CachingClusteredClient.java | 17 +- .../apache/druid/client/CachingQueryRunner.java | 8 +- .../apache/druid/client/DataSourcesSnapshot.java | 126 +- .../org/apache/druid/client/DirectDruidClient.java | 34 +- .../org/apache/druid/client/DruidDataSource.java | 21 +- .../java/org/apache/druid/client/DruidServer.java | 2 - .../druid/client/ImmutableDruidDataSource.java | 44 +- .../apache/druid/client/ImmutableDruidServer.java | 21 +- .../client/cache/BackgroundCachePopulator.java | 4 + .../apache/druid/client/cache/CachePopulator.java | 19 + .../druid/client/cache/CachePopulatorStats.java | 5 + .../client/cache/ForegroundCachePopulator.java | 61 +- .../druid/client/indexing/ClientCompactQuery.java | 6 +- .../indexing/ClientCompactQueryTuningConfig.java | 14 +- .../druid/client/indexing/ClientKillQuery.java | 3 + .../apache/druid/client/indexing/ClientQuery.java | 7 +- .../client/indexing/HttpIndexingServiceClient.java | 21 + .../client/indexing/IndexingServiceClient.java | 3 + .../druid/client/indexing/TaskStatusResponse.java | 2 +- .../ConnectionCountServerSelectorStrategy.java | 3 +- .../client/selector/QueryableDruidServer.java | 16 +- .../druid/guice/FireDepartmentsProvider.java | 59 - .../org/apache/druid/guice/FirehoseModule.java | 6 +- .../apache/druid/guice/RealtimeManagerConfig.java | 37 - .../druid/initialization/Initialization.java | 4 +- .../initialization/Log4jShutterDownerModule.java | 12 +- .../druid/metadata/MetadataSegmentManager.java | 105 +- .../metadata/MetadataSegmentManagerConfig.java | 5 + .../druid/metadata/SQLMetadataRuleManager.java | 2 +- .../druid/metadata/SQLMetadataSegmentManager.java | 1025 ++++--- .../druid/metadata/UnknownSegmentIdException.java | 18 +- .../druid/query/ResultLevelCachingQueryRunner.java | 6 +- .../druid/segment/indexing/RealtimeIOConfig.java | 16 +- .../segment/indexing/RealtimeTuningConfig.java | 14 + .../loading/SegmentLoaderLocalCacheManager.java | 7 +- .../druid/segment/loading/StorageLocation.java | 55 +- .../segment/loading/StorageLocationConfig.java | 56 +- .../druid/segment/realtime/FireDepartment.java | 11 - .../druid/segment/realtime/RealtimeManager.java | 393 --- .../realtime/appenderator/AppenderatorConfig.java | 2 + .../realtime/appenderator/AppenderatorImpl.java | 4 +- .../realtime/appenderator/AppenderatorPlumber.java | 3 +- .../appenderator/BaseAppenderatorDriver.java | 10 +- .../firehose/EventReceiverFirehoseFactory.java | 5 +- .../segment/realtime/firehose/InlineFirehose.java | 99 + .../realtime/firehose/InlineFirehoseFactory.java | 77 + .../realtime/firehose/PredicateFirehose.java | 1 + .../realtime/firehose/SqlFirehoseFactory.java | 3 + .../segment/realtime/firehose/package-info.java | 23 + .../druid/segment/realtime/plumber/Committers.java | 13 - .../segment/realtime/plumber/RealtimePlumber.java | 5 +- .../apache/druid/server/BrokerQueryResource.java | 9 +- .../java/org/apache/druid/server/JettyUtils.java | 40 + .../org/apache/druid/server/QueryLifecycle.java | 10 +- .../org/apache/druid/server/QueryResource.java | 48 +- .../org/apache/druid/server/SegmentManager.java | 9 +- .../server/SetAndVerifyContextQueryRunner.java | 5 +- .../org/apache/druid/server/StatusResource.java | 3 +- .../coordination/BatchDataSegmentAnnouncer.java | 24 +- .../BatchDataSegmentAnnouncerProvider.java | 6 +- .../coordination/ChangeRequestHttpSyncer.java | 5 +- .../coordination/SegmentLoadDropHandler.java | 97 +- .../druid/server/coordination/ZkCoordinator.java | 57 +- .../coordinator/CoordinatorDynamicConfig.java | 207 +- .../server/coordinator/CostBalancerStrategy.java | 24 +- .../server/coordinator/CuratorLoadQueuePeon.java | 2 - .../DiskNormalizedCostBalancerStrategy.java | 4 +- .../druid/server/coordinator/DruidCluster.java | 33 +- .../druid/server/coordinator/DruidCoordinator.java | 135 +- .../DruidCoordinatorCleanupPendingSegments.java | 12 +- .../coordinator/DruidCoordinatorRuntimeParams.java | 179 +- .../coordinator/ReservoirSegmentSampler.java | 2 +- .../server/coordinator/SegmentReplicantLookup.java | 2 +- .../server/coordinator/cost/ClusterCostCache.java | 7 +- .../server/coordinator/cost/ServerCostCache.java | 7 +- .../helper/DruidCoordinatorBalancer.java | 20 +- .../DruidCoordinatorCleanupOvershadowed.java | 53 +- .../helper/DruidCoordinatorCleanupUnneeded.java | 13 +- .../coordinator/helper/DruidCoordinatorLogger.java | 13 +- .../helper/DruidCoordinatorRuleRunner.java | 27 +- .../helper/DruidCoordinatorSegmentCompactor.java | 3 +- .../helper/DruidCoordinatorSegmentInfoLoader.java | 53 +- .../helper/DruidCoordinatorSegmentKiller.java | 45 +- .../druid/server/coordinator/rules/DropRule.java | 2 +- .../druid/server/coordinator/rules/Rule.java | 8 +- .../druid/server/http/CoordinatorResource.java | 2 +- .../druid/server/http/DataSourcesResource.java | 447 ++- .../apache/druid/server/http/MetadataResource.java | 173 +- .../apache/druid/server/http/RouterResource.java | 3 + .../druid/server/http/SegmentListerResource.java | 8 +- .../server/security/AuthenticationResult.java | 2 + .../druid/server/security/AuthenticationUtils.java | 2 +- .../druid/server/security/AuthorizationUtils.java | 30 +- .../server/security/UnsecuredResourceFilter.java | 8 +- .../CachingClusteredClientFunctionalityTest.java | 25 +- .../druid/client/CachingClusteredClientTest.java | 69 +- .../druid/client/CachingQueryRunnerTest.java | 12 +- .../apache/druid/client/DirectDruidClientTest.java | 29 +- .../druid/client/ImmutableDruidDataSourceTest.java | 84 +- .../druid/client/ImmutableDruidServerTests.java | 39 + .../druid/client/indexing/ClientKillQueryTest.java | 12 +- .../client/indexing/NoopIndexingServiceClient.java | 7 + .../druid/client/selector/ServerSelectorTest.java | 10 +- .../org/apache/druid/guice/FirehoseModuleTest.java | 88 + .../druid/initialization/InitializationTest.java | 19 +- .../SQLMetadataSegmentManagerEmptyTest.java | 113 + .../metadata/SQLMetadataSegmentManagerTest.java | 1025 +++---- .../query/lookup/LookupReferencesManagerTest.java | 181 +- .../firehose/CombiningFirehoseFactoryTest.java | 159 - .../segment/indexing/RealtimeTuningConfigTest.java | 10 +- .../SegmentLoaderLocalCacheManagerTest.java | 36 +- .../druid/segment/loading/StorageLocationTest.java | 12 +- .../druid/segment/realtime/FireDepartmentTest.java | 3 +- .../segment/realtime/RealtimeManagerTest.java | 1104 ------- .../appenderator/AppenderatorPlumberTest.java | 1 + .../realtime/appenderator/AppenderatorTest.java | 18 +- .../realtime/appenderator/AppenderatorTester.java | 1 + .../DefaultOfflineAppenderatorFactoryTest.java | 1 + .../appenderator/TestUsedSegmentChecker.java | 8 +- .../firehose/CombiningFirehoseFactoryTest.java | 158 + .../firehose/InlineFirehoseFactoryTest.java | 113 + .../realtime/firehose/InlineFirehoseTest.java | 231 ++ .../plumber/RealtimePlumberSchoolTest.java | 1 + .../druid/segment/realtime/plumber/SinkTest.java | 2 + .../org/apache/druid/server/QueryResourceTest.java | 4 +- .../server/SegmentManagerThreadSafetyTest.java | 2 +- .../apache/druid/server/StatusResourceTest.java | 13 +- .../server/coordination/ServerManagerTest.java | 8 +- .../CoordinatorRuntimeParamsTestHelpers.java | 44 + .../coordinator/CostBalancerStrategyTest.java | 3 +- .../coordinator/CuratorDruidCoordinatorTest.java | 57 +- .../DiskNormalizedCostBalancerStrategyTest.java | 3 +- .../server/coordinator/DruidClusterBuilder.java | 61 + .../druid/server/coordinator/DruidClusterTest.java | 34 +- .../DruidCoordinatorBalancerProfiler.java | 139 +- .../coordinator/DruidCoordinatorBalancerTest.java | 109 +- .../DruidCoordinatorBalancerTester.java | 9 - .../DruidCoordinatorRuleRunnerTest.java | 967 ++---- .../server/coordinator/DruidCoordinatorTest.java | 72 +- .../coordinator/ReservoirSegmentSamplerTest.java | 9 +- .../cost/CachingCostBalancerStrategyTest.java | 2 +- .../coordinator/cost/SegmentsCostCacheTest.java | 25 +- .../DruidCoordinatorCleanupOvershadowedTest.java | 41 +- .../DruidCoordinatorSegmentCompactorTest.java | 42 +- .../helper/DruidCoordinatorSegmentKillerTest.java | 39 +- .../helper/NewestSegmentFirstPolicyTest.java | 13 +- .../rules/BroadcastDistributionRuleSerdeTest.java | 8 +- .../rules/BroadcastDistributionRuleTest.java | 193 +- .../server/coordinator/rules/LoadRuleTest.java | 590 ++-- .../server/http/CoordinatorDynamicConfigTest.java | 34 +- .../druid/server/http/DataSourcesResourceTest.java | 819 +++-- .../http/security/SecurityResourceFilterTest.java | 8 +- .../druid/server/initialization/JettyQosTest.java | 5 +- .../druid/server/initialization/JettyTest.java | 2 +- ...JavaScriptTieredBrokerSelectorStrategyTest.java | 24 +- .../utils/ImmutableDruidDataSourceTestUtils.java | 94 + .../java/org/apache/druid/cli/CliCoordinator.java | 12 +- .../org/apache/druid/cli/CliMiddleManager.java | 5 +- .../java/org/apache/druid/cli/CliOverlord.java | 8 +- .../java/org/apache/druid/cli/CliRealtime.java | 73 - .../org/apache/druid/cli/CliRealtimeExample.java | 131 - .../cli/CoordinatorJettyServerInitializer.java | 8 +- .../java/org/apache/druid/cli/DumpSegment.java | 37 +- .../src/main/java/org/apache/druid/cli/Main.java | 6 - .../cli/MiddleManagerJettyServerInitializer.java | 6 +- .../druid/cli/QueryJettyServerInitializer.java | 4 +- .../druid/cli/RouterJettyServerInitializer.java | 13 +- .../org/apache/druid/guice/RealtimeModule.java | 133 - .../test/java/org/apache/druid/cli/MainTest.java | 2 - .../druid/cli/validate/DruidJsonValidatorTest.java | 4 +- .../expression/DirectOperatorConversion.java | 5 + .../druid/sql/calcite/expression/TimeUnits.java | 14 +- .../ArrayConstructorOperatorConversion.java | 58 + .../builtin/ArrayContainsOperatorConversion.java | 54 + .../builtin/ArrayLengthOperatorConversion.java | 73 + .../builtin/ArrayOffsetOfOperatorConversion.java | 77 + .../builtin/ArrayOffsetOperatorConversion.java | 77 + .../builtin/ArrayOrdinalOfOperatorConversion.java | 77 + .../builtin/ArrayOrdinalOperatorConversion.java | 77 + .../builtin/ArrayOverlapOperatorConversion.java | 54 + .../builtin/ArrayToStringOperatorConversion.java | 77 + .../BaseExpressionDimFilterOperatorConversion.java | 70 + .../expression/builtin/CeilOperatorConversion.java | 54 +- .../builtin/ExtractOperatorConversion.java | 7 + .../builtin/FloorOperatorConversion.java | 46 +- .../MultiValueStringAppendOperatorConversion.java | 76 + .../MultiValueStringConcatOperatorConversion.java | 73 + .../MultiValueStringPrependOperatorConversion.java | 76 + .../MultiValueStringSliceOperatorConversion.java | 81 + ...StringToMultiValueStringOperatorConversion.java | 74 + .../builtin/TimeCeilOperatorConversion.java | 75 + .../builtin/TimeFloorOperatorConversion.java | 115 +- .../apache/druid/sql/calcite/planner/Calcites.java | 3 + .../sql/calcite/planner/DruidConvertletTable.java | 2 + .../sql/calcite/planner/DruidOperatorTable.java | 40 + .../sql/calcite/planner/DruidRexExecutor.java | 4 + .../apache/druid/sql/calcite/rel/Projection.java | 12 +- .../apache/druid/sql/calcite/rel/QueryMaker.java | 7 + .../apache/druid/sql/calcite/rule/DruidRules.java | 10 +- .../druid/sql/calcite/schema/SystemSchema.java | 2 +- .../druid/sql/avatica/DruidAvaticaHandlerTest.java | 14 + .../druid/sql/calcite/BaseCalciteQueryTest.java | 64 +- .../apache/druid/sql/calcite/CalciteQueryTest.java | 1245 +++++++- .../sql/calcite/expression/ExpressionsTest.java | 33 +- .../druid/sql/calcite/schema/DruidSchemaTest.java | 3 +- .../druid/sql/calcite/schema/SystemSchemaTest.java | 8 +- .../druid/sql/calcite/util/CalciteTests.java | 47 +- .../util/SpecificSegmentsQuerySegmentWalker.java | 5 +- web-console/.gitignore | 1 + web-console/README.md | 7 +- web-console/assets/druid.png | Bin 0 -> 15699 bytes web-console/assets/example.png | Bin 0 -> 8873 bytes web-console/assets/hadoop.png | Bin 0 -> 47082 bytes web-console/assets/http.png | Bin 0 -> 10407 bytes web-console/assets/kafka.png | Bin 0 -> 18022 bytes web-console/assets/kinesis.png | Bin 0 -> 15631 bytes web-console/assets/local.png | Bin 0 -> 9211 bytes web-console/assets/other.png | Bin 0 -> 9549 bytes web-console/assets/static-google-blobstore.png | Bin 0 -> 19344 bytes web-console/assets/static-s3.png | Bin 0 -> 16541 bytes web-console/babel.config.js | 38 + web-console/favicon.png | Bin 4514 -> 1644 bytes web-console/package-lock.json | 2827 ++++++++++++------ web-console/package.json | 87 +- web-console/script/build | 2 +- web-console/script/cp-to | 1 + web-console/script/create-sql-function-doc.js | 102 +- web-console/script/licenses | 175 ++ web-console/script/mkcomp | 30 +- web-console/src/ace-modes/dsql.js | 142 + web-console/src/ace-modes/hjson.js | 300 ++ .../bootstrap/react-table-custom-pagination.tsx | 32 +- web-console/src/bootstrap/react-table-defaults.tsx | 17 +- .../src/components/action-cell/action-cell.scss | 1 - .../components/action-cell/action-cell.spec.tsx | 7 +- .../src/components/action-cell/action-cell.tsx | 27 +- .../components/action-icon/action-icon.spec.tsx | 4 +- .../src/components/action-icon/action-icon.tsx | 8 +- .../components/array-input/array-input.spec.tsx | 16 +- .../src/components/array-input/array-input.tsx | 27 +- .../__snapshots__/auto-form.spec.tsx.snap | 2 +- .../src/components/auto-form/auto-form.spec.tsx | 25 +- web-console/src/components/auto-form/auto-form.tsx | 325 +- .../center-message/center-message.spec.tsx | 7 +- .../components/center-message/center-message.tsx | 11 +- .../__snapshots__/clearable-input.spec.tsx.snap | 2 +- .../clearable-input/clearable-input.spec.tsx | 13 +- .../components/clearable-input/clearable-input.tsx | 20 +- .../external-link/external-link.spec.tsx | 7 +- .../src/components/external-link/external-link.tsx | 13 +- .../__snapshots__/header-bar.spec.tsx.snap | 3 + .../src/components/header-bar/header-bar.scss | 4 +- .../src/components/header-bar/header-bar.spec.tsx | 7 +- .../src/components/header-bar/header-bar.tsx | 290 +- web-console/src/components/index.ts | 2 + .../json-collapse/json-collapse.spec.tsx | 10 +- .../src/components/json-collapse/json-collapse.tsx | 36 +- .../src/components/json-input/json-input.spec.tsx | 8 +- .../src/components/json-input/json-input.tsx | 66 +- web-console/src/components/loader/loader.scss | 6 +- web-console/src/components/loader/loader.spec.tsx | 7 +- web-console/src/components/loader/loader.tsx | 52 +- .../menu-checkbox/menu-checkbox.spec.tsx | 5 +- .../src/components/menu-checkbox/menu-checkbox.tsx | 9 +- .../components/refresh-button/refresh-button.tsx | 57 + .../components/rule-editor/rule-editor.spec.tsx | 23 +- .../src/components/rule-editor/rule-editor.tsx | 255 +- .../src/components/show-json/show-json.spec.tsx | 8 +- web-console/src/components/show-json/show-json.tsx | 74 +- .../src/components/show-log/show-log.spec.tsx | 9 +- web-console/src/components/show-log/show-log.tsx | 96 +- .../__snapshots__/suggestible-input.spec.tsx.snap | 51 + .../suggestible-input/suggestible-input.spec.tsx | 33 + .../suggestible-input/suggestible-input.tsx | 106 + .../__snapshots__/table-cell.spec.tsx.snap | 28 +- .../src/components/table-cell/table-cell.scss | 3 +- .../src/components/table-cell/table-cell.spec.tsx | 44 +- .../src/components/table-cell/table-cell.tsx | 51 +- .../table-column-selector.spec.tsx | 9 +- .../table-column-selector.tsx | 56 +- .../src/components/timed-button/timed-button.scss | 21 + .../src/components/timed-button/timed-button.tsx | 131 + .../view-control-bar/view-control-bar.scss | 2 +- .../view-control-bar/view-control-bar.spec.tsx | 7 +- .../view-control-bar/view-control-bar.tsx | 10 +- web-console/src/console-application.scss | 2 +- web-console/src/console-application.tsx | 250 +- .../__snapshots__/about-dialog.spec.tsx.snap | 9 +- .../src/dialogs/about-dialog/about-dialog.spec.tsx | 11 +- .../src/dialogs/about-dialog/about-dialog.tsx | 84 +- .../async-action-dialog.spec.tsx.snap | 2 +- .../async-action-dialog/async-action-dialog.scss | 23 + .../async-action-dialog.spec.tsx | 17 +- .../async-action-dialog/async-action-dialog.tsx | 133 +- .../__snapshots__/compaction-dialog.spec.tsx.snap | 2 +- .../compaction-dialog/compaction-dialog.spec.tsx | 13 +- .../compaction-dialog/compaction-dialog.tsx | 136 +- ...coordinator-dynamic-config-dialog.spec.tsx.snap | 114 + .../coordinator-dynamic-config-dialog.scss | 47 + .../coordinator-dynamic-config-dialog.spec.tsx | 30 + .../coordinator-dynamic-config-dialog.tsx | 296 ++ .../coordinator-dynamic-config.spec.tsx.snap | 123 - .../coordinator-dynamic-config.scss | 47 - .../coordinator-dynamic-config.spec.tsx | 33 - .../coordinator-dynamic-config.tsx | 184 -- .../src/dialogs/history-dialog/history-dialog.scss | 5 - .../dialogs/history-dialog/history-dialog.spec.tsx | 16 +- .../src/dialogs/history-dialog/history-dialog.tsx | 78 +- web-console/src/dialogs/index.ts | 4 +- .../lookup-edit-dialog/lookup-edit-dialog.scss | 8 +- .../lookup-edit-dialog/lookup-edit-dialog.spec.tsx | 11 +- .../lookup-edit-dialog/lookup-edit-dialog.tsx | 208 +- .../overload-dynamic-config-dialog.spec.tsx.snap | 114 + .../overload-dynamic-config-dialog.spec.tsx | 31 + .../overlord-dynamic-config-dialog.scss | 52 + .../overlord-dynamic-config-dialog.tsx | 157 + .../overload-dynamic-config.spec.tsx.snap | 356 --- .../overload-dynamic-config.spec.tsx | 42 - .../overlord-dynamic-config.scss | 52 - .../overlord-dynamic-config.tsx | 148 - .../query-plan-dialog/query-plan-dialog.scss | 1 - .../query-plan-dialog/query-plan-dialog.spec.tsx | 13 +- .../query-plan-dialog/query-plan-dialog.tsx | 155 +- .../__snapshots__/retention-dialog.spec.tsx.snap | 13 +- .../retention-dialog.array.spec.ts | 57 - .../retention-dialog/retention-dialog.spec.tsx | 48 +- .../dialogs/retention-dialog/retention-dialog.tsx | 137 +- .../segment-table-action-dialog.spec.tsx.snap | 182 ++ .../segment-table-action-dialog.spec.tsx | 38 + .../segment-table-action-dialog.tsx | 78 + .../__snapshots__/show-value-dialog.spec.tsx.snap | 107 + .../show-value-dialog/show-value-dialog.scss | 32 + .../show-value-dialog/show-value-dialog.spec.tsx | 37 + .../show-value-dialog/show-value-dialog.tsx | 60 + .../src/dialogs/snitch-dialog/snitch-dialog.scss | 1 - .../dialogs/snitch-dialog/snitch-dialog.spec.tsx | 12 +- .../src/dialogs/snitch-dialog/snitch-dialog.tsx | 153 +- .../src/dialogs/spec-dialog/spec-dialog.scss | 4 +- .../src/dialogs/spec-dialog/spec-dialog.spec.tsx | 13 +- .../src/dialogs/spec-dialog/spec-dialog.tsx | 84 +- .../supervisor-table-action-dialog.spec.tsx | 14 +- .../supervisor-table-action-dialog.tsx | 90 +- .../table-action-dialog/table-action-dialog.scss | 6 +- .../table-action-dialog.spec.tsx | 13 +- .../table-action-dialog/table-action-dialog.tsx | 47 +- .../task-table-action-dialog.spec.tsx | 13 +- .../task-table-action-dialog.tsx | 99 +- web-console/src/entry.ts | 36 +- web-console/src/singletons/toaster.ts | 2 +- web-console/src/utils/basic-action.tsx | 28 +- web-console/src/utils/druid-expression.ts | 4 +- web-console/src/utils/druid-query.ts | 23 +- web-console/src/utils/druid-time.ts | 23 +- web-console/src/utils/druid-type.ts | 67 +- web-console/src/utils/general.spec.ts | 38 +- web-console/src/utils/general.tsx | 114 +- web-console/src/utils/index.tsx | 1 - web-console/src/utils/ingestion-spec.tsx | 1145 ++++--- web-console/src/utils/joda-to-regexp.spec.ts | 9 +- web-console/src/utils/joda-to-regexp.ts | 2 +- .../src/utils/local-storage-backed-array.tsx | 62 + web-console/src/utils/local-storage-keys.tsx | 8 +- web-console/src/utils/object-change.spec.ts | 69 +- web-console/src/utils/object-change.ts | 3 +- web-console/src/utils/query-context.tsx | 12 +- web-console/src/utils/query-manager.tsx | 76 +- web-console/src/utils/query-state.ts | 2 +- web-console/src/utils/rune-decoder.tsx | 32 +- web-console/src/utils/sampler.ts | 267 +- web-console/src/utils/spec-utils.spec.ts | 32 +- web-console/src/utils/spec-utils.ts | 29 +- .../src/utils/table-column-selection-handler.tsx | 61 - .../__snapshots__/datasource-view.spec.tsx.snap | 84 +- .../src/views/datasource-view/datasource-view.scss | 2 +- .../views/datasource-view/datasource-view.spec.tsx | 7 +- .../src/views/datasource-view/datasource-view.tsx | 900 +++--- web-console/src/views/home-view/home-view.scss | 2 +- web-console/src/views/home-view/home-view.spec.tsx | 5 +- web-console/src/views/home-view/home-view.tsx | 319 +- .../__snapshots__/load-data-view.spec.tsx.snap | 184 +- .../filter-table/filter-table.spec.tsx | 26 +- .../load-data-view/filter-table/filter-table.tsx | 99 +- .../src/views/load-data-view/load-data-view.scss | 62 +- .../views/load-data-view/load-data-view.spec.tsx | 5 +- .../src/views/load-data-view/load-data-view.tsx | 3122 +++++++++++--------- .../parse-data-table/parse-data-table.scss | 2 +- .../parse-data-table/parse-data-table.spec.tsx | 27 +- .../parse-data-table/parse-data-table.tsx | 124 +- .../parse-time-table/parse-time-table.scss | 2 +- .../parse-time-table/parse-time-table.spec.tsx | 28 +- .../parse-time-table/parse-time-table.tsx | 137 +- .../load-data-view/schema-table/schema-table.scss | 16 +- .../schema-table/schema-table.spec.tsx | 32 +- .../load-data-view/schema-table/schema-table.tsx | 168 +- .../transform-table/transform-table.spec.tsx | 26 +- .../transform-table/transform-table.tsx | 108 +- .../__snapshots__/lookups-view.spec.tsx.snap | 27 +- .../src/views/lookups-view/lookups-view.spec.tsx | 3 +- .../src/views/lookups-view/lookups-view.tsx | 388 +-- .../query-view/column-tree/column-tree.spec.tsx | 39 +- .../views/query-view/column-tree/column-tree.tsx | 109 +- .../query-extra-info/query-extra-info.spec.tsx | 26 +- .../query-extra-info/query-extra-info.tsx | 73 +- .../src/views/query-view/query-input/keywords.ts | 74 + .../views/query-view/query-input/query-input.scss | 8 +- .../query-view/query-input/query-input.spec.tsx | 16 +- .../views/query-view/query-input/query-input.tsx | 172 +- .../query-view/query-output/query-output.spec.tsx | 8 +- .../views/query-view/query-output/query-output.tsx | 29 +- web-console/src/views/query-view/query-view.scss | 5 +- .../src/views/query-view/query-view.spec.tsx | 9 +- web-console/src/views/query-view/query-view.tsx | 220 +- .../views/query-view/run-button/run-button.scss | 21 - .../query-view/run-button/run-button.spec.tsx | 18 +- .../src/views/query-view/run-button/run-button.tsx | 156 +- .../__snapshots__/segments-view.spec.tsx.snap | 607 ++-- .../src/views/segments-view/segments-view.scss | 2 +- .../src/views/segments-view/segments-view.spec.tsx | 5 +- .../src/views/segments-view/segments-view.tsx | 809 +++-- .../__snapshots__/servers-view.spec.tsx.snap | 31 +- .../src/views/servers-view/servers-view.scss | 6 +- .../src/views/servers-view/servers-view.spec.tsx | 7 +- .../src/views/servers-view/servers-view.tsx | 800 ++--- .../__snapshots__/tasks-view.spec.tsx.snap | 135 +- web-console/src/views/task-view/tasks-view.scss | 2 +- .../src/views/task-view/tasks-view.spec.tsx | 7 +- web-console/src/views/task-view/tasks-view.tsx | 1401 +++++---- web-console/tsconfig.json | 17 +- web-console/tslint.json | 4 +- web-console/unified-console.html | 24 +- web-console/webpack.config.js | 77 +- 1340 files changed, 50532 insertions(+), 34706 deletions(-) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
