本文整理汇总了Golang中code/simon-critchley/co/uk/orc/proto.ColumnEncoding.GetKind方法的典型用法代码示例。如果您正苦于以下问题:Golang ColumnEncoding.GetKind方法的具体用法?Golang ColumnEncoding.GetKind怎么用?Golang ColumnEncoding.GetKind使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类code/simon-critchley/co/uk/orc/proto.ColumnEncoding
的用法示例。
在下文中一共展示了ColumnEncoding.GetKind方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NewStringTreeReader
// NewStringTreeReader returns a StringTreeReader implementation along with any error that occurs.s
func NewStringTreeReader(present, data, length, dictionary io.Reader, encoding *proto.ColumnEncoding) (StringTreeReader, error) {
switch kind := encoding.GetKind(); kind {
case proto.ColumnEncoding_DIRECT, proto.ColumnEncoding_DIRECT_V2:
return NewStringDirectTreeReader(present, data, length, kind)
case proto.ColumnEncoding_DICTIONARY, proto.ColumnEncoding_DICTIONARY_V2:
return NewStringDictionaryTreeReader(present, data, length, dictionary, encoding)
}
return nil, fmt.Errorf("unsupported column encoding: %s", encoding.GetKind())
}
示例2: NewIntegerTreeReader
// NewIntegerTreeReader returns a new IntegerReader or an error if one occurs.
func NewIntegerTreeReader(present, data io.Reader, encoding *proto.ColumnEncoding) (*IntegerTreeReader, error) {
ireader, err := createIntegerReader(encoding.GetKind(), data, true, false)
if err != nil {
return nil, err
}
return &IntegerTreeReader{
NewBaseTreeReader(present),
ireader,
}, nil
}
示例3: NewBinaryTreeReader
func NewBinaryTreeReader(present, data, length io.Reader, encoding *proto.ColumnEncoding) (*BinaryTreeReader, error) {
lengthReader, err := createIntegerReader(encoding.GetKind(), length, false, false)
if err != nil {
return nil, err
}
return &BinaryTreeReader{
BaseTreeReader: NewBaseTreeReader(present),
length: lengthReader,
data: data,
}, nil
}
示例4: NewListTreeReader
func NewListTreeReader(present, length io.Reader, value TreeReader, encoding *proto.ColumnEncoding) (*ListTreeReader, error) {
lengthReader, err := createIntegerReader(encoding.GetKind(), length, false, false)
if err != nil {
return nil, err
}
return &ListTreeReader{
BaseTreeReader: NewBaseTreeReader(present),
length: lengthReader,
value: value,
}, nil
}
示例5: NewDecimalTreeReader
// NewDecimalTreeReader returns a new instances of a DecimalTreeReader or an error if one occurs.
func NewDecimalTreeReader(present, data, secondary io.Reader, encoding *proto.ColumnEncoding, precision, scale int) (*DecimalTreeReader, error) {
ireader, err := createIntegerReader(encoding.GetKind(), secondary, true, false)
if err != nil {
return nil, err
}
return &DecimalTreeReader{
BaseTreeReader: NewBaseTreeReader(present),
data: bufio.NewReader(data),
secondary: ireader,
precision: precision,
scale: scale,
}, nil
}
示例6: NewTimestampTreeReader
// NewTimestampTreeReader returns a new TimestampTreeReader along with any error that occurs.
func NewTimestampTreeReader(present, data, secondary io.Reader, encoding *proto.ColumnEncoding) (*TimestampTreeReader, error) {
dataReader, err := createIntegerReader(encoding.GetKind(), data, true, false)
if err != nil {
return nil, err
}
secondaryReader, err := createIntegerReader(encoding.GetKind(), secondary, true, false)
if err != nil {
return nil, err
}
return &TimestampTreeReader{
BaseTreeReader: NewBaseTreeReader(present),
data: dataReader,
secondary: secondaryReader,
}, nil
}
示例7: readDictionaryLength
func (s *StringDictionaryTreeReader) readDictionaryLength(length io.Reader, encoding *proto.ColumnEncoding) error {
lreader, err := createIntegerReader(encoding.GetKind(), length, false, false)
if err != nil {
return err
}
var offset int
for lreader.Next() {
l := int(lreader.Int())
s.dictionaryLength = append(s.dictionaryLength, l)
s.dictionaryOffsets = append(s.dictionaryOffsets, offset)
offset += l
}
if err := lreader.Err(); err != nil && err != io.EOF {
return err
}
return nil
}
示例8: NewStringDictionaryTreeReader
func NewStringDictionaryTreeReader(present, data, length, dictionary io.Reader, encoding *proto.ColumnEncoding) (*StringDictionaryTreeReader, error) {
ireader, err := createIntegerReader(encoding.GetKind(), data, false, false)
if err != nil {
return nil, err
}
r := &StringDictionaryTreeReader{
BaseTreeReader: NewBaseTreeReader(present),
reader: ireader,
}
if dictionary != nil && encoding != nil {
err := r.readDictionaryStream(dictionary)
if err != nil {
return nil, err
}
if length != nil {
err = r.readDictionaryLength(length, encoding)
if err != nil {
return nil, err
}
}
}
return r, nil
}