Rebase minio/parquet-go and fix null handling. (#7067)

This commit is contained in:
Bala FA
2019-01-16 21:52:04 +05:30
committed by Nitish Tiwari
parent 63d2583e91
commit e23a42305c
8 changed files with 49 additions and 15 deletions

View File

@@ -71,7 +71,9 @@ func getColumns(
valueType: meta.GetType(),
}
nameIndexMap[columnName] = colIndex
// First element of []*parquet.SchemaElement from parquet file metadata is 'schema'
// which is always skipped, hence colIndex + 1 is valid.
nameIndexMap[columnName] = colIndex + 1
}
for name := range nameColumnMap {

View File

@@ -194,6 +194,8 @@ func readDoubles(reader *bytes.Reader, count uint64) (result []float64, err erro
func readByteArrays(reader *bytes.Reader, count uint64) (result [][]byte, err error) {
buf := make([]byte, 4)
var length uint32
var data []byte
var i uint64
for i = 0; i < count; i++ {
@@ -201,9 +203,12 @@ func readByteArrays(reader *bytes.Reader, count uint64) (result [][]byte, err er
return nil, err
}
data := make([]byte, bytesToUint32(buf))
if _, err = reader.Read(data); err != nil {
return nil, err
length = bytesToUint32(buf)
data = make([]byte, length)
if length > 0 {
if _, err = reader.Read(data); err != nil {
return nil, err
}
}
result = append(result, data)