[ https://issues.apache.org/jira/browse/PHOENIX-4418?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16385683#comment-16385683 ]
Shehzaad Nakhoda commented on PHOENIX-4418: ------------------------------------------- Hi [~tdsilva] A lot of these failures are being caused by the expression UPPER(NAME) being rendered as UPPER(NAME, ) in things like column headings. For example: {{0: jdbc:phoenix:> create table hello_table (ID DECIMAL PRIMARY KEY, NAME VARCHAR); No rows affected (2.252 seconds) 0: jdbc:phoenix:> upsert into hello_table values(1, 'abc'); 1 row affected (0.03 seconds) 0: jdbc:phoenix:> select upper(name) from hello_table; +----------------+ | UPPER(NAME, ) | +----------------+ | ABC | +----------------+ 0: jdbc:phoenix:> select substr(name, 1) from hello_table; +--------------------+ | SUBSTR(NAME, 1, ) | +--------------------+ | abc | +--------------------+ }} I tried this with other functions that have optional parameters like SUBSTR and saw the same effect. And this is trickling into EXPLAIN plan as well. Looks to me like there's a bug - SUBSTR(NAME, 1) should be represented as SUBSTR(NAME, 1) not as SUBSTR(NAME, 1, ) Given this, should I update the assert in the tests? > UPPER() and LOWER() functions should be locale-aware > ---------------------------------------------------- > > Key: PHOENIX-4418 > URL: https://issues.apache.org/jira/browse/PHOENIX-4418 > Project: Phoenix > Issue Type: Improvement > Affects Versions: 4.13.0 > Reporter: Shehzaad Nakhoda > Assignee: Shehzaad Nakhoda > Priority: Major > Fix For: 4.14.0 > > Attachments: PHOENIX-4418_v1.patch > > > Correct conversion of a string to upper or lower case depends on Locale. > Java's upper case and lower case conversion routines allow passing in a > locale. > It should be possible to pass in a locale to UPPER() and LOWER() in Phoenix > so that locale-specific case conversion can be supported in Phoenix. > See java.lang.String#toUpperCase() -- This message was sent by Atlassian JIRA (v7.6.3#76005)