Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 6408F200D50 for ; Mon, 4 Dec 2017 13:56:06 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 592B7160C1B; Mon, 4 Dec 2017 12:56:06 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 9C379160BF9 for ; Mon, 4 Dec 2017 13:56:05 +0100 (CET) Received: (qmail 36530 invoked by uid 500); 4 Dec 2017 12:56:04 -0000 Mailing-List: contact dev-help@phoenix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@phoenix.apache.org Delivered-To: mailing list dev@phoenix.apache.org Received: (qmail 36518 invoked by uid 99); 4 Dec 2017 12:56:04 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Dec 2017 12:56:04 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 01FA4C4C02 for ; Mon, 4 Dec 2017 12:56:04 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -100.011 X-Spam-Level: X-Spam-Status: No, score=-100.011 tagged_above=-999 required=6.31 tests=[SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01, USER_IN_WHITELIST=-100] autolearn=disabled Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id 4JX2a6mh6wiR for ; Mon, 4 Dec 2017 12:56:03 +0000 (UTC) Received: from mailrelay1-us-west.apache.org (mailrelay1-us-west.apache.org [209.188.14.139]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTP id 2F90A5FB98 for ; Mon, 4 Dec 2017 12:56:03 +0000 (UTC) Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id 22BD5E0162 for ; Mon, 4 Dec 2017 12:56:01 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 356E021064 for ; Mon, 4 Dec 2017 12:56:00 +0000 (UTC) Date: Mon, 4 Dec 2017 12:56:00 +0000 (UTC) From: "Marcin Januszkiewicz (JIRA)" To: dev@phoenix.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (PHOENIX-4433) Phoenix passes around String representations of columns that cannot be correctly parsed. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Mon, 04 Dec 2017 12:56:06 -0000 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)