Return-Path: X-Original-To: apmail-drill-issues-archive@minotaur.apache.org Delivered-To: apmail-drill-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C4B9118C1E for ; Mon, 29 Jun 2015 17:40:04 +0000 (UTC) Received: (qmail 77823 invoked by uid 500); 29 Jun 2015 17:40:04 -0000 Delivered-To: apmail-drill-issues-archive@drill.apache.org Received: (qmail 77796 invoked by uid 500); 29 Jun 2015 17:40:04 -0000 Mailing-List: contact issues-help@drill.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@drill.apache.org Delivered-To: mailing list issues@drill.apache.org Received: (qmail 77786 invoked by uid 99); 29 Jun 2015 17:40:04 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 29 Jun 2015 17:40:04 +0000 Date: Mon, 29 Jun 2015 17:40:04 +0000 (UTC) From: "Daniel Barclay (Drill) (JIRA)" To: issues@drill.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (DRILL-3151) ResultSetMetaData not as specified by JDBC (null/dummy value, not ""/etc.) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/DRILL-3151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14605956#comment-14605956 ] Daniel Barclay (Drill) commented on DRILL-3151: ----------------------------------------------- Patch commit comment: Added ~unit test for ResultSetMetaData implementation. Made getObject return classes available to implementation of getColumnClassName: Added SqlAccessor.getObjectClass() (to put that metadata right next to code to which it corresponds rather than in far-away parallel code). Added similar AvaticaDrillSqlAccessor.getObjectClass(). Changed DrillAccessorList.accessors from Accessor[] to AvaticaDrillSqlAccessor[] for better access to JDBC getObject return class. Extracted return classes from accessors to pass to updateColumnMetaData. Reworked some data type mapping and utilities: Added Added Types.getSqlTypeName(...). Renamed Types.getJdbcType(...) to getJdbcTypeCode(...) Replaced Types.isUnSigned with isJdbcSignedType. Fixed various bogus RPC-type XXX -> java.sql.Types.SMALLINT mappings. Removed DrillColumnMetaDataList.getJdbcTypeName. Moved getAvaticaType up (for bottom-up order). Revised DrillColumnMetaDataList.getAvaticaType(...). MAIN: Updated updateColumnMetaData(...) to change many calculations of metadata input to ColumnMetaData construction. [DrillColumnMetaDataList] Updated other metadata tests per changes. > ResultSetMetaData not as specified by JDBC (null/dummy value, not ""/etc.) > -------------------------------------------------------------------------- > > Key: DRILL-3151 > URL: https://issues.apache.org/jira/browse/DRILL-3151 > Project: Apache Drill > Issue Type: Bug > Components: Client - JDBC > Reporter: Daniel Barclay (Drill) > Assignee: Daniel Barclay (Drill) > Fix For: 1.2.0 > > Attachments: DRILL-3151.3.patch.txt > > > In Drill's JDBC driver, some ResultSetMetaData methods don't return what JDBC specifies they should return. > Some cases: > {{getTableName(int)}}: > - (JDBC says: {{table name or "" if not applicable}}) > - Drill returns {{null}} (instead of empty string or table name) > - (Drill indicates "not applicable" even when from named table, e.g., for "{{SELECT * FROM INFORMATION_SCHEMA.CATALOGS}}".) > {{getSchemaName(int)}}: > - (JDBC says: {{schema name or "" if not applicable}}) > - Drill returns "{{\-\-UNKNOWN--}}" (instead of empty string or schema name) > - (Drill indicates "not applicable" even when from named table, e.g., for "{{SELECT * FROM INFORMATION_SCHEMA.CATALOGS}}".) > {{getCatalogName(int)}}: > - (JDBC says: {{the name of the catalog for the table in which the given column appears or "" if not applicable}}) > - Drill returns "{{\-\-UNKNOWN--}}" (instead of empty string or catalog name) > - (Drill indicates "not applicable" even when from named table, e.g., for "{{SELECT * FROM INFORMATION_SCHEMA.CATALOGS}}".) > {{isSearchable(int)}}: > - (JDBC says: {{Indicates whether the designated column can be used in a where clause.}}) > - Drill returns {{false}}. > {{getColumnClassName(int}}: > - (JDBC says: {{the fully-qualified name of the class in the Java programming language that would be used by the method ResultSet.getObject to retrieve the value in the specified column. This is the class name used for custom mapping.}}) > - Drill returns "{{none}}" (instead of the correct class name). > More cases: > {{getColumnDisplaySize}} > - (JDBC says (quite ambiguously): {{the normal maximum number of characters allowed as the width of the designated column}}) > - Drill always returns {{10}}! -- This message was sent by Atlassian JIRA (v6.3.4#6332)