You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Li, Yang" <ya...@ebay.com> on 2014/11/13 06:51:58 UTC

RE: migrate from 0.8 to 0.9.1

Thanks Julian! Follow the suggestions, migrate Kylin to Calcite 0.9.1 was done pretty smooth.

One small question though. In SqlToRelConverter.java, I have to override two methods -- getInSubqueryThreshold() and isTrimUnusedFields() -- in order to make Kylin work. Basically I disable the two optimizations by returning max for the threshold and false for the trim-unused-fields. I'm wondering what is the recommended way to make such things customizable? Should it be a sub-class, or a system property, or there's a configuration file?

I'd like to do a pull request to make these two points customizable. Just want to make sure I follow the common practice in Calcite. An example would be ideal.  :-)

Cheers
Yang

-----Original Message-----
From: Julian Hyde [mailto:julian@hydromatic.net] 
Sent: 2014年10月24日 14:07
To: dev
Subject: Re: migrate from 0.8 to 0.9.1

The release history[1] describes the changes made in each release.
Each release has a section "API changes" that you should read carefully.

Yes, I would recommend moving to 0.9.1. It is stable, and better than any previous release.

The maven coordinates have changed from {"net.hydromatic", "optiq"} to {"org.apache", "calcite"}, but we have not yet renamed packages and classes[2]. It is almost certainly the last release before the big re-org, and I will be recommending that everyone moves to 0.9.1 before they attempt to upgrade to the next release, where all of the packages will have changed, and many class names too.

Before you upgrade from 0.8, make sure you are not calling any deprecated methods. They might be removed when you get to 0.9.1. Also look through the git history, looking for commits called "Remove deprecated methods" or similar.

If you have any build errors, post them to this list. We should be able to help.

Good luck!

Julian

[1] https://github.com/apache/incubator-calcite/blob/master/doc/HISTORY.md

[2] https://issues.apache.org/jira/browse/CALCITE-296

On Thu, Oct 23, 2014 at 10:41 PM, Li, Yang <ya...@ebay.com> wrote:
> Hi
>
> I'm assessing the effort of migrating Kylin<https://github.com/KylinOLAP/Kylin> from optiq 0.8 to calcite 0.9.1. A few questions appreciate advise.
>
>
> -        What are the major changes between the two versions?  Git has a list of commits, but if a summary exists would be best.
>
> -        Is 0.9.1 a stable release that you would recommend?  Or a better version is coming soon?
>
> -        Any traps you can foresee about the migration?
>
> Thanks
> Yang

Re: migrate from 0.8 to 0.9.1

Posted by Julian Hyde <ju...@hydromatic.net>.
I recommend you make it a system property. Something similar to this in CalcitePrepareImpl:

public static final boolean COMMUTE =
    "true".equals(
        System.getProperties().getProperty("calcite.enable.join.commute"));

We don’t have a good solution to configuration yet, but when we do, we should be able to find properties that are referenced like this.

Julian

On Dec 1, 2014, at 2:02 PM, Li, Yang <ya...@ebay.com> wrote:

