RE: "select as" in Flink SQL

2016-08-31 Thread Davran Muzafarov
Thank you Timo.

 

From: Timo Walther [mailto:twal...@apache.org] 
Sent: Wednesday, August 31, 2016 4:28 AM
To: user@flink.apache.org
Subject: Re: "select as" in Flink SQL

 

Hi Davran,

Flink SQL uses a lexical policy similar to Java:
The case of identifiers is preserved whether or not they are quoted; after
which, identifiers are matched case-sensitively. Unlike Java, back-ticks
allow identifiers to contain non-alphanumeric characters.

So "select assetClass as `asset class` from tabel0" should do the trick.

I will improve the documentation about this.

Regards,
Timo

Am 30/08/16 um 21:49 schrieb Davran Muzafarov:

I am try to execute simple sql like this:

 

DataSet dataSet0 = env.fromCollection( infos0 );

tableEnv.registerDataSet( "table0", dataSet0 );

 

 

Table table = tableEnv.sql( "select assetClass as \”asset class\” from
tabel0" );

 

I am getting:

 

org.apache.calcite.sql.parser.SqlParseException: Encountered "as \"" at line
1, column 19.

Was expecting one of:

"FROM" ...

"," ...

"AS"  ...

"AS"  ...

"AS"  ...

"AS"  ...

"AS"  ...

"." ...

"(" ...

"NOT" ...

"IN" ...

"BETWEEN" ...

"LIKE" ...

"SIMILAR" ...

"=" ...

">" ...

"<" ...

"<=" ...

">=" ...

"<>" ...

"+" ...

"-" ...

"*" ...

"/" ...

"||" ...

"AND" ...

"OR" ...

"IS" ...

"MEMBER" ...

"SUBMULTISET" ...

"MULTISET" ...

"[" ...



at
org.apache.calcite.sql.parser.impl.SqlParserImpl.convertException(SqlParserI
mpl.java:388)

at
org.apache.calcite.sql.parser.impl.SqlParserImpl.normalizeException(SqlParse
rImpl.java:119)

at
org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:131)

at
org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:156)

at
org.apache.flink.api.table.FlinkPlannerImpl.parse(FlinkPlannerImpl.scala:75)

…

 

If I use [ insteand of “, I am getting:

org.apache.calcite.sql.parser.SqlParseException: Encountered "as [" at line
1, column 19.
Was expecting one of:
"FROM" ...
"," ...
"AS"  ...
"AS"  ...
"AS"  ...
"AS"  ...
"AS"  ...
"." ...
"(" ...
"NOT" ...
"IN" ...
"BETWEEN" ...
"LIKE" ...
"SIMILAR" ...
"=" ...
">" ...
"<" ...
"<=" ...
">=" ...
"<>" ...
"+" ...
"-" ...
"*" ...
"/" ...
"||" ...
"AND" ...
"OR" ...
"IS" ...
"MEMBER" ...
"SUBMULTISET" ...
"MULTISET" ...
"[" ...

at
org.apache.calcite.sql.parser.impl.SqlParserImpl.convertException(SqlParserI
mpl.java:388)
at
org.apache.calcite.sql.parser.impl.SqlParserImpl.normalizeException(SqlParse
rImpl.java:119)
at
org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:131)
at
org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:156)
at
org.apache.flink.api.table.FlinkPlannerImpl.parse(FlinkPlannerImpl.scala:75)
at
org.apache.flink.api.table.BatchTableEnvironment.sql(BatchTableEnvironment.s
cala:128)

…

 

How would I use aliases which contain space(s)? 

 

Thank you,

Davran.

 

 

 

 

 

 

 

 

 

 

 

-- 
Freundliche Grüße / Kind Regards
 
Timo Walther 
 
Follow me: @twalthr
https://www.linkedin.com/in/twalthr


"select as" in Flink SQL

2016-08-30 Thread Davran Muzafarov
I am try to execute simple sql like this:

 

DataSet dataSet0 = env.fromCollection( infos0 );

tableEnv.registerDataSet( "table0", dataSet0 );

 

 

Table table = tableEnv.sql( "select assetClass as \"asset class\" from
tabel0" );

 

I am getting:

 

org.apache.calcite.sql.parser.SqlParseException: Encountered "as \"" at line
1, column 19.

Was expecting one of:

"FROM" ...

"," ...

"AS"  ...

"AS"  ...

"AS"  ...

"AS"  ...

"AS"  ...

"." ...

"(" ...

"NOT" ...

"IN" ...

"BETWEEN" ...

"LIKE" ...

"SIMILAR" ...

"=" ...

">" ...

"<" ...

"<=" ...

">=" ...

"<>" ...

"+" ...

"-" ...

"*" ...

"/" ...

"||" ...

"AND" ...

"OR" ...

"IS" ...

"MEMBER" ...

"SUBMULTISET" ...

"MULTISET" ...

"[" ...



at
org.apache.calcite.sql.parser.impl.SqlParserImpl.convertException(SqlParserI
mpl.java:388)

at
org.apache.calcite.sql.parser.impl.SqlParserImpl.normalizeException(SqlParse
rImpl.java:119)

at
org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:131)

at
org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:156)

at
org.apache.flink.api.table.FlinkPlannerImpl.parse(FlinkPlannerImpl.scala:75)

.

 

