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() {