Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(r): Add DBItest suite to CI via adbi #1401

Draft
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

paleolimbot
Copy link
Member

No description provided.

@krlmlr
Copy link
Collaborator

krlmlr commented Dec 27, 2023

I'll take a look.

@krlmlr
Copy link
Collaborator

krlmlr commented Mar 30, 2024

This fixes execution when merging 6c06ae2 (CRAN release?). Merging 6ca22c2 (or current main) introduces new errors.

@paleolimbot
Copy link
Member Author

Thank you for putting this together! I rebased this and added the ignored tests synchronizing (although because it is after the SQLite refactor, there are still failures).

R version 4.3.1 (2023-06-16) -- "Beagle Scouts"
Copyright (C) 2023 The R Foundation for Statistical Computing
Platform: aarch64-apple-darwin20 (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

Natural language support but running in an English locale

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

devtools::test()
ℹ Testing adbcsqlite
✔ | F W S OK | Context

⠏ | 0 | adbcsqlite-package
✔ | 11 | adbcsqlite-package

⠏ | 0 | DBItest
⠋ | 1 | DBItest
⠋ | 1 20 | DBItest
⠙ | 1 101 | DBItest
⠏ | 2 128 | DBItest
⠦ | 2 195 | DBItest
⠋ | 2 219 | DBItest
⠧ | 3 275 | DBItest
⠙ | 3 349 | DBItest
⠼ | 5 400 | DBItest
⠏ | 5 465 | DBItest
⠙ | 13 499 | DBItest
⠋ | 19 552 | DBItest
⠴ | 19 627 | DBItest
⠋ | 19 702 | DBItest
⠏ | 19 771 | DBItest
⠹ | 19 844 | DBItest There are 7 result(s) in use. The connection will be released when they are closed

⠙ | 24 868 | DBItest
⠴ | 24 912 | DBItest
⠸ | 24 980 | DBItest
⠦ | 27 1030 | DBItest
⠧ | 34 1084 | DBItest
⠏ | 42 1128 | DBItest
⠏ | 59 1151 | DBItest
⠦ | 78 1169 | DBItest
⠹ | 117 1176 | DBItest
⠏ | 127 1213 | DBItest
⠋ | 139 1252 | DBItest <adbcsqlite_connection/adbc_connection/adbc_xptr> has 1 unreleased child object
<adbcsqlite_database/adbc_database/adbc_xptr> has 1 unreleased child object

⠧ | 3 149 1296 | DBItest
⠸ | 3 157 1354 | DBItest
⠙ | 3 168 1411 | DBItest
⠼ | 3 174 1468 | DBItest
⠧ | 3 184 1501 | DBItest <adbcsqlite_connection/adbc_connection/adbc_xptr> has 2 unreleased child objects
<adbcsqlite_database/adbc_database/adbc_xptr> has 1 unreleased child object

⠇ | 5 190 1514 | DBItest
⠦ | 5 196 1546 | DBItest
⠏ | 6 196 1608 | DBItest
⠦ | 6 196 1655 | DBItest
⠸ | 6 197 1721 | DBItest
⠏ | 6 199 1795 | DBItest
⠇ | 6 199 1864 | DBItest
⠼ | 6 199 1930 | DBItest
⠼ | 6 199 1990 | DBItest
⠦ | 6 206 2045 | DBItest
⠙ | 6 206 2120 | DBItest
⠙ | 6 206 2170 | DBItest
⠼ | 6 206 2243 | DBItest
⠏ | 6 206 2318 | DBItest
⠇ | 6 206 2387 | DBItest
⠼ | 6 206 2453 | DBItest
⠼ | 6 215 2514 | DBItest
⠋ | 7 215 2579 | DBItest
⠇ | 7 215 2637 | DBItest
⠋ | 7 217 2717 | DBItest
⠦ | 7 218 2792 | DBItest
⠙ | 7 218 2867 | DBItest
⠴ | 7 218 2931 | DBItest
⠼ | 7 225 2993 | DBItest
⠙ | 7 225 3050 | DBItest
⠹ | 7 225 3111 | DBItest
⠙ | 7 225 3190 | DBItest
⠧ | 7 225 3266 | DBItest
⠸ | 7 225 3342 | DBItest
⠴ | 7 229 3400 | DBItest
⠼ | 7 234 3464 | DBItest
⠸ | 7 236 3521 | DBItest
⠏ | 7 238 3575 | DBItest
⠇ | 7 239 3583 | DBItest
⠏ | 7 244 3629 | DBItest
⠋ | 7 244 3630 | DBItest
⠸ | 7 249 3688 | DBItest
⠧ | 7 251 3750 | DBItest
⠙ | 7 263 3782 | DBItest
⠙ | 7 300 3785 | DBItest
⠦ | 7 321 3799 | DBItest
⠦ | 7 349 3811 | DBItest
⠙ | 7 383 3812 | DBItest
⠹ | 7 383 3843 | DBItest
⠋ | 7 383 3951 | DBItest
✖ | 7 383 4007 | DBItest [8.9s]
────────────────────────────────────────────────────────────────────────────────
Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: table_visible_in_other_connection_1
<adbc_status_internal/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_execute_query(stmt): INTERNAL: failed to execute: database is locked
query was: CREATE TABLE main . "dbit09" ("species" TEXT, "island" TEXT, "bill_length_mm" REAL, "bill_depth_mm" REAL, "flipper_length_mm" INTEGER, "body_mass_g" INTEGER, "sex" TEXT, "year" INTEGER)
Backtrace:

  1. └─DBItest:::spec_sql$table_visible_in_other_connection_1(...)
  2. ├─DBI::dbWriteTable(local_con, table_name, penguins30) at DBItest/R/spec-sql-write-table.R:276:5
  3. └─adbi::dbWriteTable(local_con, table_name, penguins30)
  4. ├─DBI::dbWriteTable(conn, Id(table = name), value, ...)
    
  5. └─adbi::dbWriteTable(conn, Id(table = name), value, ...)
    
  6.   └─adbi (local) .local(conn, name, value, ...)
    
  7.     └─adbcdrivermanager::adbc_statement_execute_query(stmt)
    
  8.       └─adbcdrivermanager:::stop_for_error(result$status, error)
    

Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: table_visible_in_other_connection_2
<adbc_status_invalid_argument/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_prepare(stmt): INVALID_ARGUMENT: [SQLite] Failed to prepare query: no such table: dbit09
query: SELECT * FROM "dbit09"
Backtrace:

  1. └─DBItest:::spec_sql$table_visible_in_other_connection_2(...)
  2. ├─DBItest:::expect_equal_df(...) at DBItest/R/spec-sql-write-table.R:292:5
  3. │ └─base::do.call(order, actual) at DBItest/R/expectations.R:59:5
  4. ├─DBItest:::check_df(dbReadTable(con, table_name)) at DBItest/R/spec-sql-write-table.R:292:5
  5. │ └─testthat::expect_s3_class(df, "data.frame") at DBItest/R/utils.R:79:3
  6. │ └─testthat::quasi_label(enquo(object), arg = "object")
  7. │ └─rlang::eval_bare(expr, quo_get_env(quo))
  8. ├─DBI::dbReadTable(con, table_name) at DBItest/R/spec-sql-write-table.R:292:5
  9. └─DBI::dbReadTable(con, table_name)
  10. └─DBI (local) .local(conn, name, ...)
    
  11.   ├─DBI::dbGetQuery(conn, paste0("SELECT * FROM ", sql_name))
    
  12.   └─DBI::dbGetQuery(conn, paste0("SELECT * FROM ", sql_name))
    
  13.     └─DBI (local) .local(conn, statement, ...)
    
  14.       ├─DBI::dbSendQuery(conn, statement, ...)
    
  15.       └─adbi::dbSendQuery(conn, statement, ...)
    
  16.         └─adbi (local) .local(conn, statement, ...)
    
  17.           └─adbi:::AdbiResult(...)
    
  18.             └─adbi:::init_result(...)
    
  19.               └─adbcdrivermanager::adbc_statement_prepare(stmt)
    
  20.                 └─adbcdrivermanager:::stop_for_error(status, error)
    

Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: table_visible_in_other_connection_3
<adbc_status_invalid_argument/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_prepare(stmt): INVALID_ARGUMENT: [SQLite] Failed to prepare query: no such table: dbit09
query: SELECT * FROM "dbit09"
Backtrace:

  1. └─DBItest:::spec_sql$table_visible_in_other_connection_3(...)
  2. ├─DBItest:::expect_equal_df(...) at DBItest/R/spec-sql-write-table.R:299:5
  3. │ └─base::do.call(order, actual) at DBItest/R/expectations.R:59:5
  4. ├─DBItest:::check_df(dbReadTable(local_con, table_name)) at DBItest/R/spec-sql-write-table.R:299:5
  5. │ └─testthat::expect_s3_class(df, "data.frame") at DBItest/R/utils.R:79:3
  6. │ └─testthat::quasi_label(enquo(object), arg = "object")
  7. │ └─rlang::eval_bare(expr, quo_get_env(quo))
  8. ├─DBI::dbReadTable(local_con, table_name) at DBItest/R/spec-sql-write-table.R:299:5
  9. └─DBI::dbReadTable(local_con, table_name)
  10. └─DBI (local) .local(conn, name, ...)
    
  11.   ├─DBI::dbGetQuery(conn, paste0("SELECT * FROM ", sql_name))
    
  12.   └─DBI::dbGetQuery(conn, paste0("SELECT * FROM ", sql_name))
    
  13.     └─DBI (local) .local(conn, statement, ...)
    
  14.       ├─DBI::dbSendQuery(conn, statement, ...)
    
  15.       └─adbi::dbSendQuery(conn, statement, ...)
    
  16.         └─adbi (local) .local(conn, statement, ...)
    
  17.           └─adbi:::AdbiResult(...)
    
  18.             └─adbi:::init_result(...)
    
  19.               └─adbcdrivermanager::adbc_statement_prepare(stmt)
    
  20.                 └─adbcdrivermanager:::stop_for_error(status, error)
    

Failure ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: remove_table_other_con
table_name %in% dbListTables(con2) is not TRUE

actual: FALSE
expected: TRUE
Backtrace:

  1. └─DBItest:::spec_sql$remove_table_other_con(...)
  2. └─testthat::expect_true(table_name %in% dbListTables(con2)) at DBItest/R/spec-sql-remove-table.R:107:5

Failure ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: remove_table_other_con
dbExistsTable(con2, table_name) is not TRUE

actual: FALSE
expected: TRUE
Backtrace:

  1. └─DBItest:::spec_sql$remove_table_other_con(...)
  2. └─testthat::expect_true(dbExistsTable(con2, table_name)) at DBItest/R/spec-sql-remove-table.R:108:5

Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: Metadata: bind_return_value_statement
<adbc_status_invalid_state/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_execute_query(x@statement, stream = meta(x, "data")): INVALID_STATE: parameter count mismatch: expected 1 but found 0
Backtrace:

  1. └─DBItest:::spec_meta$bind_return_value_statement(ctx = ctx, con = global_con)
  2. ├─testthat::expect_identical(dbGetRowsAffected(res), NA_integer_) at DBItest/R/spec-meta-bind.R:58:7
  3. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
  4. │ └─rlang::eval_bare(expr, quo_get_env(quo))
  5. ├─DBI::dbGetRowsAffected(res)
  6. └─adbi::dbGetRowsAffected(res)
  7. └─adbi:::execute_statement(res)
    
  8.   └─adbcdrivermanager::adbc_statement_execute_query(...)
    
  9.     └─adbcdrivermanager:::stop_for_error(result$status, error)
    

Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: Metadata: stream_bind_return_value_statement
<adbc_status_invalid_state/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_execute_query(x@statement, stream = meta(x, "data")): INVALID_STATE: parameter count mismatch: expected 1 but found 0
Backtrace:

  1. └─DBItest:::spec_meta$stream_bind_return_value_statement(...)
  2. ├─testthat::expect_identical(dbGetRowsAffected(res), NA_integer_) at DBItest/R/spec-meta-bind-stream.R:58:7
  3. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
  4. │ └─rlang::eval_bare(expr, quo_get_env(quo))
  5. ├─DBI::dbGetRowsAffected(res)
  6. └─adbi::dbGetRowsAffected(res)
  7. └─adbi:::execute_statement(res)
    
  8.   └─adbcdrivermanager::adbc_statement_execute_query(...)
    
  9.     └─adbcdrivermanager:::stop_for_error(result$status, error)
    

────────────────────────────────────────────────────────────────────────────────

══ Results ═════════════════════════════════════════════════════════════════════
Duration: 9.0 s

── Skipped tests (383) ─────────────────────────────────────────────────────────
• !isTRUE(ctx$tweaks$date_typed) is TRUE (8): 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3'
• !isTRUE(ctx$tweaks$time_typed) is TRUE (12): 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• !isTRUE(ctx$tweaks$timestamp_typed) is TRUE (8): 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3'
• DBItest::run_tests(): by request: arrow_send_query_stale_warning,
arrow_send_query_only_one_result_set, arrow_read_table_arrow (1):
'test-DBItest.R:47:3'
• DBItest::run_tests(): by request: begin_write_commit_1, begin_write_commit_2,
begin_write_disconnect_1, begin_write_disconnect_2 (1): 'test-DBItest.R:47:3'
• DBItest::run_tests(): by request: bind_multi_row_zero_length,
arrow_bind_multi_row_zero_length, stream_bind_multi_row_zero_length,
arrow_stream_bind_multi_row_zero_length (1): 'test-DBItest.R:47:3'
• DBItest::run_tests(): by request: connect_bigint_character (1):
'test-DBItest.R:47:3'
• DBItest::run_tests(): by request: package_name (1): 'test-DBItest.R:47:3'
• DBItest::run_tests(): by request: quote_identifier_string, read_table_empty,
create_table_visible_in_other_connection_1,
create_table_visible_in_other_connection_2,
create_table_visible_in_other_connection_3,
append_roundtrip_64_bit_roundtrip, append_table_new,
roundtrip_64_bit_numeric, roundtrip_64_bit_character,
roundtrip_64_bit_roundtrip, roundtrip_field_types, list_objects_features (1):
'test-DBItest.R:47:3'
• DBItest::run_tests(): by request: send_query_stale_warning,
send_query_only_one_result_set, send_statement_stale_warning,
send_statement_only_one_result_set, data_logical, data_64_bit_numeric,
data_64_bit_numeric_warning, data_64_bit_lossless (1): 'test-DBItest.R:47:3'
• Internal: Need to enhance test_arrow_roundtrip() (6): 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• tweak: !date_typed (10): 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• tweak: !time_typed (4): 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• tweak: !timestamp_typed (7): 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• tweak: dbitest_version: 1.7.2 (1): 'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.7.99.10, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.7.99.13, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.7.99.14, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.7.99.15, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.7.99.3, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.7.99.4, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.7.99.5, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.7.99.6, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.7.99.9, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.1, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.10, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.11, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.12, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.13, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.14, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.15, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.16, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.17, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.18, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.2, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.20, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.21, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.22, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.25, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.26, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.27, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.28, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.3, available: 1.7.2 (3):
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.31, available: 1.7.2 (3):
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.33, available: 1.7.2 (2):
'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.34, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.35, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.36, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.37, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.38, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.39, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.4, available: 1.7.2 (2):
'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.40, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.41, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.43, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.44, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.45, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.48, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.49, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.5, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.50, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.6, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.7, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.8, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: dbitest_version: required: 1.8.0.9, available: 1.7.2 (1):
'test-DBItest.R:47:3'
• tweak: strict_identifier (13): 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3'
• tweak: temporary_tables (6): 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3'
• unknown number of rows_affected (245): 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3', 'test-DBItest.R:47:3', 'test-DBItest.R:47:3',
'test-DBItest.R:47:3'

── Failed tests ────────────────────────────────────────────────────────────────
Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: table_visible_in_other_connection_1
<adbc_status_internal/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_execute_query(stmt): INTERNAL: failed to execute: database is locked
query was: CREATE TABLE main . "dbit09" ("species" TEXT, "island" TEXT, "bill_length_mm" REAL, "bill_depth_mm" REAL, "flipper_length_mm" INTEGER, "body_mass_g" INTEGER, "sex" TEXT, "year" INTEGER)
Backtrace:

  1. └─DBItest:::spec_sql$table_visible_in_other_connection_1(...)
  2. ├─DBI::dbWriteTable(local_con, table_name, penguins30) at DBItest/R/spec-sql-write-table.R:276:5
  3. └─adbi::dbWriteTable(local_con, table_name, penguins30)
  4. ├─DBI::dbWriteTable(conn, Id(table = name), value, ...)
    
  5. └─adbi::dbWriteTable(conn, Id(table = name), value, ...)
    
  6.   └─adbi (local) .local(conn, name, value, ...)
    
  7.     └─adbcdrivermanager::adbc_statement_execute_query(stmt)
    
  8.       └─adbcdrivermanager:::stop_for_error(result$status, error)
    

Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: table_visible_in_other_connection_2
<adbc_status_invalid_argument/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_prepare(stmt): INVALID_ARGUMENT: [SQLite] Failed to prepare query: no such table: dbit09
query: SELECT * FROM "dbit09"
Backtrace:

  1. └─DBItest:::spec_sql$table_visible_in_other_connection_2(...)
  2. ├─DBItest:::expect_equal_df(...) at DBItest/R/spec-sql-write-table.R:292:5
  3. │ └─base::do.call(order, actual) at DBItest/R/expectations.R:59:5
  4. ├─DBItest:::check_df(dbReadTable(con, table_name)) at DBItest/R/spec-sql-write-table.R:292:5
  5. │ └─testthat::expect_s3_class(df, "data.frame") at DBItest/R/utils.R:79:3
  6. │ └─testthat::quasi_label(enquo(object), arg = "object")
  7. │ └─rlang::eval_bare(expr, quo_get_env(quo))
  8. ├─DBI::dbReadTable(con, table_name) at DBItest/R/spec-sql-write-table.R:292:5
  9. └─DBI::dbReadTable(con, table_name)
  10. └─DBI (local) .local(conn, name, ...)
    
  11.   ├─DBI::dbGetQuery(conn, paste0("SELECT * FROM ", sql_name))
    
  12.   └─DBI::dbGetQuery(conn, paste0("SELECT * FROM ", sql_name))
    
  13.     └─DBI (local) .local(conn, statement, ...)
    
  14.       ├─DBI::dbSendQuery(conn, statement, ...)
    
  15.       └─adbi::dbSendQuery(conn, statement, ...)
    
  16.         └─adbi (local) .local(conn, statement, ...)
    
  17.           └─adbi:::AdbiResult(...)
    
  18.             └─adbi:::init_result(...)
    
  19.               └─adbcdrivermanager::adbc_statement_prepare(stmt)
    
  20.                 └─adbcdrivermanager:::stop_for_error(status, error)
    

Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: table_visible_in_other_connection_3
<adbc_status_invalid_argument/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_prepare(stmt): INVALID_ARGUMENT: [SQLite] Failed to prepare query: no such table: dbit09
query: SELECT * FROM "dbit09"
Backtrace:

  1. └─DBItest:::spec_sql$table_visible_in_other_connection_3(...)
  2. ├─DBItest:::expect_equal_df(...) at DBItest/R/spec-sql-write-table.R:299:5
  3. │ └─base::do.call(order, actual) at DBItest/R/expectations.R:59:5
  4. ├─DBItest:::check_df(dbReadTable(local_con, table_name)) at DBItest/R/spec-sql-write-table.R:299:5
  5. │ └─testthat::expect_s3_class(df, "data.frame") at DBItest/R/utils.R:79:3
  6. │ └─testthat::quasi_label(enquo(object), arg = "object")
  7. │ └─rlang::eval_bare(expr, quo_get_env(quo))
  8. ├─DBI::dbReadTable(local_con, table_name) at DBItest/R/spec-sql-write-table.R:299:5
  9. └─DBI::dbReadTable(local_con, table_name)
  10. └─DBI (local) .local(conn, name, ...)
    
  11.   ├─DBI::dbGetQuery(conn, paste0("SELECT * FROM ", sql_name))
    
  12.   └─DBI::dbGetQuery(conn, paste0("SELECT * FROM ", sql_name))
    
  13.     └─DBI (local) .local(conn, statement, ...)
    
  14.       ├─DBI::dbSendQuery(conn, statement, ...)
    
  15.       └─adbi::dbSendQuery(conn, statement, ...)
    
  16.         └─adbi (local) .local(conn, statement, ...)
    
  17.           └─adbi:::AdbiResult(...)
    
  18.             └─adbi:::init_result(...)
    
  19.               └─adbcdrivermanager::adbc_statement_prepare(stmt)
    
  20.                 └─adbcdrivermanager:::stop_for_error(status, error)
    

Failure ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: remove_table_other_con
table_name %in% dbListTables(con2) is not TRUE

actual: FALSE
expected: TRUE
Backtrace:

  1. └─DBItest:::spec_sql$remove_table_other_con(...)
  2. └─testthat::expect_true(table_name %in% dbListTables(con2)) at DBItest/R/spec-sql-remove-table.R:107:5

Failure ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: SQL: remove_table_other_con
dbExistsTable(con2, table_name) is not TRUE

actual: FALSE
expected: TRUE
Backtrace:

  1. └─DBItest:::spec_sql$remove_table_other_con(...)
  2. └─testthat::expect_true(dbExistsTable(con2, table_name)) at DBItest/R/spec-sql-remove-table.R:108:5

Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: Metadata: bind_return_value_statement
<adbc_status_invalid_state/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_execute_query(x@statement, stream = meta(x, "data")): INVALID_STATE: parameter count mismatch: expected 1 but found 0
Backtrace:

  1. └─DBItest:::spec_meta$bind_return_value_statement(ctx = ctx, con = global_con)
  2. ├─testthat::expect_identical(dbGetRowsAffected(res), NA_integer_) at DBItest/R/spec-meta-bind.R:58:7
  3. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
  4. │ └─rlang::eval_bare(expr, quo_get_env(quo))
  5. ├─DBI::dbGetRowsAffected(res)
  6. └─adbi::dbGetRowsAffected(res)
  7. └─adbi:::execute_statement(res)
    
  8.   └─adbcdrivermanager::adbc_statement_execute_query(...)
    
  9.     └─adbcdrivermanager:::stop_for_error(result$status, error)
    

Error ('test-DBItest.R:47:3'): DBItest[adbcsqlite]: Metadata: stream_bind_return_value_statement
<adbc_status_invalid_state/adbc_status/simpleError/error/condition>
Error in adbcdrivermanager::adbc_statement_execute_query(x@statement, stream = meta(x, "data")): INVALID_STATE: parameter count mismatch: expected 1 but found 0
Backtrace:

  1. └─DBItest:::spec_meta$stream_bind_return_value_statement(...)
  2. ├─testthat::expect_identical(dbGetRowsAffected(res), NA_integer_) at DBItest/R/spec-meta-bind-stream.R:58:7
  3. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
  4. │ └─rlang::eval_bare(expr, quo_get_env(quo))
  5. ├─DBI::dbGetRowsAffected(res)
  6. └─adbi::dbGetRowsAffected(res)
  7. └─adbi:::execute_statement(res)
    
  8.   └─adbcdrivermanager::adbc_statement_execute_query(...)
    
  9.     └─adbcdrivermanager:::stop_for_error(result$status, error)
    

[ FAIL 7 | WARN 0 | SKIP 383 | PASS 4018 ]

@krlmlr
Copy link
Collaborator

krlmlr commented Apr 1, 2024

Thanks, the failing tests are consistent with my experience. You could add skips for them to helper-DBItest.R or test-DBItest.R, use "table_visible_in_other_connection" instead of "table_visible_in_other_connection_1" etc. .

@lidavidm lidavidm removed this from the ADBC Libraries 1.0.0 milestone Apr 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants