phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marcin Januszkiewicz (JIRA)" <j...@apache.org>
Subject [jira] [Created] (PHOENIX-4433) Phoenix passes around String representations of columns that cannot be correctly parsed.
Date Mon, 04 Dec 2017 12:56:00 GMT
Marcin Januszkiewicz created PHOENIX-4433:
---------------------------------------------

             Summary: Phoenix passes around String representations of columns that cannot
be correctly parsed.
                 Key: PHOENIX-4433
                 URL: https://issues.apache.org/jira/browse/PHOENIX-4433
             Project: Phoenix
          Issue Type: Bug
            Reporter: Marcin Januszkiewicz



I've been doing some investigating into PHOENIX-3696.
I've found that many Phoenix utility methods operate on string representations on column names
while making incorrect assumptions about the shape of the column name,
For example, the method ColumnInfo.getDisplayName assumes that if a period exists in a column
name, then it must be a column family separator.
SchemaUtil.generateColumnInfo will separate column family from column names with a period,
but won't escape them, making it impossible to parse back to the proper column name.
The PhoenixRuntime.getColumnInfo will throw an Exception if there is more than one period
in the column name, even if properly escaped.
This pattern is present within the public API of Phoenix, so I don't think it can be change
in a backward-incompatible way.
I think the proper way of fixing this is to introduce a new column identifier class that can
be passed around instead, and only using strings when we need a serialized value.
Then we could deprecate the string-based methods.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message