| <!--- | |
| Licensed to the Apache Software Foundation (ASF) under one | |
| or more contributor license agreements. See the NOTICE file | |
| distributed with this work for additional information | |
| regarding copyright ownership. The ASF licenses this file | |
| to you under the Apache License, Version 2.0 (the | |
| "License"); you may not use this file except in compliance | |
| with the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, | |
| software distributed under the License is distributed on an | |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| KIND, either express or implied. See the License for the | |
| specific language governing permissions and limitations | |
| under the License. | |
| --> | |
| # Information Schema | |
| DataFusion supports showing metadata about the tables and views available. This information can be accessed using the | |
| views of the ISO SQL `information_schema` schema or the DataFusion specific `SHOW TABLES` and `SHOW COLUMNS` commands. | |
| ## `SHOW TABLES` | |
| To show tables in the DataFusion catalog, use the `SHOW TABLES` command or the | |
| `information_schema.tables` view: | |
| ```sql | |
| > show tables; | |
| or | |
| > select * from information_schema.tables; | |
| +---------------+--------------------+------------+------------+ | |
| | table_catalog | table_schema | table_name | table_type | | |
| +---------------+--------------------+------------+------------+ | |
| | datafusion | public | t | BASE TABLE | | |
| | datafusion | information_schema | tables | VIEW | | |
| | datafusion | information_schema | views | VIEW | | |
| | datafusion | information_schema | columns | VIEW | | |
| +---------------+--------------------+------------+------------+ | |
| ``` | |
| ## `SHOW COLUMNS` | |
| To show the schema of a table in DataFusion, use the `SHOW COLUMNS` command or | |
| the `information_schema.columns` view. | |
| ```sql | |
| > show columns from t; | |
| or | |
| > select table_catalog, table_schema, table_name, column_name, data_type, is_nullable from information_schema.columns; | |
| +---------------+--------------+------------+-------------+-----------+-------------+ | |
| | table_catalog | table_schema | table_name | column_name | data_type | is_nullable | | |
| +---------------+--------------+------------+-------------+-----------+-------------+ | |
| | datafusion | public | t | Int64(1) | Int64 | NO | | |
| +---------------+--------------+------------+-------------+-----------+-------------+ | |
| ``` | |
| ## `SHOW ALL` (configuration options) | |
| To show the current session configuration options, use the `SHOW ALL` command or | |
| the `information_schema.df_settings` view: | |
| ```sql | |
| select * from information_schema.df_settings; | |
| +-------------------------------------------------+---------+ | |
| | name | setting | | |
| +-------------------------------------------------+---------+ | |
| | datafusion.execution.batch_size | 8192 | | |
| | datafusion.execution.coalesce_batches | true | | |
| | datafusion.execution.time_zone | UTC | | |
| | datafusion.explain.logical_plan_only | false | | |
| | datafusion.explain.physical_plan_only | false | | |
| ... | |
| | datafusion.optimizer.filter_null_join_keys | false | | |
| | datafusion.optimizer.skip_failed_rules | true | | |
| +-------------------------------------------------+---------+ | |
| ``` | |
| ## `SHOW FUNCTIONS` | |
| To show the list of functions available, use the `SHOW FUNCTIONS` command or the | |
| - `information_schema.information_schema.routines` view: functions and descriptions | |
| - `information_schema.information_schema.parameters` view: parameters and descriptions | |
| Syntax: | |
| ```sql | |
| SHOW FUNCTIONS [ LIKE <pattern> ]; | |
| ``` | |
| Example output | |
| ```sql | |
| > show functions like '%datetrunc'; | |
| +---------------+-------------------------------------+-------------------------+-------------------------------------------------+---------------+-------------------------------------------------------+-----------------------------------+ | |
| | function_name | return_type | parameters | parameter_types | function_type | description | syntax_example | | |
| +---------------+-------------------------------------+-------------------------+-------------------------------------------------+---------------+-------------------------------------------------------+-----------------------------------+ | |
| | datetrunc | Timestamp(Microsecond, Some("+TZ")) | [precision, expression] | [Utf8, Timestamp(Microsecond, Some("+TZ"))] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Nanosecond, None) | [precision, expression] | [Utf8View, Timestamp(Nanosecond, None)] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Second, Some("+TZ")) | [precision, expression] | [Utf8View, Timestamp(Second, Some("+TZ"))] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Microsecond, None) | [precision, expression] | [Utf8View, Timestamp(Microsecond, None)] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Second, None) | [precision, expression] | [Utf8View, Timestamp(Second, None)] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Microsecond, None) | [precision, expression] | [Utf8, Timestamp(Microsecond, None)] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Second, None) | [precision, expression] | [Utf8, Timestamp(Second, None)] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Microsecond, Some("+TZ")) | [precision, expression] | [Utf8View, Timestamp(Microsecond, Some("+TZ"))] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Nanosecond, Some("+TZ")) | [precision, expression] | [Utf8, Timestamp(Nanosecond, Some("+TZ"))] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Millisecond, None) | [precision, expression] | [Utf8, Timestamp(Millisecond, None)] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Millisecond, Some("+TZ")) | [precision, expression] | [Utf8, Timestamp(Millisecond, Some("+TZ"))] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Second, Some("+TZ")) | [precision, expression] | [Utf8, Timestamp(Second, Some("+TZ"))] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Nanosecond, None) | [precision, expression] | [Utf8, Timestamp(Nanosecond, None)] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Millisecond, None) | [precision, expression] | [Utf8View, Timestamp(Millisecond, None)] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Millisecond, Some("+TZ")) | [precision, expression] | [Utf8View, Timestamp(Millisecond, Some("+TZ"))] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| | datetrunc | Timestamp(Nanosecond, Some("+TZ")) | [precision, expression] | [Utf8View, Timestamp(Nanosecond, Some("+TZ"))] | SCALAR | Truncates a timestamp value to a specified precision. | date_trunc(precision, expression) | | |
| +---------------+-------------------------------------+-------------------------+-------------------------------------------------+---------------+-------------------------------------------------------+-----------------------------------+ | |
| 16 row(s) fetched. | |
| ``` |