You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by jd...@apache.org on 2015/03/22 11:08:35 UTC
[1/2] incubator-lens git commit: LENS-427 : NPE in CSVSerde (Sushil
Mohanty) via jdhok
Repository: incubator-lens
Updated Branches:
refs/heads/master 954ee08c7 -> 04217628a
LENS-427 : NPE in CSVSerde (Sushil Mohanty) via jdhok
Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/c9edc68d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/c9edc68d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/c9edc68d
Branch: refs/heads/master
Commit: c9edc68d85b37a33467d0010ff68dcccc6a8b101
Parents: 954ee08
Author: Sushil Mohanty <su...@inmobi.com>
Authored: Sun Mar 22 15:31:41 2015 +0530
Committer: jdhok <ja...@inmobi.com>
Committed: Sun Mar 22 15:31:41 2015 +0530
----------------------------------------------------------------------
.../src/main/java/org/apache/lens/lib/query/CSVSerde.java | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/c9edc68d/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java
----------------------------------------------------------------------
diff --git a/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java b/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java
index 3b8d5d2..9831456 100644
--- a/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java
+++ b/lens-query-lib/src/main/java/org/apache/lens/lib/query/CSVSerde.java
@@ -151,9 +151,12 @@ public final class CSVSerde extends AbstractSerDe {
@Override
public void initialize(final Configuration conf, final Properties tbl) throws SerDeException {
List<String> columnNames = new ArrayList<String>();
- String[] names = tbl.getProperty(LIST_COLUMNS).split("(?!\"),(?!\")");
- for (String name : names) {
- columnNames.add(StringEscapeUtils.unescapeCsv(name));
+
+ if (tbl.getProperty(LIST_COLUMNS) != null) {
+ String[] names = tbl.getProperty(LIST_COLUMNS).split("(?!\"),(?!\")");
+ for (String name : names) {
+ columnNames.add(StringEscapeUtils.unescapeCsv(name));
+ }
}
String columnTypeProperty = tbl.getProperty(LIST_COLUMN_TYPES);
columnTypes = TypeInfoUtils.getTypeInfosFromTypeString(columnTypeProperty);
@@ -472,6 +475,7 @@ public final class CSVSerde extends AbstractSerDe {
return Text.class;
}
+ @Override
public SerDeStats getSerDeStats() {
return null;
}
[2/2] incubator-lens git commit: LENS-429 : Examples failing with
parallel estimate (Amareshwari via jdhok)
Posted by jd...@apache.org.
LENS-429 : Examples failing with parallel estimate (Amareshwari via jdhok)
Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/04217628
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/04217628
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/04217628
Branch: refs/heads/master
Commit: 04217628ad3349d3397e7a7ac13929d5797d0493
Parents: c9edc68
Author: Amareshwari Sriramadasu <am...@apache.org>
Authored: Sun Mar 22 15:36:05 2015 +0530
Committer: jdhok <ja...@inmobi.com>
Committed: Sun Mar 22 15:36:05 2015 +0530
----------------------------------------------------------------------
.../apache/lens/cube/metadata/CubeColumn.java | 31 +++++++++++++-------
.../org/apache/lens/cube/parse/DateUtil.java | 14 +++++++--
2 files changed, 32 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/04217628/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
index 72a8bce..3618733 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeColumn.java
@@ -18,6 +18,7 @@
*/
package org.apache.lens.cube.metadata;
+import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
@@ -30,7 +31,14 @@ public abstract class CubeColumn implements Named {
private final Double cost;
private final String description;
private final String displayString;
- static SimpleDateFormat columnTimeFormat = new SimpleDateFormat("yyyy-MM-dd-HH");
+
+ static final ThreadLocal<DateFormat> COLUMN_TIME_FORMAT =
+ new ThreadLocal<DateFormat>() {
+ @Override
+ protected SimpleDateFormat initialValue() {
+ return new SimpleDateFormat("yyyy-MM-dd-HH");
+ }
+ };
public CubeColumn(String name, String description, String displayString, Date startTime, Date endTime, Double cost) {
assert (name != null);
@@ -46,7 +54,7 @@ public abstract class CubeColumn implements Named {
String timeKey = props.get(propKey);
if (timeKey != null) {
try {
- return columnTimeFormat.parse(timeKey);
+ return COLUMN_TIME_FORMAT.get().parse(timeKey);
} catch (Exception e) {
// ignore and return null
}
@@ -128,11 +136,11 @@ public abstract class CubeColumn implements Named {
}
if (startTime != null) {
builder.append("#start:");
- builder.append(columnTimeFormat.format(startTime));
+ builder.append(COLUMN_TIME_FORMAT.get().format(startTime));
}
if (endTime != null) {
builder.append("#end:");
- builder.append(columnTimeFormat.format(endTime));
+ builder.append(COLUMN_TIME_FORMAT.get().format(endTime));
}
if (cost != null) {
builder.append(":");
@@ -149,8 +157,9 @@ public abstract class CubeColumn implements Named {
result = prime * result + ((getDescription() == null) ? 0 : getDescription().toLowerCase().hashCode());
result = prime * result + ((getDisplayString() == null) ? 0 : getDisplayString().toLowerCase().hashCode());
result = prime * result + ((getName() == null) ? 0 : getName().toLowerCase().hashCode());
- result = prime * result + ((getStartTime() == null) ? 0 : columnTimeFormat.format(getStartTime()).hashCode());
- result = prime * result + ((getEndTime() == null) ? 0 : columnTimeFormat.format(getEndTime()).hashCode());
+ result = prime * result + ((getStartTime() == null) ? 0 : COLUMN_TIME_FORMAT.get().format(
+ getStartTime()).hashCode());
+ result = prime * result + ((getEndTime() == null) ? 0 : COLUMN_TIME_FORMAT.get().format(getEndTime()).hashCode());
result = prime * result + ((getCost() == null) ? 0 : getCost().hashCode());
return result;
}
@@ -197,7 +206,8 @@ public abstract class CubeColumn implements Named {
}
} else if (other.getStartTime() == null) {
return false;
- } else if (!columnTimeFormat.format(this.getStartTime()).equals(columnTimeFormat.format(other.getStartTime()))) {
+ } else if (!COLUMN_TIME_FORMAT.get().format(this.getStartTime()).equals(COLUMN_TIME_FORMAT.get().format(
+ other.getStartTime()))) {
return false;
}
@@ -207,7 +217,8 @@ public abstract class CubeColumn implements Named {
}
} else if (other.getEndTime() == null) {
return false;
- } else if (!columnTimeFormat.format(this.getEndTime()).equals(columnTimeFormat.format(other.getEndTime()))) {
+ } else if (!COLUMN_TIME_FORMAT.get().format(this.getEndTime()).equals(COLUMN_TIME_FORMAT.get().format(
+ other.getEndTime()))) {
return false;
}
@@ -229,10 +240,10 @@ public abstract class CubeColumn implements Named {
props.put(MetastoreUtil.getCubeColDisplayKey(getName()), displayString);
}
if (startTime != null) {
- props.put(MetastoreUtil.getCubeColStartTimePropertyKey(getName()), columnTimeFormat.format(startTime));
+ props.put(MetastoreUtil.getCubeColStartTimePropertyKey(getName()), COLUMN_TIME_FORMAT.get().format(startTime));
}
if (endTime != null) {
- props.put(MetastoreUtil.getCubeColEndTimePropertyKey(getName()), columnTimeFormat.format(endTime));
+ props.put(MetastoreUtil.getCubeColEndTimePropertyKey(getName()), COLUMN_TIME_FORMAT.get().format(endTime));
}
if (cost != null) {
props.put(MetastoreUtil.getCubeColCostPropertyKey(getName()), cost.toString());
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/04217628/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
index 6814ae8..1094e44 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/DateUtil.java
@@ -18,6 +18,7 @@
*/
package org.apache.lens.cube.parse;
+import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
@@ -72,10 +73,17 @@ public final class DateUtil {
public static final String MINUTE_FMT = HOUR_FMT + ":[0-9]{2}";
public static final String SECOND_FMT = MINUTE_FMT + ":[0-9]{2}";
public static final String ABSDATE_FMT = "yyyy-MM-dd-HH:mm:ss,SSS";
- public static final SimpleDateFormat ABSDATE_PARSER = new SimpleDateFormat(ABSDATE_FMT);
+
+ public static final ThreadLocal<DateFormat> ABSDATE_PARSER =
+ new ThreadLocal<DateFormat>() {
+ @Override
+ protected SimpleDateFormat initialValue() {
+ return new SimpleDateFormat(ABSDATE_FMT);
+ }
+ };
public static String formatDate(Date dt) {
- return ABSDATE_PARSER.format(dt);
+ return ABSDATE_PARSER.get().format(dt);
}
public static String getAbsDateFormatString(String str) {
@@ -102,7 +110,7 @@ public final class DateUtil {
return resolveRelativeDate(str, now);
} else {
try {
- return ABSDATE_PARSER.parse(getAbsDateFormatString(str));
+ return ABSDATE_PARSER.get().parse(getAbsDateFormatString(str));
} catch (ParseException e) {
LOG.error("Invalid date format. expected only " + ABSDATE_FMT + " date provided:" + str, e);
throw new SemanticException(e, ErrorMsg.WRONG_TIME_RANGE_FORMAT, ABSDATE_FMT, str);