[ https://issues.apache.org/jira/browse/PHOENIX-1835?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Thomas D'Silva resolved PHOENIX-1835. ------------------------------------- Resolution: Invalid > Adjust MetaDataEndPointImpl timestamps if table is transactional > ---------------------------------------------------------------- > > Key: PHOENIX-1835 > URL: https://issues.apache.org/jira/browse/PHOENIX-1835 > Project: Phoenix > Issue Type: Sub-task > Reporter: James Taylor > Assignee: Thomas D'Silva > > Phoenix correlates table metadata with the table data based on timestamp. > Since Tephra is adjusting timestamps for the data, we need to do the same for > the metadata operations (which aren't transactional through Tephra). Take a > look at MetaDataEndPointImpl and the MetaDataMutationResult where we return > the server timestamp (i.e. MetaDataMutationResult.getTable() for example). > This timestamp should be run through the TransactionUtil.translateTimestamp() > method). > Add a point-in-time test with a table being altered, but your connection > being before that time (with CURRENT_SCN) as a test. We'll need to make sure > the Puts to the SYSTEM.CATALOG get timestamped correctly (but I think the > above will cause that). > Also, my other hack in PostDDLCompiler, should not be necessary after this: > {code} > // FIXME: DDL operations aren't transactional, so > we're basing the timestamp on a server timestamp. > // Not sure what the fix should be. We don't need > conflict detection nor filtering of invalid transactions > // in this case, so maybe this is ok. > if (tableRef.getTable().isTransactional()) { > ts = TransactionUtil.translateMillis(ts); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)