You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by jh...@apache.org on 2014/06/28 06:52:45 UTC
[1/8] git commit: Add test case for query decorrelation bug
[OPTIQ-313].
Repository: incubator-optiq
Updated Branches:
refs/heads/master 99f396828 -> 71ebeaa81
Add test case for query decorrelation bug [OPTIQ-313].
Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/d940fa30
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/d940fa30
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/d940fa30
Branch: refs/heads/master
Commit: d940fa3090f3014fc91d1015648133207d6ee123
Parents: e0b2f83
Author: Julian Hyde <ju...@gmail.com>
Authored: Thu Jun 26 18:39:59 2014 -0600
Committer: Julian Hyde <ju...@gmail.com>
Committed: Fri Jun 27 15:46:20 2014 -0700
----------------------------------------------------------------------
.../net/hydromatic/optiq/prepare/Prepare.java | 2 +
.../java/net/hydromatic/optiq/runtime/Hook.java | 4 ++
.../net/hydromatic/optiq/test/JdbcTest.java | 5 ++-
.../net/hydromatic/optiq/test/OptiqAssert.java | 45 +++++++++++---------
.../hydromatic/optiq/impl/tpch/TpchTest.java | 30 +++++++++++--
5 files changed, 60 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/d940fa30/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java b/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
index 469339d..219f9e5 100644
--- a/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
+++ b/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
@@ -255,6 +255,8 @@ public abstract class Prepare {
// Trim unused fields.
rootRel = trimUnusedFields(rootRel);
+ Hook.TRIMMED.run(rootRel);
+
// Display physical plan after decorrelation.
if (sqlExplain != null) {
SqlExplain.Depth explainDepth = sqlExplain.getDepth();
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/d940fa30/core/src/main/java/net/hydromatic/optiq/runtime/Hook.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/net/hydromatic/optiq/runtime/Hook.java b/core/src/main/java/net/hydromatic/optiq/runtime/Hook.java
index 8c532c6..d63c09a 100644
--- a/core/src/main/java/net/hydromatic/optiq/runtime/Hook.java
+++ b/core/src/main/java/net/hydromatic/optiq/runtime/Hook.java
@@ -40,6 +40,10 @@ public enum Hook {
/** Called with the output of sql-to-rel-converter. */
CONVERTED,
+ /** Called after de-correlation and field trimming, but before
+ * optimization. */
+ TRIMMED,
+
/** Called when a constant expression is being reduced. */
EXPRESSION_REDUCER,
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/d940fa30/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java b/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
index 51eb268..ccc4e99 100644
--- a/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
+++ b/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
@@ -3688,9 +3688,10 @@ public class JdbcTest {
+ "from \"hr\".\"emps\"\n"
+ "where \"empid\" > 10")
.convertContains(
- "ProjectRel(name=[$2], EXPR$1=[+(CAST(COUNT($4) OVER (PARTITION BY $1 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)):BIGINT, 1)])\n"
+ "ProjectRel(name=[$2], EXPR$1=[+(CAST(COUNT($3) OVER (PARTITION BY $1 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)):BIGINT, 1)])\n"
+ " FilterRel(condition=[>($0, 10)])\n"
- + " EnumerableTableAccessRel(table=[[hr, emps]])\n");
+ + " ProjectRel(empid=[$0], deptno=[$1], name=[$2], commission=[$4])\n"
+ + " EnumerableTableAccessRel(table=[[hr, emps]])\n");
} finally {
Prepare.trim = false;
}
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/d940fa30/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java b/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java
index 16657b7..cd85119 100644
--- a/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java
+++ b/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java
@@ -210,8 +210,7 @@ public class OptiqAssert {
++executeCount;
try {
final Collection result =
- OptiqAssert.toStringList(
- resultSet,
+ OptiqAssert.toStringList(resultSet,
ordered ? new ArrayList<String>() : new TreeSet<String>());
if (executeCount == 1) {
expected = result;
@@ -358,14 +357,14 @@ public class OptiqAssert {
Connection connection,
String sql,
boolean materializationsEnabled,
- Function1<RelNode, Void> convertChecker) throws Exception {
+ final Function1<RelNode, Void> convertChecker) throws Exception {
final String message =
"With materializationsEnabled=" + materializationsEnabled;
- final RelNode[] s = {null};
- Hook.Closeable closeable = Hook.CONVERTED.addThread(
+ Hook.Closeable closeable = Hook.TRIMMED.addThread(
new Function1<Object, Object>() {
- public Object apply(Object rel) {
- s[0] = (RelNode) rel;
+ public Object apply(Object a0) {
+ RelNode rel = (RelNode) a0;
+ convertChecker.apply(rel);
return null;
}
});
@@ -380,7 +379,6 @@ public class OptiqAssert {
} finally {
closeable.close();
}
- convertChecker.apply(s[0]);
}
static String toString(ResultSet resultSet) throws SQLException {
@@ -887,25 +885,26 @@ public class OptiqAssert {
}
/** Checks that when the query (which was set using
- * {@link AssertThat#query(String)}) is converted to a relational algrebra
+ * {@link AssertThat#query(String)}) is converted to a relational algebra
* expression matching the given string. */
public AssertQuery convertContains(final String expected) {
+ return convertMatches(
+ new Function1<RelNode, Void>() {
+ public Void apply(RelNode relNode) {
+ String s = RelOptUtil.toString(relNode);
+ assertThat(s, containsString(expected));
+ return null;
+ }
+ });
+ }
+
+ public AssertQuery convertMatches(final Function1<RelNode, Void> checker) {
try {
- assertPrepare(
- createConnection(),
- sql,
- false,
- new Function1<RelNode, Void>() {
- public Void apply(RelNode relNode) {
- String s = RelOptUtil.toString(relNode);
- assertThat(s, containsString(expected));
- return null;
- }
- });
+ assertPrepare(createConnection(), sql, false, checker);
return this;
} catch (Exception e) {
throw new RuntimeException(
- "exception while executing [" + sql + "]", e);
+ "exception while preparing [" + sql + "]", e);
}
}
@@ -1090,6 +1089,10 @@ public class OptiqAssert {
return this;
}
+ @Override public AssertQuery convertContains(String expected) {
+ return this;
+ }
+
@Override
public AssertQuery explainMatches(Function1<ResultSet, Void> checker) {
return this;
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/d940fa30/plus/src/test/java/net/hydromatic/optiq/impl/tpch/TpchTest.java
----------------------------------------------------------------------
diff --git a/plus/src/test/java/net/hydromatic/optiq/impl/tpch/TpchTest.java b/plus/src/test/java/net/hydromatic/optiq/impl/tpch/TpchTest.java
index 561c89b..d9320f4 100644
--- a/plus/src/test/java/net/hydromatic/optiq/impl/tpch/TpchTest.java
+++ b/plus/src/test/java/net/hydromatic/optiq/impl/tpch/TpchTest.java
@@ -17,11 +17,20 @@
*/
package net.hydromatic.optiq.impl.tpch;
+import net.hydromatic.linq4j.function.Function1;
+
import net.hydromatic.optiq.test.OptiqAssert;
+import org.eigenbase.rel.RelNode;
+import org.eigenbase.relopt.RelOptUtil;
+
import org.junit.Ignore;
import org.junit.Test;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.CoreMatchers.not;
+import static org.junit.Assert.assertThat;
+
/** Unit test for {@link TpchSchema}.
*
* <p>Only runs if {@code -Doptiq.test.slow=true} is specified on the
@@ -791,6 +800,18 @@ public class TpchTest {
checkQuery(2);
}
+ @Ignore("RelDecorrelator leaves a CorrelatorRel behind")
+ @Test public void testQuery02Conversion() {
+ query(2)
+ .convertMatches(new Function1<RelNode, Void>() {
+ public Void apply(RelNode relNode) {
+ String s = RelOptUtil.toString(relNode);
+ assertThat(s, not(containsString("CorrelatorRel")));
+ return null;
+ }
+ });
+ }
+
@Test public void testQuery03() {
checkQuery(3);
}
@@ -885,9 +906,12 @@ public class TpchTest {
}
private void checkQuery(int i) {
- with()
- .query(QUERIES[i - 1].replaceAll("tpch\\.", "tpch_01."))
- .runs();
+ query(i).runs();
+ }
+
+ private OptiqAssert.AssertQuery query(int i) {
+ return with()
+ .query(QUERIES[i - 1].replaceAll("tpch\\.", "tpch_01."));
}
}
[5/8] git commit: Fix nested lists in history.
Posted by jh...@apache.org.
Fix nested lists in history.
Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/1de5cf80
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/1de5cf80
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/1de5cf80
Branch: refs/heads/master
Commit: 1de5cf80a50fbf21b0bfb3cf43ed98f3edd51b72
Parents: 349bd74
Author: Julian Hyde <ju...@hydromatic.net>
Authored: Fri Jun 27 17:34:18 2014 -0700
Committer: Julian Hyde <ju...@hydromatic.net>
Committed: Fri Jun 27 17:34:18 2014 -0700
----------------------------------------------------------------------
HISTORY.md | 42 ++++++++++++++++++++++--------------------
1 file changed, 22 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/1de5cf80/HISTORY.md
----------------------------------------------------------------------
diff --git a/HISTORY.md b/HISTORY.md
index b7d50a8..8d77152 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -17,10 +17,10 @@ New features
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-294">OPTIQ-294</a>]
Implement DENSE_RANK windowed aggregate function
* SqlRun utility
-** [<a href="https://issues.apache.org/jira/browse/OPTIQ-290">OPTIQ-290</a>]
- Add `SqlRun`, an idempotent utility for running SQL test scripts
-** Add "!skip" command to SqlRun.
-** Add MySQL formatting mode to SqlRun.
+ * [<a href="https://issues.apache.org/jira/browse/OPTIQ-290">OPTIQ-290</a>]
+ Add `SqlRun`, an idempotent utility for running SQL test scripts
+ * Add "!skip" command to SqlRun.
+ * Add MySQL formatting mode to SqlRun.
API changes
* Re-organize planner initialization,
@@ -30,9 +30,9 @@ API changes
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-263">OPTIQ-263</a>]
Add operand type that will cause a rule to fire when a new subset is created
* Clean up and document SqlKind.
-** Add `IS_NOT_TRUE` and `IS_NOT_FALSE` `SqlKind` enums.
-** Add `SqlKind.IS_NOT_NULL` enum value, and use where possible,
- including for `IS_NOT_UNKNOWN` operator.
+ * Add `IS_NOT_TRUE` and `IS_NOT_FALSE` `SqlKind` enums.
+ * Add `SqlKind.IS_NOT_NULL` enum value, and use where possible,
+ including for `IS_NOT_UNKNOWN` operator.
Bug-fixes and internal changes
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-312">OPTIQ-312</a>]
@@ -48,7 +48,7 @@ Bug-fixes and internal changes
* Add method `IntPair.zip`.
* Reimplement regular and windowed aggregates
* Switch from github to Apache JIRA for issues tracking.
-** In release history, update issue URLs from github to Apache JIRA
+ * In release history, update issue URLs from github to Apache JIRA
* The Apache mailing list is now the official mailing list. Add presentations.
* Add test for overloaded UDF.
* Add tests for `NOT IN` where sub-query returns NULL values.
@@ -146,7 +146,7 @@ New features
User-defined table macros
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-179">OPTIQ-179</a>]
Optiq on Windows
-** Add `sqlline.bat` and fix issues running `sqlline` under Cygwin.
+ * Add `sqlline.bat` and fix issues running `sqlline` under Cygwin.
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-195">OPTIQ-195</a>]
Push aggregation into MongoDB adapter
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-193">OPTIQ-193</a>]
@@ -270,11 +270,11 @@ API changes
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-147">OPTIQ-147</a>]
Create a new kind of `SqlCall` that keeps operands in fields, not an operands
array
-** Very widely used parse tree nodes with complex operands, including
- `SqlSelect`, `SqlJoin`, `SqlInsert`, and a new node type `SqlOrderBy`, are now
- sub-classes of `SqlCall` but not `SqlBasicCall`.
-** (**This is a breaking change** to code that assumes that, say,
- `SqlSelect` has an `operands` field.)
+ * Very widely used parse tree nodes with complex operands, including
+ `SqlSelect`, `SqlJoin`, `SqlInsert`, and a new node type `SqlOrderBy`, are now
+ sub-classes of `SqlCall` but not `SqlBasicCall`.
+ * (**This is a breaking change** to code that assumes that, say,
+ `SqlSelect` has an `operands` field.)
* Convert all enum constants to upper-case.
(**This is a breaking change**.)
@@ -428,7 +428,6 @@ Bug fixes and internal changes
## <a href="https://github.com/julianhyde/optiq/releases/tag/optiq-parent-0.4.17">0.4.17</a> / 2014-01-13
API changes
-
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-106">OPTIQ-106</a>]
Make `Schema` and `Table` SPIs simpler to implement, and make them
re-usable across connections
@@ -451,7 +450,6 @@ API changes
Externalize RelNode to and from JSON
Tuning
-
* If `EnumerableAggregateRel` has no aggregate functions, generate a
call to `Enumerable.distinct()`, thereby saving the effort of
building trivial accumulators.
@@ -477,11 +475,10 @@ Tuning
a fast O(n) get, and fast scan.
Other
-
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-87">OPTIQ-87</a>]
Constant folding
-** Rules for constant-expression reduction, and to simplify/eliminate
- `VALUES` operator.
+ * Rules for constant-expression reduction, and to simplify/eliminate
+ `VALUES` operator.
* Graph algorithms: Implement breadth-first iterator and cycle-detector.
* Fix bug in planner which occurred when two `RelNode`s have identical
digest but different row-type.
@@ -515,7 +512,12 @@ Other
* Fix JDBC column, table, schema names for when the table is not in a schema of depth 1.
* [<a href="https://issues.apache.org/jira/browse/OPTIQ-85">OPTIQ-85</a>]
Adding a table to the root schema causes breakage in OptiqPrepareImpl
-* Extract Optiq's JDBC driver as a new JDBC driver framework, Avatica ([<a href="https://issues.apache.org/jira/browse/OPTIQ-84">OPTIQ-84</a>). Other projects can use this to implement a JDBC driver by implementing just a few methods. If you wish to use Optiq's JDBC driver, you will now need to include optiq-avatica.jar in addition to optiq-core.jar. Avatica does not depend on anything besides the standard Java library.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-84">OPTIQ-84</a>]
+ Extract Optiq's JDBC driver as a new JDBC driver framework, Avatica.
+ Other projects can use this to implement a JDBC driver by implementing
+ just a few methods. If you wish to use Optiq's JDBC driver, you will
+ now need to include optiq-avatica.jar in addition to optiq-core.jar.
+ Avatica does not depend on anything besides the standard Java library.
* Support for parameters in PreparedStatement.
* First steps in recognizing complex materializations. Internally we introduce a concept called a "star table", virtual table composed of real tables joined together via many-to-one relationships. The queries that define materializations and end-user queries are canonized in terms of star tables. Matching (not done yet) will then be a matter of looking for sort, groupBy, project. It is not yet possible to define a star in an Optiq model file.
* Add section to <a href="HOWTO.md">HOWTO</a> on implementing adapters.
[7/8] git commit: [maven-release-plugin] prepare release
optiq-parent-0.8
Posted by jh...@apache.org.
[maven-release-plugin] prepare release optiq-parent-0.8
Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/3da850a1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/3da850a1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/3da850a1
Branch: refs/heads/master
Commit: 3da850a1988eb47665b9f2e7ce4096a8f0adb1d7
Parents: 86a6f8c
Author: Julian Hyde <ju...@gmail.com>
Authored: Fri Jun 27 20:11:46 2014 -0700
Committer: Julian Hyde <ju...@gmail.com>
Committed: Fri Jun 27 20:11:46 2014 -0700
----------------------------------------------------------------------
avatica/pom.xml | 4 ++--
core/pom.xml | 6 +++---
mongodb/pom.xml | 8 ++++----
plus/pom.xml | 8 ++++----
pom.xml | 4 ++--
spark/pom.xml | 8 ++++----
splunk/pom.xml | 8 ++++----
ubenchmark/pom.xml | 2 +-
8 files changed, 24 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/3da850a1/avatica/pom.xml
----------------------------------------------------------------------
diff --git a/avatica/pom.xml b/avatica/pom.xml
index 8a7d9ab..beaf8b4 100644
--- a/avatica/pom.xml
+++ b/avatica/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</parent>
<artifactId>optiq-avatica</artifactId>
<packaging>jar</packaging>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<name>optiq-avatica</name>
<description>JDBC driver framework.</description>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/3da850a1/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 1d1f060..3d34a1c 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</parent>
<artifactId>optiq-core</artifactId>
<packaging>jar</packaging>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<name>optiq-core</name>
<description>Core Optiq APIs and engine.</description>
@@ -21,7 +21,7 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-avatica</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/3da850a1/mongodb/pom.xml
----------------------------------------------------------------------
diff --git a/mongodb/pom.xml b/mongodb/pom.xml
index 0ac5da5..0168366 100644
--- a/mongodb/pom.xml
+++ b/mongodb/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</parent>
<artifactId>optiq-mongodb</artifactId>
<packaging>jar</packaging>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<name>optiq-mongodb</name>
<description>MongoDB adapter for Optiq.</description>
@@ -20,13 +20,13 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/3da850a1/plus/pom.xml
----------------------------------------------------------------------
diff --git a/plus/pom.xml b/plus/pom.xml
index 0800998..e62858c 100644
--- a/plus/pom.xml
+++ b/plus/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</parent>
<artifactId>optiq-plus</artifactId>
<packaging>jar</packaging>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<name>optiq-plus</name>
<description>Miscellaneous extras for Optiq.</description>
@@ -20,13 +20,13 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/3da850a1/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index b0d9dec..03ddf9a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
<packaging>pom</packaging>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<!-- More project information. -->
<name>optiq-parent</name>
@@ -79,7 +79,7 @@
<connection>scm:git:git://github.com/julianhyde/optiq.git</connection>
<developerConnection>scm:git:git@github.com:julianhyde/optiq.git</developerConnection>
<url>http://github.com/julianhyde/optiq/tree/master</url>
- <tag>HEAD</tag>
+ <tag>optiq-parent-0.8</tag>
</scm>
<modules>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/3da850a1/spark/pom.xml
----------------------------------------------------------------------
diff --git a/spark/pom.xml b/spark/pom.xml
index 07005f4..e62b31c 100644
--- a/spark/pom.xml
+++ b/spark/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</parent>
<artifactId>optiq-spark</artifactId>
<packaging>jar</packaging>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<name>optiq-spark</name>
<properties>
@@ -19,12 +19,12 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</dependency>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/3da850a1/splunk/pom.xml
----------------------------------------------------------------------
diff --git a/splunk/pom.xml b/splunk/pom.xml
index 935f5bd..9624be1 100644
--- a/splunk/pom.xml
+++ b/splunk/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</parent>
<artifactId>optiq-splunk</artifactId>
<packaging>jar</packaging>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<name>optiq-splunk</name>
<description>Splunk adapter for Optiq; also a JDBC driver for Splunk.</description>
@@ -20,12 +20,12 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</dependency>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/3da850a1/ubenchmark/pom.xml
----------------------------------------------------------------------
diff --git a/ubenchmark/pom.xml b/ubenchmark/pom.xml
index 3272015..42fdef2 100644
--- a/ubenchmark/pom.xml
+++ b/ubenchmark/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>optiq-parent</artifactId>
<groupId>net.hydromatic</groupId>
- <version>0.8-SNAPSHOT</version>
+ <version>0.8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
[4/8] git commit: Update history: release 0.8 changes and issue URLs
Posted by jh...@apache.org.
Update history: release 0.8 changes and issue URLs
Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/349bd74d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/349bd74d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/349bd74d
Branch: refs/heads/master
Commit: 349bd74d61cdf216264fa5101f4299d202f2c2af
Parents: 96a949f
Author: Julian Hyde <ju...@hydromatic.net>
Authored: Fri Jun 27 17:27:24 2014 -0700
Committer: Julian Hyde <ju...@hydromatic.net>
Committed: Fri Jun 27 17:27:24 2014 -0700
----------------------------------------------------------------------
HISTORY.md | 388 +++++++++++++++++++++++++++++++++-----------------------
1 file changed, 232 insertions(+), 156 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/349bd74d/HISTORY.md
----------------------------------------------------------------------
diff --git a/HISTORY.md b/HISTORY.md
index e40d038..b7d50a8 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -2,13 +2,76 @@
For a full list of releases, see <a href="https://github.com/julianhyde/optiq/releases">github</a>.
+## <a href="https://github.com/julianhyde/optiq/releases/tag/optiq-parent-0.8">0.8</a> / 2014-06-27
+
+New features
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-310">OPTIQ-310</a>]
+ Implement LEAD, LAG and NTILE windowed aggregates
+* Reduce `COUNT(not-null-expression)` to `COUNT()`
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-292">OPTIQ-292</a>]
+ Improve windowed aggregate return types
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-302">OPTIQ-302</a>]
+ Use heuristic rule to plan queries with large numbers of joins
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-283">OPTIQ-283</a>]
+ Add TPC-DS data generator
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-294">OPTIQ-294</a>]
+ Implement DENSE_RANK windowed aggregate function
+* SqlRun utility
+** [<a href="https://issues.apache.org/jira/browse/OPTIQ-290">OPTIQ-290</a>]
+ Add `SqlRun`, an idempotent utility for running SQL test scripts
+** Add "!skip" command to SqlRun.
+** Add MySQL formatting mode to SqlRun.
+
+API changes
+* Re-organize planner initialization,
+ to make it easier to use heuristic join order.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-301">OPTIQ-301</a>]
+ Add `Program` interface, a planner phase more general than current `RuleSet`
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-263">OPTIQ-263</a>]
+ Add operand type that will cause a rule to fire when a new subset is created
+* Clean up and document SqlKind.
+** Add `IS_NOT_TRUE` and `IS_NOT_FALSE` `SqlKind` enums.
+** Add `SqlKind.IS_NOT_NULL` enum value, and use where possible,
+ including for `IS_NOT_UNKNOWN` operator.
+
+Bug-fixes and internal changes
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-312">OPTIQ-312</a>]
+ Trim non-required fields before `WindowRel`
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-311">OPTIQ-311</a>]
+ Wrong results when filtering the results of windowed aggregation
+* More tests for `WITH ... ORDER BY`
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-309">OPTIQ-309</a>]
+ `WITH ... ORDER BY` query gives `AssertionError`
+* Enable `MultiJoinRel` and some other planner rule tests.
+* Add `ImmutableNullableList` and `UnmodifiableArrayList`,
+ and remove calls to `Arrays.asList`.
+* Add method `IntPair.zip`.
+* Reimplement regular and windowed aggregates
+* Switch from github to Apache JIRA for issues tracking.
+** In release history, update issue URLs from github to Apache JIRA
+* The Apache mailing list is now the official mailing list. Add presentations.
+* Add test for overloaded UDF.
+* Add tests for `NOT IN` where sub-query returns NULL values.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-288">OPTIQ-288</a>]
+ Add tests for windowed aggregation based on Postgres reference queries
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-286">OPTIQ-286</a>]
+ Error casting MongoDB date
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-284">OPTIQ-284</a>]
+ Window functions range defaults to `CURRENT ROW`
+* [<a href=https://issues.apache.org/jira/browse/OPTIQ-285">OPTIQ-285</a>]
+ Window functions throw exception without `ORDER BY`
+* Test case for
+ [<a href=““https://issues.apache.org/jira/browse/OPTIQ-285”>OPTIQ-285</a>].
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-281">OPTIQ-281</a>]
+ `EXTRACT` function's SQL return type is `BIGINT` but implemented as Java `int`
+
## <a href="https://github.com/julianhyde/optiq/releases/tag/optiq-parent-0.7">0.7</a> / 2014-05-13
New features
* Implement table functions.
* Arrays and multi-sets:
- * Fix <a href="https://github.com/julianhyde/optiq/issues/267">#267</a>,
- "Improve support for ARRAY data type".
+ * [<a href="https://issues.apache.org/jira/browse/OPTIQ-267">OPTIQ-267</a>]
+ Improve support for ARRAY data type
* Better type information for JDBC Array; nested array now possible.
* Implement `JOIN LATERAL` and `JOIN UNNEST`.
* Implement the `UNNEST` relational operator, and various improvements
@@ -16,18 +79,18 @@ New features
* Represent `ARRAY` columns as Java lists.
* Implement `CARDINALITY(ARRAY)` SQL operator.
* Implement scalar sub-query in `SELECT` clause.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/273">#273</a>,
- "Support column alias in WITH queries (common table expressions)".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-273">OPTIQ-273</a>]
+ Support column alias in WITH queries (common table expressions)
* Windowed aggregates:
* Aggregate over constants, e.g. `SUM(1) OVER (ROWS 10 PRECEDING)`;
* `UNBOUNDED PRECEDING` window range;
* Windowed aggregates computed over primitive scalars.
* Fix return type inference for aggregate calls. If the `GROUP BY` clause is
empty, `SUM` may return null.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/37">#37</a>,
- "Document JSON model file format" (as <a href="MODEL.md">MODEL.md</a>).
-* Fix <a href="https://github.com/julianhyde/optiq/issues/238">#238</a>,
- "Add adapter that generates TPC-H data".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-37">OPTIQ-37</a>]
+ Document JSON model file format (as <a href="MODEL.md">MODEL.md</a>).
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-238">OPTIQ-238</a>]
+ Add adapter that generates TPC-H data
* Improve exception message in `AvaticaConnection`; add
`ExceptionMessageTest`.
* Implement micro-benchmarks via
@@ -36,8 +99,8 @@ New features
API changes
* Provide an option to create root schema without the "metadata" schema.
* Schema SPI:
- * Fix <a href="https://github.com/julianhyde/optiq/issues/175">#175</a>,
- "Modify Schema SPI to allow caching".
+ * [<a href="https://issues.apache.org/jira/browse/OPTIQ-175">OPTIQ-175</a>]
+ Modify Schema SPI to allow caching
* Get sub-schemas defined by a Schema SPI, and cache their `OptiqSchema`
wrappers. (Tobi Vollebregt and Julian Hyde)
* SqlAdvisor callable from client via JDBC.
@@ -58,38 +121,38 @@ Bug-fixes and internal changes
* Use `fromTrait` of the just previously converted `RelNode` instead
of the original `RelNode`.
* Disable a MongoDB test, pending
- <a href="https://github.com/julianhyde/optiq/issues/270">#270</a>.
+ [<a href="https://issues.apache.org/jira/browse/OPTIQ-270">OPTIQ-270</a>.
* Hush warnings from `SplunkAdapterTest` if Splunk is not available.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/252">#252</a>,
- "Scalar sub-query that returns 0 rows should become NULL value".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-252">OPTIQ-252</a>]
+ Scalar sub-query that returns 0 rows should become NULL value
* `SplunkAdapterTest` now uses the same Foodmart database as `JdbcTest`.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/242">#242</a>,
- "SplunkAdapterTest fails".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-242">OPTIQ-242</a>]
+ SplunkAdapterTest fails
* Remove some obsolete classes.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/205">#205</a>,
- "Suspicious map.get in VolcanoPlanner.reregister".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-205">OPTIQ-205</a>]
+ Suspicious map.get in VolcanoPlanner.reregister
## <a href="https://github.com/julianhyde/optiq/releases/tag/optiq-parent-0.6">0.6</a> / 2014-04-11
New features
-* Fix <a href="https://github.com/julianhyde/optiq/issues/214">#214</a>,
- "Modify Frameworks to allow Schema to be re-used".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-214">OPTIQ-214</a>]
+ Modify Frameworks to allow Schema to be re-used
Obsoletes `name` field of `ReflectiveSchema`.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/237">#237</a>,
- "Allow user-defined aggregate functions (UDAs) to be defined in a model".
-* Fix <a href="https://github.com/julianhyde/optiq/pull/227">#227</a>,
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-237">OPTIQ-237</a>]
+ Allow user-defined aggregate functions (UDAs) to be defined in a model
+* Fix <a href="https://github.com/julianhyde/optiq/pull/227">OPTIQ-227</a>,
"Extend `EXTRACT` function to support `DATE`, `TIME` and `TIMESTAMP` values".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/222">#222</a>,
- "User-defined table macros".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/179">#179</a>,
- "Optiq on Windows". Add `sqlline.bat` and fix issues running `sqlline` under
- Cygwin.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/195">#195</a>,
- "Push aggregation into MongoDB adapter".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/193">#193</a>,
- "Implement OFFSET and LIMIT in MongoDB adapter".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/164">#164</a>,
- "Improve query performance of optiq over MongoDB".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-222">OPTIQ-222</a>]
+ User-defined table macros
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-179">OPTIQ-179</a>]
+ Optiq on Windows
+** Add `sqlline.bat` and fix issues running `sqlline` under Cygwin.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-195">OPTIQ-195</a>]
+ Push aggregation into MongoDB adapter
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-193">OPTIQ-193</a>]
+ Implement OFFSET and LIMIT in MongoDB adapter
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-164">OPTIQ-164</a>]
+ Improve query performance of optiq over MongoDB
* Add Phoenix (HBase) SQL dialect (Bruno Dumon)
API changes
@@ -100,15 +163,15 @@ API changes
* Extend `Planner` to pass a custom `ConvertletTable` and custom SQL parser.
* In `Frameworks`, add a way to specify list of `TraitDef`s that will be used
by planner. (Jinfeng Ni)
-* Fix <a href="https://github.com/julianhyde/optiq/pull/198">#198</a>,
+* Fix <a href="https://github.com/julianhyde/optiq/pull/198">OPTIQ-198</a>,
"Use `RexExecutor` to evaluate projections and filters".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/219">#219</a>,
- "Parse `ALTER scope SET option = value` statement".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/215">#215</a>,
- "A Schema should not have to remember its name and parent".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-219">OPTIQ-219</a>]
+ Parse `ALTER scope SET option = value` statement
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-215">OPTIQ-215</a>]
+ A Schema should not have to remember its name and parent
(**This is a breaking change**.)
-* Fix <a href="https://github.com/julianhyde/optiq/issues/180">#180</a>,
- "Common base class for TableFunction, ScalarFunction".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-180">OPTIQ-180</a>]
+ Common base class for TableFunction, ScalarFunction
(**This is a breaking change**.)
* Add methods for dealing with symbols; deprecate
`SqlLiteral.booleanValue(SqlNode)`, `SqlLiteral.symbolValue(SqlNode)`.
@@ -121,53 +184,53 @@ Bug fixes and internal changes
* Upgrade to linq4j-0.2.
* `FETCH` and `LIMIT` are ignored during SQL-to-RelNode translation.
(Venki Korukanti)
-* Fix <a href="https://github.com/julianhyde/optiq/issues/245">#245</a>,
- "Off-by-one translation of ON clause of JOIN".
-* Fix <a href="https://github.com/julianhyde/optiq/pull/191">#191</a>,
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-245">OPTIQ-245</a>]
+ Off-by-one translation of ON clause of JOIN
+* Fix <a href="https://github.com/julianhyde/optiq/pull/191">OPTIQ-191</a>,
"Rotate time/date/timestamp vals to local timezone".
-* Fix <a href="https://github.com/julianhyde/optiq/pull/244">#244</a>,
+* Fix <a href="https://github.com/julianhyde/optiq/pull/244">OPTIQ-244</a>,
"`RelOptTableImpl.create` always expects `QueryableTable` type in
`OptiqSchema.TableEntry`".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/225">#225</a>,
- "Optiq doesn't correctly decorrelate queries".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-225">OPTIQ-225</a>]
+ Optiq doesn't correctly decorrelate queries
* Clean up package-info. Remove duplicates in test packages so they
don't conflict with those in non-test packages.
* Add `Pair.adjacents(Iterable)`.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/199">#199</a>,
- "Various `ANY` type conditions aren't correctly being considered".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-199">OPTIQ-199</a>]
+ Various `ANY` type conditions aren't correctly being considered
(Jacques Nadeau)
* Add files to `.gitignore` that shouldn't be checked in when using
Eclipse. (Jacques Nadeau)
* Add class `ControlFlowException`, and make it base class of
existing control-flow exception classes.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/232">#232</a>,
- "Sum and avg of empty set should be null as per SQL specification".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-232">OPTIQ-232</a>]
+ Sum and avg of empty set should be null as per SQL specification
* Add `SqlUnresolvedFunction`, to improve how return type of
user-defined functions is resolved. (Vladimir Sitnikov)
-* Fix <a href="https://github.com/julianhyde/optiq/issues/228">#228</a>,
- "Error while compiling generated Java code when using UDF in expression"
-* Fix <a href="https://github.com/julianhyde/optiq/issues/226">#226</a>,
- "User-defined functions should work without explicit schema prefix".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/229">#229</a>,
- "Join between different JDBC schemas not implementable".
-* Fix <a href="https://github.com/julianhyde/optiq/pull/230">#230</a>,
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-228">OPTIQ-228</a>]
+ Error while compiling generated Java code when using UDF in expression
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-226">OPTIQ-226</a>]
+ User-defined functions should work without explicit schema prefix
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-229">OPTIQ-229</a>]
+ Join between different JDBC schemas not implementable
+* Fix <a href="https://github.com/julianhyde/optiq/pull/230">OPTIQ-230</a>,
"RemoveSortRule derives trait set from sort, should derive it from sort's child".
* Test view and sub-query with `ORDER BY` and `LIMIT`.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/223">#223</a>,
- "Add `NOTICE` and `LICENSE` files in all generated JAR files".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/209">#209</a>,
- "Consistent strategy for line-endings in tests".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-223">OPTIQ-223</a>]
+ Add `NOTICE` and `LICENSE` files in all generated JAR files
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-209">OPTIQ-209</a>]
+ Consistent strategy for line-endings in tests
Convert uses of `NL` in tests to Linux newline "\n".
This makes string constants simpler.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/218">#218</a>,
- "Functions case sensitive when using `Lex.MYSQL`".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-218">OPTIQ-218</a>]
+ Functions case sensitive when using `Lex.MYSQL`
* Add tests that a query with aggregate expressions in the `SELECT`
clause is considered an aggregate query, even if there is no `GROUP BY`.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/216">#216</a>,
- "Inconsistent use of provided operator table causes inability to
- add aggregate functions".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/200">#200</a>,
- "Javadoc generation fails under JDK 1.8".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-216">OPTIQ-216</a>]
+ Inconsistent use of provided operator table causes inability to
+ add aggregate functions
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-200">OPTIQ-200</a>]
+ Javadoc generation fails under JDK 1.8
* Add class `XmlOutput` (based on `org.eigenbase.xom.XMLOutput`) and remove
dependency on eigenbase-xom.
* Performance: Don't create stack-trace for exceptions used for control-flow.
@@ -188,12 +251,12 @@ New features
properties to be specified explicitly (Vladimir Sitnikov)
* Recognize more kinds of materializations, including filter-on-project (where
project contains expressions) and some kinds of aggregation.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/128">#128</a>,
- "Support `WITH` queries (common table expressions)".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/53">#53</a>,
- "Allow `WHEN` clause in simple `CASE` expression to have multiple values".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/156">#156</a>,
- "Optiq should recognize 'SYSTEM TABLE', 'JOIN', 'INDEX' as table types".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-128">OPTIQ-128</a>]
+ Support `WITH` queries (common table expressions)
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-53">OPTIQ-53</a>]
+ Allow `WHEN` clause in simple `CASE` expression to have multiple values
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-156">OPTIQ-156</a>]
+ Optiq should recognize 'SYSTEM TABLE', 'JOIN', 'INDEX' as table types
* Support querying ARRAY columns from JDBC source. (Gabriel Reid)
API changes
@@ -202,70 +265,71 @@ API changes
(**This is a breaking change** for sub-classes of `ProjectRelBase`.)
* Change `RexBuilder.makeRangeReference` parameter type.
* `RexBuilder.makeInputRef` replaces `RelOptUtil.createInputRef`.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/160">#160</a>,
- "Allow comments in schema definitions".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/147">#147</a>,
- "Create a new kind of `SqlCall` that keeps operands in fields, not an operands
- array". Very widely used parse tree nodes with complex operands, including
- `SqlSelect`, `SqlJoin`, `SqlInsert`, and a new node type `SqlOrderBy`, are now
- sub-classes of `SqlCall` but not `SqlBasicCall`.
- (**This is a breaking change** to code that assumes that, say,
- `SqlSelect` has an `operands` field.)
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-160">OPTIQ-160</a>]
+ Allow comments in schema definitions
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-147">OPTIQ-147</a>]
+ Create a new kind of `SqlCall` that keeps operands in fields, not an operands
+ array
+** Very widely used parse tree nodes with complex operands, including
+ `SqlSelect`, `SqlJoin`, `SqlInsert`, and a new node type `SqlOrderBy`, are now
+ sub-classes of `SqlCall` but not `SqlBasicCall`.
+** (**This is a breaking change** to code that assumes that, say,
+ `SqlSelect` has an `operands` field.)
* Convert all enum constants to upper-case.
(**This is a breaking change**.)
Bug-fixes and internal changes
* Generate optiq-core-VERSION-tests.jar not parent-VERSION-tests.jar.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/176">#176</a>,
- "ORDER BY expression doesn't work with SELECT \*".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-176">OPTIQ-176</a>]
+ ORDER BY expression doesn't work with SELECT \*
* Fix VARCHAR casts sent to hsqldb source (Bruno Dumon)
-* Fix <a href="https://github.com/julianhyde/optiq/issues/143">#143</a>,
- "Remove dependency on eigenbase-resgen".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/173">#173</a>,
- "Case-insensitive table names are not supported for `Casing.UNCHANGED`".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-143">OPTIQ-143</a>]
+ Remove dependency on eigenbase-resgen
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-173">OPTIQ-173</a>]
+ Case-insensitive table names are not supported for `Casing.UNCHANGED`
* `DATE.getLimit` now returns `Calendar` in GMT time zone (Vladimir Sitnikov)
* Set `en_US` locale in tests that match against error numbers, dates
(Vladimir Sitnikov)
* Use 1 test thread per CPU to avoid thread starvation on dual core CPUs
(Vladimir Sitnikov)
-* Fix <a href="https://github.com/julianhyde/optiq/issues/174">#174</a>,
- "Move hsqldb to test scope".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-174">OPTIQ-174</a>]
+ Move hsqldb to test scope
* Add unit tests for `RexExecutorImpl`.
* Correct JSON model examples in Javadoc comments. (Karel Vervaeke)
* Move test reference logs from `src/test/java` to `src/test/resources`
(reduces the number of 'untracked files' reported by git)
* Tune `Util.SpaceList`, fix race condition, and move into new utility class
`Spaces`.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/163">#163</a>,
- "Equi-join warning".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/157">#157</a>,
- "Handle `SQLFeatureNotSupported` when calling `setQueryTimeout`".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-163">OPTIQ-163</a>]
+ Equi-join warning
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-157">OPTIQ-157</a>]
+ Handle `SQLFeatureNotSupported` when calling `setQueryTimeout`
(Karel Vervaeke)
* Fix Optiq on Windows. (All tests and checkstyle checks pass.)
* In checkstyle, support Windows-style file separator, otherwise build fails in
Windows due to suppressions not used. (Vladimir Sitnikov)
* Enable MongoDB tests when `-Doptiq.test.mongodb=true`.
* Cleanup cache exception-handling and an assert.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/153">#153</a>,
- "Error using MongoDB adapter: Failed to set setXIncludeAware(true)".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-153">OPTIQ-153</a>]
+ Error using MongoDB adapter: Failed to set setXIncludeAware(true)
* Disable spark engine unless Spark libraries are on the class path and
`spark=true` is specified in the connect string.
* Fix path to `mongo-zips-model.json` in HOWTO. (Mariano Luna)
* Fix bug deriving the type of a join-key.
* Fix the value of `ONE_MINUS_EPSILON`.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/158">#158</a>,
- "Optiq fails when call `Planner.transform()` multiple times, each with
- different ruleset".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/148">#148</a>,
- "Less verbose description of collation". Also, optimize `RelTraitSet` creation
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-158">OPTIQ-158</a>]
+ Optiq fails when call `Planner.transform()` multiple times, each with
+ different ruleset
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-148">OPTIQ-148</a>]
+ Less verbose description of collation. Also, optimize `RelTraitSet` creation
and amortize `RelTraitSet.toString()`.
* Add generics to SQL parser.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/145">#145</a>,
- "Unexpected upper-casing of keywords when using java lexer".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-145">OPTIQ-145</a>]
+ Unexpected upper-casing of keywords when using java lexer
* Remove duplicate `maven-source-plugin`.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/141">#141</a>,
- "Downgrade to guava-11.0.2". This is necessary for Hadoop compatibility.
- Later versions of Guava can also be used.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-141">OPTIQ-141</a>]
+ Downgrade to guava-11.0.2. (This is necessary for Hadoop compatibility.
+ Later versions of Guava can also be used.)
* Upgrade to spark-0.9.0. (Because this version of spark is available from
maven-central, we can make optiq-spark part of the regular build, and remove
the spark profile.)
@@ -274,10 +338,10 @@ Bug-fixes and internal changes
API and functionality changes
* Configurable lexical policy
- * Fix <a href="https://github.com/julianhyde/optiq/issues/33">#33</a>,
- "SQL parser should allow different identifier quoting".
- * Fix <a href="https://github.com/julianhyde/optiq/issues/34">#34</a>,
- "Policy for case-sensitivity of identifiers should be configurable".
+ * [<a href="https://issues.apache.org/jira/browse/OPTIQ-33">OPTIQ-33</a>]
+ SQL parser should allow different identifier quoting
+ * [<a href="https://issues.apache.org/jira/browse/OPTIQ-34">OPTIQ-34</a>]
+ Policy for case-sensitivity of identifiers should be configurable
* New connect-string parameter "lex", with allowable values
"ORACLE", "MYSQL", "SQL_SERVER", "JAVA" sets policy to be like those
databases, in terms of quote string, whether quoted and unquoted
@@ -293,13 +357,13 @@ API and functionality changes
apply the right case-sensitivity policy.
* Enable optiq consumer to utilize different lexical settings in
Frameworks/Planner. (Jacques Nadeau)
-* Fix <a href="https://github.com/julianhyde/optiq/issues/135">#115</a>,
- "Add a PARSE_TREE hook point with SqlNode parameter".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-135">OPTIQ-115</a>]
+ Add a PARSE_TREE hook point with SqlNode parameter
* Change planner rules to use `ProjectFactory` for creating
projects. (John Pullokkaran)
-* Fix <a href="https://github.com/julianhyde/optiq/issues/131">#131</a>,
- "Add interfaces for metadata (statistics)". (**This is a breaking
- change**.)
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-131">OPTIQ-131</a>]
+ Add interfaces for metadata (statistics)
+ (**This is a breaking change**.)
* Update Avatica to allow `Cursor` & `Accessor` implementations to throw
`SQLException`. (Jacques Nadeau)
* Separate cost model (`RelOptCostFactory`) from planner. Allow
@@ -312,8 +376,8 @@ API and functionality changes
checkstyle. (**This is a breaking change**.)
* Add a mechanism for defining configuration parameters and have them
appear in the responses to `AvaticaDatabaseMetaData` methods.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/113">#113</a>,
- "User-defined scalar functions".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-113">OPTIQ-113</a>]
+ User-defined scalar functions
* Add rules to short-cut a query if `LIMIT 0` is present. Also remove
sort, aggregation, join if their inputs are known to be empty, and
propagate the fact that the relational expressions are known to be
@@ -321,29 +385,29 @@ API and functionality changes
* `RexNode` and its sub-classes are now immutable.
Bug fixes and internal changes
-* Fix <a href="https://github.com/julianhyde/optiq/issues/61">#16</a>,
- "Upgrade to janino-2.7".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-61">OPTIQ-16</a>]
+ Upgrade to janino-2.7
* Upgrade to guava-15.0 (guava-14.0.1 still allowed), sqlline-1.1.7,
maven-surefire-plugin-2.16, linq4j-0.1.13.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/136">#136</a>,
- "Support Hive dialect".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/138">#138</a>,
- "SqlDataTypeSpec.clone handles collection types wrong".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/137">#137</a>,
- "If a subset is created that is subsumed by an existing subset, its
- "best" is not assigned".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-136">OPTIQ-136</a>]
+ Support Hive dialect
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-138">OPTIQ-138</a>]
+ SqlDataTypeSpec.clone handles collection types wrong
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-137">OPTIQ-137</a>]
+ If a subset is created that is subsumed by an existing subset, its
+ 'best' is not assigned
* If best rel in a Volcano subset doesn't have metadata, see if
other rels have metadata.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/127">#127</a>,
- "EnumerableCalcRel can't support 3+ AND conditions". (Harish Butani)
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-127">OPTIQ-127</a>]
+ EnumerableCalcRel can't support 3+ AND conditions (Harish Butani)
* Fix push-down of datetime literals to JDBC data sources.
* Add `Util.startsWith(List, List)` and `Util.hashCode(double)`.
* Add maven-checkstyle-plugin, enable in "verify" phase, and fix exceptions.
* Fix `SqlValidator` to rely on `RelDataType` to do field name matching. Fix
`RelDataTypeImpl` to correctly use the case sensitive flag rather than
ignoring it.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/119">#119</a>,
- "Comparing Java type long with SQL type INTEGER gives wrong answer".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-119">OPTIQ-119</a>]
+ Comparing Java type long with SQL type INTEGER gives wrong answer
* Enable multi-threaded testing, and fix race conditions.
* Two of the race conditions involved involving trait caches. The
other was indeterminacy in type system when precision was not
@@ -351,13 +415,13 @@ Bug fixes and internal changes
instance.
* Convert files to `us-ascii`.
* Work around
- <a href="http://jira.codehaus.org/browse/JANINO-169">JANINO-169</a>.
+ [<a href="http://jira.codehaus.org/browse/JANINO-169">JANINO-169</a>].
* Refactor SQL validator testing infrastructure so SQL parser is
configurable.
* Add `optiq-mat-plugin` to README.
* Fix the check for duplicate subsets in a rule match.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/112">#112</a>,
- "Java boolean column should be treated as SQL boolean".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-112">OPTIQ-112</a>]
+ Java boolean column should be treated as SQL boolean
* Fix escaped unicode characters above 0x8000. Add tests for unicode
strings.
@@ -365,24 +429,26 @@ Bug fixes and internal changes
API changes
-* Fix <a href="https://github.com/julianhyde/optiq/issues/106">#106</a>,
- "Make `Schema` and `Table` SPIs simpler to implement, and make them
- re-usable across connections". (**This is a breaking change**.)
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-106">OPTIQ-106</a>]
+ Make `Schema` and `Table` SPIs simpler to implement, and make them
+ re-usable across connections
+ (**This is a breaking change**.)
* Make it easier to define sub-classes of rule operands. The new class
`RelOptRuleOperandChildren` contains the children of an operand and
the policy for dealing with them. Existing rules now use the new
methods to construct operands: `operand()`, `leaf()`, `any()`, `none()`,
`unordered()`. The previous methods are now deprecated and will be
removed before 0.4.18. (**This is a breaking change**.)
-* Fix <a href="https://github.com/julianhyde/optiq/issues/101">#101</a>,
- "Enable phased access to the Optiq engine".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-101">OPTIQ-101</a>]
+ Enable phased access to the Optiq engine
* List-handling methods in `Util`: add methods `skipLast`, `last`, `skip`; remove `subList`, `butLast`.
* Convert `SqlIdentifier.names` from `String[]` to `ImmutableList<String>`.
* Rename `OptiqAssert.assertThat()` to `that()`, to avoid clash with junit's `Assert.assertThat()`.
* Usability improvements for `RelDataTypeFactory.FieldInfoBuilder`. It
now has a type-factory, so you can just call `build()`.
* Rework `HepProgramBuilder` into a fluent API.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/105">#105</a>, "Externalize RelNode to and from JSON".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-105">OPTIQ-105</a>]
+ Externalize RelNode to and from JSON
Tuning
@@ -402,8 +468,8 @@ Tuning
tweak cost of `EnumerableJoinRel` so that join is cheaper if the
larger input is on the left, and more expensive if it is a cartesian
product.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/70">#70</a>,
- "Joins seem to be very expensive in memory".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-70">OPTIQ-70</a>]
+ Joins seem to be very expensive in memory
* Make planning process more efficient by not sorting the list of
matched rules each cycle. It is sorted if tracing is enabled;
otherwise we scan to find the most important element. For this list,
@@ -412,9 +478,10 @@ Tuning
Other
-* Fix <a href="https://github.com/julianhyde/optiq/issues/87">#87</a>,
- "Constant folding". Rules for constant-expression reduction, and to simplify/eliminate
- `VALUES` operator.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-87">OPTIQ-87</a>]
+ Constant folding
+** Rules for constant-expression reduction, and to simplify/eliminate
+ `VALUES` operator.
* Graph algorithms: Implement breadth-first iterator and cycle-detector.
* Fix bug in planner which occurred when two `RelNode`s have identical
digest but different row-type.
@@ -425,13 +492,13 @@ Other
* Upgrade to eigenbase-xom-1.3.4, eigenbase-properties-1.1.4,
eigenbase-resgen-1.3.6.
* Upgrade to linq4j-0.1.12.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/97">#97</a>,
- correlated EXISTS.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-97">OPTIQ-97</a>]
+ Correlated EXISTS
* Fix a bug in `VolcanoCost`.
* Add class `FoodMartQuerySet`, that contains the 6,700 foodmart queries.
* Fix factory class names in `UnregisteredDriver`
-* Fix <a href="https://github.com/julianhyde/optiq/issues/96">#96</a>,
- "LIMIT against a table in a clone schema causes UnsupportedOperationException".
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-96">OPTIQ-96</a>]
+ LIMIT against a table in a clone schema causes UnsupportedOperationException
* Disable spark module by default.
* Allow `CloneSchema` to be specified in terms of url, driver, user,
password; not just dataSource.
@@ -439,11 +506,16 @@ Other
## <a href="https://github.com/julianhyde/optiq/releases/tag/optiq-parent-0.4.16">0.4.16</a> / 2013-11-24
-* Fix <a href="https://github.com/julianhyde/optiq/issues/69">#69</a>, "Can't join on string columns" and other problems with expressions in the join condition
-* Fix <a href="https://github.com/julianhyde/optiq/issues/74">#74</a>, "JOIN ... USING fails in 3-way join with UnsupportedOperationException".
-* Fix <a href="https://github.com/julianhyde/optiq/issues/65">#65</a> issues in the JDBC driver, and in particular to DatabaseMetaData methods, to make Squirrel-SQL run better. Fix JDBC column, table, schema names for when the table is not in a schema of depth 1.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/85">#85</a>, "Adding a table to the root schema causes breakage in OptiqPrepareImpl".
-* Extract Optiq's JDBC driver as a new JDBC driver framework, Avatica (<a href="https://github.com/julianhyde/optiq/issues/84">#84</a>). Other projects can use this to implement a JDBC driver by implementing just a few methods. If you wish to use Optiq's JDBC driver, you will now need to include optiq-avatica.jar in addition to optiq-core.jar. Avatica does not depend on anything besides the standard Java library.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-69">OPTIQ-69</a>]
+ Can't join on string columns and other problems with expressions in the join condition
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-74">OPTIQ-74</a>]
+ JOIN ... USING fails in 3-way join with UnsupportedOperationException.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-65">OPTIQ-65</a>]
+ Fix issues in the JDBC driver, and in particular to DatabaseMetaData methods, to make Squirrel-SQL run better.
+* Fix JDBC column, table, schema names for when the table is not in a schema of depth 1.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-85">OPTIQ-85</a>]
+ Adding a table to the root schema causes breakage in OptiqPrepareImpl
+* Extract Optiq's JDBC driver as a new JDBC driver framework, Avatica ([<a href="https://issues.apache.org/jira/browse/OPTIQ-84">OPTIQ-84</a>). Other projects can use this to implement a JDBC driver by implementing just a few methods. If you wish to use Optiq's JDBC driver, you will now need to include optiq-avatica.jar in addition to optiq-core.jar. Avatica does not depend on anything besides the standard Java library.
* Support for parameters in PreparedStatement.
* First steps in recognizing complex materializations. Internally we introduce a concept called a "star table", virtual table composed of real tables joined together via many-to-one relationships. The queries that define materializations and end-user queries are canonized in terms of star tables. Matching (not done yet) will then be a matter of looking for sort, groupBy, project. It is not yet possible to define a star in an Optiq model file.
* Add section to <a href="HOWTO.md">HOWTO</a> on implementing adapters.
@@ -451,12 +523,16 @@ Other
* Fix how strings are escaped in JsonBuilder.
* Test suite now depends on an embedded hsqldb database, so you can run <code>mvn test</code> right after pulling from git. You can instead use a MySQL database if you specify '-Doptiq.test.db=mysql', but you need to manually populate it.
* Fix a planner issue which occurs when the left and right children of join are the same relational expression, caused by a self-join query.
-* Fix <a href="https://github.com/julianhyde/optiq/issues/76">#76</a> precedence of the item operator, <code>map[index]</code>; remove the space before '[' when converting parse tree to string.
+* [<a href="https://issues.apache.org/jira/browse/OPTIQ-76">OPTIQ-76</a>]
+ Precedence of the item operator, <code>map[index]</code>; remove the space before '[' when converting parse tree to string.
* Allow <code>CAST(expression AS ANY)</code>, and fix an issue with the ANY type and NULL values.
* Handle null timestamps and dates coming out of JDBC adapter.
* Add <code>jdbcDriver</code> attribute to JDBC schema in model, for drivers that do not auto-register.
* Allow join rules to match any subclass of JoinRelBase.
-* Push projects, filters and sorts down to MongoDB. (Fixes <a href="https://github.com/julianhyde/optiq/issues/57">#57</a>, <a href="https://github.com/julianhyde/optiq/pull/60">#60</a> and <a href="https://github.com/julianhyde/optiq/issues/72">#72</a>.)
+* Push projects, filters and sorts down to MongoDB.
+ (Fixes [<a href="https://issues.apache.org/jira/browse/OPTIQ-57">OPTIQ-57</a>],
+ <a href="https://github.com/julianhyde/optiq/pull/60">pull #60</a> and
+ [<a href="https://issues.apache.org/jira/browse/OPTIQ-72">OPTIQ-72</a>.)
* Add instructions for loading FoodMart data set into MongoDB, and how to enable tracing.
* Now runs on JDK 1.8 (still runs on JDK 1.6 and JDK 1.7).
* Upgrade to junit-4.11 (avoiding the dodgy junit-4.1.12).
[6/8] git commit: Change Prepare.trim to a thread-local,
to fix non-determinism in tests.
Posted by jh...@apache.org.
Change Prepare.trim to a thread-local, to fix non-determinism in tests.
Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/86a6f8c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/86a6f8c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/86a6f8c5
Branch: refs/heads/master
Commit: 86a6f8c53f3e978574dbbae7c40a5efd5a736e2b
Parents: 1de5cf8
Author: julianhyde <ju...@gmail.com>
Authored: Fri Jun 27 18:14:41 2014 -0700
Committer: julianhyde <ju...@gmail.com>
Committed: Fri Jun 27 18:18:31 2014 -0700
----------------------------------------------------------------------
.../main/java/net/hydromatic/optiq/prepare/Prepare.java | 10 ++++++++--
.../test/java/net/hydromatic/optiq/test/JdbcTest.java | 8 ++++----
.../net/hydromatic/optiq/test/MaterializationTest.java | 12 ++++++------
3 files changed, 18 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/86a6f8c5/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java b/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
index 219f9e5..c2d5dba 100644
--- a/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
+++ b/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
@@ -84,7 +84,13 @@ public abstract class Prepare {
protected List<List<String>> fieldOrigins;
protected RelDataType parameterRowType;
- public static boolean trim = false; // temporary. for testing.
+ // temporary. for testing.
+ public static final ThreadLocal<Boolean> THREAD_TRIM =
+ new ThreadLocal<Boolean>() {
+ @Override protected Boolean initialValue() {
+ return false;
+ }
+ };
public Prepare(OptiqPrepare.Context context, CatalogReader catalogReader,
Convention resultConvention) {
@@ -353,7 +359,7 @@ public abstract class Prepare {
// For now, don't trim if there are more than 3 joins. The projects
// near the leaves created by trim migrate past joins and seem to
// prevent join-reordering.
- return trim || RelOptUtil.countJoins(rootRel) < 2;
+ return THREAD_TRIM.get() || RelOptUtil.countJoins(rootRel) < 2;
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/86a6f8c5/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java b/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
index 4a7a548..81198b6 100644
--- a/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
+++ b/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
@@ -3659,7 +3659,7 @@ public class JdbcTest {
/** Tests that field-trimming creates a project near the table scan. */
@Test public void testTrimFields() throws Exception {
try {
- Prepare.trim = true;
+ Prepare.THREAD_TRIM.set(true);
OptiqAssert.that()
.with(OptiqAssert.Config.REGULAR)
.query(
@@ -3672,7 +3672,7 @@ public class JdbcTest {
+ " ProjectRel(deptno=[$1], name=[$2], commission=[$4])\n"
+ " EnumerableTableAccessRel(table=[[hr, emps]])\n");
} finally {
- Prepare.trim = false;
+ Prepare.THREAD_TRIM.set(false);
}
}
@@ -3680,7 +3680,7 @@ public class JdbcTest {
* query with windowed-aggregation. */
@Test public void testTrimFieldsOver() throws Exception {
try {
- Prepare.trim = true;
+ Prepare.THREAD_TRIM.set(true);
OptiqAssert.that()
.with(OptiqAssert.Config.REGULAR)
.query(
@@ -3693,7 +3693,7 @@ public class JdbcTest {
+ " ProjectRel(empid=[$0], deptno=[$1], name=[$2], commission=[$4])\n"
+ " EnumerableTableAccessRel(table=[[hr, emps]])\n");
} finally {
- Prepare.trim = false;
+ Prepare.THREAD_TRIM.set(false);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/86a6f8c5/core/src/test/java/net/hydromatic/optiq/test/MaterializationTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/net/hydromatic/optiq/test/MaterializationTest.java b/core/src/test/java/net/hydromatic/optiq/test/MaterializationTest.java
index 72e49a4..624f7c5 100644
--- a/core/src/test/java/net/hydromatic/optiq/test/MaterializationTest.java
+++ b/core/src/test/java/net/hydromatic/optiq/test/MaterializationTest.java
@@ -67,7 +67,7 @@ public class MaterializationTest {
@Test public void testFilterQueryOnProjectView() {
try {
- Prepare.trim = true;
+ Prepare.THREAD_TRIM.set(true);
MaterializationService.setThreadLocal();
OptiqAssert.that()
.with(OptiqAssert.Config.REGULAR)
@@ -82,7 +82,7 @@ public class MaterializationTest {
"EnumerableTableAccessRel(table=[[hr, m0]])")
.sameResultWithMaterializationsDisabled();
} finally {
- Prepare.trim = false;
+ Prepare.THREAD_TRIM.set(false);
}
}
@@ -97,7 +97,7 @@ public class MaterializationTest {
private void checkMaterialize(String materialize, String query, String model,
Function1<ResultSet, Void> checker) {
try {
- Prepare.trim = true;
+ Prepare.THREAD_TRIM.set(true);
MaterializationService.setThreadLocal();
OptiqAssert.that()
.with(OptiqAssert.Config.REGULAR)
@@ -107,7 +107,7 @@ public class MaterializationTest {
.explainMatches(checker)
.sameResultWithMaterializationsDisabled();
} finally {
- Prepare.trim = false;
+ Prepare.THREAD_TRIM.set(false);
}
}
@@ -116,7 +116,7 @@ public class MaterializationTest {
private void checkNoMaterialize(String materialize, String query,
String model) {
try {
- Prepare.trim = true;
+ Prepare.THREAD_TRIM.set(true);
MaterializationService.setThreadLocal();
OptiqAssert.that()
.with(OptiqAssert.Config.REGULAR)
@@ -126,7 +126,7 @@ public class MaterializationTest {
.explainContains(
"EnumerableTableAccessRel(table=[[hr, emps]])");
} finally {
- Prepare.trim = false;
+ Prepare.THREAD_TRIM.set(false);
}
}
[3/8] git commit: Oops! (Expected result changed following merge.)
Posted by jh...@apache.org.
Oops! (Expected result changed following merge.)
Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/96a949f2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/96a949f2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/96a949f2
Branch: refs/heads/master
Commit: 96a949f2ea24fa287bdb0b3fd4283ecff8812851
Parents: d940fa3
Author: julianhyde <ju...@gmail.com>
Authored: Fri Jun 27 16:22:27 2014 -0700
Committer: julianhyde <ju...@gmail.com>
Committed: Fri Jun 27 16:22:27 2014 -0700
----------------------------------------------------------------------
core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/96a949f2/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java b/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
index ccc4e99..4a7a548 100644
--- a/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
+++ b/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
@@ -3688,7 +3688,7 @@ public class JdbcTest {
+ "from \"hr\".\"emps\"\n"
+ "where \"empid\" > 10")
.convertContains(
- "ProjectRel(name=[$2], EXPR$1=[+(CAST(COUNT($3) OVER (PARTITION BY $1 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)):BIGINT, 1)])\n"
+ "ProjectRel(name=[$2], EXPR$1=[+(COUNT($3) OVER (PARTITION BY $1 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING), 1)])\n"
+ " FilterRel(condition=[>($0, 10)])\n"
+ " ProjectRel(empid=[$0], deptno=[$1], name=[$2], commission=[$4])\n"
+ " EnumerableTableAccessRel(table=[[hr, emps]])\n");
[2/8] git commit: Add tests that RelFieldTrimmer creates a ProjectRel,
near the leaf of the tree, for just the fields used above it.
Posted by jh...@apache.org.
Add tests that RelFieldTrimmer creates a ProjectRel, near the leaf of the tree, for just the fields used above it.
Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/e0b2f834
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/e0b2f834
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/e0b2f834
Branch: refs/heads/master
Commit: e0b2f8348ac97a666004c10ab93e6143358aa5cc
Parents: 99f3968
Author: Julian Hyde <ju...@gmail.com>
Authored: Thu Jun 26 17:43:38 2014 -0600
Committer: Julian Hyde <ju...@gmail.com>
Committed: Fri Jun 27 15:46:20 2014 -0700
----------------------------------------------------------------------
.../net/hydromatic/optiq/prepare/Prepare.java | 2 +
.../net/hydromatic/optiq/test/JdbcTest.java | 40 +++++++++++++++
.../net/hydromatic/optiq/test/OptiqAssert.java | 54 ++++++++++++++++++++
3 files changed, 96 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/e0b2f834/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java b/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
index 026f436..469339d 100644
--- a/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
+++ b/core/src/main/java/net/hydromatic/optiq/prepare/Prepare.java
@@ -23,6 +23,7 @@ import net.hydromatic.optiq.jdbc.OptiqPrepare;
import net.hydromatic.optiq.jdbc.OptiqSchema;
import net.hydromatic.optiq.rules.java.JavaRules;
import net.hydromatic.optiq.runtime.Bindable;
+import net.hydromatic.optiq.runtime.Hook;
import net.hydromatic.optiq.runtime.Typed;
import net.hydromatic.optiq.tools.Program;
import net.hydromatic.optiq.tools.Programs;
@@ -215,6 +216,7 @@ public abstract class Prepare {
RelNode rootRel =
sqlToRelConverter.convertQuery(sqlQuery, needsValidation, true);
+ Hook.CONVERTED.run(rootRel);
if (timingTracer != null) {
timingTracer.traceTime("end sql2rel");
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/e0b2f834/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java b/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
index 76d54a2..51eb268 100644
--- a/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
+++ b/core/src/test/java/net/hydromatic/optiq/test/JdbcTest.java
@@ -3656,6 +3656,46 @@ public class JdbcTest {
"ENAME=Wilma; DEPTNO=null; GENDER=F; M1=1; M2=1; M3=9");
}
+ /** Tests that field-trimming creates a project near the table scan. */
+ @Test public void testTrimFields() throws Exception {
+ try {
+ Prepare.trim = true;
+ OptiqAssert.that()
+ .with(OptiqAssert.Config.REGULAR)
+ .query(
+ "select \"name\", count(\"commission\") + 1\n"
+ + "from \"hr\".\"emps\"\n"
+ + "group by \"deptno\", \"name\"")
+ .convertContains(
+ "ProjectRel(name=[$1], EXPR$1=[+($2, 1)])\n"
+ + " AggregateRel(group=[{0, 1}], agg#0=[COUNT($2)])\n"
+ + " ProjectRel(deptno=[$1], name=[$2], commission=[$4])\n"
+ + " EnumerableTableAccessRel(table=[[hr, emps]])\n");
+ } finally {
+ Prepare.trim = false;
+ }
+ }
+
+ /** Tests that field-trimming creates a project near the table scan, in a
+ * query with windowed-aggregation. */
+ @Test public void testTrimFieldsOver() throws Exception {
+ try {
+ Prepare.trim = true;
+ OptiqAssert.that()
+ .with(OptiqAssert.Config.REGULAR)
+ .query(
+ "select \"name\", count(\"commission\") over (partition by \"deptno\") + 1\n"
+ + "from \"hr\".\"emps\"\n"
+ + "where \"empid\" > 10")
+ .convertContains(
+ "ProjectRel(name=[$2], EXPR$1=[+(CAST(COUNT($4) OVER (PARTITION BY $1 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)):BIGINT, 1)])\n"
+ + " FilterRel(condition=[>($0, 10)])\n"
+ + " EnumerableTableAccessRel(table=[[hr, emps]])\n");
+ } finally {
+ Prepare.trim = false;
+ }
+ }
+
/** Tests window aggregate whose argument is a constant. */
@Test public void testWinAggConstant() {
OptiqAssert.that()
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/e0b2f834/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java b/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java
index b3d08d7..16657b7 100644
--- a/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java
+++ b/core/src/test/java/net/hydromatic/optiq/test/OptiqAssert.java
@@ -29,6 +29,8 @@ import net.hydromatic.optiq.jdbc.MetaImpl;
import net.hydromatic.optiq.jdbc.OptiqConnection;
import net.hydromatic.optiq.runtime.Hook;
+import org.eigenbase.rel.RelNode;
+import org.eigenbase.relopt.RelOptUtil;
import org.eigenbase.util.*;
import com.google.common.collect.ImmutableList;
@@ -352,6 +354,35 @@ public class OptiqAssert {
}
}
+ static void assertPrepare(
+ Connection connection,
+ String sql,
+ boolean materializationsEnabled,
+ Function1<RelNode, Void> convertChecker) throws Exception {
+ final String message =
+ "With materializationsEnabled=" + materializationsEnabled;
+ final RelNode[] s = {null};
+ Hook.Closeable closeable = Hook.CONVERTED.addThread(
+ new Function1<Object, Object>() {
+ public Object apply(Object rel) {
+ s[0] = (RelNode) rel;
+ return null;
+ }
+ });
+ try {
+ ((OptiqConnection) connection).getProperties().setProperty(
+ "materializationsEnabled", Boolean.toString(materializationsEnabled));
+ PreparedStatement statement = connection.prepareStatement(sql);
+ statement.close();
+ connection.close();
+ } catch (Throwable e) {
+ throw new RuntimeException(message, e);
+ } finally {
+ closeable.close();
+ }
+ convertChecker.apply(s[0]);
+ }
+
static String toString(ResultSet resultSet) throws SQLException {
final StringBuilder buf = new StringBuilder();
final ResultSetMetaData metaData = resultSet.getMetaData();
@@ -855,6 +886,29 @@ public class OptiqAssert {
}
}
+ /** Checks that when the query (which was set using
+ * {@link AssertThat#query(String)}) is converted to a relational algrebra
+ * expression matching the given string. */
+ public AssertQuery convertContains(final String expected) {
+ try {
+ assertPrepare(
+ createConnection(),
+ sql,
+ false,
+ new Function1<RelNode, Void>() {
+ public Void apply(RelNode relNode) {
+ String s = RelOptUtil.toString(relNode);
+ assertThat(s, containsString(expected));
+ return null;
+ }
+ });
+ return this;
+ } catch (Exception e) {
+ throw new RuntimeException(
+ "exception while executing [" + sql + "]", e);
+ }
+ }
+
public AssertQuery explainContains(String expected) {
return explainMatches(checkResultContains(expected));
}
[8/8] git commit: [maven-release-plugin] prepare for next development
iteration
Posted by jh...@apache.org.
[maven-release-plugin] prepare for next development iteration
Project: http://git-wip-us.apache.org/repos/asf/incubator-optiq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-optiq/commit/71ebeaa8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-optiq/tree/71ebeaa8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-optiq/diff/71ebeaa8
Branch: refs/heads/master
Commit: 71ebeaa81ad92845a145191cd31f2d6448d14a50
Parents: 3da850a
Author: Julian Hyde <ju...@gmail.com>
Authored: Fri Jun 27 20:11:51 2014 -0700
Committer: Julian Hyde <ju...@gmail.com>
Committed: Fri Jun 27 20:11:51 2014 -0700
----------------------------------------------------------------------
avatica/pom.xml | 4 ++--
core/pom.xml | 6 +++---
mongodb/pom.xml | 8 ++++----
plus/pom.xml | 8 ++++----
pom.xml | 4 ++--
spark/pom.xml | 8 ++++----
splunk/pom.xml | 8 ++++----
ubenchmark/pom.xml | 2 +-
8 files changed, 24 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/71ebeaa8/avatica/pom.xml
----------------------------------------------------------------------
diff --git a/avatica/pom.xml b/avatica/pom.xml
index beaf8b4..315db36 100644
--- a/avatica/pom.xml
+++ b/avatica/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</parent>
<artifactId>optiq-avatica</artifactId>
<packaging>jar</packaging>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<name>optiq-avatica</name>
<description>JDBC driver framework.</description>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/71ebeaa8/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 3d34a1c..b2352ab 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</parent>
<artifactId>optiq-core</artifactId>
<packaging>jar</packaging>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<name>optiq-core</name>
<description>Core Optiq APIs and engine.</description>
@@ -21,7 +21,7 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-avatica</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</dependency>
</dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/71ebeaa8/mongodb/pom.xml
----------------------------------------------------------------------
diff --git a/mongodb/pom.xml b/mongodb/pom.xml
index 0168366..bc0b6cb 100644
--- a/mongodb/pom.xml
+++ b/mongodb/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</parent>
<artifactId>optiq-mongodb</artifactId>
<packaging>jar</packaging>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<name>optiq-mongodb</name>
<description>MongoDB adapter for Optiq.</description>
@@ -20,13 +20,13 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/71ebeaa8/plus/pom.xml
----------------------------------------------------------------------
diff --git a/plus/pom.xml b/plus/pom.xml
index e62858c..1f7f7cd 100644
--- a/plus/pom.xml
+++ b/plus/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</parent>
<artifactId>optiq-plus</artifactId>
<packaging>jar</packaging>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<name>optiq-plus</name>
<description>Miscellaneous extras for Optiq.</description>
@@ -20,13 +20,13 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/71ebeaa8/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 03ddf9a..45e35fe 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
<packaging>pom</packaging>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<!-- More project information. -->
<name>optiq-parent</name>
@@ -79,7 +79,7 @@
<connection>scm:git:git://github.com/julianhyde/optiq.git</connection>
<developerConnection>scm:git:git@github.com:julianhyde/optiq.git</developerConnection>
<url>http://github.com/julianhyde/optiq/tree/master</url>
- <tag>optiq-parent-0.8</tag>
+ <tag>HEAD</tag>
</scm>
<modules>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/71ebeaa8/spark/pom.xml
----------------------------------------------------------------------
diff --git a/spark/pom.xml b/spark/pom.xml
index e62b31c..3e76688 100644
--- a/spark/pom.xml
+++ b/spark/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</parent>
<artifactId>optiq-spark</artifactId>
<packaging>jar</packaging>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<name>optiq-spark</name>
<properties>
@@ -19,12 +19,12 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/71ebeaa8/splunk/pom.xml
----------------------------------------------------------------------
diff --git a/splunk/pom.xml b/splunk/pom.xml
index 9624be1..dcc1c05 100644
--- a/splunk/pom.xml
+++ b/splunk/pom.xml
@@ -3,12 +3,12 @@
<parent>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-parent</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</parent>
<artifactId>optiq-splunk</artifactId>
<packaging>jar</packaging>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<name>optiq-splunk</name>
<description>Splunk adapter for Optiq; also a JDBC driver for Splunk.</description>
@@ -20,12 +20,12 @@
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>net.hydromatic</groupId>
<artifactId>optiq-core</artifactId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-optiq/blob/71ebeaa8/ubenchmark/pom.xml
----------------------------------------------------------------------
diff --git a/ubenchmark/pom.xml b/ubenchmark/pom.xml
index 42fdef2..af9cb5d 100644
--- a/ubenchmark/pom.xml
+++ b/ubenchmark/pom.xml
@@ -3,7 +3,7 @@
<parent>
<artifactId>optiq-parent</artifactId>
<groupId>net.hydromatic</groupId>
- <version>0.8</version>
+ <version>0.9-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>