[ 
https://issues.apache.org/jira/browse/BEAM-8307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rahul Patwari updated BEAM-8307:
--------------------------------
    Description: 
An exception is thrown when SqlTransform is used with JdbcIO.

Schema of the Source Table:

_CREATE TABLE actor (_
 _actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,_
 _first_name VARCHAR(45) NOT NULL,_
 _last_name VARCHAR(45) NOT NULL,_
 _last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE 
CURRENT_TIMESTAMP,_
 _PRIMARY KEY (actor_id),_
 _KEY idx_actor_last_name (last_name)_
 _)ENGINE=InnoDB DEFAULT CHARSET=utf8;_ 

 

Many of the Jdbc Types are converted to Logical_Types in Beam.

Refer: 
[https://github.com/apache/beam/blob/113461a4275eb28a101e416897ccd607aa51f83f/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/SchemaUtil.java#L102]

The initial observation is that this code: 
[https://github.com/apache/beam/blob/113461a4275eb28a101e416897ccd607aa51f83f/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/CalciteUtils.java#L207]
 is returning null.

 

Exception StackTrace:

12:40:18,441 ERROR [stderr] (default task-1) 
org.apache.beam.sdk.extensions.sql.impl.ParseException: Unable to parse query 
select first_name, count(*) as count_col from PCOLLECTION group by first_name
12:40:18,442 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.convertToBeamRel(CalciteQueryPlanner.java:165)
12:40:18,442 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.impl.BeamSqlEnv.parseQuery(BeamSqlEnv.java:103)
12:40:18,442 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.SqlTransform.expand(SqlTransform.java:124)
12:40:18,443 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.SqlTransform.expand(SqlTransform.java:82)
12:40:18,443 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:539)
12:40:18,443 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:473)
12:40:18,443 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.values.PCollectionTuple.apply(PCollectionTuple.java:248)

12:40:18,463 ERROR [stderr] (default task-1) Caused by: 
org.apache.beam.repackaged.sql.org.apache.calcite.tools.ValidationException: 
java.lang.NullPointerException
12:40:18,464 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:190)
12:40:18,464 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.convertToBeamRel(CalciteQueryPlanner.java:136)
12:40:18,464 ERROR [stderr] (default task-1) ... 100 more
12:40:18,465 ERROR [stderr] (default task-1) Caused by: 
java.lang.NullPointerException
12:40:18,465 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.type.SqlTypeFactoryImpl.createSqlType(SqlTypeFactoryImpl.java:45)
12:40:18,465 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils.toRelDataType(CalciteUtils.java:278)
12:40:18,465 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils.toRelDataType(CalciteUtils.java:285)
12:40:18,465 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils.lambda$toCalciteRowType$0(CalciteUtils.java:260)
12:40:18,466 ERROR [stderr] (default task-1) at 
java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
12:40:18,466 ERROR [stderr] (default task-1) at 
java.base/java.util.stream.IntPipeline$Head.forEach(IntPipeline.java:593)
12:40:18,466 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils.toCalciteRowType(CalciteUtils.java:257)
12:40:18,466 ERROR [stderr] (default task-1) at 
org.apache.beam.sdk.extensions.sql.impl.BeamCalciteTable.getRowType(BeamCalciteTable.java:70)
12:40:18,466 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.EmptyScope.resolve_(EmptyScope.java:159)
12:40:18,467 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.EmptyScope.resolveTable(EmptyScope.java:99)
12:40:18,467 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.DelegatingScope.resolveTable(DelegatingScope.java:203)
12:40:18,467 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:105)
12:40:18,467 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:177)
12:40:18,467 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)
12:40:18,468 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:994)
12:40:18,468 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:954)
12:40:18,468 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3087)
12:40:18,468 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3069)
12:40:18,469 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3339)
12:40:18,469 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)
12:40:18,469 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)
12:40:18,469 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:994)
12:40:18,470 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:954)
12:40:18,470 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:216)
12:40:18,470 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:929)
12:40:18,470 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:633)
12:40:18,470 ERROR [stderr] (default task-1) at 
org.apache.beam.repackaged.sql.org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:188)
12:40:18,471 ERROR [stderr] (default task-1) ... 101 more

  was:
An exception is thrown when SqlTransform is used with JdbcIO. PFA - 
[^exception.txt] which contains the Exception StackTrace. 

Schema of the Source Table:

_CREATE TABLE actor (_
 _actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,_
 _first_name VARCHAR(45) NOT NULL,_
 _last_name VARCHAR(45) NOT NULL,_
 _last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE 
CURRENT_TIMESTAMP,_
 _PRIMARY KEY (actor_id),_
 _KEY idx_actor_last_name (last_name)_
 _)ENGINE=InnoDB DEFAULT CHARSET=utf8;_ 

 

Many of the Jdbc Types are converted to Logical_Types in Beam.

