[
https://issues.apache.org/jira/browse/DRILL-2522?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Barclay (Drill) updated DRILL-2522:
------------------------------------------
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.
2. *TDB*: {{COLUMN_NAME}} holds the original form of the identifier but _might_
need to be uppercased here to be compliant.
3. {{ORDINAL_POSITION}} values are zero-based rather than being one-based.
2. {{CHARACTER_MAXIMUM_LENGTH}}, {{NUMERIC_PRECISION_RADIX}},
{{NUMERIC_SCALE}}, and {{NUMERIC_PRECISION}} use {{-1}} instead of {{NULL}} for
the "not-applicable" case.
3. {{NUMERIC_PRECISION}} for integral exact numeric types (e.g., {{INTEGER}})
and approximate numeric types (e.g., {{DOUBLE}}) is {{-1}} (logical null)
instead of the specified values.
3. {{NUMERIC_SCALE}} for integral exact numeric types is {{-1}} instead of
{{0}}.
4. {{NUMERIC_SCALE}} for approximate numeric types is {{-1}} instead of the
number of bits of precision (24 and 53(?)).
5. {{NUMERIC_PRECISION_RADIX}} for non-{{DECIMAL}} exact numeric types is
{{-1}} instead of {{10}}.
6. {{NUMERIC_PRECISION_RADIX}} for approximate exact numeric types is {{-1}}
instead of {{2}}.
7. {{CHARACTER_MAXIMUM_LENGTH}} for types {{CHAR}}, {{BINARY}}, and {{VAR
BINARY}} is {{-1}} instead of the corresponding length.
8. {{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}}".
9. {{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
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 less likely to be
relevant (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 (does not exist yet)
- {{IDENTITY_INCREMENT}}
- {{IDENTITY_MAXIMUM}}
- {{IDENTITY_MINIMUM}}
- {{IDENTITY_CYCLE}}
- {{IS_GENERATED}}
- {{GENERATION_EXPRESSION}}
- {{IS_SYSTEM_TIME_PERIOD_START}}
- {{IS_SYSTEM_TIME_PERIOD_END (does not exist yet)
- {{SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION}}
- {{IS_UPDATABLE}}
- {{DECLARED_DATA_TYPE}}
- {{DECLARED_NUMERIC_PRECISION}}
- {{DECLARED_NUMERIC_SCALE}}
[TBD]
was:
[TBD: intro.]
A. {{COLUMNS}} columns existing in Drill that are not compliant with standard
SQL:
1. {{COLUMNS.ORDINAL_POSITION}} values are zero-based rather than being
one-based.
2. {{COLUMNS}} columns {{CHARACTER_MAXIMUM_LENGTH}},
{{NUMERIC_PRECISION_RADIX}}, {{NUMERIC_SCALE}}, and {{NUMERIC_PRECISION}} use
{{-1}} instead of {{NULL}} for the "not-applicable" case.
3. {{NUMERIC_PRECISION}} for integral exact numeric types (e.g., {{INTEGER}})
and approximate numeric types (e.g., {{DOUBLE}}) is {{-1}} (logical null)
instead of the specified values.
3. {{NUMERIC_SCALE}} for integral exact numeric types is {{-1}} instead of
{{0}}.
4. {{NUMERIC_SCALE}} for approximate numeric types is {{-1}} instead of the
number of bits of precision (24 and 53(?)).
5. {{NUMERIC_PRECISION_RADIX}} for non-{{DECIMAL}} exact numeric types is
{{-1}} instead of {{10}}.
6. {{NUMERIC_PRECISION_RADIX}} for approximate exact numeric types is {{-1}}
instead of {{2}}.
7. {{CHARACTER_MAXIMUM_LENGTH}} for types {{CHAR}}, {{BINARY}}, and {{VAR
BINARY}} is {{-1}} instead of the corresponding length.
8. {{COLUMNS.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}}".
9. {{COLUMNS.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}}").
10. *TDB*: {{COLUMNS.COLUMN_NAME}} holds the original form of the name but
_might_ need to be uppercased here to be compliant.
B. Standard {{COLUMNS}} columns that don't exist in Drill and that probably
are more relevant:
[TBD]
C. Standard {{COLUMNS}} columns that don't exist in Drill and that probably are
less relevant:
[TBD]
> Implement INFORMATION_SCHEMA enough for relevant tools [umbrella/tracking bug]
> ------------------------------------------------------------------------------
>
> Key: DRILL-2522
> URL: https://issues.apache.org/jira/browse/DRILL-2522
> Project: Apache Drill
> Issue Type: Bug
> Components: Storage - Information Schema
> Reporter: Daniel Barclay (Drill)
> Assignee: Daniel Barclay (Drill)
> Priority: Critical
> Fix For: 1.0.0
>
>
> [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.
> 2. *TDB*: {{COLUMN_NAME}} holds the original form of the identifier but
> _might_ need to be uppercased here to be compliant.
> 3. {{ORDINAL_POSITION}} values are zero-based rather than being one-based.
> 2. {{CHARACTER_MAXIMUM_LENGTH}}, {{NUMERIC_PRECISION_RADIX}},
> {{NUMERIC_SCALE}}, and {{NUMERIC_PRECISION}} use {{-1}} instead of {{NULL}}
> for the "not-applicable" case.
> 3. {{NUMERIC_PRECISION}} for integral exact numeric types (e.g., {{INTEGER}})
> and approximate numeric types (e.g., {{DOUBLE}}) is {{-1}} (logical null)
> instead of the specified values.
> 3. {{NUMERIC_SCALE}} for integral exact numeric types is {{-1}} instead of
> {{0}}.
> 4. {{NUMERIC_SCALE}} for approximate numeric types is {{-1}} instead of the
> number of bits of precision (24 and 53(?)).
> 5. {{NUMERIC_PRECISION_RADIX}} for non-{{DECIMAL}} exact numeric types is
> {{-1}} instead of {{10}}.
> 6. {{NUMERIC_PRECISION_RADIX}} for approximate exact numeric types is {{-1}}
> instead of {{2}}.
> 7. {{CHARACTER_MAXIMUM_LENGTH}} for types {{CHAR}}, {{BINARY}}, and {{VAR
> BINARY}} is {{-1}} instead of the corresponding length.
> 8. {{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}}".
> 9. {{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 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 less likely to
> be relevant (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 (does not exist yet)
> - {{IDENTITY_INCREMENT}}
> - {{IDENTITY_MAXIMUM}}
> - {{IDENTITY_MINIMUM}}
> - {{IDENTITY_CYCLE}}
> - {{IS_GENERATED}}
> - {{GENERATION_EXPRESSION}}
> - {{IS_SYSTEM_TIME_PERIOD_START}}
> - {{IS_SYSTEM_TIME_PERIOD_END (does not exist yet)
> - {{SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION}}
> - {{IS_UPDATABLE}}
> - {{DECLARED_DATA_TYPE}}
> - {{DECLARED_NUMERIC_PRECISION}}
> - {{DECLARED_NUMERIC_SCALE}}
> [TBD]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)