[jira] [Resolved] (CALCITE-1361) Remove entry from AvaticaConnection.flagMap when session closed

2016-09-28 Thread Julian Hyde (JIRA)

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

Julian Hyde resolved CALCITE-1361.
--
Resolution: Fixed

Fixed in http://git-wip-us.apache.org/repos/asf/calcite/commit/fb6c24ad.

> Remove entry from AvaticaConnection.flagMap when session closed
> ---
>
> Key: CALCITE-1361
> URL: https://issues.apache.org/jira/browse/CALCITE-1361
> Project: Calcite
>  Issue Type: Bug
>Reporter: Julian Hyde
>Assignee: Julian Hyde
>  Labels: avatica
> Fix For: avatica-1.9.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (CALCITE-1391) CRUD operations using Calcite for DRUID

2016-09-28 Thread slim bouguerra (JIRA)

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

slim bouguerra edited comment on CALCITE-1391 at 9/28/16 11:22 PM:
---

I think the scope of this request is not very clear. I will try to explain what 
druid is capable of hope that help to make the question more narrow.
First let's keep in mind that druid is built around a very strong design 
hypothesis which is the immutability of the segments. By having a read only 
segments we can achieve huge speedup/caching.
But this it does not mean that you can not insert/append or delete data.
Assuming your are ingestion data via batch ingestion, let's start with the 
simple case which is delete data.
Druid has the concept of load and drop rules for segments, hence to drop  an 
entire segment all we need to do is to send a drop request to the coordinator. 
For instance in a reporting use case, usually you want to load the data for the 
last 3 months only, you can tell druid to only keep the segment within the last 
3 months.  
Although if your use case is to delete one or N-rows from one segment that is 
not trivial. What you need to do is to send a new index task with the new data 
for that specific interval then druid will replace the old segment and by the 
new one.
What this imply is that you won't really impact how fast or slow is the query. 
But druid will happily answer to the query using the old segment till the 
re-index task is done.

For append/insert druid support delta batch ingestion. What this means you can 
trigger an index job and you tell druid that you want to append/insert this set 
of rows to this existing segment. 
What is the impact of this on the query. The answer is the same as above. Druid 
will answer to the query with the old data till the index map-reduce job is 
done.

If you use case is realtime it is totally a different discussion.
[~arupadhy] hope this make sense to you. Please feel free to explain more the 
use case you are targeting.


was (Author: bslim):
I think the scope of this request is not very clear. I will try to explain what 
druid is capable of hope that help to make the question more narrow.
First let's keep in mind that druid is built around a very strong design 
hypothesis which is the immutability of the segments. By having a read only 
segments we can achieve huge speedup/caching.
But this it does not mean that you can not insert/append or delete data.
Assuming your are ingestion data via batch ingestion, let's start with the 
simple case which is delete data.
Druid has the concept of load and drop rules for segments, hence to drop  an 
entire segment all we need to do is to send a drop request to the coordinator. 
For instance in a reporting use case, usually you want to load the data for the 
last 3 months only, you can tell druid to only keep the segment within the last 
3 months.  
Although if your use case is to delete one or N-rows from one segment that is 
not trivial. What you need to do is to send a new index task with the new data 
for that specific interval then druid will replace the old segment and by the 
new one.
What this imply is that you won't really impact how fast or slow is the query. 
But druid will happily answer to the query using the old segment till the 
re-index task is done.

For append/insert druid support delta batch ingestion. What his means you can 
trigger an index job and you tell druid that you want to append/insert this set 
of rows to this existing segment. 
What is the impact of this on the query. The answer is the same as above. Druid 
will answer to the query with the old data till the index map-reduce job is 
done.

If you use case is realtime it is totally a different discussion.
[~arupadhy] hope this make sense to you. Please feel free to explain more the 
use case you are targeting.

> CRUD operations using Calcite for DRUID
> ---
>
> Key: CALCITE-1391
> URL: https://issues.apache.org/jira/browse/CALCITE-1391
> Project: Calcite
>  Issue Type: Wish
>  Components: druid
> Environment: Druid Production Environment
>Reporter: Arvind
>Assignee: Julian Hyde
>Priority: Critical
>
> Hi Team,
> I know that we are able to read data from druid using Calcite SQLLINE command 
> but I would like to know if we can insert, Update and delete segments in 
> DRUID using Calcite. We are using DRUID as a reporting platform and for us to 
> incrementally update, delete and append data we need these operations. As we 
> are dealing with huge volumes of data we depend on DRUID and very badly need 
> these Insert, Update and Delete.
> Any help is much appreciated.
> Thanks,
> Arvind



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1391) CRUD operations using Calcite for DRUID

2016-09-28 Thread Julian Hyde (JIRA)

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

Julian Hyde commented on CALCITE-1391:
--

