3d19b748fb
* SQL OperatorConversions: Introduce.aggregatorBuilder, allow CAST-as-literal. Four main changes: 1) Provide aggregatorBuilder, a more consistent way of defining the SqlAggFunction we need for all of our SQL aggregators. The mechanism is analogous to the one we already use for SQL functions (OperatorConversions.operatorBuilder). 2) Allow CASTs of constants to be considered as "literalOperands". This fixes an issue where various of our operators are defined with OperandTypes.LITERAL as part of their checkers, which doesn't allow casts. However, in these cases we generally _do_ want to allow casts. The important piece is that the value must be reducible to a constant, not that the SQL text is literally a literal. 3) Update DataSketches SQL aggregators to use the new aggregatorBuilder functionality. The main user-visible effect here is [2]: the aggregators would now accept, for example, "CAST(0.99 AS DOUBLE)" as a literal argument. Other aggregators could be updated in a future patch. 4) Rename "requiredOperands" to "requiredOperandCount", because the old name was confusing. (It rhymes with "literalOperands" but the arguments mean different things.) * Adjust method calls. |
||
---|---|---|
.. | ||
src/main | ||
README.md | ||
pom.xml |
README.md
Testing Tools
it-tools
is a copy of extensions-core/testing-tools
(module
name druid-testing-tools
.)
The testing tools are added to the Druid test Docker image. The
druid-testing-tools
module defines most such additions. However,
integration-tests
defines a custom node role which also must be
added to the image. integration-tests
uses a different mechanism
to do that addition.
Here, we want a single extension for all the testing gizmos.
This is a direct copy of the druid-testing-tools
extension, along with a copy of the custom node role from
integration-tests
.
The reason this is a copy, rather than fixing up druid-testing-tools
is that the existing integration-tests
must continue to run and it
is very difficult to change or test them. (Which is the reason for
this parallel approach.) To keep backward compatibility, and to avoid
changing integration-tests
, we keep the prior approach and make
copies here for the new approach.
The names should never clash: it-tools
is only ever used
within the docker-test
project, and the druid-testing-tools
is
not included as a dependency.
Over time, once integration-tests
are converted, then the
druid-testing-tools
module can be deprecated in favor of this one.