You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by od...@apache.org on 2016/09/08 18:19:35 UTC
incubator-hawq git commit: HAWQ-1042. PXF throws NPE on quering HBase
table.
Repository: incubator-hawq
Updated Branches:
refs/heads/master b0cc5556c -> a3da49167
HAWQ-1042. PXF throws NPE on quering HBase table.
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/a3da4916
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/a3da4916
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/a3da4916
Branch: refs/heads/master
Commit: a3da49167b9d1dc3385446c71923ba96877c8ca9
Parents: b0cc555
Author: Oleksandr Diachenko <od...@pivotal.io>
Authored: Thu Sep 8 11:18:53 2016 -0700
Committer: Oleksandr Diachenko <od...@pivotal.io>
Committed: Thu Sep 8 11:18:53 2016 -0700
----------------------------------------------------------------------
.../pxf/api/utilities/ColumnDescriptor.java | 10 ++--
.../pxf/api/utilities/ColumnDescriptorTest.java | 50 ++++++++++++++++++++
2 files changed, 57 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a3da4916/pxf/pxf-api/src/main/java/org/apache/hawq/pxf/api/utilities/ColumnDescriptor.java
----------------------------------------------------------------------
diff --git a/pxf/pxf-api/src/main/java/org/apache/hawq/pxf/api/utilities/ColumnDescriptor.java b/pxf/pxf-api/src/main/java/org/apache/hawq/pxf/api/utilities/ColumnDescriptor.java
index a2bc8fe..7ae15e4 100644
--- a/pxf/pxf-api/src/main/java/org/apache/hawq/pxf/api/utilities/ColumnDescriptor.java
+++ b/pxf/pxf-api/src/main/java/org/apache/hawq/pxf/api/utilities/ColumnDescriptor.java
@@ -65,9 +65,13 @@ public class ColumnDescriptor {
this.dbColumnName = copy.dbColumnName;
this.dbColumnIndex = copy.dbColumnIndex;
this.dbColumnTypeName = copy.dbColumnTypeName;
- System.arraycopy(this.dbColumnTypeModifiers, 0,
- copy.dbColumnTypeModifiers, 0,
- this.dbColumnTypeModifiers.length);
+ if (copy.dbColumnTypeModifiers != null
+ && copy.dbColumnTypeModifiers.length > 0) {
+ this.dbColumnTypeModifiers = new Integer[copy.dbColumnTypeModifiers.length];
+ System.arraycopy(copy.dbColumnTypeModifiers, 0,
+ this.dbColumnTypeModifiers, 0,
+ copy.dbColumnTypeModifiers.length);
+ }
}
public String columnName() {
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/a3da4916/pxf/pxf-api/src/test/java/org/apache/hawq/pxf/api/utilities/ColumnDescriptorTest.java
----------------------------------------------------------------------
diff --git a/pxf/pxf-api/src/test/java/org/apache/hawq/pxf/api/utilities/ColumnDescriptorTest.java b/pxf/pxf-api/src/test/java/org/apache/hawq/pxf/api/utilities/ColumnDescriptorTest.java
new file mode 100644
index 0000000..25b907e
--- /dev/null
+++ b/pxf/pxf-api/src/test/java/org/apache/hawq/pxf/api/utilities/ColumnDescriptorTest.java
@@ -0,0 +1,50 @@
+package org.apache.hawq.pxf.api.utilities;
+
+/*
+ * 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.
+ */
+
+import org.apache.hawq.pxf.api.utilities.ColumnDescriptor;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import org.junit.Test;
+
+public class ColumnDescriptorTest {
+
+
+ @Test
+ public void testConstructor() {
+
+ ColumnDescriptor cd = new ColumnDescriptor("c1", 42, 0, "someDataType", new Integer[]{42, 46});
+
+ ColumnDescriptor clonned = new ColumnDescriptor(cd);
+
+ assertEquals(clonned.columnName(), cd.columnName());
+ assertEquals(clonned.columnTypeCode(), cd.columnTypeCode());
+ assertEquals(clonned.columnIndex(), cd.columnIndex());
+ assertEquals(clonned.columnTypeName(), cd.columnTypeName());
+ assertEquals(clonned.columnTypeModifiers(), cd.columnTypeModifiers());
+ assertEquals(clonned.isKeyColumn(), cd.isKeyColumn());
+
+ //Cloned instance should have reference to different array
+ assertFalse(clonned.columnTypeModifiers() == cd.columnTypeModifiers());
+
+ cd = new ColumnDescriptor(null, 0, 0, null, null);
+ }
+
+}