[~bslim], That makes a lot of sense. In short, in Calcite we should aim to 
expose Druid's existing functionality, mapping it to SQL in a straightforward 
way. If Calcite is trying to do too much work (e.g. if it needs a data 
structure or a protocol that Druid does not currently support) it will end 
badly. If the needed functionality is missing in Druid, let's take up that 
question on the Druid list.

> CRUD operations using Calcite for DRUID
> ---
>
> Key: CALCITE-1391
> URL: https://issues.apache.org/jira/browse/CALCITE-1391
> Project: Calcite
>  Issue Type: Wish
>  Components: druid
> Environment: Druid Production Environment
>Reporter: Arvind
>Assignee: Julian Hyde
>Priority: Critical
>
> Hi Team,
> I know that we are able to read data from druid using Calcite SQLLINE command 
> but I would like to know if we can insert, Update and delete segments in 
> DRUID using Calcite. We are using DRUID as a reporting platform and for us to 
> incrementally update, delete and append data we need these operations. As we 
> are dealing with huge volumes of data we depend on DRUID and very badly need 
> these Insert, Update and Delete.
> Any help is much appreciated.
> Thanks,
> Arvind



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1400) AggregatePullUpConstantsRule might adjust aggregation function parameters indices wrongly

2016-09-28 Thread Julian Hyde (JIRA)

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

Julian Hyde commented on CALCITE-1400:
--

+1 when you have a test that fails without the fix, passes with it.

> AggregatePullUpConstantsRule might adjust aggregation function parameters 
> indices wrongly
> -
>
> Key: CALCITE-1400
> URL: https://issues.apache.org/jira/browse/CALCITE-1400
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.9.0
>Reporter: Jesus Camacho Rodriguez
>Assignee: Jesus Camacho Rodriguez
>
> I explored a bit and I think this is a piece missing in CALCITE-1038. 
> Introducing a Project operator below as part of the rewriting was removed, 
> and thus, there is no need to adjust the indices of the aggregation function 
> parameters. However, the code is still there.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1391) CRUD operations using Calcite for DRUID

2016-09-28 Thread slim bouguerra (JIRA)

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

slim bouguerra commented on CALCITE-1391:
-

I think the scope of this request is not very clear. I will try to explain what 
druid is capable of hope that help to make the question more narrow.
First let's keep in mind that druid is built around a very strong design 
hypothesis which is the immutability of the segments. By having a read only 
segments we can achieve huge speedup/caching.
But this it does not mean that you can not insert/append or delete data.
Assuming your are ingestion data via batch ingestion, let's start with the 
simple case which is delete data.
Druid has the concept of load and drop rules for segments, hence to drop  an 
entire segment all we need to do is to send a drop request to the coordinator. 
For instance in a reporting use case, usually you want to load the data for the 
last 3 months only, you can tell druid to only keep the segment within the last 
3 months.  
Although if your use case is to delete one or N-rows from one segment that is 
not trivial. What you need to do is to send a new index task with the new data 
for that specific interval then druid will replace the old segment and by the 
new one.
What this imply is that you won't really impact how fast or slow is the query. 
But druid will happily answer to the query using the old segment till the 
re-index task is done.

For append/insert druid support delta batch ingestion. What his means you can 
trigger an index job and you tell druid that you want to append/insert this set 
of rows to this existing segment. 
What is the impact of this on the query. The answer is the same as above. Druid 
will answer to the query with the old data till the index map-reduce job is 
done.

If you use case is realtime it is totally a different discussion.
[~arupadhy] hope this make sense to you. Please feel free to explain more the 
use case you are targeting.

> CRUD operations using Calcite for DRUID
> ---
>
> Key: CALCITE-1391
> URL: https://issues.apache.org/jira/browse/CALCITE-1391
> Project: Calcite
>  Issue Type: Wish
>  Components: druid
> Environment: Druid Production Environment
>Reporter: Arvind
>Assignee: Julian Hyde
>Priority: Critical
>
> Hi Team,
> I know that we are able to read data from druid using Calcite SQLLINE command 
> but I would like to know if we can insert, Update and delete segments in 
> DRUID using Calcite. We are using DRUID as a reporting platform and for us to 
> incrementally update, delete and append data we need these operations. As we 
> are dealing with huge volumes of data we depend on DRUID and very badly need 
> these Insert, Update and Delete.
> Any help is much appreciated.
> Thanks,
> Arvind



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1391) CRUD operations using Calcite for DRUID

2016-09-28 Thread Julian Hyde (JIRA)

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

Julian Hyde commented on CALCITE-1391:
--

