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)

Reply via email to