drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Barclay (Drill) (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DRILL-2763) Implement INFORMATION_SCHEMA.COLUMNS enough for relevant tools [umbrella/tracking bug]
Date Mon, 20 Apr 2015 17:16:58 GMT

     [ https://issues.apache.org/jira/browse/DRILL-2763?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Daniel Barclay (Drill) updated DRILL-2763:
------------------------------------------
    Description: 
[TBD: intro.]

A. {{COLUMNS}} columns existing in Drill that are not compliant with standard SQL:

1. *TDB*: {{TABLE_NAME}} holds the original form of the identifier but _might_ need to be
uppercased here to be compliant (or possibly internal matching queries (e.g., for JDBC's getColumns(...))
could be case-insensitive).
2. *TDB*: {{COLUMN_NAME}} holds the original form of the identifier but _might_ need to be
uppercased here to be compliant (or possibly internal matching queries (e.g., for JDBC's getColumns(...))
could be case-insensitive).
3. {{ORDINAL_POSITION}} values are zero-based rather than being one-based.
4. {{CHARACTER_MAXIMUM_LENGTH}},  {{NUMERIC_PRECISION_RADIX}}, {{NUMERIC_SCALE}}, and {{NUMERIC_PRECISION}}
use {{-1}} instead of {{NULL}} for the "not-applicable" case.
5. {{NUMERIC_PRECISION}} for non-{{DECIMAL}}/{{NUMERIC}} exact numeric types (e.g., {{INTEGER}})
and approximate numeric types (e.g., {{DOUBLE}}) is {{-1}} (logical null) instead of the specified
values.
6. {{NUMERIC_SCALE}} for non-{{DECIMAL}}/{{NUMERIC}} exact numeric types is {{-1}} instead
of  {{0}}.
7. {{NUMERIC_SCALE}} for approximate numeric types is {{-1}} instead of the number of bits
of precision (24 and 53(?)).
8. {{NUMERIC_PRECISION_RADIX}} for integral exact numeric types is {{-1}} instead of {{10}}.
9. {{NUMERIC_PRECISION_RADIX}} for approximate exact numeric types is {{-1}} instead of {{2}}.
10. {{CHARACTER_MAXIMUM_LENGTH}}  for types {{CHAR}}, {{BINARY}}, and {{VAR BINARY}} is {{-1}}
instead of the corresponding length.
11. {{DATA_TYPE}} values for {{INTERVAL}} with {{YEAR}} and/or {{MONTH}} and for {{INTERVAL}}
with {{DAY}}, {{HOUR}}, {{MINUTE}}, and/or {{SECOND}} are "{{INTERVAL_YEAR_MONTH}}" and "{{INTERVAL_DATA_TIME}}",
respectively, instead of the data type name "{{INTERVAL}}".
12. {{DATA_TYPE}} values for non-atomic types seem to be type descriptors ({{<data type>}}
syntax; e.g., "{{VARCHAR(65536) ARRAY}}") instead of just data type names (e.g., "{{ARRAY}}").


B.  Standard {{COLUMNS}} columns that don't exist in Drill and that probably are more relevant:
1. {{CHARACTER_OCTET_LENGTH}} does not exist. (Drill's JDBC driver needs to return this, and
currently tries to compute it itself.)
2. {{DATETIME_PRECISION}} does not exist. (Drill's JDBC driver probably needs it to compute
its {{getColumns()}}'s {{COLUMN_SIZE}} correctly.) 
3. {{INTERVAL_TYPE}} does not exist. (Drill's JDBC driver needs this to compute its {{getColumns()}}'s
{{COLUMN_SIZE}} correctly once {{COLUMNS.DATA_TYPE}} is correct.}
4. {{INTERVAL_PRECISION}} does not exist.  (Drill's JDBC driver needs this to compute its
{{getColumns()}}'s {{COLUMN_SIZE}} correctly.)
[TBD]
5.  {{MAXIMUM_CARDINALITY}} does not exist.  (This might be relevant for JDBC's  {{getColumns()}}'s
{{COLUMN_SIZE}}.)

C. Standard {{COLUMNS}} columns that don't exist in Drill but are less likely to be relevant
(listed for completeness):
- {{COLUMN_DEFAULT}}
- {{CHARACTER_SET_CATALOG}}
- {{CHARACTER_SET_SCHEMA}}
- {{CHARACTER_SET_NAME}}
- {{COLLATION_CATALOG}}
- {{COLLATION_SCHEMA}}
- {{COLLATION_NAME}}
- {{DOMAIN_CATALOG}}
- {{DOMAIN_SCHEMA}}
- {{DOMAIN_NAME}}
- {{UDT_CATALOG}}
- {{UDT_SCHEMA}}
- {{UDT_NAME}}
- {{SCOPE_CATALOG}}
- {{SCOPE_SCHEMA}}
- {{SCOPE_NAME}}
- {{DTD_IDENTIFIER}}
- {{IS_SELF_REFERENCING}}
- {{IS_IDENTITY}}
- {{IDENTITY_GENERATION}}
- {{IDENTITY_START}}
- {{IDENTITY_INCREMENT}}
- {{IDENTITY_MAXIMUM}}
- {{IDENTITY_MINIMUM}}
- {{IDENTITY_CYCLE}}
- {{IS_GENERATED}}
- {{GENERATION_EXPRESSION}}
- {{IS_SYSTEM_TIME_PERIOD_START}}
- {{IS_SYSTEM_TIME_PERIOD_END}}
- {{SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION}}
- {{IS_UPDATABLE}}
- {{DECLARED_DATA_TYPE}}
- {{DECLARED_NUMERIC_PRECISION}}
- {{DECLARED_NUMERIC_SCALE}}


  was:
[TBD: intro.]

A. {{COLUMNS}} columns existing in Drill that are not compliant with standard SQL:

1. *TDB*: {{TABLE_NAME}} holds the original form of the identifier but _might_ need to be
uppercased here to be compliantt (or possibly internal matching queries (e.g., for JDBC's
getColumns(...)) could be case-insensitive).
2. *TDB*: {{COLUMN_NAME}} holds the original form of the identifier but _might_ need to be
uppercased here to be compliant (or possibly internal matching queries (e.g., for JDBC's getColumns(...))
could be case-insensitive).
3. {{ORDINAL_POSITION}} values are zero-based rather than being one-based.
4. {{CHARACTER_MAXIMUM_LENGTH}},  {{NUMERIC_PRECISION_RADIX}}, {{NUMERIC_SCALE}}, and {{NUMERIC_PRECISION}}
use {{-1}} instead of {{NULL}} for the "not-applicable" case.
5. {{NUMERIC_PRECISION}} for non-{{DECIMAL}}/{{NUMERIC}} exact numeric types (e.g., {{INTEGER}})
and approximate numeric types (e.g., {{DOUBLE}}) is {{-1}} (logical null) instead of the specified
values.
6. {{NUMERIC_SCALE}} for non-{{DECIMAL}}/{{NUMERIC}} exact numeric types is {{-1}} instead
of  {{0}}.
7. {{NUMERIC_SCALE}} for approximate numeric types is {{-1}} instead of the number of bits
of precision (24 and 53(?)).
8. {{NUMERIC_PRECISION_RADIX}} for integral exact numeric types is {{-1}} instead of {{10}}.
9. {{NUMERIC_PRECISION_RADIX}} for approximate exact numeric types is {{-1}} instead of {{2}}.
10. {{CHARACTER_MAXIMUM_LENGTH}}  for types {{CHAR}}, {{BINARY}}, and {{VAR BINARY}} is {{-1}}
instead of the corresponding length.
11. {{DATA_TYPE}} values for {{INTERVAL}} with {{YEAR}} and/or {{MONTH}} and for {{INTERVAL}}
with {{DAY}}, {{HOUR}}, {{MINUTE}}, and/or {{SECOND}} are "{{INTERVAL_YEAR_MONTH}}" and "{{INTERVAL_DATA_TIME}}",
respectively, instead of the data type name "{{INTERVAL}}".
12. {{DATA_TYPE}} values for non-atomic types seem to be type descriptors ({{<data type>}}
syntax; e.g., "{{VARCHAR(65536) ARRAY}}") instead of just data type names (e.g., "{{ARRAY}}").


B.  Standard {{COLUMNS}} columns that don't exist in Drill and that probably are more relevant:
1. {{CHARACTER_OCTET_LENGTH}} does not exist. (Drill's JDBC driver needs to return this, and
currently tries to compute it itself.)
2. {{DATETIME_PRECISION}} does not exist. (Drill's JDBC driver probably needs it to compute
its {{getColumns()}}'s {{COLUMN_SIZE}} correctly.) 
3. {{INTERVAL_TYPE}} does not exist. (Drill's JDBC driver needs this to compute its {{getColumns()}}'s
{{COLUMN_SIZE}} correctly once {{COLUMNS.DATA_TYPE}} is correct.}
4. {{INTERVAL_PRECISION}} does not exist.  (Drill's JDBC driver needs this to compute its
{{getColumns()}}'s {{COLUMN_SIZE}} correctly.)
[TBD]
5.  {{MAXIMUM_CARDINALITY}} does not exist.  (This might be relevant for JDBC's  {{getColumns()}}'s
{{COLUMN_SIZE}}.)

C. Standard {{COLUMNS}} columns that don't exist in Drill but are less likely to be relevant
(listed for completeness):
- {{COLUMN_DEFAULT}}
- {{CHARACTER_SET_CATALOG}}
- {{CHARACTER_SET_SCHEMA}}
- {{CHARACTER_SET_NAME}}
- {{COLLATION_CATALOG}}
- {{COLLATION_SCHEMA}}
- {{COLLATION_NAME}}
- {{DOMAIN_CATALOG}}
- {{DOMAIN_SCHEMA}}
- {{DOMAIN_NAME}}
- {{UDT_CATALOG}}
- {{UDT_SCHEMA}}
- {{UDT_NAME}}
- {{SCOPE_CATALOG}}
- {{SCOPE_SCHEMA}}
- {{SCOPE_NAME}}
- {{DTD_IDENTIFIER}}
- {{IS_SELF_REFERENCING}}
- {{IS_IDENTITY}}
- {{IDENTITY_GENERATION}}
- {{IDENTITY_START}}
- {{IDENTITY_INCREMENT}}
- {{IDENTITY_MAXIMUM}}
- {{IDENTITY_MINIMUM}}
- {{IDENTITY_CYCLE}}
- {{IS_GENERATED}}
- {{GENERATION_EXPRESSION}}
- {{IS_SYSTEM_TIME_PERIOD_START}}
- {{IS_SYSTEM_TIME_PERIOD_END}}
- {{SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION}}
- {{IS_UPDATABLE}}
- {{DECLARED_DATA_TYPE}}
- {{DECLARED_NUMERIC_PRECISION}}
- {{DECLARED_NUMERIC_SCALE}}



> Implement INFORMATION_SCHEMA.COLUMNS enough for relevant tools [umbrella/tracking bug]
> --------------------------------------------------------------------------------------
>
>                 Key: DRILL-2763
>                 URL: https://issues.apache.org/jira/browse/DRILL-2763
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Storage - Information Schema
>            Reporter: Daniel Barclay (Drill)
>            Assignee: Daniel Barclay (Drill)
>
> [TBD: intro.]
> A. {{COLUMNS}} columns existing in Drill that are not compliant with standard SQL:
> 1. *TDB*: {{TABLE_NAME}} holds the original form of the identifier but _might_ need to
be uppercased here to be compliant (or possibly internal matching queries (e.g., for JDBC's
getColumns(...)) could be case-insensitive).
> 2. *TDB*: {{COLUMN_NAME}} holds the original form of the identifier but _might_ need
to be uppercased here to be compliant (or possibly internal matching queries (e.g., for JDBC's
getColumns(...)) could be case-insensitive).
> 3. {{ORDINAL_POSITION}} values are zero-based rather than being one-based.
> 4. {{CHARACTER_MAXIMUM_LENGTH}},  {{NUMERIC_PRECISION_RADIX}}, {{NUMERIC_SCALE}}, and
{{NUMERIC_PRECISION}} use {{-1}} instead of {{NULL}} for the "not-applicable" case.
> 5. {{NUMERIC_PRECISION}} for non-{{DECIMAL}}/{{NUMERIC}} exact numeric types (e.g., {{INTEGER}})
and approximate numeric types (e.g., {{DOUBLE}}) is {{-1}} (logical null) instead of the specified
values.
> 6. {{NUMERIC_SCALE}} for non-{{DECIMAL}}/{{NUMERIC}} exact numeric types is {{-1}} instead
of  {{0}}.
> 7. {{NUMERIC_SCALE}} for approximate numeric types is {{-1}} instead of the number of
bits of precision (24 and 53(?)).
> 8. {{NUMERIC_PRECISION_RADIX}} for integral exact numeric types is {{-1}} instead of
{{10}}.
> 9. {{NUMERIC_PRECISION_RADIX}} for approximate exact numeric types is {{-1}} instead
of {{2}}.
> 10. {{CHARACTER_MAXIMUM_LENGTH}}  for types {{CHAR}}, {{BINARY}}, and {{VAR BINARY}}
is {{-1}} instead of the corresponding length.
> 11. {{DATA_TYPE}} values for {{INTERVAL}} with {{YEAR}} and/or {{MONTH}} and for {{INTERVAL}}
with {{DAY}}, {{HOUR}}, {{MINUTE}}, and/or {{SECOND}} are "{{INTERVAL_YEAR_MONTH}}" and "{{INTERVAL_DATA_TIME}}",
respectively, instead of the data type name "{{INTERVAL}}".
> 12. {{DATA_TYPE}} values for non-atomic types seem to be type descriptors ({{<data
type>}} syntax; e.g., "{{VARCHAR(65536) ARRAY}}") instead of just data type names (e.g.,
"{{ARRAY}}").
> B.  Standard {{COLUMNS}} columns that don't exist in Drill and that probably are more
relevant:
> 1. {{CHARACTER_OCTET_LENGTH}} does not exist. (Drill's JDBC driver needs to return this,
and currently tries to compute it itself.)
> 2. {{DATETIME_PRECISION}} does not exist. (Drill's JDBC driver probably needs it to compute
its {{getColumns()}}'s {{COLUMN_SIZE}} correctly.) 
> 3. {{INTERVAL_TYPE}} does not exist. (Drill's JDBC driver needs this to compute its {{getColumns()}}'s
{{COLUMN_SIZE}} correctly once {{COLUMNS.DATA_TYPE}} is correct.}
> 4. {{INTERVAL_PRECISION}} does not exist.  (Drill's JDBC driver needs this to compute
its {{getColumns()}}'s {{COLUMN_SIZE}} correctly.)
> [TBD]
> 5.  {{MAXIMUM_CARDINALITY}} does not exist.  (This might be relevant for JDBC's  {{getColumns()}}'s
{{COLUMN_SIZE}}.)
> C. Standard {{COLUMNS}} columns that don't exist in Drill but are less likely to be relevant
(listed for completeness):
> - {{COLUMN_DEFAULT}}
> - {{CHARACTER_SET_CATALOG}}
> - {{CHARACTER_SET_SCHEMA}}
> - {{CHARACTER_SET_NAME}}
> - {{COLLATION_CATALOG}}
> - {{COLLATION_SCHEMA}}
> - {{COLLATION_NAME}}
> - {{DOMAIN_CATALOG}}
> - {{DOMAIN_SCHEMA}}
> - {{DOMAIN_NAME}}
> - {{UDT_CATALOG}}
> - {{UDT_SCHEMA}}
> - {{UDT_NAME}}
> - {{SCOPE_CATALOG}}
> - {{SCOPE_SCHEMA}}
> - {{SCOPE_NAME}}
> - {{DTD_IDENTIFIER}}
> - {{IS_SELF_REFERENCING}}
> - {{IS_IDENTITY}}
> - {{IDENTITY_GENERATION}}
> - {{IDENTITY_START}}
> - {{IDENTITY_INCREMENT}}
> - {{IDENTITY_MAXIMUM}}
> - {{IDENTITY_MINIMUM}}
> - {{IDENTITY_CYCLE}}
> - {{IS_GENERATED}}
> - {{GENERATION_EXPRESSION}}
> - {{IS_SYSTEM_TIME_PERIOD_START}}
> - {{IS_SYSTEM_TIME_PERIOD_END}}
> - {{SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION}}
> - {{IS_UPDATABLE}}
> - {{DECLARED_DATA_TYPE}}
> - {{DECLARED_NUMERIC_PRECISION}}
> - {{DECLARED_NUMERIC_SCALE}}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message