Refer: 
[https://github.com/apache/beam/blob/113461a4275eb28a101e416897ccd607aa51f83f/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/SchemaUtil.java#L102]

The initial observation is that this code: 
[https://github.com/apache/beam/blob/113461a4275eb28a101e416897ccd607aa51f83f/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/CalciteUtils.java#L207]
 is returning null.

 


> Support for Logical types introduced by JdbcIO Transform in SqlTransform
> ------------------------------------------------------------------------
>
>                 Key: BEAM-8307
>                 URL: https://issues.apache.org/jira/browse/BEAM-8307
>             Project: Beam
>          Issue Type: Bug
>          Components: dsl-sql
>    Affects Versions: 2.15.0
>            Reporter: Rahul Patwari
>            Assignee: Rahul Patwari
>            Priority: Major
>
> An exception is thrown when SqlTransform is used with JdbcIO.
> Schema of the Source Table:
> _CREATE TABLE actor (_
>  _actor_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,_
>  _first_name VARCHAR(45) NOT NULL,_
>  _last_name VARCHAR(45) NOT NULL,_
>  _last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE 
> CURRENT_TIMESTAMP,_
>  _PRIMARY KEY (actor_id),_
>  _KEY idx_actor_last_name (last_name)_
>  _)ENGINE=InnoDB DEFAULT CHARSET=utf8;_ 
>  
> Many of the Jdbc Types are converted to Logical_Types in Beam.
> Refer: 
> [https://github.com/apache/beam/blob/113461a4275eb28a101e416897ccd607aa51f83f/sdks/java/io/jdbc/src/main/java/org/apache/beam/sdk/io/jdbc/SchemaUtil.java#L102]
> The initial observation is that this code: 
> [https://github.com/apache/beam/blob/113461a4275eb28a101e416897ccd607aa51f83f/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/CalciteUtils.java#L207]
>  is returning null.
>  
> Exception StackTrace:
> 12:40:18,441 ERROR [stderr] (default task-1) 
> org.apache.beam.sdk.extensions.sql.impl.ParseException: Unable to parse query 
> select first_name, count(*) as count_col from PCOLLECTION group by first_name
> 12:40:18,442 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.convertToBeamRel(CalciteQueryPlanner.java:165)
> 12:40:18,442 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.impl.BeamSqlEnv.parseQuery(BeamSqlEnv.java:103)
> 12:40:18,442 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.SqlTransform.expand(SqlTransform.java:124)
> 12:40:18,443 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.SqlTransform.expand(SqlTransform.java:82)
> 12:40:18,443 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:539)
> 12:40:18,443 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:473)
> 12:40:18,443 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.values.PCollectionTuple.apply(PCollectionTuple.java:248)
> 12:40:18,463 ERROR [stderr] (default task-1) Caused by: 
> org.apache.beam.repackaged.sql.org.apache.calcite.tools.ValidationException: 
> java.lang.NullPointerException
> 12:40:18,464 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:190)
> 12:40:18,464 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.impl.CalciteQueryPlanner.convertToBeamRel(CalciteQueryPlanner.java:136)
> 12:40:18,464 ERROR [stderr] (default task-1) ... 100 more
> 12:40:18,465 ERROR [stderr] (default task-1) Caused by: 
> java.lang.NullPointerException
> 12:40:18,465 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.type.SqlTypeFactoryImpl.createSqlType(SqlTypeFactoryImpl.java:45)
> 12:40:18,465 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils.toRelDataType(CalciteUtils.java:278)
> 12:40:18,465 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils.toRelDataType(CalciteUtils.java:285)
> 12:40:18,465 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils.lambda$toCalciteRowType$0(CalciteUtils.java:260)
> 12:40:18,466 ERROR [stderr] (default task-1) at 
> java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
> 12:40:18,466 ERROR [stderr] (default task-1) at 
> java.base/java.util.stream.IntPipeline$Head.forEach(IntPipeline.java:593)
> 12:40:18,466 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils.toCalciteRowType(CalciteUtils.java:257)
> 12:40:18,466 ERROR [stderr] (default task-1) at 
> org.apache.beam.sdk.extensions.sql.impl.BeamCalciteTable.getRowType(BeamCalciteTable.java:70)
> 12:40:18,466 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.EmptyScope.resolve_(EmptyScope.java:159)
> 12:40:18,467 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.EmptyScope.resolveTable(EmptyScope.java:99)
> 12:40:18,467 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.DelegatingScope.resolveTable(DelegatingScope.java:203)
> 12:40:18,467 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:105)
> 12:40:18,467 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.IdentifierNamespace.validateImpl(IdentifierNamespace.java:177)
> 12:40:18,467 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)
> 12:40:18,468 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:994)
> 12:40:18,468 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:954)
> 12:40:18,468 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3087)
> 12:40:18,468 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateFrom(SqlValidatorImpl.java:3069)
> 12:40:18,469 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3339)
> 12:40:18,469 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)
> 12:40:18,469 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)
> 12:40:18,469 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:994)
> 12:40:18,470 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:954)
> 12:40:18,470 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:216)
> 12:40:18,470 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:929)
> 12:40:18,470 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:633)
> 12:40:18,470 ERROR [stderr] (default task-1) at 
> org.apache.beam.repackaged.sql.org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:188)
> 12:40:18,471 ERROR [stderr] (default task-1) ... 101 more



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to