test_class.file: shardingsphere-sql-parser/shardingsphere-sql-parser-binder/src/test/java/org/apache/shardingsphere/sql/parser/binder/segment/select/projection/ProjectionsContextTest.java
test_class.identifier: ProjectionsContextTest
test_case.body: @Test
      public void assertGetExpandProjections() {
          ColumnProjection columnProjection1 = new ColumnProjection(null, "col1", null);
          ColumnProjection columnProjection2 = new ColumnProjection(null, "col2", null);
          ColumnProjection columnProjection3 = new ColumnProjection(null, "col3", null);
          DerivedProjection derivedProjection = new DerivedProjection("col3", "a3", null);
          ShorthandProjection shorthandProjection = new ShorthandProjection(null, Arrays.asList(columnProjection2, columnProjection3));
          ProjectionsContext actual = new ProjectionsContext(0, 0, false, Arrays.asList(columnProjection1, shorthandProjection, derivedProjection));
          assertThat(actual.getExpandProjections().size(), is(3));
          assertThat(actual.getExpandProjections().get(0), is(columnProjection1));
          assertThat(actual.getExpandProjections().get(1), is(columnProjection2));
          assertThat(actual.getExpandProjections().get(2), is(columnProjection3));
      }
test_case.class_method_signature: ProjectionsContextTest.assertGetExpandProjections()
test_case.full_signature: @Test public void assertGetExpandProjections()
test_case.identifier: assertGetExpandProjections
test_case.invocations: asList asList assertThat size getExpandProjections is assertThat get getExpandProjections is assertThat get getExpandProjections is assertThat get getExpandProjections is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void assertGetExpandProjections()
focal_class.declarator: startIndex
focal_class.modifier: private final
focal_class.original_string: private final int startIndex;
focal_class.type: int
focal_class.var_name: startIndex
focal_class.declarator: stopIndex
focal_class.modifier: private final
focal_class.original_string: private final int stopIndex;
focal_class.type: int
focal_class.var_name: stopIndex
focal_class.declarator: distinctRow
focal_class.modifier: private final
focal_class.original_string: private final boolean distinctRow;
focal_class.type: boolean
focal_class.var_name: distinctRow
focal_class.declarator: projections
focal_class.modifier: private final
focal_class.original_string: private final Collection<Projection> projections;
focal_class.type: Collection<Projection>
focal_class.var_name: projections
focal_class.file: shardingsphere-sql-parser/shardingsphere-sql-parser-binder/src/main/java/org/apache/shardingsphere/sql/parser/binder/segment/select/projection/ProjectionsContext.java
focal_class.identifier: ProjectionsContext
focal_class.class_method_signature: ProjectionsContext.isUnqualifiedShorthandProjection()
focal_class.full_signature: public boolean isUnqualifiedShorthandProjection()
focal_class.identifier: isUnqualifiedShorthandProjection
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isUnqualifiedShorthandProjection()
focal_class.class_method_signature: ProjectionsContext.findAlias(final String projectionName)
focal_class.full_signature: public Optional<String> findAlias(final String projectionName)
focal_class.identifier: findAlias
focal_class.modifiers: public
focal_class.parameters: (final String projectionName)
focal_class.return: Optional<String>
focal_class.signature: Optional<String> findAlias(final String projectionName)
focal_class.class_method_signature: ProjectionsContext.findProjectionIndex(final String projectionName)
focal_class.full_signature: public Optional<Integer> findProjectionIndex(final String projectionName)
focal_class.identifier: findProjectionIndex
focal_class.modifiers: public
focal_class.parameters: (final String projectionName)
focal_class.return: Optional<Integer>
focal_class.signature: Optional<Integer> findProjectionIndex(final String projectionName)
focal_class.class_method_signature: ProjectionsContext.getAggregationProjections()
focal_class.full_signature: public List<AggregationProjection> getAggregationProjections()
focal_class.identifier: getAggregationProjections
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<AggregationProjection>
focal_class.signature: List<AggregationProjection> getAggregationProjections()
focal_class.class_method_signature: ProjectionsContext.getAggregationDistinctProjections()
focal_class.full_signature: public List<AggregationDistinctProjection> getAggregationDistinctProjections()
focal_class.identifier: getAggregationDistinctProjections
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<AggregationDistinctProjection>
focal_class.signature: List<AggregationDistinctProjection> getAggregationDistinctProjections()
focal_class.class_method_signature: ProjectionsContext.getExpandProjections()
focal_class.full_signature: public List<Projection> getExpandProjections()
focal_class.identifier: getExpandProjections
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<Projection>
focal_class.signature: List<Projection> getExpandProjections()
focal_method.body: public List<Projection> getExpandProjections() {
          List<Projection> result = new ArrayList<>();
          for (Projection each : projections) {
              if (each instanceof ShorthandProjection) {
                  result.addAll(((ShorthandProjection) each).getActualColumns());
              } else if (!(each instanceof DerivedProjection)) {
                  result.add(each);
              }
          }
          return result;
      }
focal_method.class_method_signature: ProjectionsContext.getExpandProjections()
focal_method.full_signature: public List<Projection> getExpandProjections()
focal_method.identifier: getExpandProjections
focal_method.invocations: addAll getActualColumns add
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: List<Projection>
focal_method.signature: List<Projection> getExpandProjections()