duckdb.install_extension(extension_name TEXT, repository TEXT DEFAULT 'core') returns bool
#Installs a DuckDB extension and configures it to be loaded automatically in every session that uses pgpro_axe .
Example 32.32.
SELECT duckdb.install_extension('iceberg');
SELECT duckdb.install_extension('avro', 'community');
Since this function can be used to install and download any
extensions, it can only be executed by a
superuser by default. To allow execution by other administrators,
such as my_admin, you can grant
them the following privileges:
Example 32.33.
GRANT ALL ON FUNCTION duckdb.install_extension(TEXT, TEXT) TO my_admin;
Required parameters:
|
Name |
Type |
Description |
|---|---|---|
|
|
|
The name of the extension to install |
duckdb.load_extension(extension_name TEXT) returns void
#
Loads a DuckDB extension for the current
session only. Unlike
duckdb.install_extension,
this does not configure the extension to be loaded automatically in
future sessions.
Example 32.34.
SELECT duckdb.load_extension('iceberg');
Required parameters:
|
Name |
Type |
Description |
|---|---|---|
|
|
|
The name of the extension to load |
duckdb.autoload_extension(extension_name TEXT, autoload BOOLEAN) returns void
#Specifies whether an installed extension must be automatically loaded in new sessions.
Example 32.35.
-- Disable auto-loading for an extension
SELECT duckdb.autoload_extension('iceberg', false);
-- Enable auto-loading for an extension
SELECT duckdb.autoload_extension('iceberg', true);
Required parameters:
|
Name |
Type |
Description |
|---|---|---|
extension_name
|
text
|
The name of the extension |
|
|
|
Specifies whether the extension must be automatically loaded in new sessions |
duckdb.query(query TEXT) returns SETOF duckdb.row
#
Executes the given SELECT command directly against
DuckDB. This can be useful if
the DuckDB syntax makes the query
easier to write or to use a function that is not exposed by
pgpro_axe
yet.
Example 32.36.
This command puts the FROM clause before the
SELECT command and uses a list comprehension.
Both of these features are not supported in Postgres Pro.
SELECT * FROM duckdb.query('FROM range(10) as a(a) SELECT [a for i in generate_series(0, a)] as arr');
duckdb.raw_query(extension_name TEXT) returns void
#Runs an arbitrary command directly against DuckDB.
Compared to duckdb.query,
this function can execute any command, not just SELECT.
The main downside is that it does not return its result
as rows but instead sends the command result to logs. It is
recommended to use duckdb.query when possible.
duckdb.recycle_ddb() returns void
#
pgpro_axe
keeps the
DuckDB instance open inbetween
transactions. This is done to save session level state, such
as manually executed SET commands. To clear the
session level state, you can
close the currently open DuckDB instance
by calling this function.
Example 32.37.
CALL duckdb.recycle_ddb();