[ 
https://issues.apache.org/jira/browse/CALCITE-3117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16859458#comment-16859458
 ] 

Volodymyr Vysotskyi commented on CALCITE-3117:
----------------------------------------------

Hi all, here is the list of some Calcite classes from calcite-code module used 
by Drill (grouped by packages):
{noformat}
org.apache.calcite.adapter.enumerable.EnumerableConvention - used enum elements
org.apache.calcite.adapter.enumerable.EnumerableTableScan - extends and 
overrides copy(), explainTerms() methods, redular usage (constructing, 
specifying in rules)
org.apache.calcite.adapter.java.JavaTypeFactory - used as interface
org.apache.calcite.adapter.jdbc.JdbcConvention - extends and overrides 
register(), used as type
org.apache.calcite.adapter.jdbc.JdbcImplementor - constructing instances, uses 
visitChild() method
org.apache.calcite.adapter.jdbc.JdbcRules - used rules() method, constructs 
JdbcRules.JdbcProject and JdbcRules.JdbcFilter instances
org.apache.calcite.adapter.jdbc.JdbcSchema - creates instances, uses 
createDialect() method
org.apache.calcite.config.CalciteConnectionConfig - used as interface
org.apache.calcite.config.CalciteConnectionConfigImpl - constructs new 
instances, used in method signatures
org.apache.calcite.config.CalciteConnectionProperty - used some elements from 
enum

org.apache.calcite.jdbc.JavaTypeFactoryImpl - constructs new instances

org.apache.calcite.plan.hep.HepMatchOrder - used enum elements
org.apache.calcite.plan.hep.HepPlanner - constror
org.apache.calcite.plan.hep.HepProgramBuilder - constructor, addMatchOrder(), 
addRuleInstance(), build() methods
org.apache.calcite.plan.hep.HepRelVertex - used type, ised getCurrentRel() 
method

org.apache.calcite.plan.volcano.AbstractConverter - constructs 
AbstractConverter.ExpandConversionRule
org.apache.calcite.plan.volcano.RelSubset - used as type, getRelList(), 
getBest(), getOriginal()
org.apache.calcite.plan.volcano.VolcanoPlanner - used constructor, 
setExecutor(), clearRelTraitDefs(), addRelTraitDef()

org.apache.calcite.plan.Context - provides implementations
org.apache.calcite.plan.Contexts - uses of() method(s)
org.apache.calcite.plan.Convention - provides custom implementation, uses type
org.apache.calcite.plan.ConventionTraitDef - uses its INSTANCE constant
org.apache.calcite.plan.RelOptCluster - uses create(), getPlanner(), 
getTypeFactory(), getRexBuilder(), setMetadataProvider(), createCorrel(), 
traitSet(), traitSetOf() methods
org.apache.calcite.plan.RelOptCost - provides custom implementation
org.apache.calcite.plan.RelOptCostFactory - provides custom implementation
org.apache.calcite.plan.RelOptPlanner - used as interface
org.apache.calcite.plan.RelOptRule - extends
org.apache.calcite.plan.RelOptRuleCall - used as type, used some methods
org.apache.calcite.plan.RelOptSchema - provides implementation
org.apache.calcite.plan.RelOptTable - uses some methods
org.apache.calcite.plan.RelOptUtil - uses some methods
org.apache.calcite.plan.RelTrait - provides implementation
org.apache.calcite.plan.RelTraitDef - extends and implements abstract methods
org.apache.calcite.plan.RelTraitSet

org.apache.calcite.prepare.CalciteCatalogReader - extends and overrides 
getTable(), getSchemaPaths() methods
org.apache.calcite.prepare.Prepare - uses PreparingTable interfase

org.apache.calcite.rel.convert.ConverterRule - extends

org.apache.calcite.rel.core - uses almost all classes from package

org.apache.calcite.rel.logical - uses almost all classes from package

org.apache.calcite.rel.metadata.ChainedRelMetadataProvider - uses of() method
org.apache.calcite.rel.metadata.DefaultRelMetadataProvider
org.apache.calcite.rel.metadata.JaninoRelMetadataProvider - uses of() method
org.apache.calcite.rel.metadata.ReflectiveRelMetadataProvider - uses 
reflectiveSource() method
org.apache.calcite.rel.metadata.RelMdDistinctRowCount - extends class and 
overrides some methods
org.apache.calcite.rel.metadata.RelMdRowCount - extends class and overrides 
some methods
org.apache.calcite.rel.metadata.RelMdUtil - uses some methods
org.apache.calcite.rel.metadata.RelMetadataProvider - used as interface
org.apache.calcite.rel.metadata.RelMetadataQuery

