112 lines
2.6 KiB
Plaintext
112 lines
2.6 KiB
Plaintext
# name: test/extension/install_extension.test_slow
|
|
# description: Try loading a shared object with an extension
|
|
# group: [extension]
|
|
|
|
require notmingw
|
|
|
|
require skip_reload
|
|
|
|
statement ok
|
|
PRAGMA enable_verification
|
|
|
|
# we need a persistent database because otherwise we are not allowed to restart
|
|
load __TEST_DIR__/dummy_database_for_extension_installation.db
|
|
|
|
statement error
|
|
INSTALL 'asdf';
|
|
----
|
|
|
|
statement error
|
|
INSTALL 'asdf/asdf.duckdb_extension';
|
|
----
|
|
|
|
statement ok
|
|
INSTALL '__BUILD_DIRECTORY__/test/extension/loadable_extension_demo.duckdb_extension';
|
|
|
|
statement ok
|
|
FORCE INSTALL '__BUILD_DIRECTORY__/test/extension/loadable_extension_demo.duckdb_extension';
|
|
|
|
statement ok
|
|
LOAD 'loadable_extension_demo';
|
|
|
|
statement ok
|
|
LOAD 'loadable_extension_demo';
|
|
|
|
# need to restart to unload extensions
|
|
restart
|
|
|
|
# this will succeed on MacOS due to case insensitive filesystem
|
|
statement maybe
|
|
FORCE INSTALL '__BUILD_DIRECTORY__/test/extension/loadable_extension_DEMO.duckdb_extension';
|
|
----
|
|
IO Error: Failed to install local extension
|
|
|
|
statement ok
|
|
FORCE INSTALL '__BUILD_DIRECTORY__/test/extension/loadable_extension_demo.duckdb_extension';
|
|
|
|
statement ok
|
|
LOAD 'Loadable_Extension_DEMO';
|
|
|
|
# need to restart to unload extensions
|
|
restart
|
|
|
|
# can't find extension in non-default extension location
|
|
statement ok
|
|
SET extension_directory='__TEST_DIR__/extension_directory'
|
|
|
|
statement error
|
|
LOAD 'loadable_extension_demo';
|
|
----
|
|
|
|
# can install after setting directory, even if the extension directory does not yet exist
|
|
statement ok
|
|
INSTALL '__BUILD_DIRECTORY__/test/extension/loadable_extension_demo.duckdb_extension';
|
|
|
|
# can load now
|
|
statement ok
|
|
LOAD 'loadable_extension_demo';
|
|
|
|
# ensure file is there
|
|
query I
|
|
select count(*) from glob('__TEST_DIR__/extension_directory/**/loadable_extension_demo.duckdb_extension')
|
|
----
|
|
1
|
|
|
|
# unload again
|
|
restart
|
|
|
|
|
|
statement ok
|
|
SET extension_directory=''
|
|
|
|
# we will use a nonstandard home directory, but we won't create it if it does not exist
|
|
|
|
# can't find extension in non-default home location
|
|
statement ok
|
|
SET home_directory='__TEST_DIR__/home_directory'
|
|
|
|
statement error
|
|
LOAD 'loadable_extension_demo';
|
|
----
|
|
|
|
# we can't install because we will not create a non-existing home directory
|
|
statement error
|
|
INSTALL '__BUILD_DIRECTORY__/test/extension/loadable_extension_demo.duckdb_extension';
|
|
----
|
|
|
|
# but this one should exist
|
|
statement ok
|
|
SET home_directory='__TEST_DIR__'
|
|
|
|
statement ok
|
|
INSTALL '__BUILD_DIRECTORY__/test/extension/loadable_extension_demo.duckdb_extension';
|
|
|
|
query I
|
|
select COUNT(*) from glob('__TEST_DIR__/.duckdb/**/loadable_extension_demo.duckdb_extension')
|
|
----
|
|
1
|
|
|
|
# can load now
|
|
statement ok
|
|
LOAD 'loadable_extension_demo';
|