Nothing
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
test_that("adbcpostgresql() works", {
expect_s3_class(adbcpostgresql(), "adbc_driver")
})
test_that("default options can open a database and execute a query", {
test_db_uri <- Sys.getenv("ADBC_POSTGRESQL_TEST_URI", "")
skip_if(identical(test_db_uri, ""))
db <- adbcdrivermanager::adbc_database_init(
adbcpostgresql(),
uri = test_db_uri
)
expect_s3_class(db, "adbcpostgresql_database")
con <- adbcdrivermanager::adbc_connection_init(db)
expect_s3_class(con, "adbcpostgresql_connection")
stmt <- adbcdrivermanager::adbc_statement_init(con)
expect_s3_class(stmt, "adbcpostgresql_statement")
# Use BIGINT to make sure that endian swapping on Windows works
adbcdrivermanager::adbc_statement_set_sql_query(
stmt,
"CREATE TABLE crossfit (exercise TEXT, difficulty_level BIGINT);"
)
adbcdrivermanager::adbc_statement_execute_query(stmt)
adbcdrivermanager::adbc_statement_release(stmt)
# If we get this far, remove the table and disconnect when the test is done
on.exit({
stmt <- adbcdrivermanager::adbc_statement_init(con)
adbcdrivermanager::adbc_statement_set_sql_query(
stmt,
"DROP TABLE IF EXISTS crossfit;"
)
adbcdrivermanager::adbc_statement_execute_query(stmt)
adbcdrivermanager::adbc_statement_release(stmt)
adbcdrivermanager::adbc_connection_release(con)
adbcdrivermanager::adbc_database_release(db)
})
stmt <- adbcdrivermanager::adbc_statement_init(con)
adbcdrivermanager::adbc_statement_set_sql_query(
stmt,
"INSERT INTO crossfit values
('Push Ups', 3),
('Pull Ups', 5),
('Push Jerk', 7),
('Bar Muscle Up', 10);"
)
adbcdrivermanager::adbc_statement_execute_query(stmt)
adbcdrivermanager::adbc_statement_release(stmt)
stmt <- adbcdrivermanager::adbc_statement_init(con)
adbcdrivermanager::adbc_statement_set_sql_query(
stmt,
"SELECT * from crossfit ORDER BY difficulty_level"
)
stream <- nanoarrow::nanoarrow_allocate_array_stream()
adbcdrivermanager::adbc_statement_execute_query(stmt, stream)
expect_identical(
as.data.frame(stream),
data.frame(
exercise = c("Push Ups", "Pull Ups", "Push Jerk", "Bar Muscle Up"),
difficulty_level = c(3, 5, 7, 10),
stringsAsFactors = FALSE
)
)
adbcdrivermanager::adbc_statement_release(stmt)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.