org.apache.calcite.rel.rules - uses a lot of classes

org.apache.calcite.rel.type.DynamicRecordType - extends class and overrides 
some methods
org.apache.calcite.rel.type.RelDataType - provides custom implementations
org.apache.calcite.rel.type.RelDataTypeFactory - used as interface
org.apache.calcite.rel.type.RelDataTypeFamily - provides custom implementations
org.apache.calcite.rel.type.RelDataTypeField - used as interface
org.apache.calcite.rel.type.RelDataTypeFieldImpl - used constructor, some 
methods
org.apache.calcite.rel.type.RelDataTypeImpl - extends class and overrides some 
methods
org.apache.calcite.rel.type.RelDataTypePrecedenceList - used as interface
org.apache.calcite.rel.type.RelDataTypeSystem - provides custom implementations
org.apache.calcite.rel.type.RelDataTypeSystemImpl - provides custom 
implementations
org.apache.calcite.rel.type.RelProtoDataType - provides custom implementation
org.apache.calcite.rel.type.RelRecordType - uses constructor, some methods

org.apache.calcite.rel.AbstractRelNode - extends
org.apache.calcite.rel.InvalidRelException
org.apache.calcite.rel.RelCollation - used as interface
org.apache.calcite.rel.RelCollationImpl - uses of() method
org.apache.calcite.rel.RelCollations - uses of() method
org.apache.calcite.rel.RelCollationTraitDef - used INSTANCE constant
org.apache.calcite.rel.RelDistribution - used as interface
org.apache.calcite.rel.RelFieldCollation - uses constructor, elements from 
Direction enum
org.apache.calcite.rel.RelNode
org.apache.calcite.rel.RelRoot
org.apache.calcite.rel.RelShuttle - provides custom implementations
org.apache.calcite.rel.RelShuttleImpl - extends class
org.apache.calcite.rel.RelWriter - provides custom implementation
org.apache.calcite.rel.SingleRel - extends class


org.apache.calcite.rex.RexBuilder - extends and overrides ensureType(), 
makeCast()
org.apache.calcite.rex.RexCall
org.apache.calcite.rex.RexChecker - constructs instances
org.apache.calcite.rex.RexCorrelVariable - used type, some methods
org.apache.calcite.rex.RexDynamicParam - used type
org.apache.calcite.rex.RexExecutor - provided custom implementation
org.apache.calcite.rex.RexFieldAccess - used as type
org.apache.calcite.rex.RexFieldCollation - used as type
org.apache.calcite.rex.RexInputRef - used as type, used some methods
org.apache.calcite.rex.RexLiteral - used as type, used some methods
org.apache.calcite.rex.RexLocalRef - used as type, used some methods
org.apache.calcite.rex.RexNode
org.apache.calcite.rex.RexOver
org.apache.calcite.rex.RexPatternFieldRef - used as type
org.apache.calcite.rex.RexProgram - used some methods
org.apache.calcite.rex.RexProgramBuilder - used some methods
org.apache.calcite.rex.RexRangeRef - used as type
org.apache.calcite.rex.RexShuttle - extedns and overrides some methods
org.apache.calcite.rex.RexSubQuery - used as type
org.apache.calcite.rex.RexTableInputRef - used as type
org.apache.calcite.rex.RexUtil - used some methods
org.apache.calcite.rex.RexVisitor - provides custom implementations
org.apache.calcite.rex.RexVisitorImpl - provides custom implementations
org.apache.calcite.rex.RexWindow - used some fields
org.apache.calcite.rex.RexWindowBound - used some methods

org.apache.calcite.runtime.CalciteContextException
org.apache.calcite.runtime.FlatLists
org.apache.calcite.runtime.Hook - sets Hook.REL_BUILDER_SIMPLIFY
org.apache.calcite.runtime.Utilities - used some methods

org.apache.calcite.schema.impl.AbstractSchema - extends class and overrides 
getImplicitSubSchema method
org.apache.calcite.schema.Function - provides custom implementations
org.apache.calcite.schema.FunctionParameter - constructs instances
org.apache.calcite.schema.Schema - Drill provides custom implementations
org.apache.calcite.schema.Schema.TableType (enum), used in many places
org.apache.calcite.schema.SchemaPlus - used as interface, without extending
org.apache.calcite.schema.SchemaVersion - used as interface 
org.apache.calcite.schema.Statistic - used as interface, without extending
org.apache.calcite.schema.Statistics - uses its constants
org.apache.calcite.schema.Table - provides custom implementations
org.apache.calcite.schema.TableMacro - provides custom implementations
org.apache.calcite.schema.TranslatableTable - provides custom implementations