If you were to implement INSERT, UPDATE and DELETE SQL commands against Druid, 
you would end up with a similar problem to the one Hive has: it is very 
inefficient to modify a single record in a (very large) segment. Hive's 
solution is [ACID|http://hortonworks.com/blog/adding-acid-to-apache-hive/], but 
it was a lot of work to merge deltas into every Hive read path.

What kind of performance characteristics are you aiming for? If  you're 
thinking of large, infrequent batch updates, then I think it could work. But 
frequent small updates would probably bring Druid to its knees. And I don't 
know whether Druid even supports updates and deletes.

[~nishantbangarwa] and [~bslim], what do you think?

> CRUD operations using Calcite for DRUID
> ---
>
> Key: CALCITE-1391
> URL: https://issues.apache.org/jira/browse/CALCITE-1391
> Project: Calcite
>  Issue Type: Wish
>  Components: druid
> Environment: Druid Production Environment
>Reporter: Arvind
>Assignee: Julian Hyde
>Priority: Critical
>
> Hi Team,
> I know that we are able to read data from druid using Calcite SQLLINE command 
> but I would like to know if we can insert, Update and delete segments in 
> DRUID using Calcite. We are using DRUID as a reporting platform and for us to 
> incrementally update, delete and append data we need these operations. As we 
> are dealing with huge volumes of data we depend on DRUID and very badly need 
> these Insert, Update and Delete.
> Any help is much appreciated.
> Thanks,
> Arvind



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CALCITE-1399) SerializationConverter in HsqldbServer needs to be public

2016-09-28 Thread Josh Elser (JIRA)

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

Josh Elser resolved CALCITE-1399.
-
Resolution: Fixed

Resolved in 
https://git1-us-west.apache.org/repos/asf?p=calcite.git;a=commit;h=c9ec5c88dd46e2c49ec3137d835b086708fbc4d6

> SerializationConverter in HsqldbServer needs to be public
> -
>
> Key: CALCITE-1399
> URL: https://issues.apache.org/jira/browse/CALCITE-1399
> Project: Calcite
>  Issue Type: Bug
>  Components: avatica
>Affects Versions: avatica-1.8.0
>Reporter: Josh Elser
>Assignee: Josh Elser
>Priority: Trivial
> Fix For: avatica-1.9.0
>
>
> The standalone Avatica server built using HSQLDB has an {{IStringConverter}} 
> implementation for controlling what Avatica serialization method (JSON or 
> PROTOBUF) is used.
> But, this StringConverter class is private which breaks jcommander as it 
> cannot access the class and instantiate it.
> Need to make it public.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CALCITE-1393) Exclude packages org.apache.calcite.benchmarks.generated, org.openjdk.jmh from javadoc

2016-09-28 Thread Julian Hyde (JIRA)

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

Julian Hyde resolved CALCITE-1393.
--
   Resolution: Fixed
Fix Version/s: 1.10.0

Fixed in http://git-wip-us.apache.org/repos/asf/calcite/commit/68395857.

> Exclude packages org.apache.calcite.benchmarks.generated, org.openjdk.jmh 
> from javadoc
> --
>
> Key: CALCITE-1393
> URL: https://issues.apache.org/jira/browse/CALCITE-1393
> Project: Calcite
>  Issue Type: Bug
>Reporter: Julian Hyde
>Assignee: Julian Hyde
> Fix For: 1.10.0
>
>
> Exclude packages org.apache.calcite.benchmarks.generated, org.openjdk.jmh 
> from javadoc. These are in the ubenchmark module (in main mode, not test 
> mode) but we don't want them to appear on the web site.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CALCITE-1394) Using CoreMatchers.containsString causes javadoc errors

2016-09-28 Thread Julian Hyde (JIRA)

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

Julian Hyde resolved CALCITE-1394.
--
   Resolution: Fixed
Fix Version/s: 1.10.0
   avatica-1.9.0

Fixed in http://git-wip-us.apache.org/repos/asf/calcite/commit/514d262e. (The 
peculiar fix version is because the commit contains a mixture of Calcite and 
Avatica changes. That's not usually OK, but these are just issues with the 
QA/release process, not functionality.)

> Using CoreMatchers.containsString causes javadoc errors
> ---
>
> Key: CALCITE-1394
> URL: https://issues.apache.org/jira/browse/CALCITE-1394
> Project: Calcite
>  Issue Type: Bug
>Reporter: Julian Hyde
>Assignee: Julian Hyde
> Fix For: avatica-1.9.0, 1.10.0
>
>
> Under JDK 1.7, using the method {{CoreMatchers.containsString}} causes 
> javadoc warnings, similar to https://github.com/junit-team/junit4/issues/872. 
> The cause, I think, is that Avatica uses mockito and it bundles a different 
> version of hamcrest. The solution is to use 
> {{StringContains.containsString}}, which exists in an earlier version of 
> hamcrest.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CALCITE-1399) SerializationConverter in HsqldbServer needs to be public

2016-09-28 Thread Josh Elser (JIRA)
Josh Elser created CALCITE-1399:
---

 Summary: SerializationConverter in HsqldbServer needs to be public
 Key: CALCITE-1399
 URL: https://issues.apache.org/jira/browse/CALCITE-1399
 Project: Calcite
  Issue Type: Bug
  Components: avatica
Affects Versions: avatica-1.8.0
Reporter: Josh Elser
Assignee: Josh Elser
Priority: Trivial
 Fix For: avatica-1.9.0


