SQL
DuckDB_% Metadata Functions
DuckDB offers a collection of table functions that provide metadata about the current database. These functions reside in the `main` schema and their names are prefixed with `duckdb_`.  
The resultset returned by a `duckdb_` table function may be used just like an ordinary table or view. For example, you can use a `duckdb_` function call in the `FROM` clause of a `SELECT` statement, and you may refer to the columns of its returned resultset elsewhere in the statement, for example in the `WHERE` clause.  
Table functions are still functions, and you should write parenthesis after the function name to call it to obtain its returned resultset:  
```sql
SELECT * FROM duckdb_settings();
```  
Alternatively, you may execute table functions also using the `CALL`-syntax:  
```sql
CALL duckdb_settings();
```  
In this case too, the parentheses are mandatory.  
> For some of the `duckdb_%` functions, there is also an identically named view available, which also resides in the `main` schema. Typically, these views do a `SELECT` on the `duckdb_` table function with the same name, while filtering out those objects that are marked as internal. We mention it here, because if you accidentally omit the parentheses in your `duckdb_` table function call, you might still get a result, but from the identically named view.  
Example:  
The `duckdb_views()` _table function_ returns all views, including those marked internal:  
```sql
SELECT * FROM duckdb_views();
```  
The `duckdb_views` _view_ returns views that are not marked as internal:  
```sql
SELECT * FROM duckdb_views;
```