mirror of https://github.com/apache/druid.git
54c9325256
* SQL support for joins on subqueries. Changes to SQL module: - DruidJoinRule: Allow joins on subqueries (left/right are no longer required to be scans or mappings). - DruidJoinRel: Add cost estimation code for joins on subqueries. - DruidSemiJoinRule, DruidSemiJoinRel: Removed, since DruidJoinRule can handle this case now. - DruidRel: Remove Nullable annotation from toDruidQuery, because it is no longer needed (it was used by DruidSemiJoinRel). - Update Rules constants to reflect new rules available in our current version of Calcite. Some of these are useful for optimizing joins on subqueries. - Rework cost estimation to be in terms of cost per row, and place all relevant constants in CostEstimates. Other changes: - RowBasedColumnSelectorFactory: Don't set hasMultipleValues. The lack of isComplete is enough to let callers know that columns might have multiple values, and explicitly setting it to true causes ExpressionSelectors to think it definitely has multiple values, and treat the inputs as arrays. This behavior interfered with some of the new tests that involved queries on lookups. - QueryContexts: Add maxSubqueryRows parameter, and use it in druid-sql tests. * Fixes for tests. * Adjustments. |
||
---|---|---|
.. | ||
aggregations.md | ||
caching.md | ||
datasource.md | ||
datasourcemetadataquery.md | ||
dimensionspecs.md | ||
filters.md | ||
granularities.md | ||
groupbyquery.md | ||
having.md | ||
hll-old.md | ||
joins.md | ||
limitspec.md | ||
lookups.md | ||
multi-value-dimensions.md | ||
multitenancy.md | ||
post-aggregations.md | ||
query-context.md | ||
querying.md | ||
scan-query.md | ||
searchquery.md | ||
searchqueryspec.md | ||
segmentmetadataquery.md | ||
select-query.md | ||
sorting-orders.md | ||
sql.md | ||
timeboundaryquery.md | ||
timeseriesquery.md | ||
topnmetricspec.md | ||
topnquery.md | ||
virtual-columns.md |