The standalone Avatica server built using HSQLDB has an {{IStringConverter}} 
implementation for controlling what Avatica serialization method (JSON or 
PROTOBUF) is used.

But, this StringConverter class is private which breaks jcommander as it cannot 
access the class and instantiate it.

Need to make it public.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1397) ClassCastException in FilterReduceExpressionsRule

2016-09-28 Thread Julian Hyde (JIRA)

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

Julian Hyde commented on CALCITE-1397:
--

Need a test case.

It might be simpler if {{reduceNotNullableFilter}} accepted any {{RexNode}}, 
not just {{RexCall}}; it would no-op if the arg was not IS_NULL, IS_UNKNOWN, 
IS_NOT_NULL. Then you can remove the casts and 'if' before you call it.

> ClassCastException in FilterReduceExpressionsRule
> -
>
> Key: CALCITE-1397
> URL: https://issues.apache.org/jira/browse/CALCITE-1397
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.9.0
>Reporter: Jesus Camacho Rodriguez
>Assignee: Jesus Camacho Rodriguez
>
> L184 in ReduceExpressionsRule.
> {code}
> ...
> if (newConditionExp instanceof RexCall) {
>   RexCall rexCall = (RexCall) newConditionExp;
>   boolean reverse = rexCall.getKind() == SqlKind.NOT;
>   if (reverse) {
> rexCall = (RexCall) rexCall.getOperands().get(0);
>   }
>   reduceNotNullableFilter(call, filter, rexCall, reverse);
> }
> ...
> {code}
> When we take the _NOT_ input, we do not consider that it might not be a 
> RexCall, which may lead to the ClassCastException.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1396) isDeterministic only explores top RexCall

2016-09-28 Thread Julian Hyde (JIRA)

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

Julian Hyde commented on CALCITE-1396:
--

Any ideas how we could create a SQL test? Doesn't seem that it would be easy.

+1

> isDeterministic only explores top RexCall
> -
>
> Key: CALCITE-1396
> URL: https://issues.apache.org/jira/browse/CALCITE-1396
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.9.0
>Reporter: Jesus Camacho Rodriguez
>Assignee: Jesus Camacho Rodriguez
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1398) Change visibility of RelFieldTrimmer utility methods

2016-09-28 Thread Julian Hyde (JIRA)

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

Julian Hyde commented on CALCITE-1398:
--

+1

> Change visibility of RelFieldTrimmer utility methods
> 
>
> Key: CALCITE-1398
> URL: https://issues.apache.org/jira/browse/CALCITE-1398
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.9.0
>Reporter: Jesus Camacho Rodriguez
>Assignee: Jesus Camacho Rodriguez
>
> The goal is that its subclasses can use them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1110) remove or relocate shaded jackson in Avatica

2016-09-28 Thread Josh Elser (JIRA)

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

Josh Elser commented on CALCITE-1110:
-

I'm also addressing this over in CALCITE-1224 
https://github.com/apache/calcite/pull/282

> remove or relocate shaded jackson in Avatica
> 
>
> Key: CALCITE-1110
> URL: https://issues.apache.org/jira/browse/CALCITE-1110
> Project: Calcite
>  Issue Type: Improvement
>  Components: avatica
>Affects Versions: 1.6.0, 1.5.0
>Reporter: Kai Gülzau
>Assignee: Josh Elser
>Priority: Critical
> Fix For: avatica-1.9.0
>
>
> The avatica jar includes a shaded version of jackson under the original 
> package path.
> This shaded version interferes with other jackson versions in the classpath.
> Currently this prevents us from using jackson functionality which is only 
> implemented in newer versions.
> https://mail-archives.apache.org/mod_mbox/calcite-dev/201602.mbox/%3C977C7450-18F4-48E2-A970-69B7E3E1BD2C%40apache.org%3E
> {quote}
> Is it reasonable to have a maven profile that uses jackson as “provided”[1] 
> rather than shading? This would not be the default — the default would be 
> continue to use a shaded version of jackson (relocated to 
> org.apache.calcite.jackson, as Josh suggests) — but folks looking to embed 
> calcite/avatica in a container might appreciate a lighter weight option.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1398) Change visibility of RelFieldTrimmer utility methods

2016-09-28 Thread Jesus Camacho Rodriguez (JIRA)

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

Jesus Camacho Rodriguez commented on CALCITE-1398:
--

[~julianhyde], this one is straightforward; it will allow us to use the 
functions in Hive own RelFieldTrimmer implementation.

https://github.com/apache/calcite/pull/288

Thanks

> Change visibility of RelFieldTrimmer utility methods
> 
>
> Key: CALCITE-1398
> URL: https://issues.apache.org/jira/browse/CALCITE-1398
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.9.0
>Reporter: Jesus Camacho Rodriguez
>Assignee: Jesus Camacho Rodriguez
>
> The goal is that its subclasses can use them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CALCITE-1398) Change visibility of RelFieldTrimmer utility methods

