github.com/apache/arrow/go/v14@v14.0.2/parquet/internal/testutils/utils.go (about)

     1  // Licensed to the Apache Software Foundation (ASF) under one
     2  // or more contributor license agreements.  See the NOTICE file
     3  // distributed with this work for additional information
     4  // regarding copyright ownership.  The ASF licenses this file
     5  // to you under the Apache License, Version 2.0 (the
     6  // "License"); you may not use this file except in compliance
     7  // with the License.  You may obtain a copy of the License at
     8  //
     9  // http://www.apache.org/licenses/LICENSE-2.0
    10  //
    11  // Unless required by applicable law or agreed to in writing, software
    12  // distributed under the License is distributed on an "AS IS" BASIS,
    13  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  // See the License for the specific language governing permissions and
    15  // limitations under the License.
    16  
    17  package testutils
    18  
    19  import (
    20  	"reflect"
    21  
    22  	"github.com/apache/arrow/go/v14/parquet"
    23  )
    24  
    25  var typeToParquetTypeMap = map[reflect.Type]parquet.Type{
    26  	reflect.TypeOf(true):                        parquet.Types.Boolean,
    27  	reflect.TypeOf(int32(0)):                    parquet.Types.Int32,
    28  	reflect.TypeOf(int64(0)):                    parquet.Types.Int64,
    29  	reflect.TypeOf(float32(0)):                  parquet.Types.Float,
    30  	reflect.TypeOf(float64(0)):                  parquet.Types.Double,
    31  	reflect.TypeOf(parquet.ByteArray{}):         parquet.Types.ByteArray,
    32  	reflect.TypeOf(parquet.Int96{}):             parquet.Types.Int96,
    33  	reflect.TypeOf(parquet.FixedLenByteArray{}): parquet.Types.FixedLenByteArray,
    34  }
    35  
    36  func TypeToParquetType(typ reflect.Type) parquet.Type {
    37  	ret, ok := typeToParquetTypeMap[typ]
    38  	if !ok {
    39  		panic("invalid type for parquet type")
    40  	}
    41  	return ret
    42  }