static Properties updateSplitSchema ( Properties splitSchema , List < HiveColumnHandle > columns ) { requireNonNull ( splitSchema , "splitSchema is null" ) ; requireNonNull ( columns , "columns is null" ) ; // clone split properties for update so as not to affect the original one Properties updatedSchema = new Properties ( ) ; updatedSchema . putAll ( splitSchema ) ; updatedSchema . setProperty ( LIST_COLUMNS , buildColumns ( columns ) ) ; updatedSchema . setProperty ( LIST_COLUMN_TYPES , buildColumnTypes ( columns ) ) ; ThriftTable thriftTable = parseThriftDdl ( splitSchema . getProperty ( SERIALIZATION_DDL ) ) ; updatedSchema . setProperty ( SERIALIZATION_DDL , thriftTableToDdl ( pruneThriftTable ( thriftTable , columns ) ) ) ; return updatedSchema ; }
otherwise Serde could not deserialize output from s3select to row data correctly