[ https://issues.apache.org/jira/browse/PHOENIX-2310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14948999#comment-14948999 ]
Jan Fernando commented on PHOENIX-2310: --------------------------------------- Committed to 4.5 and 4.x branches as well. > 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 > 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)