Client APIs
API Reference Overview
Extended version of duckdb_open. Creates a new database or opens an existing database file stored at the given path.
The instantiated database should be closed with 'duckdb_close'.  
###### Syntax {#docs:api:c:connect::syntax}  
```c
duckdb_state duckdb_open_ext(
const char *path,
duckdb_database *out_database,
duckdb_config config,
char **out_error
);
```  
###### Parameters {#docs:api:c:connect::parameters}  
* `path`: Path to the database file on disk, or `nullptr` or `:memory:` to open an in-memory database.
* `out_database`: The result database object.
* `config`: (Optional) configuration used to start up the database system.
* `out_error`: If set and the function returns DuckDBError, this will contain the reason why the start-up failed.
Note that the error must be freed using `duckdb_free`.  
###### Return Value {#docs:api:c:connect::return-value}  
`DuckDBSuccess` on success or `DuckDBError` on failure.  
<br>