[ https://issues.apache.org/jira/browse/PHOENIX-2310?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jan Fernando resolved PHOENIX-2310. ----------------------------------- Resolution: Fixed > PhoenixConfigurationUtil.getUpsertColumnMetadataList() in Phoenix Mapreduce > integration generates incorrect upsert statement for view immediately after > issue view DDL > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Key: PHOENIX-2310 > URL: https://issues.apache.org/jira/browse/PHOENIX-2310 > Project: Phoenix > Issue Type: Bug > Affects Versions: 4.5.2 > Reporter: Jan Fernando > Assignee: Jan Fernando > Fix For: 4.5.3 > > Attachments: PHOENIX-2310-4.5.patch, PHOENIX-2310-v1.patch, > PHOENIX-2310_v2.patch > > > We ran into what I believe is a corner case that was causing a M/R job using > the Phoenix / Pig integration to fail by virtue of a incorrect UPSERT > statement being generated. > The issue was intermittent. The bug is that the UPSERT statement generated by > PhoenixConfigurationUtil.getUpsertColumnMetadataList() when invoked from > PhoenixRecordWriter would, instead of the cf.column_name, would contain for > certain columns the result class name + hashcode as generated by Java's > Object.toString(). Since this was not a valid column name the Pig Script > would blow-up. > This only occurs if we are attempting to insert data into a Phoenix View and > the DDL for the Phoenix View was issued recently such that the MetadataClient > cache was for this view was populated by MetaDataClient.createTable(). > What is occurring is in this case we wrap the PColumn in a Delegate at lines > 1898 and 1909. The DelegateColumn class used to wrap PColumn doesn't > implement toString() and so the default Object toString() is used. If you > restart the JVM and force Phoenix to re-read the metadata from SYSTEM.CATALOG > this doesn't occur as in this case we don't wrap the PColumn instance. > I have a test to repro and a possible patch I'll attach shortly. -- This message was sent by Atlassian JIRA (v6.3.4#6332)