[ https://issues.apache.org/jira/browse/DRILL-2420?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14573715#comment-14573715 ]
Daniel Barclay (Drill) commented on DRILL-2420: ----------------------------------------------- See "DRILL-2420" marks in code (TestInformationSchemaColumns, DatabaseMetaDataGetColumnsTest). > Identify, fix DatabaseMetaData.getColumns() bugs [umbrella/tracking bug] > ------------------------------------------------------------------------ > > Key: DRILL-2420 > URL: https://issues.apache.org/jira/browse/DRILL-2420 > Project: Apache Drill > Issue Type: Task > Components: Client - JDBC, Metadata > Reporter: Daniel Barclay (Drill) > Assignee: Daniel Barclay (Drill) > Fix For: 1.1.0 > > > Drill's implementation of {{DatabaseMetaData.getColumns(...)}} (currently at > {{org.apache.drill.jdbc.MetaImpl.getColumns()}}) doesn't match the JDBC > specification (the Javadoc documentation for > {{DatabaseMetaData.getColumns(...)}} (as of Java 7)). In the returned > {{ResultSet}}: > 1. -Column {{DATA_TYPE}} is of type {{VARCHAR}} (containing the type name) > rather than being of type {{INTEGER}} (containing values per > {{java.sql.Types.*}}).- \[Fixed by DRILL-2128.\] > 2. -Column {{TYPE_NAME}} is missing.- \[Fixed by DRILL-2128.\] > 3. -Column {{COLUMN_SIZE}} is missing.- \[Fixed by DRILL-2465.\] > 4. -(Columns after {{DATA_TYPE}} are at incorrect indexes.)- \[Fixed by > DRILL-2465.\] > 5. -Column {{DECIMAL_DIGITS}} is misnamed {{DECIMAL_PRECISION}}.- \[Fixed by > DRILL-2465.\] > 6. -Column {{REMARKS}} is an empty string, but probably should be {{NULL}}.- > \[Fixed by DRILL-2465.\] > 7. -Column {{COLUMN_DEF}} is an empty string, but probably should be > {{NULL}}.- \[Fixed by DRILL-2465.\] > 8. -Column {{CHAR_OCTET_LENGTH}} is always {{4}}, but should be "the maximum > number of bytes in the _column_" for character types.- \[Fixed by > DRILL-2465.\] > 8.5 Column {{IS_NULLABLE}} seems to always return 'NO'. > 9. -Column {{ORDINAL_POSITION}} is always {{1}}, but should be the index of > the specific column.- \[Fixed by DRILL-2465.\] > 10. Column {{IS_NULLABLE}} is {{'YES'}}, which doesn't seem to correspond to > the value for {{NULLABLE}} ({{DatabaseMetaData.columnNullableUnknown}}). > 11. -Column {{SCOPE_CATALOG}} is an empty string, but should be {{NULL}}.- > \[Fixed by DRILL-2465.\] > 12. -Column {{SCOPE_SCHEMA}} is an empty string, but should be {{NULL}}.- > \[Fixed by DRILL-2465.\] > 13. -Column {{SCOPE_TABLE}} is an empty string, but should be {{NULL}}.- > \[Fixed by DRILL-2465.\] > 14. -Column {{SOURCE_DATA_TYPE}} is an empty string, but should be {{NULL}}.- > \[Fixed by DRILL-2465.\] > Additional bugs or suspect behavior: > - {{DECIMAL_DIGITS}}/{{DECIMAL_PRECISION}} is {{-1}} when it should be > {{NULL}} (when not applicable). > - -{{NUM_PREC_RADIX}} is {{-1}} when it probably should be {{NULL}} (when not > applicable).- \[Fixed by DRILL-2465.\] > (Other columns to check: > Re {{BUFFER_LENGTH}}, {{SQL_DATA_TYPE}}, and {{SQL_DATETIME_SUB}}: When JDBC > says a column is not used, are there any requirements on the values (e.g., > being {{NULL}})? > Re {{IS_AUTOINCREMENT}}: Do we know that a column is not auto-incremented? > If so, the value could be {{'NO'}} rather than an empty string. > Re {{IS_GENERATEDCOLUMN}}: Do we know that a column is not generated? If > so, the value could be {{'NO'}} rather than an empty string. > Re {{NULLABLE}} (: Do know whether a column is nullable or not? If so, we > could return the specific answer rather that just saying that it's unknown. > ) -- This message was sent by Atlassian JIRA (v6.3.4#6332)