[
https://issues.apache.org/jira/browse/CALCITE-572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14311896#comment-14311896
]
Vladimir Sitnikov commented on CALCITE-572:
-------------------------------------------
I've just tried a plugin to check backward compatibility (the first link on
Google), and the results are not that good.
Should we include some kind of automatic testing of backward compatibility in
our build system?
{noformat}
[INFO] Checking backward compatibility of
org.apache.calcite:calcite-core:jar:1.1.0-incubating-SNAPSHOT against
org.apache.calcite:calcite-core:jar:1.0.0-incubating:compile
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableCalc.java: Could not
find method copy in newer version.
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableCalc.java: Could not
find method copy in newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalCalc.java: Could not find method
copy in newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalCalc.java: Could not find method
copy in newer version.
[ERROR] org/apache/calcite/schema/Statistics.java: Could not find method <init>
in newer version.
[ERROR] org/apache/calcite/rel/RelCollation.java:
org/apache/calcite/rel/RelCollation is not implementing
org/apache/calcite/plan/RelTrait anymore.
[ERROR] org/apache/calcite/rel/logical/LogicalIntersect.java: Could not find
field $assertionsDisabled in newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalIntersect.java: Could not find
method <clinit> in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find method
access$100 in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find field
$SwitchMap$org$apache$calcite$rel$RelFieldCollation$NullDirection in newer
version.
[ERROR] org/apache/calcite/plan/RelTraitSet.java: Could not find method
subsumes in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find field flags in
newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find field
collationList in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find method <init>
in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find method
getCollationList in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find method isBoxed
in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find method
getFlags in newer version.
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableProject.java: Could not
find method <init> in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find field
val$fieldCollation in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find method
<init> in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find field
val$fieldCollation in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find method
<init> in newer version.
[ERROR] org/apache/calcite/prepare/Prepare.java: Could not find method optimize
in newer version.
[ERROR] org/apache/calcite/interpreter/BindableConvention.java: Could not find
method subsumes in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java:
org/apache/calcite/plan/RelOptUtil$11 extends java/util/AbstractList and not
java/lang/Object anymore.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find field
$SwitchMap$org$apache$calcite$plan$RelOptUtil$Logic in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find field
$SwitchMap$org$apache$calcite$plan$RelOptUtil$SubqueryType in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find field
$SwitchMap$org$apache$calcite$sql$SqlKind in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find method <clinit>
in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: The class
org/apache/calcite/plan/RelOptUtil$11 has been made final, this breaks
inheritance.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find field
flags in newer version.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find method
<init> in newer version.
[ERROR] org/apache/calcite/rex/RexProgram.java: Could not find method apply in
newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalProject.java: Could not find
method <init> in newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalProject.java: Could not find
method <init> in newer version.
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableConvention.java: Could
not find method subsumes in newer version.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find method
copy in newer version.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find method
copy in newer version.
[ERROR] org/apache/calcite/plan/RelTrait.java: Could not find method subsumes
in newer version.
[ERROR] org/apache/calcite/rel/core/Calc.java: Could not find method
getCollationList in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find method get in
newer version.
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableValues.java(51): The
visibility of the <init> method has been changed from NO_SCOPE to PRIVATE
[ERROR] org/apache/calcite/rel/core/Project.java: Public class
org/apache/calcite/rel/core/Project$Flags has been removed.
[ERROR] org/apache/calcite/interpreter/Bindables.java: Could not find method
<init> in newer version.
[ERROR] org/apache/calcite/rel/core/Sort.java: The class
org/apache/calcite/rel/core/Sort has been made abstract.
[ERROR] org/apache/calcite/rel/core/Sort.java(122): The method copy has been
made final, this now prevents overriding.
[ERROR] org/apache/calcite/rel/core/Sort.java(127): The method copy has been
made final, this now prevents overriding.
[ERROR] org/apache/calcite/adapter/clone/ArrayTable.java: Could not find method
access$200 in newer version.
[ERROR] org/apache/calcite/adapter/clone/ArrayTable.java: Could not find method
access$300 in newer version.
[ERROR] org/apache/calcite/interpreter/InterpretableConvention.java: Could not
find method subsumes in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find method
classifyFilters in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find method project
in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find field
EMPTY in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find field
PRESERVE in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find field
$assertionsDisabled in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method of
in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method of
in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method
subsumes in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method
createSingleton in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method
isValid in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method
equal in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method
ordinals in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method
<clinit> in newer version.
[ERROR] org/apache/calcite/plan/Convention.java: Could not find method subsumes
in newer version.
[ERROR] org/apache/calcite/plan/RelOptCluster.java: Could not find method
traitSetOf in newer version.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find method
<init> in newer version.
[ERROR] You have 66 backward compatibility issues.
{noformat}
{code:xml}
<plugin>
<groupId>com.googlecode.japi-checker</groupId>
<artifactId>japi-checker-maven-plugin</artifactId>
<version>0.1.4</version> <!-- The check is still in development at the moment
so snapshot is the only way to get it. -->
<configuration>
<reference>
<!-- Replace here with the reference artifact of your project. -->
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>1.0.0-incubating</version>
</reference>
<rules>
<rule>com.googlecode.japi.checker.rules.AllRules</rule>
</rules>
</configuration>
<executions>
<execution>
<id>check-bc</id> <!-- this is used for inheritance merges -->
<phase>verify</phase> <!-- bind to the packaging phase -->
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
{code}
> Remove Project.flags
> --------------------
>
> Key: CALCITE-572
> URL: https://issues.apache.org/jira/browse/CALCITE-572
> Project: Calcite
> Issue Type: Improvement
> Affects Versions: 1.0.0-incubating
> Reporter: Vladimir Sitnikov
> Assignee: Julian Hyde
> Fix For: 1.1.0-incubating
>
>
> Project.flags has no meaning under current code base.
> It need to be removed with Project.Flags class
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)