Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions ci/test_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@


def test_package() -> None:
with adbc_driver_manager.dbapi.connect(
driver="datafusion", autocommit=True
) as conn:
with adbc_driver_manager.dbapi.connect("datafusion://", autocommit=True) as conn:
with conn.cursor() as cursor:
cursor.adbc_statement.set_sql_query("SELECT 1")
handle, _ = cursor.adbc_statement.execute_query()
Expand Down
17 changes: 15 additions & 2 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -284,9 +284,22 @@ impl Optionable for DataFusionDatabase {
fn set_option(
&mut self,
key: Self::Option,
_value: adbc_core::options::OptionValue,
value: adbc_core::options::OptionValue,
) -> adbc_core::error::Result<()> {
Err(ErrorHelper::set_unknown_option(&key).to_adbc())
match key {
OptionDatabase::Uri => {
// only support "datafusion://" for now
let uri = ErrorHelper::option_as_string(&key, &value).map_err(|e| e.to_adbc())?;
if uri == "datafusion://" {
Ok(())
} else {
Err(ErrorHelper::set_invalid_option(&key, &value)
.message("only 'datafusion://' is accepted")
.to_adbc())
}
}
_ => Err(ErrorHelper::set_unknown_option(&key).to_adbc()),
}
}

fn get_option_string(&self, key: Self::Option) -> adbc_core::error::Result<String> {
Expand Down
13 changes: 13 additions & 0 deletions validation/tests/test_connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
# limitations under the License.


import adbc_driver_manager.dbapi
import adbc_drivers_validation.tests.connection as connection_tests

from . import datafusion
Expand All @@ -25,3 +26,15 @@ def pytest_generate_tests(metafunc) -> None:

class TestConnection(connection_tests.TestConnection):
pass


def test_uri(driver, driver_path) -> None:
with adbc_driver_manager.dbapi.connect(
driver=driver_path,
uri="datafusion://",
autocommit=True,
) as conn:
with conn.cursor() as cursor:
cursor.adbc_statement.set_sql_query("SELECT 1")
handle, _ = cursor.adbc_statement.execute_query()
assert handle is not None
Loading