[
https://issues.apache.org/jira/browse/PHOENIX-3421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
James Taylor updated PHOENIX-3421:
----------------------------------
Attachment: PHOENIX-3421_addendum1.patch
This keeps the old, deprecated methods as-is and introduces new methods for the
new lookup, encode, and decode:
{code}
public static byte[] encodeColumnValues(Connection conn, String
fullTableName, Object[] values, List<Pair<String, String>> columns) throws
SQLException
public static Object[] decodeColumnValues(Connection conn, String
fullTableName, byte[] value, List<Pair<String, String>> columns) throws
SQLException
public static List<Pair<String, String>> getPkColsForSql(Connection conn,
QueryPlan plan) throws SQLException
{code}
Please review, [~samarthjain]
> Column name lookups fail when on an indexed table
> -------------------------------------------------
>
> Key: PHOENIX-3421
> URL: https://issues.apache.org/jira/browse/PHOENIX-3421
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.8.0
> Reporter: Cody Marcel
> Assignee: James Taylor
> Fix For: 4.9.0
>
> Attachments: DebuggerWindow.png, PHOENIX-3421.patch,
> PHOENIX-3421_addendum1.patch
>
>
> Using an index the lookup for encoded values fails.
> This happens on tables when using an index.
> The conflict is essentially between the two methods below. The pkColsList
> create by getPkColsDataTypesForSql() returns column names without a ":", but
> the encodeValues() method does a lookup on PTable for the column and cannot
> find it.
> PhoenixRuntime.getPkColsDataTypesForSql(pkColsList, dataTypesList, queryPlan,
> connection, true);
> PhoenixRuntime.encodeValues(connection, queryPlanTableName, objects ,
> pkColsList);
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)