[jira] [Commented] (CALCITE-2349) Failed to build RexCall with SqlDatetimeSubtractionOperator

2018-06-06 Thread Julian Hyde (JIRA)


[ 
https://issues.apache.org/jira/browse/CALCITE-2349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16503608#comment-16503608
 ] 

Julian Hyde commented on CALCITE-2349:
--

There is more than one operator for "-". They are overloaded: "( - 
) " and also " - ".

> Failed to build RexCall with SqlDatetimeSubtractionOperator
> ---
>
> Key: CALCITE-2349
> URL: https://issues.apache.org/jira/browse/CALCITE-2349
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.16.0
>Reporter: yuqi
>Assignee: Julian Hyde
>Priority: Minor
> Fix For: 1.17.0
>
> Attachments: 1.png, screenshot-1.png
>
>
> When use RexBuilder to build RexCall with SqlDatetimeSubtractionOperator, it 
> will throw exception.
> {code:java}
> java.lang.IndexOutOfBoundsException: index (2) must be less than size (2)
>   at 
> com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:310)
>   at 
> com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:293)
>   at 
> com.google.common.collect.RegularImmutableList.get(RegularImmutableList.java:67)
>   at 
> org.apache.calcite.rex.RexCallBinding.getOperandType(RexCallBinding.java:132)
>   at 
> org.apache.calcite.sql.type.OrdinalReturnTypeInference.inferReturnType(OrdinalReturnTypeInference.java:40)
>   at 
> org.apache.calcite.sql.type.SqlTypeTransformCascade.inferReturnType(SqlTypeTransformCascade.java:54)
>   at 
> org.apache.calcite.sql.SqlOperator.inferReturnType(SqlOperator.java:470)
>   at 
> org.apache.calcite.rex.RexBuilder.deriveReturnType(RexBuilder.java:274)
>   at org.apache.calcite.rex.RexBuilder.makeCall(RexBuilder.java:248)
>   at com.netease.yuqi.calcatetest.TestThree.main(TestThree.java:100)
> {code}
> Below is My code:
> {code:java}
> public static void main(String[] args) {
>   try {
>   SchemaPlus rootSchema = 
> Frameworks.createRootSchema(true);
>   rootSchema.add("USERS", new AbstractTable() {
>   public RelDataType getRowType(final 
> RelDataTypeFactory typeFactory) {
>   RelDataTypeFactory.FieldInfoBuilder 
> builder = typeFactory.builder();
>   builder.add("ID", new BasicSqlType(new 
> RelDataTypeSystemImpl() {
>   }, SqlTypeName.INTEGER));
>   builder.add("NAME", new 
> BasicSqlType(new RelDataTypeSystemImpl() {
>   }, SqlTypeName.CHAR));
>   builder.add("TIME_D", new 
> BasicSqlType(new RelDataTypeSystemImpl() {
>   }, SqlTypeName.TIMESTAMP));
>   return builder.build();
>   }
>   });
>   rootSchema.add("TABLE_RESULT", new AbstractTable() {
>   public RelDataType getRowType(final 
> RelDataTypeFactory typeFactory) {
>   RelDataTypeFactory.FieldInfoBuilder 
> builder = typeFactory.builder();
>   builder.add("ID", new BasicSqlType(new 
> RelDataTypeSystemImpl() {
>   }, SqlTypeName.INTEGER));
>   builder.add("NAME", new 
> BasicSqlType(new RelDataTypeSystemImpl() {
>   }, SqlTypeName.CHAR));
>   builder.add("SCORE", new 
> BasicSqlType(new RelDataTypeSystemImpl() {
>   }, SqlTypeName.INTEGER));
>   return builder.build();
>   }
>   });
>   final FrameworkConfig config = 
> Frameworks.newConfigBuilder()
>   .parserConfig(SqlParser.Config.DEFAULT)
>   .defaultSchema(rootSchema)
>   .build();
>   Planner planner = Frameworks.getPlanner(config);
>   SqlNode parse1 = planner.parse("insert into 
> table_result(id, name, score) select a.id as id, a.name as name, 1 from users 
> a where month(a.time_d - interval '30' day) >= 2");
>   SqlNode validate = planner.validate(parse1);
>   RelRoot root = planner.rel(validate);
>   RexBuilder builder1 = 
> root.rel.getCluster().getRexBuilder();
>   LogicalFilter filter = (LogicalFilter) 
> root.rel.getInput(0).getInput(0);
> //get RexCall of 

[jira] [Commented] (CALCITE-194) Array items in MongoDB adapter

2018-06-06 Thread Igor Kryvenko (JIRA)


[ 
https://issues.apache.org/jira/browse/CALCITE-194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16503314#comment-16503314
 ] 

Igor Kryvenko commented on CALCITE-194:
---

[~michaelmior] Hi. Could, you review, please?

> Array items in MongoDB adapter
> --
>
> Key: CALCITE-194
> URL: https://issues.apache.org/jira/browse/CALCITE-194
> Project: Calcite
>  Issue Type: Bug
>Reporter: GitHub Import
>Assignee: Igor Kryvenko
>Priority: Major
>  Labels: github-import
>
> When MongoDB issue  href="https://jira.mongodb.org/browse/SERVER-4589;>SERVER-4589, 
> "aggregation: need an array indexing operator" is fixed, we will be able to 
> implement
> ```sql
> SELECT loc[0] AS longitude, loc[1] AS latitude FROM zips
> ```
> in the MongoDB adapter. Meantime, look for `Bug.OPTIQnnn_FIXED` in the code.
>  Imported from GitHub 
> Url: https://github.com/julianhyde/optiq/issues/194
> Created by: [julianhyde|https://github.com/julianhyde]
> Labels: bug, 
> Created at: Wed Mar 19 00:03:01 CET 2014
> State: open



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (CALCITE-2354) How to add existing user-defined functions in Schema

2018-06-06 Thread Michael Mior (JIRA)


[ 
https://issues.apache.org/jira/browse/CALCITE-2354?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16503224#comment-16503224
 ] 

Michael Mior commented on CALCITE-2354:
---

Questions on how to use Calcite are better posed on the mailing list: 
d...@calcite.apache.org. This does not appear to a bug with Calcite.

> How to add existing user-defined functions in Schema
> 
>
> Key: CALCITE-2354
> URL: https://issues.apache.org/jira/browse/CALCITE-2354
> Project: Calcite
>  Issue Type: Bug
>  Components: jdbc-adapter
>Reporter: Subbarao
>Assignee: Julian Hyde
>Priority: Critical
>
> Iam already having some of the functions in oracle database i.e :user defined 
> functions like FN_CODE("columnname").Then how can i add these type of already 
> existing functions in Apache calcite schema



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (CALCITE-2349) Failed to build RexCall with SqlDatetimeSubtractionOperator

2018-06-06 Thread yuqi (JIRA)


[ 
https://issues.apache.org/jira/browse/CALCITE-2349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16503048#comment-16503048
 ] 

yuqi commented on CALCITE-2349:
---

[~julianhyde]
As the JavaDoc says:

A special operator for the subtraction of two DATETIMEs. The format of DATETIME 
subtraction is:
"("  "-"  ")" 
This operator is special since* it needs to hold the additional interval 
qualifier specification*, when in SqlCall form. *In RexNode form, it has only 
two parameters, and the return type describes the desired type of intervall*.

This may be a little puzzled.  In SqlCall it have three operands and In RexNode 
only two. However, SqlDatetimeSubtractionOperator was initialized three and the 
return type of this operator is the type of the third operand. 

So, can you help me clarify this ? thanks 



> Failed to build RexCall with SqlDatetimeSubtractionOperator
> ---
>
> Key: CALCITE-2349
> URL: https://issues.apache.org/jira/browse/CALCITE-2349
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.16.0
>Reporter: yuqi
>Assignee: Julian Hyde
>Priority: Minor
> Fix For: 1.17.0
>
> Attachments: 1.png, screenshot-1.png
>
>
> When use RexBuilder to build RexCall with SqlDatetimeSubtractionOperator, it 
> will throw exception.
> {code:java}
> java.lang.IndexOutOfBoundsException: index (2) must be less than size (2)
>   at 
> com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:310)
>   at 
> com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:293)
>   at 
> com.google.common.collect.RegularImmutableList.get(RegularImmutableList.java:67)
>   at 
> org.apache.calcite.rex.RexCallBinding.getOperandType(RexCallBinding.java:132)
>   at 
> org.apache.calcite.sql.type.OrdinalReturnTypeInference.inferReturnType(OrdinalReturnTypeInference.java:40)
>   at 
> org.apache.calcite.sql.type.SqlTypeTransformCascade.inferReturnType(SqlTypeTransformCascade.java:54)
>   at 
> org.apache.calcite.sql.SqlOperator.inferReturnType(SqlOperator.java:470)
>   at 
> org.apache.calcite.rex.RexBuilder.deriveReturnType(RexBuilder.java:274)
>   at org.apache.calcite.rex.RexBuilder.makeCall(RexBuilder.java:248)
>   at com.netease.yuqi.calcatetest.TestThree.main(TestThree.java:100)
> {code}
> Below is My code:
> {code:java}
> public static void main(String[] args) {
>   try {
>   SchemaPlus rootSchema = 
> Frameworks.createRootSchema(true);
>   rootSchema.add("USERS", new AbstractTable() {
>   public RelDataType getRowType(final 
> RelDataTypeFactory typeFactory) {
>   RelDataTypeFactory.FieldInfoBuilder 
> builder = typeFactory.builder();
>   builder.add("ID", new BasicSqlType(new 
> RelDataTypeSystemImpl() {
>   }, SqlTypeName.INTEGER));
>   builder.add("NAME", new 
> BasicSqlType(new RelDataTypeSystemImpl() {
>   }, SqlTypeName.CHAR));
>   builder.add("TIME_D", new 
> BasicSqlType(new RelDataTypeSystemImpl() {
>   }, SqlTypeName.TIMESTAMP));
>   return builder.build();
>   }
>   });
>   rootSchema.add("TABLE_RESULT", new AbstractTable() {
>   public RelDataType getRowType(final 
> RelDataTypeFactory typeFactory) {
>   RelDataTypeFactory.FieldInfoBuilder 
> builder = typeFactory.builder();
>   builder.add("ID", new BasicSqlType(new 
> RelDataTypeSystemImpl() {
>   }, SqlTypeName.INTEGER));
>   builder.add("NAME", new 
> BasicSqlType(new RelDataTypeSystemImpl() {
>   }, SqlTypeName.CHAR));
>   builder.add("SCORE", new 
> BasicSqlType(new RelDataTypeSystemImpl() {
>   }, SqlTypeName.INTEGER));
>   return builder.build();
>   }
>   });
>   final FrameworkConfig config = 
> Frameworks.newConfigBuilder()
>   .parserConfig(SqlParser.Config.DEFAULT)
>   .defaultSchema(rootSchema)
>   .build();
>   Planner planner = Frameworks.getPlanner(config);
>