You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2016/11/03 22:08:58 UTC

[jira] [Updated] (PHOENIX-3421) Column name lookups fail when on an indexed table

     [ 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)