[ https://issues.apache.org/jira/browse/CALCITE-1213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15257189#comment-15257189 ]
Julian Hyde commented on CALCITE-1213: -------------------------------------- That did the trick. My regression test now succeeds. It's worth running Calcite suite against the latest Avatica snapshot from time to time, to check compatibility. And definitely as a prerequisite for an Avatica release. > Changing AvaticaDatabaseMetaData from class to interface breaks compatibility > ----------------------------------------------------------------------------- > > Key: CALCITE-1213 > URL: https://issues.apache.org/jira/browse/CALCITE-1213 > Project: Calcite > Issue Type: Bug > Components: avatica > Affects Versions: avatica-1.8.0 > Reporter: Julian Hyde > Assignee: Josh Elser > Fix For: avatica-1.8.0 > > > Changing AvaticaDatabaseMetaData from class to interface breaks > compatability. I am getting javadoc errors like the following: > {noformat} > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-site-plugin:3.4:site (default-site) on project > calcite: failed to get report for > org.apache.maven.plugins:maven-javadoc-plugin: Failed to execute goal > org.apache.maven.plugins:maven-compiler-plugin:3.2:compile (default-compile) > on project calcite-core: Compilation failure: Compilation failure: > [ERROR] > /home/jhyde/open1/calcite.3/core/src/main/java/org/apache/calcite/jdbc/CalciteJdbc41Factory.java:[259,15] > no interface expected here > [ERROR] > /home/jhyde/open1/calcite.3/core/src/main/java/org/apache/calcite/jdbc/CalciteMetaImpl.java:[76,8] > org.apache.calcite.jdbc.CalciteMetaImpl is not abstract and does not > override abstract method > executeBatch(org.apache.calcite.avatica.Meta.StatementHandle,java.util.List<java.util.List<org.apache.calcite.avatica.remote.TypedValue>>) > in org.apache.calcite.avatica.Meta > [ERROR] > /home/jhyde/open1/calcite.3/core/src/main/java/org/apache/calcite/jdbc/CalciteJdbc41Factory.java:[45,8] > org.apache.calcite.jdbc.CalciteJdbc41Factory is not abstract and does not > override abstract method > newDatabaseMetaData(org.apache.calcite.avatica.AvaticaConnection) in > org.apache.calcite.avatica.AvaticaFactory > [ERROR] > /home/jhyde/open1/calcite.3/core/src/main/java/org/apache/calcite/jdbc/CalciteJdbc41Factory.java:[63,40] > newDatabaseMetaData(org.apache.calcite.avatica.AvaticaConnection) in > org.apache.calcite.jdbc.CalciteJdbc41Factory cannot implement > newDatabaseMetaData(org.apache.calcite.avatica.AvaticaConnection) in > org.apache.calcite.avatica.AvaticaFactory > [ERROR] return type > org.apache.calcite.jdbc.CalciteJdbc41Factory.CalciteJdbc41DatabaseMetaData is > not compatible with org.apache.calcite.avatica.AvaticaDatabaseMetaData > {noformat} > This is telling us that Calcite is not compatible with the new version of > Avatica. Other apps that have 'class Foo extends AvaticaDatabaseMetaData' > will have the same problem. > I had reservations about making extensions to JDBC interfaces but if we are > going to have {{interface AvaticaXxx extends DatabaseMetaData}} it can not be > called {{AvaticaDatabaseMetaData}} -- that name is already taken by a class. > Introduced by https://github.com/apache/calcite/commit/ba9783f, CALCITE-836. -- This message was sent by Atlassian JIRA (v6.3.4#6332)