org.apache.calcite.sql.fun.OracleSqlOperatorTable - used constants
org.apache.calcite.sql.fun.SqlAvgAggFunction - used type
org.apache.calcite.sql.fun.SqlBetweenOperator - extends and overrides 
checkOperandTypes() method
org.apache.calcite.sql.fun.SqlCountAggFunction - used type and used COUNT 
constant
org.apache.calcite.sql.fun.SqlRowOperator - used type
org.apache.calcite.sql.fun.SqlStdOperatorTable - extended, overrides 
lookupOperatorOverloads(), getOperatorList()  methods
org.apache.calcite.sql.fun.SqlSumAggFunction - creates instances, uses type
org.apache.calcite.sql.fun.SqlSumEmptyIsZeroAggFunction - creates instances

org.apache.calcite.sql.parser.SqlParseException - extends and overrides 
getMessage() method
org.apache.calcite.sql.parser.SqlParser - used create(), parseStmt() and other 
methods
org.apache.calcite.sql.parser.SqlParserImplFactory - provides custom 
implementations
org.apache.calcite.sql.parser.SqlParserPos - used constants
org.apache.calcite.sql.parser.SqlParserUtil - used some methods

org.apache.calcite.sql.type.ExplicitReturnTypeInference - extends class
org.apache.calcite.sql.type.OperandTypes - used constants
org.apache.calcite.sql.type.ReturnTypes - used constants
org.apache.calcite.sql.type.SqlOperandCountRanges - used some methods
org.apache.calcite.sql.type.SqlOperandTypeChecker - provides custom 
implementatios
org.apache.calcite.sql.type.SqlReturnTypeInference - used as type, provides 
custom implementations
org.apache.calcite.sql.type.SqlTypeExplicitPrecedenceList - creates new 
instances
org.apache.calcite.sql.type.SqlTypeFactoryImpl - creates new instances
org.apache.calcite.sql.type.SqlTypeFamily - used some elements from enum
org.apache.calcite.sql.type.SqlTypeName - used some elements from enum

org.apache.calcite.sql.util.ChainedSqlOperatorTable - creates new instances
org.apache.calcite.sql.util.SqlBasicVisitor - extends and overrides some methods
org.apache.calcite.sql.util.SqlShuttle - extends and overrides some methods
org.apache.calcite.sql.util.SqlVisitor - used type

org.apache.calcite.sql.validate.SqlConformance - used as type
org.apache.calcite.sql.validate.SqlConformanceEnum - used some elements from 
enum
org.apache.calcite.sql.validate.SqlDelegatingConformance - extends and 
overrides some methods
org.apache.calcite.sql.validate.SqlMonotonicity - used as type
org.apache.calcite.sql.validate.SqlValidator - used as type, provides custom 
implementation
org.apache.calcite.sql.validate.SqlValidatorCatalogReader - used as type, 
provides custom implementation
org.apache.calcite.sql.validate.SqlValidatorImpl - extends and overrides 
validateFrom(), deriveAlias(), addToSelectList() and other methods
org.apache.calcite.sql.validate.SqlValidatorScope - used type
org.apache.calcite.sql.validate.SqlValidatorUtil - used some methods

org.apache.calcite.sql.SemiJoinType - used as type
org.apache.calcite.sql.SqlAggFunction - extends class, implements abstract 
methods and overrides some methods
org.apache.calcite.sql.SqlBasicCall - creates new instances, uses type
org.apache.calcite.sql.SqlBinaryOperator - used type
org.apache.calcite.sql.SqlCall - extends class, implements abstract methods and 
overrides some methods
org.apache.calcite.sql.SqlCallBinding - used type and used some methods
org.apache.calcite.sql.SqlCharStringLiteral - used type and used some methods
org.apache.calcite.sql.SqlCollation - used constants
org.apache.calcite.sql.SqlDataTypeSpec - used type and used some methods
org.apache.calcite.sql.SqlDescribeSchema - used type and used some methods
org.apache.calcite.sql.SqlDescribeTable - extends and overrides some methods
org.apache.calcite.sql.SqlDialect - used as type
org.apache.calcite.sql.SqlDialectFactoryImpl - used INSTANCE constant
org.apache.calcite.sql.SqlDynamicParam - used type
org.apache.calcite.sql.SqlExplain - used type and used some methods
org.apache.calcite.sql.SqlExplainLevel - used some elements from enum
org.apache.calcite.sql.SqlFunction - extends and overrides some methods
org.apache.calcite.sql.SqlFunctionCategory - used some elements from enum
org.apache.calcite.sql.SqlIdentifier - extends class and overrides some methods
org.apache.calcite.sql.SqlIntervalQualifier - used type and some methods
org.apache.calcite.sql.SqlJdbcFunctionCall - used some methods
org.apache.calcite.sql.SqlJoin - used some methods
org.apache.calcite.sql.SqlKind - used some elements from enum
org.apache.calcite.sql.SqlLiteral - used type and some methods
org.apache.calcite.sql.SqlNode - extends and overrides some methods
org.apache.calcite.sql.SqlNodeList - creates new instances, used type
org.apache.calcite.sql.SqlNumericLiteral - used type and some methods
org.apache.calcite.sql.SqlOperandCountRange - provides custom implementations
org.apache.calcite.sql.SqlOperator - extends and overrides some methods
org.apache.calcite.sql.SqlOperatorBinding - used type and some methods
org.apache.calcite.sql.SqlOperatorTable - provides custom implementation
org.apache.calcite.sql.SqlOrderBy - constructs new instances, uses type and 
some methods
org.apache.calcite.sql.SqlSelect - constructs new instances, uses type and some 
methods
org.apache.calcite.sql.SqlSelectKeyword - used some elements from enum
org.apache.calcite.sql.SqlSetOption - extends and overrides some methods
org.apache.calcite.sql.SqlSpecialOperator - extends and overrides some methods
org.apache.calcite.sql.SqlSyntax - used some elements from enum
org.apache.calcite.sql.SqlWindow - used some methods
org.apache.calcite.sql.SqlWriter - used as interface

