You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by ji...@apache.org on 2015/03/11 02:21:57 UTC
[01/12] tajo git commit: TAJO-1135: Implement queryable virtual table
for cluster information
Repository: tajo
Updated Branches:
refs/heads/index_support e38c48aa8 -> 347571584
TAJO-1135: Implement queryable virtual table for cluster information
Closes #366
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/6e519bcf
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/6e519bcf
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/6e519bcf
Branch: refs/heads/index_support
Commit: 6e519bcf39a526b64e62d9957404bfd8a3888486
Parents: 1617fa9
Author: Jihun Kang <ji...@apache.org>
Authored: Fri Mar 6 16:32:37 2015 +0900
Committer: Jihun Kang <ji...@apache.org>
Committed: Fri Mar 6 16:32:37 2015 +0900
----------------------------------------------------------------------
CHANGES | 2 +
.../dictionary/ClusterTableDescriptor.java | 56 ++++++++
.../InfoSchemaMetadataDictionary.java | 5 +-
.../NonForwardQueryResultSystemScanner.java | 142 +++++++++++++++++++
.../TestNonForwardQueryResultSystemScanner.java | 18 +++
5 files changed, 222 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/6e519bcf/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 1570e42..974e4d7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,8 @@ Release 0.11.0 - unreleased
NEW FEATURES
+ TAJO-1135: Implement queryable virtual table for cluster information.
+ (jihun)
IMPROVEMENT
http://git-wip-us.apache.org/repos/asf/tajo/blob/6e519bcf/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/dictionary/ClusterTableDescriptor.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/dictionary/ClusterTableDescriptor.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/dictionary/ClusterTableDescriptor.java
new file mode 100644
index 0000000..e3c830f
--- /dev/null
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/dictionary/ClusterTableDescriptor.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tajo.catalog.dictionary;
+
+import org.apache.tajo.common.TajoDataTypes.Type;
+
+class ClusterTableDescriptor extends AbstractTableDescriptor {
+
+ private static final String TABLENAME = "cluster";
+ private final ColumnDescriptor[] columns = new ColumnDescriptor[] {
+ new ColumnDescriptor("host", Type.TEXT, 0),
+ new ColumnDescriptor("port", Type.INT4, 0),
+ new ColumnDescriptor("type", Type.TEXT, 0),
+ new ColumnDescriptor("status", Type.TEXT, 0),
+ new ColumnDescriptor("total_cpu", Type.INT4, 0),
+ new ColumnDescriptor("used_mem", Type.INT8, 0),
+ new ColumnDescriptor("total_mem", Type.INT8, 0),
+ new ColumnDescriptor("free_heap", Type.INT8, 0),
+ new ColumnDescriptor("max_heap", Type.INT8, 0),
+ new ColumnDescriptor("used_diskslots", Type.FLOAT4, 0),
+ new ColumnDescriptor("total_diskslots", Type.FLOAT4, 0),
+ new ColumnDescriptor("running_tasks", Type.INT4, 0),
+ new ColumnDescriptor("last_heartbeat_ts", Type.TIMESTAMP, 0)
+ };
+
+ public ClusterTableDescriptor(InfoSchemaMetadataDictionary metadataDictionary) {
+ super(metadataDictionary);
+ }
+
+ @Override
+ public String getTableNameString() {
+ return TABLENAME;
+ }
+
+ @Override
+ protected ColumnDescriptor[] getColumnDescriptors() {
+ return columns;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/tajo/blob/6e519bcf/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/dictionary/InfoSchemaMetadataDictionary.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/dictionary/InfoSchemaMetadataDictionary.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/dictionary/InfoSchemaMetadataDictionary.java
index de79caa..0ac0a54 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/dictionary/InfoSchemaMetadataDictionary.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/dictionary/InfoSchemaMetadataDictionary.java
@@ -24,6 +24,7 @@ import java.util.List;
import org.apache.tajo.catalog.exception.NoSuchTableException;
import org.apache.tajo.catalog.proto.CatalogProtos;
+import org.apache.tajo.catalog.proto.CatalogProtos.StoreType;
import org.apache.tajo.util.TUtil;
public class InfoSchemaMetadataDictionary {
@@ -39,6 +40,7 @@ public class InfoSchemaMetadataDictionary {
TABLEOPTIONS,
TABLESTATS,
PARTITIONS,
+ CLUSTER,
MAX_TABLE;
}
@@ -58,6 +60,7 @@ public class InfoSchemaMetadataDictionary {
schemaInfoTableDescriptors.set(DEFINED_TABLES.TABLEOPTIONS.ordinal(), new TableOptionsTableDescriptor(this));
schemaInfoTableDescriptors.set(DEFINED_TABLES.TABLESTATS.ordinal(), new TableStatsTableDescriptor(this));
schemaInfoTableDescriptors.set(DEFINED_TABLES.PARTITIONS.ordinal(), new PartitionsTableDescriptor(this));
+ schemaInfoTableDescriptors.set(DEFINED_TABLES.CLUSTER.ordinal(), new ClusterTableDescriptor(this));
}
public boolean isSystemDatabase(String databaseName) {
@@ -119,6 +122,6 @@ public class InfoSchemaMetadataDictionary {
}
protected String getTablePath() {
- return "SYSTEM";
+ return StoreType.SYSTEM.name().toUpperCase();
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/6e519bcf/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java b/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
index 93909d1..e44d8be 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
@@ -20,7 +20,10 @@ package org.apache.tajo.master.exec;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import java.util.Map;
+import java.util.Set;
import java.util.Stack;
import org.apache.commons.logging.Log;
@@ -56,6 +59,8 @@ import org.apache.tajo.engine.planner.global.MasterPlan;
import org.apache.tajo.engine.planner.physical.PhysicalExec;
import org.apache.tajo.engine.query.QueryContext;
import org.apache.tajo.master.TajoMaster.MasterContext;
+import org.apache.tajo.master.rm.Worker;
+import org.apache.tajo.master.rm.WorkerResource;
import org.apache.tajo.plan.InvalidQueryException;
import org.apache.tajo.plan.LogicalPlan;
import org.apache.tajo.plan.PlanningException;
@@ -431,6 +436,141 @@ public class NonForwardQueryResultSystemScanner implements NonForwardQueryResult
return tuples;
}
+ private Tuple getQueryMasterTuple(Schema outSchema, Worker aWorker) {
+ List<Column> columns = outSchema.getColumns();
+ Tuple aTuple = new VTuple(outSchema.size());
+ WorkerResource aResource = aWorker.getResource();
+
+ for (int fieldId = 0; fieldId < columns.size(); fieldId++) {
+ Column column = columns.get(fieldId);
+
+ if ("host".equalsIgnoreCase(column.getSimpleName())) {
+ if (aWorker.getConnectionInfo() != null && aWorker.getConnectionInfo().getHost() != null) {
+ aTuple.put(fieldId, DatumFactory.createText(aWorker.getConnectionInfo().getHost()));
+ } else {
+ aTuple.put(fieldId, DatumFactory.createNullDatum());
+ }
+ } else if ("port".equalsIgnoreCase(column.getSimpleName())) {
+ if (aWorker.getConnectionInfo() != null) {
+ aTuple.put(fieldId, DatumFactory.createInt4(aWorker.getConnectionInfo().getQueryMasterPort()));
+ } else {
+ aTuple.put(fieldId, DatumFactory.createNullDatum());
+ }
+ } else if ("type".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createText("QueryMaster"));
+ } else if ("status".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createText(aWorker.getState().toString()));
+ } else if ("RUNNING".equalsIgnoreCase(aWorker.getState().toString())) {
+ if ("running_tasks".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createInt4(aResource.getNumQueryMasterTasks()));
+ } else if ("free_heap".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createInt8(aResource.getFreeHeap()));
+ } else if ("max_heap".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createInt8(aResource.getMaxHeap()));
+ } else if ("last_heartbeat_ts".equalsIgnoreCase(column.getSimpleName())) {
+ if (aWorker.getLastHeartbeatTime() > 0) {
+ aTuple.put(fieldId, DatumFactory.createTimestmpDatumWithJavaMillis(aWorker.getLastHeartbeatTime()));
+ } else {
+ aTuple.put(fieldId, DatumFactory.createNullDatum());
+ }
+ }
+ } else {
+ aTuple.put(fieldId, DatumFactory.createNullDatum());
+ }
+ }
+
+ return aTuple;
+ }
+
+ private Tuple getWorkerTuple(Schema outSchema, Worker aWorker) {
+ List<Column> columns = outSchema.getColumns();
+ Tuple aTuple = new VTuple(outSchema.size());
+ WorkerResource aResource = aWorker.getResource();
+
+ for (int fieldId = 0; fieldId < columns.size(); fieldId++) {
+ Column column = columns.get(fieldId);
+
+ if ("host".equalsIgnoreCase(column.getSimpleName())) {
+ if (aWorker.getConnectionInfo() != null && aWorker.getConnectionInfo().getHost() != null) {
+ aTuple.put(fieldId, DatumFactory.createText(aWorker.getConnectionInfo().getHost()));
+ } else {
+ aTuple.put(fieldId, DatumFactory.createNullDatum());
+ }
+ } else if ("port".equalsIgnoreCase(column.getSimpleName())) {
+ if (aWorker.getConnectionInfo() != null) {
+ aTuple.put(fieldId, DatumFactory.createInt4(aWorker.getConnectionInfo().getPeerRpcPort()));
+ } else {
+ aTuple.put(fieldId, DatumFactory.createNullDatum());
+ }
+ } else if ("type".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createText("Worker"));
+ } else if ("status".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createText(aWorker.getState().toString()));
+ } else if ("RUNNING".equalsIgnoreCase(aWorker.getState().toString())) {
+ if ("total_cpu".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createInt4(aResource.getCpuCoreSlots()));
+ } else if ("used_mem".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createInt8(aResource.getUsedMemoryMB()*1048576l));
+ } else if ("total_mem".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createInt8(aResource.getMemoryMB()*1048576l));
+ } else if ("free_heap".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createInt8(aResource.getFreeHeap()));
+ } else if ("max_heap".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createInt8(aResource.getMaxHeap()));
+ } else if ("used_diskslots".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createFloat4(aResource.getUsedDiskSlots()));
+ } else if ("total_diskslots".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createFloat4(aResource.getDiskSlots()));
+ } else if ("running_tasks".equalsIgnoreCase(column.getSimpleName())) {
+ aTuple.put(fieldId, DatumFactory.createInt4(aResource.getNumRunningTasks()));
+ } else if ("last_heartbeat_ts".equalsIgnoreCase(column.getSimpleName())) {
+ if (aWorker.getLastHeartbeatTime() > 0) {
+ aTuple.put(fieldId, DatumFactory.createTimestmpDatumWithJavaMillis(aWorker.getLastHeartbeatTime()));
+ } else {
+ aTuple.put(fieldId, DatumFactory.createNullDatum());
+ }
+ }
+ }
+ else {
+ aTuple.put(fieldId, DatumFactory.createNullDatum());
+ }
+ }
+
+ return aTuple;
+ }
+
+ private List<Tuple> getClusterInfo(Schema outSchema) {
+ Map<Integer, Worker> workerMap = masterContext.getResourceManager().getWorkers();
+ Set<Integer> keySet = workerMap.keySet();
+ List<Tuple> tuples = Collections.emptyList();
+ List<Worker> queryMasterList = new ArrayList<Worker>();
+ List<Worker> workerList = new ArrayList<Worker>();
+
+ for (Integer keyId: keySet) {
+ Worker aWorker = workerMap.get(keyId);
+ WorkerResource aResource = aWorker.getResource();
+
+ if (aResource.isQueryMasterMode()) {
+ queryMasterList.add(aWorker);
+ }
+
+ if (aResource.isTaskRunnerMode()) {
+ workerList.add(aWorker);
+ }
+ }
+
+ tuples = new ArrayList<Tuple>(queryMasterList.size() + workerList.size());
+ for (Worker queryMaster: queryMasterList) {
+ tuples.add(getQueryMasterTuple(outSchema, queryMaster));
+ }
+
+ for (Worker worker: workerList) {
+ tuples.add(getWorkerTuple(outSchema, worker));
+ }
+
+ return tuples;
+ }
+
private List<Tuple> fetchSystemTable(TableDesc tableDesc, Schema inSchema) {
List<Tuple> tuples = null;
String tableName = CatalogUtil.extractSimpleName(tableDesc.getName());
@@ -451,6 +591,8 @@ public class NonForwardQueryResultSystemScanner implements NonForwardQueryResult
tuples = getAllTableStats(inSchema);
} else if ("partitions".equalsIgnoreCase(tableName)) {
tuples = getAllPartitions(inSchema);
+ } else if ("cluster".equalsIgnoreCase(tableName)) {
+ tuples = getClusterInfo(inSchema);
}
return tuples;
http://git-wip-us.apache.org/repos/asf/tajo/blob/6e519bcf/tajo-core/src/test/java/org/apache/tajo/master/TestNonForwardQueryResultSystemScanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/master/TestNonForwardQueryResultSystemScanner.java b/tajo-core/src/test/java/org/apache/tajo/master/TestNonForwardQueryResultSystemScanner.java
index fa7fdf0..01d4ec4 100644
--- a/tajo-core/src/test/java/org/apache/tajo/master/TestNonForwardQueryResultSystemScanner.java
+++ b/tajo-core/src/test/java/org/apache/tajo/master/TestNonForwardQueryResultSystemScanner.java
@@ -295,4 +295,22 @@ public class TestNonForwardQueryResultSystemScanner {
assertThat(tuples.size(), is(9));
assertThat(tuples, hasItem(getTupleMatcher(0, is("lineitem"))));
}
+
+ @Test
+ public void testGetClusterDetails() throws Exception {
+ NonForwardQueryResultScanner queryResultScanner =
+ getScanner("SELECT TYPE FROM INFORMATION_SCHEMA.CLUSTER");
+
+ queryResultScanner.init();
+
+ List<ByteString> rowBytes = queryResultScanner.getNextRows(100);
+
+ assertThat(rowBytes.size(), is(2));
+
+ RowStoreDecoder decoder = RowStoreUtil.createDecoder(queryResultScanner.getLogicalSchema());
+ List<Tuple> tuples = getTupleList(decoder, rowBytes);
+
+ assertThat(tuples.size(), is(2));
+ assertThat(tuples, hasItem(getTupleMatcher(0, is("QueryMaster"))));
+ }
}
[07/12] tajo git commit: Updated google analytics tracking js.
Posted by ji...@apache.org.
Updated google analytics tracking js.
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/f9d2fdef
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/f9d2fdef
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/f9d2fdef
Branch: refs/heads/index_support
Commit: f9d2fdefe87ad7145f49f287f59e4e18c5a86183
Parents: 14a7f82
Author: Hyunsik Choi <hy...@apache.org>
Authored: Mon Mar 9 02:11:31 2015 -0700
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Mon Mar 9 02:11:31 2015 -0700
----------------------------------------------------------------------
tajo-project/src/site/markdown/downloads.md | 8 ++---
tajo-project/src/site/site.xml | 37 +++++++++++++++++-------
2 files changed, 30 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/f9d2fdef/tajo-project/src/site/markdown/downloads.md
----------------------------------------------------------------------
diff --git a/tajo-project/src/site/markdown/downloads.md b/tajo-project/src/site/markdown/downloads.md
index d79a3b9..44d370b 100644
--- a/tajo-project/src/site/markdown/downloads.md
+++ b/tajo-project/src/site/markdown/downloads.md
@@ -23,9 +23,9 @@
* [Announcement] (releases/0.10.0/announcement.html)
* [Release Notes] (releases/0.10.0/relnotes.html)
* [User Documentation] (http://tajo.apache.org/docs/0.10.0/index.html)
- * Source: [tajo-0.10.0-src.tar.gz](http://apache.org/dyn/closer.cgi/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz) ([MD5](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz.md5)) ([SHA](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz.sha)) ([SIGN](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz.asc)) ([KEYS](http://www.apache.org/dist/tajo/KEYS))
- * Binary Tarball: [tajo-0.10.0.tar.gz] (http://apache.org/dyn/closer.cgi/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz) ([MD5](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz.md5)) ([SHA](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz.sha)) ([SIGN](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz.asc)) ([KEYS](http://www.apache.org/dist/tajo/KEYS))
- * JDBC Driver: [tajo-jdbc-0.10.0.jar] (http://apache.org/dyn/closer.cgi/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar) ([MD5](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar.md5)) ([SHA](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar.sha)) ([SIGN](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar.asc)) ([KEYS](http://www.apache.org/dist/tajo/KEYS))
+ * Source: <a href='http://apache.org/dyn/closer.cgi/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz' id='tajo-0.10.0-src'>tajo-0.10.0-src.tar.gz</a> ([MD5](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz.md5)) ([SHA](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz.sha)) ([SIGN](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz.asc)) ([KEYS](http://www.apache.org/dist/tajo/KEYS))
+ * Binary Tarball: <a href='http://apache.org/dyn/closer.cgi/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz' id='tajo-0.10.0-bin'>tajo-0.10.0.tar.gz</a> ([MD5](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz.md5)) ([SHA](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz.sha)) ([SIGN](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz.asc)) ([KEYS](http://www.apache.org/dist/tajo/KEYS))
+ * JDBC Driver: <a href='http://apache.org/dyn/closer.cgi/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar' id='tajo-jdbc-0.10.0'>tajo-jdbc-0.10.0.jar</a> ([MD5](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar.md5)) ([SHA](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar.sha)) ([SIGN](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar.asc)) ([KEYS](http://www.apache.org/dist/tajo/KEYS))
## Previous Releases
### Release 0.9.0 (Oct 21, 2014)
@@ -106,4 +106,4 @@ or
```
sha1sum -c tajo-0.x.0.tar.gz.sha1
-```
\ No newline at end of file
+```
http://git-wip-us.apache.org/repos/asf/tajo/blob/f9d2fdef/tajo-project/src/site/site.xml
----------------------------------------------------------------------
diff --git a/tajo-project/src/site/site.xml b/tajo-project/src/site/site.xml
index aec60ac..65968c7 100644
--- a/tajo-project/src/site/site.xml
+++ b/tajo-project/src/site/site.xml
@@ -57,17 +57,32 @@
<head>
<meta name="description" content="Apache Tajo,SQL-on-Hadoop,big data warehouse system on Hadoop,relational and distributed query engine" />
<script type="text/javascript">
-
- var _gaq = _gaq || [];
- _gaq.push(['_setAccount', 'UA-38152529-1']);
- _gaq.push(['_trackPageview']);
-
- (function() {
- var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
- var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
- })();
-
+(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-38152529-1', 'auto');
+ga('send', 'pageview');
+
+var dn_src_0_10_0 = document.getElementById('tajo-0.10.0-src');
+var dn_bin_0_10_0 = document.getElementById('tajo-0.10.0-bin');
+var dn_jdbc_0_10_0 = document.getElementById('tajo-jdbc-0.10.0');
+
+addListener(dn_src_0_10_0, 'click', function() {
+ ga('send', 'event', 'download', 'click', 'tajo-0.10.0-src');
+});
+addListener(dn_bin_0_10_0, 'click', function() {
+ ga('send', 'event', 'download', 'click', 'tajo-0.10.0-bin');
+});
+addListener(dn_jdbc_0_10_0, 'click', function() {
+ ga('send', 'event', 'download', 'click', 'tajo-jdbc-0.10.0');
+});
+
+function addListener(element, type, callback) {
+ if (element.addEventListener) element.addEventListener(type, callback);
+ else if (element.attachEvent) element.attachEvent('on' + type, callback);
+}
</script>
<style>
a.externalLink[href^=http] {
[06/12] tajo git commit: TAJO-1378: Incorrect version(0.8.0) info in
tajo-doc. (Contributed by Dongjoon Hyun, Committed by jihoon)
Posted by ji...@apache.org.
TAJO-1378: Incorrect version(0.8.0) info in tajo-doc. (Contributed by Dongjoon Hyun, Committed by jihoon)
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/14a7f824
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/14a7f824
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/14a7f824
Branch: refs/heads/index_support
Commit: 14a7f82418d4169a43b35587f2b1154a13461806
Parents: b839d37
Author: Jihoon Son <ji...@apache.org>
Authored: Mon Mar 9 14:25:12 2015 +0900
Committer: Jihoon Son <ji...@apache.org>
Committed: Mon Mar 9 14:25:12 2015 +0900
----------------------------------------------------------------------
CHANGES | 5 ++++-
tajo-docs/src/main/sphinx/conf.py | 4 ++--
2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/14a7f824/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 9d986f1..d132eb5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -16,7 +16,10 @@ Release 0.11.0 - unreleased
BUG FIXES
- TAJO-1370 TUtils.checkEquals() is not consistent with description
+ TAJO-1378: Incorrect version(0.8.0) info in tajo-doc.
+ (Contributed by Dongjoon Hyun, Committed by jihoon)
+
+ TAJO-1370: TUtils.checkEquals() is not consistent with description
in javadoc. (Contributed by navis, Committed by hyunsik)
TAJO-1362: Resolve findbug warnings on Tajo Core Module. (jihun)
http://git-wip-us.apache.org/repos/asf/tajo/blob/14a7f824/tajo-docs/src/main/sphinx/conf.py
----------------------------------------------------------------------
diff --git a/tajo-docs/src/main/sphinx/conf.py b/tajo-docs/src/main/sphinx/conf.py
index 9695ed1..f6a2d96 100644
--- a/tajo-docs/src/main/sphinx/conf.py
+++ b/tajo-docs/src/main/sphinx/conf.py
@@ -65,9 +65,9 @@ copyright = u'2014, Apache Tajo Team'
# built documents.
#
# The short X.Y version.
-version = '0.8'
+version = '0.11'
# The full version, including alpha/beta/rc tags.
-release = '0.8.0'
+release = '0.11.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
[09/12] tajo git commit: TAJO-1387: Correct error message for EXISTS
clause.
Posted by ji...@apache.org.
TAJO-1387: Correct error message for EXISTS clause.
closes #409
Signed-off-by: Hyunsik Choi <hy...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/13316bd2
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/13316bd2
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/13316bd2
Branch: refs/heads/index_support
Commit: 13316bd26cbd7eedcc97c74f317ca743bd2eba5b
Parents: 69fd8d2
Author: Dongjoon Hyun <do...@apache.org>
Authored: Tue Mar 10 22:41:50 2015 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Tue Mar 10 12:43:08 2015 -0700
----------------------------------------------------------------------
CHANGES | 3 +++
.../src/main/java/org/apache/tajo/algebra/ExistsPredicate.java | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/13316bd2/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index d132eb5..630417f 100644
--- a/CHANGES
+++ b/CHANGES
@@ -16,6 +16,9 @@ Release 0.11.0 - unreleased
BUG FIXES
+ TAJO-1387: Correct error message for EXISTS clause.
+ (Contributed by Dongjoon Hyun, Committed by hyunsik)
+
TAJO-1378: Incorrect version(0.8.0) info in tajo-doc.
(Contributed by Dongjoon Hyun, Committed by jihoon)
http://git-wip-us.apache.org/repos/asf/tajo/blob/13316bd2/tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java
----------------------------------------------------------------------
diff --git a/tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java b/tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java
index 389fd74..fa8b3d4 100644
--- a/tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java
+++ b/tajo-algebra/src/main/java/org/apache/tajo/algebra/ExistsPredicate.java
@@ -27,7 +27,7 @@ public class ExistsPredicate extends UnaryOperator {
private boolean not;
public ExistsPredicate(SimpleTableSubQuery simpleTableSubQuery, boolean not) {
- super(OpType.InPredicate);
+ super(OpType.ExistsPredicate);
this.not = not;
setChild(simpleTableSubQuery);
}
[10/12] tajo git commit: TAJO-1386: CURRENT_DATE generates parsing
errors sometimes.
Posted by ji...@apache.org.
TAJO-1386: CURRENT_DATE generates parsing errors sometimes.
Closes #408
Signed-off-by: Hyunsik Choi <hy...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/3b9a2e5f
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/3b9a2e5f
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/3b9a2e5f
Branch: refs/heads/index_support
Commit: 3b9a2e5f287db3fcfdf6b0578c8184c47b8b3ebd
Parents: 13316bd
Author: navis.ryu <na...@apache.org>
Authored: Tue Mar 10 20:32:26 2015 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Tue Mar 10 14:09:22 2015 -0700
----------------------------------------------------------------------
CHANGES | 3 +++
.../org/apache/tajo/engine/parser/SQLParser.g4 | 1 +
.../org/apache/tajo/engine/parser/SQLAnalyzer.java | 4 +++-
.../apache/tajo/engine/parser/SQLSyntaxError.java | 17 +++++++----------
.../engine/function/TestDateTimeFunctions.java | 5 +++++
.../apache/tajo/plan/InvalidQueryException.java | 4 ++--
6 files changed, 21 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 630417f..dc1a5f7 100644
--- a/CHANGES
+++ b/CHANGES
@@ -16,6 +16,9 @@ Release 0.11.0 - unreleased
BUG FIXES
+ TAJO-1386: CURRENT_DATE generates parsing errors sometimes.
+ (Contributed by navis, Committed by hyunsik)
+
TAJO-1387: Correct error message for EXISTS clause.
(Contributed by Dongjoon Hyun, Committed by hyunsik)
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4 b/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
index 420bf46..a05a060 100644
--- a/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
+++ b/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
@@ -770,6 +770,7 @@ sign
numeric_value_function
: extract_expression
+ | datetime_value_function
;
extract_expression
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
index 5b4054f..869c0eb 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
@@ -1155,7 +1155,9 @@ public class SQLAnalyzer extends SQLParserBaseVisitor<Expr> {
if (checkIfExist(ctx.extract_expression())) {
return visitExtract_expression(ctx.extract_expression());
}
-
+ if (checkIfExist(ctx.datetime_value_function())) {
+ return visitDatetime_value_function(ctx.datetime_value_function());
+ }
return null;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java
index e4bfc7c..4c3b0fd 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLSyntaxError.java
@@ -22,28 +22,25 @@ package org.apache.tajo.engine.parser;
import org.apache.tajo.plan.InvalidQueryException;
public class SQLSyntaxError extends InvalidQueryException {
- private static final long serialVersionUID = 5388279335175632066L;
+ private static final long serialVersionUID = 5388279335175632067L;
- private String errorMessage;
- private String detailedMessage;
- private SQLParseError parseError;
+ private transient String detailedMessage;
public SQLSyntaxError(String errorMessage) {
- this.errorMessage = errorMessage;
+ super(errorMessage);
}
public SQLSyntaxError(SQLParseError e) {
- this.errorMessage = e.getMessageHeader();
- this.parseError = e;
+ super(e.getMessageHeader(), e);
}
@Override
public String getMessage() {
if (detailedMessage == null) {
- if (parseError != null) {
- detailedMessage = parseError.getMessage();
+ if (getCause() != null) {
+ detailedMessage = getCause().getMessage();
} else {
- detailedMessage = String.format("ERROR: %s\n", errorMessage);
+ detailedMessage = String.format("ERROR: %s\n", super.getMessage());
}
}
return detailedMessage;
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java b/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
index 6c708fb..25a10fd 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/function/TestDateTimeFunctions.java
@@ -443,6 +443,11 @@ public class TestDateTimeFunctions extends ExprTestBase {
new String[]{dateFormat(expectedDate, "yyyy-MM-dd")});
testSimpleEval(context, "select cast(extract(hour from current_time()) as INT4);",
new String[]{String.valueOf(Integer.parseInt(dateFormat(expectedDate, "HH")))});
+
+ expectedDate.setDate(expectedDate.getDate() + 1);
+
+ testSimpleEval(context, "select current_date() + 1;",
+ new String[]{dateFormat(expectedDate, "yyyy-MM-dd")});
} finally {
TimeZone.setDefault(originalTimezone);
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/3b9a2e5f/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java b/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
index db986e1..a6b677f 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/InvalidQueryException.java
@@ -29,7 +29,7 @@ public class InvalidQueryException extends RuntimeException {
super(message);
}
- public InvalidQueryException(Throwable t) {
- super(t);
+ public InvalidQueryException(String message, Throwable t) {
+ super(message, t);
}
}
[04/12] tajo git commit: Site update for 0.10.0 release.
Posted by ji...@apache.org.
Site update for 0.10.0 release.
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/42ef0dc6
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/42ef0dc6
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/42ef0dc6
Branch: refs/heads/index_support
Commit: 42ef0dc665db7bb806624b7fad0be9e943c1adfd
Parents: 6ba51c3
Author: Hyunsik Choi <hy...@apache.org>
Authored: Sun Mar 8 20:23:53 2015 -0700
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Sun Mar 8 20:23:53 2015 -0700
----------------------------------------------------------------------
tajo-project/src/site/apt/index.apt | 4 +-
tajo-project/src/site/markdown/downloads.md | 12 +-
.../markdown/releases/0.10.0/announcement.md | 57 +++
.../resources/releases/0.10.0/relnotes.html | 370 +++++++++++++++++++
tajo-project/src/site/site.xml | 4 +-
5 files changed, 443 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/42ef0dc6/tajo-project/src/site/apt/index.apt
----------------------------------------------------------------------
diff --git a/tajo-project/src/site/apt/index.apt b/tajo-project/src/site/apt/index.apt
index b18ca2d..42e524f 100644
--- a/tajo-project/src/site/apt/index.apt
+++ b/tajo-project/src/site/apt/index.apt
@@ -47,7 +47,7 @@ Features
* JDBC driver support
- * Various file formats support, such as CSV, RCFile, RowFile, SequenceFile and Parquet
+ * Various file formats support, such as CSV, JSON, RCFile, SequenceFile and Parquet
* <<Easy>>
@@ -61,6 +61,8 @@ Features
Releases
+ * <<[2015-03-08]>> {{{./downloads.html}Tajo 0.10.0}} ({{{./releases/0.10.0/announcement.html}Announcement}}, {{{./releases/0.10.0/relnotes.html}Release Notes}})
+
* <<[2014-10-21]>> {{{./downloads.html}Tajo 0.9.0}} ({{{./releases/0.9.0/announcement.html}Announcement}}, {{{./releases/0.9.0/relnotes.html}Release Notes}})
* <<[2014-05-01]>> {{{./downloads.html}Tajo 0.8.0}} ({{{./releases/0.8.0/announcement.html}Announcement}}, {{{./releases/0.8.0/relnotes.html}Release Notes}})
http://git-wip-us.apache.org/repos/asf/tajo/blob/42ef0dc6/tajo-project/src/site/markdown/downloads.md
----------------------------------------------------------------------
diff --git a/tajo-project/src/site/markdown/downloads.md b/tajo-project/src/site/markdown/downloads.md
index 0af73ac..d79a3b9 100644
--- a/tajo-project/src/site/markdown/downloads.md
+++ b/tajo-project/src/site/markdown/downloads.md
@@ -18,7 +18,17 @@
## Most Recent Releases
-### Latest Release 0.9.0 (Oct 21, 2014)
+### Latest Release 0.10.0 (Mar 8, 2015)
+
+ * [Announcement] (releases/0.10.0/announcement.html)
+ * [Release Notes] (releases/0.10.0/relnotes.html)
+ * [User Documentation] (http://tajo.apache.org/docs/0.10.0/index.html)
+ * Source: [tajo-0.10.0-src.tar.gz](http://apache.org/dyn/closer.cgi/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz) ([MD5](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz.md5)) ([SHA](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz.sha)) ([SIGN](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0-src.tar.gz.asc)) ([KEYS](http://www.apache.org/dist/tajo/KEYS))
+ * Binary Tarball: [tajo-0.10.0.tar.gz] (http://apache.org/dyn/closer.cgi/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz) ([MD5](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz.md5)) ([SHA](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz.sha)) ([SIGN](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-0.10.0.tar.gz.asc)) ([KEYS](http://www.apache.org/dist/tajo/KEYS))
+ * JDBC Driver: [tajo-jdbc-0.10.0.jar] (http://apache.org/dyn/closer.cgi/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar) ([MD5](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar.md5)) ([SHA](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar.sha)) ([SIGN](http://www.apache.org/dist/tajo/tajo-0.10.0/tajo-jdbc-0.10.0.jar.asc)) ([KEYS](http://www.apache.org/dist/tajo/KEYS))
+
+## Previous Releases
+### Release 0.9.0 (Oct 21, 2014)
* [Announcement] (releases/0.9.0/announcement.html)
* [Release Notes] (releases/0.9.0/relnotes.html)
http://git-wip-us.apache.org/repos/asf/tajo/blob/42ef0dc6/tajo-project/src/site/markdown/releases/0.10.0/announcement.md
----------------------------------------------------------------------
diff --git a/tajo-project/src/site/markdown/releases/0.10.0/announcement.md b/tajo-project/src/site/markdown/releases/0.10.0/announcement.md
new file mode 100644
index 0000000..41df74e
--- /dev/null
+++ b/tajo-project/src/site/markdown/releases/0.10.0/announcement.md
@@ -0,0 +1,57 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+# Apache Tajo™ 0.10.0 Release Announcement
+
+The Apache Tajo team is pleased to announce the release of Apache 0.10.0.
+Apache Tajo provides low-latency and scalable SQL analytical
+processing on Hadoop.
+
+The release is available for immediate download:
+
+ * http://tajo.apache.org/downloads.html
+
+This is a major release. Apache Tajo team resolved about 160 issues including
+lots of new features, bug fixes, and improvements. Apache Tajo 0.10.0 mainly
+focuses on lightweight Tajo client dependencies, HBase storage integration, direct JSON support (flat schema only), and better Amazon S3 support. Also, this release publishes a single JDBC driver jar file separately.
+
+### Some of highlights
+
+#### SQL features
+ * Add FIRST_VALUE and LAST_VALUE window functions (TAJO-920)
+ * Better TIMEZONE support for TIMESTAMP and TIME types. (TAJO-1185, TAJO-1191, TAJO-1234, and TAJO-1186)
+ * Add SET SESSION and RESET statement (TAJO-1238)
+
+#### Performance Improvements
+ * Improved performance of delimited text files (TAJO-1100, TAJO-1149, and TAJO-1151)
+
+#### Eco-system Integration
+ * Hadoop 2.6.0 support
+ * HBase storage integration (TAJO-1118)
+ * Better Amazon S3 support ([TAJO-1166, TAJO-1211)
+
+#### Other important improvements
+ * Lightweight Tajo client dependencies - Thin JDBC driver (TAJO-1160, TAJO-1228, and TAJO-1260)
+ * Support PostgreSQL CatalogStore (TAJO-233)
+ * Support Oracle CatalogStore (TAJO-235)
+ * Implement Query history persistency manager (TAJO-1026)
+ * Implement Json file scanner (TAJO-1095)
+
+For a complete list of new features and fixed problems, please see the release notes:
+
+ * http://tajo.apache.org/releases/0.10.0/relnotes.html
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tajo/blob/42ef0dc6/tajo-project/src/site/resources/releases/0.10.0/relnotes.html
----------------------------------------------------------------------
diff --git a/tajo-project/src/site/resources/releases/0.10.0/relnotes.html b/tajo-project/src/site/resources/releases/0.10.0/relnotes.html
new file mode 100644
index 0000000..8958a51
--- /dev/null
+++ b/tajo-project/src/site/resources/releases/0.10.0/relnotes.html
@@ -0,0 +1,370 @@
+<html>
+<head>
+<title>Release Notes - Tajo - Version 0.10.0</title>
+</head>
+
+<body>
+<h1>Release Notes - Tajo - Version 0.10.0</h1>
+
+<h2>Changes since Tajo 0.9.0</h2>
+
+<h2> Sub-task
+</h2>
+
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-324'>TAJO-324</a>] - Rename the prefix 'QueryUnit' to Task
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-920'>TAJO-920</a>] - Add FIRST_VALUE and LAST_VALUE window functions
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1149'>TAJO-1149</a>] - Implement direct read of DelimitedTextFile
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1151'>TAJO-1151</a>] - Implement the ByteBuffer-based De/Serializer
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1152'>TAJO-1152</a>] - RawFile ByteBuffer should be reuse
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1233'>TAJO-1233</a>] - Merge hbase_storage branch to the master branch
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1260'>TAJO-1260</a>] - Add ALTER TABLE ADD/DROP PARTITION statement to parser
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1262'>TAJO-1262</a>] - Rename the prefix 'SubQuery' to 'Stage'
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1287'>TAJO-1287</a>] - Repeated using of the same order by key in multiple window clauses should be supported
+</li>
+</ul>
+
+<h2> Bug
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-831'>TAJO-831</a>] - Project wrong column in the case of having same alias in subquery.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-930'>TAJO-930</a>] - Could not initialize class org.apache.tajo.QueryTestCaseBase during building
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1003'>TAJO-1003</a>] - wrong converting to_timestamp(text, text)
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1063'>TAJO-1063</a>] - Current_time() always returns UTC time
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1064'>TAJO-1064</a>] - The hour values are different between current_time() and extract from current_time()
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1108'>TAJO-1108</a>] - RawFile tableStats does not update in query processing
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1119'>TAJO-1119</a>] - JDBC driver should support TIMESTAMP type.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1126'>TAJO-1126</a>] - Join condition including functions throws IllegalArgumentException.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1139'>TAJO-1139</a>] - ExternalSortExec should delete the intermediate files
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1150'>TAJO-1150</a>] - Some weird methods in QueryClientImpl should be fixed
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1154'>TAJO-1154</a>] - TajoCli doesn't pause while running the non-forwarded query.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1157'>TAJO-1157</a>] - Required Java version in tutorial doc needs to be updated
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1158'>TAJO-1158</a>] - Max Hadoop version in tutorial doc needs to be updated
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1162'>TAJO-1162</a>] - to_char() returns "-00" second.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1166'>TAJO-1166</a>] - S3 related storage causes compilation error in Hadoop 2.6.0-SNAPSHOT
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1179'>TAJO-1179</a>] - Integration tests in TravisCI are occasionally failed due to log size.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1180'>TAJO-1180</a>] - digitValue should throw Exception when char is not in valid range
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1181'>TAJO-1181</a>] - Avro schema URL should support various protocols.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1183'>TAJO-1183</a>] - Keep command execution even with errors.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1185'>TAJO-1185</a>] - Default timezone should be UTC+0 instead of depending on JVM
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1188'>TAJO-1188</a>] - Fix testcase testTimestampConstructor in TestTimestampDatum
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1190'>TAJO-1190</a>] - INSERT INTO to partition tables may cause NPE.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1191'>TAJO-1191</a>] - Change DateDatum timezone to UTC
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1192'>TAJO-1192</a>] - testTimestampConstructor incorrectly compares a local time with a UTC time
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1194'>TAJO-1194</a>] - 'INSERT OVERWRITE .. SELECT' does not remove existing data when result is empty.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1197'>TAJO-1197</a>] - Unit test failed: unable to create new native thread
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1200'>TAJO-1200</a>] - Invalid shuffle data of multiple worker in same server
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1205'>TAJO-1205</a>] - Remove possible memory leak in TajoMaster
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1208'>TAJO-1208</a>] - Failure of create table using textfile on hivemeta
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1210'>TAJO-1210</a>] - ByteBufLineReader does not handle the end of file, if newline is not appeared
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1211'>TAJO-1211</a>] - Staging directory for CTAS and INSERT should be in the output dir.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1219'>TAJO-1219</a>] - Files located in intermediate directories of partitioned table should be ignored
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1220'>TAJO-1220</a>] - Implement createStatement() and setEscapeProcessing() in JdbcConnection
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1223'>TAJO-1223</a>] - Wrong query verification against asterisk and more expressions in select list
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1224'>TAJO-1224</a>] - When there is no projected column, json scan can be hang.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1225'>TAJO-1225</a>] - Fix wrong schema name in JDBC driver
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1231'>TAJO-1231</a>] - Implicit table properties in session are not stored in table property.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1232'>TAJO-1232</a>] - Implicit groupby queries with LIMIT lead to wrong results.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1234'>TAJO-1234</a>] - Rearrange timezone in date/time types
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1235'>TAJO-1235</a>] - ByteBufLineReader can not read text line with CRLF
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1237'>TAJO-1237</a>] - Fix missing maven-module for pullserver
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1239'>TAJO-1239</a>] - ORDER BY with null column desc miss some data.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1242'>TAJO-1242</a>] - Json scanner can not read some case of truncated text
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1244'>TAJO-1244</a>] - tajo.worker.tmpdir.locations should use a validator for a list of paths.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1246'>TAJO-1246</a>] - HBase info port conflict occasionally causes unit test failures in Jenkins CI
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1249'>TAJO-1249</a>] - Tajo should check if a file format given in DDL is supported.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1250'>TAJO-1250</a>] - RawFileAppender occasionally causes BufferOverflowException
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1251'>TAJO-1251</a>] - Query is hanging occasionally by shuffle report
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1252'>TAJO-1252</a>] - PathValidator should allow hdfs paths which contain IP addresses
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1254'>TAJO-1254</a>] - Fix getProgress race conditions in Query
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1257'>TAJO-1257</a>] - ORDER BY with NULL FIRST misses some data
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1259'>TAJO-1259</a>] - A title in catalog configuration document is different from others
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1265'>TAJO-1265</a>] - min(), max() does not handle null properly
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1270'>TAJO-1270</a>] - Fix typos
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1275'>TAJO-1275</a>] - Optimizer pushs down non-equi filter as theta join qualifier
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1277'>TAJO-1277</a>] - GreedyHeuristicJoinOrderAlgorithm sometimes wrongly assumes associativity of joins
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1278'>TAJO-1278</a>] - Unit tests occasionally hang due to the invalid query status
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1283'>TAJO-1283</a>] - ORDER BY with the first descending order causes wrong results
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1289'>TAJO-1289</a>] - History reader fails to get the query information after a successful query execution
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1297'>TAJO-1297</a>] - Tajo Web UI does not work after TAJO-1291
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1299'>TAJO-1299</a>] - TB and PB representations in StorageUnit are overflow
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1303'>TAJO-1303</a>] - CDH cannot pass hadoop version check test
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1304'>TAJO-1304</a>] - Can not found TextFile in catalog
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1305'>TAJO-1305</a>] - With metadata storage of MySQL, columns with the same character but difference case are not allowed
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1308'>TAJO-1308</a>] - QueryInprogress can not release when query is QUERY_ERROR
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1312'>TAJO-1312</a>] - Stage causes Invalid event error: SQ_SHUFFLE_REPORT at KILLED
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1313'>TAJO-1313</a>] - Tajo-dump creates DDLs for information_schema tables
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1315'>TAJO-1315</a>] - Invalid results are returned when a source table consists of multiple csv files
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1316'>TAJO-1316</a>] - NPE occurs when performing window functions after join
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1318'>TAJO-1318</a>] - Unit test failure after miniDFS cluster restart
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1319'>TAJO-1319</a>] - Tajo can't find HBase configuration file.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1321'>TAJO-1321</a>] - Cli prints wrong response time
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1322'>TAJO-1322</a>] - Invalid stored caching on StorageManager
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1324'>TAJO-1324</a>] - Remove warehouse directory rewriting in Unit Test
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1325'>TAJO-1325</a>] - Invalid history cleaner timeout
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1336'>TAJO-1336</a>] - Fix task failure of stopped task
+</li>
+</ul>
+
+<h2> Improvement
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-269'>TAJO-269</a>] - Protocol buffer De/Serialization for LogicalNode
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-784'>TAJO-784</a>] - Improve TpchTestBase to be more general.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1035'>TAJO-1035</a>] - Add default TAJO_PULLSERVER_HEAPSIZE
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1053'>TAJO-1053</a>] - ADD PARTITIONS for HCatalogStore
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1092'>TAJO-1092</a>] - Improve the function system to allow other function implementation types
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1109'>TAJO-1109</a>] - Separate SQL Statements from Catalog Stores
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1114'>TAJO-1114</a>] - Improve ConfVars (SessionVar) to take a validator interface to check its input.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1125'>TAJO-1125</a>] - Separate logical plan and optimizer into a maven module
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1128'>TAJO-1128</a>] - Implement a select box for database at web interface
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1132'>TAJO-1132</a>] - More detailed version info in tsql
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1133'>TAJO-1133</a>] - Add 'bin/tajo version' command
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1140'>TAJO-1140</a>] - Separate TajoClient into fine grained parts.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1143'>TAJO-1143</a>] - TajoMaster, TajoWorker, and TajoClient should have diagnosis phase at startup
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1145'>TAJO-1145</a>] - Add 'bin/tajo --help' command
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1159'>TAJO-1159</a>] - Change tsql history behavior
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1160'>TAJO-1160</a>] - Remove Hadoop dependency from tajo-client module
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1161'>TAJO-1161</a>] - Remove joda time dependency from tajo-core
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1163'>TAJO-1163</a>] - TableDesc should use URI instead of Path.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1165'>TAJO-1165</a>] - Needs to show error messages on query_executor.jsp
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1169'>TAJO-1169</a>] - Some older version of OpenJDK 1.6 does not get default timezone id
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1172'>TAJO-1172</a>] - Remove Trevni storage type and its related classes
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1174'>TAJO-1174</a>] - remove unnessary codes for blobdatum
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1176'>TAJO-1176</a>] - Implements queryable virtual tables for catalog information
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1177'>TAJO-1177</a>] - Reduce the use of Sun proprietary API
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1184'>TAJO-1184</a>] - Upgrade netty-buffer to 4.0.24.Final
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1186'>TAJO-1186</a>] - Table should have timezone as an table property
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1187'>TAJO-1187</a>] - TajoCli should print time/timestamp values with timezone
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1189'>TAJO-1189</a>] - *-site.xml.template should contain commented out default settings.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1195'>TAJO-1195</a>] - Remove unused CachedDNSResolver Class
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1204'>TAJO-1204</a>] - Remove unused ServerName class
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1209'>TAJO-1209</a>] - Pluggable line (de)serializer for DelimitedTextFile
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1213'>TAJO-1213</a>] - Implement CatalogStore::updateTableStats
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1221'>TAJO-1221</a>] - HA TajoClient should not connect TajoMaster at the first.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1227'>TAJO-1227</a>] - When a task is failed, ParquetAppender::close causes NPE.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1228'>TAJO-1228</a>] - TajoClient should communicate with only TajoMaster without TajoWorker
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1230'>TAJO-1230</a>] - Disable ipv6 support on JVM
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1236'>TAJO-1236</a>] - Remove slow 'new String' operation in parquet format
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1241'>TAJO-1241</a>] - Change default client and table time zone behavior
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1243'>TAJO-1243</a>] - *-site.xml.template should have default configs commented out.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1245'>TAJO-1245</a>] - Add documentation about PostgreSQL and Oracle Catalog driver
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1247'>TAJO-1247</a>] - Store type 'TEXTFILE' should be TEXT while keeping enum 'TEXTFILE' in protobuf
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1258'>TAJO-1258</a>] - Close() for classes derived from FileAppender should be robust
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1261'>TAJO-1261</a>] - Separate query and ddl execution codes from GlobalEngine
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1268'>TAJO-1268</a>] - tajo-client module should not use UserGroupInformation
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1269'>TAJO-1269</a>] - Separate cli from tajo-client
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1279'>TAJO-1279</a>] - Cleanup TajoAsyncDispatcher and interrupt stop events
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1281'>TAJO-1281</a>] - Remove hadoop-common dependency from tajo-rpc
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1282'>TAJO-1282</a>] - Cleanup the relationship of QueryInProgress and QueryJobManager
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1285'>TAJO-1285</a>] - Refactoring Magic Number to HAConstants
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1286'>TAJO-1286</a>] - Remove netty dependency from tajo-jdbc
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1288'>TAJO-1288</a>] - Refactoring org.apache.tajo.master package
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1290'>TAJO-1290</a>] - Add HBase Storage Integration Documentation
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1291'>TAJO-1291</a>] - Rename TajoMasterProtocol to QueryCoordinatorProtocol
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1293'>TAJO-1293</a>] - Tajo have to accept hostname beginning with digits.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1306'>TAJO-1306</a>] - HAServiceUtil should not directly use HDFS.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1307'>TAJO-1307</a>] - HBaseStorageManager need to support for users to use hbase-site.xml file.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1309'>TAJO-1309</a>] - Add missing break point in physical operator
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1317'>TAJO-1317</a>] - Parallel Test Executions on Tajo Core Project
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1320'>TAJO-1320</a>] - HBaseStorageManager need to support Zookeeper Client Port.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1328'>TAJO-1328</a>] - Fix deprecated property names in the catalog configuration document
+</li>
+</ul>
+
+<h2> New Feature
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-233'>TAJO-233</a>] - Support PostgreSQL CatalogStore
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-235'>TAJO-235</a>] - Support Oracle CatalogStore
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1026'>TAJO-1026</a>] - Implement Query history persistency manager.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1095'>TAJO-1095</a>] - Implement Json file scanner
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1100'>TAJO-1100</a>] - Refactor CSVFile to DelimitedLineTextFile
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1118'>TAJO-1118</a>] - (Umbrella) HBase Storage Integration
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1199'>TAJO-1199</a>] - EMR bootstrap script for Tajo
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1222'>TAJO-1222</a>] - DelimitedTextFile should be tolerant against parsing errors.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1238'>TAJO-1238</a>] - Add SET SESSION and RESET statement
+</li>
+</ul>
+
+<h2> Task
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1032'>TAJO-1032</a>] - Improve TravisCI scripts to adjust log4j log level
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1129'>TAJO-1129</a>] - Remove hadoop 2.2.0 support
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1141'>TAJO-1141</a>] - Refactor the packages hierarchy of tajo-client
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1153'>TAJO-1153</a>] - Merge off-heap package in block_iteration branch to master branch
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1229'>TAJO-1229</a>] - rename tajo-yarn-pullserver to tajo-pullserver
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1267'>TAJO-1267</a>] - Remove LazyTaskScheduler
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1274'>TAJO-1274</a>] - Merge separate pages of getting started document into a single page
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1280'>TAJO-1280</a>] - Update the roles of Hyoungjun and Jihun in web site
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1294'>TAJO-1294</a>] - Add index documents
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1295'>TAJO-1295</a>] - Remove legacy worker.dataserver package and its unit tests.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1296'>TAJO-1296</a>] - Remove obsolete classes from tajo.master.container package.
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/TAJO-1323'>TAJO-1323</a>] - Cleanup the unstable test case
+</li>
+</ul>
+
+</body>
+</html>
http://git-wip-us.apache.org/repos/asf/tajo/blob/42ef0dc6/tajo-project/src/site/site.xml
----------------------------------------------------------------------
diff --git a/tajo-project/src/site/site.xml b/tajo-project/src/site/site.xml
index 2441d2e..aec60ac 100644
--- a/tajo-project/src/site/site.xml
+++ b/tajo-project/src/site/site.xml
@@ -105,9 +105,9 @@
<menu name="Documentation">
<item name="Devel" href="http://tajo.apache.org/docs/devel/index.html" />
- <item name="Current (0.9.0)" href="http://tajo.apache.org/docs/current/index.html" />
+ <item name="Current (0.10.0)" href="http://tajo.apache.org/docs/current/index.html" />
+ <item name="0.9.0" href="http://tajo.apache.org/docs/0.9.0/index.html" />
<item name="0.8.0" href="http://tajo.apache.org/docs/0.8.0/index.html" />
- <item name="0.2.0-incubating release" href="http://tajo.apache.org/tajo-0.2.0-doc.html" />
</menu>
<menu name="Contributes">
[12/12] tajo git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/tajo into index_support
Posted by ji...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into index_support
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/34757158
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/34757158
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/34757158
Branch: refs/heads/index_support
Commit: 347571584fa9878bd0615dcfb6a4e0dfdf78c47f
Parents: e38c48a 513a8c3
Author: Jihoon Son <ji...@apache.org>
Authored: Wed Mar 11 10:21:40 2015 +0900
Committer: Jihoon Son <ji...@apache.org>
Committed: Wed Mar 11 10:21:40 2015 +0900
----------------------------------------------------------------------
CHANGES | 19 +
.../apache/tajo/algebra/ExistsPredicate.java | 2 +-
.../tajo/catalog/AbstractCatalogClient.java | 4 +-
.../org/apache/tajo/catalog/CatalogServer.java | 6 +-
.../dictionary/ClusterTableDescriptor.java | 56 +++
.../InfoSchemaMetadataDictionary.java | 5 +-
.../tajo/catalog/store/AbstractDBStore.java | 18 +-
.../main/java/org/apache/tajo/util/TUtil.java | 6 +-
.../org/apache/tajo/engine/parser/SQLParser.g4 | 1 +
.../engine/codegen/ExecutorPreCompiler.java | 2 +-
.../tajo/engine/function/FunctionLoader.java | 2 +-
.../apache/tajo/engine/parser/SQLAnalyzer.java | 4 +-
.../tajo/engine/parser/SQLSyntaxError.java | 17 +-
.../engine/planner/global/GlobalPlanner.java | 2 +-
.../tajo/master/QueryCoordinatorService.java | 2 +-
.../org/apache/tajo/master/QueryInProgress.java | 2 +-
.../org/apache/tajo/master/QueryManager.java | 2 +-
.../java/org/apache/tajo/master/TajoMaster.java | 4 +-
.../NonForwardQueryResultSystemScanner.java | 142 +++++++
.../master/rm/TajoWorkerResourceManager.java | 4 +-
.../apache/tajo/querymaster/QueryMaster.java | 4 +-
.../java/org/apache/tajo/querymaster/Task.java | 2 +-
.../org/apache/tajo/session/SessionManager.java | 2 +-
.../apache/tajo/util/history/HistoryWriter.java | 2 +-
.../tajo/webapp/QueryExecutorServlet.java | 4 +-
.../org/apache/tajo/worker/DeletionService.java | 4 +-
.../tajo/worker/ExecutionBlockContext.java | 2 +-
.../worker/ExecutionBlockSharedResource.java | 2 +-
.../java/org/apache/tajo/worker/Fetcher.java | 6 +-
.../tajo/worker/TajoResourceAllocator.java | 2 +-
.../main/java/org/apache/tajo/worker/Task.java | 2 +-
.../java/org/apache/tajo/worker/TaskRunner.java | 2 +-
.../tajo/worker/WorkerHeartbeatService.java | 2 +-
.../tajo/worker/rule/WorkerRuleProvider.java | 2 +-
.../engine/function/TestDateTimeFunctions.java | 5 +
.../TestNonForwardQueryResultSystemScanner.java | 18 +
tajo-docs/src/main/sphinx/conf.py | 4 +-
.../org/apache/tajo/jdbc/JdbcConnection.java | 4 +-
.../apache/tajo/plan/InvalidQueryException.java | 4 +-
.../org/apache/tajo/plan/LogicalPlanner.java | 2 +-
.../plan/exprrewrite/EvalTreeOptimizer.java | 2 +-
tajo-project/src/site/apt/index.apt | 4 +-
tajo-project/src/site/markdown/downloads.md | 14 +-
.../markdown/releases/0.10.0/announcement.md | 57 +++
.../resources/releases/0.10.0/relnotes.html | 388 +++++++++++++++++++
tajo-project/src/site/site.xml | 45 ++-
.../tajo/pullserver/PullServerAuxService.java | 4 +-
.../apache/tajo/pullserver/PullServerUtil.java | 2 +-
.../tajo/pullserver/TajoPullServerService.java | 4 +-
.../org/apache/tajo/rpc/NettyServerBase.java | 2 +-
.../org/apache/tajo/rpc/RpcConnectionPool.java | 2 +-
.../org/apache/tajo/storage/StorageUtil.java | 30 +-
.../apache/tajo/storage/TestStorageUtil.java | 58 +++
53 files changed, 879 insertions(+), 108 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
----------------------------------------------------------------------
diff --cc tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
index a2b8eaf,c34b4d2..f31efda
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
@@@ -913,28 -913,10 +913,28 @@@ public class CatalogServer extends Abst
rlock.lock();
try {
- return store.existIndexByColumn(databaseName, tableName, columnName) ?
+ return store.existIndexByColumns(databaseName, tableName,
+ columnNames.toArray(new String[columnNames.size()])) ?
+ ProtoUtil.TRUE : ProtoUtil.FALSE;
+ } catch (Exception e) {
+ LOG.error(e);
+ return BoolProto.newBuilder().setValue(false).build();
+ } finally {
+ rlock.unlock();
+ }
+ }
+
+ @Override
+ public BoolProto existIndexesByTable(RpcController controller, TableIdentifierProto request) throws ServiceException {
+ String databaseName = request.getDatabaseName();
+ String tableName = request.getTableName();
+
+ rlock.lock();
+ try {
+ return store.existIndexesByTable(databaseName, tableName) ?
ProtoUtil.TRUE : ProtoUtil.FALSE;
} catch (Exception e) {
- LOG.error(e);
+ LOG.error(e, e);
return BoolProto.newBuilder().setValue(false).build();
} finally {
rlock.unlock();
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-common/src/main/java/org/apache/tajo/util/TUtil.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-core/src/main/antlr4/org/apache/tajo/engine/parser/SQLParser.g4
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-core/src/main/java/org/apache/tajo/engine/parser/SQLAnalyzer.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-core/src/main/java/org/apache/tajo/master/exec/NonForwardQueryResultSystemScanner.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/34757158/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
----------------------------------------------------------------------
[08/12] tajo git commit: Update the event names for google analytics
download tracking.
Posted by ji...@apache.org.
Update the event names for google analytics download tracking.
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/69fd8d2a
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/69fd8d2a
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/69fd8d2a
Branch: refs/heads/index_support
Commit: 69fd8d2a08ce7ec0d69c4f98a338f979a13aafd1
Parents: f9d2fde
Author: Hyunsik Choi <hy...@apache.org>
Authored: Mon Mar 9 03:11:36 2015 -0700
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Mon Mar 9 03:11:36 2015 -0700
----------------------------------------------------------------------
tajo-project/src/site/site.xml | 32 ++++++++++++++++++--------------
1 file changed, 18 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/69fd8d2a/tajo-project/src/site/site.xml
----------------------------------------------------------------------
diff --git a/tajo-project/src/site/site.xml b/tajo-project/src/site/site.xml
index 65968c7..fd3bb6f 100644
--- a/tajo-project/src/site/site.xml
+++ b/tajo-project/src/site/site.xml
@@ -65,24 +65,28 @@ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
ga('create', 'UA-38152529-1', 'auto');
ga('send', 'pageview');
-var dn_src_0_10_0 = document.getElementById('tajo-0.10.0-src');
-var dn_bin_0_10_0 = document.getElementById('tajo-0.10.0-bin');
-var dn_jdbc_0_10_0 = document.getElementById('tajo-jdbc-0.10.0');
-
-addListener(dn_src_0_10_0, 'click', function() {
- ga('send', 'event', 'download', 'click', 'tajo-0.10.0-src');
-});
-addListener(dn_bin_0_10_0, 'click', function() {
- ga('send', 'event', 'download', 'click', 'tajo-0.10.0-bin');
-});
-addListener(dn_jdbc_0_10_0, 'click', function() {
- ga('send', 'event', 'download', 'click', 'tajo-jdbc-0.10.0');
-});
-
function addListener(element, type, callback) {
if (element.addEventListener) element.addEventListener(type, callback);
else if (element.attachEvent) element.attachEvent('on' + type, callback);
}
+
+function ga_event_load() {
+ var dn_src_0_10_0 = document.getElementById('tajo-0.10.0-src');
+ var dn_bin_0_10_0 = document.getElementById('tajo-0.10.0-bin');
+ var dn_jdbc_0_10_0 = document.getElementById('tajo-jdbc-0.10.0');
+
+ addListener(dn_src_0_10_0, 'click', function() {
+ ga('send', 'event', 'tajo-0.10.0-src', 'click', 'tajo-0.10.0-src');
+ });
+ addListener(dn_bin_0_10_0, 'click', function() {
+ ga('send', 'event', 'tajo-0.10.0-bin', 'click', 'tajo-0.10.0-bin');
+ });
+ addListener(dn_jdbc_0_10_0, 'click', function() {
+ ga('send', 'event', 'tajo-jdbc-0.10.0', 'click', 'tajo-jdbc-0.10.0');
+ });
+}
+
+window.onload = ga_event_load;
</script>
<style>
a.externalLink[href^=http] {
[02/12] tajo git commit: TAJO-1369: Some stack trace information is
missed in error/fail logging. (Contributed by navis, Committed by hyunsik)
Posted by ji...@apache.org.
TAJO-1369: Some stack trace information is missed in error/fail logging. (Contributed by navis, Committed by hyunsik)
Closes #396
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/f1aeb734
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/f1aeb734
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/f1aeb734
Branch: refs/heads/index_support
Commit: f1aeb734a42dfe0ab756069e5380bb253e09b45c
Parents: 6e519bc
Author: Hyunsik Choi <hy...@apache.org>
Authored: Fri Mar 6 00:32:23 2015 -0800
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Fri Mar 6 00:36:13 2015 -0800
----------------------------------------------------------------------
CHANGES | 3 +++
.../tajo/catalog/AbstractCatalogClient.java | 4 ++--
.../org/apache/tajo/catalog/CatalogServer.java | 6 +++---
.../tajo/catalog/store/AbstractDBStore.java | 18 +++++++++---------
.../tajo/engine/codegen/ExecutorPreCompiler.java | 2 +-
.../tajo/engine/function/FunctionLoader.java | 2 +-
.../tajo/engine/planner/global/GlobalPlanner.java | 2 +-
.../tajo/master/QueryCoordinatorService.java | 2 +-
.../org/apache/tajo/master/QueryInProgress.java | 2 +-
.../java/org/apache/tajo/master/QueryManager.java | 2 +-
.../java/org/apache/tajo/master/TajoMaster.java | 4 ++--
.../tajo/master/rm/TajoWorkerResourceManager.java | 4 ++--
.../org/apache/tajo/querymaster/QueryMaster.java | 4 ++--
.../java/org/apache/tajo/querymaster/Task.java | 2 +-
.../org/apache/tajo/session/SessionManager.java | 2 +-
.../apache/tajo/util/history/HistoryWriter.java | 2 +-
.../apache/tajo/webapp/QueryExecutorServlet.java | 4 ++--
.../org/apache/tajo/worker/DeletionService.java | 4 ++--
.../apache/tajo/worker/ExecutionBlockContext.java | 2 +-
.../tajo/worker/ExecutionBlockSharedResource.java | 2 +-
.../main/java/org/apache/tajo/worker/Fetcher.java | 6 +++---
.../apache/tajo/worker/TajoResourceAllocator.java | 2 +-
.../main/java/org/apache/tajo/worker/Task.java | 2 +-
.../java/org/apache/tajo/worker/TaskRunner.java | 2 +-
.../tajo/worker/WorkerHeartbeatService.java | 2 +-
.../tajo/worker/rule/WorkerRuleProvider.java | 2 +-
.../java/org/apache/tajo/jdbc/JdbcConnection.java | 4 ++--
.../java/org/apache/tajo/plan/LogicalPlanner.java | 2 +-
.../tajo/plan/exprrewrite/EvalTreeOptimizer.java | 2 +-
.../tajo/pullserver/PullServerAuxService.java | 4 ++--
.../apache/tajo/pullserver/PullServerUtil.java | 2 +-
.../tajo/pullserver/TajoPullServerService.java | 4 ++--
.../java/org/apache/tajo/rpc/NettyServerBase.java | 2 +-
.../org/apache/tajo/rpc/RpcConnectionPool.java | 2 +-
34 files changed, 57 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 974e4d7..003ae1a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -11,6 +11,9 @@ Release 0.11.0 - unreleased
TAJO-527: Upgrade to Netty 4. (jihun)
+ TAJO-1369: Some stack trace information is missed in error/fail logging.
+ (Contributed by navis, Committed by hyunsik)
+
BUG FIXES
TAJO-1362: Resolve findbug warnings on Tajo Core Module. (jihun)
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java b/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
index 718f7d6..d8350a3 100644
--- a/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
+++ b/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
@@ -459,7 +459,7 @@ public abstract class AbstractCatalogClient implements CatalogService {
try {
list.add(new FunctionDesc(response.getFunctionDesc(i)));
} catch (ClassNotFoundException e) {
- LOG.error(e);
+ LOG.error(e, e);
return null;
}
}
@@ -753,7 +753,7 @@ public abstract class AbstractCatalogClient implements CatalogService {
try {
return new FunctionDesc(descProto);
} catch (ClassNotFoundException e) {
- LOG.error(e);
+ LOG.error(e, e);
throw new NoSuchFunctionException(signature, paramTypes);
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
index 30b1767..c34b4d2 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
@@ -895,7 +895,7 @@ public class CatalogServer extends AbstractService {
try {
return store.existIndexByName(databaseName, indexName) ? ProtoUtil.TRUE : ProtoUtil.FALSE;
} catch (Exception e) {
- LOG.error(e);
+ LOG.error(e, e);
return BoolProto.newBuilder().setValue(false).build();
} finally {
rlock.unlock();
@@ -916,7 +916,7 @@ public class CatalogServer extends AbstractService {
return store.existIndexByColumn(databaseName, tableName, columnName) ?
ProtoUtil.TRUE : ProtoUtil.FALSE;
} catch (Exception e) {
- LOG.error(e);
+ LOG.error(e, e);
return BoolProto.newBuilder().setValue(false).build();
} finally {
rlock.unlock();
@@ -981,7 +981,7 @@ public class CatalogServer extends AbstractService {
}
store.dropIndex(databaseName, indexName);
} catch (Exception e) {
- LOG.error(e);
+ LOG.error(e, e);
} finally {
wlock.unlock();
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
index 04694b0..5c78f82 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/store/AbstractDBStore.java
@@ -154,7 +154,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try {
dropBaseTable();
} catch (Throwable t) {
- LOG.error(t);
+ LOG.error(t, t);
}
throw ce;
}
@@ -299,7 +299,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try {
conn.rollback();
} catch (SQLException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
}
throw new CatalogException(se);
@@ -363,7 +363,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try {
conn.rollback();
} catch (SQLException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
}
throw new CatalogException(String.format("Failed to drop tablespace \"%s\"", tableSpaceName), se);
@@ -523,7 +523,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try {
conn.rollback();
} catch (SQLException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
}
throw new CatalogException(se);
@@ -584,7 +584,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try {
conn.rollback();
} catch (SQLException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
}
throw new CatalogException(String.format("Failed to drop database \"%s\"", databaseName), se);
@@ -878,7 +878,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try {
conn.rollback();
} catch (SQLException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
}
throw new CatalogException(se);
@@ -946,7 +946,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try {
conn.rollback();
} catch (SQLException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
}
throw new CatalogException(se);
@@ -1292,7 +1292,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try {
conn.rollback();
} catch (SQLException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
} finally {
CatalogUtil.closeQuietly(conn);
@@ -1708,7 +1708,7 @@ public abstract class AbstractDBStore extends CatalogConstants implements Catalo
try {
conn.rollback();
} catch (SQLException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
}
throw new CatalogException(se);
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java b/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
index 79513dc..e472ee1 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
@@ -85,7 +85,7 @@ public class ExecutorPreCompiler extends BasicLogicalPlanVisitor<ExecutorPreComp
// If any compilation error occurs, it works in a fallback mode. This mode just uses EvalNode objects
// instead of a compiled EvalNode.
context.compiledEval.put(key, eval);
- LOG.warn(t);
+ LOG.warn(t, t);
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/engine/function/FunctionLoader.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/function/FunctionLoader.java b/tajo-core/src/main/java/org/apache/tajo/engine/function/FunctionLoader.java
index 334a92b..3b3e7c7 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/function/FunctionLoader.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/function/FunctionLoader.java
@@ -177,7 +177,7 @@ public class FunctionLoader {
try {
function = (Function)eachClass.newInstance();
} catch (Exception e) {
- LOG.warn(eachClass + " cannot instantiate Function class because of " + e.getMessage());
+ LOG.warn(eachClass + " cannot instantiate Function class because of " + e.getMessage(), e);
continue;
}
String functionName = function.getClass().getAnnotation(Description.class).functionName();
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
index f3dcf86..15d8034 100644
--- a/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
+++ b/tajo-core/src/main/java/org/apache/tajo/engine/planner/global/GlobalPlanner.java
@@ -660,7 +660,7 @@ public class GlobalPlanner {
throw new PlanningException("Cannot support a mix of other functions");
}
} catch (InternalException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
return rewritten;
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/master/QueryCoordinatorService.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/QueryCoordinatorService.java b/tajo-core/src/main/java/org/apache/tajo/master/QueryCoordinatorService.java
index 1cb3842..1b1d49e 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/QueryCoordinatorService.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/QueryCoordinatorService.java
@@ -66,7 +66,7 @@ public class QueryCoordinatorService extends AbstractService {
try {
server = new AsyncRpcServer(QueryCoordinatorProtocol.class, masterHandler, initIsa, workerNum);
} catch (Exception e) {
- LOG.error(e);
+ LOG.error(e, e);
}
server.start();
bindAddress = NetUtils.getConnectAddress(server.getListenAddress());
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java b/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java
index 9e50797..bfc7b9f 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/QueryInProgress.java
@@ -118,7 +118,7 @@ public class QueryInProgress {
try {
masterContext.getHistoryWriter().appendAndFlush(queryInfo);
} catch (Throwable e) {
- LOG.warn(e);
+ LOG.warn(e, e);
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java b/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java
index a502e4b..3c81540 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/QueryManager.java
@@ -135,7 +135,7 @@ public class QueryManager extends CompositeService {
}
return result;
} catch (Throwable e) {
- LOG.error(e);
+ LOG.error(e, e);
return Lists.newArrayList();
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java b/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
index 6f7c5a9..371dfb4 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
@@ -372,7 +372,7 @@ public class TajoMaster extends CompositeService {
try {
haService.delete();
} catch (Exception e) {
- LOG.error(e);
+ LOG.error(e, e);
}
}
@@ -380,7 +380,7 @@ public class TajoMaster extends CompositeService {
try {
webServer.stop();
} catch (Exception e) {
- LOG.error(e);
+ LOG.error(e, e);
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java b/tajo-core/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java
index e5cf66c..0d830ea 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/rm/TajoWorkerResourceManager.java
@@ -221,7 +221,7 @@ public class TajoWorkerResourceManager extends CompositeService implements Worke
try {
response = callFuture.get(3, TimeUnit.SECONDS);
} catch (Throwable t) {
- LOG.error(t);
+ LOG.error(t, t);
return null;
}
@@ -345,7 +345,7 @@ public class TajoWorkerResourceManager extends CompositeService implements Worke
} catch(InterruptedException ie) {
LOG.error(ie);
} catch (Throwable t) {
- LOG.error(t);
+ LOG.error(t, t);
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMaster.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMaster.java b/tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMaster.java
index bfaaca8..bf23133 100644
--- a/tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMaster.java
+++ b/tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMaster.java
@@ -220,7 +220,7 @@ public class QueryMaster extends CompositeService implements EventHandler {
tajoWorkerProtocolService.cleanup(null, queryId.getProto(), NullCallback.get());
} catch (Exception e) {
- LOG.error(e.getMessage());
+ LOG.error(e.getMessage(), e);
} finally {
connPool.releaseConnection(rpc);
}
@@ -375,7 +375,7 @@ public class QueryMaster extends CompositeService implements EventHandler {
query.context.getQueryMasterContext().getWorkerContext().
getTaskHistoryWriter().appendAndFlush(queryHisory);
} catch (Throwable e) {
- LOG.warn(e);
+ LOG.warn(e, e);
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/querymaster/Task.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/querymaster/Task.java b/tajo-core/src/main/java/org/apache/tajo/querymaster/Task.java
index 92f4b20..1da623e 100644
--- a/tajo-core/src/main/java/org/apache/tajo/querymaster/Task.java
+++ b/tajo-core/src/main/java/org/apache/tajo/querymaster/Task.java
@@ -272,7 +272,7 @@ public class Task implements EventHandler<TaskEvent> {
Fragment fragment = FragmentConvertor.convert(systemConf, eachFragment);
fragmentList.add(fragment.toString());
} catch (Exception e) {
- LOG.error(e.getMessage());
+ LOG.error(e.getMessage(), e);
fragmentList.add("ERROR: " + eachFragment.getStoreType() + "," + eachFragment.getId() + ": " + e.getMessage());
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/session/SessionManager.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/session/SessionManager.java b/tajo-core/src/main/java/org/apache/tajo/session/SessionManager.java
index 571144b..5d66b2b 100644
--- a/tajo-core/src/main/java/org/apache/tajo/session/SessionManager.java
+++ b/tajo-core/src/main/java/org/apache/tajo/session/SessionManager.java
@@ -131,7 +131,7 @@ public class SessionManager extends CompositeService implements EventHandler<Ses
assertSessionExistence(event.getSessionId());
touch(event.getSessionId());
} catch (InvalidSessionException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
if (event.getType() == SessionEventType.EXPIRE) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/util/history/HistoryWriter.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/util/history/HistoryWriter.java b/tajo-core/src/main/java/org/apache/tajo/util/history/HistoryWriter.java
index b06c7e8..f0c6c11 100644
--- a/tajo-core/src/main/java/org/apache/tajo/util/history/HistoryWriter.java
+++ b/tajo-core/src/main/java/org/apache/tajo/util/history/HistoryWriter.java
@@ -436,7 +436,7 @@ public class HistoryWriter extends AbstractService {
try {
holder.flush();
} catch (IOException e) {
- LOG.warn(e);
+ LOG.warn(e, e);
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java b/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
index e9b6230..da7981c 100644
--- a/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
+++ b/tajo-core/src/main/java/org/apache/tajo/webapp/QueryExecutorServlet.java
@@ -95,7 +95,7 @@ public class QueryExecutorServlet extends HttpServlet {
new QueryRunnerCleaner().start();
} catch (IOException e) {
- LOG.error(e.getMessage());
+ LOG.error(e.getMessage(), e);
}
}
@@ -469,7 +469,7 @@ public class QueryExecutorServlet extends HttpServlet {
try {
tajoClient.closeQuery(queryId);
} catch (Exception e) {
- LOG.warn(e);
+ LOG.warn(e, e);
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/worker/DeletionService.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/DeletionService.java b/tajo-core/src/main/java/org/apache/tajo/worker/DeletionService.java
index 42ea71f..b09d8d5 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/DeletionService.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/DeletionService.java
@@ -97,7 +97,7 @@ public class DeletionService {
try {
lfs.delete(subDir, true);
} catch (IOException e) {
- LOG.warn("Failed to delete " + subDir);
+ LOG.warn("Failed to delete " + subDir, e);
}
return;
}
@@ -107,7 +107,7 @@ public class DeletionService {
try {
lfs.delete(del, true);
} catch (IOException e) {
- LOG.warn("Failed to delete " + subDir);
+ LOG.warn("Failed to delete " + subDir, e);
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockContext.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockContext.java b/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockContext.java
index 813c502..a645689 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockContext.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockContext.java
@@ -178,7 +178,7 @@ public class ExecutionBlockContext {
try{
task.abort();
} catch (Throwable e){
- LOG.error(e);
+ LOG.error(e, e);
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockSharedResource.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockSharedResource.java b/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockSharedResource.java
index 67114a3..b193b24 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockSharedResource.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockSharedResource.java
@@ -99,7 +99,7 @@ public class ExecutionBlockSharedResource {
LOG.warn(eval.toString() + " does not exists. Immediately compile it: " + eval);
return compileEval(schema, eval);
} catch (Throwable t) {
- LOG.warn(t);
+ LOG.warn(t, t);
return eval;
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/worker/Fetcher.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/Fetcher.java b/tajo-core/src/main/java/org/apache/tajo/worker/Fetcher.java
index fc57a96..31599a3 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/Fetcher.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/Fetcher.java
@@ -243,7 +243,7 @@ public class Fetcher {
return;
}
} catch (Exception e) {
- LOG.error(e.getMessage());
+ LOG.error(e.getMessage(), e);
} finally {
ReferenceCountUtil.release(msg);
}
@@ -272,7 +272,7 @@ public class Fetcher {
}
}
} catch (Exception e) {
- LOG.error(e.getMessage());
+ LOG.error(e.getMessage(), e);
} finally {
ReferenceCountUtil.release(msg);
}
@@ -283,7 +283,7 @@ public class Fetcher {
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause)
throws Exception {
if (cause instanceof ReadTimeoutException) {
- LOG.warn(cause);
+ LOG.warn(cause, cause);
} else {
LOG.error("Fetch failed :", cause);
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java b/tajo-core/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
index 827c860..47a9fda 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
@@ -133,7 +133,7 @@ public class TajoResourceAllocator extends AbstractResourceAllocator {
try {
eachProxy.stopContainer();
} catch (Throwable e) {
- LOG.warn(e.getMessage());
+ LOG.warn(e.getMessage(), e);
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/Task.java b/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
index ef94337..524b09b 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
@@ -417,7 +417,7 @@ public class Task {
executor.close();
reloadInputStats();
} catch (IOException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
this.executor = null;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/worker/TaskRunner.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/TaskRunner.java b/tajo-core/src/main/java/org/apache/tajo/worker/TaskRunner.java
index 2cdebc8..79725f6 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/TaskRunner.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/TaskRunner.java
@@ -126,7 +126,7 @@ public class TaskRunner extends AbstractService {
LOG.info("TaskRunner basedir is created (" + baseDirPath +")");
} catch (Throwable t) {
t.printStackTrace();
- LOG.error(t);
+ LOG.error(t, t);
}
super.init(conf);
this.history.setState(getServiceState());
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/worker/WorkerHeartbeatService.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/WorkerHeartbeatService.java b/tajo-core/src/main/java/org/apache/tajo/worker/WorkerHeartbeatService.java
index 462f95d..5493b37 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/WorkerHeartbeatService.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/WorkerHeartbeatService.java
@@ -204,7 +204,7 @@ public class WorkerHeartbeatService extends AbstractService {
} catch (InterruptedException e) {
break;
} catch (TimeoutException te) {
- LOG.warn("Heartbeat response is being delayed.");
+ LOG.warn("Heartbeat response is being delayed.", te);
} catch (Exception e) {
LOG.error(e.getMessage(), e);
} finally {
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-core/src/main/java/org/apache/tajo/worker/rule/WorkerRuleProvider.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/rule/WorkerRuleProvider.java b/tajo-core/src/main/java/org/apache/tajo/worker/rule/WorkerRuleProvider.java
index 4094efd..81c2522 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/rule/WorkerRuleProvider.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/rule/WorkerRuleProvider.java
@@ -43,7 +43,7 @@ public class WorkerRuleProvider implements SelfDiagnosisRuleProvider {
try {
ruleList.add(ruleClazz.newInstance());
} catch (Exception e) {
- LOG.warn("Cannot instantiate " + ruleClazz.getName() + " class.");
+ LOG.warn("Cannot instantiate " + ruleClazz.getName() + " class.", e);
continue;
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java
----------------------------------------------------------------------
diff --git a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java
index 0919eee..2879540 100644
--- a/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java
+++ b/tajo-jdbc/src/main/java/org/apache/tajo/jdbc/JdbcConnection.java
@@ -276,10 +276,10 @@ public class JdbcConnection implements Connection {
return false;
}
} catch (ServiceException e) {
- LOG.error("TajoMaster is not available.");
+ LOG.error("TajoMaster is not available.", e);
return false;
} catch (IOException e) {
- LOG.error("JDBC connection is not valid.");
+ LOG.error("JDBC connection is not valid.", e);
return false;
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
index babcb1e..14fea08 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
@@ -1328,7 +1328,7 @@ public class LogicalPlanner extends BaseAlgebraVisitor<LogicalPlanner.PlanContex
}
}
} catch (Throwable t) {
- LOG.warn(t);
+ LOG.warn(t, t);
}
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-plan/src/main/java/org/apache/tajo/plan/exprrewrite/EvalTreeOptimizer.java
----------------------------------------------------------------------
diff --git a/tajo-plan/src/main/java/org/apache/tajo/plan/exprrewrite/EvalTreeOptimizer.java b/tajo-plan/src/main/java/org/apache/tajo/plan/exprrewrite/EvalTreeOptimizer.java
index 3bea6a4..a8a3ff3 100644
--- a/tajo-plan/src/main/java/org/apache/tajo/plan/exprrewrite/EvalTreeOptimizer.java
+++ b/tajo-plan/src/main/java/org/apache/tajo/plan/exprrewrite/EvalTreeOptimizer.java
@@ -50,7 +50,7 @@ public class EvalTreeOptimizer {
try {
rule = (EvalTreeOptimizationRule)eachRule.newInstance();
} catch (Exception e) {
- LOG.warn(eachRule + " cannot instantiate EvalTreeOptimizerRule class because of " + e.getMessage());
+ LOG.warn(eachRule + " cannot instantiate EvalTreeOptimizerRule class because of " + e.getMessage(), e);
continue;
}
rules.add(rule);
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java
----------------------------------------------------------------------
diff --git a/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java b/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java
index ce4018b..fba0593 100644
--- a/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java
+++ b/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerAuxService.java
@@ -214,7 +214,7 @@ public class PullServerAuxService extends AuxiliaryService {
localFS = new LocalFileSystem();
super.init(new Configuration(conf));
} catch (Throwable t) {
- LOG.error(t);
+ LOG.error(t, t);
}
}
@@ -269,7 +269,7 @@ public class PullServerAuxService extends AuxiliaryService {
localFS.close();
} catch (Throwable t) {
- LOG.error(t);
+ LOG.error(t, t);
} finally {
super.stop();
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerUtil.java
----------------------------------------------------------------------
diff --git a/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerUtil.java b/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerUtil.java
index 564950f..c90f1aa 100644
--- a/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerUtil.java
+++ b/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/PullServerUtil.java
@@ -79,7 +79,7 @@ public class PullServerUtil {
posixFadviseIfPossible = MethodUtils.getAccessibleMethod(posixClass, "posixFadviseIfPossible", parameters);
} catch (Throwable e) {
loaded = false;
- LOG.warn("Failed to access posixFadviseIfPossible :" + e.getMessage());
+ LOG.warn("Failed to access posixFadviseIfPossible :" + e.getMessage(), e);
}
if (posixFadviseIfPossible == null) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java
----------------------------------------------------------------------
diff --git a/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java b/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java
index f0dcd26..0744b9f 100644
--- a/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java
+++ b/tajo-pullserver/src/main/java/org/apache/tajo/pullserver/TajoPullServerService.java
@@ -223,7 +223,7 @@ public class TajoPullServerService extends AbstractService {
super.init(conf);
LOG.info("Tajo PullServer initialized: readaheadLength=" + readaheadLength);
} catch (Throwable t) {
- LOG.error(t);
+ LOG.error(t, t);
}
}
@@ -335,7 +335,7 @@ public class TajoPullServerService extends AbstractService {
localFS.close();
} catch (Throwable t) {
- LOG.error(t);
+ LOG.error(t, t);
} finally {
super.stop();
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java
----------------------------------------------------------------------
diff --git a/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java b/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java
index 1b45ac9..024108b 100644
--- a/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java
+++ b/tajo-rpc/src/main/java/org/apache/tajo/rpc/NettyServerBase.java
@@ -96,7 +96,7 @@ public class NettyServerBase {
int port = getUnusedPort();
serverAddr = new InetSocketAddress(initIsa.getHostName(), port);
} catch (IOException e) {
- LOG.error(e);
+ LOG.error(e, e);
}
} else {
serverAddr = initIsa;
http://git-wip-us.apache.org/repos/asf/tajo/blob/f1aeb734/tajo-rpc/src/main/java/org/apache/tajo/rpc/RpcConnectionPool.java
----------------------------------------------------------------------
diff --git a/tajo-rpc/src/main/java/org/apache/tajo/rpc/RpcConnectionPool.java b/tajo-rpc/src/main/java/org/apache/tajo/rpc/RpcConnectionPool.java
index 4ad9771..43feeb1 100644
--- a/tajo-rpc/src/main/java/org/apache/tajo/rpc/RpcConnectionPool.java
+++ b/tajo-rpc/src/main/java/org/apache/tajo/rpc/RpcConnectionPool.java
@@ -151,7 +151,7 @@ public class RpcConnectionPool {
try {
accepted.close();
} catch (Throwable t) {
- LOG.error(t);
+ LOG.error(t, t);
}
}
[11/12] tajo git commit: TAJO-1384: Duplicated output file path
problem. (jihoon)
Posted by ji...@apache.org.
TAJO-1384: Duplicated output file path problem. (jihoon)
Closes #406
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/513a8c30
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/513a8c30
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/513a8c30
Branch: refs/heads/index_support
Commit: 513a8c3086b889d9b701d5c97eda3fb8c5453834
Parents: 3b9a2e5
Author: Jihoon Son <ji...@apache.org>
Authored: Wed Mar 11 10:07:01 2015 +0900
Committer: Jihoon Son <ji...@apache.org>
Committed: Wed Mar 11 10:07:40 2015 +0900
----------------------------------------------------------------------
CHANGES | 2 +
.../org/apache/tajo/storage/StorageUtil.java | 30 ++++------
.../apache/tajo/storage/TestStorageUtil.java | 58 ++++++++++++++++++++
3 files changed, 72 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/513a8c30/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index dc1a5f7..68aabf5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -16,6 +16,8 @@ Release 0.11.0 - unreleased
BUG FIXES
+ TAJO-1384: Duplicated output file path problem. (jihoon)
+
TAJO-1386: CURRENT_DATE generates parsing errors sometimes.
(Contributed by navis, Committed by hyunsik)
http://git-wip-us.apache.org/repos/asf/tajo/blob/513a8c30/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageUtil.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageUtil.java b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageUtil.java
index 68e96d8..926b5d3 100644
--- a/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageUtil.java
+++ b/tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/StorageUtil.java
@@ -18,15 +18,10 @@
package org.apache.tajo.storage;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.tajo.catalog.Column;
-import org.apache.tajo.catalog.Schema;
-import org.apache.tajo.catalog.TableMeta;
-import org.apache.tajo.util.FileUtil;
import sun.nio.ch.DirectBuffer;
import java.io.DataInput;
@@ -34,8 +29,6 @@ import java.io.EOFException;
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.List;
public class StorageUtil extends StorageConstants {
@@ -119,32 +112,33 @@ public class StorageUtil extends StorageConstants {
}
int maxValue = -1;
- List<Path> fileNamePatternMatchedList = new ArrayList<Path>();
for (FileStatus eachFile: files) {
// In the case of partition table, return largest value within all partition dirs.
+ int value;
if (eachFile.isDirectory() && recursive) {
- int value = getMaxFileSequence(fs, eachFile.getPath(), recursive);
+ value = getMaxFileSequence(fs, eachFile.getPath(), recursive);
if (value > maxValue) {
maxValue = value;
}
} else {
if (eachFile.getPath().getName().matches(fileNamePatternV08) ||
eachFile.getPath().getName().matches(fileNamePatternV09)) {
- fileNamePatternMatchedList.add(eachFile.getPath());
+ value = getSequence(eachFile.getPath().getName());
+ if (value > maxValue) {
+ maxValue = value;
+ }
}
}
}
- if (fileNamePatternMatchedList.isEmpty()) {
- return maxValue;
- }
- Path lastFile = fileNamePatternMatchedList.get(fileNamePatternMatchedList.size() - 1);
- String pathName = lastFile.getName();
+ return maxValue;
+ }
- // 0.8: pathName = part-<ExecutionBlockId.seq>-<TaskId.seq>
- // 0.9: pathName = part-<ExecutionBlockId.seq>-<TaskId.seq>-<Sequence>
- String[] pathTokens = pathName.split("-");
+ // 0.8: pathName = part-<ExecutionBlockId.seq>-<TaskId.seq>
+ // 0.9: pathName = part-<ExecutionBlockId.seq>-<TaskId.seq>-<Sequence>
+ private static int getSequence(String name) {
+ String[] pathTokens = name.split("-");
if (pathTokens.length == 3) {
return -1;
} else if(pathTokens.length == 4) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/513a8c30/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorageUtil.java
----------------------------------------------------------------------
diff --git a/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorageUtil.java b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorageUtil.java
new file mode 100644
index 0000000..4b7c929
--- /dev/null
+++ b/tajo-storage/tajo-storage-hdfs/src/test/java/org/apache/tajo/storage/TestStorageUtil.java
@@ -0,0 +1,58 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tajo.storage;
+
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.tajo.conf.TajoConf;
+import org.apache.tajo.util.CommonTestingUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+
+public class TestStorageUtil {
+ private TajoConf conf;
+ private static String TEST_PATH = "target/test-data/TestStorageUtil";
+ private Path testDir;
+ private FileSystem fs;
+
+ @Before
+ public void setUp() throws Exception {
+ conf = new TajoConf();
+ testDir = CommonTestingUtil.getTestDir(TEST_PATH);
+ fs = testDir.getFileSystem(conf);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ @Test
+ public final void testGetMaxFileSequence() throws IOException {
+ for (int i = 0; i < 7; i++) {
+ fs.create(new Path(testDir, "part-00-00000-00"+i), false);
+ }
+
+ assertEquals(6, StorageUtil.getMaxFileSequence(fs, testDir, true));
+ }
+}
[05/12] tajo git commit: Add missed ASF license to relnotes.html.
Posted by ji...@apache.org.
Add missed ASF license to relnotes.html.
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/b839d372
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/b839d372
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/b839d372
Branch: refs/heads/index_support
Commit: b839d372a46bf653854288872de5ce78bac586ef
Parents: 42ef0dc
Author: Hyunsik Choi <hy...@apache.org>
Authored: Sun Mar 8 20:35:55 2015 -0700
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Sun Mar 8 20:35:55 2015 -0700
----------------------------------------------------------------------
.../site/resources/releases/0.10.0/relnotes.html | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/b839d372/tajo-project/src/site/resources/releases/0.10.0/relnotes.html
----------------------------------------------------------------------
diff --git a/tajo-project/src/site/resources/releases/0.10.0/relnotes.html b/tajo-project/src/site/resources/releases/0.10.0/relnotes.html
index 8958a51..6641a9f 100644
--- a/tajo-project/src/site/resources/releases/0.10.0/relnotes.html
+++ b/tajo-project/src/site/resources/releases/0.10.0/relnotes.html
@@ -1,3 +1,21 @@
+<!DOCTYPE html>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
<html>
<head>
<title>Release Notes - Tajo - Version 0.10.0</title>
[03/12] tajo git commit: TAJO-1370: TUtils.checkEquals() is not
consistent with description in javadoc.
Posted by ji...@apache.org.
TAJO-1370: TUtils.checkEquals() is not consistent with description in javadoc.
Closes #397
Signed-off-by: Hyunsik Choi <hy...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/6ba51c3c
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/6ba51c3c
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/6ba51c3c
Branch: refs/heads/index_support
Commit: 6ba51c3cd3f20ce9c7e945d78b0cd2c4eaefc362
Parents: f1aeb73
Author: navis.ryu <na...@apache.org>
Authored: Thu Mar 5 14:23:09 2015 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Sun Mar 8 14:54:11 2015 -0700
----------------------------------------------------------------------
CHANGES | 3 +++
tajo-common/src/main/java/org/apache/tajo/util/TUtil.java | 6 +++---
2 files changed, 6 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/6ba51c3c/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 003ae1a..9d986f1 100644
--- a/CHANGES
+++ b/CHANGES
@@ -16,6 +16,9 @@ Release 0.11.0 - unreleased
BUG FIXES
+ TAJO-1370 TUtils.checkEquals() is not consistent with description
+ in javadoc. (Contributed by navis, Committed by hyunsik)
+
TAJO-1362: Resolve findbug warnings on Tajo Core Module. (jihun)
TAJO-1366: The timestamp type conversion occasionally leads to wrong
http://git-wip-us.apache.org/repos/asf/tajo/blob/6ba51c3c/tajo-common/src/main/java/org/apache/tajo/util/TUtil.java
----------------------------------------------------------------------
diff --git a/tajo-common/src/main/java/org/apache/tajo/util/TUtil.java b/tajo-common/src/main/java/org/apache/tajo/util/TUtil.java
index 30ad04f..75f3e2a 100644
--- a/tajo-common/src/main/java/org/apache/tajo/util/TUtil.java
+++ b/tajo-common/src/main/java/org/apache/tajo/util/TUtil.java
@@ -50,10 +50,10 @@ public class TUtil {
* @return true if they are equal or all null
*/
public static boolean checkEquals(Collection<?> s1, Collection<?> s2) {
- if (s1 == null || s2 == null) {
- return false;
- } else if (s1 == null && s2 == null) {
+ if (s1 == null && s2 == null) {
return true;
+ } else if (s1 == null || s2 == null) {
+ return false;
} else {
if (s1.size() == 0 && s2.size() == 0) {
return true;