phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcin Januszkiewicz <katamaran...@gmail.com>
Subject Phoenix uses String representation of columns that cannot be correctly parsed.
Date Tue, 28 Nov 2017 08:55:57 GMT
Hi,

I've been doing some investigating into PHOENIX-3696 (
https://issues.apache.org/jira/browse/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 Esception 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.
What do you think?

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message