Class DruidSqlToRelConverter

java.lang.Object
org.apache.calcite.sql2rel.SqlToRelConverter
org.apache.druid.sql.calcite.planner.DruidSqlToRelConverter

public class DruidSqlToRelConverter extends org.apache.calcite.sql2rel.SqlToRelConverter
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.apache.calcite.sql2rel.SqlToRelConverter

    org.apache.calcite.sql2rel.SqlToRelConverter.Blackboard, org.apache.calcite.sql2rel.SqlToRelConverter.Config, org.apache.calcite.sql2rel.SqlToRelConverter.SqlIdentifierFinder
  • Field Summary

    Fields inherited from class org.apache.calcite.sql2rel.SqlToRelConverter

    catalogReader, cluster, config, CONFIG, DEFAULT_IN_SUB_QUERY_THRESHOLD, DEFAULT_IN_SUBQUERY_THRESHOLD, leaves, rexBuilder, SQL2REL_LOGGER, typeFactory, validator, viewExpander
  • Constructor Summary

    Constructors
    Constructor
    Description
    DruidSqlToRelConverter(org.apache.calcite.plan.RelOptTable.ViewExpander viewExpander, org.apache.calcite.sql.validate.SqlValidator validator, org.apache.calcite.prepare.Prepare.CatalogReader catalogReader, org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.sql2rel.SqlRexConvertletTable convertletTable, org.apache.calcite.sql2rel.SqlToRelConverter.Config config)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected org.apache.calcite.rel.RelNode
    convertInsert(org.apache.calcite.sql.SqlInsert call)
    Convert a Druid INSERT or REPLACE statement.

    Methods inherited from class org.apache.calcite.sql2rel.SqlToRelConverter

    addConvertedNonCorrSubqs, adjustInputRef, afterTableFunction, collectInsertTargets, config, convertAgg, convertCollectionTable, convertColumnList, convertDynamicParam, convertExpression, convertExpression, convertExtendedExpression, convertFrom, convertFrom, convertMatchRecognize, convertOrder, convertOrderItem, convertPivot, convertQuery, convertQueryRecursive, convertSelect, convertSelectImpl, convertSetOp, convertToSingleValueSubq, convertUnpivot, convertValues, convertWith, createAggImpl, createAggregate, createBlackboard, createJoin, decorrelate, decorrelateQuery, enableDecorrelation, extraSelectItems, flattenTypes, gatherOrderExprs, getCluster, getDynamicParamCount, getDynamicParamCountInExplain, getDynamicParamType, getInSubqueryThreshold, getMapConvertedNonCorrSubqs, getRexBuilder, getSystemFields, getTargetTable, isOrdered, isTrimUnusedFields, newFieldTrimmer, setDynamicParamCountInExplain, setSubQueryConverter, toRel, trimUnusedFields

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DruidSqlToRelConverter

      public DruidSqlToRelConverter(org.apache.calcite.plan.RelOptTable.ViewExpander viewExpander, org.apache.calcite.sql.validate.SqlValidator validator, org.apache.calcite.prepare.Prepare.CatalogReader catalogReader, org.apache.calcite.plan.RelOptCluster cluster, org.apache.calcite.sql2rel.SqlRexConvertletTable convertletTable, org.apache.calcite.sql2rel.SqlToRelConverter.Config config)
  • Method Details

    • convertInsert

      protected org.apache.calcite.rel.RelNode convertInsert(org.apache.calcite.sql.SqlInsert call)
      Convert a Druid INSERT or REPLACE statement. The code is the same as the normal conversion, except we don't actually create the final modify node. Druid has its own special way to handle inserts. (This should probably change in some future, but doing so requires changes in the SQL engine and MSQ, which is a bit invasive.)
      Overrides:
      convertInsert in class org.apache.calcite.sql2rel.SqlToRelConverter