If I use [ insteand of ", I am getting:

org.apache.calcite.sql.parser.SqlParseException: Encountered "as [" at line
1, column 19.
Was expecting one of:
"FROM" ...
"," ...
"AS"  ...
"AS"  ...
"AS"  ...
"AS"  ...
"AS"  ...
"." ...
"(" ...
"NOT" ...
"IN" ...
"BETWEEN" ...
"LIKE" ...
"SIMILAR" ...
"=" ...
">" ...
"<" ...
"<=" ...
">=" ...
"<>" ...
"+" ...
"-" ...
"*" ...
"/" ...
"||" ...
"AND" ...
"OR" ...
"IS" ...
"MEMBER" ...
"SUBMULTISET" ...
"MULTISET" ...
"[" ...

at
org.apache.calcite.sql.parser.impl.SqlParserImpl.convertException(SqlParserI
mpl.java:388)
at
org.apache.calcite.sql.parser.impl.SqlParserImpl.normalizeException(SqlParse
rImpl.java:119)
at
org.apache.calcite.sql.parser.SqlParser.parseQuery(SqlParser.java:131)
at
org.apache.calcite.sql.parser.SqlParser.parseStmt(SqlParser.java:156)
at
org.apache.flink.api.table.FlinkPlannerImpl.parse(FlinkPlannerImpl.scala:75)
at
org.apache.flink.api.table.BatchTableEnvironment.sql(BatchTableEnvironment.s
cala:128)

.

 

How would I use aliases which contain space(s)? 

 

Thank you,

Davran.

 

 

 

 

 

 

 

 

 



Is java.sql.Timestamp fully suported in Flink SQL?

2016-08-11 Thread Davran Muzafarov
I have two tables created from data sets:

 

List infos0 = .

 

List infos1 = .

 

 

DataSet dataSet0 = env.fromCollection( infos0 );

 

DataSet dataSet1 = env.fromCollection( infos1 );

 

 

tableEnv.registerDataSet( "table0", dataSet0 );

tableEnv.registerDataSet( "table1", dataSet1 );

 

 

Table table = tableEnv.sql( "select * from table0 union select * from
table1" );

 

 

DataSet redyData = tableEnv.toDataSet( table, Row.class );

 

 

If "MarketDataInfo" have only String, Floats or Integers fields "toDataSet"
works. 

If MarketDataInfo has Timestamp, I am getting:

 

 

 

Internal error: Error occurred while applying rule DataSetAggregateRule

at org.apache.calcite.util.Util.newInternal(Util.java:792)

at
org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.
java:149)

at
org.apache.calcite.plan.RelOptRuleCall.transformTo(RelOptRuleCall.java:225)

at
org.apache.calcite.rel.convert.ConverterRule.onMatch(ConverterRule.java:118)

at
org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java
:214)

at
org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.ja
va:825)

at
org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:334)

at
org.apache.flink.api.table.BatchTableEnvironment.translate(BatchTableEnviron
ment.scala:253)

at
org.apache.flink.api.java.table.BatchTableEnvironment.toDataSet(BatchTableEn
vironment.scala:146)

...

Caused by: org.apache.flink.api.table.TableException: Unsupported data type
encountered

at
org.apache.flink.api.table.plan.nodes.dataset.DataSetRel$$anonfun$estimateRo
wSize$2.apply(DataSetRel.scala:65)

at
org.apache.flink.api.table.plan.nodes.dataset.DataSetRel$$anonfun$estimateRo
wSize$2.apply(DataSetRel.scala:53)

at
scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:5
1)

at
scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scal
a:60)

at
scala.collection.mutable.ArrayBuffer.foldLeft(ArrayBuffer.scala:47)

at
org.apache.flink.api.table.plan.nodes.dataset.DataSetRel$class.estimateRowSi
ze(DataSetRel.scala:53)

at
org.apache.flink.api.table.plan.nodes.dataset.DataSetAggregate.estimateRowSi
ze(DataSetAggregate.scala:38)

at
org.apache.flink.api.table.plan.nodes.dataset.DataSetAggregate.computeSelfCo
st(DataSetAggregate.scala:80)

at
org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows.getNonCumulative
Cost(RelMdPercentageOriginalRows.java:162)

at
GeneratedMetadataHandler_NonCumulativeCost.getNonCumulativeCost_$(Unknown
Source)

at
GeneratedMetadataHandler_NonCumulativeCost.getNonCumulativeCost(Unknown
Source)

at
org.apache.calcite.rel.metadata.RelMetadataQuery.getNonCumulativeCost(RelMet
adataQuery.java:258)

at
org.apache.calcite.plan.volcano.VolcanoPlanner.getCost(VolcanoPlanner.java:1
134)

at
org.apache.calcite.plan.volcano.RelSubset.propagateCostImprovements0(RelSubs
et.java:336)

at
org.apache.calcite.plan.volcano.RelSubset.propagateCostImprovements(RelSubse
t.java:319)

at
org.apache.calcite.plan.volcano.VolcanoPlanner.addRelToSet(VolcanoPlanner.ja
va:1838)

at
org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.j
ava:1774)

at
org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:
1038)

at
org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlann
er.java:1058)

at
org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlann
er.java:1950)

at
org.apache.calcite.plan.volcano.VolcanoRuleCall.transformTo(VolcanoRuleCall.
java:137)

... 35 more

 

 

Am I missing something?

 

Thank you,

Davran.

 



Flink and SQL

2016-07-29 Thread Davran Muzafarov
Hi,

I could not find the way to reuse table names.

 

tableEnv = TableEnvironment.getTableEnvironment(env);

.

 

Table table = 

tableEnv.registerTable( "table1", table );

Table table = tableEnv.sql( "select * from table1" );

.

.

 

Is it possible to "unregister" table or replace it with another one?

 

 

Thank you.