org.apache.calcite.sql2rel.RelDecorrelator - used decorrelateQuery() method
org.apache.calcite.sql2rel.SqlRexContext - used some methods
org.apache.calcite.sql2rel.SqlRexConvertlet - provides custom implementations
org.apache.calcite.sql2rel.SqlRexConvertletTable - provides custom 
implementation
org.apache.calcite.sql2rel.SqlToRelConverter - constructs new instances, uses 
some methods
org.apache.calcite.sql2rel.StandardConvertletTable - uses INSTANCE constant

org.apache.calcite.tools.FrameworkConfig - used in tests
org.apache.calcite.tools.Frameworks - used some methods (in tests)
org.apache.calcite.tools.Planner - used in tests
org.apache.calcite.tools.Program - used some methods (of)
org.apache.calcite.tools.Programs - used some methods (of)
org.apache.calcite.tools.RelBuilder - extends and overrides some methods 
(empty(), shouldMergeProject())
org.apache.calcite.tools.RelBuilderFactory - provides custom implementation
org.apache.calcite.tools.RelConversionException
org.apache.calcite.tools.RuleSet - used type
org.apache.calcite.tools.RuleSets - used ofList() method
org.apache.calcite.tools.ValidationException

org.apache.calcite.util.trace.CalciteTrace - used some methods
org.apache.calcite.util.BitSets - used some methods
org.apache.calcite.util.BuiltInMethod - used some elements from enum
org.apache.calcite.util.CompositeList - used of() method
org.apache.calcite.util.DateString - used fromCalendarFields() method
org.apache.calcite.util.ImmutableBitSet - used some methods
org.apache.calcite.util.ImmutableIntList - used some methods
org.apache.calcite.util.ImmutableNullableList - used some methods
org.apache.calcite.util.Litmus - used type
org.apache.calcite.util.NlsString - used type and some methods
org.apache.calcite.util.NumberUtil - used multiply method
org.apache.calcite.util.Pair
org.apache.calcite.util.Permutation - used type and some methods
org.apache.calcite.util.Static - used RESOURCE constant
org.apache.calcite.util.TimeString - used fromCalendarFields method
org.apache.calcite.util.TimestampString - used fromCalendarFields method
org.apache.calcite.util.Util
{noformat}
Also, except these classes, Drill uses and extends Calcites parser gen to 
provide custom statements and override existing ones.

> Distinguish Calcite's public APIs
> ---------------------------------
>
>                 Key: CALCITE-3117
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3117
>             Project: Calcite
>          Issue Type: Task
>            Reporter: Stamatis Zampetakis
>            Assignee: Stamatis Zampetakis
>            Priority: Minor
>
> The goal of this issue is to identify and mark Calcite's public APIs. This 
> can have bring various benefits to the project:
>  * provide more flexibility to developers;
>  * speed-up reviews;
>  * enhance backward compatibility;
>  * facilitate the life of end-users who will be exposed to fewer classes and 
> interfaces.
> Let's list here packages, interfaces, and classes that should be part of the 
> public API. As a first step let's focus exclusively on completing the list 
> and not argue about others proposals. It will be easier to solve 
> disagreements afterwards as soon as we have a rather complete list.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to