class DataSourceNode extends PlanNode {

  @Override
  public Stream<ColumnName> resolveSelectStar(
      final Optional<SourceName> sourceName
  ) {
    if (sourceName.isPresent() && !sourceName.equals(getSourceName())) {
      throw new IllegalArgumentException("Expected alias of " + getAlias()
          + ", but was " + sourceName.get());
    }

    // Note: the 'value' columns include the key columns at this point:
    return orderColumns(getSchema().value(), getSchema());
  }

  public  DataSourceNode(
      final PlanNodeId id,
      final DataSource dataSource,
      final SourceName alias
  );
    DataSourceNode(
      final PlanNodeId id,
      final DataSource dataSource,
      final SourceName alias,
      final SchemaKStreamFactory schemaKStreamFactory
  );

}