2016-09-28 Thread Jesus Camacho Rodriguez (JIRA)
Jesus Camacho Rodriguez created CALCITE-1398:


 Summary: Change visibility of RelFieldTrimmer utility methods
 Key: CALCITE-1398
 URL: https://issues.apache.org/jira/browse/CALCITE-1398
 Project: Calcite
  Issue Type: Bug
  Components: core
Affects Versions: 1.9.0
Reporter: Jesus Camacho Rodriguez
Assignee: Jesus Camacho Rodriguez


The goal is that its subclasses can use them.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1397) ClassCastException in FilterReduceExpressionsRule

2016-09-28 Thread Jesus Camacho Rodriguez (JIRA)

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

Jesus Camacho Rodriguez commented on CALCITE-1397:
--

[~julianhyde], could you take a look?

https://github.com/apache/calcite/pull/287

Thanks

> ClassCastException in FilterReduceExpressionsRule
> -
>
> Key: CALCITE-1397
> URL: https://issues.apache.org/jira/browse/CALCITE-1397
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.9.0
>Reporter: Jesus Camacho Rodriguez
>Assignee: Jesus Camacho Rodriguez
>
> L184 in ReduceExpressionsRule.
> {code}
> ...
> if (newConditionExp instanceof RexCall) {
>   RexCall rexCall = (RexCall) newConditionExp;
>   boolean reverse = rexCall.getKind() == SqlKind.NOT;
>   if (reverse) {
> rexCall = (RexCall) rexCall.getOperands().get(0);
>   }
>   reduceNotNullableFilter(call, filter, rexCall, reverse);
> }
> ...
> {code}
> When we take the _NOT_ input, we do not consider that it might not be a 
> RexCall, which may lead to the ClassCastException.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1396) isDeterministic only explores top RexCall

2016-09-28 Thread Jesus Camacho Rodriguez (JIRA)

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

Jesus Camacho Rodriguez commented on CALCITE-1396:
--

[~julianhyde], could you take a look?

https://github.com/apache/calcite/pull/286

Thanks

> isDeterministic only explores top RexCall
> -
>
> Key: CALCITE-1396
> URL: https://issues.apache.org/jira/browse/CALCITE-1396
> Project: Calcite
>  Issue Type: Bug
>  Components: core
>Affects Versions: 1.9.0
>Reporter: Jesus Camacho Rodriguez
>Assignee: Jesus Camacho Rodriguez
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CALCITE-1397) ClassCastException in FilterReduceExpressionsRule

2016-09-28 Thread Jesus Camacho Rodriguez (JIRA)
Jesus Camacho Rodriguez created CALCITE-1397:


 Summary: ClassCastException in FilterReduceExpressionsRule
 Key: CALCITE-1397
 URL: https://issues.apache.org/jira/browse/CALCITE-1397
 Project: Calcite
  Issue Type: Bug
  Components: core
Affects Versions: 1.9.0
Reporter: Jesus Camacho Rodriguez
Assignee: Jesus Camacho Rodriguez


L184 in ReduceExpressionsRule.

{code}
...
if (newConditionExp instanceof RexCall) {
  RexCall rexCall = (RexCall) newConditionExp;
  boolean reverse = rexCall.getKind() == SqlKind.NOT;
  if (reverse) {
rexCall = (RexCall) rexCall.getOperands().get(0);
  }
  reduceNotNullableFilter(call, filter, rexCall, reverse);
}
...
{code}

When we take the _NOT_ input, we do not consider that it might not be a 
RexCall, which may lead to the ClassCastException.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CALCITE-1392) Unable to specify time granularity for Druid

2016-09-28 Thread JIRA

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

Maciej Bryński commented on CALCITE-1392:
-

I didn't.
And I don't have "__time" column in my data source. I was sure that this is 
meta column created by calcite itself.

Especially with this quote from calcite page
https://calcite.apache.org/docs/druid_adapter.html
{quote}
Simplifying the modelPermalink
If less metadata is provided in the model, the Druid adapter can discover it 
automatically from Druid. Here is a schema equivalent to the previous one but 
with dimensions, metrics and timestampColumn removed:
{quote}

