[ https://issues.apache.org/jira/browse/HIVE-14310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15396511#comment-15396511 ]
Owen O'Malley edited comment on HIVE-14310 at 7/27/16 10:15 PM: ---------------------------------------------------------------- Comments: * You should not throw if the file schema has more columns than the reader schema. We want to support schema evolution that includes deleting columns. * You should comment that included, readerFileTypes, and ppdSafeConversion are all indexed by the reader column id. * The comment about why float -> double isn't support is a little broken. How about: {code} // NOTE: Float to double evolution is not safe as floats are stored as doubles in ORC's // internal index, but when doing predicate evaluation for queries like "select * from // orc_float where f = 74.72" the constant on the filter is converted from string -> double // so the precisions will be different and the comparison will fail. // Soon, we should convert all sargs that compare equality between floats or // doubles to range predicates. {code} Other than that, it looks good. was (Author: owen.omalley): Comments: * You should not throw in the file schema has more columns than the reader schema. We want to support schema evolution that includes deleting columns. * You should comment that included, readerFileTypes, and ppdSafeConversion are all indexed by the reader column id. * The comment about why float -> double isn't support is a little broken. How about: {code} // NOTE: Float to double evolution is not safe as floats are stored as doubles in ORC's // internal index, but when doing predicate evaluation for queries like "select * from // orc_float where f = 74.72" the constant on the filter is converted from string -> double // so the precisions will be different and the comparison will fail. // Soon, we should convert all sargs that compare equality between floats or // doubles to range predicates. {code} Other than that, it looks good. > ORC schema evolution should not completely disable PPD > ------------------------------------------------------ > > Key: HIVE-14310 > URL: https://issues.apache.org/jira/browse/HIVE-14310 > Project: Hive > Issue Type: Bug > Affects Versions: 2.2.0 > Reporter: Prasanth Jayachandran > Assignee: Prasanth Jayachandran > Priority: Critical > Attachments: HIVE-14310.1.patch, HIVE-14310.2.patch, > HIVE-14310.WIP.patch > > > Follow up for HIVE-14214 which completely shuts off PPD when there is any > schema evolution. Some evolutions are safer for PPD like > byte -> short -> int -> long > -float -> double- (This is unsafe, see comments in SchemaEvolution.java in > the patch) > varchar <-> string (string to char, varchar to char and vice versa is also > unsafe conversion as Orc stores internal index with padded spaces for char) > For all other conversions we can disable PPD for that specific column that > has evolved by returning TruthValue.YES_NO -- This message was sent by Atlassian JIRA (v6.3.4#6332)