You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by we...@apache.org on 2018/08/06 19:44:00 UTC

[arrow] branch master updated: ARROW-2964: [Go] wire all primitive arrays into array.MakeFromArray

This is an automated email from the ASF dual-hosted git repository.

wesm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new edfbf84  ARROW-2964: [Go] wire all primitive arrays into array.MakeFromArray
edfbf84 is described below

commit edfbf84beb6c8e7ac7036b0164bb4a2c5411512e
Author: Sebastien Binet <bi...@cern.ch>
AuthorDate: Mon Aug 6 15:43:56 2018 -0400

    ARROW-2964: [Go] wire all primitive arrays into array.MakeFromArray
    
    Author: Sebastien Binet <bi...@cern.ch>
    
    Closes #2364 from sbinet/make-array-fn and squashes the following commits:
    
    521a3c0a <Sebastien Binet> ARROW-2964:  wire all primitive arrays into array.MakeFromArray
---
 go/arrow/array/array.go      | 12 ++++++------
 go/arrow/array/array_test.go | 19 ++++++++++++++++++-
 2 files changed, 24 insertions(+), 7 deletions(-)

diff --git a/go/arrow/array/array.go b/go/arrow/array/array.go
index a789d75..d897690 100644
--- a/go/arrow/array/array.go
+++ b/go/arrow/array/array.go
@@ -136,16 +136,16 @@ var (
 	makeArrayFn = [...]arrayConstructorFn{
 		arrow.NULL:              unsupportedArrayType,
 		arrow.BOOL:              func(data *Data) Interface { return NewBooleanData(data) },
-		arrow.UINT8:             unsupportedArrayType,
-		arrow.INT8:              unsupportedArrayType,
-		arrow.UINT16:            unsupportedArrayType,
-		arrow.INT16:             unsupportedArrayType,
-		arrow.UINT32:            unsupportedArrayType,
+		arrow.UINT8:             func(data *Data) Interface { return NewUint8Data(data) },
+		arrow.INT8:              func(data *Data) Interface { return NewInt8Data(data) },
+		arrow.UINT16:            func(data *Data) Interface { return NewUint16Data(data) },
+		arrow.INT16:             func(data *Data) Interface { return NewInt16Data(data) },
+		arrow.UINT32:            func(data *Data) Interface { return NewUint32Data(data) },
 		arrow.INT32:             func(data *Data) Interface { return NewInt32Data(data) },
 		arrow.UINT64:            func(data *Data) Interface { return NewUint64Data(data) },
 		arrow.INT64:             func(data *Data) Interface { return NewInt64Data(data) },
 		arrow.HALF_FLOAT:        unsupportedArrayType,
-		arrow.FLOAT32:           unsupportedArrayType,
+		arrow.FLOAT32:           func(data *Data) Interface { return NewFloat32Data(data) },
 		arrow.FLOAT64:           func(data *Data) Interface { return NewFloat64Data(data) },
 		arrow.STRING:            unsupportedArrayType,
 		arrow.BINARY:            func(data *Data) Interface { return NewBinaryData(data) },
diff --git a/go/arrow/array/array_test.go b/go/arrow/array/array_test.go
index 6d505cf..4704016 100644
--- a/go/arrow/array/array_test.go
+++ b/go/arrow/array/array_test.go
@@ -37,6 +37,7 @@ func TestMakeFromData(t *testing.T) {
 	tests := []struct {
 		name     string
 		d        arrow.DataType
+		size     int
 		expPanic bool
 		expError string
 	}{
@@ -46,6 +47,18 @@ func TestMakeFromData(t *testing.T) {
 
 		// supported types
 		{name: "bool", d: &testDataType{arrow.BOOL}},
+		{name: "uint8", d: &testDataType{arrow.UINT8}},
+		{name: "uint16", d: &testDataType{arrow.UINT16}},
+		{name: "uint32", d: &testDataType{arrow.UINT32}},
+		{name: "uint64", d: &testDataType{arrow.UINT64}},
+		{name: "int8", d: &testDataType{arrow.INT8}},
+		{name: "int16", d: &testDataType{arrow.INT16}},
+		{name: "int32", d: &testDataType{arrow.INT32}},
+		{name: "int64", d: &testDataType{arrow.INT64}},
+		{name: "float32", d: &testDataType{arrow.FLOAT32}},
+		{name: "float64", d: &testDataType{arrow.FLOAT64}},
+		{name: "binary", d: &testDataType{arrow.BINARY}, size: 3},
+		{name: "timestamp", d: &testDataType{arrow.TIMESTAMP}},
 
 		// invalid types
 		{name: "invalid(-1)", d: &testDataType{arrow.Type(-1)}, expPanic: true, expError: "invalid data type: Type(-1)"},
@@ -54,7 +67,11 @@ func TestMakeFromData(t *testing.T) {
 	for _, test := range tests {
 		t.Run(test.name, func(t *testing.T) {
 			var b [4]*memory.Buffer
-			data := array.NewData(test.d, 0, b[:], 0)
+			var n = 4
+			if test.size != 0 {
+				n = test.size
+			}
+			data := array.NewData(test.d, 0, b[:n], 0)
 
 			if test.expPanic {
 				assert.PanicsWithValue(t, test.expError, func() {