test_class.file: shardingsphere-sql-parser/shardingsphere-sql-parser-binder/src/test/java/org/apache/shardingsphere/sql/parser/binder/segment/select/projection/engine/ProjectionEngineTest.java
test_class.identifier: ProjectionEngineTest
test_case.body: @Test
      public void assertCreateProjectionWhenProjectionSegmentNotMatched() {
          assertFalse(new ProjectionEngine(mock(SchemaMetaData.class)).createProjection(Collections.emptyList(), null).isPresent());
      }
test_case.class_method_signature: ProjectionEngineTest.assertCreateProjectionWhenProjectionSegmentNotMatched()
test_case.full_signature: @Test public void assertCreateProjectionWhenProjectionSegmentNotMatched()
test_case.identifier: assertCreateProjectionWhenProjectionSegmentNotMatched
test_case.invocations: assertFalse isPresent createProjection mock emptyList
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertCreateProjectionWhenProjectionSegmentNotMatched()
focal_class.declarator: schemaMetaData
focal_class.modifier: private final
focal_class.original_string: private final SchemaMetaData schemaMetaData;
focal_class.type: SchemaMetaData
focal_class.var_name: schemaMetaData
focal_class.declarator: aggregationAverageDerivedColumnCount
focal_class.modifier: private
focal_class.original_string: private int aggregationAverageDerivedColumnCount;
focal_class.type: int
focal_class.var_name: aggregationAverageDerivedColumnCount
focal_class.declarator: aggregationDistinctDerivedColumnCount
focal_class.modifier: private
focal_class.original_string: private int aggregationDistinctDerivedColumnCount;
focal_class.type: int
focal_class.var_name: aggregationDistinctDerivedColumnCount
focal_class.file: shardingsphere-sql-parser/shardingsphere-sql-parser-binder/src/main/java/org/apache/shardingsphere/sql/parser/binder/segment/select/projection/engine/ProjectionEngine.java
focal_class.identifier: ProjectionEngine
focal_class.class_method_signature: ProjectionEngine.createProjection(final Collection<SimpleTableSegment> tableSegments, final ProjectionSegment projectionSegment)
focal_class.full_signature: public Optional<Projection> createProjection(final Collection<SimpleTableSegment> tableSegments, final ProjectionSegment projectionSegment)
focal_class.identifier: createProjection
focal_class.modifiers: public
focal_class.parameters: (final Collection<SimpleTableSegment> tableSegments, final ProjectionSegment projectionSegment)
focal_class.return: Optional<Projection>
focal_class.signature: Optional<Projection> createProjection(final Collection<SimpleTableSegment> tableSegments, final ProjectionSegment projectionSegment)
focal_class.class_method_signature: ProjectionEngine.createProjection(final Collection<SimpleTableSegment> tableSegments, final ShorthandProjectionSegment projectionSegment)
focal_class.full_signature: private ShorthandProjection createProjection(final Collection<SimpleTableSegment> tableSegments, final ShorthandProjectionSegment projectionSegment)
focal_class.identifier: createProjection
focal_class.modifiers: private
focal_class.parameters: (final Collection<SimpleTableSegment> tableSegments, final ShorthandProjectionSegment projectionSegment)
focal_class.return: ShorthandProjection
focal_class.signature: ShorthandProjection createProjection(final Collection<SimpleTableSegment> tableSegments, final ShorthandProjectionSegment projectionSegment)
focal_class.class_method_signature: ProjectionEngine.createProjection(final ColumnProjectionSegment projectionSegment)
focal_class.full_signature: private ColumnProjection createProjection(final ColumnProjectionSegment projectionSegment)
focal_class.identifier: createProjection
focal_class.modifiers: private
focal_class.parameters: (final ColumnProjectionSegment projectionSegment)
focal_class.return: ColumnProjection
focal_class.signature: ColumnProjection createProjection(final ColumnProjectionSegment projectionSegment)
focal_class.class_method_signature: ProjectionEngine.createProjection(final ExpressionProjectionSegment projectionSegment)
focal_class.full_signature: private ExpressionProjection createProjection(final ExpressionProjectionSegment projectionSegment)
focal_class.identifier: createProjection
focal_class.modifiers: private
focal_class.parameters: (final ExpressionProjectionSegment projectionSegment)
focal_class.return: ExpressionProjection
focal_class.signature: ExpressionProjection createProjection(final ExpressionProjectionSegment projectionSegment)
focal_class.class_method_signature: ProjectionEngine.createProjection(final AggregationDistinctProjectionSegment projectionSegment)
focal_class.full_signature: private AggregationDistinctProjection createProjection(final AggregationDistinctProjectionSegment projectionSegment)
focal_class.identifier: createProjection
focal_class.modifiers: private
focal_class.parameters: (final AggregationDistinctProjectionSegment projectionSegment)
focal_class.return: AggregationDistinctProjection
focal_class.signature: AggregationDistinctProjection createProjection(final AggregationDistinctProjectionSegment projectionSegment)
focal_class.class_method_signature: ProjectionEngine.createProjection(final AggregationProjectionSegment projectionSegment)
focal_class.full_signature: private AggregationProjection createProjection(final AggregationProjectionSegment projectionSegment)
focal_class.identifier: createProjection
focal_class.modifiers: private
focal_class.parameters: (final AggregationProjectionSegment projectionSegment)
focal_class.return: AggregationProjection
focal_class.signature: AggregationProjection createProjection(final AggregationProjectionSegment projectionSegment)
focal_class.class_method_signature: ProjectionEngine.getShorthandColumns(final Collection<SimpleTableSegment> tables, final String owner)
focal_class.full_signature: private Collection<ColumnProjection> getShorthandColumns(final Collection<SimpleTableSegment> tables, final String owner)
focal_class.identifier: getShorthandColumns
focal_class.modifiers: private
focal_class.parameters: (final Collection<SimpleTableSegment> tables, final String owner)
focal_class.return: Collection<ColumnProjection>
focal_class.signature: Collection<ColumnProjection> getShorthandColumns(final Collection<SimpleTableSegment> tables, final String owner)
focal_class.class_method_signature: ProjectionEngine.getUnqualifiedShorthandColumns(final Collection<SimpleTableSegment> tables)
focal_class.full_signature: private Collection<ColumnProjection> getUnqualifiedShorthandColumns(final Collection<SimpleTableSegment> tables)
focal_class.identifier: getUnqualifiedShorthandColumns
focal_class.modifiers: private
focal_class.parameters: (final Collection<SimpleTableSegment> tables)
focal_class.return: Collection<ColumnProjection>
focal_class.signature: Collection<ColumnProjection> getUnqualifiedShorthandColumns(final Collection<SimpleTableSegment> tables)
focal_class.class_method_signature: ProjectionEngine.getQualifiedShorthandColumns(final Collection<SimpleTableSegment> tables, final String owner)
focal_class.full_signature: private Collection<ColumnProjection> getQualifiedShorthandColumns(final Collection<SimpleTableSegment> tables, final String owner)
focal_class.identifier: getQualifiedShorthandColumns
focal_class.modifiers: private
focal_class.parameters: (final Collection<SimpleTableSegment> tables, final String owner)
focal_class.return: Collection<ColumnProjection>
focal_class.signature: Collection<ColumnProjection> getQualifiedShorthandColumns(final Collection<SimpleTableSegment> tables, final String owner)
focal_class.class_method_signature: ProjectionEngine.appendAverageDistinctDerivedProjection(final AggregationDistinctProjection averageDistinctProjection)
focal_class.full_signature: private void appendAverageDistinctDerivedProjection(final AggregationDistinctProjection averageDistinctProjection)
focal_class.identifier: appendAverageDistinctDerivedProjection
focal_class.modifiers: private
focal_class.parameters: (final AggregationDistinctProjection averageDistinctProjection)
focal_class.return: void
focal_class.signature: void appendAverageDistinctDerivedProjection(final AggregationDistinctProjection averageDistinctProjection)
focal_class.class_method_signature: ProjectionEngine.appendAverageDerivedProjection(final AggregationProjection averageProjection)
focal_class.full_signature: private void appendAverageDerivedProjection(final AggregationProjection averageProjection)
focal_class.identifier: appendAverageDerivedProjection
focal_class.modifiers: private
focal_class.parameters: (final AggregationProjection averageProjection)
focal_class.return: void
focal_class.signature: void appendAverageDerivedProjection(final AggregationProjection averageProjection)
focal_method.body: public Optional<Projection> createProjection(final Collection<SimpleTableSegment> tableSegments, final ProjectionSegment projectionSegment) {
          if (projectionSegment instanceof ShorthandProjectionSegment) {
              return Optional.of(createProjection(tableSegments, (ShorthandProjectionSegment) projectionSegment));
          }
          if (projectionSegment instanceof ColumnProjectionSegment) {
              return Optional.of(createProjection((ColumnProjectionSegment) projectionSegment));
          }
          if (projectionSegment instanceof ExpressionProjectionSegment) {
              return Optional.of(createProjection((ExpressionProjectionSegment) projectionSegment));
          }
          if (projectionSegment instanceof AggregationDistinctProjectionSegment) {
              return Optional.of(createProjection((AggregationDistinctProjectionSegment) projectionSegment));
          }
          if (projectionSegment instanceof AggregationProjectionSegment) {
              return Optional.of(createProjection((AggregationProjectionSegment) projectionSegment));
          }
          // TODO subquery
          return Optional.empty();
      }
focal_method.class_method_signature: ProjectionEngine.createProjection(final Collection<SimpleTableSegment> tableSegments, final ProjectionSegment projectionSegment)
focal_method.full_signature: public Optional<Projection> createProjection(final Collection<SimpleTableSegment> tableSegments, final ProjectionSegment projectionSegment)
focal_method.identifier: createProjection
focal_method.invocations: of createProjection of createProjection of createProjection of createProjection of createProjection empty
focal_method.modifiers: public
focal_method.parameters: (final Collection<SimpleTableSegment> tableSegments, final ProjectionSegment projectionSegment)
focal_method.return: Optional<Projection>
focal_method.signature: Optional<Projection> createProjection(final Collection<SimpleTableSegment> tableSegments, final ProjectionSegment projectionSegment)