storj.io/minio@v0.0.0-20230509071714-0cbc90f649b1/pkg/s3select/internal/parquet-go/gen-go/parquet/parquet.go (about)

     1  // Autogenerated by Thrift Compiler (0.10.0)
     2  // DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
     3  
     4  package parquet
     5  
     6  import (
     7  	"bytes"
     8  	"database/sql/driver"
     9  	"errors"
    10  	"fmt"
    11  
    12  	"git.apache.org/thrift.git/lib/go/thrift"
    13  )
    14  
    15  // (needed to ensure safety because of naive import list construction.)
    16  var _ = thrift.ZERO
    17  var _ = fmt.Printf
    18  var _ = bytes.Equal
    19  
    20  //Types supported by Parquet.  These types are intended to be used in combination
    21  //with the encodings to control the on disk storage format.
    22  //For example INT16 is not included as a type since a good encoding of INT32
    23  //would handle this.
    24  type Type int64
    25  
    26  const (
    27  	Type_BOOLEAN              Type = 0
    28  	Type_INT32                Type = 1
    29  	Type_INT64                Type = 2
    30  	Type_INT96                Type = 3
    31  	Type_FLOAT                Type = 4
    32  	Type_DOUBLE               Type = 5
    33  	Type_BYTE_ARRAY           Type = 6
    34  	Type_FIXED_LEN_BYTE_ARRAY Type = 7
    35  )
    36  
    37  func (p Type) String() string {
    38  	switch p {
    39  	case Type_BOOLEAN:
    40  		return "BOOLEAN"
    41  	case Type_INT32:
    42  		return "INT32"
    43  	case Type_INT64:
    44  		return "INT64"
    45  	case Type_INT96:
    46  		return "INT96"
    47  	case Type_FLOAT:
    48  		return "FLOAT"
    49  	case Type_DOUBLE:
    50  		return "DOUBLE"
    51  	case Type_BYTE_ARRAY:
    52  		return "BYTE_ARRAY"
    53  	case Type_FIXED_LEN_BYTE_ARRAY:
    54  		return "FIXED_LEN_BYTE_ARRAY"
    55  	}
    56  	return "<UNSET>"
    57  }
    58  
    59  func TypeFromString(s string) (Type, error) {
    60  	switch s {
    61  	case "BOOLEAN":
    62  		return Type_BOOLEAN, nil
    63  	case "INT32":
    64  		return Type_INT32, nil
    65  	case "INT64":
    66  		return Type_INT64, nil
    67  	case "INT96":
    68  		return Type_INT96, nil
    69  	case "FLOAT":
    70  		return Type_FLOAT, nil
    71  	case "DOUBLE":
    72  		return Type_DOUBLE, nil
    73  	case "BYTE_ARRAY":
    74  		return Type_BYTE_ARRAY, nil
    75  	case "FIXED_LEN_BYTE_ARRAY":
    76  		return Type_FIXED_LEN_BYTE_ARRAY, nil
    77  	}
    78  	return Type(0), fmt.Errorf("not a valid Type string")
    79  }
    80  
    81  func TypePtr(v Type) *Type { return &v }
    82  
    83  func (p Type) MarshalText() ([]byte, error) {
    84  	return []byte(p.String()), nil
    85  }
    86  
    87  func (p *Type) UnmarshalText(text []byte) error {
    88  	q, err := TypeFromString(string(text))
    89  	if err != nil {
    90  		return err
    91  	}
    92  	*p = q
    93  	return nil
    94  }
    95  
    96  func (p *Type) Scan(value interface{}) error {
    97  	v, ok := value.(int64)
    98  	if !ok {
    99  		return errors.New("Scan value is not int64")
   100  	}
   101  	*p = Type(v)
   102  	return nil
   103  }
   104  
   105  func (p *Type) Value() (driver.Value, error) {
   106  	if p == nil {
   107  		return nil, nil
   108  	}
   109  	return int64(*p), nil
   110  }
   111  
   112  //Common types used by frameworks(e.g. hive, pig) using parquet.  This helps map
   113  //between types in those frameworks to the base types in parquet.  This is only
   114  //metadata and not needed to read or write the data.
   115  type ConvertedType int64
   116  
   117  const (
   118  	ConvertedType_UTF8             ConvertedType = 0
   119  	ConvertedType_MAP              ConvertedType = 1
   120  	ConvertedType_MAP_KEY_VALUE    ConvertedType = 2
   121  	ConvertedType_LIST             ConvertedType = 3
   122  	ConvertedType_ENUM             ConvertedType = 4
   123  	ConvertedType_DECIMAL          ConvertedType = 5
   124  	ConvertedType_DATE             ConvertedType = 6
   125  	ConvertedType_TIME_MILLIS      ConvertedType = 7
   126  	ConvertedType_TIME_MICROS      ConvertedType = 8
   127  	ConvertedType_TIMESTAMP_MILLIS ConvertedType = 9
   128  	ConvertedType_TIMESTAMP_MICROS ConvertedType = 10
   129  	ConvertedType_UINT_8           ConvertedType = 11
   130  	ConvertedType_UINT_16          ConvertedType = 12
   131  	ConvertedType_UINT_32          ConvertedType = 13
   132  	ConvertedType_UINT_64          ConvertedType = 14
   133  	ConvertedType_INT_8            ConvertedType = 15
   134  	ConvertedType_INT_16           ConvertedType = 16
   135  	ConvertedType_INT_32           ConvertedType = 17
   136  	ConvertedType_INT_64           ConvertedType = 18
   137  	ConvertedType_JSON             ConvertedType = 19
   138  	ConvertedType_BSON             ConvertedType = 20
   139  	ConvertedType_INTERVAL         ConvertedType = 21
   140  )
   141  
   142  func (p ConvertedType) String() string {
   143  	switch p {
   144  	case ConvertedType_UTF8:
   145  		return "UTF8"
   146  	case ConvertedType_MAP:
   147  		return "MAP"
   148  	case ConvertedType_MAP_KEY_VALUE:
   149  		return "MAP_KEY_VALUE"
   150  	case ConvertedType_LIST:
   151  		return "LIST"
   152  	case ConvertedType_ENUM:
   153  		return "ENUM"
   154  	case ConvertedType_DECIMAL:
   155  		return "DECIMAL"
   156  	case ConvertedType_DATE:
   157  		return "DATE"
   158  	case ConvertedType_TIME_MILLIS:
   159  		return "TIME_MILLIS"
   160  	case ConvertedType_TIME_MICROS:
   161  		return "TIME_MICROS"
   162  	case ConvertedType_TIMESTAMP_MILLIS:
   163  		return "TIMESTAMP_MILLIS"
   164  	case ConvertedType_TIMESTAMP_MICROS:
   165  		return "TIMESTAMP_MICROS"
   166  	case ConvertedType_UINT_8:
   167  		return "UINT_8"
   168  	case ConvertedType_UINT_16:
   169  		return "UINT_16"
   170  	case ConvertedType_UINT_32:
   171  		return "UINT_32"
   172  	case ConvertedType_UINT_64:
   173  		return "UINT_64"
   174  	case ConvertedType_INT_8:
   175  		return "INT_8"
   176  	case ConvertedType_INT_16:
   177  		return "INT_16"
   178  	case ConvertedType_INT_32:
   179  		return "INT_32"
   180  	case ConvertedType_INT_64:
   181  		return "INT_64"
   182  	case ConvertedType_JSON:
   183  		return "JSON"
   184  	case ConvertedType_BSON:
   185  		return "BSON"
   186  	case ConvertedType_INTERVAL:
   187  		return "INTERVAL"
   188  	}
   189  	return "<UNSET>"
   190  }
   191  
   192  func ConvertedTypeFromString(s string) (ConvertedType, error) {
   193  	switch s {
   194  	case "UTF8":
   195  		return ConvertedType_UTF8, nil
   196  	case "MAP":
   197  		return ConvertedType_MAP, nil
   198  	case "MAP_KEY_VALUE":
   199  		return ConvertedType_MAP_KEY_VALUE, nil
   200  	case "LIST":
   201  		return ConvertedType_LIST, nil
   202  	case "ENUM":
   203  		return ConvertedType_ENUM, nil
   204  	case "DECIMAL":
   205  		return ConvertedType_DECIMAL, nil
   206  	case "DATE":
   207  		return ConvertedType_DATE, nil
   208  	case "TIME_MILLIS":
   209  		return ConvertedType_TIME_MILLIS, nil
   210  	case "TIME_MICROS":
   211  		return ConvertedType_TIME_MICROS, nil
   212  	case "TIMESTAMP_MILLIS":
   213  		return ConvertedType_TIMESTAMP_MILLIS, nil
   214  	case "TIMESTAMP_MICROS":
   215  		return ConvertedType_TIMESTAMP_MICROS, nil
   216  	case "UINT_8":
   217  		return ConvertedType_UINT_8, nil
   218  	case "UINT_16":
   219  		return ConvertedType_UINT_16, nil
   220  	case "UINT_32":
   221  		return ConvertedType_UINT_32, nil
   222  	case "UINT_64":
   223  		return ConvertedType_UINT_64, nil
   224  	case "INT_8":
   225  		return ConvertedType_INT_8, nil
   226  	case "INT_16":
   227  		return ConvertedType_INT_16, nil
   228  	case "INT_32":
   229  		return ConvertedType_INT_32, nil
   230  	case "INT_64":
   231  		return ConvertedType_INT_64, nil
   232  	case "JSON":
   233  		return ConvertedType_JSON, nil
   234  	case "BSON":
   235  		return ConvertedType_BSON, nil
   236  	case "INTERVAL":
   237  		return ConvertedType_INTERVAL, nil
   238  	}
   239  	return ConvertedType(0), fmt.Errorf("not a valid ConvertedType string")
   240  }
   241  
   242  func ConvertedTypePtr(v ConvertedType) *ConvertedType { return &v }
   243  
   244  func (p ConvertedType) MarshalText() ([]byte, error) {
   245  	return []byte(p.String()), nil
   246  }
   247  
   248  func (p *ConvertedType) UnmarshalText(text []byte) error {
   249  	q, err := ConvertedTypeFromString(string(text))
   250  	if err != nil {
   251  		return err
   252  	}
   253  	*p = q
   254  	return nil
   255  }
   256  
   257  func (p *ConvertedType) Scan(value interface{}) error {
   258  	v, ok := value.(int64)
   259  	if !ok {
   260  		return errors.New("Scan value is not int64")
   261  	}
   262  	*p = ConvertedType(v)
   263  	return nil
   264  }
   265  
   266  func (p *ConvertedType) Value() (driver.Value, error) {
   267  	if p == nil {
   268  		return nil, nil
   269  	}
   270  	return int64(*p), nil
   271  }
   272  
   273  //Representation of Schemas
   274  type FieldRepetitionType int64
   275  
   276  const (
   277  	FieldRepetitionType_REQUIRED FieldRepetitionType = 0
   278  	FieldRepetitionType_OPTIONAL FieldRepetitionType = 1
   279  	FieldRepetitionType_REPEATED FieldRepetitionType = 2
   280  )
   281  
   282  func (p FieldRepetitionType) String() string {
   283  	switch p {
   284  	case FieldRepetitionType_REQUIRED:
   285  		return "REQUIRED"
   286  	case FieldRepetitionType_OPTIONAL:
   287  		return "OPTIONAL"
   288  	case FieldRepetitionType_REPEATED:
   289  		return "REPEATED"
   290  	}
   291  	return "<UNSET>"
   292  }
   293  
   294  func FieldRepetitionTypeFromString(s string) (FieldRepetitionType, error) {
   295  	switch s {
   296  	case "REQUIRED":
   297  		return FieldRepetitionType_REQUIRED, nil
   298  	case "OPTIONAL":
   299  		return FieldRepetitionType_OPTIONAL, nil
   300  	case "REPEATED":
   301  		return FieldRepetitionType_REPEATED, nil
   302  	}
   303  	return FieldRepetitionType(0), fmt.Errorf("not a valid FieldRepetitionType string")
   304  }
   305  
   306  func FieldRepetitionTypePtr(v FieldRepetitionType) *FieldRepetitionType { return &v }
   307  
   308  func (p FieldRepetitionType) MarshalText() ([]byte, error) {
   309  	return []byte(p.String()), nil
   310  }
   311  
   312  func (p *FieldRepetitionType) UnmarshalText(text []byte) error {
   313  	q, err := FieldRepetitionTypeFromString(string(text))
   314  	if err != nil {
   315  		return err
   316  	}
   317  	*p = q
   318  	return nil
   319  }
   320  
   321  func (p *FieldRepetitionType) Scan(value interface{}) error {
   322  	v, ok := value.(int64)
   323  	if !ok {
   324  		return errors.New("Scan value is not int64")
   325  	}
   326  	*p = FieldRepetitionType(v)
   327  	return nil
   328  }
   329  
   330  func (p *FieldRepetitionType) Value() (driver.Value, error) {
   331  	if p == nil {
   332  		return nil, nil
   333  	}
   334  	return int64(*p), nil
   335  }
   336  
   337  //Encodings supported by Parquet.  Not all encodings are valid for all types.  These
   338  //enums are also used to specify the encoding of definition and repetition levels.
   339  //See the accompanying doc for the details of the more complicated encodings.
   340  type Encoding int64
   341  
   342  const (
   343  	Encoding_PLAIN                   Encoding = 0
   344  	Encoding_PLAIN_DICTIONARY        Encoding = 2
   345  	Encoding_RLE                     Encoding = 3
   346  	Encoding_BIT_PACKED              Encoding = 4
   347  	Encoding_DELTA_BINARY_PACKED     Encoding = 5
   348  	Encoding_DELTA_LENGTH_BYTE_ARRAY Encoding = 6
   349  	Encoding_DELTA_BYTE_ARRAY        Encoding = 7
   350  	Encoding_RLE_DICTIONARY          Encoding = 8
   351  )
   352  
   353  func (p Encoding) String() string {
   354  	switch p {
   355  	case Encoding_PLAIN:
   356  		return "PLAIN"
   357  	case Encoding_PLAIN_DICTIONARY:
   358  		return "PLAIN_DICTIONARY"
   359  	case Encoding_RLE:
   360  		return "RLE"
   361  	case Encoding_BIT_PACKED:
   362  		return "BIT_PACKED"
   363  	case Encoding_DELTA_BINARY_PACKED:
   364  		return "DELTA_BINARY_PACKED"
   365  	case Encoding_DELTA_LENGTH_BYTE_ARRAY:
   366  		return "DELTA_LENGTH_BYTE_ARRAY"
   367  	case Encoding_DELTA_BYTE_ARRAY:
   368  		return "DELTA_BYTE_ARRAY"
   369  	case Encoding_RLE_DICTIONARY:
   370  		return "RLE_DICTIONARY"
   371  	}
   372  	return "<UNSET>"
   373  }
   374  
   375  func EncodingFromString(s string) (Encoding, error) {
   376  	switch s {
   377  	case "PLAIN":
   378  		return Encoding_PLAIN, nil
   379  	case "PLAIN_DICTIONARY":
   380  		return Encoding_PLAIN_DICTIONARY, nil
   381  	case "RLE":
   382  		return Encoding_RLE, nil
   383  	case "BIT_PACKED":
   384  		return Encoding_BIT_PACKED, nil
   385  	case "DELTA_BINARY_PACKED":
   386  		return Encoding_DELTA_BINARY_PACKED, nil
   387  	case "DELTA_LENGTH_BYTE_ARRAY":
   388  		return Encoding_DELTA_LENGTH_BYTE_ARRAY, nil
   389  	case "DELTA_BYTE_ARRAY":
   390  		return Encoding_DELTA_BYTE_ARRAY, nil
   391  	case "RLE_DICTIONARY":
   392  		return Encoding_RLE_DICTIONARY, nil
   393  	}
   394  	return Encoding(0), fmt.Errorf("not a valid Encoding string")
   395  }
   396  
   397  func EncodingPtr(v Encoding) *Encoding { return &v }
   398  
   399  func (p Encoding) MarshalText() ([]byte, error) {
   400  	return []byte(p.String()), nil
   401  }
   402  
   403  func (p *Encoding) UnmarshalText(text []byte) error {
   404  	q, err := EncodingFromString(string(text))
   405  	if err != nil {
   406  		return err
   407  	}
   408  	*p = q
   409  	return nil
   410  }
   411  
   412  func (p *Encoding) Scan(value interface{}) error {
   413  	v, ok := value.(int64)
   414  	if !ok {
   415  		return errors.New("Scan value is not int64")
   416  	}
   417  	*p = Encoding(v)
   418  	return nil
   419  }
   420  
   421  func (p *Encoding) Value() (driver.Value, error) {
   422  	if p == nil {
   423  		return nil, nil
   424  	}
   425  	return int64(*p), nil
   426  }
   427  
   428  //Supported compression algorithms.
   429  //
   430  //Codecs added in 2.4 can be read by readers based on 2.4 and later.
   431  //Codec support may vary between readers based on the format version and
   432  //libraries available at runtime. Gzip, Snappy, and LZ4 codecs are
   433  //widely available, while Zstd and Brotli require additional libraries.
   434  type CompressionCodec int64
   435  
   436  const (
   437  	CompressionCodec_UNCOMPRESSED CompressionCodec = 0
   438  	CompressionCodec_SNAPPY       CompressionCodec = 1
   439  	CompressionCodec_GZIP         CompressionCodec = 2
   440  	CompressionCodec_LZO          CompressionCodec = 3
   441  	CompressionCodec_BROTLI       CompressionCodec = 4
   442  	CompressionCodec_LZ4          CompressionCodec = 5
   443  	CompressionCodec_ZSTD         CompressionCodec = 6
   444  )
   445  
   446  func (p CompressionCodec) String() string {
   447  	switch p {
   448  	case CompressionCodec_UNCOMPRESSED:
   449  		return "UNCOMPRESSED"
   450  	case CompressionCodec_SNAPPY:
   451  		return "SNAPPY"
   452  	case CompressionCodec_GZIP:
   453  		return "GZIP"
   454  	case CompressionCodec_LZO:
   455  		return "LZO"
   456  	case CompressionCodec_BROTLI:
   457  		return "BROTLI"
   458  	case CompressionCodec_LZ4:
   459  		return "LZ4"
   460  	case CompressionCodec_ZSTD:
   461  		return "ZSTD"
   462  	}
   463  	return "<UNSET>"
   464  }
   465  
   466  func CompressionCodecFromString(s string) (CompressionCodec, error) {
   467  	switch s {
   468  	case "UNCOMPRESSED":
   469  		return CompressionCodec_UNCOMPRESSED, nil
   470  	case "SNAPPY":
   471  		return CompressionCodec_SNAPPY, nil
   472  	case "GZIP":
   473  		return CompressionCodec_GZIP, nil
   474  	case "LZO":
   475  		return CompressionCodec_LZO, nil
   476  	case "BROTLI":
   477  		return CompressionCodec_BROTLI, nil
   478  	case "LZ4":
   479  		return CompressionCodec_LZ4, nil
   480  	case "ZSTD":
   481  		return CompressionCodec_ZSTD, nil
   482  	}
   483  	return CompressionCodec(0), fmt.Errorf("not a valid CompressionCodec string")
   484  }
   485  
   486  func CompressionCodecPtr(v CompressionCodec) *CompressionCodec { return &v }
   487  
   488  func (p CompressionCodec) MarshalText() ([]byte, error) {
   489  	return []byte(p.String()), nil
   490  }
   491  
   492  func (p *CompressionCodec) UnmarshalText(text []byte) error {
   493  	q, err := CompressionCodecFromString(string(text))
   494  	if err != nil {
   495  		return err
   496  	}
   497  	*p = q
   498  	return nil
   499  }
   500  
   501  func (p *CompressionCodec) Scan(value interface{}) error {
   502  	v, ok := value.(int64)
   503  	if !ok {
   504  		return errors.New("Scan value is not int64")
   505  	}
   506  	*p = CompressionCodec(v)
   507  	return nil
   508  }
   509  
   510  func (p *CompressionCodec) Value() (driver.Value, error) {
   511  	if p == nil {
   512  		return nil, nil
   513  	}
   514  	return int64(*p), nil
   515  }
   516  
   517  type PageType int64
   518  
   519  const (
   520  	PageType_DATA_PAGE       PageType = 0
   521  	PageType_INDEX_PAGE      PageType = 1
   522  	PageType_DICTIONARY_PAGE PageType = 2
   523  	PageType_DATA_PAGE_V2    PageType = 3
   524  )
   525  
   526  func (p PageType) String() string {
   527  	switch p {
   528  	case PageType_DATA_PAGE:
   529  		return "DATA_PAGE"
   530  	case PageType_INDEX_PAGE:
   531  		return "INDEX_PAGE"
   532  	case PageType_DICTIONARY_PAGE:
   533  		return "DICTIONARY_PAGE"
   534  	case PageType_DATA_PAGE_V2:
   535  		return "DATA_PAGE_V2"
   536  	}
   537  	return "<UNSET>"
   538  }
   539  
   540  func PageTypeFromString(s string) (PageType, error) {
   541  	switch s {
   542  	case "DATA_PAGE":
   543  		return PageType_DATA_PAGE, nil
   544  	case "INDEX_PAGE":
   545  		return PageType_INDEX_PAGE, nil
   546  	case "DICTIONARY_PAGE":
   547  		return PageType_DICTIONARY_PAGE, nil
   548  	case "DATA_PAGE_V2":
   549  		return PageType_DATA_PAGE_V2, nil
   550  	}
   551  	return PageType(0), fmt.Errorf("not a valid PageType string")
   552  }
   553  
   554  func PageTypePtr(v PageType) *PageType { return &v }
   555  
   556  func (p PageType) MarshalText() ([]byte, error) {
   557  	return []byte(p.String()), nil
   558  }
   559  
   560  func (p *PageType) UnmarshalText(text []byte) error {
   561  	q, err := PageTypeFromString(string(text))
   562  	if err != nil {
   563  		return err
   564  	}
   565  	*p = q
   566  	return nil
   567  }
   568  
   569  func (p *PageType) Scan(value interface{}) error {
   570  	v, ok := value.(int64)
   571  	if !ok {
   572  		return errors.New("Scan value is not int64")
   573  	}
   574  	*p = PageType(v)
   575  	return nil
   576  }
   577  
   578  func (p *PageType) Value() (driver.Value, error) {
   579  	if p == nil {
   580  		return nil, nil
   581  	}
   582  	return int64(*p), nil
   583  }
   584  
   585  //Enum to annotate whether lists of min/max elements inside ColumnIndex
   586  //are ordered and if so, in which direction.
   587  type BoundaryOrder int64
   588  
   589  const (
   590  	BoundaryOrder_UNORDERED  BoundaryOrder = 0
   591  	BoundaryOrder_ASCENDING  BoundaryOrder = 1
   592  	BoundaryOrder_DESCENDING BoundaryOrder = 2
   593  )
   594  
   595  func (p BoundaryOrder) String() string {
   596  	switch p {
   597  	case BoundaryOrder_UNORDERED:
   598  		return "UNORDERED"
   599  	case BoundaryOrder_ASCENDING:
   600  		return "ASCENDING"
   601  	case BoundaryOrder_DESCENDING:
   602  		return "DESCENDING"
   603  	}
   604  	return "<UNSET>"
   605  }
   606  
   607  func BoundaryOrderFromString(s string) (BoundaryOrder, error) {
   608  	switch s {
   609  	case "UNORDERED":
   610  		return BoundaryOrder_UNORDERED, nil
   611  	case "ASCENDING":
   612  		return BoundaryOrder_ASCENDING, nil
   613  	case "DESCENDING":
   614  		return BoundaryOrder_DESCENDING, nil
   615  	}
   616  	return BoundaryOrder(0), fmt.Errorf("not a valid BoundaryOrder string")
   617  }
   618  
   619  func BoundaryOrderPtr(v BoundaryOrder) *BoundaryOrder { return &v }
   620  
   621  func (p BoundaryOrder) MarshalText() ([]byte, error) {
   622  	return []byte(p.String()), nil
   623  }
   624  
   625  func (p *BoundaryOrder) UnmarshalText(text []byte) error {
   626  	q, err := BoundaryOrderFromString(string(text))
   627  	if err != nil {
   628  		return err
   629  	}
   630  	*p = q
   631  	return nil
   632  }
   633  
   634  func (p *BoundaryOrder) Scan(value interface{}) error {
   635  	v, ok := value.(int64)
   636  	if !ok {
   637  		return errors.New("Scan value is not int64")
   638  	}
   639  	*p = BoundaryOrder(v)
   640  	return nil
   641  }
   642  
   643  func (p *BoundaryOrder) Value() (driver.Value, error) {
   644  	if p == nil {
   645  		return nil, nil
   646  	}
   647  	return int64(*p), nil
   648  }
   649  
   650  // Statistics per row group and per page
   651  // All fields are optional.
   652  //
   653  // Attributes:
   654  //  - Max: DEPRECATED: min and max value of the column. Use min_value and max_value.
   655  //
   656  // Values are encoded using PLAIN encoding, except that variable-length byte
   657  // arrays do not include a length prefix.
   658  //
   659  // These fields encode min and max values determined by signed comparison
   660  // only. New files should use the correct order for a column's logical type
   661  // and store the values in the min_value and max_value fields.
   662  //
   663  // To support older readers, these may be set when the column order is
   664  // signed.
   665  //  - Min
   666  //  - NullCount: count of null value in the column
   667  //  - DistinctCount: count of distinct values occurring
   668  //  - MaxValue: Min and max values for the column, determined by its ColumnOrder.
   669  //
   670  // Values are encoded using PLAIN encoding, except that variable-length byte
   671  // arrays do not include a length prefix.
   672  //  - MinValue
   673  type Statistics struct {
   674  	Max           []byte `thrift:"max,1" db:"max" json:"max,omitempty"`
   675  	Min           []byte `thrift:"min,2" db:"min" json:"min,omitempty"`
   676  	NullCount     *int64 `thrift:"null_count,3" db:"null_count" json:"null_count,omitempty"`
   677  	DistinctCount *int64 `thrift:"distinct_count,4" db:"distinct_count" json:"distinct_count,omitempty"`
   678  	MaxValue      []byte `thrift:"max_value,5" db:"max_value" json:"max_value,omitempty"`
   679  	MinValue      []byte `thrift:"min_value,6" db:"min_value" json:"min_value,omitempty"`
   680  }
   681  
   682  func NewStatistics() *Statistics {
   683  	return &Statistics{}
   684  }
   685  
   686  var Statistics_Max_DEFAULT []byte
   687  
   688  func (p *Statistics) GetMax() []byte {
   689  	return p.Max
   690  }
   691  
   692  var Statistics_Min_DEFAULT []byte
   693  
   694  func (p *Statistics) GetMin() []byte {
   695  	return p.Min
   696  }
   697  
   698  var Statistics_NullCount_DEFAULT int64
   699  
   700  func (p *Statistics) GetNullCount() int64 {
   701  	if !p.IsSetNullCount() {
   702  		return Statistics_NullCount_DEFAULT
   703  	}
   704  	return *p.NullCount
   705  }
   706  
   707  var Statistics_DistinctCount_DEFAULT int64
   708  
   709  func (p *Statistics) GetDistinctCount() int64 {
   710  	if !p.IsSetDistinctCount() {
   711  		return Statistics_DistinctCount_DEFAULT
   712  	}
   713  	return *p.DistinctCount
   714  }
   715  
   716  var Statistics_MaxValue_DEFAULT []byte
   717  
   718  func (p *Statistics) GetMaxValue() []byte {
   719  	return p.MaxValue
   720  }
   721  
   722  var Statistics_MinValue_DEFAULT []byte
   723  
   724  func (p *Statistics) GetMinValue() []byte {
   725  	return p.MinValue
   726  }
   727  func (p *Statistics) IsSetMax() bool {
   728  	return p.Max != nil
   729  }
   730  
   731  func (p *Statistics) IsSetMin() bool {
   732  	return p.Min != nil
   733  }
   734  
   735  func (p *Statistics) IsSetNullCount() bool {
   736  	return p.NullCount != nil
   737  }
   738  
   739  func (p *Statistics) IsSetDistinctCount() bool {
   740  	return p.DistinctCount != nil
   741  }
   742  
   743  func (p *Statistics) IsSetMaxValue() bool {
   744  	return p.MaxValue != nil
   745  }
   746  
   747  func (p *Statistics) IsSetMinValue() bool {
   748  	return p.MinValue != nil
   749  }
   750  
   751  func (p *Statistics) Read(iprot thrift.TProtocol) error {
   752  	if _, err := iprot.ReadStructBegin(); err != nil {
   753  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
   754  	}
   755  
   756  	for {
   757  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
   758  		if err != nil {
   759  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
   760  		}
   761  		if fieldTypeId == thrift.STOP {
   762  			break
   763  		}
   764  		switch fieldId {
   765  		case 1:
   766  			if err := p.ReadField1(iprot); err != nil {
   767  				return err
   768  			}
   769  		case 2:
   770  			if err := p.ReadField2(iprot); err != nil {
   771  				return err
   772  			}
   773  		case 3:
   774  			if err := p.ReadField3(iprot); err != nil {
   775  				return err
   776  			}
   777  		case 4:
   778  			if err := p.ReadField4(iprot); err != nil {
   779  				return err
   780  			}
   781  		case 5:
   782  			if err := p.ReadField5(iprot); err != nil {
   783  				return err
   784  			}
   785  		case 6:
   786  			if err := p.ReadField6(iprot); err != nil {
   787  				return err
   788  			}
   789  		default:
   790  			if err := iprot.Skip(fieldTypeId); err != nil {
   791  				return err
   792  			}
   793  		}
   794  		if err := iprot.ReadFieldEnd(); err != nil {
   795  			return err
   796  		}
   797  	}
   798  	if err := iprot.ReadStructEnd(); err != nil {
   799  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
   800  	}
   801  	return nil
   802  }
   803  
   804  func (p *Statistics) ReadField1(iprot thrift.TProtocol) error {
   805  	if v, err := iprot.ReadBinary(); err != nil {
   806  		return thrift.PrependError("error reading field 1: ", err)
   807  	} else {
   808  		p.Max = v
   809  	}
   810  	return nil
   811  }
   812  
   813  func (p *Statistics) ReadField2(iprot thrift.TProtocol) error {
   814  	if v, err := iprot.ReadBinary(); err != nil {
   815  		return thrift.PrependError("error reading field 2: ", err)
   816  	} else {
   817  		p.Min = v
   818  	}
   819  	return nil
   820  }
   821  
   822  func (p *Statistics) ReadField3(iprot thrift.TProtocol) error {
   823  	if v, err := iprot.ReadI64(); err != nil {
   824  		return thrift.PrependError("error reading field 3: ", err)
   825  	} else {
   826  		p.NullCount = &v
   827  	}
   828  	return nil
   829  }
   830  
   831  func (p *Statistics) ReadField4(iprot thrift.TProtocol) error {
   832  	if v, err := iprot.ReadI64(); err != nil {
   833  		return thrift.PrependError("error reading field 4: ", err)
   834  	} else {
   835  		p.DistinctCount = &v
   836  	}
   837  	return nil
   838  }
   839  
   840  func (p *Statistics) ReadField5(iprot thrift.TProtocol) error {
   841  	if v, err := iprot.ReadBinary(); err != nil {
   842  		return thrift.PrependError("error reading field 5: ", err)
   843  	} else {
   844  		p.MaxValue = v
   845  	}
   846  	return nil
   847  }
   848  
   849  func (p *Statistics) ReadField6(iprot thrift.TProtocol) error {
   850  	if v, err := iprot.ReadBinary(); err != nil {
   851  		return thrift.PrependError("error reading field 6: ", err)
   852  	} else {
   853  		p.MinValue = v
   854  	}
   855  	return nil
   856  }
   857  
   858  func (p *Statistics) Write(oprot thrift.TProtocol) error {
   859  	if err := oprot.WriteStructBegin("Statistics"); err != nil {
   860  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
   861  	}
   862  	if p != nil {
   863  		if err := p.writeField1(oprot); err != nil {
   864  			return err
   865  		}
   866  		if err := p.writeField2(oprot); err != nil {
   867  			return err
   868  		}
   869  		if err := p.writeField3(oprot); err != nil {
   870  			return err
   871  		}
   872  		if err := p.writeField4(oprot); err != nil {
   873  			return err
   874  		}
   875  		if err := p.writeField5(oprot); err != nil {
   876  			return err
   877  		}
   878  		if err := p.writeField6(oprot); err != nil {
   879  			return err
   880  		}
   881  	}
   882  	if err := oprot.WriteFieldStop(); err != nil {
   883  		return thrift.PrependError("write field stop error: ", err)
   884  	}
   885  	if err := oprot.WriteStructEnd(); err != nil {
   886  		return thrift.PrependError("write struct stop error: ", err)
   887  	}
   888  	return nil
   889  }
   890  
   891  func (p *Statistics) writeField1(oprot thrift.TProtocol) (err error) {
   892  	if p.IsSetMax() {
   893  		if err := oprot.WriteFieldBegin("max", thrift.STRING, 1); err != nil {
   894  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:max: ", p), err)
   895  		}
   896  		if err := oprot.WriteBinary(p.Max); err != nil {
   897  			return thrift.PrependError(fmt.Sprintf("%T.max (1) field write error: ", p), err)
   898  		}
   899  		if err := oprot.WriteFieldEnd(); err != nil {
   900  			return thrift.PrependError(fmt.Sprintf("%T write field end error 1:max: ", p), err)
   901  		}
   902  	}
   903  	return err
   904  }
   905  
   906  func (p *Statistics) writeField2(oprot thrift.TProtocol) (err error) {
   907  	if p.IsSetMin() {
   908  		if err := oprot.WriteFieldBegin("min", thrift.STRING, 2); err != nil {
   909  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:min: ", p), err)
   910  		}
   911  		if err := oprot.WriteBinary(p.Min); err != nil {
   912  			return thrift.PrependError(fmt.Sprintf("%T.min (2) field write error: ", p), err)
   913  		}
   914  		if err := oprot.WriteFieldEnd(); err != nil {
   915  			return thrift.PrependError(fmt.Sprintf("%T write field end error 2:min: ", p), err)
   916  		}
   917  	}
   918  	return err
   919  }
   920  
   921  func (p *Statistics) writeField3(oprot thrift.TProtocol) (err error) {
   922  	if p.IsSetNullCount() {
   923  		if err := oprot.WriteFieldBegin("null_count", thrift.I64, 3); err != nil {
   924  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:null_count: ", p), err)
   925  		}
   926  		if err := oprot.WriteI64(*p.NullCount); err != nil {
   927  			return thrift.PrependError(fmt.Sprintf("%T.null_count (3) field write error: ", p), err)
   928  		}
   929  		if err := oprot.WriteFieldEnd(); err != nil {
   930  			return thrift.PrependError(fmt.Sprintf("%T write field end error 3:null_count: ", p), err)
   931  		}
   932  	}
   933  	return err
   934  }
   935  
   936  func (p *Statistics) writeField4(oprot thrift.TProtocol) (err error) {
   937  	if p.IsSetDistinctCount() {
   938  		if err := oprot.WriteFieldBegin("distinct_count", thrift.I64, 4); err != nil {
   939  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:distinct_count: ", p), err)
   940  		}
   941  		if err := oprot.WriteI64(*p.DistinctCount); err != nil {
   942  			return thrift.PrependError(fmt.Sprintf("%T.distinct_count (4) field write error: ", p), err)
   943  		}
   944  		if err := oprot.WriteFieldEnd(); err != nil {
   945  			return thrift.PrependError(fmt.Sprintf("%T write field end error 4:distinct_count: ", p), err)
   946  		}
   947  	}
   948  	return err
   949  }
   950  
   951  func (p *Statistics) writeField5(oprot thrift.TProtocol) (err error) {
   952  	if p.IsSetMaxValue() {
   953  		if err := oprot.WriteFieldBegin("max_value", thrift.STRING, 5); err != nil {
   954  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:max_value: ", p), err)
   955  		}
   956  		if err := oprot.WriteBinary(p.MaxValue); err != nil {
   957  			return thrift.PrependError(fmt.Sprintf("%T.max_value (5) field write error: ", p), err)
   958  		}
   959  		if err := oprot.WriteFieldEnd(); err != nil {
   960  			return thrift.PrependError(fmt.Sprintf("%T write field end error 5:max_value: ", p), err)
   961  		}
   962  	}
   963  	return err
   964  }
   965  
   966  func (p *Statistics) writeField6(oprot thrift.TProtocol) (err error) {
   967  	if p.IsSetMinValue() {
   968  		if err := oprot.WriteFieldBegin("min_value", thrift.STRING, 6); err != nil {
   969  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 6:min_value: ", p), err)
   970  		}
   971  		if err := oprot.WriteBinary(p.MinValue); err != nil {
   972  			return thrift.PrependError(fmt.Sprintf("%T.min_value (6) field write error: ", p), err)
   973  		}
   974  		if err := oprot.WriteFieldEnd(); err != nil {
   975  			return thrift.PrependError(fmt.Sprintf("%T write field end error 6:min_value: ", p), err)
   976  		}
   977  	}
   978  	return err
   979  }
   980  
   981  func (p *Statistics) String() string {
   982  	if p == nil {
   983  		return "<nil>"
   984  	}
   985  	return fmt.Sprintf("Statistics(%+v)", *p)
   986  }
   987  
   988  // Empty structs to use as logical type annotations
   989  type StringType struct {
   990  }
   991  
   992  func NewStringType() *StringType {
   993  	return &StringType{}
   994  }
   995  
   996  func (p *StringType) Read(iprot thrift.TProtocol) error {
   997  	if _, err := iprot.ReadStructBegin(); err != nil {
   998  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
   999  	}
  1000  
  1001  	for {
  1002  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1003  		if err != nil {
  1004  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1005  		}
  1006  		if fieldTypeId == thrift.STOP {
  1007  			break
  1008  		}
  1009  		if err := iprot.Skip(fieldTypeId); err != nil {
  1010  			return err
  1011  		}
  1012  		if err := iprot.ReadFieldEnd(); err != nil {
  1013  			return err
  1014  		}
  1015  	}
  1016  	if err := iprot.ReadStructEnd(); err != nil {
  1017  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1018  	}
  1019  	return nil
  1020  }
  1021  
  1022  func (p *StringType) Write(oprot thrift.TProtocol) error {
  1023  	if err := oprot.WriteStructBegin("StringType"); err != nil {
  1024  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1025  	}
  1026  	if p != nil {
  1027  	}
  1028  	if err := oprot.WriteFieldStop(); err != nil {
  1029  		return thrift.PrependError("write field stop error: ", err)
  1030  	}
  1031  	if err := oprot.WriteStructEnd(); err != nil {
  1032  		return thrift.PrependError("write struct stop error: ", err)
  1033  	}
  1034  	return nil
  1035  }
  1036  
  1037  func (p *StringType) String() string {
  1038  	if p == nil {
  1039  		return "<nil>"
  1040  	}
  1041  	return fmt.Sprintf("StringType(%+v)", *p)
  1042  }
  1043  
  1044  type UUIDType struct {
  1045  }
  1046  
  1047  func NewUUIDType() *UUIDType {
  1048  	return &UUIDType{}
  1049  }
  1050  
  1051  func (p *UUIDType) Read(iprot thrift.TProtocol) error {
  1052  	if _, err := iprot.ReadStructBegin(); err != nil {
  1053  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1054  	}
  1055  
  1056  	for {
  1057  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1058  		if err != nil {
  1059  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1060  		}
  1061  		if fieldTypeId == thrift.STOP {
  1062  			break
  1063  		}
  1064  		if err := iprot.Skip(fieldTypeId); err != nil {
  1065  			return err
  1066  		}
  1067  		if err := iprot.ReadFieldEnd(); err != nil {
  1068  			return err
  1069  		}
  1070  	}
  1071  	if err := iprot.ReadStructEnd(); err != nil {
  1072  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1073  	}
  1074  	return nil
  1075  }
  1076  
  1077  func (p *UUIDType) Write(oprot thrift.TProtocol) error {
  1078  	if err := oprot.WriteStructBegin("UUIDType"); err != nil {
  1079  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1080  	}
  1081  	if p != nil {
  1082  	}
  1083  	if err := oprot.WriteFieldStop(); err != nil {
  1084  		return thrift.PrependError("write field stop error: ", err)
  1085  	}
  1086  	if err := oprot.WriteStructEnd(); err != nil {
  1087  		return thrift.PrependError("write struct stop error: ", err)
  1088  	}
  1089  	return nil
  1090  }
  1091  
  1092  func (p *UUIDType) String() string {
  1093  	if p == nil {
  1094  		return "<nil>"
  1095  	}
  1096  	return fmt.Sprintf("UUIDType(%+v)", *p)
  1097  }
  1098  
  1099  type MapType struct {
  1100  }
  1101  
  1102  func NewMapType() *MapType {
  1103  	return &MapType{}
  1104  }
  1105  
  1106  func (p *MapType) Read(iprot thrift.TProtocol) error {
  1107  	if _, err := iprot.ReadStructBegin(); err != nil {
  1108  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1109  	}
  1110  
  1111  	for {
  1112  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1113  		if err != nil {
  1114  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1115  		}
  1116  		if fieldTypeId == thrift.STOP {
  1117  			break
  1118  		}
  1119  		if err := iprot.Skip(fieldTypeId); err != nil {
  1120  			return err
  1121  		}
  1122  		if err := iprot.ReadFieldEnd(); err != nil {
  1123  			return err
  1124  		}
  1125  	}
  1126  	if err := iprot.ReadStructEnd(); err != nil {
  1127  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1128  	}
  1129  	return nil
  1130  }
  1131  
  1132  func (p *MapType) Write(oprot thrift.TProtocol) error {
  1133  	if err := oprot.WriteStructBegin("MapType"); err != nil {
  1134  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1135  	}
  1136  	if p != nil {
  1137  	}
  1138  	if err := oprot.WriteFieldStop(); err != nil {
  1139  		return thrift.PrependError("write field stop error: ", err)
  1140  	}
  1141  	if err := oprot.WriteStructEnd(); err != nil {
  1142  		return thrift.PrependError("write struct stop error: ", err)
  1143  	}
  1144  	return nil
  1145  }
  1146  
  1147  func (p *MapType) String() string {
  1148  	if p == nil {
  1149  		return "<nil>"
  1150  	}
  1151  	return fmt.Sprintf("MapType(%+v)", *p)
  1152  }
  1153  
  1154  type ListType struct {
  1155  }
  1156  
  1157  func NewListType() *ListType {
  1158  	return &ListType{}
  1159  }
  1160  
  1161  func (p *ListType) Read(iprot thrift.TProtocol) error {
  1162  	if _, err := iprot.ReadStructBegin(); err != nil {
  1163  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1164  	}
  1165  
  1166  	for {
  1167  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1168  		if err != nil {
  1169  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1170  		}
  1171  		if fieldTypeId == thrift.STOP {
  1172  			break
  1173  		}
  1174  		if err := iprot.Skip(fieldTypeId); err != nil {
  1175  			return err
  1176  		}
  1177  		if err := iprot.ReadFieldEnd(); err != nil {
  1178  			return err
  1179  		}
  1180  	}
  1181  	if err := iprot.ReadStructEnd(); err != nil {
  1182  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1183  	}
  1184  	return nil
  1185  }
  1186  
  1187  func (p *ListType) Write(oprot thrift.TProtocol) error {
  1188  	if err := oprot.WriteStructBegin("ListType"); err != nil {
  1189  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1190  	}
  1191  	if p != nil {
  1192  	}
  1193  	if err := oprot.WriteFieldStop(); err != nil {
  1194  		return thrift.PrependError("write field stop error: ", err)
  1195  	}
  1196  	if err := oprot.WriteStructEnd(); err != nil {
  1197  		return thrift.PrependError("write struct stop error: ", err)
  1198  	}
  1199  	return nil
  1200  }
  1201  
  1202  func (p *ListType) String() string {
  1203  	if p == nil {
  1204  		return "<nil>"
  1205  	}
  1206  	return fmt.Sprintf("ListType(%+v)", *p)
  1207  }
  1208  
  1209  type EnumType struct {
  1210  }
  1211  
  1212  func NewEnumType() *EnumType {
  1213  	return &EnumType{}
  1214  }
  1215  
  1216  func (p *EnumType) Read(iprot thrift.TProtocol) error {
  1217  	if _, err := iprot.ReadStructBegin(); err != nil {
  1218  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1219  	}
  1220  
  1221  	for {
  1222  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1223  		if err != nil {
  1224  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1225  		}
  1226  		if fieldTypeId == thrift.STOP {
  1227  			break
  1228  		}
  1229  		if err := iprot.Skip(fieldTypeId); err != nil {
  1230  			return err
  1231  		}
  1232  		if err := iprot.ReadFieldEnd(); err != nil {
  1233  			return err
  1234  		}
  1235  	}
  1236  	if err := iprot.ReadStructEnd(); err != nil {
  1237  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1238  	}
  1239  	return nil
  1240  }
  1241  
  1242  func (p *EnumType) Write(oprot thrift.TProtocol) error {
  1243  	if err := oprot.WriteStructBegin("EnumType"); err != nil {
  1244  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1245  	}
  1246  	if p != nil {
  1247  	}
  1248  	if err := oprot.WriteFieldStop(); err != nil {
  1249  		return thrift.PrependError("write field stop error: ", err)
  1250  	}
  1251  	if err := oprot.WriteStructEnd(); err != nil {
  1252  		return thrift.PrependError("write struct stop error: ", err)
  1253  	}
  1254  	return nil
  1255  }
  1256  
  1257  func (p *EnumType) String() string {
  1258  	if p == nil {
  1259  		return "<nil>"
  1260  	}
  1261  	return fmt.Sprintf("EnumType(%+v)", *p)
  1262  }
  1263  
  1264  type DateType struct {
  1265  }
  1266  
  1267  func NewDateType() *DateType {
  1268  	return &DateType{}
  1269  }
  1270  
  1271  func (p *DateType) Read(iprot thrift.TProtocol) error {
  1272  	if _, err := iprot.ReadStructBegin(); err != nil {
  1273  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1274  	}
  1275  
  1276  	for {
  1277  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1278  		if err != nil {
  1279  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1280  		}
  1281  		if fieldTypeId == thrift.STOP {
  1282  			break
  1283  		}
  1284  		if err := iprot.Skip(fieldTypeId); err != nil {
  1285  			return err
  1286  		}
  1287  		if err := iprot.ReadFieldEnd(); err != nil {
  1288  			return err
  1289  		}
  1290  	}
  1291  	if err := iprot.ReadStructEnd(); err != nil {
  1292  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1293  	}
  1294  	return nil
  1295  }
  1296  
  1297  func (p *DateType) Write(oprot thrift.TProtocol) error {
  1298  	if err := oprot.WriteStructBegin("DateType"); err != nil {
  1299  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1300  	}
  1301  	if p != nil {
  1302  	}
  1303  	if err := oprot.WriteFieldStop(); err != nil {
  1304  		return thrift.PrependError("write field stop error: ", err)
  1305  	}
  1306  	if err := oprot.WriteStructEnd(); err != nil {
  1307  		return thrift.PrependError("write struct stop error: ", err)
  1308  	}
  1309  	return nil
  1310  }
  1311  
  1312  func (p *DateType) String() string {
  1313  	if p == nil {
  1314  		return "<nil>"
  1315  	}
  1316  	return fmt.Sprintf("DateType(%+v)", *p)
  1317  }
  1318  
  1319  // Logical type to annotate a column that is always null.
  1320  //
  1321  // Sometimes when discovering the schema of existing data, values are always
  1322  // null and the physical type can't be determined. This annotation signals
  1323  // the case where the physical type was guessed from all null values.
  1324  type NullType struct {
  1325  }
  1326  
  1327  func NewNullType() *NullType {
  1328  	return &NullType{}
  1329  }
  1330  
  1331  func (p *NullType) Read(iprot thrift.TProtocol) error {
  1332  	if _, err := iprot.ReadStructBegin(); err != nil {
  1333  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1334  	}
  1335  
  1336  	for {
  1337  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1338  		if err != nil {
  1339  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1340  		}
  1341  		if fieldTypeId == thrift.STOP {
  1342  			break
  1343  		}
  1344  		if err := iprot.Skip(fieldTypeId); err != nil {
  1345  			return err
  1346  		}
  1347  		if err := iprot.ReadFieldEnd(); err != nil {
  1348  			return err
  1349  		}
  1350  	}
  1351  	if err := iprot.ReadStructEnd(); err != nil {
  1352  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1353  	}
  1354  	return nil
  1355  }
  1356  
  1357  func (p *NullType) Write(oprot thrift.TProtocol) error {
  1358  	if err := oprot.WriteStructBegin("NullType"); err != nil {
  1359  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1360  	}
  1361  	if p != nil {
  1362  	}
  1363  	if err := oprot.WriteFieldStop(); err != nil {
  1364  		return thrift.PrependError("write field stop error: ", err)
  1365  	}
  1366  	if err := oprot.WriteStructEnd(); err != nil {
  1367  		return thrift.PrependError("write struct stop error: ", err)
  1368  	}
  1369  	return nil
  1370  }
  1371  
  1372  func (p *NullType) String() string {
  1373  	if p == nil {
  1374  		return "<nil>"
  1375  	}
  1376  	return fmt.Sprintf("NullType(%+v)", *p)
  1377  }
  1378  
  1379  // Decimal logical type annotation
  1380  //
  1381  // To maintain forward-compatibility in v1, implementations using this logical
  1382  // type must also set scale and precision on the annotated SchemaElement.
  1383  //
  1384  // Allowed for physical types: INT32, INT64, FIXED, and BINARY
  1385  //
  1386  // Attributes:
  1387  //  - Scale
  1388  //  - Precision
  1389  type DecimalType struct {
  1390  	Scale     int32 `thrift:"scale,1,required" db:"scale" json:"scale"`
  1391  	Precision int32 `thrift:"precision,2,required" db:"precision" json:"precision"`
  1392  }
  1393  
  1394  func NewDecimalType() *DecimalType {
  1395  	return &DecimalType{}
  1396  }
  1397  
  1398  func (p *DecimalType) GetScale() int32 {
  1399  	return p.Scale
  1400  }
  1401  
  1402  func (p *DecimalType) GetPrecision() int32 {
  1403  	return p.Precision
  1404  }
  1405  func (p *DecimalType) Read(iprot thrift.TProtocol) error {
  1406  	if _, err := iprot.ReadStructBegin(); err != nil {
  1407  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1408  	}
  1409  
  1410  	var issetScale bool = false
  1411  	var issetPrecision bool = false
  1412  
  1413  	for {
  1414  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1415  		if err != nil {
  1416  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1417  		}
  1418  		if fieldTypeId == thrift.STOP {
  1419  			break
  1420  		}
  1421  		switch fieldId {
  1422  		case 1:
  1423  			if err := p.ReadField1(iprot); err != nil {
  1424  				return err
  1425  			}
  1426  			issetScale = true
  1427  		case 2:
  1428  			if err := p.ReadField2(iprot); err != nil {
  1429  				return err
  1430  			}
  1431  			issetPrecision = true
  1432  		default:
  1433  			if err := iprot.Skip(fieldTypeId); err != nil {
  1434  				return err
  1435  			}
  1436  		}
  1437  		if err := iprot.ReadFieldEnd(); err != nil {
  1438  			return err
  1439  		}
  1440  	}
  1441  	if err := iprot.ReadStructEnd(); err != nil {
  1442  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1443  	}
  1444  	if !issetScale {
  1445  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Scale is not set"))
  1446  	}
  1447  	if !issetPrecision {
  1448  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Precision is not set"))
  1449  	}
  1450  	return nil
  1451  }
  1452  
  1453  func (p *DecimalType) ReadField1(iprot thrift.TProtocol) error {
  1454  	if v, err := iprot.ReadI32(); err != nil {
  1455  		return thrift.PrependError("error reading field 1: ", err)
  1456  	} else {
  1457  		p.Scale = v
  1458  	}
  1459  	return nil
  1460  }
  1461  
  1462  func (p *DecimalType) ReadField2(iprot thrift.TProtocol) error {
  1463  	if v, err := iprot.ReadI32(); err != nil {
  1464  		return thrift.PrependError("error reading field 2: ", err)
  1465  	} else {
  1466  		p.Precision = v
  1467  	}
  1468  	return nil
  1469  }
  1470  
  1471  func (p *DecimalType) Write(oprot thrift.TProtocol) error {
  1472  	if err := oprot.WriteStructBegin("DecimalType"); err != nil {
  1473  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1474  	}
  1475  	if p != nil {
  1476  		if err := p.writeField1(oprot); err != nil {
  1477  			return err
  1478  		}
  1479  		if err := p.writeField2(oprot); err != nil {
  1480  			return err
  1481  		}
  1482  	}
  1483  	if err := oprot.WriteFieldStop(); err != nil {
  1484  		return thrift.PrependError("write field stop error: ", err)
  1485  	}
  1486  	if err := oprot.WriteStructEnd(); err != nil {
  1487  		return thrift.PrependError("write struct stop error: ", err)
  1488  	}
  1489  	return nil
  1490  }
  1491  
  1492  func (p *DecimalType) writeField1(oprot thrift.TProtocol) (err error) {
  1493  	if err := oprot.WriteFieldBegin("scale", thrift.I32, 1); err != nil {
  1494  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:scale: ", p), err)
  1495  	}
  1496  	if err := oprot.WriteI32(p.Scale); err != nil {
  1497  		return thrift.PrependError(fmt.Sprintf("%T.scale (1) field write error: ", p), err)
  1498  	}
  1499  	if err := oprot.WriteFieldEnd(); err != nil {
  1500  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:scale: ", p), err)
  1501  	}
  1502  	return err
  1503  }
  1504  
  1505  func (p *DecimalType) writeField2(oprot thrift.TProtocol) (err error) {
  1506  	if err := oprot.WriteFieldBegin("precision", thrift.I32, 2); err != nil {
  1507  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:precision: ", p), err)
  1508  	}
  1509  	if err := oprot.WriteI32(p.Precision); err != nil {
  1510  		return thrift.PrependError(fmt.Sprintf("%T.precision (2) field write error: ", p), err)
  1511  	}
  1512  	if err := oprot.WriteFieldEnd(); err != nil {
  1513  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:precision: ", p), err)
  1514  	}
  1515  	return err
  1516  }
  1517  
  1518  func (p *DecimalType) String() string {
  1519  	if p == nil {
  1520  		return "<nil>"
  1521  	}
  1522  	return fmt.Sprintf("DecimalType(%+v)", *p)
  1523  }
  1524  
  1525  // Time units for logical types
  1526  type MilliSeconds struct {
  1527  }
  1528  
  1529  func NewMilliSeconds() *MilliSeconds {
  1530  	return &MilliSeconds{}
  1531  }
  1532  
  1533  func (p *MilliSeconds) Read(iprot thrift.TProtocol) error {
  1534  	if _, err := iprot.ReadStructBegin(); err != nil {
  1535  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1536  	}
  1537  
  1538  	for {
  1539  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1540  		if err != nil {
  1541  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1542  		}
  1543  		if fieldTypeId == thrift.STOP {
  1544  			break
  1545  		}
  1546  		if err := iprot.Skip(fieldTypeId); err != nil {
  1547  			return err
  1548  		}
  1549  		if err := iprot.ReadFieldEnd(); err != nil {
  1550  			return err
  1551  		}
  1552  	}
  1553  	if err := iprot.ReadStructEnd(); err != nil {
  1554  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1555  	}
  1556  	return nil
  1557  }
  1558  
  1559  func (p *MilliSeconds) Write(oprot thrift.TProtocol) error {
  1560  	if err := oprot.WriteStructBegin("MilliSeconds"); err != nil {
  1561  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1562  	}
  1563  	if p != nil {
  1564  	}
  1565  	if err := oprot.WriteFieldStop(); err != nil {
  1566  		return thrift.PrependError("write field stop error: ", err)
  1567  	}
  1568  	if err := oprot.WriteStructEnd(); err != nil {
  1569  		return thrift.PrependError("write struct stop error: ", err)
  1570  	}
  1571  	return nil
  1572  }
  1573  
  1574  func (p *MilliSeconds) String() string {
  1575  	if p == nil {
  1576  		return "<nil>"
  1577  	}
  1578  	return fmt.Sprintf("MilliSeconds(%+v)", *p)
  1579  }
  1580  
  1581  type MicroSeconds struct {
  1582  }
  1583  
  1584  func NewMicroSeconds() *MicroSeconds {
  1585  	return &MicroSeconds{}
  1586  }
  1587  
  1588  func (p *MicroSeconds) Read(iprot thrift.TProtocol) error {
  1589  	if _, err := iprot.ReadStructBegin(); err != nil {
  1590  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1591  	}
  1592  
  1593  	for {
  1594  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1595  		if err != nil {
  1596  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1597  		}
  1598  		if fieldTypeId == thrift.STOP {
  1599  			break
  1600  		}
  1601  		if err := iprot.Skip(fieldTypeId); err != nil {
  1602  			return err
  1603  		}
  1604  		if err := iprot.ReadFieldEnd(); err != nil {
  1605  			return err
  1606  		}
  1607  	}
  1608  	if err := iprot.ReadStructEnd(); err != nil {
  1609  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1610  	}
  1611  	return nil
  1612  }
  1613  
  1614  func (p *MicroSeconds) Write(oprot thrift.TProtocol) error {
  1615  	if err := oprot.WriteStructBegin("MicroSeconds"); err != nil {
  1616  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1617  	}
  1618  	if p != nil {
  1619  	}
  1620  	if err := oprot.WriteFieldStop(); err != nil {
  1621  		return thrift.PrependError("write field stop error: ", err)
  1622  	}
  1623  	if err := oprot.WriteStructEnd(); err != nil {
  1624  		return thrift.PrependError("write struct stop error: ", err)
  1625  	}
  1626  	return nil
  1627  }
  1628  
  1629  func (p *MicroSeconds) String() string {
  1630  	if p == nil {
  1631  		return "<nil>"
  1632  	}
  1633  	return fmt.Sprintf("MicroSeconds(%+v)", *p)
  1634  }
  1635  
  1636  type NanoSeconds struct {
  1637  }
  1638  
  1639  func NewNanoSeconds() *NanoSeconds {
  1640  	return &NanoSeconds{}
  1641  }
  1642  
  1643  func (p *NanoSeconds) Read(iprot thrift.TProtocol) error {
  1644  	if _, err := iprot.ReadStructBegin(); err != nil {
  1645  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1646  	}
  1647  
  1648  	for {
  1649  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1650  		if err != nil {
  1651  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1652  		}
  1653  		if fieldTypeId == thrift.STOP {
  1654  			break
  1655  		}
  1656  		if err := iprot.Skip(fieldTypeId); err != nil {
  1657  			return err
  1658  		}
  1659  		if err := iprot.ReadFieldEnd(); err != nil {
  1660  			return err
  1661  		}
  1662  	}
  1663  	if err := iprot.ReadStructEnd(); err != nil {
  1664  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1665  	}
  1666  	return nil
  1667  }
  1668  
  1669  func (p *NanoSeconds) Write(oprot thrift.TProtocol) error {
  1670  	if err := oprot.WriteStructBegin("NanoSeconds"); err != nil {
  1671  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1672  	}
  1673  	if p != nil {
  1674  	}
  1675  	if err := oprot.WriteFieldStop(); err != nil {
  1676  		return thrift.PrependError("write field stop error: ", err)
  1677  	}
  1678  	if err := oprot.WriteStructEnd(); err != nil {
  1679  		return thrift.PrependError("write struct stop error: ", err)
  1680  	}
  1681  	return nil
  1682  }
  1683  
  1684  func (p *NanoSeconds) String() string {
  1685  	if p == nil {
  1686  		return "<nil>"
  1687  	}
  1688  	return fmt.Sprintf("NanoSeconds(%+v)", *p)
  1689  }
  1690  
  1691  // Attributes:
  1692  //  - MILLIS
  1693  //  - MICROS
  1694  //  - NANOS
  1695  type TimeUnit struct {
  1696  	MILLIS *MilliSeconds `thrift:"MILLIS,1" db:"MILLIS" json:"MILLIS,omitempty"`
  1697  	MICROS *MicroSeconds `thrift:"MICROS,2" db:"MICROS" json:"MICROS,omitempty"`
  1698  	NANOS  *NanoSeconds  `thrift:"NANOS,3" db:"NANOS" json:"NANOS,omitempty"`
  1699  }
  1700  
  1701  func NewTimeUnit() *TimeUnit {
  1702  	return &TimeUnit{}
  1703  }
  1704  
  1705  var TimeUnit_MILLIS_DEFAULT *MilliSeconds
  1706  
  1707  func (p *TimeUnit) GetMILLIS() *MilliSeconds {
  1708  	if !p.IsSetMILLIS() {
  1709  		return TimeUnit_MILLIS_DEFAULT
  1710  	}
  1711  	return p.MILLIS
  1712  }
  1713  
  1714  var TimeUnit_MICROS_DEFAULT *MicroSeconds
  1715  
  1716  func (p *TimeUnit) GetMICROS() *MicroSeconds {
  1717  	if !p.IsSetMICROS() {
  1718  		return TimeUnit_MICROS_DEFAULT
  1719  	}
  1720  	return p.MICROS
  1721  }
  1722  
  1723  var TimeUnit_NANOS_DEFAULT *NanoSeconds
  1724  
  1725  func (p *TimeUnit) GetNANOS() *NanoSeconds {
  1726  	if !p.IsSetNANOS() {
  1727  		return TimeUnit_NANOS_DEFAULT
  1728  	}
  1729  	return p.NANOS
  1730  }
  1731  func (p *TimeUnit) CountSetFieldsTimeUnit() int {
  1732  	count := 0
  1733  	if p.IsSetMILLIS() {
  1734  		count++
  1735  	}
  1736  	if p.IsSetMICROS() {
  1737  		count++
  1738  	}
  1739  	if p.IsSetNANOS() {
  1740  		count++
  1741  	}
  1742  	return count
  1743  
  1744  }
  1745  
  1746  func (p *TimeUnit) IsSetMILLIS() bool {
  1747  	return p.MILLIS != nil
  1748  }
  1749  
  1750  func (p *TimeUnit) IsSetMICROS() bool {
  1751  	return p.MICROS != nil
  1752  }
  1753  
  1754  func (p *TimeUnit) IsSetNANOS() bool {
  1755  	return p.NANOS != nil
  1756  }
  1757  
  1758  func (p *TimeUnit) Read(iprot thrift.TProtocol) error {
  1759  	if _, err := iprot.ReadStructBegin(); err != nil {
  1760  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1761  	}
  1762  
  1763  	for {
  1764  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1765  		if err != nil {
  1766  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1767  		}
  1768  		if fieldTypeId == thrift.STOP {
  1769  			break
  1770  		}
  1771  		switch fieldId {
  1772  		case 1:
  1773  			if err := p.ReadField1(iprot); err != nil {
  1774  				return err
  1775  			}
  1776  		case 2:
  1777  			if err := p.ReadField2(iprot); err != nil {
  1778  				return err
  1779  			}
  1780  		case 3:
  1781  			if err := p.ReadField3(iprot); err != nil {
  1782  				return err
  1783  			}
  1784  		default:
  1785  			if err := iprot.Skip(fieldTypeId); err != nil {
  1786  				return err
  1787  			}
  1788  		}
  1789  		if err := iprot.ReadFieldEnd(); err != nil {
  1790  			return err
  1791  		}
  1792  	}
  1793  	if err := iprot.ReadStructEnd(); err != nil {
  1794  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1795  	}
  1796  	return nil
  1797  }
  1798  
  1799  func (p *TimeUnit) ReadField1(iprot thrift.TProtocol) error {
  1800  	p.MILLIS = &MilliSeconds{}
  1801  	if err := p.MILLIS.Read(iprot); err != nil {
  1802  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.MILLIS), err)
  1803  	}
  1804  	return nil
  1805  }
  1806  
  1807  func (p *TimeUnit) ReadField2(iprot thrift.TProtocol) error {
  1808  	p.MICROS = &MicroSeconds{}
  1809  	if err := p.MICROS.Read(iprot); err != nil {
  1810  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.MICROS), err)
  1811  	}
  1812  	return nil
  1813  }
  1814  
  1815  func (p *TimeUnit) ReadField3(iprot thrift.TProtocol) error {
  1816  	p.NANOS = &NanoSeconds{}
  1817  	if err := p.NANOS.Read(iprot); err != nil {
  1818  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.NANOS), err)
  1819  	}
  1820  	return nil
  1821  }
  1822  
  1823  func (p *TimeUnit) Write(oprot thrift.TProtocol) error {
  1824  	if c := p.CountSetFieldsTimeUnit(); c != 1 {
  1825  		return fmt.Errorf("%T write union: exactly one field must be set (%d set).", p, c)
  1826  	}
  1827  	if err := oprot.WriteStructBegin("TimeUnit"); err != nil {
  1828  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  1829  	}
  1830  	if p != nil {
  1831  		if err := p.writeField1(oprot); err != nil {
  1832  			return err
  1833  		}
  1834  		if err := p.writeField2(oprot); err != nil {
  1835  			return err
  1836  		}
  1837  		if err := p.writeField3(oprot); err != nil {
  1838  			return err
  1839  		}
  1840  	}
  1841  	if err := oprot.WriteFieldStop(); err != nil {
  1842  		return thrift.PrependError("write field stop error: ", err)
  1843  	}
  1844  	if err := oprot.WriteStructEnd(); err != nil {
  1845  		return thrift.PrependError("write struct stop error: ", err)
  1846  	}
  1847  	return nil
  1848  }
  1849  
  1850  func (p *TimeUnit) writeField1(oprot thrift.TProtocol) (err error) {
  1851  	if p.IsSetMILLIS() {
  1852  		if err := oprot.WriteFieldBegin("MILLIS", thrift.STRUCT, 1); err != nil {
  1853  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:MILLIS: ", p), err)
  1854  		}
  1855  		if err := p.MILLIS.Write(oprot); err != nil {
  1856  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.MILLIS), err)
  1857  		}
  1858  		if err := oprot.WriteFieldEnd(); err != nil {
  1859  			return thrift.PrependError(fmt.Sprintf("%T write field end error 1:MILLIS: ", p), err)
  1860  		}
  1861  	}
  1862  	return err
  1863  }
  1864  
  1865  func (p *TimeUnit) writeField2(oprot thrift.TProtocol) (err error) {
  1866  	if p.IsSetMICROS() {
  1867  		if err := oprot.WriteFieldBegin("MICROS", thrift.STRUCT, 2); err != nil {
  1868  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:MICROS: ", p), err)
  1869  		}
  1870  		if err := p.MICROS.Write(oprot); err != nil {
  1871  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.MICROS), err)
  1872  		}
  1873  		if err := oprot.WriteFieldEnd(); err != nil {
  1874  			return thrift.PrependError(fmt.Sprintf("%T write field end error 2:MICROS: ", p), err)
  1875  		}
  1876  	}
  1877  	return err
  1878  }
  1879  
  1880  func (p *TimeUnit) writeField3(oprot thrift.TProtocol) (err error) {
  1881  	if p.IsSetNANOS() {
  1882  		if err := oprot.WriteFieldBegin("NANOS", thrift.STRUCT, 3); err != nil {
  1883  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:NANOS: ", p), err)
  1884  		}
  1885  		if err := p.NANOS.Write(oprot); err != nil {
  1886  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.NANOS), err)
  1887  		}
  1888  		if err := oprot.WriteFieldEnd(); err != nil {
  1889  			return thrift.PrependError(fmt.Sprintf("%T write field end error 3:NANOS: ", p), err)
  1890  		}
  1891  	}
  1892  	return err
  1893  }
  1894  
  1895  func (p *TimeUnit) String() string {
  1896  	if p == nil {
  1897  		return "<nil>"
  1898  	}
  1899  	return fmt.Sprintf("TimeUnit(%+v)", *p)
  1900  }
  1901  
  1902  // Timestamp logical type annotation
  1903  //
  1904  // Allowed for physical types: INT64
  1905  //
  1906  // Attributes:
  1907  //  - IsAdjustedToUTC
  1908  //  - Unit
  1909  type TimestampType struct {
  1910  	IsAdjustedToUTC bool      `thrift:"isAdjustedToUTC,1,required" db:"isAdjustedToUTC" json:"isAdjustedToUTC"`
  1911  	Unit            *TimeUnit `thrift:"unit,2,required" db:"unit" json:"unit"`
  1912  }
  1913  
  1914  func NewTimestampType() *TimestampType {
  1915  	return &TimestampType{}
  1916  }
  1917  
  1918  func (p *TimestampType) GetIsAdjustedToUTC() bool {
  1919  	return p.IsAdjustedToUTC
  1920  }
  1921  
  1922  var TimestampType_Unit_DEFAULT *TimeUnit
  1923  
  1924  func (p *TimestampType) GetUnit() *TimeUnit {
  1925  	if !p.IsSetUnit() {
  1926  		return TimestampType_Unit_DEFAULT
  1927  	}
  1928  	return p.Unit
  1929  }
  1930  func (p *TimestampType) IsSetUnit() bool {
  1931  	return p.Unit != nil
  1932  }
  1933  
  1934  func (p *TimestampType) Read(iprot thrift.TProtocol) error {
  1935  	if _, err := iprot.ReadStructBegin(); err != nil {
  1936  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  1937  	}
  1938  
  1939  	var issetIsAdjustedToUTC bool = false
  1940  	var issetUnit bool = false
  1941  
  1942  	for {
  1943  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  1944  		if err != nil {
  1945  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  1946  		}
  1947  		if fieldTypeId == thrift.STOP {
  1948  			break
  1949  		}
  1950  		switch fieldId {
  1951  		case 1:
  1952  			if err := p.ReadField1(iprot); err != nil {
  1953  				return err
  1954  			}
  1955  			issetIsAdjustedToUTC = true
  1956  		case 2:
  1957  			if err := p.ReadField2(iprot); err != nil {
  1958  				return err
  1959  			}
  1960  			issetUnit = true
  1961  		default:
  1962  			if err := iprot.Skip(fieldTypeId); err != nil {
  1963  				return err
  1964  			}
  1965  		}
  1966  		if err := iprot.ReadFieldEnd(); err != nil {
  1967  			return err
  1968  		}
  1969  	}
  1970  	if err := iprot.ReadStructEnd(); err != nil {
  1971  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1972  	}
  1973  	if !issetIsAdjustedToUTC {
  1974  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field IsAdjustedToUTC is not set"))
  1975  	}
  1976  	if !issetUnit {
  1977  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Unit is not set"))
  1978  	}
  1979  	return nil
  1980  }
  1981  
  1982  func (p *TimestampType) ReadField1(iprot thrift.TProtocol) error {
  1983  	if v, err := iprot.ReadBool(); err != nil {
  1984  		return thrift.PrependError("error reading field 1: ", err)
  1985  	} else {
  1986  		p.IsAdjustedToUTC = v
  1987  	}
  1988  	return nil
  1989  }
  1990  
  1991  func (p *TimestampType) ReadField2(iprot thrift.TProtocol) error {
  1992  	p.Unit = &TimeUnit{}
  1993  	if err := p.Unit.Read(iprot); err != nil {
  1994  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.Unit), err)
  1995  	}
  1996  	return nil
  1997  }
  1998  
  1999  func (p *TimestampType) Write(oprot thrift.TProtocol) error {
  2000  	if err := oprot.WriteStructBegin("TimestampType"); err != nil {
  2001  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  2002  	}
  2003  	if p != nil {
  2004  		if err := p.writeField1(oprot); err != nil {
  2005  			return err
  2006  		}
  2007  		if err := p.writeField2(oprot); err != nil {
  2008  			return err
  2009  		}
  2010  	}
  2011  	if err := oprot.WriteFieldStop(); err != nil {
  2012  		return thrift.PrependError("write field stop error: ", err)
  2013  	}
  2014  	if err := oprot.WriteStructEnd(); err != nil {
  2015  		return thrift.PrependError("write struct stop error: ", err)
  2016  	}
  2017  	return nil
  2018  }
  2019  
  2020  func (p *TimestampType) writeField1(oprot thrift.TProtocol) (err error) {
  2021  	if err := oprot.WriteFieldBegin("isAdjustedToUTC", thrift.BOOL, 1); err != nil {
  2022  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:isAdjustedToUTC: ", p), err)
  2023  	}
  2024  	if err := oprot.WriteBool(p.IsAdjustedToUTC); err != nil {
  2025  		return thrift.PrependError(fmt.Sprintf("%T.isAdjustedToUTC (1) field write error: ", p), err)
  2026  	}
  2027  	if err := oprot.WriteFieldEnd(); err != nil {
  2028  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:isAdjustedToUTC: ", p), err)
  2029  	}
  2030  	return err
  2031  }
  2032  
  2033  func (p *TimestampType) writeField2(oprot thrift.TProtocol) (err error) {
  2034  	if err := oprot.WriteFieldBegin("unit", thrift.STRUCT, 2); err != nil {
  2035  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:unit: ", p), err)
  2036  	}
  2037  	if err := p.Unit.Write(oprot); err != nil {
  2038  		return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.Unit), err)
  2039  	}
  2040  	if err := oprot.WriteFieldEnd(); err != nil {
  2041  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:unit: ", p), err)
  2042  	}
  2043  	return err
  2044  }
  2045  
  2046  func (p *TimestampType) String() string {
  2047  	if p == nil {
  2048  		return "<nil>"
  2049  	}
  2050  	return fmt.Sprintf("TimestampType(%+v)", *p)
  2051  }
  2052  
  2053  // Time logical type annotation
  2054  //
  2055  // Allowed for physical types: INT32 (millis), INT64 (micros, nanos)
  2056  //
  2057  // Attributes:
  2058  //  - IsAdjustedToUTC
  2059  //  - Unit
  2060  type TimeType struct {
  2061  	IsAdjustedToUTC bool      `thrift:"isAdjustedToUTC,1,required" db:"isAdjustedToUTC" json:"isAdjustedToUTC"`
  2062  	Unit            *TimeUnit `thrift:"unit,2,required" db:"unit" json:"unit"`
  2063  }
  2064  
  2065  func NewTimeType() *TimeType {
  2066  	return &TimeType{}
  2067  }
  2068  
  2069  func (p *TimeType) GetIsAdjustedToUTC() bool {
  2070  	return p.IsAdjustedToUTC
  2071  }
  2072  
  2073  var TimeType_Unit_DEFAULT *TimeUnit
  2074  
  2075  func (p *TimeType) GetUnit() *TimeUnit {
  2076  	if !p.IsSetUnit() {
  2077  		return TimeType_Unit_DEFAULT
  2078  	}
  2079  	return p.Unit
  2080  }
  2081  func (p *TimeType) IsSetUnit() bool {
  2082  	return p.Unit != nil
  2083  }
  2084  
  2085  func (p *TimeType) Read(iprot thrift.TProtocol) error {
  2086  	if _, err := iprot.ReadStructBegin(); err != nil {
  2087  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  2088  	}
  2089  
  2090  	var issetIsAdjustedToUTC bool = false
  2091  	var issetUnit bool = false
  2092  
  2093  	for {
  2094  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  2095  		if err != nil {
  2096  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  2097  		}
  2098  		if fieldTypeId == thrift.STOP {
  2099  			break
  2100  		}
  2101  		switch fieldId {
  2102  		case 1:
  2103  			if err := p.ReadField1(iprot); err != nil {
  2104  				return err
  2105  			}
  2106  			issetIsAdjustedToUTC = true
  2107  		case 2:
  2108  			if err := p.ReadField2(iprot); err != nil {
  2109  				return err
  2110  			}
  2111  			issetUnit = true
  2112  		default:
  2113  			if err := iprot.Skip(fieldTypeId); err != nil {
  2114  				return err
  2115  			}
  2116  		}
  2117  		if err := iprot.ReadFieldEnd(); err != nil {
  2118  			return err
  2119  		}
  2120  	}
  2121  	if err := iprot.ReadStructEnd(); err != nil {
  2122  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  2123  	}
  2124  	if !issetIsAdjustedToUTC {
  2125  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field IsAdjustedToUTC is not set"))
  2126  	}
  2127  	if !issetUnit {
  2128  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Unit is not set"))
  2129  	}
  2130  	return nil
  2131  }
  2132  
  2133  func (p *TimeType) ReadField1(iprot thrift.TProtocol) error {
  2134  	if v, err := iprot.ReadBool(); err != nil {
  2135  		return thrift.PrependError("error reading field 1: ", err)
  2136  	} else {
  2137  		p.IsAdjustedToUTC = v
  2138  	}
  2139  	return nil
  2140  }
  2141  
  2142  func (p *TimeType) ReadField2(iprot thrift.TProtocol) error {
  2143  	p.Unit = &TimeUnit{}
  2144  	if err := p.Unit.Read(iprot); err != nil {
  2145  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.Unit), err)
  2146  	}
  2147  	return nil
  2148  }
  2149  
  2150  func (p *TimeType) Write(oprot thrift.TProtocol) error {
  2151  	if err := oprot.WriteStructBegin("TimeType"); err != nil {
  2152  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  2153  	}
  2154  	if p != nil {
  2155  		if err := p.writeField1(oprot); err != nil {
  2156  			return err
  2157  		}
  2158  		if err := p.writeField2(oprot); err != nil {
  2159  			return err
  2160  		}
  2161  	}
  2162  	if err := oprot.WriteFieldStop(); err != nil {
  2163  		return thrift.PrependError("write field stop error: ", err)
  2164  	}
  2165  	if err := oprot.WriteStructEnd(); err != nil {
  2166  		return thrift.PrependError("write struct stop error: ", err)
  2167  	}
  2168  	return nil
  2169  }
  2170  
  2171  func (p *TimeType) writeField1(oprot thrift.TProtocol) (err error) {
  2172  	if err := oprot.WriteFieldBegin("isAdjustedToUTC", thrift.BOOL, 1); err != nil {
  2173  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:isAdjustedToUTC: ", p), err)
  2174  	}
  2175  	if err := oprot.WriteBool(p.IsAdjustedToUTC); err != nil {
  2176  		return thrift.PrependError(fmt.Sprintf("%T.isAdjustedToUTC (1) field write error: ", p), err)
  2177  	}
  2178  	if err := oprot.WriteFieldEnd(); err != nil {
  2179  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:isAdjustedToUTC: ", p), err)
  2180  	}
  2181  	return err
  2182  }
  2183  
  2184  func (p *TimeType) writeField2(oprot thrift.TProtocol) (err error) {
  2185  	if err := oprot.WriteFieldBegin("unit", thrift.STRUCT, 2); err != nil {
  2186  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:unit: ", p), err)
  2187  	}
  2188  	if err := p.Unit.Write(oprot); err != nil {
  2189  		return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.Unit), err)
  2190  	}
  2191  	if err := oprot.WriteFieldEnd(); err != nil {
  2192  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:unit: ", p), err)
  2193  	}
  2194  	return err
  2195  }
  2196  
  2197  func (p *TimeType) String() string {
  2198  	if p == nil {
  2199  		return "<nil>"
  2200  	}
  2201  	return fmt.Sprintf("TimeType(%+v)", *p)
  2202  }
  2203  
  2204  // Integer logical type annotation
  2205  //
  2206  // bitWidth must be 8, 16, 32, or 64.
  2207  //
  2208  // Allowed for physical types: INT32, INT64
  2209  //
  2210  // Attributes:
  2211  //  - BitWidth
  2212  //  - IsSigned
  2213  type IntType struct {
  2214  	BitWidth int8 `thrift:"bitWidth,1,required" db:"bitWidth" json:"bitWidth"`
  2215  	IsSigned bool `thrift:"isSigned,2,required" db:"isSigned" json:"isSigned"`
  2216  }
  2217  
  2218  func NewIntType() *IntType {
  2219  	return &IntType{}
  2220  }
  2221  
  2222  func (p *IntType) GetBitWidth() int8 {
  2223  	return p.BitWidth
  2224  }
  2225  
  2226  func (p *IntType) GetIsSigned() bool {
  2227  	return p.IsSigned
  2228  }
  2229  func (p *IntType) Read(iprot thrift.TProtocol) error {
  2230  	if _, err := iprot.ReadStructBegin(); err != nil {
  2231  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  2232  	}
  2233  
  2234  	var issetBitWidth bool = false
  2235  	var issetIsSigned bool = false
  2236  
  2237  	for {
  2238  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  2239  		if err != nil {
  2240  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  2241  		}
  2242  		if fieldTypeId == thrift.STOP {
  2243  			break
  2244  		}
  2245  		switch fieldId {
  2246  		case 1:
  2247  			if err := p.ReadField1(iprot); err != nil {
  2248  				return err
  2249  			}
  2250  			issetBitWidth = true
  2251  		case 2:
  2252  			if err := p.ReadField2(iprot); err != nil {
  2253  				return err
  2254  			}
  2255  			issetIsSigned = true
  2256  		default:
  2257  			if err := iprot.Skip(fieldTypeId); err != nil {
  2258  				return err
  2259  			}
  2260  		}
  2261  		if err := iprot.ReadFieldEnd(); err != nil {
  2262  			return err
  2263  		}
  2264  	}
  2265  	if err := iprot.ReadStructEnd(); err != nil {
  2266  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  2267  	}
  2268  	if !issetBitWidth {
  2269  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field BitWidth is not set"))
  2270  	}
  2271  	if !issetIsSigned {
  2272  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field IsSigned is not set"))
  2273  	}
  2274  	return nil
  2275  }
  2276  
  2277  func (p *IntType) ReadField1(iprot thrift.TProtocol) error {
  2278  	if v, err := iprot.ReadByte(); err != nil {
  2279  		return thrift.PrependError("error reading field 1: ", err)
  2280  	} else {
  2281  		temp := v
  2282  		p.BitWidth = temp
  2283  	}
  2284  	return nil
  2285  }
  2286  
  2287  func (p *IntType) ReadField2(iprot thrift.TProtocol) error {
  2288  	if v, err := iprot.ReadBool(); err != nil {
  2289  		return thrift.PrependError("error reading field 2: ", err)
  2290  	} else {
  2291  		p.IsSigned = v
  2292  	}
  2293  	return nil
  2294  }
  2295  
  2296  func (p *IntType) Write(oprot thrift.TProtocol) error {
  2297  	if err := oprot.WriteStructBegin("IntType"); err != nil {
  2298  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  2299  	}
  2300  	if p != nil {
  2301  		if err := p.writeField1(oprot); err != nil {
  2302  			return err
  2303  		}
  2304  		if err := p.writeField2(oprot); err != nil {
  2305  			return err
  2306  		}
  2307  	}
  2308  	if err := oprot.WriteFieldStop(); err != nil {
  2309  		return thrift.PrependError("write field stop error: ", err)
  2310  	}
  2311  	if err := oprot.WriteStructEnd(); err != nil {
  2312  		return thrift.PrependError("write struct stop error: ", err)
  2313  	}
  2314  	return nil
  2315  }
  2316  
  2317  func (p *IntType) writeField1(oprot thrift.TProtocol) (err error) {
  2318  	if err := oprot.WriteFieldBegin("bitWidth", thrift.BYTE, 1); err != nil {
  2319  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:bitWidth: ", p), err)
  2320  	}
  2321  	if err := oprot.WriteByte(p.BitWidth); err != nil {
  2322  		return thrift.PrependError(fmt.Sprintf("%T.bitWidth (1) field write error: ", p), err)
  2323  	}
  2324  	if err := oprot.WriteFieldEnd(); err != nil {
  2325  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:bitWidth: ", p), err)
  2326  	}
  2327  	return err
  2328  }
  2329  
  2330  func (p *IntType) writeField2(oprot thrift.TProtocol) (err error) {
  2331  	if err := oprot.WriteFieldBegin("isSigned", thrift.BOOL, 2); err != nil {
  2332  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:isSigned: ", p), err)
  2333  	}
  2334  	if err := oprot.WriteBool(p.IsSigned); err != nil {
  2335  		return thrift.PrependError(fmt.Sprintf("%T.isSigned (2) field write error: ", p), err)
  2336  	}
  2337  	if err := oprot.WriteFieldEnd(); err != nil {
  2338  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:isSigned: ", p), err)
  2339  	}
  2340  	return err
  2341  }
  2342  
  2343  func (p *IntType) String() string {
  2344  	if p == nil {
  2345  		return "<nil>"
  2346  	}
  2347  	return fmt.Sprintf("IntType(%+v)", *p)
  2348  }
  2349  
  2350  // Embedded JSON logical type annotation
  2351  //
  2352  // Allowed for physical types: BINARY
  2353  type JsonType struct {
  2354  }
  2355  
  2356  func NewJsonType() *JsonType {
  2357  	return &JsonType{}
  2358  }
  2359  
  2360  func (p *JsonType) Read(iprot thrift.TProtocol) error {
  2361  	if _, err := iprot.ReadStructBegin(); err != nil {
  2362  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  2363  	}
  2364  
  2365  	for {
  2366  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  2367  		if err != nil {
  2368  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  2369  		}
  2370  		if fieldTypeId == thrift.STOP {
  2371  			break
  2372  		}
  2373  		if err := iprot.Skip(fieldTypeId); err != nil {
  2374  			return err
  2375  		}
  2376  		if err := iprot.ReadFieldEnd(); err != nil {
  2377  			return err
  2378  		}
  2379  	}
  2380  	if err := iprot.ReadStructEnd(); err != nil {
  2381  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  2382  	}
  2383  	return nil
  2384  }
  2385  
  2386  func (p *JsonType) Write(oprot thrift.TProtocol) error {
  2387  	if err := oprot.WriteStructBegin("JsonType"); err != nil {
  2388  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  2389  	}
  2390  	if p != nil {
  2391  	}
  2392  	if err := oprot.WriteFieldStop(); err != nil {
  2393  		return thrift.PrependError("write field stop error: ", err)
  2394  	}
  2395  	if err := oprot.WriteStructEnd(); err != nil {
  2396  		return thrift.PrependError("write struct stop error: ", err)
  2397  	}
  2398  	return nil
  2399  }
  2400  
  2401  func (p *JsonType) String() string {
  2402  	if p == nil {
  2403  		return "<nil>"
  2404  	}
  2405  	return fmt.Sprintf("JsonType(%+v)", *p)
  2406  }
  2407  
  2408  // Embedded BSON logical type annotation
  2409  //
  2410  // Allowed for physical types: BINARY
  2411  type BsonType struct {
  2412  }
  2413  
  2414  func NewBsonType() *BsonType {
  2415  	return &BsonType{}
  2416  }
  2417  
  2418  func (p *BsonType) Read(iprot thrift.TProtocol) error {
  2419  	if _, err := iprot.ReadStructBegin(); err != nil {
  2420  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  2421  	}
  2422  
  2423  	for {
  2424  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  2425  		if err != nil {
  2426  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  2427  		}
  2428  		if fieldTypeId == thrift.STOP {
  2429  			break
  2430  		}
  2431  		if err := iprot.Skip(fieldTypeId); err != nil {
  2432  			return err
  2433  		}
  2434  		if err := iprot.ReadFieldEnd(); err != nil {
  2435  			return err
  2436  		}
  2437  	}
  2438  	if err := iprot.ReadStructEnd(); err != nil {
  2439  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  2440  	}
  2441  	return nil
  2442  }
  2443  
  2444  func (p *BsonType) Write(oprot thrift.TProtocol) error {
  2445  	if err := oprot.WriteStructBegin("BsonType"); err != nil {
  2446  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  2447  	}
  2448  	if p != nil {
  2449  	}
  2450  	if err := oprot.WriteFieldStop(); err != nil {
  2451  		return thrift.PrependError("write field stop error: ", err)
  2452  	}
  2453  	if err := oprot.WriteStructEnd(); err != nil {
  2454  		return thrift.PrependError("write struct stop error: ", err)
  2455  	}
  2456  	return nil
  2457  }
  2458  
  2459  func (p *BsonType) String() string {
  2460  	if p == nil {
  2461  		return "<nil>"
  2462  	}
  2463  	return fmt.Sprintf("BsonType(%+v)", *p)
  2464  }
  2465  
  2466  // LogicalType annotations to replace ConvertedType.
  2467  //
  2468  // To maintain compatibility, implementations using LogicalType for a
  2469  // SchemaElement must also set the corresponding ConvertedType from the
  2470  // following table.
  2471  //
  2472  // Attributes:
  2473  //  - STRING
  2474  //  - MAP
  2475  //  - LIST
  2476  //  - ENUM
  2477  //  - DECIMAL
  2478  //  - DATE
  2479  //  - TIME
  2480  //  - TIMESTAMP
  2481  //  - INTEGER
  2482  //  - UNKNOWN
  2483  //  - JSON
  2484  //  - BSON
  2485  //  - UUID
  2486  type LogicalType struct {
  2487  	STRING    *StringType    `thrift:"STRING,1" db:"STRING" json:"STRING,omitempty"`
  2488  	MAP       *MapType       `thrift:"MAP,2" db:"MAP" json:"MAP,omitempty"`
  2489  	LIST      *ListType      `thrift:"LIST,3" db:"LIST" json:"LIST,omitempty"`
  2490  	ENUM      *EnumType      `thrift:"ENUM,4" db:"ENUM" json:"ENUM,omitempty"`
  2491  	DECIMAL   *DecimalType   `thrift:"DECIMAL,5" db:"DECIMAL" json:"DECIMAL,omitempty"`
  2492  	DATE      *DateType      `thrift:"DATE,6" db:"DATE" json:"DATE,omitempty"`
  2493  	TIME      *TimeType      `thrift:"TIME,7" db:"TIME" json:"TIME,omitempty"`
  2494  	TIMESTAMP *TimestampType `thrift:"TIMESTAMP,8" db:"TIMESTAMP" json:"TIMESTAMP,omitempty"`
  2495  	// unused field # 9
  2496  	INTEGER *IntType  `thrift:"INTEGER,10" db:"INTEGER" json:"INTEGER,omitempty"`
  2497  	UNKNOWN *NullType `thrift:"UNKNOWN,11" db:"UNKNOWN" json:"UNKNOWN,omitempty"`
  2498  	JSON    *JsonType `thrift:"JSON,12" db:"JSON" json:"JSON,omitempty"`
  2499  	BSON    *BsonType `thrift:"BSON,13" db:"BSON" json:"BSON,omitempty"`
  2500  	UUID    *UUIDType `thrift:"UUID,14" db:"UUID" json:"UUID,omitempty"`
  2501  }
  2502  
  2503  func NewLogicalType() *LogicalType {
  2504  	return &LogicalType{}
  2505  }
  2506  
  2507  var LogicalType_STRING_DEFAULT *StringType
  2508  
  2509  func (p *LogicalType) GetSTRING() *StringType {
  2510  	if !p.IsSetSTRING() {
  2511  		return LogicalType_STRING_DEFAULT
  2512  	}
  2513  	return p.STRING
  2514  }
  2515  
  2516  var LogicalType_MAP_DEFAULT *MapType
  2517  
  2518  func (p *LogicalType) GetMAP() *MapType {
  2519  	if !p.IsSetMAP() {
  2520  		return LogicalType_MAP_DEFAULT
  2521  	}
  2522  	return p.MAP
  2523  }
  2524  
  2525  var LogicalType_LIST_DEFAULT *ListType
  2526  
  2527  func (p *LogicalType) GetLIST() *ListType {
  2528  	if !p.IsSetLIST() {
  2529  		return LogicalType_LIST_DEFAULT
  2530  	}
  2531  	return p.LIST
  2532  }
  2533  
  2534  var LogicalType_ENUM_DEFAULT *EnumType
  2535  
  2536  func (p *LogicalType) GetENUM() *EnumType {
  2537  	if !p.IsSetENUM() {
  2538  		return LogicalType_ENUM_DEFAULT
  2539  	}
  2540  	return p.ENUM
  2541  }
  2542  
  2543  var LogicalType_DECIMAL_DEFAULT *DecimalType
  2544  
  2545  func (p *LogicalType) GetDECIMAL() *DecimalType {
  2546  	if !p.IsSetDECIMAL() {
  2547  		return LogicalType_DECIMAL_DEFAULT
  2548  	}
  2549  	return p.DECIMAL
  2550  }
  2551  
  2552  var LogicalType_DATE_DEFAULT *DateType
  2553  
  2554  func (p *LogicalType) GetDATE() *DateType {
  2555  	if !p.IsSetDATE() {
  2556  		return LogicalType_DATE_DEFAULT
  2557  	}
  2558  	return p.DATE
  2559  }
  2560  
  2561  var LogicalType_TIME_DEFAULT *TimeType
  2562  
  2563  func (p *LogicalType) GetTIME() *TimeType {
  2564  	if !p.IsSetTIME() {
  2565  		return LogicalType_TIME_DEFAULT
  2566  	}
  2567  	return p.TIME
  2568  }
  2569  
  2570  var LogicalType_TIMESTAMP_DEFAULT *TimestampType
  2571  
  2572  func (p *LogicalType) GetTIMESTAMP() *TimestampType {
  2573  	if !p.IsSetTIMESTAMP() {
  2574  		return LogicalType_TIMESTAMP_DEFAULT
  2575  	}
  2576  	return p.TIMESTAMP
  2577  }
  2578  
  2579  var LogicalType_INTEGER_DEFAULT *IntType
  2580  
  2581  func (p *LogicalType) GetINTEGER() *IntType {
  2582  	if !p.IsSetINTEGER() {
  2583  		return LogicalType_INTEGER_DEFAULT
  2584  	}
  2585  	return p.INTEGER
  2586  }
  2587  
  2588  var LogicalType_UNKNOWN_DEFAULT *NullType
  2589  
  2590  func (p *LogicalType) GetUNKNOWN() *NullType {
  2591  	if !p.IsSetUNKNOWN() {
  2592  		return LogicalType_UNKNOWN_DEFAULT
  2593  	}
  2594  	return p.UNKNOWN
  2595  }
  2596  
  2597  var LogicalType_JSON_DEFAULT *JsonType
  2598  
  2599  func (p *LogicalType) GetJSON() *JsonType {
  2600  	if !p.IsSetJSON() {
  2601  		return LogicalType_JSON_DEFAULT
  2602  	}
  2603  	return p.JSON
  2604  }
  2605  
  2606  var LogicalType_BSON_DEFAULT *BsonType
  2607  
  2608  func (p *LogicalType) GetBSON() *BsonType {
  2609  	if !p.IsSetBSON() {
  2610  		return LogicalType_BSON_DEFAULT
  2611  	}
  2612  	return p.BSON
  2613  }
  2614  
  2615  var LogicalType_UUID_DEFAULT *UUIDType
  2616  
  2617  func (p *LogicalType) GetUUID() *UUIDType {
  2618  	if !p.IsSetUUID() {
  2619  		return LogicalType_UUID_DEFAULT
  2620  	}
  2621  	return p.UUID
  2622  }
  2623  func (p *LogicalType) CountSetFieldsLogicalType() int {
  2624  	count := 0
  2625  	if p.IsSetSTRING() {
  2626  		count++
  2627  	}
  2628  	if p.IsSetMAP() {
  2629  		count++
  2630  	}
  2631  	if p.IsSetLIST() {
  2632  		count++
  2633  	}
  2634  	if p.IsSetENUM() {
  2635  		count++
  2636  	}
  2637  	if p.IsSetDECIMAL() {
  2638  		count++
  2639  	}
  2640  	if p.IsSetDATE() {
  2641  		count++
  2642  	}
  2643  	if p.IsSetTIME() {
  2644  		count++
  2645  	}
  2646  	if p.IsSetTIMESTAMP() {
  2647  		count++
  2648  	}
  2649  	if p.IsSetINTEGER() {
  2650  		count++
  2651  	}
  2652  	if p.IsSetUNKNOWN() {
  2653  		count++
  2654  	}
  2655  	if p.IsSetJSON() {
  2656  		count++
  2657  	}
  2658  	if p.IsSetBSON() {
  2659  		count++
  2660  	}
  2661  	if p.IsSetUUID() {
  2662  		count++
  2663  	}
  2664  	return count
  2665  
  2666  }
  2667  
  2668  func (p *LogicalType) IsSetSTRING() bool {
  2669  	return p.STRING != nil
  2670  }
  2671  
  2672  func (p *LogicalType) IsSetMAP() bool {
  2673  	return p.MAP != nil
  2674  }
  2675  
  2676  func (p *LogicalType) IsSetLIST() bool {
  2677  	return p.LIST != nil
  2678  }
  2679  
  2680  func (p *LogicalType) IsSetENUM() bool {
  2681  	return p.ENUM != nil
  2682  }
  2683  
  2684  func (p *LogicalType) IsSetDECIMAL() bool {
  2685  	return p.DECIMAL != nil
  2686  }
  2687  
  2688  func (p *LogicalType) IsSetDATE() bool {
  2689  	return p.DATE != nil
  2690  }
  2691  
  2692  func (p *LogicalType) IsSetTIME() bool {
  2693  	return p.TIME != nil
  2694  }
  2695  
  2696  func (p *LogicalType) IsSetTIMESTAMP() bool {
  2697  	return p.TIMESTAMP != nil
  2698  }
  2699  
  2700  func (p *LogicalType) IsSetINTEGER() bool {
  2701  	return p.INTEGER != nil
  2702  }
  2703  
  2704  func (p *LogicalType) IsSetUNKNOWN() bool {
  2705  	return p.UNKNOWN != nil
  2706  }
  2707  
  2708  func (p *LogicalType) IsSetJSON() bool {
  2709  	return p.JSON != nil
  2710  }
  2711  
  2712  func (p *LogicalType) IsSetBSON() bool {
  2713  	return p.BSON != nil
  2714  }
  2715  
  2716  func (p *LogicalType) IsSetUUID() bool {
  2717  	return p.UUID != nil
  2718  }
  2719  
  2720  func (p *LogicalType) Read(iprot thrift.TProtocol) error {
  2721  	if _, err := iprot.ReadStructBegin(); err != nil {
  2722  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  2723  	}
  2724  
  2725  	for {
  2726  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  2727  		if err != nil {
  2728  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  2729  		}
  2730  		if fieldTypeId == thrift.STOP {
  2731  			break
  2732  		}
  2733  		switch fieldId {
  2734  		case 1:
  2735  			if err := p.ReadField1(iprot); err != nil {
  2736  				return err
  2737  			}
  2738  		case 2:
  2739  			if err := p.ReadField2(iprot); err != nil {
  2740  				return err
  2741  			}
  2742  		case 3:
  2743  			if err := p.ReadField3(iprot); err != nil {
  2744  				return err
  2745  			}
  2746  		case 4:
  2747  			if err := p.ReadField4(iprot); err != nil {
  2748  				return err
  2749  			}
  2750  		case 5:
  2751  			if err := p.ReadField5(iprot); err != nil {
  2752  				return err
  2753  			}
  2754  		case 6:
  2755  			if err := p.ReadField6(iprot); err != nil {
  2756  				return err
  2757  			}
  2758  		case 7:
  2759  			if err := p.ReadField7(iprot); err != nil {
  2760  				return err
  2761  			}
  2762  		case 8:
  2763  			if err := p.ReadField8(iprot); err != nil {
  2764  				return err
  2765  			}
  2766  		case 10:
  2767  			if err := p.ReadField10(iprot); err != nil {
  2768  				return err
  2769  			}
  2770  		case 11:
  2771  			if err := p.ReadField11(iprot); err != nil {
  2772  				return err
  2773  			}
  2774  		case 12:
  2775  			if err := p.ReadField12(iprot); err != nil {
  2776  				return err
  2777  			}
  2778  		case 13:
  2779  			if err := p.ReadField13(iprot); err != nil {
  2780  				return err
  2781  			}
  2782  		case 14:
  2783  			if err := p.ReadField14(iprot); err != nil {
  2784  				return err
  2785  			}
  2786  		default:
  2787  			if err := iprot.Skip(fieldTypeId); err != nil {
  2788  				return err
  2789  			}
  2790  		}
  2791  		if err := iprot.ReadFieldEnd(); err != nil {
  2792  			return err
  2793  		}
  2794  	}
  2795  	if err := iprot.ReadStructEnd(); err != nil {
  2796  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  2797  	}
  2798  	return nil
  2799  }
  2800  
  2801  func (p *LogicalType) ReadField1(iprot thrift.TProtocol) error {
  2802  	p.STRING = &StringType{}
  2803  	if err := p.STRING.Read(iprot); err != nil {
  2804  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.STRING), err)
  2805  	}
  2806  	return nil
  2807  }
  2808  
  2809  func (p *LogicalType) ReadField2(iprot thrift.TProtocol) error {
  2810  	p.MAP = &MapType{}
  2811  	if err := p.MAP.Read(iprot); err != nil {
  2812  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.MAP), err)
  2813  	}
  2814  	return nil
  2815  }
  2816  
  2817  func (p *LogicalType) ReadField3(iprot thrift.TProtocol) error {
  2818  	p.LIST = &ListType{}
  2819  	if err := p.LIST.Read(iprot); err != nil {
  2820  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.LIST), err)
  2821  	}
  2822  	return nil
  2823  }
  2824  
  2825  func (p *LogicalType) ReadField4(iprot thrift.TProtocol) error {
  2826  	p.ENUM = &EnumType{}
  2827  	if err := p.ENUM.Read(iprot); err != nil {
  2828  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.ENUM), err)
  2829  	}
  2830  	return nil
  2831  }
  2832  
  2833  func (p *LogicalType) ReadField5(iprot thrift.TProtocol) error {
  2834  	p.DECIMAL = &DecimalType{}
  2835  	if err := p.DECIMAL.Read(iprot); err != nil {
  2836  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.DECIMAL), err)
  2837  	}
  2838  	return nil
  2839  }
  2840  
  2841  func (p *LogicalType) ReadField6(iprot thrift.TProtocol) error {
  2842  	p.DATE = &DateType{}
  2843  	if err := p.DATE.Read(iprot); err != nil {
  2844  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.DATE), err)
  2845  	}
  2846  	return nil
  2847  }
  2848  
  2849  func (p *LogicalType) ReadField7(iprot thrift.TProtocol) error {
  2850  	p.TIME = &TimeType{}
  2851  	if err := p.TIME.Read(iprot); err != nil {
  2852  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.TIME), err)
  2853  	}
  2854  	return nil
  2855  }
  2856  
  2857  func (p *LogicalType) ReadField8(iprot thrift.TProtocol) error {
  2858  	p.TIMESTAMP = &TimestampType{}
  2859  	if err := p.TIMESTAMP.Read(iprot); err != nil {
  2860  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.TIMESTAMP), err)
  2861  	}
  2862  	return nil
  2863  }
  2864  
  2865  func (p *LogicalType) ReadField10(iprot thrift.TProtocol) error {
  2866  	p.INTEGER = &IntType{}
  2867  	if err := p.INTEGER.Read(iprot); err != nil {
  2868  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.INTEGER), err)
  2869  	}
  2870  	return nil
  2871  }
  2872  
  2873  func (p *LogicalType) ReadField11(iprot thrift.TProtocol) error {
  2874  	p.UNKNOWN = &NullType{}
  2875  	if err := p.UNKNOWN.Read(iprot); err != nil {
  2876  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.UNKNOWN), err)
  2877  	}
  2878  	return nil
  2879  }
  2880  
  2881  func (p *LogicalType) ReadField12(iprot thrift.TProtocol) error {
  2882  	p.JSON = &JsonType{}
  2883  	if err := p.JSON.Read(iprot); err != nil {
  2884  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.JSON), err)
  2885  	}
  2886  	return nil
  2887  }
  2888  
  2889  func (p *LogicalType) ReadField13(iprot thrift.TProtocol) error {
  2890  	p.BSON = &BsonType{}
  2891  	if err := p.BSON.Read(iprot); err != nil {
  2892  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.BSON), err)
  2893  	}
  2894  	return nil
  2895  }
  2896  
  2897  func (p *LogicalType) ReadField14(iprot thrift.TProtocol) error {
  2898  	p.UUID = &UUIDType{}
  2899  	if err := p.UUID.Read(iprot); err != nil {
  2900  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.UUID), err)
  2901  	}
  2902  	return nil
  2903  }
  2904  
  2905  func (p *LogicalType) Write(oprot thrift.TProtocol) error {
  2906  	if c := p.CountSetFieldsLogicalType(); c != 1 {
  2907  		return fmt.Errorf("%T write union: exactly one field must be set (%d set).", p, c)
  2908  	}
  2909  	if err := oprot.WriteStructBegin("LogicalType"); err != nil {
  2910  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  2911  	}
  2912  	if p != nil {
  2913  		if err := p.writeField1(oprot); err != nil {
  2914  			return err
  2915  		}
  2916  		if err := p.writeField2(oprot); err != nil {
  2917  			return err
  2918  		}
  2919  		if err := p.writeField3(oprot); err != nil {
  2920  			return err
  2921  		}
  2922  		if err := p.writeField4(oprot); err != nil {
  2923  			return err
  2924  		}
  2925  		if err := p.writeField5(oprot); err != nil {
  2926  			return err
  2927  		}
  2928  		if err := p.writeField6(oprot); err != nil {
  2929  			return err
  2930  		}
  2931  		if err := p.writeField7(oprot); err != nil {
  2932  			return err
  2933  		}
  2934  		if err := p.writeField8(oprot); err != nil {
  2935  			return err
  2936  		}
  2937  		if err := p.writeField10(oprot); err != nil {
  2938  			return err
  2939  		}
  2940  		if err := p.writeField11(oprot); err != nil {
  2941  			return err
  2942  		}
  2943  		if err := p.writeField12(oprot); err != nil {
  2944  			return err
  2945  		}
  2946  		if err := p.writeField13(oprot); err != nil {
  2947  			return err
  2948  		}
  2949  		if err := p.writeField14(oprot); err != nil {
  2950  			return err
  2951  		}
  2952  	}
  2953  	if err := oprot.WriteFieldStop(); err != nil {
  2954  		return thrift.PrependError("write field stop error: ", err)
  2955  	}
  2956  	if err := oprot.WriteStructEnd(); err != nil {
  2957  		return thrift.PrependError("write struct stop error: ", err)
  2958  	}
  2959  	return nil
  2960  }
  2961  
  2962  func (p *LogicalType) writeField1(oprot thrift.TProtocol) (err error) {
  2963  	if p.IsSetSTRING() {
  2964  		if err := oprot.WriteFieldBegin("STRING", thrift.STRUCT, 1); err != nil {
  2965  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:STRING: ", p), err)
  2966  		}
  2967  		if err := p.STRING.Write(oprot); err != nil {
  2968  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.STRING), err)
  2969  		}
  2970  		if err := oprot.WriteFieldEnd(); err != nil {
  2971  			return thrift.PrependError(fmt.Sprintf("%T write field end error 1:STRING: ", p), err)
  2972  		}
  2973  	}
  2974  	return err
  2975  }
  2976  
  2977  func (p *LogicalType) writeField2(oprot thrift.TProtocol) (err error) {
  2978  	if p.IsSetMAP() {
  2979  		if err := oprot.WriteFieldBegin("MAP", thrift.STRUCT, 2); err != nil {
  2980  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:MAP: ", p), err)
  2981  		}
  2982  		if err := p.MAP.Write(oprot); err != nil {
  2983  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.MAP), err)
  2984  		}
  2985  		if err := oprot.WriteFieldEnd(); err != nil {
  2986  			return thrift.PrependError(fmt.Sprintf("%T write field end error 2:MAP: ", p), err)
  2987  		}
  2988  	}
  2989  	return err
  2990  }
  2991  
  2992  func (p *LogicalType) writeField3(oprot thrift.TProtocol) (err error) {
  2993  	if p.IsSetLIST() {
  2994  		if err := oprot.WriteFieldBegin("LIST", thrift.STRUCT, 3); err != nil {
  2995  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:LIST: ", p), err)
  2996  		}
  2997  		if err := p.LIST.Write(oprot); err != nil {
  2998  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.LIST), err)
  2999  		}
  3000  		if err := oprot.WriteFieldEnd(); err != nil {
  3001  			return thrift.PrependError(fmt.Sprintf("%T write field end error 3:LIST: ", p), err)
  3002  		}
  3003  	}
  3004  	return err
  3005  }
  3006  
  3007  func (p *LogicalType) writeField4(oprot thrift.TProtocol) (err error) {
  3008  	if p.IsSetENUM() {
  3009  		if err := oprot.WriteFieldBegin("ENUM", thrift.STRUCT, 4); err != nil {
  3010  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:ENUM: ", p), err)
  3011  		}
  3012  		if err := p.ENUM.Write(oprot); err != nil {
  3013  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.ENUM), err)
  3014  		}
  3015  		if err := oprot.WriteFieldEnd(); err != nil {
  3016  			return thrift.PrependError(fmt.Sprintf("%T write field end error 4:ENUM: ", p), err)
  3017  		}
  3018  	}
  3019  	return err
  3020  }
  3021  
  3022  func (p *LogicalType) writeField5(oprot thrift.TProtocol) (err error) {
  3023  	if p.IsSetDECIMAL() {
  3024  		if err := oprot.WriteFieldBegin("DECIMAL", thrift.STRUCT, 5); err != nil {
  3025  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:DECIMAL: ", p), err)
  3026  		}
  3027  		if err := p.DECIMAL.Write(oprot); err != nil {
  3028  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.DECIMAL), err)
  3029  		}
  3030  		if err := oprot.WriteFieldEnd(); err != nil {
  3031  			return thrift.PrependError(fmt.Sprintf("%T write field end error 5:DECIMAL: ", p), err)
  3032  		}
  3033  	}
  3034  	return err
  3035  }
  3036  
  3037  func (p *LogicalType) writeField6(oprot thrift.TProtocol) (err error) {
  3038  	if p.IsSetDATE() {
  3039  		if err := oprot.WriteFieldBegin("DATE", thrift.STRUCT, 6); err != nil {
  3040  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 6:DATE: ", p), err)
  3041  		}
  3042  		if err := p.DATE.Write(oprot); err != nil {
  3043  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.DATE), err)
  3044  		}
  3045  		if err := oprot.WriteFieldEnd(); err != nil {
  3046  			return thrift.PrependError(fmt.Sprintf("%T write field end error 6:DATE: ", p), err)
  3047  		}
  3048  	}
  3049  	return err
  3050  }
  3051  
  3052  func (p *LogicalType) writeField7(oprot thrift.TProtocol) (err error) {
  3053  	if p.IsSetTIME() {
  3054  		if err := oprot.WriteFieldBegin("TIME", thrift.STRUCT, 7); err != nil {
  3055  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 7:TIME: ", p), err)
  3056  		}
  3057  		if err := p.TIME.Write(oprot); err != nil {
  3058  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.TIME), err)
  3059  		}
  3060  		if err := oprot.WriteFieldEnd(); err != nil {
  3061  			return thrift.PrependError(fmt.Sprintf("%T write field end error 7:TIME: ", p), err)
  3062  		}
  3063  	}
  3064  	return err
  3065  }
  3066  
  3067  func (p *LogicalType) writeField8(oprot thrift.TProtocol) (err error) {
  3068  	if p.IsSetTIMESTAMP() {
  3069  		if err := oprot.WriteFieldBegin("TIMESTAMP", thrift.STRUCT, 8); err != nil {
  3070  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 8:TIMESTAMP: ", p), err)
  3071  		}
  3072  		if err := p.TIMESTAMP.Write(oprot); err != nil {
  3073  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.TIMESTAMP), err)
  3074  		}
  3075  		if err := oprot.WriteFieldEnd(); err != nil {
  3076  			return thrift.PrependError(fmt.Sprintf("%T write field end error 8:TIMESTAMP: ", p), err)
  3077  		}
  3078  	}
  3079  	return err
  3080  }
  3081  
  3082  func (p *LogicalType) writeField10(oprot thrift.TProtocol) (err error) {
  3083  	if p.IsSetINTEGER() {
  3084  		if err := oprot.WriteFieldBegin("INTEGER", thrift.STRUCT, 10); err != nil {
  3085  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 10:INTEGER: ", p), err)
  3086  		}
  3087  		if err := p.INTEGER.Write(oprot); err != nil {
  3088  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.INTEGER), err)
  3089  		}
  3090  		if err := oprot.WriteFieldEnd(); err != nil {
  3091  			return thrift.PrependError(fmt.Sprintf("%T write field end error 10:INTEGER: ", p), err)
  3092  		}
  3093  	}
  3094  	return err
  3095  }
  3096  
  3097  func (p *LogicalType) writeField11(oprot thrift.TProtocol) (err error) {
  3098  	if p.IsSetUNKNOWN() {
  3099  		if err := oprot.WriteFieldBegin("UNKNOWN", thrift.STRUCT, 11); err != nil {
  3100  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 11:UNKNOWN: ", p), err)
  3101  		}
  3102  		if err := p.UNKNOWN.Write(oprot); err != nil {
  3103  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.UNKNOWN), err)
  3104  		}
  3105  		if err := oprot.WriteFieldEnd(); err != nil {
  3106  			return thrift.PrependError(fmt.Sprintf("%T write field end error 11:UNKNOWN: ", p), err)
  3107  		}
  3108  	}
  3109  	return err
  3110  }
  3111  
  3112  func (p *LogicalType) writeField12(oprot thrift.TProtocol) (err error) {
  3113  	if p.IsSetJSON() {
  3114  		if err := oprot.WriteFieldBegin("JSON", thrift.STRUCT, 12); err != nil {
  3115  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 12:JSON: ", p), err)
  3116  		}
  3117  		if err := p.JSON.Write(oprot); err != nil {
  3118  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.JSON), err)
  3119  		}
  3120  		if err := oprot.WriteFieldEnd(); err != nil {
  3121  			return thrift.PrependError(fmt.Sprintf("%T write field end error 12:JSON: ", p), err)
  3122  		}
  3123  	}
  3124  	return err
  3125  }
  3126  
  3127  func (p *LogicalType) writeField13(oprot thrift.TProtocol) (err error) {
  3128  	if p.IsSetBSON() {
  3129  		if err := oprot.WriteFieldBegin("BSON", thrift.STRUCT, 13); err != nil {
  3130  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 13:BSON: ", p), err)
  3131  		}
  3132  		if err := p.BSON.Write(oprot); err != nil {
  3133  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.BSON), err)
  3134  		}
  3135  		if err := oprot.WriteFieldEnd(); err != nil {
  3136  			return thrift.PrependError(fmt.Sprintf("%T write field end error 13:BSON: ", p), err)
  3137  		}
  3138  	}
  3139  	return err
  3140  }
  3141  
  3142  func (p *LogicalType) writeField14(oprot thrift.TProtocol) (err error) {
  3143  	if p.IsSetUUID() {
  3144  		if err := oprot.WriteFieldBegin("UUID", thrift.STRUCT, 14); err != nil {
  3145  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 14:UUID: ", p), err)
  3146  		}
  3147  		if err := p.UUID.Write(oprot); err != nil {
  3148  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.UUID), err)
  3149  		}
  3150  		if err := oprot.WriteFieldEnd(); err != nil {
  3151  			return thrift.PrependError(fmt.Sprintf("%T write field end error 14:UUID: ", p), err)
  3152  		}
  3153  	}
  3154  	return err
  3155  }
  3156  
  3157  func (p *LogicalType) String() string {
  3158  	if p == nil {
  3159  		return "<nil>"
  3160  	}
  3161  	return fmt.Sprintf("LogicalType(%+v)", *p)
  3162  }
  3163  
  3164  // Represents a element inside a schema definition.
  3165  //  - if it is a group (inner node) then type is undefined and num_children is defined
  3166  //  - if it is a primitive type (leaf) then type is defined and num_children is undefined
  3167  // the nodes are listed in depth first traversal order.
  3168  //
  3169  // Attributes:
  3170  //  - Type: Data type for this field. Not set if the current element is a non-leaf node
  3171  //  - TypeLength: If type is FIXED_LEN_BYTE_ARRAY, this is the byte length of the vales.
  3172  // Otherwise, if specified, this is the maximum bit length to store any of the values.
  3173  // (e.g. a low cardinality INT col could have this set to 3).  Note that this is
  3174  // in the schema, and therefore fixed for the entire file.
  3175  //  - RepetitionType: repetition of the field. The root of the schema does not have a repetition_type.
  3176  // All other nodes must have one
  3177  //  - Name: Name of the field in the schema
  3178  //  - NumChildren: Nested fields.  Since thrift does not support nested fields,
  3179  // the nesting is flattened to a single list by a depth-first traversal.
  3180  // The children count is used to construct the nested relationship.
  3181  // This field is not set when the element is a primitive type
  3182  //  - ConvertedType: When the schema is the result of a conversion from another model
  3183  // Used to record the original type to help with cross conversion.
  3184  //  - Scale: Used when this column contains decimal data.
  3185  // See the DECIMAL converted type for more details.
  3186  //  - Precision
  3187  //  - FieldID: When the original schema supports field ids, this will save the
  3188  // original field id in the parquet schema
  3189  //  - LogicalType: The logical type of this SchemaElement
  3190  //
  3191  // LogicalType replaces ConvertedType, but ConvertedType is still required
  3192  // for some logical types to ensure forward-compatibility in format v1.
  3193  type SchemaElement struct {
  3194  	Type           *Type                `thrift:"type,1" db:"type" json:"type,omitempty"`
  3195  	TypeLength     *int32               `thrift:"type_length,2" db:"type_length" json:"type_length,omitempty"`
  3196  	RepetitionType *FieldRepetitionType `thrift:"repetition_type,3" db:"repetition_type" json:"repetition_type,omitempty"`
  3197  	Name           string               `thrift:"name,4,required" db:"name" json:"name"`
  3198  	NumChildren    *int32               `thrift:"num_children,5" db:"num_children" json:"num_children,omitempty"`
  3199  	ConvertedType  *ConvertedType       `thrift:"converted_type,6" db:"converted_type" json:"converted_type,omitempty"`
  3200  	Scale          *int32               `thrift:"scale,7" db:"scale" json:"scale,omitempty"`
  3201  	Precision      *int32               `thrift:"precision,8" db:"precision" json:"precision,omitempty"`
  3202  	FieldID        *int32               `thrift:"field_id,9" db:"field_id" json:"field_id,omitempty"`
  3203  	LogicalType    *LogicalType         `thrift:"logicalType,10" db:"logicalType" json:"logicalType,omitempty"`
  3204  }
  3205  
  3206  func NewSchemaElement() *SchemaElement {
  3207  	return &SchemaElement{}
  3208  }
  3209  
  3210  var SchemaElement_Type_DEFAULT Type
  3211  
  3212  func (p *SchemaElement) GetType() Type {
  3213  	if !p.IsSetType() {
  3214  		return SchemaElement_Type_DEFAULT
  3215  	}
  3216  	return *p.Type
  3217  }
  3218  
  3219  var SchemaElement_TypeLength_DEFAULT int32
  3220  
  3221  func (p *SchemaElement) GetTypeLength() int32 {
  3222  	if !p.IsSetTypeLength() {
  3223  		return SchemaElement_TypeLength_DEFAULT
  3224  	}
  3225  	return *p.TypeLength
  3226  }
  3227  
  3228  var SchemaElement_RepetitionType_DEFAULT FieldRepetitionType
  3229  
  3230  func (p *SchemaElement) GetRepetitionType() FieldRepetitionType {
  3231  	if !p.IsSetRepetitionType() {
  3232  		return SchemaElement_RepetitionType_DEFAULT
  3233  	}
  3234  	return *p.RepetitionType
  3235  }
  3236  
  3237  func (p *SchemaElement) GetName() string {
  3238  	return p.Name
  3239  }
  3240  
  3241  var SchemaElement_NumChildren_DEFAULT int32
  3242  
  3243  func (p *SchemaElement) GetNumChildren() int32 {
  3244  	if !p.IsSetNumChildren() {
  3245  		return SchemaElement_NumChildren_DEFAULT
  3246  	}
  3247  	return *p.NumChildren
  3248  }
  3249  
  3250  var SchemaElement_ConvertedType_DEFAULT ConvertedType
  3251  
  3252  func (p *SchemaElement) GetConvertedType() ConvertedType {
  3253  	if !p.IsSetConvertedType() {
  3254  		return SchemaElement_ConvertedType_DEFAULT
  3255  	}
  3256  	return *p.ConvertedType
  3257  }
  3258  
  3259  var SchemaElement_Scale_DEFAULT int32
  3260  
  3261  func (p *SchemaElement) GetScale() int32 {
  3262  	if !p.IsSetScale() {
  3263  		return SchemaElement_Scale_DEFAULT
  3264  	}
  3265  	return *p.Scale
  3266  }
  3267  
  3268  var SchemaElement_Precision_DEFAULT int32
  3269  
  3270  func (p *SchemaElement) GetPrecision() int32 {
  3271  	if !p.IsSetPrecision() {
  3272  		return SchemaElement_Precision_DEFAULT
  3273  	}
  3274  	return *p.Precision
  3275  }
  3276  
  3277  var SchemaElement_FieldID_DEFAULT int32
  3278  
  3279  func (p *SchemaElement) GetFieldID() int32 {
  3280  	if !p.IsSetFieldID() {
  3281  		return SchemaElement_FieldID_DEFAULT
  3282  	}
  3283  	return *p.FieldID
  3284  }
  3285  
  3286  var SchemaElement_LogicalType_DEFAULT *LogicalType
  3287  
  3288  func (p *SchemaElement) GetLogicalType() *LogicalType {
  3289  	if !p.IsSetLogicalType() {
  3290  		return SchemaElement_LogicalType_DEFAULT
  3291  	}
  3292  	return p.LogicalType
  3293  }
  3294  func (p *SchemaElement) IsSetType() bool {
  3295  	return p.Type != nil
  3296  }
  3297  
  3298  func (p *SchemaElement) IsSetTypeLength() bool {
  3299  	return p.TypeLength != nil
  3300  }
  3301  
  3302  func (p *SchemaElement) IsSetRepetitionType() bool {
  3303  	return p.RepetitionType != nil
  3304  }
  3305  
  3306  func (p *SchemaElement) IsSetNumChildren() bool {
  3307  	return p.NumChildren != nil
  3308  }
  3309  
  3310  func (p *SchemaElement) IsSetConvertedType() bool {
  3311  	return p.ConvertedType != nil
  3312  }
  3313  
  3314  func (p *SchemaElement) IsSetScale() bool {
  3315  	return p.Scale != nil
  3316  }
  3317  
  3318  func (p *SchemaElement) IsSetPrecision() bool {
  3319  	return p.Precision != nil
  3320  }
  3321  
  3322  func (p *SchemaElement) IsSetFieldID() bool {
  3323  	return p.FieldID != nil
  3324  }
  3325  
  3326  func (p *SchemaElement) IsSetLogicalType() bool {
  3327  	return p.LogicalType != nil
  3328  }
  3329  
  3330  func (p *SchemaElement) Read(iprot thrift.TProtocol) error {
  3331  	if _, err := iprot.ReadStructBegin(); err != nil {
  3332  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  3333  	}
  3334  
  3335  	var issetName bool = false
  3336  
  3337  	for {
  3338  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  3339  		if err != nil {
  3340  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  3341  		}
  3342  		if fieldTypeId == thrift.STOP {
  3343  			break
  3344  		}
  3345  		switch fieldId {
  3346  		case 1:
  3347  			if err := p.ReadField1(iprot); err != nil {
  3348  				return err
  3349  			}
  3350  		case 2:
  3351  			if err := p.ReadField2(iprot); err != nil {
  3352  				return err
  3353  			}
  3354  		case 3:
  3355  			if err := p.ReadField3(iprot); err != nil {
  3356  				return err
  3357  			}
  3358  		case 4:
  3359  			if err := p.ReadField4(iprot); err != nil {
  3360  				return err
  3361  			}
  3362  			issetName = true
  3363  		case 5:
  3364  			if err := p.ReadField5(iprot); err != nil {
  3365  				return err
  3366  			}
  3367  		case 6:
  3368  			if err := p.ReadField6(iprot); err != nil {
  3369  				return err
  3370  			}
  3371  		case 7:
  3372  			if err := p.ReadField7(iprot); err != nil {
  3373  				return err
  3374  			}
  3375  		case 8:
  3376  			if err := p.ReadField8(iprot); err != nil {
  3377  				return err
  3378  			}
  3379  		case 9:
  3380  			if err := p.ReadField9(iprot); err != nil {
  3381  				return err
  3382  			}
  3383  		case 10:
  3384  			if err := p.ReadField10(iprot); err != nil {
  3385  				return err
  3386  			}
  3387  		default:
  3388  			if err := iprot.Skip(fieldTypeId); err != nil {
  3389  				return err
  3390  			}
  3391  		}
  3392  		if err := iprot.ReadFieldEnd(); err != nil {
  3393  			return err
  3394  		}
  3395  	}
  3396  	if err := iprot.ReadStructEnd(); err != nil {
  3397  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  3398  	}
  3399  	if !issetName {
  3400  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Name is not set"))
  3401  	}
  3402  	return nil
  3403  }
  3404  
  3405  func (p *SchemaElement) ReadField1(iprot thrift.TProtocol) error {
  3406  	if v, err := iprot.ReadI32(); err != nil {
  3407  		return thrift.PrependError("error reading field 1: ", err)
  3408  	} else {
  3409  		temp := Type(v)
  3410  		p.Type = &temp
  3411  	}
  3412  	return nil
  3413  }
  3414  
  3415  func (p *SchemaElement) ReadField2(iprot thrift.TProtocol) error {
  3416  	if v, err := iprot.ReadI32(); err != nil {
  3417  		return thrift.PrependError("error reading field 2: ", err)
  3418  	} else {
  3419  		p.TypeLength = &v
  3420  	}
  3421  	return nil
  3422  }
  3423  
  3424  func (p *SchemaElement) ReadField3(iprot thrift.TProtocol) error {
  3425  	if v, err := iprot.ReadI32(); err != nil {
  3426  		return thrift.PrependError("error reading field 3: ", err)
  3427  	} else {
  3428  		temp := FieldRepetitionType(v)
  3429  		p.RepetitionType = &temp
  3430  	}
  3431  	return nil
  3432  }
  3433  
  3434  func (p *SchemaElement) ReadField4(iprot thrift.TProtocol) error {
  3435  	if v, err := iprot.ReadString(); err != nil {
  3436  		return thrift.PrependError("error reading field 4: ", err)
  3437  	} else {
  3438  		p.Name = v
  3439  	}
  3440  	return nil
  3441  }
  3442  
  3443  func (p *SchemaElement) ReadField5(iprot thrift.TProtocol) error {
  3444  	if v, err := iprot.ReadI32(); err != nil {
  3445  		return thrift.PrependError("error reading field 5: ", err)
  3446  	} else {
  3447  		p.NumChildren = &v
  3448  	}
  3449  	return nil
  3450  }
  3451  
  3452  func (p *SchemaElement) ReadField6(iprot thrift.TProtocol) error {
  3453  	if v, err := iprot.ReadI32(); err != nil {
  3454  		return thrift.PrependError("error reading field 6: ", err)
  3455  	} else {
  3456  		temp := ConvertedType(v)
  3457  		p.ConvertedType = &temp
  3458  	}
  3459  	return nil
  3460  }
  3461  
  3462  func (p *SchemaElement) ReadField7(iprot thrift.TProtocol) error {
  3463  	if v, err := iprot.ReadI32(); err != nil {
  3464  		return thrift.PrependError("error reading field 7: ", err)
  3465  	} else {
  3466  		p.Scale = &v
  3467  	}
  3468  	return nil
  3469  }
  3470  
  3471  func (p *SchemaElement) ReadField8(iprot thrift.TProtocol) error {
  3472  	if v, err := iprot.ReadI32(); err != nil {
  3473  		return thrift.PrependError("error reading field 8: ", err)
  3474  	} else {
  3475  		p.Precision = &v
  3476  	}
  3477  	return nil
  3478  }
  3479  
  3480  func (p *SchemaElement) ReadField9(iprot thrift.TProtocol) error {
  3481  	if v, err := iprot.ReadI32(); err != nil {
  3482  		return thrift.PrependError("error reading field 9: ", err)
  3483  	} else {
  3484  		p.FieldID = &v
  3485  	}
  3486  	return nil
  3487  }
  3488  
  3489  func (p *SchemaElement) ReadField10(iprot thrift.TProtocol) error {
  3490  	p.LogicalType = &LogicalType{}
  3491  	if err := p.LogicalType.Read(iprot); err != nil {
  3492  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.LogicalType), err)
  3493  	}
  3494  	return nil
  3495  }
  3496  
  3497  func (p *SchemaElement) Write(oprot thrift.TProtocol) error {
  3498  	if err := oprot.WriteStructBegin("SchemaElement"); err != nil {
  3499  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  3500  	}
  3501  	if p != nil {
  3502  		if err := p.writeField1(oprot); err != nil {
  3503  			return err
  3504  		}
  3505  		if err := p.writeField2(oprot); err != nil {
  3506  			return err
  3507  		}
  3508  		if err := p.writeField3(oprot); err != nil {
  3509  			return err
  3510  		}
  3511  		if err := p.writeField4(oprot); err != nil {
  3512  			return err
  3513  		}
  3514  		if err := p.writeField5(oprot); err != nil {
  3515  			return err
  3516  		}
  3517  		if err := p.writeField6(oprot); err != nil {
  3518  			return err
  3519  		}
  3520  		if err := p.writeField7(oprot); err != nil {
  3521  			return err
  3522  		}
  3523  		if err := p.writeField8(oprot); err != nil {
  3524  			return err
  3525  		}
  3526  		if err := p.writeField9(oprot); err != nil {
  3527  			return err
  3528  		}
  3529  		if err := p.writeField10(oprot); err != nil {
  3530  			return err
  3531  		}
  3532  	}
  3533  	if err := oprot.WriteFieldStop(); err != nil {
  3534  		return thrift.PrependError("write field stop error: ", err)
  3535  	}
  3536  	if err := oprot.WriteStructEnd(); err != nil {
  3537  		return thrift.PrependError("write struct stop error: ", err)
  3538  	}
  3539  	return nil
  3540  }
  3541  
  3542  func (p *SchemaElement) writeField1(oprot thrift.TProtocol) (err error) {
  3543  	if p.IsSetType() {
  3544  		if err := oprot.WriteFieldBegin("type", thrift.I32, 1); err != nil {
  3545  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:type: ", p), err)
  3546  		}
  3547  		if err := oprot.WriteI32(int32(*p.Type)); err != nil {
  3548  			return thrift.PrependError(fmt.Sprintf("%T.type (1) field write error: ", p), err)
  3549  		}
  3550  		if err := oprot.WriteFieldEnd(); err != nil {
  3551  			return thrift.PrependError(fmt.Sprintf("%T write field end error 1:type: ", p), err)
  3552  		}
  3553  	}
  3554  	return err
  3555  }
  3556  
  3557  func (p *SchemaElement) writeField2(oprot thrift.TProtocol) (err error) {
  3558  	if p.IsSetTypeLength() {
  3559  		if err := oprot.WriteFieldBegin("type_length", thrift.I32, 2); err != nil {
  3560  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:type_length: ", p), err)
  3561  		}
  3562  		if err := oprot.WriteI32(*p.TypeLength); err != nil {
  3563  			return thrift.PrependError(fmt.Sprintf("%T.type_length (2) field write error: ", p), err)
  3564  		}
  3565  		if err := oprot.WriteFieldEnd(); err != nil {
  3566  			return thrift.PrependError(fmt.Sprintf("%T write field end error 2:type_length: ", p), err)
  3567  		}
  3568  	}
  3569  	return err
  3570  }
  3571  
  3572  func (p *SchemaElement) writeField3(oprot thrift.TProtocol) (err error) {
  3573  	if p.IsSetRepetitionType() {
  3574  		if err := oprot.WriteFieldBegin("repetition_type", thrift.I32, 3); err != nil {
  3575  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:repetition_type: ", p), err)
  3576  		}
  3577  		if err := oprot.WriteI32(int32(*p.RepetitionType)); err != nil {
  3578  			return thrift.PrependError(fmt.Sprintf("%T.repetition_type (3) field write error: ", p), err)
  3579  		}
  3580  		if err := oprot.WriteFieldEnd(); err != nil {
  3581  			return thrift.PrependError(fmt.Sprintf("%T write field end error 3:repetition_type: ", p), err)
  3582  		}
  3583  	}
  3584  	return err
  3585  }
  3586  
  3587  func (p *SchemaElement) writeField4(oprot thrift.TProtocol) (err error) {
  3588  	if err := oprot.WriteFieldBegin("name", thrift.STRING, 4); err != nil {
  3589  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:name: ", p), err)
  3590  	}
  3591  	if err := oprot.WriteString(string(p.Name)); err != nil {
  3592  		return thrift.PrependError(fmt.Sprintf("%T.name (4) field write error: ", p), err)
  3593  	}
  3594  	if err := oprot.WriteFieldEnd(); err != nil {
  3595  		return thrift.PrependError(fmt.Sprintf("%T write field end error 4:name: ", p), err)
  3596  	}
  3597  	return err
  3598  }
  3599  
  3600  func (p *SchemaElement) writeField5(oprot thrift.TProtocol) (err error) {
  3601  	if p.IsSetNumChildren() {
  3602  		if err := oprot.WriteFieldBegin("num_children", thrift.I32, 5); err != nil {
  3603  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:num_children: ", p), err)
  3604  		}
  3605  		if err := oprot.WriteI32(*p.NumChildren); err != nil {
  3606  			return thrift.PrependError(fmt.Sprintf("%T.num_children (5) field write error: ", p), err)
  3607  		}
  3608  		if err := oprot.WriteFieldEnd(); err != nil {
  3609  			return thrift.PrependError(fmt.Sprintf("%T write field end error 5:num_children: ", p), err)
  3610  		}
  3611  	}
  3612  	return err
  3613  }
  3614  
  3615  func (p *SchemaElement) writeField6(oprot thrift.TProtocol) (err error) {
  3616  	if p.IsSetConvertedType() {
  3617  		if err := oprot.WriteFieldBegin("converted_type", thrift.I32, 6); err != nil {
  3618  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 6:converted_type: ", p), err)
  3619  		}
  3620  		if err := oprot.WriteI32(int32(*p.ConvertedType)); err != nil {
  3621  			return thrift.PrependError(fmt.Sprintf("%T.converted_type (6) field write error: ", p), err)
  3622  		}
  3623  		if err := oprot.WriteFieldEnd(); err != nil {
  3624  			return thrift.PrependError(fmt.Sprintf("%T write field end error 6:converted_type: ", p), err)
  3625  		}
  3626  	}
  3627  	return err
  3628  }
  3629  
  3630  func (p *SchemaElement) writeField7(oprot thrift.TProtocol) (err error) {
  3631  	if p.IsSetScale() {
  3632  		if err := oprot.WriteFieldBegin("scale", thrift.I32, 7); err != nil {
  3633  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 7:scale: ", p), err)
  3634  		}
  3635  		if err := oprot.WriteI32(*p.Scale); err != nil {
  3636  			return thrift.PrependError(fmt.Sprintf("%T.scale (7) field write error: ", p), err)
  3637  		}
  3638  		if err := oprot.WriteFieldEnd(); err != nil {
  3639  			return thrift.PrependError(fmt.Sprintf("%T write field end error 7:scale: ", p), err)
  3640  		}
  3641  	}
  3642  	return err
  3643  }
  3644  
  3645  func (p *SchemaElement) writeField8(oprot thrift.TProtocol) (err error) {
  3646  	if p.IsSetPrecision() {
  3647  		if err := oprot.WriteFieldBegin("precision", thrift.I32, 8); err != nil {
  3648  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 8:precision: ", p), err)
  3649  		}
  3650  		if err := oprot.WriteI32(*p.Precision); err != nil {
  3651  			return thrift.PrependError(fmt.Sprintf("%T.precision (8) field write error: ", p), err)
  3652  		}
  3653  		if err := oprot.WriteFieldEnd(); err != nil {
  3654  			return thrift.PrependError(fmt.Sprintf("%T write field end error 8:precision: ", p), err)
  3655  		}
  3656  	}
  3657  	return err
  3658  }
  3659  
  3660  func (p *SchemaElement) writeField9(oprot thrift.TProtocol) (err error) {
  3661  	if p.IsSetFieldID() {
  3662  		if err := oprot.WriteFieldBegin("field_id", thrift.I32, 9); err != nil {
  3663  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 9:field_id: ", p), err)
  3664  		}
  3665  		if err := oprot.WriteI32(*p.FieldID); err != nil {
  3666  			return thrift.PrependError(fmt.Sprintf("%T.field_id (9) field write error: ", p), err)
  3667  		}
  3668  		if err := oprot.WriteFieldEnd(); err != nil {
  3669  			return thrift.PrependError(fmt.Sprintf("%T write field end error 9:field_id: ", p), err)
  3670  		}
  3671  	}
  3672  	return err
  3673  }
  3674  
  3675  func (p *SchemaElement) writeField10(oprot thrift.TProtocol) (err error) {
  3676  	if p.IsSetLogicalType() {
  3677  		if err := oprot.WriteFieldBegin("logicalType", thrift.STRUCT, 10); err != nil {
  3678  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 10:logicalType: ", p), err)
  3679  		}
  3680  		if err := p.LogicalType.Write(oprot); err != nil {
  3681  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.LogicalType), err)
  3682  		}
  3683  		if err := oprot.WriteFieldEnd(); err != nil {
  3684  			return thrift.PrependError(fmt.Sprintf("%T write field end error 10:logicalType: ", p), err)
  3685  		}
  3686  	}
  3687  	return err
  3688  }
  3689  
  3690  func (p *SchemaElement) String() string {
  3691  	if p == nil {
  3692  		return "<nil>"
  3693  	}
  3694  	return fmt.Sprintf("SchemaElement(%+v)", *p)
  3695  }
  3696  
  3697  // Data page header
  3698  //
  3699  // Attributes:
  3700  //  - NumValues: Number of values, including NULLs, in this data page. *
  3701  //  - Encoding: Encoding used for this data page *
  3702  //  - DefinitionLevelEncoding: Encoding used for definition levels *
  3703  //  - RepetitionLevelEncoding: Encoding used for repetition levels *
  3704  //  - Statistics: Optional statistics for the data in this page*
  3705  type DataPageHeader struct {
  3706  	NumValues               int32       `thrift:"num_values,1,required" db:"num_values" json:"num_values"`
  3707  	Encoding                Encoding    `thrift:"encoding,2,required" db:"encoding" json:"encoding"`
  3708  	DefinitionLevelEncoding Encoding    `thrift:"definition_level_encoding,3,required" db:"definition_level_encoding" json:"definition_level_encoding"`
  3709  	RepetitionLevelEncoding Encoding    `thrift:"repetition_level_encoding,4,required" db:"repetition_level_encoding" json:"repetition_level_encoding"`
  3710  	Statistics              *Statistics `thrift:"statistics,5" db:"statistics" json:"statistics,omitempty"`
  3711  }
  3712  
  3713  func NewDataPageHeader() *DataPageHeader {
  3714  	return &DataPageHeader{}
  3715  }
  3716  
  3717  func (p *DataPageHeader) GetNumValues() int32 {
  3718  	return p.NumValues
  3719  }
  3720  
  3721  func (p *DataPageHeader) GetEncoding() Encoding {
  3722  	return p.Encoding
  3723  }
  3724  
  3725  func (p *DataPageHeader) GetDefinitionLevelEncoding() Encoding {
  3726  	return p.DefinitionLevelEncoding
  3727  }
  3728  
  3729  func (p *DataPageHeader) GetRepetitionLevelEncoding() Encoding {
  3730  	return p.RepetitionLevelEncoding
  3731  }
  3732  
  3733  var DataPageHeader_Statistics_DEFAULT *Statistics
  3734  
  3735  func (p *DataPageHeader) GetStatistics() *Statistics {
  3736  	if !p.IsSetStatistics() {
  3737  		return DataPageHeader_Statistics_DEFAULT
  3738  	}
  3739  	return p.Statistics
  3740  }
  3741  func (p *DataPageHeader) IsSetStatistics() bool {
  3742  	return p.Statistics != nil
  3743  }
  3744  
  3745  func (p *DataPageHeader) Read(iprot thrift.TProtocol) error {
  3746  	if _, err := iprot.ReadStructBegin(); err != nil {
  3747  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  3748  	}
  3749  
  3750  	var issetNumValues bool = false
  3751  	var issetEncoding bool = false
  3752  	var issetDefinitionLevelEncoding bool = false
  3753  	var issetRepetitionLevelEncoding bool = false
  3754  
  3755  	for {
  3756  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  3757  		if err != nil {
  3758  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  3759  		}
  3760  		if fieldTypeId == thrift.STOP {
  3761  			break
  3762  		}
  3763  		switch fieldId {
  3764  		case 1:
  3765  			if err := p.ReadField1(iprot); err != nil {
  3766  				return err
  3767  			}
  3768  			issetNumValues = true
  3769  		case 2:
  3770  			if err := p.ReadField2(iprot); err != nil {
  3771  				return err
  3772  			}
  3773  			issetEncoding = true
  3774  		case 3:
  3775  			if err := p.ReadField3(iprot); err != nil {
  3776  				return err
  3777  			}
  3778  			issetDefinitionLevelEncoding = true
  3779  		case 4:
  3780  			if err := p.ReadField4(iprot); err != nil {
  3781  				return err
  3782  			}
  3783  			issetRepetitionLevelEncoding = true
  3784  		case 5:
  3785  			if err := p.ReadField5(iprot); err != nil {
  3786  				return err
  3787  			}
  3788  		default:
  3789  			if err := iprot.Skip(fieldTypeId); err != nil {
  3790  				return err
  3791  			}
  3792  		}
  3793  		if err := iprot.ReadFieldEnd(); err != nil {
  3794  			return err
  3795  		}
  3796  	}
  3797  	if err := iprot.ReadStructEnd(); err != nil {
  3798  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  3799  	}
  3800  	if !issetNumValues {
  3801  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NumValues is not set"))
  3802  	}
  3803  	if !issetEncoding {
  3804  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Encoding is not set"))
  3805  	}
  3806  	if !issetDefinitionLevelEncoding {
  3807  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field DefinitionLevelEncoding is not set"))
  3808  	}
  3809  	if !issetRepetitionLevelEncoding {
  3810  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field RepetitionLevelEncoding is not set"))
  3811  	}
  3812  	return nil
  3813  }
  3814  
  3815  func (p *DataPageHeader) ReadField1(iprot thrift.TProtocol) error {
  3816  	if v, err := iprot.ReadI32(); err != nil {
  3817  		return thrift.PrependError("error reading field 1: ", err)
  3818  	} else {
  3819  		p.NumValues = v
  3820  	}
  3821  	return nil
  3822  }
  3823  
  3824  func (p *DataPageHeader) ReadField2(iprot thrift.TProtocol) error {
  3825  	if v, err := iprot.ReadI32(); err != nil {
  3826  		return thrift.PrependError("error reading field 2: ", err)
  3827  	} else {
  3828  		temp := Encoding(v)
  3829  		p.Encoding = temp
  3830  	}
  3831  	return nil
  3832  }
  3833  
  3834  func (p *DataPageHeader) ReadField3(iprot thrift.TProtocol) error {
  3835  	if v, err := iprot.ReadI32(); err != nil {
  3836  		return thrift.PrependError("error reading field 3: ", err)
  3837  	} else {
  3838  		temp := Encoding(v)
  3839  		p.DefinitionLevelEncoding = temp
  3840  	}
  3841  	return nil
  3842  }
  3843  
  3844  func (p *DataPageHeader) ReadField4(iprot thrift.TProtocol) error {
  3845  	if v, err := iprot.ReadI32(); err != nil {
  3846  		return thrift.PrependError("error reading field 4: ", err)
  3847  	} else {
  3848  		temp := Encoding(v)
  3849  		p.RepetitionLevelEncoding = temp
  3850  	}
  3851  	return nil
  3852  }
  3853  
  3854  func (p *DataPageHeader) ReadField5(iprot thrift.TProtocol) error {
  3855  	p.Statistics = &Statistics{}
  3856  	if err := p.Statistics.Read(iprot); err != nil {
  3857  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.Statistics), err)
  3858  	}
  3859  	return nil
  3860  }
  3861  
  3862  func (p *DataPageHeader) Write(oprot thrift.TProtocol) error {
  3863  	if err := oprot.WriteStructBegin("DataPageHeader"); err != nil {
  3864  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  3865  	}
  3866  	if p != nil {
  3867  		if err := p.writeField1(oprot); err != nil {
  3868  			return err
  3869  		}
  3870  		if err := p.writeField2(oprot); err != nil {
  3871  			return err
  3872  		}
  3873  		if err := p.writeField3(oprot); err != nil {
  3874  			return err
  3875  		}
  3876  		if err := p.writeField4(oprot); err != nil {
  3877  			return err
  3878  		}
  3879  		if err := p.writeField5(oprot); err != nil {
  3880  			return err
  3881  		}
  3882  	}
  3883  	if err := oprot.WriteFieldStop(); err != nil {
  3884  		return thrift.PrependError("write field stop error: ", err)
  3885  	}
  3886  	if err := oprot.WriteStructEnd(); err != nil {
  3887  		return thrift.PrependError("write struct stop error: ", err)
  3888  	}
  3889  	return nil
  3890  }
  3891  
  3892  func (p *DataPageHeader) writeField1(oprot thrift.TProtocol) (err error) {
  3893  	if err := oprot.WriteFieldBegin("num_values", thrift.I32, 1); err != nil {
  3894  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:num_values: ", p), err)
  3895  	}
  3896  	if err := oprot.WriteI32(p.NumValues); err != nil {
  3897  		return thrift.PrependError(fmt.Sprintf("%T.num_values (1) field write error: ", p), err)
  3898  	}
  3899  	if err := oprot.WriteFieldEnd(); err != nil {
  3900  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:num_values: ", p), err)
  3901  	}
  3902  	return err
  3903  }
  3904  
  3905  func (p *DataPageHeader) writeField2(oprot thrift.TProtocol) (err error) {
  3906  	if err := oprot.WriteFieldBegin("encoding", thrift.I32, 2); err != nil {
  3907  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:encoding: ", p), err)
  3908  	}
  3909  	if err := oprot.WriteI32(int32(p.Encoding)); err != nil {
  3910  		return thrift.PrependError(fmt.Sprintf("%T.encoding (2) field write error: ", p), err)
  3911  	}
  3912  	if err := oprot.WriteFieldEnd(); err != nil {
  3913  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:encoding: ", p), err)
  3914  	}
  3915  	return err
  3916  }
  3917  
  3918  func (p *DataPageHeader) writeField3(oprot thrift.TProtocol) (err error) {
  3919  	if err := oprot.WriteFieldBegin("definition_level_encoding", thrift.I32, 3); err != nil {
  3920  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:definition_level_encoding: ", p), err)
  3921  	}
  3922  	if err := oprot.WriteI32(int32(p.DefinitionLevelEncoding)); err != nil {
  3923  		return thrift.PrependError(fmt.Sprintf("%T.definition_level_encoding (3) field write error: ", p), err)
  3924  	}
  3925  	if err := oprot.WriteFieldEnd(); err != nil {
  3926  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:definition_level_encoding: ", p), err)
  3927  	}
  3928  	return err
  3929  }
  3930  
  3931  func (p *DataPageHeader) writeField4(oprot thrift.TProtocol) (err error) {
  3932  	if err := oprot.WriteFieldBegin("repetition_level_encoding", thrift.I32, 4); err != nil {
  3933  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:repetition_level_encoding: ", p), err)
  3934  	}
  3935  	if err := oprot.WriteI32(int32(p.RepetitionLevelEncoding)); err != nil {
  3936  		return thrift.PrependError(fmt.Sprintf("%T.repetition_level_encoding (4) field write error: ", p), err)
  3937  	}
  3938  	if err := oprot.WriteFieldEnd(); err != nil {
  3939  		return thrift.PrependError(fmt.Sprintf("%T write field end error 4:repetition_level_encoding: ", p), err)
  3940  	}
  3941  	return err
  3942  }
  3943  
  3944  func (p *DataPageHeader) writeField5(oprot thrift.TProtocol) (err error) {
  3945  	if p.IsSetStatistics() {
  3946  		if err := oprot.WriteFieldBegin("statistics", thrift.STRUCT, 5); err != nil {
  3947  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:statistics: ", p), err)
  3948  		}
  3949  		if err := p.Statistics.Write(oprot); err != nil {
  3950  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.Statistics), err)
  3951  		}
  3952  		if err := oprot.WriteFieldEnd(); err != nil {
  3953  			return thrift.PrependError(fmt.Sprintf("%T write field end error 5:statistics: ", p), err)
  3954  		}
  3955  	}
  3956  	return err
  3957  }
  3958  
  3959  func (p *DataPageHeader) String() string {
  3960  	if p == nil {
  3961  		return "<nil>"
  3962  	}
  3963  	return fmt.Sprintf("DataPageHeader(%+v)", *p)
  3964  }
  3965  
  3966  type IndexPageHeader struct {
  3967  }
  3968  
  3969  func NewIndexPageHeader() *IndexPageHeader {
  3970  	return &IndexPageHeader{}
  3971  }
  3972  
  3973  func (p *IndexPageHeader) Read(iprot thrift.TProtocol) error {
  3974  	if _, err := iprot.ReadStructBegin(); err != nil {
  3975  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  3976  	}
  3977  
  3978  	for {
  3979  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  3980  		if err != nil {
  3981  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  3982  		}
  3983  		if fieldTypeId == thrift.STOP {
  3984  			break
  3985  		}
  3986  		if err := iprot.Skip(fieldTypeId); err != nil {
  3987  			return err
  3988  		}
  3989  		if err := iprot.ReadFieldEnd(); err != nil {
  3990  			return err
  3991  		}
  3992  	}
  3993  	if err := iprot.ReadStructEnd(); err != nil {
  3994  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  3995  	}
  3996  	return nil
  3997  }
  3998  
  3999  func (p *IndexPageHeader) Write(oprot thrift.TProtocol) error {
  4000  	if err := oprot.WriteStructBegin("IndexPageHeader"); err != nil {
  4001  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  4002  	}
  4003  	if p != nil {
  4004  	}
  4005  	if err := oprot.WriteFieldStop(); err != nil {
  4006  		return thrift.PrependError("write field stop error: ", err)
  4007  	}
  4008  	if err := oprot.WriteStructEnd(); err != nil {
  4009  		return thrift.PrependError("write struct stop error: ", err)
  4010  	}
  4011  	return nil
  4012  }
  4013  
  4014  func (p *IndexPageHeader) String() string {
  4015  	if p == nil {
  4016  		return "<nil>"
  4017  	}
  4018  	return fmt.Sprintf("IndexPageHeader(%+v)", *p)
  4019  }
  4020  
  4021  // TODO: *
  4022  //
  4023  // Attributes:
  4024  //  - NumValues: Number of values in the dictionary *
  4025  //  - Encoding: Encoding using this dictionary page *
  4026  //  - IsSorted: If true, the entries in the dictionary are sorted in ascending order *
  4027  type DictionaryPageHeader struct {
  4028  	NumValues int32    `thrift:"num_values,1,required" db:"num_values" json:"num_values"`
  4029  	Encoding  Encoding `thrift:"encoding,2,required" db:"encoding" json:"encoding"`
  4030  	IsSorted  *bool    `thrift:"is_sorted,3" db:"is_sorted" json:"is_sorted,omitempty"`
  4031  }
  4032  
  4033  func NewDictionaryPageHeader() *DictionaryPageHeader {
  4034  	return &DictionaryPageHeader{}
  4035  }
  4036  
  4037  func (p *DictionaryPageHeader) GetNumValues() int32 {
  4038  	return p.NumValues
  4039  }
  4040  
  4041  func (p *DictionaryPageHeader) GetEncoding() Encoding {
  4042  	return p.Encoding
  4043  }
  4044  
  4045  var DictionaryPageHeader_IsSorted_DEFAULT bool
  4046  
  4047  func (p *DictionaryPageHeader) GetIsSorted() bool {
  4048  	if !p.IsSetIsSorted() {
  4049  		return DictionaryPageHeader_IsSorted_DEFAULT
  4050  	}
  4051  	return *p.IsSorted
  4052  }
  4053  func (p *DictionaryPageHeader) IsSetIsSorted() bool {
  4054  	return p.IsSorted != nil
  4055  }
  4056  
  4057  func (p *DictionaryPageHeader) Read(iprot thrift.TProtocol) error {
  4058  	if _, err := iprot.ReadStructBegin(); err != nil {
  4059  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  4060  	}
  4061  
  4062  	var issetNumValues bool = false
  4063  	var issetEncoding bool = false
  4064  
  4065  	for {
  4066  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  4067  		if err != nil {
  4068  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  4069  		}
  4070  		if fieldTypeId == thrift.STOP {
  4071  			break
  4072  		}
  4073  		switch fieldId {
  4074  		case 1:
  4075  			if err := p.ReadField1(iprot); err != nil {
  4076  				return err
  4077  			}
  4078  			issetNumValues = true
  4079  		case 2:
  4080  			if err := p.ReadField2(iprot); err != nil {
  4081  				return err
  4082  			}
  4083  			issetEncoding = true
  4084  		case 3:
  4085  			if err := p.ReadField3(iprot); err != nil {
  4086  				return err
  4087  			}
  4088  		default:
  4089  			if err := iprot.Skip(fieldTypeId); err != nil {
  4090  				return err
  4091  			}
  4092  		}
  4093  		if err := iprot.ReadFieldEnd(); err != nil {
  4094  			return err
  4095  		}
  4096  	}
  4097  	if err := iprot.ReadStructEnd(); err != nil {
  4098  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  4099  	}
  4100  	if !issetNumValues {
  4101  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NumValues is not set"))
  4102  	}
  4103  	if !issetEncoding {
  4104  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Encoding is not set"))
  4105  	}
  4106  	return nil
  4107  }
  4108  
  4109  func (p *DictionaryPageHeader) ReadField1(iprot thrift.TProtocol) error {
  4110  	if v, err := iprot.ReadI32(); err != nil {
  4111  		return thrift.PrependError("error reading field 1: ", err)
  4112  	} else {
  4113  		p.NumValues = v
  4114  	}
  4115  	return nil
  4116  }
  4117  
  4118  func (p *DictionaryPageHeader) ReadField2(iprot thrift.TProtocol) error {
  4119  	if v, err := iprot.ReadI32(); err != nil {
  4120  		return thrift.PrependError("error reading field 2: ", err)
  4121  	} else {
  4122  		temp := Encoding(v)
  4123  		p.Encoding = temp
  4124  	}
  4125  	return nil
  4126  }
  4127  
  4128  func (p *DictionaryPageHeader) ReadField3(iprot thrift.TProtocol) error {
  4129  	if v, err := iprot.ReadBool(); err != nil {
  4130  		return thrift.PrependError("error reading field 3: ", err)
  4131  	} else {
  4132  		p.IsSorted = &v
  4133  	}
  4134  	return nil
  4135  }
  4136  
  4137  func (p *DictionaryPageHeader) Write(oprot thrift.TProtocol) error {
  4138  	if err := oprot.WriteStructBegin("DictionaryPageHeader"); err != nil {
  4139  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  4140  	}
  4141  	if p != nil {
  4142  		if err := p.writeField1(oprot); err != nil {
  4143  			return err
  4144  		}
  4145  		if err := p.writeField2(oprot); err != nil {
  4146  			return err
  4147  		}
  4148  		if err := p.writeField3(oprot); err != nil {
  4149  			return err
  4150  		}
  4151  	}
  4152  	if err := oprot.WriteFieldStop(); err != nil {
  4153  		return thrift.PrependError("write field stop error: ", err)
  4154  	}
  4155  	if err := oprot.WriteStructEnd(); err != nil {
  4156  		return thrift.PrependError("write struct stop error: ", err)
  4157  	}
  4158  	return nil
  4159  }
  4160  
  4161  func (p *DictionaryPageHeader) writeField1(oprot thrift.TProtocol) (err error) {
  4162  	if err := oprot.WriteFieldBegin("num_values", thrift.I32, 1); err != nil {
  4163  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:num_values: ", p), err)
  4164  	}
  4165  	if err := oprot.WriteI32(p.NumValues); err != nil {
  4166  		return thrift.PrependError(fmt.Sprintf("%T.num_values (1) field write error: ", p), err)
  4167  	}
  4168  	if err := oprot.WriteFieldEnd(); err != nil {
  4169  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:num_values: ", p), err)
  4170  	}
  4171  	return err
  4172  }
  4173  
  4174  func (p *DictionaryPageHeader) writeField2(oprot thrift.TProtocol) (err error) {
  4175  	if err := oprot.WriteFieldBegin("encoding", thrift.I32, 2); err != nil {
  4176  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:encoding: ", p), err)
  4177  	}
  4178  	if err := oprot.WriteI32(int32(p.Encoding)); err != nil {
  4179  		return thrift.PrependError(fmt.Sprintf("%T.encoding (2) field write error: ", p), err)
  4180  	}
  4181  	if err := oprot.WriteFieldEnd(); err != nil {
  4182  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:encoding: ", p), err)
  4183  	}
  4184  	return err
  4185  }
  4186  
  4187  func (p *DictionaryPageHeader) writeField3(oprot thrift.TProtocol) (err error) {
  4188  	if p.IsSetIsSorted() {
  4189  		if err := oprot.WriteFieldBegin("is_sorted", thrift.BOOL, 3); err != nil {
  4190  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:is_sorted: ", p), err)
  4191  		}
  4192  		if err := oprot.WriteBool(*p.IsSorted); err != nil {
  4193  			return thrift.PrependError(fmt.Sprintf("%T.is_sorted (3) field write error: ", p), err)
  4194  		}
  4195  		if err := oprot.WriteFieldEnd(); err != nil {
  4196  			return thrift.PrependError(fmt.Sprintf("%T write field end error 3:is_sorted: ", p), err)
  4197  		}
  4198  	}
  4199  	return err
  4200  }
  4201  
  4202  func (p *DictionaryPageHeader) String() string {
  4203  	if p == nil {
  4204  		return "<nil>"
  4205  	}
  4206  	return fmt.Sprintf("DictionaryPageHeader(%+v)", *p)
  4207  }
  4208  
  4209  // New page format allowing reading levels without decompressing the data
  4210  // Repetition and definition levels are uncompressed
  4211  // The remaining section containing the data is compressed if is_compressed is true
  4212  //
  4213  //
  4214  // Attributes:
  4215  //  - NumValues: Number of values, including NULLs, in this data page. *
  4216  //  - NumNulls: Number of NULL values, in this data page.
  4217  // Number of non-null = num_values - num_nulls which is also the number of values in the data section *
  4218  //  - NumRows: Number of rows in this data page. which means pages change on record boundaries (r = 0) *
  4219  //  - Encoding: Encoding used for data in this page *
  4220  //  - DefinitionLevelsByteLength: length of the definition levels
  4221  //  - RepetitionLevelsByteLength: length of the repetition levels
  4222  //  - IsCompressed: whether the values are compressed.
  4223  // Which means the section of the page between
  4224  // definition_levels_byte_length + repetition_levels_byte_length + 1 and compressed_page_size (included)
  4225  // is compressed with the compression_codec.
  4226  // If missing it is considered compressed
  4227  //  - Statistics: optional statistics for this column chunk
  4228  type DataPageHeaderV2 struct {
  4229  	NumValues                  int32       `thrift:"num_values,1,required" db:"num_values" json:"num_values"`
  4230  	NumNulls                   int32       `thrift:"num_nulls,2,required" db:"num_nulls" json:"num_nulls"`
  4231  	NumRows                    int32       `thrift:"num_rows,3,required" db:"num_rows" json:"num_rows"`
  4232  	Encoding                   Encoding    `thrift:"encoding,4,required" db:"encoding" json:"encoding"`
  4233  	DefinitionLevelsByteLength int32       `thrift:"definition_levels_byte_length,5,required" db:"definition_levels_byte_length" json:"definition_levels_byte_length"`
  4234  	RepetitionLevelsByteLength int32       `thrift:"repetition_levels_byte_length,6,required" db:"repetition_levels_byte_length" json:"repetition_levels_byte_length"`
  4235  	IsCompressed               bool        `thrift:"is_compressed,7" db:"is_compressed" json:"is_compressed,omitempty"`
  4236  	Statistics                 *Statistics `thrift:"statistics,8" db:"statistics" json:"statistics,omitempty"`
  4237  }
  4238  
  4239  func NewDataPageHeaderV2() *DataPageHeaderV2 {
  4240  	return &DataPageHeaderV2{
  4241  		IsCompressed: true,
  4242  	}
  4243  }
  4244  
  4245  func (p *DataPageHeaderV2) GetNumValues() int32 {
  4246  	return p.NumValues
  4247  }
  4248  
  4249  func (p *DataPageHeaderV2) GetNumNulls() int32 {
  4250  	return p.NumNulls
  4251  }
  4252  
  4253  func (p *DataPageHeaderV2) GetNumRows() int32 {
  4254  	return p.NumRows
  4255  }
  4256  
  4257  func (p *DataPageHeaderV2) GetEncoding() Encoding {
  4258  	return p.Encoding
  4259  }
  4260  
  4261  func (p *DataPageHeaderV2) GetDefinitionLevelsByteLength() int32 {
  4262  	return p.DefinitionLevelsByteLength
  4263  }
  4264  
  4265  func (p *DataPageHeaderV2) GetRepetitionLevelsByteLength() int32 {
  4266  	return p.RepetitionLevelsByteLength
  4267  }
  4268  
  4269  var DataPageHeaderV2_IsCompressed_DEFAULT bool = true
  4270  
  4271  func (p *DataPageHeaderV2) GetIsCompressed() bool {
  4272  	return p.IsCompressed
  4273  }
  4274  
  4275  var DataPageHeaderV2_Statistics_DEFAULT *Statistics
  4276  
  4277  func (p *DataPageHeaderV2) GetStatistics() *Statistics {
  4278  	if !p.IsSetStatistics() {
  4279  		return DataPageHeaderV2_Statistics_DEFAULT
  4280  	}
  4281  	return p.Statistics
  4282  }
  4283  func (p *DataPageHeaderV2) IsSetIsCompressed() bool {
  4284  	return p.IsCompressed != DataPageHeaderV2_IsCompressed_DEFAULT
  4285  }
  4286  
  4287  func (p *DataPageHeaderV2) IsSetStatistics() bool {
  4288  	return p.Statistics != nil
  4289  }
  4290  
  4291  func (p *DataPageHeaderV2) Read(iprot thrift.TProtocol) error {
  4292  	if _, err := iprot.ReadStructBegin(); err != nil {
  4293  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  4294  	}
  4295  
  4296  	var issetNumValues bool = false
  4297  	var issetNumNulls bool = false
  4298  	var issetNumRows bool = false
  4299  	var issetEncoding bool = false
  4300  	var issetDefinitionLevelsByteLength bool = false
  4301  	var issetRepetitionLevelsByteLength bool = false
  4302  
  4303  	for {
  4304  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  4305  		if err != nil {
  4306  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  4307  		}
  4308  		if fieldTypeId == thrift.STOP {
  4309  			break
  4310  		}
  4311  		switch fieldId {
  4312  		case 1:
  4313  			if err := p.ReadField1(iprot); err != nil {
  4314  				return err
  4315  			}
  4316  			issetNumValues = true
  4317  		case 2:
  4318  			if err := p.ReadField2(iprot); err != nil {
  4319  				return err
  4320  			}
  4321  			issetNumNulls = true
  4322  		case 3:
  4323  			if err := p.ReadField3(iprot); err != nil {
  4324  				return err
  4325  			}
  4326  			issetNumRows = true
  4327  		case 4:
  4328  			if err := p.ReadField4(iprot); err != nil {
  4329  				return err
  4330  			}
  4331  			issetEncoding = true
  4332  		case 5:
  4333  			if err := p.ReadField5(iprot); err != nil {
  4334  				return err
  4335  			}
  4336  			issetDefinitionLevelsByteLength = true
  4337  		case 6:
  4338  			if err := p.ReadField6(iprot); err != nil {
  4339  				return err
  4340  			}
  4341  			issetRepetitionLevelsByteLength = true
  4342  		case 7:
  4343  			if err := p.ReadField7(iprot); err != nil {
  4344  				return err
  4345  			}
  4346  		case 8:
  4347  			if err := p.ReadField8(iprot); err != nil {
  4348  				return err
  4349  			}
  4350  		default:
  4351  			if err := iprot.Skip(fieldTypeId); err != nil {
  4352  				return err
  4353  			}
  4354  		}
  4355  		if err := iprot.ReadFieldEnd(); err != nil {
  4356  			return err
  4357  		}
  4358  	}
  4359  	if err := iprot.ReadStructEnd(); err != nil {
  4360  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  4361  	}
  4362  	if !issetNumValues {
  4363  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NumValues is not set"))
  4364  	}
  4365  	if !issetNumNulls {
  4366  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NumNulls is not set"))
  4367  	}
  4368  	if !issetNumRows {
  4369  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NumRows is not set"))
  4370  	}
  4371  	if !issetEncoding {
  4372  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Encoding is not set"))
  4373  	}
  4374  	if !issetDefinitionLevelsByteLength {
  4375  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field DefinitionLevelsByteLength is not set"))
  4376  	}
  4377  	if !issetRepetitionLevelsByteLength {
  4378  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field RepetitionLevelsByteLength is not set"))
  4379  	}
  4380  	return nil
  4381  }
  4382  
  4383  func (p *DataPageHeaderV2) ReadField1(iprot thrift.TProtocol) error {
  4384  	if v, err := iprot.ReadI32(); err != nil {
  4385  		return thrift.PrependError("error reading field 1: ", err)
  4386  	} else {
  4387  		p.NumValues = v
  4388  	}
  4389  	return nil
  4390  }
  4391  
  4392  func (p *DataPageHeaderV2) ReadField2(iprot thrift.TProtocol) error {
  4393  	if v, err := iprot.ReadI32(); err != nil {
  4394  		return thrift.PrependError("error reading field 2: ", err)
  4395  	} else {
  4396  		p.NumNulls = v
  4397  	}
  4398  	return nil
  4399  }
  4400  
  4401  func (p *DataPageHeaderV2) ReadField3(iprot thrift.TProtocol) error {
  4402  	if v, err := iprot.ReadI32(); err != nil {
  4403  		return thrift.PrependError("error reading field 3: ", err)
  4404  	} else {
  4405  		p.NumRows = v
  4406  	}
  4407  	return nil
  4408  }
  4409  
  4410  func (p *DataPageHeaderV2) ReadField4(iprot thrift.TProtocol) error {
  4411  	if v, err := iprot.ReadI32(); err != nil {
  4412  		return thrift.PrependError("error reading field 4: ", err)
  4413  	} else {
  4414  		temp := Encoding(v)
  4415  		p.Encoding = temp
  4416  	}
  4417  	return nil
  4418  }
  4419  
  4420  func (p *DataPageHeaderV2) ReadField5(iprot thrift.TProtocol) error {
  4421  	if v, err := iprot.ReadI32(); err != nil {
  4422  		return thrift.PrependError("error reading field 5: ", err)
  4423  	} else {
  4424  		p.DefinitionLevelsByteLength = v
  4425  	}
  4426  	return nil
  4427  }
  4428  
  4429  func (p *DataPageHeaderV2) ReadField6(iprot thrift.TProtocol) error {
  4430  	if v, err := iprot.ReadI32(); err != nil {
  4431  		return thrift.PrependError("error reading field 6: ", err)
  4432  	} else {
  4433  		p.RepetitionLevelsByteLength = v
  4434  	}
  4435  	return nil
  4436  }
  4437  
  4438  func (p *DataPageHeaderV2) ReadField7(iprot thrift.TProtocol) error {
  4439  	if v, err := iprot.ReadBool(); err != nil {
  4440  		return thrift.PrependError("error reading field 7: ", err)
  4441  	} else {
  4442  		p.IsCompressed = v
  4443  	}
  4444  	return nil
  4445  }
  4446  
  4447  func (p *DataPageHeaderV2) ReadField8(iprot thrift.TProtocol) error {
  4448  	p.Statistics = &Statistics{}
  4449  	if err := p.Statistics.Read(iprot); err != nil {
  4450  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.Statistics), err)
  4451  	}
  4452  	return nil
  4453  }
  4454  
  4455  func (p *DataPageHeaderV2) Write(oprot thrift.TProtocol) error {
  4456  	if err := oprot.WriteStructBegin("DataPageHeaderV2"); err != nil {
  4457  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  4458  	}
  4459  	if p != nil {
  4460  		if err := p.writeField1(oprot); err != nil {
  4461  			return err
  4462  		}
  4463  		if err := p.writeField2(oprot); err != nil {
  4464  			return err
  4465  		}
  4466  		if err := p.writeField3(oprot); err != nil {
  4467  			return err
  4468  		}
  4469  		if err := p.writeField4(oprot); err != nil {
  4470  			return err
  4471  		}
  4472  		if err := p.writeField5(oprot); err != nil {
  4473  			return err
  4474  		}
  4475  		if err := p.writeField6(oprot); err != nil {
  4476  			return err
  4477  		}
  4478  		if err := p.writeField7(oprot); err != nil {
  4479  			return err
  4480  		}
  4481  		if err := p.writeField8(oprot); err != nil {
  4482  			return err
  4483  		}
  4484  	}
  4485  	if err := oprot.WriteFieldStop(); err != nil {
  4486  		return thrift.PrependError("write field stop error: ", err)
  4487  	}
  4488  	if err := oprot.WriteStructEnd(); err != nil {
  4489  		return thrift.PrependError("write struct stop error: ", err)
  4490  	}
  4491  	return nil
  4492  }
  4493  
  4494  func (p *DataPageHeaderV2) writeField1(oprot thrift.TProtocol) (err error) {
  4495  	if err := oprot.WriteFieldBegin("num_values", thrift.I32, 1); err != nil {
  4496  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:num_values: ", p), err)
  4497  	}
  4498  	if err := oprot.WriteI32(p.NumValues); err != nil {
  4499  		return thrift.PrependError(fmt.Sprintf("%T.num_values (1) field write error: ", p), err)
  4500  	}
  4501  	if err := oprot.WriteFieldEnd(); err != nil {
  4502  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:num_values: ", p), err)
  4503  	}
  4504  	return err
  4505  }
  4506  
  4507  func (p *DataPageHeaderV2) writeField2(oprot thrift.TProtocol) (err error) {
  4508  	if err := oprot.WriteFieldBegin("num_nulls", thrift.I32, 2); err != nil {
  4509  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:num_nulls: ", p), err)
  4510  	}
  4511  	if err := oprot.WriteI32(p.NumNulls); err != nil {
  4512  		return thrift.PrependError(fmt.Sprintf("%T.num_nulls (2) field write error: ", p), err)
  4513  	}
  4514  	if err := oprot.WriteFieldEnd(); err != nil {
  4515  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:num_nulls: ", p), err)
  4516  	}
  4517  	return err
  4518  }
  4519  
  4520  func (p *DataPageHeaderV2) writeField3(oprot thrift.TProtocol) (err error) {
  4521  	if err := oprot.WriteFieldBegin("num_rows", thrift.I32, 3); err != nil {
  4522  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:num_rows: ", p), err)
  4523  	}
  4524  	if err := oprot.WriteI32(p.NumRows); err != nil {
  4525  		return thrift.PrependError(fmt.Sprintf("%T.num_rows (3) field write error: ", p), err)
  4526  	}
  4527  	if err := oprot.WriteFieldEnd(); err != nil {
  4528  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:num_rows: ", p), err)
  4529  	}
  4530  	return err
  4531  }
  4532  
  4533  func (p *DataPageHeaderV2) writeField4(oprot thrift.TProtocol) (err error) {
  4534  	if err := oprot.WriteFieldBegin("encoding", thrift.I32, 4); err != nil {
  4535  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:encoding: ", p), err)
  4536  	}
  4537  	if err := oprot.WriteI32(int32(p.Encoding)); err != nil {
  4538  		return thrift.PrependError(fmt.Sprintf("%T.encoding (4) field write error: ", p), err)
  4539  	}
  4540  	if err := oprot.WriteFieldEnd(); err != nil {
  4541  		return thrift.PrependError(fmt.Sprintf("%T write field end error 4:encoding: ", p), err)
  4542  	}
  4543  	return err
  4544  }
  4545  
  4546  func (p *DataPageHeaderV2) writeField5(oprot thrift.TProtocol) (err error) {
  4547  	if err := oprot.WriteFieldBegin("definition_levels_byte_length", thrift.I32, 5); err != nil {
  4548  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:definition_levels_byte_length: ", p), err)
  4549  	}
  4550  	if err := oprot.WriteI32(p.DefinitionLevelsByteLength); err != nil {
  4551  		return thrift.PrependError(fmt.Sprintf("%T.definition_levels_byte_length (5) field write error: ", p), err)
  4552  	}
  4553  	if err := oprot.WriteFieldEnd(); err != nil {
  4554  		return thrift.PrependError(fmt.Sprintf("%T write field end error 5:definition_levels_byte_length: ", p), err)
  4555  	}
  4556  	return err
  4557  }
  4558  
  4559  func (p *DataPageHeaderV2) writeField6(oprot thrift.TProtocol) (err error) {
  4560  	if err := oprot.WriteFieldBegin("repetition_levels_byte_length", thrift.I32, 6); err != nil {
  4561  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 6:repetition_levels_byte_length: ", p), err)
  4562  	}
  4563  	if err := oprot.WriteI32(p.RepetitionLevelsByteLength); err != nil {
  4564  		return thrift.PrependError(fmt.Sprintf("%T.repetition_levels_byte_length (6) field write error: ", p), err)
  4565  	}
  4566  	if err := oprot.WriteFieldEnd(); err != nil {
  4567  		return thrift.PrependError(fmt.Sprintf("%T write field end error 6:repetition_levels_byte_length: ", p), err)
  4568  	}
  4569  	return err
  4570  }
  4571  
  4572  func (p *DataPageHeaderV2) writeField7(oprot thrift.TProtocol) (err error) {
  4573  	if p.IsSetIsCompressed() {
  4574  		if err := oprot.WriteFieldBegin("is_compressed", thrift.BOOL, 7); err != nil {
  4575  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 7:is_compressed: ", p), err)
  4576  		}
  4577  		if err := oprot.WriteBool(p.IsCompressed); err != nil {
  4578  			return thrift.PrependError(fmt.Sprintf("%T.is_compressed (7) field write error: ", p), err)
  4579  		}
  4580  		if err := oprot.WriteFieldEnd(); err != nil {
  4581  			return thrift.PrependError(fmt.Sprintf("%T write field end error 7:is_compressed: ", p), err)
  4582  		}
  4583  	}
  4584  	return err
  4585  }
  4586  
  4587  func (p *DataPageHeaderV2) writeField8(oprot thrift.TProtocol) (err error) {
  4588  	if p.IsSetStatistics() {
  4589  		if err := oprot.WriteFieldBegin("statistics", thrift.STRUCT, 8); err != nil {
  4590  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 8:statistics: ", p), err)
  4591  		}
  4592  		if err := p.Statistics.Write(oprot); err != nil {
  4593  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.Statistics), err)
  4594  		}
  4595  		if err := oprot.WriteFieldEnd(); err != nil {
  4596  			return thrift.PrependError(fmt.Sprintf("%T write field end error 8:statistics: ", p), err)
  4597  		}
  4598  	}
  4599  	return err
  4600  }
  4601  
  4602  func (p *DataPageHeaderV2) String() string {
  4603  	if p == nil {
  4604  		return "<nil>"
  4605  	}
  4606  	return fmt.Sprintf("DataPageHeaderV2(%+v)", *p)
  4607  }
  4608  
  4609  // Attributes:
  4610  //  - Type: the type of the page: indicates which of the *_header fields is set *
  4611  //  - UncompressedPageSize: Uncompressed page size in bytes (not including this header) *
  4612  //  - CompressedPageSize: Compressed page size in bytes (not including this header) *
  4613  //  - Crc: 32bit crc for the data below. This allows for disabling checksumming in HDFS
  4614  // if only a few pages needs to be read
  4615  //
  4616  //  - DataPageHeader
  4617  //  - IndexPageHeader
  4618  //  - DictionaryPageHeader
  4619  //  - DataPageHeaderV2
  4620  type PageHeader struct {
  4621  	Type                 PageType              `thrift:"type,1,required" db:"type" json:"type"`
  4622  	UncompressedPageSize int32                 `thrift:"uncompressed_page_size,2,required" db:"uncompressed_page_size" json:"uncompressed_page_size"`
  4623  	CompressedPageSize   int32                 `thrift:"compressed_page_size,3,required" db:"compressed_page_size" json:"compressed_page_size"`
  4624  	Crc                  *int32                `thrift:"crc,4" db:"crc" json:"crc,omitempty"`
  4625  	DataPageHeader       *DataPageHeader       `thrift:"data_page_header,5" db:"data_page_header" json:"data_page_header,omitempty"`
  4626  	IndexPageHeader      *IndexPageHeader      `thrift:"index_page_header,6" db:"index_page_header" json:"index_page_header,omitempty"`
  4627  	DictionaryPageHeader *DictionaryPageHeader `thrift:"dictionary_page_header,7" db:"dictionary_page_header" json:"dictionary_page_header,omitempty"`
  4628  	DataPageHeaderV2     *DataPageHeaderV2     `thrift:"data_page_header_v2,8" db:"data_page_header_v2" json:"data_page_header_v2,omitempty"`
  4629  }
  4630  
  4631  func NewPageHeader() *PageHeader {
  4632  	return &PageHeader{}
  4633  }
  4634  
  4635  func (p *PageHeader) GetType() PageType {
  4636  	return p.Type
  4637  }
  4638  
  4639  func (p *PageHeader) GetUncompressedPageSize() int32 {
  4640  	return p.UncompressedPageSize
  4641  }
  4642  
  4643  func (p *PageHeader) GetCompressedPageSize() int32 {
  4644  	return p.CompressedPageSize
  4645  }
  4646  
  4647  var PageHeader_Crc_DEFAULT int32
  4648  
  4649  func (p *PageHeader) GetCrc() int32 {
  4650  	if !p.IsSetCrc() {
  4651  		return PageHeader_Crc_DEFAULT
  4652  	}
  4653  	return *p.Crc
  4654  }
  4655  
  4656  var PageHeader_DataPageHeader_DEFAULT *DataPageHeader
  4657  
  4658  func (p *PageHeader) GetDataPageHeader() *DataPageHeader {
  4659  	if !p.IsSetDataPageHeader() {
  4660  		return PageHeader_DataPageHeader_DEFAULT
  4661  	}
  4662  	return p.DataPageHeader
  4663  }
  4664  
  4665  var PageHeader_IndexPageHeader_DEFAULT *IndexPageHeader
  4666  
  4667  func (p *PageHeader) GetIndexPageHeader() *IndexPageHeader {
  4668  	if !p.IsSetIndexPageHeader() {
  4669  		return PageHeader_IndexPageHeader_DEFAULT
  4670  	}
  4671  	return p.IndexPageHeader
  4672  }
  4673  
  4674  var PageHeader_DictionaryPageHeader_DEFAULT *DictionaryPageHeader
  4675  
  4676  func (p *PageHeader) GetDictionaryPageHeader() *DictionaryPageHeader {
  4677  	if !p.IsSetDictionaryPageHeader() {
  4678  		return PageHeader_DictionaryPageHeader_DEFAULT
  4679  	}
  4680  	return p.DictionaryPageHeader
  4681  }
  4682  
  4683  var PageHeader_DataPageHeaderV2_DEFAULT *DataPageHeaderV2
  4684  
  4685  func (p *PageHeader) GetDataPageHeaderV2() *DataPageHeaderV2 {
  4686  	if !p.IsSetDataPageHeaderV2() {
  4687  		return PageHeader_DataPageHeaderV2_DEFAULT
  4688  	}
  4689  	return p.DataPageHeaderV2
  4690  }
  4691  func (p *PageHeader) IsSetCrc() bool {
  4692  	return p.Crc != nil
  4693  }
  4694  
  4695  func (p *PageHeader) IsSetDataPageHeader() bool {
  4696  	return p.DataPageHeader != nil
  4697  }
  4698  
  4699  func (p *PageHeader) IsSetIndexPageHeader() bool {
  4700  	return p.IndexPageHeader != nil
  4701  }
  4702  
  4703  func (p *PageHeader) IsSetDictionaryPageHeader() bool {
  4704  	return p.DictionaryPageHeader != nil
  4705  }
  4706  
  4707  func (p *PageHeader) IsSetDataPageHeaderV2() bool {
  4708  	return p.DataPageHeaderV2 != nil
  4709  }
  4710  
  4711  func (p *PageHeader) Read(iprot thrift.TProtocol) error {
  4712  	if _, err := iprot.ReadStructBegin(); err != nil {
  4713  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  4714  	}
  4715  
  4716  	var issetType bool = false
  4717  	var issetUncompressedPageSize bool = false
  4718  	var issetCompressedPageSize bool = false
  4719  
  4720  	for {
  4721  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  4722  		if err != nil {
  4723  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  4724  		}
  4725  		if fieldTypeId == thrift.STOP {
  4726  			break
  4727  		}
  4728  		switch fieldId {
  4729  		case 1:
  4730  			if err := p.ReadField1(iprot); err != nil {
  4731  				return err
  4732  			}
  4733  			issetType = true
  4734  		case 2:
  4735  			if err := p.ReadField2(iprot); err != nil {
  4736  				return err
  4737  			}
  4738  			issetUncompressedPageSize = true
  4739  		case 3:
  4740  			if err := p.ReadField3(iprot); err != nil {
  4741  				return err
  4742  			}
  4743  			issetCompressedPageSize = true
  4744  		case 4:
  4745  			if err := p.ReadField4(iprot); err != nil {
  4746  				return err
  4747  			}
  4748  		case 5:
  4749  			if err := p.ReadField5(iprot); err != nil {
  4750  				return err
  4751  			}
  4752  		case 6:
  4753  			if err := p.ReadField6(iprot); err != nil {
  4754  				return err
  4755  			}
  4756  		case 7:
  4757  			if err := p.ReadField7(iprot); err != nil {
  4758  				return err
  4759  			}
  4760  		case 8:
  4761  			if err := p.ReadField8(iprot); err != nil {
  4762  				return err
  4763  			}
  4764  		default:
  4765  			if err := iprot.Skip(fieldTypeId); err != nil {
  4766  				return err
  4767  			}
  4768  		}
  4769  		if err := iprot.ReadFieldEnd(); err != nil {
  4770  			return err
  4771  		}
  4772  	}
  4773  	if err := iprot.ReadStructEnd(); err != nil {
  4774  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  4775  	}
  4776  	if !issetType {
  4777  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Type is not set"))
  4778  	}
  4779  	if !issetUncompressedPageSize {
  4780  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field UncompressedPageSize is not set"))
  4781  	}
  4782  	if !issetCompressedPageSize {
  4783  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field CompressedPageSize is not set"))
  4784  	}
  4785  	return nil
  4786  }
  4787  
  4788  func (p *PageHeader) ReadField1(iprot thrift.TProtocol) error {
  4789  	if v, err := iprot.ReadI32(); err != nil {
  4790  		return thrift.PrependError("error reading field 1: ", err)
  4791  	} else {
  4792  		temp := PageType(v)
  4793  		p.Type = temp
  4794  	}
  4795  	return nil
  4796  }
  4797  
  4798  func (p *PageHeader) ReadField2(iprot thrift.TProtocol) error {
  4799  	if v, err := iprot.ReadI32(); err != nil {
  4800  		return thrift.PrependError("error reading field 2: ", err)
  4801  	} else {
  4802  		p.UncompressedPageSize = v
  4803  	}
  4804  	return nil
  4805  }
  4806  
  4807  func (p *PageHeader) ReadField3(iprot thrift.TProtocol) error {
  4808  	if v, err := iprot.ReadI32(); err != nil {
  4809  		return thrift.PrependError("error reading field 3: ", err)
  4810  	} else {
  4811  		p.CompressedPageSize = v
  4812  	}
  4813  	return nil
  4814  }
  4815  
  4816  func (p *PageHeader) ReadField4(iprot thrift.TProtocol) error {
  4817  	if v, err := iprot.ReadI32(); err != nil {
  4818  		return thrift.PrependError("error reading field 4: ", err)
  4819  	} else {
  4820  		p.Crc = &v
  4821  	}
  4822  	return nil
  4823  }
  4824  
  4825  func (p *PageHeader) ReadField5(iprot thrift.TProtocol) error {
  4826  	p.DataPageHeader = &DataPageHeader{}
  4827  	if err := p.DataPageHeader.Read(iprot); err != nil {
  4828  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.DataPageHeader), err)
  4829  	}
  4830  	return nil
  4831  }
  4832  
  4833  func (p *PageHeader) ReadField6(iprot thrift.TProtocol) error {
  4834  	p.IndexPageHeader = &IndexPageHeader{}
  4835  	if err := p.IndexPageHeader.Read(iprot); err != nil {
  4836  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.IndexPageHeader), err)
  4837  	}
  4838  	return nil
  4839  }
  4840  
  4841  func (p *PageHeader) ReadField7(iprot thrift.TProtocol) error {
  4842  	p.DictionaryPageHeader = &DictionaryPageHeader{}
  4843  	if err := p.DictionaryPageHeader.Read(iprot); err != nil {
  4844  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.DictionaryPageHeader), err)
  4845  	}
  4846  	return nil
  4847  }
  4848  
  4849  func (p *PageHeader) ReadField8(iprot thrift.TProtocol) error {
  4850  	p.DataPageHeaderV2 = &DataPageHeaderV2{
  4851  		IsCompressed: true,
  4852  	}
  4853  	if err := p.DataPageHeaderV2.Read(iprot); err != nil {
  4854  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.DataPageHeaderV2), err)
  4855  	}
  4856  	return nil
  4857  }
  4858  
  4859  func (p *PageHeader) Write(oprot thrift.TProtocol) error {
  4860  	if err := oprot.WriteStructBegin("PageHeader"); err != nil {
  4861  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  4862  	}
  4863  	if p != nil {
  4864  		if err := p.writeField1(oprot); err != nil {
  4865  			return err
  4866  		}
  4867  		if err := p.writeField2(oprot); err != nil {
  4868  			return err
  4869  		}
  4870  		if err := p.writeField3(oprot); err != nil {
  4871  			return err
  4872  		}
  4873  		if err := p.writeField4(oprot); err != nil {
  4874  			return err
  4875  		}
  4876  		if err := p.writeField5(oprot); err != nil {
  4877  			return err
  4878  		}
  4879  		if err := p.writeField6(oprot); err != nil {
  4880  			return err
  4881  		}
  4882  		if err := p.writeField7(oprot); err != nil {
  4883  			return err
  4884  		}
  4885  		if err := p.writeField8(oprot); err != nil {
  4886  			return err
  4887  		}
  4888  	}
  4889  	if err := oprot.WriteFieldStop(); err != nil {
  4890  		return thrift.PrependError("write field stop error: ", err)
  4891  	}
  4892  	if err := oprot.WriteStructEnd(); err != nil {
  4893  		return thrift.PrependError("write struct stop error: ", err)
  4894  	}
  4895  	return nil
  4896  }
  4897  
  4898  func (p *PageHeader) writeField1(oprot thrift.TProtocol) (err error) {
  4899  	if err := oprot.WriteFieldBegin("type", thrift.I32, 1); err != nil {
  4900  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:type: ", p), err)
  4901  	}
  4902  	if err := oprot.WriteI32(int32(p.Type)); err != nil {
  4903  		return thrift.PrependError(fmt.Sprintf("%T.type (1) field write error: ", p), err)
  4904  	}
  4905  	if err := oprot.WriteFieldEnd(); err != nil {
  4906  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:type: ", p), err)
  4907  	}
  4908  	return err
  4909  }
  4910  
  4911  func (p *PageHeader) writeField2(oprot thrift.TProtocol) (err error) {
  4912  	if err := oprot.WriteFieldBegin("uncompressed_page_size", thrift.I32, 2); err != nil {
  4913  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:uncompressed_page_size: ", p), err)
  4914  	}
  4915  	if err := oprot.WriteI32(p.UncompressedPageSize); err != nil {
  4916  		return thrift.PrependError(fmt.Sprintf("%T.uncompressed_page_size (2) field write error: ", p), err)
  4917  	}
  4918  	if err := oprot.WriteFieldEnd(); err != nil {
  4919  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:uncompressed_page_size: ", p), err)
  4920  	}
  4921  	return err
  4922  }
  4923  
  4924  func (p *PageHeader) writeField3(oprot thrift.TProtocol) (err error) {
  4925  	if err := oprot.WriteFieldBegin("compressed_page_size", thrift.I32, 3); err != nil {
  4926  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:compressed_page_size: ", p), err)
  4927  	}
  4928  	if err := oprot.WriteI32(p.CompressedPageSize); err != nil {
  4929  		return thrift.PrependError(fmt.Sprintf("%T.compressed_page_size (3) field write error: ", p), err)
  4930  	}
  4931  	if err := oprot.WriteFieldEnd(); err != nil {
  4932  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:compressed_page_size: ", p), err)
  4933  	}
  4934  	return err
  4935  }
  4936  
  4937  func (p *PageHeader) writeField4(oprot thrift.TProtocol) (err error) {
  4938  	if p.IsSetCrc() {
  4939  		if err := oprot.WriteFieldBegin("crc", thrift.I32, 4); err != nil {
  4940  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:crc: ", p), err)
  4941  		}
  4942  		if err := oprot.WriteI32(*p.Crc); err != nil {
  4943  			return thrift.PrependError(fmt.Sprintf("%T.crc (4) field write error: ", p), err)
  4944  		}
  4945  		if err := oprot.WriteFieldEnd(); err != nil {
  4946  			return thrift.PrependError(fmt.Sprintf("%T write field end error 4:crc: ", p), err)
  4947  		}
  4948  	}
  4949  	return err
  4950  }
  4951  
  4952  func (p *PageHeader) writeField5(oprot thrift.TProtocol) (err error) {
  4953  	if p.IsSetDataPageHeader() {
  4954  		if err := oprot.WriteFieldBegin("data_page_header", thrift.STRUCT, 5); err != nil {
  4955  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:data_page_header: ", p), err)
  4956  		}
  4957  		if err := p.DataPageHeader.Write(oprot); err != nil {
  4958  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.DataPageHeader), err)
  4959  		}
  4960  		if err := oprot.WriteFieldEnd(); err != nil {
  4961  			return thrift.PrependError(fmt.Sprintf("%T write field end error 5:data_page_header: ", p), err)
  4962  		}
  4963  	}
  4964  	return err
  4965  }
  4966  
  4967  func (p *PageHeader) writeField6(oprot thrift.TProtocol) (err error) {
  4968  	if p.IsSetIndexPageHeader() {
  4969  		if err := oprot.WriteFieldBegin("index_page_header", thrift.STRUCT, 6); err != nil {
  4970  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 6:index_page_header: ", p), err)
  4971  		}
  4972  		if err := p.IndexPageHeader.Write(oprot); err != nil {
  4973  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.IndexPageHeader), err)
  4974  		}
  4975  		if err := oprot.WriteFieldEnd(); err != nil {
  4976  			return thrift.PrependError(fmt.Sprintf("%T write field end error 6:index_page_header: ", p), err)
  4977  		}
  4978  	}
  4979  	return err
  4980  }
  4981  
  4982  func (p *PageHeader) writeField7(oprot thrift.TProtocol) (err error) {
  4983  	if p.IsSetDictionaryPageHeader() {
  4984  		if err := oprot.WriteFieldBegin("dictionary_page_header", thrift.STRUCT, 7); err != nil {
  4985  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 7:dictionary_page_header: ", p), err)
  4986  		}
  4987  		if err := p.DictionaryPageHeader.Write(oprot); err != nil {
  4988  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.DictionaryPageHeader), err)
  4989  		}
  4990  		if err := oprot.WriteFieldEnd(); err != nil {
  4991  			return thrift.PrependError(fmt.Sprintf("%T write field end error 7:dictionary_page_header: ", p), err)
  4992  		}
  4993  	}
  4994  	return err
  4995  }
  4996  
  4997  func (p *PageHeader) writeField8(oprot thrift.TProtocol) (err error) {
  4998  	if p.IsSetDataPageHeaderV2() {
  4999  		if err := oprot.WriteFieldBegin("data_page_header_v2", thrift.STRUCT, 8); err != nil {
  5000  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 8:data_page_header_v2: ", p), err)
  5001  		}
  5002  		if err := p.DataPageHeaderV2.Write(oprot); err != nil {
  5003  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.DataPageHeaderV2), err)
  5004  		}
  5005  		if err := oprot.WriteFieldEnd(); err != nil {
  5006  			return thrift.PrependError(fmt.Sprintf("%T write field end error 8:data_page_header_v2: ", p), err)
  5007  		}
  5008  	}
  5009  	return err
  5010  }
  5011  
  5012  func (p *PageHeader) String() string {
  5013  	if p == nil {
  5014  		return "<nil>"
  5015  	}
  5016  	return fmt.Sprintf("PageHeader(%+v)", *p)
  5017  }
  5018  
  5019  // Wrapper struct to store key values
  5020  //
  5021  // Attributes:
  5022  //  - Key
  5023  //  - Value
  5024  type KeyValue struct {
  5025  	Key   string  `thrift:"key,1,required" db:"key" json:"key"`
  5026  	Value *string `thrift:"value,2" db:"value" json:"value,omitempty"`
  5027  }
  5028  
  5029  func NewKeyValue() *KeyValue {
  5030  	return &KeyValue{}
  5031  }
  5032  
  5033  func (p *KeyValue) GetKey() string {
  5034  	return p.Key
  5035  }
  5036  
  5037  var KeyValue_Value_DEFAULT string
  5038  
  5039  func (p *KeyValue) GetValue() string {
  5040  	if !p.IsSetValue() {
  5041  		return KeyValue_Value_DEFAULT
  5042  	}
  5043  	return *p.Value
  5044  }
  5045  func (p *KeyValue) IsSetValue() bool {
  5046  	return p.Value != nil
  5047  }
  5048  
  5049  func (p *KeyValue) Read(iprot thrift.TProtocol) error {
  5050  	if _, err := iprot.ReadStructBegin(); err != nil {
  5051  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  5052  	}
  5053  
  5054  	var issetKey bool = false
  5055  
  5056  	for {
  5057  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  5058  		if err != nil {
  5059  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  5060  		}
  5061  		if fieldTypeId == thrift.STOP {
  5062  			break
  5063  		}
  5064  		switch fieldId {
  5065  		case 1:
  5066  			if err := p.ReadField1(iprot); err != nil {
  5067  				return err
  5068  			}
  5069  			issetKey = true
  5070  		case 2:
  5071  			if err := p.ReadField2(iprot); err != nil {
  5072  				return err
  5073  			}
  5074  		default:
  5075  			if err := iprot.Skip(fieldTypeId); err != nil {
  5076  				return err
  5077  			}
  5078  		}
  5079  		if err := iprot.ReadFieldEnd(); err != nil {
  5080  			return err
  5081  		}
  5082  	}
  5083  	if err := iprot.ReadStructEnd(); err != nil {
  5084  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  5085  	}
  5086  	if !issetKey {
  5087  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Key is not set"))
  5088  	}
  5089  	return nil
  5090  }
  5091  
  5092  func (p *KeyValue) ReadField1(iprot thrift.TProtocol) error {
  5093  	if v, err := iprot.ReadString(); err != nil {
  5094  		return thrift.PrependError("error reading field 1: ", err)
  5095  	} else {
  5096  		p.Key = v
  5097  	}
  5098  	return nil
  5099  }
  5100  
  5101  func (p *KeyValue) ReadField2(iprot thrift.TProtocol) error {
  5102  	if v, err := iprot.ReadString(); err != nil {
  5103  		return thrift.PrependError("error reading field 2: ", err)
  5104  	} else {
  5105  		p.Value = &v
  5106  	}
  5107  	return nil
  5108  }
  5109  
  5110  func (p *KeyValue) Write(oprot thrift.TProtocol) error {
  5111  	if err := oprot.WriteStructBegin("KeyValue"); err != nil {
  5112  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  5113  	}
  5114  	if p != nil {
  5115  		if err := p.writeField1(oprot); err != nil {
  5116  			return err
  5117  		}
  5118  		if err := p.writeField2(oprot); err != nil {
  5119  			return err
  5120  		}
  5121  	}
  5122  	if err := oprot.WriteFieldStop(); err != nil {
  5123  		return thrift.PrependError("write field stop error: ", err)
  5124  	}
  5125  	if err := oprot.WriteStructEnd(); err != nil {
  5126  		return thrift.PrependError("write struct stop error: ", err)
  5127  	}
  5128  	return nil
  5129  }
  5130  
  5131  func (p *KeyValue) writeField1(oprot thrift.TProtocol) (err error) {
  5132  	if err := oprot.WriteFieldBegin("key", thrift.STRING, 1); err != nil {
  5133  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:key: ", p), err)
  5134  	}
  5135  	if err := oprot.WriteString(string(p.Key)); err != nil {
  5136  		return thrift.PrependError(fmt.Sprintf("%T.key (1) field write error: ", p), err)
  5137  	}
  5138  	if err := oprot.WriteFieldEnd(); err != nil {
  5139  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:key: ", p), err)
  5140  	}
  5141  	return err
  5142  }
  5143  
  5144  func (p *KeyValue) writeField2(oprot thrift.TProtocol) (err error) {
  5145  	if p.IsSetValue() {
  5146  		if err := oprot.WriteFieldBegin("value", thrift.STRING, 2); err != nil {
  5147  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:value: ", p), err)
  5148  		}
  5149  		if err := oprot.WriteString(string(*p.Value)); err != nil {
  5150  			return thrift.PrependError(fmt.Sprintf("%T.value (2) field write error: ", p), err)
  5151  		}
  5152  		if err := oprot.WriteFieldEnd(); err != nil {
  5153  			return thrift.PrependError(fmt.Sprintf("%T write field end error 2:value: ", p), err)
  5154  		}
  5155  	}
  5156  	return err
  5157  }
  5158  
  5159  func (p *KeyValue) String() string {
  5160  	if p == nil {
  5161  		return "<nil>"
  5162  	}
  5163  	return fmt.Sprintf("KeyValue(%+v)", *p)
  5164  }
  5165  
  5166  // Wrapper struct to specify sort order
  5167  //
  5168  // Attributes:
  5169  //  - ColumnIdx: The column index (in this row group) *
  5170  //  - Descending: If true, indicates this column is sorted in descending order. *
  5171  //  - NullsFirst: If true, nulls will come before non-null values, otherwise,
  5172  // nulls go at the end.
  5173  type SortingColumn struct {
  5174  	ColumnIdx  int32 `thrift:"column_idx,1,required" db:"column_idx" json:"column_idx"`
  5175  	Descending bool  `thrift:"descending,2,required" db:"descending" json:"descending"`
  5176  	NullsFirst bool  `thrift:"nulls_first,3,required" db:"nulls_first" json:"nulls_first"`
  5177  }
  5178  
  5179  func NewSortingColumn() *SortingColumn {
  5180  	return &SortingColumn{}
  5181  }
  5182  
  5183  func (p *SortingColumn) GetColumnIdx() int32 {
  5184  	return p.ColumnIdx
  5185  }
  5186  
  5187  func (p *SortingColumn) GetDescending() bool {
  5188  	return p.Descending
  5189  }
  5190  
  5191  func (p *SortingColumn) GetNullsFirst() bool {
  5192  	return p.NullsFirst
  5193  }
  5194  func (p *SortingColumn) Read(iprot thrift.TProtocol) error {
  5195  	if _, err := iprot.ReadStructBegin(); err != nil {
  5196  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  5197  	}
  5198  
  5199  	var issetColumnIdx bool = false
  5200  	var issetDescending bool = false
  5201  	var issetNullsFirst bool = false
  5202  
  5203  	for {
  5204  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  5205  		if err != nil {
  5206  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  5207  		}
  5208  		if fieldTypeId == thrift.STOP {
  5209  			break
  5210  		}
  5211  		switch fieldId {
  5212  		case 1:
  5213  			if err := p.ReadField1(iprot); err != nil {
  5214  				return err
  5215  			}
  5216  			issetColumnIdx = true
  5217  		case 2:
  5218  			if err := p.ReadField2(iprot); err != nil {
  5219  				return err
  5220  			}
  5221  			issetDescending = true
  5222  		case 3:
  5223  			if err := p.ReadField3(iprot); err != nil {
  5224  				return err
  5225  			}
  5226  			issetNullsFirst = true
  5227  		default:
  5228  			if err := iprot.Skip(fieldTypeId); err != nil {
  5229  				return err
  5230  			}
  5231  		}
  5232  		if err := iprot.ReadFieldEnd(); err != nil {
  5233  			return err
  5234  		}
  5235  	}
  5236  	if err := iprot.ReadStructEnd(); err != nil {
  5237  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  5238  	}
  5239  	if !issetColumnIdx {
  5240  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field ColumnIdx is not set"))
  5241  	}
  5242  	if !issetDescending {
  5243  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Descending is not set"))
  5244  	}
  5245  	if !issetNullsFirst {
  5246  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NullsFirst is not set"))
  5247  	}
  5248  	return nil
  5249  }
  5250  
  5251  func (p *SortingColumn) ReadField1(iprot thrift.TProtocol) error {
  5252  	if v, err := iprot.ReadI32(); err != nil {
  5253  		return thrift.PrependError("error reading field 1: ", err)
  5254  	} else {
  5255  		p.ColumnIdx = v
  5256  	}
  5257  	return nil
  5258  }
  5259  
  5260  func (p *SortingColumn) ReadField2(iprot thrift.TProtocol) error {
  5261  	if v, err := iprot.ReadBool(); err != nil {
  5262  		return thrift.PrependError("error reading field 2: ", err)
  5263  	} else {
  5264  		p.Descending = v
  5265  	}
  5266  	return nil
  5267  }
  5268  
  5269  func (p *SortingColumn) ReadField3(iprot thrift.TProtocol) error {
  5270  	if v, err := iprot.ReadBool(); err != nil {
  5271  		return thrift.PrependError("error reading field 3: ", err)
  5272  	} else {
  5273  		p.NullsFirst = v
  5274  	}
  5275  	return nil
  5276  }
  5277  
  5278  func (p *SortingColumn) Write(oprot thrift.TProtocol) error {
  5279  	if err := oprot.WriteStructBegin("SortingColumn"); err != nil {
  5280  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  5281  	}
  5282  	if p != nil {
  5283  		if err := p.writeField1(oprot); err != nil {
  5284  			return err
  5285  		}
  5286  		if err := p.writeField2(oprot); err != nil {
  5287  			return err
  5288  		}
  5289  		if err := p.writeField3(oprot); err != nil {
  5290  			return err
  5291  		}
  5292  	}
  5293  	if err := oprot.WriteFieldStop(); err != nil {
  5294  		return thrift.PrependError("write field stop error: ", err)
  5295  	}
  5296  	if err := oprot.WriteStructEnd(); err != nil {
  5297  		return thrift.PrependError("write struct stop error: ", err)
  5298  	}
  5299  	return nil
  5300  }
  5301  
  5302  func (p *SortingColumn) writeField1(oprot thrift.TProtocol) (err error) {
  5303  	if err := oprot.WriteFieldBegin("column_idx", thrift.I32, 1); err != nil {
  5304  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:column_idx: ", p), err)
  5305  	}
  5306  	if err := oprot.WriteI32(p.ColumnIdx); err != nil {
  5307  		return thrift.PrependError(fmt.Sprintf("%T.column_idx (1) field write error: ", p), err)
  5308  	}
  5309  	if err := oprot.WriteFieldEnd(); err != nil {
  5310  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:column_idx: ", p), err)
  5311  	}
  5312  	return err
  5313  }
  5314  
  5315  func (p *SortingColumn) writeField2(oprot thrift.TProtocol) (err error) {
  5316  	if err := oprot.WriteFieldBegin("descending", thrift.BOOL, 2); err != nil {
  5317  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:descending: ", p), err)
  5318  	}
  5319  	if err := oprot.WriteBool(p.Descending); err != nil {
  5320  		return thrift.PrependError(fmt.Sprintf("%T.descending (2) field write error: ", p), err)
  5321  	}
  5322  	if err := oprot.WriteFieldEnd(); err != nil {
  5323  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:descending: ", p), err)
  5324  	}
  5325  	return err
  5326  }
  5327  
  5328  func (p *SortingColumn) writeField3(oprot thrift.TProtocol) (err error) {
  5329  	if err := oprot.WriteFieldBegin("nulls_first", thrift.BOOL, 3); err != nil {
  5330  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:nulls_first: ", p), err)
  5331  	}
  5332  	if err := oprot.WriteBool(p.NullsFirst); err != nil {
  5333  		return thrift.PrependError(fmt.Sprintf("%T.nulls_first (3) field write error: ", p), err)
  5334  	}
  5335  	if err := oprot.WriteFieldEnd(); err != nil {
  5336  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:nulls_first: ", p), err)
  5337  	}
  5338  	return err
  5339  }
  5340  
  5341  func (p *SortingColumn) String() string {
  5342  	if p == nil {
  5343  		return "<nil>"
  5344  	}
  5345  	return fmt.Sprintf("SortingColumn(%+v)", *p)
  5346  }
  5347  
  5348  // statistics of a given page type and encoding
  5349  //
  5350  // Attributes:
  5351  //  - PageType: the page type (data/dic/...) *
  5352  //  - Encoding: encoding of the page *
  5353  //  - Count: number of pages of this type with this encoding *
  5354  type PageEncodingStats struct {
  5355  	PageType PageType `thrift:"page_type,1,required" db:"page_type" json:"page_type"`
  5356  	Encoding Encoding `thrift:"encoding,2,required" db:"encoding" json:"encoding"`
  5357  	Count    int32    `thrift:"count,3,required" db:"count" json:"count"`
  5358  }
  5359  
  5360  func NewPageEncodingStats() *PageEncodingStats {
  5361  	return &PageEncodingStats{}
  5362  }
  5363  
  5364  func (p *PageEncodingStats) GetPageType() PageType {
  5365  	return p.PageType
  5366  }
  5367  
  5368  func (p *PageEncodingStats) GetEncoding() Encoding {
  5369  	return p.Encoding
  5370  }
  5371  
  5372  func (p *PageEncodingStats) GetCount() int32 {
  5373  	return p.Count
  5374  }
  5375  func (p *PageEncodingStats) Read(iprot thrift.TProtocol) error {
  5376  	if _, err := iprot.ReadStructBegin(); err != nil {
  5377  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  5378  	}
  5379  
  5380  	var issetPageType bool = false
  5381  	var issetEncoding bool = false
  5382  	var issetCount bool = false
  5383  
  5384  	for {
  5385  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  5386  		if err != nil {
  5387  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  5388  		}
  5389  		if fieldTypeId == thrift.STOP {
  5390  			break
  5391  		}
  5392  		switch fieldId {
  5393  		case 1:
  5394  			if err := p.ReadField1(iprot); err != nil {
  5395  				return err
  5396  			}
  5397  			issetPageType = true
  5398  		case 2:
  5399  			if err := p.ReadField2(iprot); err != nil {
  5400  				return err
  5401  			}
  5402  			issetEncoding = true
  5403  		case 3:
  5404  			if err := p.ReadField3(iprot); err != nil {
  5405  				return err
  5406  			}
  5407  			issetCount = true
  5408  		default:
  5409  			if err := iprot.Skip(fieldTypeId); err != nil {
  5410  				return err
  5411  			}
  5412  		}
  5413  		if err := iprot.ReadFieldEnd(); err != nil {
  5414  			return err
  5415  		}
  5416  	}
  5417  	if err := iprot.ReadStructEnd(); err != nil {
  5418  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  5419  	}
  5420  	if !issetPageType {
  5421  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field PageType is not set"))
  5422  	}
  5423  	if !issetEncoding {
  5424  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Encoding is not set"))
  5425  	}
  5426  	if !issetCount {
  5427  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Count is not set"))
  5428  	}
  5429  	return nil
  5430  }
  5431  
  5432  func (p *PageEncodingStats) ReadField1(iprot thrift.TProtocol) error {
  5433  	if v, err := iprot.ReadI32(); err != nil {
  5434  		return thrift.PrependError("error reading field 1: ", err)
  5435  	} else {
  5436  		temp := PageType(v)
  5437  		p.PageType = temp
  5438  	}
  5439  	return nil
  5440  }
  5441  
  5442  func (p *PageEncodingStats) ReadField2(iprot thrift.TProtocol) error {
  5443  	if v, err := iprot.ReadI32(); err != nil {
  5444  		return thrift.PrependError("error reading field 2: ", err)
  5445  	} else {
  5446  		temp := Encoding(v)
  5447  		p.Encoding = temp
  5448  	}
  5449  	return nil
  5450  }
  5451  
  5452  func (p *PageEncodingStats) ReadField3(iprot thrift.TProtocol) error {
  5453  	if v, err := iprot.ReadI32(); err != nil {
  5454  		return thrift.PrependError("error reading field 3: ", err)
  5455  	} else {
  5456  		p.Count = v
  5457  	}
  5458  	return nil
  5459  }
  5460  
  5461  func (p *PageEncodingStats) Write(oprot thrift.TProtocol) error {
  5462  	if err := oprot.WriteStructBegin("PageEncodingStats"); err != nil {
  5463  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  5464  	}
  5465  	if p != nil {
  5466  		if err := p.writeField1(oprot); err != nil {
  5467  			return err
  5468  		}
  5469  		if err := p.writeField2(oprot); err != nil {
  5470  			return err
  5471  		}
  5472  		if err := p.writeField3(oprot); err != nil {
  5473  			return err
  5474  		}
  5475  	}
  5476  	if err := oprot.WriteFieldStop(); err != nil {
  5477  		return thrift.PrependError("write field stop error: ", err)
  5478  	}
  5479  	if err := oprot.WriteStructEnd(); err != nil {
  5480  		return thrift.PrependError("write struct stop error: ", err)
  5481  	}
  5482  	return nil
  5483  }
  5484  
  5485  func (p *PageEncodingStats) writeField1(oprot thrift.TProtocol) (err error) {
  5486  	if err := oprot.WriteFieldBegin("page_type", thrift.I32, 1); err != nil {
  5487  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:page_type: ", p), err)
  5488  	}
  5489  	if err := oprot.WriteI32(int32(p.PageType)); err != nil {
  5490  		return thrift.PrependError(fmt.Sprintf("%T.page_type (1) field write error: ", p), err)
  5491  	}
  5492  	if err := oprot.WriteFieldEnd(); err != nil {
  5493  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:page_type: ", p), err)
  5494  	}
  5495  	return err
  5496  }
  5497  
  5498  func (p *PageEncodingStats) writeField2(oprot thrift.TProtocol) (err error) {
  5499  	if err := oprot.WriteFieldBegin("encoding", thrift.I32, 2); err != nil {
  5500  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:encoding: ", p), err)
  5501  	}
  5502  	if err := oprot.WriteI32(int32(p.Encoding)); err != nil {
  5503  		return thrift.PrependError(fmt.Sprintf("%T.encoding (2) field write error: ", p), err)
  5504  	}
  5505  	if err := oprot.WriteFieldEnd(); err != nil {
  5506  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:encoding: ", p), err)
  5507  	}
  5508  	return err
  5509  }
  5510  
  5511  func (p *PageEncodingStats) writeField3(oprot thrift.TProtocol) (err error) {
  5512  	if err := oprot.WriteFieldBegin("count", thrift.I32, 3); err != nil {
  5513  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:count: ", p), err)
  5514  	}
  5515  	if err := oprot.WriteI32(p.Count); err != nil {
  5516  		return thrift.PrependError(fmt.Sprintf("%T.count (3) field write error: ", p), err)
  5517  	}
  5518  	if err := oprot.WriteFieldEnd(); err != nil {
  5519  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:count: ", p), err)
  5520  	}
  5521  	return err
  5522  }
  5523  
  5524  func (p *PageEncodingStats) String() string {
  5525  	if p == nil {
  5526  		return "<nil>"
  5527  	}
  5528  	return fmt.Sprintf("PageEncodingStats(%+v)", *p)
  5529  }
  5530  
  5531  // Description for column metadata
  5532  //
  5533  // Attributes:
  5534  //  - Type: Type of this column *
  5535  //  - Encodings: Set of all encodings used for this column. The purpose is to validate
  5536  // whether we can decode those pages. *
  5537  //  - PathInSchema: Path in schema *
  5538  //  - Codec: Compression codec *
  5539  //  - NumValues: Number of values in this column *
  5540  //  - TotalUncompressedSize: total byte size of all uncompressed pages in this column chunk (including the headers) *
  5541  //  - TotalCompressedSize: total byte size of all compressed pages in this column chunk (including the headers) *
  5542  //  - KeyValueMetadata: Optional key/value metadata *
  5543  //  - DataPageOffset: Byte offset from beginning of file to first data page *
  5544  //  - IndexPageOffset: Byte offset from beginning of file to root index page *
  5545  //  - DictionaryPageOffset: Byte offset from the beginning of file to first (only) dictionary page *
  5546  //  - Statistics: optional statistics for this column chunk
  5547  //  - EncodingStats: Set of all encodings used for pages in this column chunk.
  5548  // This information can be used to determine if all data pages are
  5549  // dictionary encoded for example *
  5550  type ColumnMetaData struct {
  5551  	Type                  Type                 `thrift:"type,1,required" db:"type" json:"type"`
  5552  	Encodings             []Encoding           `thrift:"encodings,2,required" db:"encodings" json:"encodings"`
  5553  	PathInSchema          []string             `thrift:"path_in_schema,3,required" db:"path_in_schema" json:"path_in_schema"`
  5554  	Codec                 CompressionCodec     `thrift:"codec,4,required" db:"codec" json:"codec"`
  5555  	NumValues             int64                `thrift:"num_values,5,required" db:"num_values" json:"num_values"`
  5556  	TotalUncompressedSize int64                `thrift:"total_uncompressed_size,6,required" db:"total_uncompressed_size" json:"total_uncompressed_size"`
  5557  	TotalCompressedSize   int64                `thrift:"total_compressed_size,7,required" db:"total_compressed_size" json:"total_compressed_size"`
  5558  	KeyValueMetadata      []*KeyValue          `thrift:"key_value_metadata,8" db:"key_value_metadata" json:"key_value_metadata,omitempty"`
  5559  	DataPageOffset        int64                `thrift:"data_page_offset,9,required" db:"data_page_offset" json:"data_page_offset"`
  5560  	IndexPageOffset       *int64               `thrift:"index_page_offset,10" db:"index_page_offset" json:"index_page_offset,omitempty"`
  5561  	DictionaryPageOffset  *int64               `thrift:"dictionary_page_offset,11" db:"dictionary_page_offset" json:"dictionary_page_offset,omitempty"`
  5562  	Statistics            *Statistics          `thrift:"statistics,12" db:"statistics" json:"statistics,omitempty"`
  5563  	EncodingStats         []*PageEncodingStats `thrift:"encoding_stats,13" db:"encoding_stats" json:"encoding_stats,omitempty"`
  5564  }
  5565  
  5566  func NewColumnMetaData() *ColumnMetaData {
  5567  	return &ColumnMetaData{}
  5568  }
  5569  
  5570  func (p *ColumnMetaData) GetType() Type {
  5571  	return p.Type
  5572  }
  5573  
  5574  func (p *ColumnMetaData) GetEncodings() []Encoding {
  5575  	return p.Encodings
  5576  }
  5577  
  5578  func (p *ColumnMetaData) GetPathInSchema() []string {
  5579  	return p.PathInSchema
  5580  }
  5581  
  5582  func (p *ColumnMetaData) GetCodec() CompressionCodec {
  5583  	return p.Codec
  5584  }
  5585  
  5586  func (p *ColumnMetaData) GetNumValues() int64 {
  5587  	return p.NumValues
  5588  }
  5589  
  5590  func (p *ColumnMetaData) GetTotalUncompressedSize() int64 {
  5591  	return p.TotalUncompressedSize
  5592  }
  5593  
  5594  func (p *ColumnMetaData) GetTotalCompressedSize() int64 {
  5595  	return p.TotalCompressedSize
  5596  }
  5597  
  5598  var ColumnMetaData_KeyValueMetadata_DEFAULT []*KeyValue
  5599  
  5600  func (p *ColumnMetaData) GetKeyValueMetadata() []*KeyValue {
  5601  	return p.KeyValueMetadata
  5602  }
  5603  
  5604  func (p *ColumnMetaData) GetDataPageOffset() int64 {
  5605  	return p.DataPageOffset
  5606  }
  5607  
  5608  var ColumnMetaData_IndexPageOffset_DEFAULT int64
  5609  
  5610  func (p *ColumnMetaData) GetIndexPageOffset() int64 {
  5611  	if !p.IsSetIndexPageOffset() {
  5612  		return ColumnMetaData_IndexPageOffset_DEFAULT
  5613  	}
  5614  	return *p.IndexPageOffset
  5615  }
  5616  
  5617  var ColumnMetaData_DictionaryPageOffset_DEFAULT int64
  5618  
  5619  func (p *ColumnMetaData) GetDictionaryPageOffset() int64 {
  5620  	if !p.IsSetDictionaryPageOffset() {
  5621  		return ColumnMetaData_DictionaryPageOffset_DEFAULT
  5622  	}
  5623  	return *p.DictionaryPageOffset
  5624  }
  5625  
  5626  var ColumnMetaData_Statistics_DEFAULT *Statistics
  5627  
  5628  func (p *ColumnMetaData) GetStatistics() *Statistics {
  5629  	if !p.IsSetStatistics() {
  5630  		return ColumnMetaData_Statistics_DEFAULT
  5631  	}
  5632  	return p.Statistics
  5633  }
  5634  
  5635  var ColumnMetaData_EncodingStats_DEFAULT []*PageEncodingStats
  5636  
  5637  func (p *ColumnMetaData) GetEncodingStats() []*PageEncodingStats {
  5638  	return p.EncodingStats
  5639  }
  5640  func (p *ColumnMetaData) IsSetKeyValueMetadata() bool {
  5641  	return p.KeyValueMetadata != nil
  5642  }
  5643  
  5644  func (p *ColumnMetaData) IsSetIndexPageOffset() bool {
  5645  	return p.IndexPageOffset != nil
  5646  }
  5647  
  5648  func (p *ColumnMetaData) IsSetDictionaryPageOffset() bool {
  5649  	return p.DictionaryPageOffset != nil
  5650  }
  5651  
  5652  func (p *ColumnMetaData) IsSetStatistics() bool {
  5653  	return p.Statistics != nil
  5654  }
  5655  
  5656  func (p *ColumnMetaData) IsSetEncodingStats() bool {
  5657  	return p.EncodingStats != nil
  5658  }
  5659  
  5660  func (p *ColumnMetaData) Read(iprot thrift.TProtocol) error {
  5661  	if _, err := iprot.ReadStructBegin(); err != nil {
  5662  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  5663  	}
  5664  
  5665  	var issetType bool = false
  5666  	var issetEncodings bool = false
  5667  	var issetPathInSchema bool = false
  5668  	var issetCodec bool = false
  5669  	var issetNumValues bool = false
  5670  	var issetTotalUncompressedSize bool = false
  5671  	var issetTotalCompressedSize bool = false
  5672  	var issetDataPageOffset bool = false
  5673  
  5674  	for {
  5675  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  5676  		if err != nil {
  5677  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  5678  		}
  5679  		if fieldTypeId == thrift.STOP {
  5680  			break
  5681  		}
  5682  		switch fieldId {
  5683  		case 1:
  5684  			if err := p.ReadField1(iprot); err != nil {
  5685  				return err
  5686  			}
  5687  			issetType = true
  5688  		case 2:
  5689  			if err := p.ReadField2(iprot); err != nil {
  5690  				return err
  5691  			}
  5692  			issetEncodings = true
  5693  		case 3:
  5694  			if err := p.ReadField3(iprot); err != nil {
  5695  				return err
  5696  			}
  5697  			issetPathInSchema = true
  5698  		case 4:
  5699  			if err := p.ReadField4(iprot); err != nil {
  5700  				return err
  5701  			}
  5702  			issetCodec = true
  5703  		case 5:
  5704  			if err := p.ReadField5(iprot); err != nil {
  5705  				return err
  5706  			}
  5707  			issetNumValues = true
  5708  		case 6:
  5709  			if err := p.ReadField6(iprot); err != nil {
  5710  				return err
  5711  			}
  5712  			issetTotalUncompressedSize = true
  5713  		case 7:
  5714  			if err := p.ReadField7(iprot); err != nil {
  5715  				return err
  5716  			}
  5717  			issetTotalCompressedSize = true
  5718  		case 8:
  5719  			if err := p.ReadField8(iprot); err != nil {
  5720  				return err
  5721  			}
  5722  		case 9:
  5723  			if err := p.ReadField9(iprot); err != nil {
  5724  				return err
  5725  			}
  5726  			issetDataPageOffset = true
  5727  		case 10:
  5728  			if err := p.ReadField10(iprot); err != nil {
  5729  				return err
  5730  			}
  5731  		case 11:
  5732  			if err := p.ReadField11(iprot); err != nil {
  5733  				return err
  5734  			}
  5735  		case 12:
  5736  			if err := p.ReadField12(iprot); err != nil {
  5737  				return err
  5738  			}
  5739  		case 13:
  5740  			if err := p.ReadField13(iprot); err != nil {
  5741  				return err
  5742  			}
  5743  		default:
  5744  			if err := iprot.Skip(fieldTypeId); err != nil {
  5745  				return err
  5746  			}
  5747  		}
  5748  		if err := iprot.ReadFieldEnd(); err != nil {
  5749  			return err
  5750  		}
  5751  	}
  5752  	if err := iprot.ReadStructEnd(); err != nil {
  5753  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  5754  	}
  5755  	if !issetType {
  5756  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Type is not set"))
  5757  	}
  5758  	if !issetEncodings {
  5759  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Encodings is not set"))
  5760  	}
  5761  	if !issetPathInSchema {
  5762  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field PathInSchema is not set"))
  5763  	}
  5764  	if !issetCodec {
  5765  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Codec is not set"))
  5766  	}
  5767  	if !issetNumValues {
  5768  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NumValues is not set"))
  5769  	}
  5770  	if !issetTotalUncompressedSize {
  5771  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field TotalUncompressedSize is not set"))
  5772  	}
  5773  	if !issetTotalCompressedSize {
  5774  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field TotalCompressedSize is not set"))
  5775  	}
  5776  	if !issetDataPageOffset {
  5777  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field DataPageOffset is not set"))
  5778  	}
  5779  	return nil
  5780  }
  5781  
  5782  func (p *ColumnMetaData) ReadField1(iprot thrift.TProtocol) error {
  5783  	if v, err := iprot.ReadI32(); err != nil {
  5784  		return thrift.PrependError("error reading field 1: ", err)
  5785  	} else {
  5786  		temp := Type(v)
  5787  		p.Type = temp
  5788  	}
  5789  	return nil
  5790  }
  5791  
  5792  func (p *ColumnMetaData) ReadField2(iprot thrift.TProtocol) error {
  5793  	_, size, err := iprot.ReadListBegin()
  5794  	if err != nil {
  5795  		return thrift.PrependError("error reading list begin: ", err)
  5796  	}
  5797  	tSlice := make([]Encoding, 0, size)
  5798  	p.Encodings = tSlice
  5799  	for i := 0; i < size; i++ {
  5800  		var _elem0 Encoding
  5801  		if v, err := iprot.ReadI32(); err != nil {
  5802  			return thrift.PrependError("error reading field 0: ", err)
  5803  		} else {
  5804  			temp := Encoding(v)
  5805  			_elem0 = temp
  5806  		}
  5807  		p.Encodings = append(p.Encodings, _elem0)
  5808  	}
  5809  	if err := iprot.ReadListEnd(); err != nil {
  5810  		return thrift.PrependError("error reading list end: ", err)
  5811  	}
  5812  	return nil
  5813  }
  5814  
  5815  func (p *ColumnMetaData) ReadField3(iprot thrift.TProtocol) error {
  5816  	_, size, err := iprot.ReadListBegin()
  5817  	if err != nil {
  5818  		return thrift.PrependError("error reading list begin: ", err)
  5819  	}
  5820  	tSlice := make([]string, 0, size)
  5821  	p.PathInSchema = tSlice
  5822  	for i := 0; i < size; i++ {
  5823  		var _elem1 string
  5824  		if v, err := iprot.ReadString(); err != nil {
  5825  			return thrift.PrependError("error reading field 0: ", err)
  5826  		} else {
  5827  			_elem1 = v
  5828  		}
  5829  		p.PathInSchema = append(p.PathInSchema, _elem1)
  5830  	}
  5831  	if err := iprot.ReadListEnd(); err != nil {
  5832  		return thrift.PrependError("error reading list end: ", err)
  5833  	}
  5834  	return nil
  5835  }
  5836  
  5837  func (p *ColumnMetaData) ReadField4(iprot thrift.TProtocol) error {
  5838  	if v, err := iprot.ReadI32(); err != nil {
  5839  		return thrift.PrependError("error reading field 4: ", err)
  5840  	} else {
  5841  		temp := CompressionCodec(v)
  5842  		p.Codec = temp
  5843  	}
  5844  	return nil
  5845  }
  5846  
  5847  func (p *ColumnMetaData) ReadField5(iprot thrift.TProtocol) error {
  5848  	if v, err := iprot.ReadI64(); err != nil {
  5849  		return thrift.PrependError("error reading field 5: ", err)
  5850  	} else {
  5851  		p.NumValues = v
  5852  	}
  5853  	return nil
  5854  }
  5855  
  5856  func (p *ColumnMetaData) ReadField6(iprot thrift.TProtocol) error {
  5857  	if v, err := iprot.ReadI64(); err != nil {
  5858  		return thrift.PrependError("error reading field 6: ", err)
  5859  	} else {
  5860  		p.TotalUncompressedSize = v
  5861  	}
  5862  	return nil
  5863  }
  5864  
  5865  func (p *ColumnMetaData) ReadField7(iprot thrift.TProtocol) error {
  5866  	if v, err := iprot.ReadI64(); err != nil {
  5867  		return thrift.PrependError("error reading field 7: ", err)
  5868  	} else {
  5869  		p.TotalCompressedSize = v
  5870  	}
  5871  	return nil
  5872  }
  5873  
  5874  func (p *ColumnMetaData) ReadField8(iprot thrift.TProtocol) error {
  5875  	_, size, err := iprot.ReadListBegin()
  5876  	if err != nil {
  5877  		return thrift.PrependError("error reading list begin: ", err)
  5878  	}
  5879  	tSlice := make([]*KeyValue, 0, size)
  5880  	p.KeyValueMetadata = tSlice
  5881  	for i := 0; i < size; i++ {
  5882  		_elem2 := &KeyValue{}
  5883  		if err := _elem2.Read(iprot); err != nil {
  5884  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem2), err)
  5885  		}
  5886  		p.KeyValueMetadata = append(p.KeyValueMetadata, _elem2)
  5887  	}
  5888  	if err := iprot.ReadListEnd(); err != nil {
  5889  		return thrift.PrependError("error reading list end: ", err)
  5890  	}
  5891  	return nil
  5892  }
  5893  
  5894  func (p *ColumnMetaData) ReadField9(iprot thrift.TProtocol) error {
  5895  	if v, err := iprot.ReadI64(); err != nil {
  5896  		return thrift.PrependError("error reading field 9: ", err)
  5897  	} else {
  5898  		p.DataPageOffset = v
  5899  	}
  5900  	return nil
  5901  }
  5902  
  5903  func (p *ColumnMetaData) ReadField10(iprot thrift.TProtocol) error {
  5904  	if v, err := iprot.ReadI64(); err != nil {
  5905  		return thrift.PrependError("error reading field 10: ", err)
  5906  	} else {
  5907  		p.IndexPageOffset = &v
  5908  	}
  5909  	return nil
  5910  }
  5911  
  5912  func (p *ColumnMetaData) ReadField11(iprot thrift.TProtocol) error {
  5913  	if v, err := iprot.ReadI64(); err != nil {
  5914  		return thrift.PrependError("error reading field 11: ", err)
  5915  	} else {
  5916  		p.DictionaryPageOffset = &v
  5917  	}
  5918  	return nil
  5919  }
  5920  
  5921  func (p *ColumnMetaData) ReadField12(iprot thrift.TProtocol) error {
  5922  	p.Statistics = &Statistics{}
  5923  	if err := p.Statistics.Read(iprot); err != nil {
  5924  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.Statistics), err)
  5925  	}
  5926  	return nil
  5927  }
  5928  
  5929  func (p *ColumnMetaData) ReadField13(iprot thrift.TProtocol) error {
  5930  	_, size, err := iprot.ReadListBegin()
  5931  	if err != nil {
  5932  		return thrift.PrependError("error reading list begin: ", err)
  5933  	}
  5934  	tSlice := make([]*PageEncodingStats, 0, size)
  5935  	p.EncodingStats = tSlice
  5936  	for i := 0; i < size; i++ {
  5937  		_elem3 := &PageEncodingStats{}
  5938  		if err := _elem3.Read(iprot); err != nil {
  5939  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem3), err)
  5940  		}
  5941  		p.EncodingStats = append(p.EncodingStats, _elem3)
  5942  	}
  5943  	if err := iprot.ReadListEnd(); err != nil {
  5944  		return thrift.PrependError("error reading list end: ", err)
  5945  	}
  5946  	return nil
  5947  }
  5948  
  5949  func (p *ColumnMetaData) Write(oprot thrift.TProtocol) error {
  5950  	if err := oprot.WriteStructBegin("ColumnMetaData"); err != nil {
  5951  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  5952  	}
  5953  	if p != nil {
  5954  		if err := p.writeField1(oprot); err != nil {
  5955  			return err
  5956  		}
  5957  		if err := p.writeField2(oprot); err != nil {
  5958  			return err
  5959  		}
  5960  		if err := p.writeField3(oprot); err != nil {
  5961  			return err
  5962  		}
  5963  		if err := p.writeField4(oprot); err != nil {
  5964  			return err
  5965  		}
  5966  		if err := p.writeField5(oprot); err != nil {
  5967  			return err
  5968  		}
  5969  		if err := p.writeField6(oprot); err != nil {
  5970  			return err
  5971  		}
  5972  		if err := p.writeField7(oprot); err != nil {
  5973  			return err
  5974  		}
  5975  		if err := p.writeField8(oprot); err != nil {
  5976  			return err
  5977  		}
  5978  		if err := p.writeField9(oprot); err != nil {
  5979  			return err
  5980  		}
  5981  		if err := p.writeField10(oprot); err != nil {
  5982  			return err
  5983  		}
  5984  		if err := p.writeField11(oprot); err != nil {
  5985  			return err
  5986  		}
  5987  		if err := p.writeField12(oprot); err != nil {
  5988  			return err
  5989  		}
  5990  		if err := p.writeField13(oprot); err != nil {
  5991  			return err
  5992  		}
  5993  	}
  5994  	if err := oprot.WriteFieldStop(); err != nil {
  5995  		return thrift.PrependError("write field stop error: ", err)
  5996  	}
  5997  	if err := oprot.WriteStructEnd(); err != nil {
  5998  		return thrift.PrependError("write struct stop error: ", err)
  5999  	}
  6000  	return nil
  6001  }
  6002  
  6003  func (p *ColumnMetaData) writeField1(oprot thrift.TProtocol) (err error) {
  6004  	if err := oprot.WriteFieldBegin("type", thrift.I32, 1); err != nil {
  6005  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:type: ", p), err)
  6006  	}
  6007  	if err := oprot.WriteI32(int32(p.Type)); err != nil {
  6008  		return thrift.PrependError(fmt.Sprintf("%T.type (1) field write error: ", p), err)
  6009  	}
  6010  	if err := oprot.WriteFieldEnd(); err != nil {
  6011  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:type: ", p), err)
  6012  	}
  6013  	return err
  6014  }
  6015  
  6016  func (p *ColumnMetaData) writeField2(oprot thrift.TProtocol) (err error) {
  6017  	if err := oprot.WriteFieldBegin("encodings", thrift.LIST, 2); err != nil {
  6018  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:encodings: ", p), err)
  6019  	}
  6020  	if err := oprot.WriteListBegin(thrift.I32, len(p.Encodings)); err != nil {
  6021  		return thrift.PrependError("error writing list begin: ", err)
  6022  	}
  6023  	for _, v := range p.Encodings {
  6024  		if err := oprot.WriteI32(int32(v)); err != nil {
  6025  			return thrift.PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
  6026  		}
  6027  	}
  6028  	if err := oprot.WriteListEnd(); err != nil {
  6029  		return thrift.PrependError("error writing list end: ", err)
  6030  	}
  6031  	if err := oprot.WriteFieldEnd(); err != nil {
  6032  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:encodings: ", p), err)
  6033  	}
  6034  	return err
  6035  }
  6036  
  6037  func (p *ColumnMetaData) writeField3(oprot thrift.TProtocol) (err error) {
  6038  	if err := oprot.WriteFieldBegin("path_in_schema", thrift.LIST, 3); err != nil {
  6039  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:path_in_schema: ", p), err)
  6040  	}
  6041  	if err := oprot.WriteListBegin(thrift.STRING, len(p.PathInSchema)); err != nil {
  6042  		return thrift.PrependError("error writing list begin: ", err)
  6043  	}
  6044  	for _, v := range p.PathInSchema {
  6045  		if err := oprot.WriteString(string(v)); err != nil {
  6046  			return thrift.PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
  6047  		}
  6048  	}
  6049  	if err := oprot.WriteListEnd(); err != nil {
  6050  		return thrift.PrependError("error writing list end: ", err)
  6051  	}
  6052  	if err := oprot.WriteFieldEnd(); err != nil {
  6053  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:path_in_schema: ", p), err)
  6054  	}
  6055  	return err
  6056  }
  6057  
  6058  func (p *ColumnMetaData) writeField4(oprot thrift.TProtocol) (err error) {
  6059  	if err := oprot.WriteFieldBegin("codec", thrift.I32, 4); err != nil {
  6060  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:codec: ", p), err)
  6061  	}
  6062  	if err := oprot.WriteI32(int32(p.Codec)); err != nil {
  6063  		return thrift.PrependError(fmt.Sprintf("%T.codec (4) field write error: ", p), err)
  6064  	}
  6065  	if err := oprot.WriteFieldEnd(); err != nil {
  6066  		return thrift.PrependError(fmt.Sprintf("%T write field end error 4:codec: ", p), err)
  6067  	}
  6068  	return err
  6069  }
  6070  
  6071  func (p *ColumnMetaData) writeField5(oprot thrift.TProtocol) (err error) {
  6072  	if err := oprot.WriteFieldBegin("num_values", thrift.I64, 5); err != nil {
  6073  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:num_values: ", p), err)
  6074  	}
  6075  	if err := oprot.WriteI64(p.NumValues); err != nil {
  6076  		return thrift.PrependError(fmt.Sprintf("%T.num_values (5) field write error: ", p), err)
  6077  	}
  6078  	if err := oprot.WriteFieldEnd(); err != nil {
  6079  		return thrift.PrependError(fmt.Sprintf("%T write field end error 5:num_values: ", p), err)
  6080  	}
  6081  	return err
  6082  }
  6083  
  6084  func (p *ColumnMetaData) writeField6(oprot thrift.TProtocol) (err error) {
  6085  	if err := oprot.WriteFieldBegin("total_uncompressed_size", thrift.I64, 6); err != nil {
  6086  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 6:total_uncompressed_size: ", p), err)
  6087  	}
  6088  	if err := oprot.WriteI64(p.TotalUncompressedSize); err != nil {
  6089  		return thrift.PrependError(fmt.Sprintf("%T.total_uncompressed_size (6) field write error: ", p), err)
  6090  	}
  6091  	if err := oprot.WriteFieldEnd(); err != nil {
  6092  		return thrift.PrependError(fmt.Sprintf("%T write field end error 6:total_uncompressed_size: ", p), err)
  6093  	}
  6094  	return err
  6095  }
  6096  
  6097  func (p *ColumnMetaData) writeField7(oprot thrift.TProtocol) (err error) {
  6098  	if err := oprot.WriteFieldBegin("total_compressed_size", thrift.I64, 7); err != nil {
  6099  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 7:total_compressed_size: ", p), err)
  6100  	}
  6101  	if err := oprot.WriteI64(p.TotalCompressedSize); err != nil {
  6102  		return thrift.PrependError(fmt.Sprintf("%T.total_compressed_size (7) field write error: ", p), err)
  6103  	}
  6104  	if err := oprot.WriteFieldEnd(); err != nil {
  6105  		return thrift.PrependError(fmt.Sprintf("%T write field end error 7:total_compressed_size: ", p), err)
  6106  	}
  6107  	return err
  6108  }
  6109  
  6110  func (p *ColumnMetaData) writeField8(oprot thrift.TProtocol) (err error) {
  6111  	if p.IsSetKeyValueMetadata() {
  6112  		if err := oprot.WriteFieldBegin("key_value_metadata", thrift.LIST, 8); err != nil {
  6113  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 8:key_value_metadata: ", p), err)
  6114  		}
  6115  		if err := oprot.WriteListBegin(thrift.STRUCT, len(p.KeyValueMetadata)); err != nil {
  6116  			return thrift.PrependError("error writing list begin: ", err)
  6117  		}
  6118  		for _, v := range p.KeyValueMetadata {
  6119  			if err := v.Write(oprot); err != nil {
  6120  				return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
  6121  			}
  6122  		}
  6123  		if err := oprot.WriteListEnd(); err != nil {
  6124  			return thrift.PrependError("error writing list end: ", err)
  6125  		}
  6126  		if err := oprot.WriteFieldEnd(); err != nil {
  6127  			return thrift.PrependError(fmt.Sprintf("%T write field end error 8:key_value_metadata: ", p), err)
  6128  		}
  6129  	}
  6130  	return err
  6131  }
  6132  
  6133  func (p *ColumnMetaData) writeField9(oprot thrift.TProtocol) (err error) {
  6134  	if err := oprot.WriteFieldBegin("data_page_offset", thrift.I64, 9); err != nil {
  6135  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 9:data_page_offset: ", p), err)
  6136  	}
  6137  	if err := oprot.WriteI64(p.DataPageOffset); err != nil {
  6138  		return thrift.PrependError(fmt.Sprintf("%T.data_page_offset (9) field write error: ", p), err)
  6139  	}
  6140  	if err := oprot.WriteFieldEnd(); err != nil {
  6141  		return thrift.PrependError(fmt.Sprintf("%T write field end error 9:data_page_offset: ", p), err)
  6142  	}
  6143  	return err
  6144  }
  6145  
  6146  func (p *ColumnMetaData) writeField10(oprot thrift.TProtocol) (err error) {
  6147  	if p.IsSetIndexPageOffset() {
  6148  		if err := oprot.WriteFieldBegin("index_page_offset", thrift.I64, 10); err != nil {
  6149  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 10:index_page_offset: ", p), err)
  6150  		}
  6151  		if err := oprot.WriteI64(*p.IndexPageOffset); err != nil {
  6152  			return thrift.PrependError(fmt.Sprintf("%T.index_page_offset (10) field write error: ", p), err)
  6153  		}
  6154  		if err := oprot.WriteFieldEnd(); err != nil {
  6155  			return thrift.PrependError(fmt.Sprintf("%T write field end error 10:index_page_offset: ", p), err)
  6156  		}
  6157  	}
  6158  	return err
  6159  }
  6160  
  6161  func (p *ColumnMetaData) writeField11(oprot thrift.TProtocol) (err error) {
  6162  	if p.IsSetDictionaryPageOffset() {
  6163  		if err := oprot.WriteFieldBegin("dictionary_page_offset", thrift.I64, 11); err != nil {
  6164  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 11:dictionary_page_offset: ", p), err)
  6165  		}
  6166  		if err := oprot.WriteI64(*p.DictionaryPageOffset); err != nil {
  6167  			return thrift.PrependError(fmt.Sprintf("%T.dictionary_page_offset (11) field write error: ", p), err)
  6168  		}
  6169  		if err := oprot.WriteFieldEnd(); err != nil {
  6170  			return thrift.PrependError(fmt.Sprintf("%T write field end error 11:dictionary_page_offset: ", p), err)
  6171  		}
  6172  	}
  6173  	return err
  6174  }
  6175  
  6176  func (p *ColumnMetaData) writeField12(oprot thrift.TProtocol) (err error) {
  6177  	if p.IsSetStatistics() {
  6178  		if err := oprot.WriteFieldBegin("statistics", thrift.STRUCT, 12); err != nil {
  6179  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 12:statistics: ", p), err)
  6180  		}
  6181  		if err := p.Statistics.Write(oprot); err != nil {
  6182  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.Statistics), err)
  6183  		}
  6184  		if err := oprot.WriteFieldEnd(); err != nil {
  6185  			return thrift.PrependError(fmt.Sprintf("%T write field end error 12:statistics: ", p), err)
  6186  		}
  6187  	}
  6188  	return err
  6189  }
  6190  
  6191  func (p *ColumnMetaData) writeField13(oprot thrift.TProtocol) (err error) {
  6192  	if p.IsSetEncodingStats() {
  6193  		if err := oprot.WriteFieldBegin("encoding_stats", thrift.LIST, 13); err != nil {
  6194  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 13:encoding_stats: ", p), err)
  6195  		}
  6196  		if err := oprot.WriteListBegin(thrift.STRUCT, len(p.EncodingStats)); err != nil {
  6197  			return thrift.PrependError("error writing list begin: ", err)
  6198  		}
  6199  		for _, v := range p.EncodingStats {
  6200  			if err := v.Write(oprot); err != nil {
  6201  				return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
  6202  			}
  6203  		}
  6204  		if err := oprot.WriteListEnd(); err != nil {
  6205  			return thrift.PrependError("error writing list end: ", err)
  6206  		}
  6207  		if err := oprot.WriteFieldEnd(); err != nil {
  6208  			return thrift.PrependError(fmt.Sprintf("%T write field end error 13:encoding_stats: ", p), err)
  6209  		}
  6210  	}
  6211  	return err
  6212  }
  6213  
  6214  func (p *ColumnMetaData) String() string {
  6215  	if p == nil {
  6216  		return "<nil>"
  6217  	}
  6218  	return fmt.Sprintf("ColumnMetaData(%+v)", *p)
  6219  }
  6220  
  6221  // Attributes:
  6222  //  - FilePath: File where column data is stored.  If not set, assumed to be same file as
  6223  // metadata.  This path is relative to the current file.
  6224  //
  6225  //  - FileOffset: Byte offset in file_path to the ColumnMetaData *
  6226  //  - MetaData: Column metadata for this chunk. This is the same content as what is at
  6227  // file_path/file_offset.  Having it here has it replicated in the file
  6228  // metadata.
  6229  //
  6230  //  - OffsetIndexOffset: File offset of ColumnChunk's OffsetIndex *
  6231  //  - OffsetIndexLength: Size of ColumnChunk's OffsetIndex, in bytes *
  6232  //  - ColumnIndexOffset: File offset of ColumnChunk's ColumnIndex *
  6233  //  - ColumnIndexLength: Size of ColumnChunk's ColumnIndex, in bytes *
  6234  type ColumnChunk struct {
  6235  	FilePath          *string         `thrift:"file_path,1" db:"file_path" json:"file_path,omitempty"`
  6236  	FileOffset        int64           `thrift:"file_offset,2,required" db:"file_offset" json:"file_offset"`
  6237  	MetaData          *ColumnMetaData `thrift:"meta_data,3" db:"meta_data" json:"meta_data,omitempty"`
  6238  	OffsetIndexOffset *int64          `thrift:"offset_index_offset,4" db:"offset_index_offset" json:"offset_index_offset,omitempty"`
  6239  	OffsetIndexLength *int32          `thrift:"offset_index_length,5" db:"offset_index_length" json:"offset_index_length,omitempty"`
  6240  	ColumnIndexOffset *int64          `thrift:"column_index_offset,6" db:"column_index_offset" json:"column_index_offset,omitempty"`
  6241  	ColumnIndexLength *int32          `thrift:"column_index_length,7" db:"column_index_length" json:"column_index_length,omitempty"`
  6242  }
  6243  
  6244  func NewColumnChunk() *ColumnChunk {
  6245  	return &ColumnChunk{}
  6246  }
  6247  
  6248  var ColumnChunk_FilePath_DEFAULT string
  6249  
  6250  func (p *ColumnChunk) GetFilePath() string {
  6251  	if !p.IsSetFilePath() {
  6252  		return ColumnChunk_FilePath_DEFAULT
  6253  	}
  6254  	return *p.FilePath
  6255  }
  6256  
  6257  func (p *ColumnChunk) GetFileOffset() int64 {
  6258  	return p.FileOffset
  6259  }
  6260  
  6261  var ColumnChunk_MetaData_DEFAULT *ColumnMetaData
  6262  
  6263  func (p *ColumnChunk) GetMetaData() *ColumnMetaData {
  6264  	if !p.IsSetMetaData() {
  6265  		return ColumnChunk_MetaData_DEFAULT
  6266  	}
  6267  	return p.MetaData
  6268  }
  6269  
  6270  var ColumnChunk_OffsetIndexOffset_DEFAULT int64
  6271  
  6272  func (p *ColumnChunk) GetOffsetIndexOffset() int64 {
  6273  	if !p.IsSetOffsetIndexOffset() {
  6274  		return ColumnChunk_OffsetIndexOffset_DEFAULT
  6275  	}
  6276  	return *p.OffsetIndexOffset
  6277  }
  6278  
  6279  var ColumnChunk_OffsetIndexLength_DEFAULT int32
  6280  
  6281  func (p *ColumnChunk) GetOffsetIndexLength() int32 {
  6282  	if !p.IsSetOffsetIndexLength() {
  6283  		return ColumnChunk_OffsetIndexLength_DEFAULT
  6284  	}
  6285  	return *p.OffsetIndexLength
  6286  }
  6287  
  6288  var ColumnChunk_ColumnIndexOffset_DEFAULT int64
  6289  
  6290  func (p *ColumnChunk) GetColumnIndexOffset() int64 {
  6291  	if !p.IsSetColumnIndexOffset() {
  6292  		return ColumnChunk_ColumnIndexOffset_DEFAULT
  6293  	}
  6294  	return *p.ColumnIndexOffset
  6295  }
  6296  
  6297  var ColumnChunk_ColumnIndexLength_DEFAULT int32
  6298  
  6299  func (p *ColumnChunk) GetColumnIndexLength() int32 {
  6300  	if !p.IsSetColumnIndexLength() {
  6301  		return ColumnChunk_ColumnIndexLength_DEFAULT
  6302  	}
  6303  	return *p.ColumnIndexLength
  6304  }
  6305  func (p *ColumnChunk) IsSetFilePath() bool {
  6306  	return p.FilePath != nil
  6307  }
  6308  
  6309  func (p *ColumnChunk) IsSetMetaData() bool {
  6310  	return p.MetaData != nil
  6311  }
  6312  
  6313  func (p *ColumnChunk) IsSetOffsetIndexOffset() bool {
  6314  	return p.OffsetIndexOffset != nil
  6315  }
  6316  
  6317  func (p *ColumnChunk) IsSetOffsetIndexLength() bool {
  6318  	return p.OffsetIndexLength != nil
  6319  }
  6320  
  6321  func (p *ColumnChunk) IsSetColumnIndexOffset() bool {
  6322  	return p.ColumnIndexOffset != nil
  6323  }
  6324  
  6325  func (p *ColumnChunk) IsSetColumnIndexLength() bool {
  6326  	return p.ColumnIndexLength != nil
  6327  }
  6328  
  6329  func (p *ColumnChunk) Read(iprot thrift.TProtocol) error {
  6330  	if _, err := iprot.ReadStructBegin(); err != nil {
  6331  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  6332  	}
  6333  
  6334  	var issetFileOffset bool = false
  6335  
  6336  	for {
  6337  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  6338  		if err != nil {
  6339  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  6340  		}
  6341  		if fieldTypeId == thrift.STOP {
  6342  			break
  6343  		}
  6344  		switch fieldId {
  6345  		case 1:
  6346  			if err := p.ReadField1(iprot); err != nil {
  6347  				return err
  6348  			}
  6349  		case 2:
  6350  			if err := p.ReadField2(iprot); err != nil {
  6351  				return err
  6352  			}
  6353  			issetFileOffset = true
  6354  		case 3:
  6355  			if err := p.ReadField3(iprot); err != nil {
  6356  				return err
  6357  			}
  6358  		case 4:
  6359  			if err := p.ReadField4(iprot); err != nil {
  6360  				return err
  6361  			}
  6362  		case 5:
  6363  			if err := p.ReadField5(iprot); err != nil {
  6364  				return err
  6365  			}
  6366  		case 6:
  6367  			if err := p.ReadField6(iprot); err != nil {
  6368  				return err
  6369  			}
  6370  		case 7:
  6371  			if err := p.ReadField7(iprot); err != nil {
  6372  				return err
  6373  			}
  6374  		default:
  6375  			if err := iprot.Skip(fieldTypeId); err != nil {
  6376  				return err
  6377  			}
  6378  		}
  6379  		if err := iprot.ReadFieldEnd(); err != nil {
  6380  			return err
  6381  		}
  6382  	}
  6383  	if err := iprot.ReadStructEnd(); err != nil {
  6384  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  6385  	}
  6386  	if !issetFileOffset {
  6387  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field FileOffset is not set"))
  6388  	}
  6389  	return nil
  6390  }
  6391  
  6392  func (p *ColumnChunk) ReadField1(iprot thrift.TProtocol) error {
  6393  	if v, err := iprot.ReadString(); err != nil {
  6394  		return thrift.PrependError("error reading field 1: ", err)
  6395  	} else {
  6396  		p.FilePath = &v
  6397  	}
  6398  	return nil
  6399  }
  6400  
  6401  func (p *ColumnChunk) ReadField2(iprot thrift.TProtocol) error {
  6402  	if v, err := iprot.ReadI64(); err != nil {
  6403  		return thrift.PrependError("error reading field 2: ", err)
  6404  	} else {
  6405  		p.FileOffset = v
  6406  	}
  6407  	return nil
  6408  }
  6409  
  6410  func (p *ColumnChunk) ReadField3(iprot thrift.TProtocol) error {
  6411  	p.MetaData = &ColumnMetaData{}
  6412  	if err := p.MetaData.Read(iprot); err != nil {
  6413  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.MetaData), err)
  6414  	}
  6415  	return nil
  6416  }
  6417  
  6418  func (p *ColumnChunk) ReadField4(iprot thrift.TProtocol) error {
  6419  	if v, err := iprot.ReadI64(); err != nil {
  6420  		return thrift.PrependError("error reading field 4: ", err)
  6421  	} else {
  6422  		p.OffsetIndexOffset = &v
  6423  	}
  6424  	return nil
  6425  }
  6426  
  6427  func (p *ColumnChunk) ReadField5(iprot thrift.TProtocol) error {
  6428  	if v, err := iprot.ReadI32(); err != nil {
  6429  		return thrift.PrependError("error reading field 5: ", err)
  6430  	} else {
  6431  		p.OffsetIndexLength = &v
  6432  	}
  6433  	return nil
  6434  }
  6435  
  6436  func (p *ColumnChunk) ReadField6(iprot thrift.TProtocol) error {
  6437  	if v, err := iprot.ReadI64(); err != nil {
  6438  		return thrift.PrependError("error reading field 6: ", err)
  6439  	} else {
  6440  		p.ColumnIndexOffset = &v
  6441  	}
  6442  	return nil
  6443  }
  6444  
  6445  func (p *ColumnChunk) ReadField7(iprot thrift.TProtocol) error {
  6446  	if v, err := iprot.ReadI32(); err != nil {
  6447  		return thrift.PrependError("error reading field 7: ", err)
  6448  	} else {
  6449  		p.ColumnIndexLength = &v
  6450  	}
  6451  	return nil
  6452  }
  6453  
  6454  func (p *ColumnChunk) Write(oprot thrift.TProtocol) error {
  6455  	if err := oprot.WriteStructBegin("ColumnChunk"); err != nil {
  6456  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  6457  	}
  6458  	if p != nil {
  6459  		if err := p.writeField1(oprot); err != nil {
  6460  			return err
  6461  		}
  6462  		if err := p.writeField2(oprot); err != nil {
  6463  			return err
  6464  		}
  6465  		if err := p.writeField3(oprot); err != nil {
  6466  			return err
  6467  		}
  6468  		if err := p.writeField4(oprot); err != nil {
  6469  			return err
  6470  		}
  6471  		if err := p.writeField5(oprot); err != nil {
  6472  			return err
  6473  		}
  6474  		if err := p.writeField6(oprot); err != nil {
  6475  			return err
  6476  		}
  6477  		if err := p.writeField7(oprot); err != nil {
  6478  			return err
  6479  		}
  6480  	}
  6481  	if err := oprot.WriteFieldStop(); err != nil {
  6482  		return thrift.PrependError("write field stop error: ", err)
  6483  	}
  6484  	if err := oprot.WriteStructEnd(); err != nil {
  6485  		return thrift.PrependError("write struct stop error: ", err)
  6486  	}
  6487  	return nil
  6488  }
  6489  
  6490  func (p *ColumnChunk) writeField1(oprot thrift.TProtocol) (err error) {
  6491  	if p.IsSetFilePath() {
  6492  		if err := oprot.WriteFieldBegin("file_path", thrift.STRING, 1); err != nil {
  6493  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:file_path: ", p), err)
  6494  		}
  6495  		if err := oprot.WriteString(string(*p.FilePath)); err != nil {
  6496  			return thrift.PrependError(fmt.Sprintf("%T.file_path (1) field write error: ", p), err)
  6497  		}
  6498  		if err := oprot.WriteFieldEnd(); err != nil {
  6499  			return thrift.PrependError(fmt.Sprintf("%T write field end error 1:file_path: ", p), err)
  6500  		}
  6501  	}
  6502  	return err
  6503  }
  6504  
  6505  func (p *ColumnChunk) writeField2(oprot thrift.TProtocol) (err error) {
  6506  	if err := oprot.WriteFieldBegin("file_offset", thrift.I64, 2); err != nil {
  6507  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:file_offset: ", p), err)
  6508  	}
  6509  	if err := oprot.WriteI64(p.FileOffset); err != nil {
  6510  		return thrift.PrependError(fmt.Sprintf("%T.file_offset (2) field write error: ", p), err)
  6511  	}
  6512  	if err := oprot.WriteFieldEnd(); err != nil {
  6513  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:file_offset: ", p), err)
  6514  	}
  6515  	return err
  6516  }
  6517  
  6518  func (p *ColumnChunk) writeField3(oprot thrift.TProtocol) (err error) {
  6519  	if p.IsSetMetaData() {
  6520  		if err := oprot.WriteFieldBegin("meta_data", thrift.STRUCT, 3); err != nil {
  6521  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:meta_data: ", p), err)
  6522  		}
  6523  		if err := p.MetaData.Write(oprot); err != nil {
  6524  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.MetaData), err)
  6525  		}
  6526  		if err := oprot.WriteFieldEnd(); err != nil {
  6527  			return thrift.PrependError(fmt.Sprintf("%T write field end error 3:meta_data: ", p), err)
  6528  		}
  6529  	}
  6530  	return err
  6531  }
  6532  
  6533  func (p *ColumnChunk) writeField4(oprot thrift.TProtocol) (err error) {
  6534  	if p.IsSetOffsetIndexOffset() {
  6535  		if err := oprot.WriteFieldBegin("offset_index_offset", thrift.I64, 4); err != nil {
  6536  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:offset_index_offset: ", p), err)
  6537  		}
  6538  		if err := oprot.WriteI64(*p.OffsetIndexOffset); err != nil {
  6539  			return thrift.PrependError(fmt.Sprintf("%T.offset_index_offset (4) field write error: ", p), err)
  6540  		}
  6541  		if err := oprot.WriteFieldEnd(); err != nil {
  6542  			return thrift.PrependError(fmt.Sprintf("%T write field end error 4:offset_index_offset: ", p), err)
  6543  		}
  6544  	}
  6545  	return err
  6546  }
  6547  
  6548  func (p *ColumnChunk) writeField5(oprot thrift.TProtocol) (err error) {
  6549  	if p.IsSetOffsetIndexLength() {
  6550  		if err := oprot.WriteFieldBegin("offset_index_length", thrift.I32, 5); err != nil {
  6551  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:offset_index_length: ", p), err)
  6552  		}
  6553  		if err := oprot.WriteI32(*p.OffsetIndexLength); err != nil {
  6554  			return thrift.PrependError(fmt.Sprintf("%T.offset_index_length (5) field write error: ", p), err)
  6555  		}
  6556  		if err := oprot.WriteFieldEnd(); err != nil {
  6557  			return thrift.PrependError(fmt.Sprintf("%T write field end error 5:offset_index_length: ", p), err)
  6558  		}
  6559  	}
  6560  	return err
  6561  }
  6562  
  6563  func (p *ColumnChunk) writeField6(oprot thrift.TProtocol) (err error) {
  6564  	if p.IsSetColumnIndexOffset() {
  6565  		if err := oprot.WriteFieldBegin("column_index_offset", thrift.I64, 6); err != nil {
  6566  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 6:column_index_offset: ", p), err)
  6567  		}
  6568  		if err := oprot.WriteI64(*p.ColumnIndexOffset); err != nil {
  6569  			return thrift.PrependError(fmt.Sprintf("%T.column_index_offset (6) field write error: ", p), err)
  6570  		}
  6571  		if err := oprot.WriteFieldEnd(); err != nil {
  6572  			return thrift.PrependError(fmt.Sprintf("%T write field end error 6:column_index_offset: ", p), err)
  6573  		}
  6574  	}
  6575  	return err
  6576  }
  6577  
  6578  func (p *ColumnChunk) writeField7(oprot thrift.TProtocol) (err error) {
  6579  	if p.IsSetColumnIndexLength() {
  6580  		if err := oprot.WriteFieldBegin("column_index_length", thrift.I32, 7); err != nil {
  6581  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 7:column_index_length: ", p), err)
  6582  		}
  6583  		if err := oprot.WriteI32(*p.ColumnIndexLength); err != nil {
  6584  			return thrift.PrependError(fmt.Sprintf("%T.column_index_length (7) field write error: ", p), err)
  6585  		}
  6586  		if err := oprot.WriteFieldEnd(); err != nil {
  6587  			return thrift.PrependError(fmt.Sprintf("%T write field end error 7:column_index_length: ", p), err)
  6588  		}
  6589  	}
  6590  	return err
  6591  }
  6592  
  6593  func (p *ColumnChunk) String() string {
  6594  	if p == nil {
  6595  		return "<nil>"
  6596  	}
  6597  	return fmt.Sprintf("ColumnChunk(%+v)", *p)
  6598  }
  6599  
  6600  // Attributes:
  6601  //  - Columns: Metadata for each column chunk in this row group.
  6602  // This list must have the same order as the SchemaElement list in FileMetaData.
  6603  //
  6604  //  - TotalByteSize: Total byte size of all the uncompressed column data in this row group *
  6605  //  - NumRows: Number of rows in this row group *
  6606  //  - SortingColumns: If set, specifies a sort ordering of the rows in this RowGroup.
  6607  // The sorting columns can be a subset of all the columns.
  6608  type RowGroup struct {
  6609  	Columns        []*ColumnChunk   `thrift:"columns,1,required" db:"columns" json:"columns"`
  6610  	TotalByteSize  int64            `thrift:"total_byte_size,2,required" db:"total_byte_size" json:"total_byte_size"`
  6611  	NumRows        int64            `thrift:"num_rows,3,required" db:"num_rows" json:"num_rows"`
  6612  	SortingColumns []*SortingColumn `thrift:"sorting_columns,4" db:"sorting_columns" json:"sorting_columns,omitempty"`
  6613  }
  6614  
  6615  func NewRowGroup() *RowGroup {
  6616  	return &RowGroup{}
  6617  }
  6618  
  6619  func (p *RowGroup) GetColumns() []*ColumnChunk {
  6620  	return p.Columns
  6621  }
  6622  
  6623  func (p *RowGroup) GetTotalByteSize() int64 {
  6624  	return p.TotalByteSize
  6625  }
  6626  
  6627  func (p *RowGroup) GetNumRows() int64 {
  6628  	return p.NumRows
  6629  }
  6630  
  6631  var RowGroup_SortingColumns_DEFAULT []*SortingColumn
  6632  
  6633  func (p *RowGroup) GetSortingColumns() []*SortingColumn {
  6634  	return p.SortingColumns
  6635  }
  6636  func (p *RowGroup) IsSetSortingColumns() bool {
  6637  	return p.SortingColumns != nil
  6638  }
  6639  
  6640  func (p *RowGroup) Read(iprot thrift.TProtocol) error {
  6641  	if _, err := iprot.ReadStructBegin(); err != nil {
  6642  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  6643  	}
  6644  
  6645  	var issetColumns bool = false
  6646  	var issetTotalByteSize bool = false
  6647  	var issetNumRows bool = false
  6648  
  6649  	for {
  6650  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  6651  		if err != nil {
  6652  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  6653  		}
  6654  		if fieldTypeId == thrift.STOP {
  6655  			break
  6656  		}
  6657  		switch fieldId {
  6658  		case 1:
  6659  			if err := p.ReadField1(iprot); err != nil {
  6660  				return err
  6661  			}
  6662  			issetColumns = true
  6663  		case 2:
  6664  			if err := p.ReadField2(iprot); err != nil {
  6665  				return err
  6666  			}
  6667  			issetTotalByteSize = true
  6668  		case 3:
  6669  			if err := p.ReadField3(iprot); err != nil {
  6670  				return err
  6671  			}
  6672  			issetNumRows = true
  6673  		case 4:
  6674  			if err := p.ReadField4(iprot); err != nil {
  6675  				return err
  6676  			}
  6677  		default:
  6678  			if err := iprot.Skip(fieldTypeId); err != nil {
  6679  				return err
  6680  			}
  6681  		}
  6682  		if err := iprot.ReadFieldEnd(); err != nil {
  6683  			return err
  6684  		}
  6685  	}
  6686  	if err := iprot.ReadStructEnd(); err != nil {
  6687  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  6688  	}
  6689  	if !issetColumns {
  6690  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Columns is not set"))
  6691  	}
  6692  	if !issetTotalByteSize {
  6693  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field TotalByteSize is not set"))
  6694  	}
  6695  	if !issetNumRows {
  6696  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NumRows is not set"))
  6697  	}
  6698  	return nil
  6699  }
  6700  
  6701  func (p *RowGroup) ReadField1(iprot thrift.TProtocol) error {
  6702  	_, size, err := iprot.ReadListBegin()
  6703  	if err != nil {
  6704  		return thrift.PrependError("error reading list begin: ", err)
  6705  	}
  6706  	tSlice := make([]*ColumnChunk, 0, size)
  6707  	p.Columns = tSlice
  6708  	for i := 0; i < size; i++ {
  6709  		_elem4 := &ColumnChunk{}
  6710  		if err := _elem4.Read(iprot); err != nil {
  6711  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem4), err)
  6712  		}
  6713  		p.Columns = append(p.Columns, _elem4)
  6714  	}
  6715  	if err := iprot.ReadListEnd(); err != nil {
  6716  		return thrift.PrependError("error reading list end: ", err)
  6717  	}
  6718  	return nil
  6719  }
  6720  
  6721  func (p *RowGroup) ReadField2(iprot thrift.TProtocol) error {
  6722  	if v, err := iprot.ReadI64(); err != nil {
  6723  		return thrift.PrependError("error reading field 2: ", err)
  6724  	} else {
  6725  		p.TotalByteSize = v
  6726  	}
  6727  	return nil
  6728  }
  6729  
  6730  func (p *RowGroup) ReadField3(iprot thrift.TProtocol) error {
  6731  	if v, err := iprot.ReadI64(); err != nil {
  6732  		return thrift.PrependError("error reading field 3: ", err)
  6733  	} else {
  6734  		p.NumRows = v
  6735  	}
  6736  	return nil
  6737  }
  6738  
  6739  func (p *RowGroup) ReadField4(iprot thrift.TProtocol) error {
  6740  	_, size, err := iprot.ReadListBegin()
  6741  	if err != nil {
  6742  		return thrift.PrependError("error reading list begin: ", err)
  6743  	}
  6744  	tSlice := make([]*SortingColumn, 0, size)
  6745  	p.SortingColumns = tSlice
  6746  	for i := 0; i < size; i++ {
  6747  		_elem5 := &SortingColumn{}
  6748  		if err := _elem5.Read(iprot); err != nil {
  6749  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem5), err)
  6750  		}
  6751  		p.SortingColumns = append(p.SortingColumns, _elem5)
  6752  	}
  6753  	if err := iprot.ReadListEnd(); err != nil {
  6754  		return thrift.PrependError("error reading list end: ", err)
  6755  	}
  6756  	return nil
  6757  }
  6758  
  6759  func (p *RowGroup) Write(oprot thrift.TProtocol) error {
  6760  	if err := oprot.WriteStructBegin("RowGroup"); err != nil {
  6761  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  6762  	}
  6763  	if p != nil {
  6764  		if err := p.writeField1(oprot); err != nil {
  6765  			return err
  6766  		}
  6767  		if err := p.writeField2(oprot); err != nil {
  6768  			return err
  6769  		}
  6770  		if err := p.writeField3(oprot); err != nil {
  6771  			return err
  6772  		}
  6773  		if err := p.writeField4(oprot); err != nil {
  6774  			return err
  6775  		}
  6776  	}
  6777  	if err := oprot.WriteFieldStop(); err != nil {
  6778  		return thrift.PrependError("write field stop error: ", err)
  6779  	}
  6780  	if err := oprot.WriteStructEnd(); err != nil {
  6781  		return thrift.PrependError("write struct stop error: ", err)
  6782  	}
  6783  	return nil
  6784  }
  6785  
  6786  func (p *RowGroup) writeField1(oprot thrift.TProtocol) (err error) {
  6787  	if err := oprot.WriteFieldBegin("columns", thrift.LIST, 1); err != nil {
  6788  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:columns: ", p), err)
  6789  	}
  6790  	if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Columns)); err != nil {
  6791  		return thrift.PrependError("error writing list begin: ", err)
  6792  	}
  6793  	for _, v := range p.Columns {
  6794  		if err := v.Write(oprot); err != nil {
  6795  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
  6796  		}
  6797  	}
  6798  	if err := oprot.WriteListEnd(); err != nil {
  6799  		return thrift.PrependError("error writing list end: ", err)
  6800  	}
  6801  	if err := oprot.WriteFieldEnd(); err != nil {
  6802  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:columns: ", p), err)
  6803  	}
  6804  	return err
  6805  }
  6806  
  6807  func (p *RowGroup) writeField2(oprot thrift.TProtocol) (err error) {
  6808  	if err := oprot.WriteFieldBegin("total_byte_size", thrift.I64, 2); err != nil {
  6809  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:total_byte_size: ", p), err)
  6810  	}
  6811  	if err := oprot.WriteI64(p.TotalByteSize); err != nil {
  6812  		return thrift.PrependError(fmt.Sprintf("%T.total_byte_size (2) field write error: ", p), err)
  6813  	}
  6814  	if err := oprot.WriteFieldEnd(); err != nil {
  6815  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:total_byte_size: ", p), err)
  6816  	}
  6817  	return err
  6818  }
  6819  
  6820  func (p *RowGroup) writeField3(oprot thrift.TProtocol) (err error) {
  6821  	if err := oprot.WriteFieldBegin("num_rows", thrift.I64, 3); err != nil {
  6822  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:num_rows: ", p), err)
  6823  	}
  6824  	if err := oprot.WriteI64(p.NumRows); err != nil {
  6825  		return thrift.PrependError(fmt.Sprintf("%T.num_rows (3) field write error: ", p), err)
  6826  	}
  6827  	if err := oprot.WriteFieldEnd(); err != nil {
  6828  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:num_rows: ", p), err)
  6829  	}
  6830  	return err
  6831  }
  6832  
  6833  func (p *RowGroup) writeField4(oprot thrift.TProtocol) (err error) {
  6834  	if p.IsSetSortingColumns() {
  6835  		if err := oprot.WriteFieldBegin("sorting_columns", thrift.LIST, 4); err != nil {
  6836  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:sorting_columns: ", p), err)
  6837  		}
  6838  		if err := oprot.WriteListBegin(thrift.STRUCT, len(p.SortingColumns)); err != nil {
  6839  			return thrift.PrependError("error writing list begin: ", err)
  6840  		}
  6841  		for _, v := range p.SortingColumns {
  6842  			if err := v.Write(oprot); err != nil {
  6843  				return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
  6844  			}
  6845  		}
  6846  		if err := oprot.WriteListEnd(); err != nil {
  6847  			return thrift.PrependError("error writing list end: ", err)
  6848  		}
  6849  		if err := oprot.WriteFieldEnd(); err != nil {
  6850  			return thrift.PrependError(fmt.Sprintf("%T write field end error 4:sorting_columns: ", p), err)
  6851  		}
  6852  	}
  6853  	return err
  6854  }
  6855  
  6856  func (p *RowGroup) String() string {
  6857  	if p == nil {
  6858  		return "<nil>"
  6859  	}
  6860  	return fmt.Sprintf("RowGroup(%+v)", *p)
  6861  }
  6862  
  6863  // Empty struct to signal the order defined by the physical or logical type
  6864  type TypeDefinedOrder struct {
  6865  }
  6866  
  6867  func NewTypeDefinedOrder() *TypeDefinedOrder {
  6868  	return &TypeDefinedOrder{}
  6869  }
  6870  
  6871  func (p *TypeDefinedOrder) Read(iprot thrift.TProtocol) error {
  6872  	if _, err := iprot.ReadStructBegin(); err != nil {
  6873  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  6874  	}
  6875  
  6876  	for {
  6877  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  6878  		if err != nil {
  6879  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  6880  		}
  6881  		if fieldTypeId == thrift.STOP {
  6882  			break
  6883  		}
  6884  		if err := iprot.Skip(fieldTypeId); err != nil {
  6885  			return err
  6886  		}
  6887  		if err := iprot.ReadFieldEnd(); err != nil {
  6888  			return err
  6889  		}
  6890  	}
  6891  	if err := iprot.ReadStructEnd(); err != nil {
  6892  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  6893  	}
  6894  	return nil
  6895  }
  6896  
  6897  func (p *TypeDefinedOrder) Write(oprot thrift.TProtocol) error {
  6898  	if err := oprot.WriteStructBegin("TypeDefinedOrder"); err != nil {
  6899  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  6900  	}
  6901  	if p != nil {
  6902  	}
  6903  	if err := oprot.WriteFieldStop(); err != nil {
  6904  		return thrift.PrependError("write field stop error: ", err)
  6905  	}
  6906  	if err := oprot.WriteStructEnd(); err != nil {
  6907  		return thrift.PrependError("write struct stop error: ", err)
  6908  	}
  6909  	return nil
  6910  }
  6911  
  6912  func (p *TypeDefinedOrder) String() string {
  6913  	if p == nil {
  6914  		return "<nil>"
  6915  	}
  6916  	return fmt.Sprintf("TypeDefinedOrder(%+v)", *p)
  6917  }
  6918  
  6919  // Union to specify the order used for the min_value and max_value fields for a
  6920  // column. This union takes the role of an enhanced enum that allows rich
  6921  // elements (which will be needed for a collation-based ordering in the future).
  6922  //
  6923  // Possible values are:
  6924  // * TypeDefinedOrder - the column uses the order defined by its logical or
  6925  //                      physical type (if there is no logical type).
  6926  //
  6927  // If the reader does not support the value of this union, min and max stats
  6928  // for this column should be ignored.
  6929  //
  6930  // Attributes:
  6931  //  - TYPE_ORDER: The sort orders for logical types are:
  6932  //   UTF8 - unsigned byte-wise comparison
  6933  //   INT8 - signed comparison
  6934  //   INT16 - signed comparison
  6935  //   INT32 - signed comparison
  6936  //   INT64 - signed comparison
  6937  //   UINT8 - unsigned comparison
  6938  //   UINT16 - unsigned comparison
  6939  //   UINT32 - unsigned comparison
  6940  //   UINT64 - unsigned comparison
  6941  //   DECIMAL - signed comparison of the represented value
  6942  //   DATE - signed comparison
  6943  //   TIME_MILLIS - signed comparison
  6944  //   TIME_MICROS - signed comparison
  6945  //   TIMESTAMP_MILLIS - signed comparison
  6946  //   TIMESTAMP_MICROS - signed comparison
  6947  //   INTERVAL - unsigned comparison
  6948  //   JSON - unsigned byte-wise comparison
  6949  //   BSON - unsigned byte-wise comparison
  6950  //   ENUM - unsigned byte-wise comparison
  6951  //   LIST - undefined
  6952  //   MAP - undefined
  6953  //
  6954  // In the absence of logical types, the sort order is determined by the physical type:
  6955  //   BOOLEAN - false, true
  6956  //   INT32 - signed comparison
  6957  //   INT64 - signed comparison
  6958  //   INT96 (only used for legacy timestamps) - undefined
  6959  //   FLOAT - signed comparison of the represented value (*)
  6960  //   DOUBLE - signed comparison of the represented value (*)
  6961  //   BYTE_ARRAY - unsigned byte-wise comparison
  6962  //   FIXED_LEN_BYTE_ARRAY - unsigned byte-wise comparison
  6963  //
  6964  // (*) Because the sorting order is not specified properly for floating
  6965  //     point values (relations vs. total ordering) the following
  6966  //     compatibility rules should be applied when reading statistics:
  6967  //     - If the min is a NaN, it should be ignored.
  6968  //     - If the max is a NaN, it should be ignored.
  6969  //     - If the min is +0, the row group may contain -0 values as well.
  6970  //     - If the max is -0, the row group may contain +0 values as well.
  6971  //     - When looking for NaN values, min and max should be ignored.
  6972  type ColumnOrder struct {
  6973  	TYPE_ORDER *TypeDefinedOrder `thrift:"TYPE_ORDER,1" db:"TYPE_ORDER" json:"TYPE_ORDER,omitempty"`
  6974  }
  6975  
  6976  func NewColumnOrder() *ColumnOrder {
  6977  	return &ColumnOrder{}
  6978  }
  6979  
  6980  var ColumnOrder_TYPE_ORDER_DEFAULT *TypeDefinedOrder
  6981  
  6982  func (p *ColumnOrder) GetTYPE_ORDER() *TypeDefinedOrder {
  6983  	if !p.IsSetTYPE_ORDER() {
  6984  		return ColumnOrder_TYPE_ORDER_DEFAULT
  6985  	}
  6986  	return p.TYPE_ORDER
  6987  }
  6988  func (p *ColumnOrder) CountSetFieldsColumnOrder() int {
  6989  	count := 0
  6990  	if p.IsSetTYPE_ORDER() {
  6991  		count++
  6992  	}
  6993  	return count
  6994  
  6995  }
  6996  
  6997  func (p *ColumnOrder) IsSetTYPE_ORDER() bool {
  6998  	return p.TYPE_ORDER != nil
  6999  }
  7000  
  7001  func (p *ColumnOrder) Read(iprot thrift.TProtocol) error {
  7002  	if _, err := iprot.ReadStructBegin(); err != nil {
  7003  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  7004  	}
  7005  
  7006  	for {
  7007  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  7008  		if err != nil {
  7009  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  7010  		}
  7011  		if fieldTypeId == thrift.STOP {
  7012  			break
  7013  		}
  7014  		switch fieldId {
  7015  		case 1:
  7016  			if err := p.ReadField1(iprot); err != nil {
  7017  				return err
  7018  			}
  7019  		default:
  7020  			if err := iprot.Skip(fieldTypeId); err != nil {
  7021  				return err
  7022  			}
  7023  		}
  7024  		if err := iprot.ReadFieldEnd(); err != nil {
  7025  			return err
  7026  		}
  7027  	}
  7028  	if err := iprot.ReadStructEnd(); err != nil {
  7029  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7030  	}
  7031  	return nil
  7032  }
  7033  
  7034  func (p *ColumnOrder) ReadField1(iprot thrift.TProtocol) error {
  7035  	p.TYPE_ORDER = &TypeDefinedOrder{}
  7036  	if err := p.TYPE_ORDER.Read(iprot); err != nil {
  7037  		return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", p.TYPE_ORDER), err)
  7038  	}
  7039  	return nil
  7040  }
  7041  
  7042  func (p *ColumnOrder) Write(oprot thrift.TProtocol) error {
  7043  	if c := p.CountSetFieldsColumnOrder(); c != 1 {
  7044  		return fmt.Errorf("%T write union: exactly one field must be set (%d set).", p, c)
  7045  	}
  7046  	if err := oprot.WriteStructBegin("ColumnOrder"); err != nil {
  7047  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  7048  	}
  7049  	if p != nil {
  7050  		if err := p.writeField1(oprot); err != nil {
  7051  			return err
  7052  		}
  7053  	}
  7054  	if err := oprot.WriteFieldStop(); err != nil {
  7055  		return thrift.PrependError("write field stop error: ", err)
  7056  	}
  7057  	if err := oprot.WriteStructEnd(); err != nil {
  7058  		return thrift.PrependError("write struct stop error: ", err)
  7059  	}
  7060  	return nil
  7061  }
  7062  
  7063  func (p *ColumnOrder) writeField1(oprot thrift.TProtocol) (err error) {
  7064  	if p.IsSetTYPE_ORDER() {
  7065  		if err := oprot.WriteFieldBegin("TYPE_ORDER", thrift.STRUCT, 1); err != nil {
  7066  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:TYPE_ORDER: ", p), err)
  7067  		}
  7068  		if err := p.TYPE_ORDER.Write(oprot); err != nil {
  7069  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", p.TYPE_ORDER), err)
  7070  		}
  7071  		if err := oprot.WriteFieldEnd(); err != nil {
  7072  			return thrift.PrependError(fmt.Sprintf("%T write field end error 1:TYPE_ORDER: ", p), err)
  7073  		}
  7074  	}
  7075  	return err
  7076  }
  7077  
  7078  func (p *ColumnOrder) String() string {
  7079  	if p == nil {
  7080  		return "<nil>"
  7081  	}
  7082  	return fmt.Sprintf("ColumnOrder(%+v)", *p)
  7083  }
  7084  
  7085  // Attributes:
  7086  //  - Offset: Offset of the page in the file *
  7087  //  - CompressedPageSize: Size of the page, including header. Sum of compressed_page_size and header
  7088  // length
  7089  //  - FirstRowIndex: Index within the RowGroup of the first row of the page; this means pages
  7090  // change on record boundaries (r = 0).
  7091  type PageLocation struct {
  7092  	Offset             int64 `thrift:"offset,1,required" db:"offset" json:"offset"`
  7093  	CompressedPageSize int32 `thrift:"compressed_page_size,2,required" db:"compressed_page_size" json:"compressed_page_size"`
  7094  	FirstRowIndex      int64 `thrift:"first_row_index,3,required" db:"first_row_index" json:"first_row_index"`
  7095  }
  7096  
  7097  func NewPageLocation() *PageLocation {
  7098  	return &PageLocation{}
  7099  }
  7100  
  7101  func (p *PageLocation) GetOffset() int64 {
  7102  	return p.Offset
  7103  }
  7104  
  7105  func (p *PageLocation) GetCompressedPageSize() int32 {
  7106  	return p.CompressedPageSize
  7107  }
  7108  
  7109  func (p *PageLocation) GetFirstRowIndex() int64 {
  7110  	return p.FirstRowIndex
  7111  }
  7112  func (p *PageLocation) Read(iprot thrift.TProtocol) error {
  7113  	if _, err := iprot.ReadStructBegin(); err != nil {
  7114  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  7115  	}
  7116  
  7117  	var issetOffset bool = false
  7118  	var issetCompressedPageSize bool = false
  7119  	var issetFirstRowIndex bool = false
  7120  
  7121  	for {
  7122  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  7123  		if err != nil {
  7124  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  7125  		}
  7126  		if fieldTypeId == thrift.STOP {
  7127  			break
  7128  		}
  7129  		switch fieldId {
  7130  		case 1:
  7131  			if err := p.ReadField1(iprot); err != nil {
  7132  				return err
  7133  			}
  7134  			issetOffset = true
  7135  		case 2:
  7136  			if err := p.ReadField2(iprot); err != nil {
  7137  				return err
  7138  			}
  7139  			issetCompressedPageSize = true
  7140  		case 3:
  7141  			if err := p.ReadField3(iprot); err != nil {
  7142  				return err
  7143  			}
  7144  			issetFirstRowIndex = true
  7145  		default:
  7146  			if err := iprot.Skip(fieldTypeId); err != nil {
  7147  				return err
  7148  			}
  7149  		}
  7150  		if err := iprot.ReadFieldEnd(); err != nil {
  7151  			return err
  7152  		}
  7153  	}
  7154  	if err := iprot.ReadStructEnd(); err != nil {
  7155  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7156  	}
  7157  	if !issetOffset {
  7158  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Offset is not set"))
  7159  	}
  7160  	if !issetCompressedPageSize {
  7161  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field CompressedPageSize is not set"))
  7162  	}
  7163  	if !issetFirstRowIndex {
  7164  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field FirstRowIndex is not set"))
  7165  	}
  7166  	return nil
  7167  }
  7168  
  7169  func (p *PageLocation) ReadField1(iprot thrift.TProtocol) error {
  7170  	if v, err := iprot.ReadI64(); err != nil {
  7171  		return thrift.PrependError("error reading field 1: ", err)
  7172  	} else {
  7173  		p.Offset = v
  7174  	}
  7175  	return nil
  7176  }
  7177  
  7178  func (p *PageLocation) ReadField2(iprot thrift.TProtocol) error {
  7179  	if v, err := iprot.ReadI32(); err != nil {
  7180  		return thrift.PrependError("error reading field 2: ", err)
  7181  	} else {
  7182  		p.CompressedPageSize = v
  7183  	}
  7184  	return nil
  7185  }
  7186  
  7187  func (p *PageLocation) ReadField3(iprot thrift.TProtocol) error {
  7188  	if v, err := iprot.ReadI64(); err != nil {
  7189  		return thrift.PrependError("error reading field 3: ", err)
  7190  	} else {
  7191  		p.FirstRowIndex = v
  7192  	}
  7193  	return nil
  7194  }
  7195  
  7196  func (p *PageLocation) Write(oprot thrift.TProtocol) error {
  7197  	if err := oprot.WriteStructBegin("PageLocation"); err != nil {
  7198  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  7199  	}
  7200  	if p != nil {
  7201  		if err := p.writeField1(oprot); err != nil {
  7202  			return err
  7203  		}
  7204  		if err := p.writeField2(oprot); err != nil {
  7205  			return err
  7206  		}
  7207  		if err := p.writeField3(oprot); err != nil {
  7208  			return err
  7209  		}
  7210  	}
  7211  	if err := oprot.WriteFieldStop(); err != nil {
  7212  		return thrift.PrependError("write field stop error: ", err)
  7213  	}
  7214  	if err := oprot.WriteStructEnd(); err != nil {
  7215  		return thrift.PrependError("write struct stop error: ", err)
  7216  	}
  7217  	return nil
  7218  }
  7219  
  7220  func (p *PageLocation) writeField1(oprot thrift.TProtocol) (err error) {
  7221  	if err := oprot.WriteFieldBegin("offset", thrift.I64, 1); err != nil {
  7222  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:offset: ", p), err)
  7223  	}
  7224  	if err := oprot.WriteI64(p.Offset); err != nil {
  7225  		return thrift.PrependError(fmt.Sprintf("%T.offset (1) field write error: ", p), err)
  7226  	}
  7227  	if err := oprot.WriteFieldEnd(); err != nil {
  7228  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:offset: ", p), err)
  7229  	}
  7230  	return err
  7231  }
  7232  
  7233  func (p *PageLocation) writeField2(oprot thrift.TProtocol) (err error) {
  7234  	if err := oprot.WriteFieldBegin("compressed_page_size", thrift.I32, 2); err != nil {
  7235  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:compressed_page_size: ", p), err)
  7236  	}
  7237  	if err := oprot.WriteI32(p.CompressedPageSize); err != nil {
  7238  		return thrift.PrependError(fmt.Sprintf("%T.compressed_page_size (2) field write error: ", p), err)
  7239  	}
  7240  	if err := oprot.WriteFieldEnd(); err != nil {
  7241  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:compressed_page_size: ", p), err)
  7242  	}
  7243  	return err
  7244  }
  7245  
  7246  func (p *PageLocation) writeField3(oprot thrift.TProtocol) (err error) {
  7247  	if err := oprot.WriteFieldBegin("first_row_index", thrift.I64, 3); err != nil {
  7248  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:first_row_index: ", p), err)
  7249  	}
  7250  	if err := oprot.WriteI64(p.FirstRowIndex); err != nil {
  7251  		return thrift.PrependError(fmt.Sprintf("%T.first_row_index (3) field write error: ", p), err)
  7252  	}
  7253  	if err := oprot.WriteFieldEnd(); err != nil {
  7254  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:first_row_index: ", p), err)
  7255  	}
  7256  	return err
  7257  }
  7258  
  7259  func (p *PageLocation) String() string {
  7260  	if p == nil {
  7261  		return "<nil>"
  7262  	}
  7263  	return fmt.Sprintf("PageLocation(%+v)", *p)
  7264  }
  7265  
  7266  // Attributes:
  7267  //  - PageLocations: PageLocations, ordered by increasing PageLocation.offset. It is required
  7268  // that page_locations[i].first_row_index < page_locations[i+1].first_row_index.
  7269  type OffsetIndex struct {
  7270  	PageLocations []*PageLocation `thrift:"page_locations,1,required" db:"page_locations" json:"page_locations"`
  7271  }
  7272  
  7273  func NewOffsetIndex() *OffsetIndex {
  7274  	return &OffsetIndex{}
  7275  }
  7276  
  7277  func (p *OffsetIndex) GetPageLocations() []*PageLocation {
  7278  	return p.PageLocations
  7279  }
  7280  func (p *OffsetIndex) Read(iprot thrift.TProtocol) error {
  7281  	if _, err := iprot.ReadStructBegin(); err != nil {
  7282  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  7283  	}
  7284  
  7285  	var issetPageLocations bool = false
  7286  
  7287  	for {
  7288  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  7289  		if err != nil {
  7290  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  7291  		}
  7292  		if fieldTypeId == thrift.STOP {
  7293  			break
  7294  		}
  7295  		switch fieldId {
  7296  		case 1:
  7297  			if err := p.ReadField1(iprot); err != nil {
  7298  				return err
  7299  			}
  7300  			issetPageLocations = true
  7301  		default:
  7302  			if err := iprot.Skip(fieldTypeId); err != nil {
  7303  				return err
  7304  			}
  7305  		}
  7306  		if err := iprot.ReadFieldEnd(); err != nil {
  7307  			return err
  7308  		}
  7309  	}
  7310  	if err := iprot.ReadStructEnd(); err != nil {
  7311  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7312  	}
  7313  	if !issetPageLocations {
  7314  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field PageLocations is not set"))
  7315  	}
  7316  	return nil
  7317  }
  7318  
  7319  func (p *OffsetIndex) ReadField1(iprot thrift.TProtocol) error {
  7320  	_, size, err := iprot.ReadListBegin()
  7321  	if err != nil {
  7322  		return thrift.PrependError("error reading list begin: ", err)
  7323  	}
  7324  	tSlice := make([]*PageLocation, 0, size)
  7325  	p.PageLocations = tSlice
  7326  	for i := 0; i < size; i++ {
  7327  		_elem6 := &PageLocation{}
  7328  		if err := _elem6.Read(iprot); err != nil {
  7329  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem6), err)
  7330  		}
  7331  		p.PageLocations = append(p.PageLocations, _elem6)
  7332  	}
  7333  	if err := iprot.ReadListEnd(); err != nil {
  7334  		return thrift.PrependError("error reading list end: ", err)
  7335  	}
  7336  	return nil
  7337  }
  7338  
  7339  func (p *OffsetIndex) Write(oprot thrift.TProtocol) error {
  7340  	if err := oprot.WriteStructBegin("OffsetIndex"); err != nil {
  7341  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  7342  	}
  7343  	if p != nil {
  7344  		if err := p.writeField1(oprot); err != nil {
  7345  			return err
  7346  		}
  7347  	}
  7348  	if err := oprot.WriteFieldStop(); err != nil {
  7349  		return thrift.PrependError("write field stop error: ", err)
  7350  	}
  7351  	if err := oprot.WriteStructEnd(); err != nil {
  7352  		return thrift.PrependError("write struct stop error: ", err)
  7353  	}
  7354  	return nil
  7355  }
  7356  
  7357  func (p *OffsetIndex) writeField1(oprot thrift.TProtocol) (err error) {
  7358  	if err := oprot.WriteFieldBegin("page_locations", thrift.LIST, 1); err != nil {
  7359  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:page_locations: ", p), err)
  7360  	}
  7361  	if err := oprot.WriteListBegin(thrift.STRUCT, len(p.PageLocations)); err != nil {
  7362  		return thrift.PrependError("error writing list begin: ", err)
  7363  	}
  7364  	for _, v := range p.PageLocations {
  7365  		if err := v.Write(oprot); err != nil {
  7366  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
  7367  		}
  7368  	}
  7369  	if err := oprot.WriteListEnd(); err != nil {
  7370  		return thrift.PrependError("error writing list end: ", err)
  7371  	}
  7372  	if err := oprot.WriteFieldEnd(); err != nil {
  7373  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:page_locations: ", p), err)
  7374  	}
  7375  	return err
  7376  }
  7377  
  7378  func (p *OffsetIndex) String() string {
  7379  	if p == nil {
  7380  		return "<nil>"
  7381  	}
  7382  	return fmt.Sprintf("OffsetIndex(%+v)", *p)
  7383  }
  7384  
  7385  // Description for ColumnIndex.
  7386  // Each <array-field>[i] refers to the page at OffsetIndex.page_locations[i]
  7387  //
  7388  // Attributes:
  7389  //  - NullPages: A list of Boolean values to determine the validity of the corresponding
  7390  // min and max values. If true, a page contains only null values, and writers
  7391  // have to set the corresponding entries in min_values and max_values to
  7392  // byte[0], so that all lists have the same length. If false, the
  7393  // corresponding entries in min_values and max_values must be valid.
  7394  //  - MinValues: Two lists containing lower and upper bounds for the values of each page.
  7395  // These may be the actual minimum and maximum values found on a page, but
  7396  // can also be (more compact) values that do not exist on a page. For
  7397  // example, instead of storing ""Blart Versenwald III", a writer may set
  7398  // min_values[i]="B", max_values[i]="C". Such more compact values must still
  7399  // be valid values within the column's logical type. Readers must make sure
  7400  // that list entries are populated before using them by inspecting null_pages.
  7401  //  - MaxValues
  7402  //  - BoundaryOrder: Stores whether both min_values and max_values are orderd and if so, in
  7403  // which direction. This allows readers to perform binary searches in both
  7404  // lists. Readers cannot assume that max_values[i] <= min_values[i+1], even
  7405  // if the lists are ordered.
  7406  //  - NullCounts: A list containing the number of null values for each page *
  7407  type ColumnIndex struct {
  7408  	NullPages     []bool        `thrift:"null_pages,1,required" db:"null_pages" json:"null_pages"`
  7409  	MinValues     [][]byte      `thrift:"min_values,2,required" db:"min_values" json:"min_values"`
  7410  	MaxValues     [][]byte      `thrift:"max_values,3,required" db:"max_values" json:"max_values"`
  7411  	BoundaryOrder BoundaryOrder `thrift:"boundary_order,4,required" db:"boundary_order" json:"boundary_order"`
  7412  	NullCounts    []int64       `thrift:"null_counts,5" db:"null_counts" json:"null_counts,omitempty"`
  7413  }
  7414  
  7415  func NewColumnIndex() *ColumnIndex {
  7416  	return &ColumnIndex{}
  7417  }
  7418  
  7419  func (p *ColumnIndex) GetNullPages() []bool {
  7420  	return p.NullPages
  7421  }
  7422  
  7423  func (p *ColumnIndex) GetMinValues() [][]byte {
  7424  	return p.MinValues
  7425  }
  7426  
  7427  func (p *ColumnIndex) GetMaxValues() [][]byte {
  7428  	return p.MaxValues
  7429  }
  7430  
  7431  func (p *ColumnIndex) GetBoundaryOrder() BoundaryOrder {
  7432  	return p.BoundaryOrder
  7433  }
  7434  
  7435  var ColumnIndex_NullCounts_DEFAULT []int64
  7436  
  7437  func (p *ColumnIndex) GetNullCounts() []int64 {
  7438  	return p.NullCounts
  7439  }
  7440  func (p *ColumnIndex) IsSetNullCounts() bool {
  7441  	return p.NullCounts != nil
  7442  }
  7443  
  7444  func (p *ColumnIndex) Read(iprot thrift.TProtocol) error {
  7445  	if _, err := iprot.ReadStructBegin(); err != nil {
  7446  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  7447  	}
  7448  
  7449  	var issetNullPages bool = false
  7450  	var issetMinValues bool = false
  7451  	var issetMaxValues bool = false
  7452  	var issetBoundaryOrder bool = false
  7453  
  7454  	for {
  7455  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  7456  		if err != nil {
  7457  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  7458  		}
  7459  		if fieldTypeId == thrift.STOP {
  7460  			break
  7461  		}
  7462  		switch fieldId {
  7463  		case 1:
  7464  			if err := p.ReadField1(iprot); err != nil {
  7465  				return err
  7466  			}
  7467  			issetNullPages = true
  7468  		case 2:
  7469  			if err := p.ReadField2(iprot); err != nil {
  7470  				return err
  7471  			}
  7472  			issetMinValues = true
  7473  		case 3:
  7474  			if err := p.ReadField3(iprot); err != nil {
  7475  				return err
  7476  			}
  7477  			issetMaxValues = true
  7478  		case 4:
  7479  			if err := p.ReadField4(iprot); err != nil {
  7480  				return err
  7481  			}
  7482  			issetBoundaryOrder = true
  7483  		case 5:
  7484  			if err := p.ReadField5(iprot); err != nil {
  7485  				return err
  7486  			}
  7487  		default:
  7488  			if err := iprot.Skip(fieldTypeId); err != nil {
  7489  				return err
  7490  			}
  7491  		}
  7492  		if err := iprot.ReadFieldEnd(); err != nil {
  7493  			return err
  7494  		}
  7495  	}
  7496  	if err := iprot.ReadStructEnd(); err != nil {
  7497  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7498  	}
  7499  	if !issetNullPages {
  7500  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NullPages is not set"))
  7501  	}
  7502  	if !issetMinValues {
  7503  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field MinValues is not set"))
  7504  	}
  7505  	if !issetMaxValues {
  7506  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field MaxValues is not set"))
  7507  	}
  7508  	if !issetBoundaryOrder {
  7509  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field BoundaryOrder is not set"))
  7510  	}
  7511  	return nil
  7512  }
  7513  
  7514  func (p *ColumnIndex) ReadField1(iprot thrift.TProtocol) error {
  7515  	_, size, err := iprot.ReadListBegin()
  7516  	if err != nil {
  7517  		return thrift.PrependError("error reading list begin: ", err)
  7518  	}
  7519  	tSlice := make([]bool, 0, size)
  7520  	p.NullPages = tSlice
  7521  	for i := 0; i < size; i++ {
  7522  		var _elem7 bool
  7523  		if v, err := iprot.ReadBool(); err != nil {
  7524  			return thrift.PrependError("error reading field 0: ", err)
  7525  		} else {
  7526  			_elem7 = v
  7527  		}
  7528  		p.NullPages = append(p.NullPages, _elem7)
  7529  	}
  7530  	if err := iprot.ReadListEnd(); err != nil {
  7531  		return thrift.PrependError("error reading list end: ", err)
  7532  	}
  7533  	return nil
  7534  }
  7535  
  7536  func (p *ColumnIndex) ReadField2(iprot thrift.TProtocol) error {
  7537  	_, size, err := iprot.ReadListBegin()
  7538  	if err != nil {
  7539  		return thrift.PrependError("error reading list begin: ", err)
  7540  	}
  7541  	tSlice := make([][]byte, 0, size)
  7542  	p.MinValues = tSlice
  7543  	for i := 0; i < size; i++ {
  7544  		var _elem8 []byte
  7545  		if v, err := iprot.ReadBinary(); err != nil {
  7546  			return thrift.PrependError("error reading field 0: ", err)
  7547  		} else {
  7548  			_elem8 = v
  7549  		}
  7550  		p.MinValues = append(p.MinValues, _elem8)
  7551  	}
  7552  	if err := iprot.ReadListEnd(); err != nil {
  7553  		return thrift.PrependError("error reading list end: ", err)
  7554  	}
  7555  	return nil
  7556  }
  7557  
  7558  func (p *ColumnIndex) ReadField3(iprot thrift.TProtocol) error {
  7559  	_, size, err := iprot.ReadListBegin()
  7560  	if err != nil {
  7561  		return thrift.PrependError("error reading list begin: ", err)
  7562  	}
  7563  	tSlice := make([][]byte, 0, size)
  7564  	p.MaxValues = tSlice
  7565  	for i := 0; i < size; i++ {
  7566  		var _elem9 []byte
  7567  		if v, err := iprot.ReadBinary(); err != nil {
  7568  			return thrift.PrependError("error reading field 0: ", err)
  7569  		} else {
  7570  			_elem9 = v
  7571  		}
  7572  		p.MaxValues = append(p.MaxValues, _elem9)
  7573  	}
  7574  	if err := iprot.ReadListEnd(); err != nil {
  7575  		return thrift.PrependError("error reading list end: ", err)
  7576  	}
  7577  	return nil
  7578  }
  7579  
  7580  func (p *ColumnIndex) ReadField4(iprot thrift.TProtocol) error {
  7581  	if v, err := iprot.ReadI32(); err != nil {
  7582  		return thrift.PrependError("error reading field 4: ", err)
  7583  	} else {
  7584  		temp := BoundaryOrder(v)
  7585  		p.BoundaryOrder = temp
  7586  	}
  7587  	return nil
  7588  }
  7589  
  7590  func (p *ColumnIndex) ReadField5(iprot thrift.TProtocol) error {
  7591  	_, size, err := iprot.ReadListBegin()
  7592  	if err != nil {
  7593  		return thrift.PrependError("error reading list begin: ", err)
  7594  	}
  7595  	tSlice := make([]int64, 0, size)
  7596  	p.NullCounts = tSlice
  7597  	for i := 0; i < size; i++ {
  7598  		var _elem10 int64
  7599  		if v, err := iprot.ReadI64(); err != nil {
  7600  			return thrift.PrependError("error reading field 0: ", err)
  7601  		} else {
  7602  			_elem10 = v
  7603  		}
  7604  		p.NullCounts = append(p.NullCounts, _elem10)
  7605  	}
  7606  	if err := iprot.ReadListEnd(); err != nil {
  7607  		return thrift.PrependError("error reading list end: ", err)
  7608  	}
  7609  	return nil
  7610  }
  7611  
  7612  func (p *ColumnIndex) Write(oprot thrift.TProtocol) error {
  7613  	if err := oprot.WriteStructBegin("ColumnIndex"); err != nil {
  7614  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  7615  	}
  7616  	if p != nil {
  7617  		if err := p.writeField1(oprot); err != nil {
  7618  			return err
  7619  		}
  7620  		if err := p.writeField2(oprot); err != nil {
  7621  			return err
  7622  		}
  7623  		if err := p.writeField3(oprot); err != nil {
  7624  			return err
  7625  		}
  7626  		if err := p.writeField4(oprot); err != nil {
  7627  			return err
  7628  		}
  7629  		if err := p.writeField5(oprot); err != nil {
  7630  			return err
  7631  		}
  7632  	}
  7633  	if err := oprot.WriteFieldStop(); err != nil {
  7634  		return thrift.PrependError("write field stop error: ", err)
  7635  	}
  7636  	if err := oprot.WriteStructEnd(); err != nil {
  7637  		return thrift.PrependError("write struct stop error: ", err)
  7638  	}
  7639  	return nil
  7640  }
  7641  
  7642  func (p *ColumnIndex) writeField1(oprot thrift.TProtocol) (err error) {
  7643  	if err := oprot.WriteFieldBegin("null_pages", thrift.LIST, 1); err != nil {
  7644  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:null_pages: ", p), err)
  7645  	}
  7646  	if err := oprot.WriteListBegin(thrift.BOOL, len(p.NullPages)); err != nil {
  7647  		return thrift.PrependError("error writing list begin: ", err)
  7648  	}
  7649  	for _, v := range p.NullPages {
  7650  		if err := oprot.WriteBool(v); err != nil {
  7651  			return thrift.PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
  7652  		}
  7653  	}
  7654  	if err := oprot.WriteListEnd(); err != nil {
  7655  		return thrift.PrependError("error writing list end: ", err)
  7656  	}
  7657  	if err := oprot.WriteFieldEnd(); err != nil {
  7658  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:null_pages: ", p), err)
  7659  	}
  7660  	return err
  7661  }
  7662  
  7663  func (p *ColumnIndex) writeField2(oprot thrift.TProtocol) (err error) {
  7664  	if err := oprot.WriteFieldBegin("min_values", thrift.LIST, 2); err != nil {
  7665  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:min_values: ", p), err)
  7666  	}
  7667  	if err := oprot.WriteListBegin(thrift.STRING, len(p.MinValues)); err != nil {
  7668  		return thrift.PrependError("error writing list begin: ", err)
  7669  	}
  7670  	for _, v := range p.MinValues {
  7671  		if err := oprot.WriteBinary(v); err != nil {
  7672  			return thrift.PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
  7673  		}
  7674  	}
  7675  	if err := oprot.WriteListEnd(); err != nil {
  7676  		return thrift.PrependError("error writing list end: ", err)
  7677  	}
  7678  	if err := oprot.WriteFieldEnd(); err != nil {
  7679  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:min_values: ", p), err)
  7680  	}
  7681  	return err
  7682  }
  7683  
  7684  func (p *ColumnIndex) writeField3(oprot thrift.TProtocol) (err error) {
  7685  	if err := oprot.WriteFieldBegin("max_values", thrift.LIST, 3); err != nil {
  7686  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:max_values: ", p), err)
  7687  	}
  7688  	if err := oprot.WriteListBegin(thrift.STRING, len(p.MaxValues)); err != nil {
  7689  		return thrift.PrependError("error writing list begin: ", err)
  7690  	}
  7691  	for _, v := range p.MaxValues {
  7692  		if err := oprot.WriteBinary(v); err != nil {
  7693  			return thrift.PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
  7694  		}
  7695  	}
  7696  	if err := oprot.WriteListEnd(); err != nil {
  7697  		return thrift.PrependError("error writing list end: ", err)
  7698  	}
  7699  	if err := oprot.WriteFieldEnd(); err != nil {
  7700  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:max_values: ", p), err)
  7701  	}
  7702  	return err
  7703  }
  7704  
  7705  func (p *ColumnIndex) writeField4(oprot thrift.TProtocol) (err error) {
  7706  	if err := oprot.WriteFieldBegin("boundary_order", thrift.I32, 4); err != nil {
  7707  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:boundary_order: ", p), err)
  7708  	}
  7709  	if err := oprot.WriteI32(int32(p.BoundaryOrder)); err != nil {
  7710  		return thrift.PrependError(fmt.Sprintf("%T.boundary_order (4) field write error: ", p), err)
  7711  	}
  7712  	if err := oprot.WriteFieldEnd(); err != nil {
  7713  		return thrift.PrependError(fmt.Sprintf("%T write field end error 4:boundary_order: ", p), err)
  7714  	}
  7715  	return err
  7716  }
  7717  
  7718  func (p *ColumnIndex) writeField5(oprot thrift.TProtocol) (err error) {
  7719  	if p.IsSetNullCounts() {
  7720  		if err := oprot.WriteFieldBegin("null_counts", thrift.LIST, 5); err != nil {
  7721  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:null_counts: ", p), err)
  7722  		}
  7723  		if err := oprot.WriteListBegin(thrift.I64, len(p.NullCounts)); err != nil {
  7724  			return thrift.PrependError("error writing list begin: ", err)
  7725  		}
  7726  		for _, v := range p.NullCounts {
  7727  			if err := oprot.WriteI64(v); err != nil {
  7728  				return thrift.PrependError(fmt.Sprintf("%T. (0) field write error: ", p), err)
  7729  			}
  7730  		}
  7731  		if err := oprot.WriteListEnd(); err != nil {
  7732  			return thrift.PrependError("error writing list end: ", err)
  7733  		}
  7734  		if err := oprot.WriteFieldEnd(); err != nil {
  7735  			return thrift.PrependError(fmt.Sprintf("%T write field end error 5:null_counts: ", p), err)
  7736  		}
  7737  	}
  7738  	return err
  7739  }
  7740  
  7741  func (p *ColumnIndex) String() string {
  7742  	if p == nil {
  7743  		return "<nil>"
  7744  	}
  7745  	return fmt.Sprintf("ColumnIndex(%+v)", *p)
  7746  }
  7747  
  7748  // Description for file metadata
  7749  //
  7750  // Attributes:
  7751  //  - Version: Version of this file *
  7752  //  - Schema: Parquet schema for this file.  This schema contains metadata for all the columns.
  7753  // The schema is represented as a tree with a single root.  The nodes of the tree
  7754  // are flattened to a list by doing a depth-first traversal.
  7755  // The column metadata contains the path in the schema for that column which can be
  7756  // used to map columns to nodes in the schema.
  7757  // The first element is the root *
  7758  //  - NumRows: Number of rows in this file *
  7759  //  - RowGroups: Row groups in this file *
  7760  //  - KeyValueMetadata: Optional key/value metadata *
  7761  //  - CreatedBy: String for application that wrote this file.  This should be in the format
  7762  // <Application> version <App Version> (build <App Build Hash>).
  7763  // e.g. impala version 1.0 (build 6cf94d29b2b7115df4de2c06e2ab4326d721eb55)
  7764  //
  7765  //  - ColumnOrders: Sort order used for the min_value and max_value fields of each column in
  7766  // this file. Each sort order corresponds to one column, determined by its
  7767  // position in the list, matching the position of the column in the schema.
  7768  //
  7769  // Without column_orders, the meaning of the min_value and max_value fields is
  7770  // undefined. To ensure well-defined behavior, if min_value and max_value are
  7771  // written to a Parquet file, column_orders must be written as well.
  7772  //
  7773  // The obsolete min and max fields are always sorted by signed comparison
  7774  // regardless of column_orders.
  7775  type FileMetaData struct {
  7776  	Version          int32            `thrift:"version,1,required" db:"version" json:"version"`
  7777  	Schema           []*SchemaElement `thrift:"schema,2,required" db:"schema" json:"schema"`
  7778  	NumRows          int64            `thrift:"num_rows,3,required" db:"num_rows" json:"num_rows"`
  7779  	RowGroups        []*RowGroup      `thrift:"row_groups,4,required" db:"row_groups" json:"row_groups"`
  7780  	KeyValueMetadata []*KeyValue      `thrift:"key_value_metadata,5" db:"key_value_metadata" json:"key_value_metadata,omitempty"`
  7781  	CreatedBy        *string          `thrift:"created_by,6" db:"created_by" json:"created_by,omitempty"`
  7782  	ColumnOrders     []*ColumnOrder   `thrift:"column_orders,7" db:"column_orders" json:"column_orders,omitempty"`
  7783  }
  7784  
  7785  func NewFileMetaData() *FileMetaData {
  7786  	return &FileMetaData{}
  7787  }
  7788  
  7789  func (p *FileMetaData) GetVersion() int32 {
  7790  	return p.Version
  7791  }
  7792  
  7793  func (p *FileMetaData) GetSchema() []*SchemaElement {
  7794  	return p.Schema
  7795  }
  7796  
  7797  func (p *FileMetaData) GetNumRows() int64 {
  7798  	return p.NumRows
  7799  }
  7800  
  7801  func (p *FileMetaData) GetRowGroups() []*RowGroup {
  7802  	return p.RowGroups
  7803  }
  7804  
  7805  var FileMetaData_KeyValueMetadata_DEFAULT []*KeyValue
  7806  
  7807  func (p *FileMetaData) GetKeyValueMetadata() []*KeyValue {
  7808  	return p.KeyValueMetadata
  7809  }
  7810  
  7811  var FileMetaData_CreatedBy_DEFAULT string
  7812  
  7813  func (p *FileMetaData) GetCreatedBy() string {
  7814  	if !p.IsSetCreatedBy() {
  7815  		return FileMetaData_CreatedBy_DEFAULT
  7816  	}
  7817  	return *p.CreatedBy
  7818  }
  7819  
  7820  var FileMetaData_ColumnOrders_DEFAULT []*ColumnOrder
  7821  
  7822  func (p *FileMetaData) GetColumnOrders() []*ColumnOrder {
  7823  	return p.ColumnOrders
  7824  }
  7825  func (p *FileMetaData) IsSetKeyValueMetadata() bool {
  7826  	return p.KeyValueMetadata != nil
  7827  }
  7828  
  7829  func (p *FileMetaData) IsSetCreatedBy() bool {
  7830  	return p.CreatedBy != nil
  7831  }
  7832  
  7833  func (p *FileMetaData) IsSetColumnOrders() bool {
  7834  	return p.ColumnOrders != nil
  7835  }
  7836  
  7837  func (p *FileMetaData) Read(iprot thrift.TProtocol) error {
  7838  	if _, err := iprot.ReadStructBegin(); err != nil {
  7839  		return thrift.PrependError(fmt.Sprintf("%T read error: ", p), err)
  7840  	}
  7841  
  7842  	var issetVersion bool = false
  7843  	var issetSchema bool = false
  7844  	var issetNumRows bool = false
  7845  	var issetRowGroups bool = false
  7846  
  7847  	for {
  7848  		_, fieldTypeId, fieldId, err := iprot.ReadFieldBegin()
  7849  		if err != nil {
  7850  			return thrift.PrependError(fmt.Sprintf("%T field %d read error: ", p, fieldId), err)
  7851  		}
  7852  		if fieldTypeId == thrift.STOP {
  7853  			break
  7854  		}
  7855  		switch fieldId {
  7856  		case 1:
  7857  			if err := p.ReadField1(iprot); err != nil {
  7858  				return err
  7859  			}
  7860  			issetVersion = true
  7861  		case 2:
  7862  			if err := p.ReadField2(iprot); err != nil {
  7863  				return err
  7864  			}
  7865  			issetSchema = true
  7866  		case 3:
  7867  			if err := p.ReadField3(iprot); err != nil {
  7868  				return err
  7869  			}
  7870  			issetNumRows = true
  7871  		case 4:
  7872  			if err := p.ReadField4(iprot); err != nil {
  7873  				return err
  7874  			}
  7875  			issetRowGroups = true
  7876  		case 5:
  7877  			if err := p.ReadField5(iprot); err != nil {
  7878  				return err
  7879  			}
  7880  		case 6:
  7881  			if err := p.ReadField6(iprot); err != nil {
  7882  				return err
  7883  			}
  7884  		case 7:
  7885  			if err := p.ReadField7(iprot); err != nil {
  7886  				return err
  7887  			}
  7888  		default:
  7889  			if err := iprot.Skip(fieldTypeId); err != nil {
  7890  				return err
  7891  			}
  7892  		}
  7893  		if err := iprot.ReadFieldEnd(); err != nil {
  7894  			return err
  7895  		}
  7896  	}
  7897  	if err := iprot.ReadStructEnd(); err != nil {
  7898  		return thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7899  	}
  7900  	if !issetVersion {
  7901  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Version is not set"))
  7902  	}
  7903  	if !issetSchema {
  7904  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field Schema is not set"))
  7905  	}
  7906  	if !issetNumRows {
  7907  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field NumRows is not set"))
  7908  	}
  7909  	if !issetRowGroups {
  7910  		return thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field RowGroups is not set"))
  7911  	}
  7912  	return nil
  7913  }
  7914  
  7915  func (p *FileMetaData) ReadField1(iprot thrift.TProtocol) error {
  7916  	if v, err := iprot.ReadI32(); err != nil {
  7917  		return thrift.PrependError("error reading field 1: ", err)
  7918  	} else {
  7919  		p.Version = v
  7920  	}
  7921  	return nil
  7922  }
  7923  
  7924  func (p *FileMetaData) ReadField2(iprot thrift.TProtocol) error {
  7925  	_, size, err := iprot.ReadListBegin()
  7926  	if err != nil {
  7927  		return thrift.PrependError("error reading list begin: ", err)
  7928  	}
  7929  	tSlice := make([]*SchemaElement, 0, size)
  7930  	p.Schema = tSlice
  7931  	for i := 0; i < size; i++ {
  7932  		_elem11 := &SchemaElement{}
  7933  		if err := _elem11.Read(iprot); err != nil {
  7934  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem11), err)
  7935  		}
  7936  		p.Schema = append(p.Schema, _elem11)
  7937  	}
  7938  	if err := iprot.ReadListEnd(); err != nil {
  7939  		return thrift.PrependError("error reading list end: ", err)
  7940  	}
  7941  	return nil
  7942  }
  7943  
  7944  func (p *FileMetaData) ReadField3(iprot thrift.TProtocol) error {
  7945  	if v, err := iprot.ReadI64(); err != nil {
  7946  		return thrift.PrependError("error reading field 3: ", err)
  7947  	} else {
  7948  		p.NumRows = v
  7949  	}
  7950  	return nil
  7951  }
  7952  
  7953  func (p *FileMetaData) ReadField4(iprot thrift.TProtocol) error {
  7954  	_, size, err := iprot.ReadListBegin()
  7955  	if err != nil {
  7956  		return thrift.PrependError("error reading list begin: ", err)
  7957  	}
  7958  	tSlice := make([]*RowGroup, 0, size)
  7959  	p.RowGroups = tSlice
  7960  	for i := 0; i < size; i++ {
  7961  		_elem12 := &RowGroup{}
  7962  		if err := _elem12.Read(iprot); err != nil {
  7963  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem12), err)
  7964  		}
  7965  		p.RowGroups = append(p.RowGroups, _elem12)
  7966  	}
  7967  	if err := iprot.ReadListEnd(); err != nil {
  7968  		return thrift.PrependError("error reading list end: ", err)
  7969  	}
  7970  	return nil
  7971  }
  7972  
  7973  func (p *FileMetaData) ReadField5(iprot thrift.TProtocol) error {
  7974  	_, size, err := iprot.ReadListBegin()
  7975  	if err != nil {
  7976  		return thrift.PrependError("error reading list begin: ", err)
  7977  	}
  7978  	tSlice := make([]*KeyValue, 0, size)
  7979  	p.KeyValueMetadata = tSlice
  7980  	for i := 0; i < size; i++ {
  7981  		_elem13 := &KeyValue{}
  7982  		if err := _elem13.Read(iprot); err != nil {
  7983  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem13), err)
  7984  		}
  7985  		p.KeyValueMetadata = append(p.KeyValueMetadata, _elem13)
  7986  	}
  7987  	if err := iprot.ReadListEnd(); err != nil {
  7988  		return thrift.PrependError("error reading list end: ", err)
  7989  	}
  7990  	return nil
  7991  }
  7992  
  7993  func (p *FileMetaData) ReadField6(iprot thrift.TProtocol) error {
  7994  	if v, err := iprot.ReadString(); err != nil {
  7995  		return thrift.PrependError("error reading field 6: ", err)
  7996  	} else {
  7997  		p.CreatedBy = &v
  7998  	}
  7999  	return nil
  8000  }
  8001  
  8002  func (p *FileMetaData) ReadField7(iprot thrift.TProtocol) error {
  8003  	_, size, err := iprot.ReadListBegin()
  8004  	if err != nil {
  8005  		return thrift.PrependError("error reading list begin: ", err)
  8006  	}
  8007  	tSlice := make([]*ColumnOrder, 0, size)
  8008  	p.ColumnOrders = tSlice
  8009  	for i := 0; i < size; i++ {
  8010  		_elem14 := &ColumnOrder{}
  8011  		if err := _elem14.Read(iprot); err != nil {
  8012  			return thrift.PrependError(fmt.Sprintf("%T error reading struct: ", _elem14), err)
  8013  		}
  8014  		p.ColumnOrders = append(p.ColumnOrders, _elem14)
  8015  	}
  8016  	if err := iprot.ReadListEnd(); err != nil {
  8017  		return thrift.PrependError("error reading list end: ", err)
  8018  	}
  8019  	return nil
  8020  }
  8021  
  8022  func (p *FileMetaData) Write(oprot thrift.TProtocol) error {
  8023  	if err := oprot.WriteStructBegin("FileMetaData"); err != nil {
  8024  		return thrift.PrependError(fmt.Sprintf("%T write struct begin error: ", p), err)
  8025  	}
  8026  	if p != nil {
  8027  		if err := p.writeField1(oprot); err != nil {
  8028  			return err
  8029  		}
  8030  		if err := p.writeField2(oprot); err != nil {
  8031  			return err
  8032  		}
  8033  		if err := p.writeField3(oprot); err != nil {
  8034  			return err
  8035  		}
  8036  		if err := p.writeField4(oprot); err != nil {
  8037  			return err
  8038  		}
  8039  		if err := p.writeField5(oprot); err != nil {
  8040  			return err
  8041  		}
  8042  		if err := p.writeField6(oprot); err != nil {
  8043  			return err
  8044  		}
  8045  		if err := p.writeField7(oprot); err != nil {
  8046  			return err
  8047  		}
  8048  	}
  8049  	if err := oprot.WriteFieldStop(); err != nil {
  8050  		return thrift.PrependError("write field stop error: ", err)
  8051  	}
  8052  	if err := oprot.WriteStructEnd(); err != nil {
  8053  		return thrift.PrependError("write struct stop error: ", err)
  8054  	}
  8055  	return nil
  8056  }
  8057  
  8058  func (p *FileMetaData) writeField1(oprot thrift.TProtocol) (err error) {
  8059  	if err := oprot.WriteFieldBegin("version", thrift.I32, 1); err != nil {
  8060  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 1:version: ", p), err)
  8061  	}
  8062  	if err := oprot.WriteI32(p.Version); err != nil {
  8063  		return thrift.PrependError(fmt.Sprintf("%T.version (1) field write error: ", p), err)
  8064  	}
  8065  	if err := oprot.WriteFieldEnd(); err != nil {
  8066  		return thrift.PrependError(fmt.Sprintf("%T write field end error 1:version: ", p), err)
  8067  	}
  8068  	return err
  8069  }
  8070  
  8071  func (p *FileMetaData) writeField2(oprot thrift.TProtocol) (err error) {
  8072  	if err := oprot.WriteFieldBegin("schema", thrift.LIST, 2); err != nil {
  8073  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 2:schema: ", p), err)
  8074  	}
  8075  	if err := oprot.WriteListBegin(thrift.STRUCT, len(p.Schema)); err != nil {
  8076  		return thrift.PrependError("error writing list begin: ", err)
  8077  	}
  8078  	for _, v := range p.Schema {
  8079  		if err := v.Write(oprot); err != nil {
  8080  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
  8081  		}
  8082  	}
  8083  	if err := oprot.WriteListEnd(); err != nil {
  8084  		return thrift.PrependError("error writing list end: ", err)
  8085  	}
  8086  	if err := oprot.WriteFieldEnd(); err != nil {
  8087  		return thrift.PrependError(fmt.Sprintf("%T write field end error 2:schema: ", p), err)
  8088  	}
  8089  	return err
  8090  }
  8091  
  8092  func (p *FileMetaData) writeField3(oprot thrift.TProtocol) (err error) {
  8093  	if err := oprot.WriteFieldBegin("num_rows", thrift.I64, 3); err != nil {
  8094  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 3:num_rows: ", p), err)
  8095  	}
  8096  	if err := oprot.WriteI64(p.NumRows); err != nil {
  8097  		return thrift.PrependError(fmt.Sprintf("%T.num_rows (3) field write error: ", p), err)
  8098  	}
  8099  	if err := oprot.WriteFieldEnd(); err != nil {
  8100  		return thrift.PrependError(fmt.Sprintf("%T write field end error 3:num_rows: ", p), err)
  8101  	}
  8102  	return err
  8103  }
  8104  
  8105  func (p *FileMetaData) writeField4(oprot thrift.TProtocol) (err error) {
  8106  	if err := oprot.WriteFieldBegin("row_groups", thrift.LIST, 4); err != nil {
  8107  		return thrift.PrependError(fmt.Sprintf("%T write field begin error 4:row_groups: ", p), err)
  8108  	}
  8109  	if err := oprot.WriteListBegin(thrift.STRUCT, len(p.RowGroups)); err != nil {
  8110  		return thrift.PrependError("error writing list begin: ", err)
  8111  	}
  8112  	for _, v := range p.RowGroups {
  8113  		if err := v.Write(oprot); err != nil {
  8114  			return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
  8115  		}
  8116  	}
  8117  	if err := oprot.WriteListEnd(); err != nil {
  8118  		return thrift.PrependError("error writing list end: ", err)
  8119  	}
  8120  	if err := oprot.WriteFieldEnd(); err != nil {
  8121  		return thrift.PrependError(fmt.Sprintf("%T write field end error 4:row_groups: ", p), err)
  8122  	}
  8123  	return err
  8124  }
  8125  
  8126  func (p *FileMetaData) writeField5(oprot thrift.TProtocol) (err error) {
  8127  	if p.IsSetKeyValueMetadata() {
  8128  		if err := oprot.WriteFieldBegin("key_value_metadata", thrift.LIST, 5); err != nil {
  8129  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 5:key_value_metadata: ", p), err)
  8130  		}
  8131  		if err := oprot.WriteListBegin(thrift.STRUCT, len(p.KeyValueMetadata)); err != nil {
  8132  			return thrift.PrependError("error writing list begin: ", err)
  8133  		}
  8134  		for _, v := range p.KeyValueMetadata {
  8135  			if err := v.Write(oprot); err != nil {
  8136  				return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
  8137  			}
  8138  		}
  8139  		if err := oprot.WriteListEnd(); err != nil {
  8140  			return thrift.PrependError("error writing list end: ", err)
  8141  		}
  8142  		if err := oprot.WriteFieldEnd(); err != nil {
  8143  			return thrift.PrependError(fmt.Sprintf("%T write field end error 5:key_value_metadata: ", p), err)
  8144  		}
  8145  	}
  8146  	return err
  8147  }
  8148  
  8149  func (p *FileMetaData) writeField6(oprot thrift.TProtocol) (err error) {
  8150  	if p.IsSetCreatedBy() {
  8151  		if err := oprot.WriteFieldBegin("created_by", thrift.STRING, 6); err != nil {
  8152  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 6:created_by: ", p), err)
  8153  		}
  8154  		if err := oprot.WriteString(string(*p.CreatedBy)); err != nil {
  8155  			return thrift.PrependError(fmt.Sprintf("%T.created_by (6) field write error: ", p), err)
  8156  		}
  8157  		if err := oprot.WriteFieldEnd(); err != nil {
  8158  			return thrift.PrependError(fmt.Sprintf("%T write field end error 6:created_by: ", p), err)
  8159  		}
  8160  	}
  8161  	return err
  8162  }
  8163  
  8164  func (p *FileMetaData) writeField7(oprot thrift.TProtocol) (err error) {
  8165  	if p.IsSetColumnOrders() {
  8166  		if err := oprot.WriteFieldBegin("column_orders", thrift.LIST, 7); err != nil {
  8167  			return thrift.PrependError(fmt.Sprintf("%T write field begin error 7:column_orders: ", p), err)
  8168  		}
  8169  		if err := oprot.WriteListBegin(thrift.STRUCT, len(p.ColumnOrders)); err != nil {
  8170  			return thrift.PrependError("error writing list begin: ", err)
  8171  		}
  8172  		for _, v := range p.ColumnOrders {
  8173  			if err := v.Write(oprot); err != nil {
  8174  				return thrift.PrependError(fmt.Sprintf("%T error writing struct: ", v), err)
  8175  			}
  8176  		}
  8177  		if err := oprot.WriteListEnd(); err != nil {
  8178  			return thrift.PrependError("error writing list end: ", err)
  8179  		}
  8180  		if err := oprot.WriteFieldEnd(); err != nil {
  8181  			return thrift.PrependError(fmt.Sprintf("%T write field end error 7:column_orders: ", p), err)
  8182  		}
  8183  	}
  8184  	return err
  8185  }
  8186  
  8187  func (p *FileMetaData) String() string {
  8188  	if p == nil {
  8189  		return "<nil>"
  8190  	}
  8191  	return fmt.Sprintf("FileMetaData(%+v)", *p)
  8192  }