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);
+    }
+
+}