> Hi, could anyone give some advice on adding configuration to calcite for the case below?
> 
> Thanks!
> Yang
> 
> -----Original Message-----
> From: Li, Yang 
> Sent: 2014年11月12日 21:52
> To: dev@calcite.incubator.apache.org
> Subject: RE: migrate from 0.8 to 0.9.1
> 
> Thanks Julian! Follow the suggestions, migrate Kylin to Calcite 0.9.1 was done pretty smooth.
> 
> One small question though. In SqlToRelConverter.java, I have to override two methods -- getInSubqueryThreshold() and isTrimUnusedFields() -- in order to make Kylin work. Basically I disable the two optimizations by returning max for the threshold and false for the trim-unused-fields. I'm wondering what is the recommended way to make such things customizable? Should it be a sub-class, or a system property, or there's a configuration file?
> 
> I'd like to do a pull request to make these two points customizable. Just want to make sure I follow the common practice in Calcite. An example would be ideal.  :-)
> 
> Cheers
> Yang
> 
> -----Original Message-----
> From: Julian Hyde [mailto:julian@hydromatic.net] 
> Sent: 2014年10月24日 14:07
> To: dev
> Subject: Re: migrate from 0.8 to 0.9.1
> 
> The release history[1] describes the changes made in each release.
> Each release has a section "API changes" that you should read carefully.
> 
> Yes, I would recommend moving to 0.9.1. It is stable, and better than any previous release.
> 
> The maven coordinates have changed from {"net.hydromatic", "optiq"} to {"org.apache", "calcite"}, but we have not yet renamed packages and classes[2]. It is almost certainly the last release before the big re-org, and I will be recommending that everyone moves to 0.9.1 before they attempt to upgrade to the next release, where all of the packages will have changed, and many class names too.
> 
> Before you upgrade from 0.8, make sure you are not calling any deprecated methods. They might be removed when you get to 0.9.1. Also look through the git history, looking for commits called "Remove deprecated methods" or similar.
> 
> If you have any build errors, post them to this list. We should be able to help.
> 
> Good luck!
> 
> Julian
> 
> [1] https://github.com/apache/incubator-calcite/blob/master/doc/HISTORY.md
> 
> [2] https://issues.apache.org/jira/browse/CALCITE-296
> 
> On Thu, Oct 23, 2014 at 10:41 PM, Li, Yang <ya...@ebay.com> wrote:
>> Hi
>> 
>> I'm assessing the effort of migrating Kylin<https://github.com/KylinOLAP/Kylin> from optiq 0.8 to calcite 0.9.1. A few questions appreciate advise.
>> 
>> 
>> -        What are the major changes between the two versions?  Git has a list of commits, but if a summary exists would be best.
>> 
>> -        Is 0.9.1 a stable release that you would recommend?  Or a better version is coming soon?
>> 
>> -        Any traps you can foresee about the migration?
>> 
>> Thanks
>> Yang


RE: migrate from 0.8 to 0.9.1

Posted by "Li, Yang" <ya...@ebay.com>.
Hi, could anyone give some advice on adding configuration to calcite for the case below?

Thanks!
Yang

-----Original Message-----
From: Li, Yang 
Sent: 2014年11月12日 21:52
To: dev@calcite.incubator.apache.org
Subject: RE: migrate from 0.8 to 0.9.1

Thanks Julian! Follow the suggestions, migrate Kylin to Calcite 0.9.1 was done pretty smooth.

One small question though. In SqlToRelConverter.java, I have to override two methods -- getInSubqueryThreshold() and isTrimUnusedFields() -- in order to make Kylin work. Basically I disable the two optimizations by returning max for the threshold and false for the trim-unused-fields. I'm wondering what is the recommended way to make such things customizable? Should it be a sub-class, or a system property, or there's a configuration file?

I'd like to do a pull request to make these two points customizable. Just want to make sure I follow the common practice in Calcite. An example would be ideal.  :-)

Cheers
Yang

-----Original Message-----
From: Julian Hyde [mailto:julian@hydromatic.net] 
Sent: 2014年10月24日 14:07
To: dev
Subject: Re: migrate from 0.8 to 0.9.1

The release history[1] describes the changes made in each release.
Each release has a section "API changes" that you should read carefully.

Yes, I would recommend moving to 0.9.1. It is stable, and better than any previous release.

The maven coordinates have changed from {"net.hydromatic", "optiq"} to {"org.apache", "calcite"}, but we have not yet renamed packages and classes[2]. It is almost certainly the last release before the big re-org, and I will be recommending that everyone moves to 0.9.1 before they attempt to upgrade to the next release, where all of the packages will have changed, and many class names too.

Before you upgrade from 0.8, make sure you are not calling any deprecated methods. They might be removed when you get to 0.9.1. Also look through the git history, looking for commits called "Remove deprecated methods" or similar.

If you have any build errors, post them to this list. We should be able to help.

Good luck!

Julian

[1] https://github.com/apache/incubator-calcite/blob/master/doc/HISTORY.md

[2] https://issues.apache.org/jira/browse/CALCITE-296

On Thu, Oct 23, 2014 at 10:41 PM, Li, Yang <ya...@ebay.com> wrote:
> Hi
>
> I'm assessing the effort of migrating Kylin<https://github.com/KylinOLAP/Kylin> from optiq 0.8 to calcite 0.9.1. A few questions appreciate advise.
>
>
> -        What are the major changes between the two versions?  Git has a list of commits, but if a summary exists would be best.
>
> -        Is 0.9.1 a stable release that you would recommend?  Or a better version is coming soon?
>
> -        Any traps you can foresee about the migration?
>
> Thanks
> Yang