> Unable to specify time granularity for Druid
> 
>
> Key: CALCITE-1392
> URL: https://issues.apache.org/jira/browse/CALCITE-1392
> Project: Calcite
>  Issue Type: Bug
>  Components: druid
>Affects Versions: 1.9.0
>Reporter: Maciej Bryński
>Assignee: Julian Hyde
>
> Druid 0.9.1.1
> Calcite 1.9.0
> I'm trying to calculate count per day.
> What I'm doing wrong ?
> {code}
> !connect 
> jdbc:calcite:schemaFactory=org.apache.calcite.adapter.druid.DruidSchemaFactory
>  admin admin
> 0: jdbc:calcite:schemaFactory=org.apache.calc> !describe "table"
> +---+-++-+---+---+-+---+++--+-++---+--+
> | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | COLUMN_NAME | DATA_TYPE | TYPE_NAME 
> | COLUMN_SIZE | BUFFER_LENGTH | DECIMAL_DIGITS | NUM_PREC_RADIX | NULLABLE | 
> REMARKS | COLUMN_DEF | SQL_DATA_TYPE | SQL_DATETIME_SUB |
> +---+-++-+---+---+-+---+++--+-++---+--+
> |   | adhoc   | table  | __time  | -5| BIGINT| -1 
>  |   | null   | 10 | 1|   
>   ||   |  |
> |
> |   | adhoc   | table| count   | -5| BIGINT| 
> -1  |   | null   | 10 | 1|
>  ||   |  
> 0: jdbc:calcite:schemaFactory=org.apache.calc> select sum("count") from 
> "table" group by floor("__time" to DAY);
> 2016-09-27 21:50:26,770 [main] ERROR - 
> org.apache.calcite.sql.validate.SqlValidatorException: Cannot apply 'FLOOR' 
> to arguments of type 'FLOOR(, )'. Supported form(s): 
> 'FLOOR()'
> 'FLOOR()'
> 'FLOOR( TO )'
> 'FLOOR( TO )'
> 'FLOOR( TO )'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (CALCITE-1392) Unable to specify time granularity for Druid

2016-09-28 Thread JIRA

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

Maciej Bryński edited comment on CALCITE-1392 at 9/28/16 2:37 PM:
--

I didn't.
And I don't have "__time" column in my data source. I was sure that this is 
meta column created by calcite itself. And it's type is not VARCHAR but BIGINT

Especially with this quote from calcite page
https://calcite.apache.org/docs/druid_adapter.html
{quote}
Simplifying the modelPermalink
If less metadata is provided in the model, the Druid adapter can discover it 
automatically from Druid. Here is a schema equivalent to the previous one but 
with dimensions, metrics and timestampColumn removed:
{quote}


was (Author: maver1ck):
I didn't.
And I don't have "__time" column in my data source. I was sure that this is 
meta column created by calcite itself.

Especially with this quote from calcite page
https://calcite.apache.org/docs/druid_adapter.html
{quote}
Simplifying the modelPermalink
If less metadata is provided in the model, the Druid adapter can discover it 
automatically from Druid. Here is a schema equivalent to the previous one but 
with dimensions, metrics and timestampColumn removed:
{quote}

> Unable to specify time granularity for Druid
> 
>
> Key: CALCITE-1392
> URL: https://issues.apache.org/jira/browse/CALCITE-1392
> Project: Calcite
>  Issue Type: Bug
>  Components: druid
>Affects Versions: 1.9.0
>Reporter: Maciej Bryński
>Assignee: Julian Hyde
>
> Druid 0.9.1.1
> Calcite 1.9.0
> I'm trying to calculate count per day.
> What I'm doing wrong ?
> {code}
> !connect 
> jdbc:calcite:schemaFactory=org.apache.calcite.adapter.druid.DruidSchemaFactory
>  admin admin
> 0: jdbc:calcite:schemaFactory=org.apache.calc> !describe "table"
> +---+-++-+---+---+-+---+++--+-++---+--+
> | TABLE_CAT | TABLE_SCHEM | TABLE_NAME | COLUMN_NAME | DATA_TYPE | TYPE_NAME 
> | COLUMN_SIZE | BUFFER_LENGTH | DECIMAL_DIGITS | NUM_PREC_RADIX | NULLABLE | 
> REMARKS | COLUMN_DEF | SQL_DATA_TYPE | SQL_DATETIME_SUB |
> +---+-++-+---+---+-+---+++--+-++---+--+
> |   | adhoc   | table  | __time  | -5| BIGINT| -1 
>  |   | null   | 10 | 1|   
>   ||   |  |
> |
> |   | adhoc   | table| count   | -5| BIGINT| 
> -1  |   | null   | 10 | 1|
>  ||   |  
> 0: jdbc:calcite:schemaFactory=org.apache.calc> select sum("count") from 
> "table" group by floor("__time" to DAY);
> 2016-09-27 21:50:26,770 [main] ERROR - 
> org.apache.calcite.sql.validate.SqlValidatorException: Cannot apply 'FLOOR' 
> to arguments of type 'FLOOR(, )'. Supported form(s): 
> 'FLOOR()'
> 'FLOOR()'
> 'FLOOR( TO )'
> 'FLOOR( TO )'
> 'FLOOR( TO )'
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CALCITE-1395) Unable to get table of Druid

2016-09-28 Thread Lyle (JIRA)

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

Lyle updated CALCITE-1395:
--
Description: 
- If a table "bb" does not exist, execute the 
CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = false 
and Lex.MYSQL_ANSI, Will get an unexpected result, for another table "ab". If 
normal get a null value。then throws a Exception:   
{code}
 java.sql.SQLException: Error while executing SQL "select count(*) as c from 
bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
position (0) must be less than the number of elements that remained (0)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
  
at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
  
at TestCalciteDruid.main(TestCalciteDruid.java:57)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
at java.lang.reflect.Method.invoke(Method.java:606)  
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
 
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: 
java.lang.IndexOutOfBoundsException: position (0) must be less than the number 
of elements that remained (0)  
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
{code}
- Why should query table information by coordinater node, instead of the broker 
node? coordinater node can not get table data of real-time node

  was:
- If a table "bb" does not exist, execute the 
CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = false 
and Lex.MYSQL_ANSI, Will get an unexpected result, for another table "ab", 
normal get null。then throws a Exception:   
{code}
 java.sql.SQLException: Error while executing SQL "select count(*) as c from 
bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
position (0) must be less than the number of elements that remained (0)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
  
at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
  
at TestCalciteDruid.main(TestCalciteDruid.java:57)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
at java.lang.reflect.Method.invoke(Method.java:606)  
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
 
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: 
java.lang.IndexOutOfBoundsException: position (0) must be less than the number 
of elements that remained (0)  
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
{code}
- Why should query table information by coordinater node, instead of the broker 
node? coordinater node can not get table data of real-time node


> Unable to get table of Druid
> 
>
> Key: CALCITE-1395
> URL: https://issues.apache.org/jira/browse/CALCITE-1395
> Project: Calcite
>  Issue Type: Bug
>  Components: druid
>Affects Versions: 1.9.0
> Environment: Druid 0.9.1.1 +  calcite 1.9.0
>Reporter: Lyle
>Assignee: Julian Hyde
>
> - If a table "bb" does not exist, execute the 
> CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = 
> false and Lex.MYSQL_ANSI, Will get an unexpected result, for another table 
> "ab". If normal get a null value。then throws a Exception:   
> {code}
>  java.sql.SQLException: Error while executing SQL "select count(*) as c from 
> bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
> position (0) must be less than the number of elements that remained (0)  
>   at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
>   at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
>   at 
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
>   
>   at 
> org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
>   
> 

[jira] [Updated] (CALCITE-1395) Unable to get table of Druid

2016-09-28 Thread Lyle (JIRA)

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

Lyle updated CALCITE-1395:
--
Description: 
- If a table "bb" does not exist, execute the 
CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = false 
and Lex.MYSQL_ANSI, Will get an unexpected result, for another table "ab", 
normal get null。then throws a Exception:   
{code}
 java.sql.SQLException: Error while executing SQL "select count(*) as c from 
bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
position (0) must be less than the number of elements that remained (0)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
  
at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
  
at TestCalciteDruid.main(TestCalciteDruid.java:57)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
at java.lang.reflect.Method.invoke(Method.java:606)  
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
 
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: 
java.lang.IndexOutOfBoundsException: position (0) must be less than the number 
of elements that remained (0)  
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
{code}
- Why should query table information by coordinater node, instead of the broker 
node? coordinater node can not get table data of real-time node

  was:
- If a table "bb" does not exist, execute the 
CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = false 
and Lex.MYSQL_ANSI, Will get an unexpected result, for table "ab", normal get 
null。then throws a Exception:   
{code}
 java.sql.SQLException: Error while executing SQL "select count(*) as c from 
bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
position (0) must be less than the number of elements that remained (0)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
  
at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
  
at TestCalciteDruid.main(TestCalciteDruid.java:57)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
at java.lang.reflect.Method.invoke(Method.java:606)  
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
 
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: 
java.lang.IndexOutOfBoundsException: position (0) must be less than the number 
of elements that remained (0)  
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
{code}
- Why should query table information by coordinater node, instead of the broker 
node? coordinater node can not get table data of real-time node


> Unable to get table of Druid
> 
>
> Key: CALCITE-1395
> URL: https://issues.apache.org/jira/browse/CALCITE-1395
> Project: Calcite
>  Issue Type: Bug
>  Components: druid
>Affects Versions: 1.9.0
> Environment: Druid 0.9.1.1 +  calcite 1.9.0
>Reporter: Lyle
>Assignee: Julian Hyde
>
> - If a table "bb" does not exist, execute the 
> CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = 
> false and Lex.MYSQL_ANSI, Will get an unexpected result, for another table 
> "ab", normal get null。then throws a Exception:   
> {code}
>  java.sql.SQLException: Error while executing SQL "select count(*) as c from 
> bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
> position (0) must be less than the number of elements that remained (0)  
>   at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
>   at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
>   at 
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
>   
>   at 
> org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
>   
>   at 

[jira] [Updated] (CALCITE-1395) Unable to get table of Druid

2016-09-28 Thread Lyle (JIRA)

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

Lyle updated CALCITE-1395:
--
Description: 
- If a table "bb" does not exist, execute the 
CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = false 
and Lex.MYSQL_ANSI, Will get an unexpected result, for table "ab", normal get 
null。then throws a Exception:   
{code}
 java.sql.SQLException: Error while executing SQL "select count(*) as c from 
bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
position (0) must be less than the number of elements that remained (0)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
  
at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
  
at TestCalciteDruid.main(TestCalciteDruid.java:57)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
at java.lang.reflect.Method.invoke(Method.java:606)  
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
 
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: 
java.lang.IndexOutOfBoundsException: position (0) must be less than the number 
of elements that remained (0)  
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
{code}
- Why should query table information by coordinater node, instead of the broker 
node? coordinater node can not get table data of real-time node

  was:
- If a table does not exist, execute the 
CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = false 
and Lex.MYSQL_ANSI, Will get an unexpected result。then throws a Exception:   
{code}
 java.sql.SQLException: Error while executing SQL "select count(*) as c from 
bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
position (0) must be less than the number of elements that remained (0)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
  
at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
  
at TestCalciteDruid.main(TestCalciteDruid.java:57)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
at java.lang.reflect.Method.invoke(Method.java:606)  
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
 
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: 
java.lang.IndexOutOfBoundsException: position (0) must be less than the number 
of elements that remained (0)  
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
{code}
- Why should query table information by coordinater node, instead of the broker 
node? coordinater node can not get table data of real-time node


> Unable to get table of Druid
> 
>
> Key: CALCITE-1395
> URL: https://issues.apache.org/jira/browse/CALCITE-1395
> Project: Calcite
>  Issue Type: Bug
>  Components: druid
>Affects Versions: 1.9.0
> Environment: Druid 0.9.1.1 +  calcite 1.9.0
>Reporter: Lyle
>Assignee: Julian Hyde
>
> - If a table "bb" does not exist, execute the 
> CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = 
> false and Lex.MYSQL_ANSI, Will get an unexpected result, for table "ab", 
> normal get null。then throws a Exception:   
> {code}
>  java.sql.SQLException: Error while executing SQL "select count(*) as c from 
> bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
> position (0) must be less than the number of elements that remained (0)  
>   at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
>   at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
>   at 
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
>   
>   at 
> org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
>   
>   at TestCalciteDruid.main(TestCalciteDruid.java:57)  
>   at 

[jira] [Updated] (CALCITE-1395) Unable to get table of Druid

2016-09-28 Thread Lyle (JIRA)

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

Lyle updated CALCITE-1395:
--
Description: 
- If a table does not exist, execute the 
CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = 
false, Will get an unexpected result。then throws a Exception:   
{code}
 java.sql.SQLException: Error while executing SQL "select count(*) as c from 
bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
position (0) must be less than the number of elements that remained (0)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
  
at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
  
at TestCalciteDruid.main(TestCalciteDruid.java:57)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
at java.lang.reflect.Method.invoke(Method.java:606)  
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
 
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: 
java.lang.IndexOutOfBoundsException: position (0) must be less than the number 
of elements that remained (0)  
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
{code}
- Why should query table information by coordinater node, instead of the broker 
node? coordinater node can not get table data of real-time node

  was:
- If a table does not exist, execute the 
CachingCalciteSchema.getImplicitTable() and caseSensitive = false, Will get an 
unexpected result。then throws a Exception:   
{code}
 java.sql.SQLException: Error while executing SQL "select count(*) as c from 
bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
position (0) must be less than the number of elements that remained (0)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
at 
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
  
at 
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
  
at TestCalciteDruid.main(TestCalciteDruid.java:57)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  
at java.lang.reflect.Method.invoke(Method.java:606)  
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) 
 
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: 
java.lang.IndexOutOfBoundsException: position (0) must be less than the number 
of elements that remained (0)  
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
{code}
- Why should query table information by coordinater node, instead of the broker 
node? coordinater node can not get table data of real-time node


> Unable to get table of Druid
> 
>
> Key: CALCITE-1395
> URL: https://issues.apache.org/jira/browse/CALCITE-1395
> Project: Calcite
>  Issue Type: Bug
>  Components: druid
>Affects Versions: 1.9.0
> Environment: Druid 0.9.1.1 +  calcite 1.9.0
>Reporter: Lyle
>Assignee: Julian Hyde
>
> - If a table does not exist, execute the 
> CachingCalciteSchema.getImplicitTable() and the parameter caseSensitive = 
> false, Will get an unexpected result。then throws a Exception:   
> {code}
>  java.sql.SQLException: Error while executing SQL "select count(*) as c from 
> bb where __time = '1475043567605'": java.lang.IndexOutOfBoundsException: 
> position (0) must be less than the number of elements that remained (0)  
>   at org.apache.calcite.avatica.Helper.createException(Helper.java:56)  
>   at org.apache.calcite.avatica.Helper.createException(Helper.java:41)  
>   at 
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:147)
>   
>   at 
> org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:208)
>   
>   at TestCalciteDruid.main(TestCalciteDruid.java:57)  
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
>  
>   at 
>