Skip to content

Commit 15936c9

Browse files
Make 'create empty table' a context tweak (#408)
1 parent efc6714 commit 15936c9

File tree

8 files changed

+24
-14
lines changed

8 files changed

+24
-14
lines changed

R/spec-meta-get-row-count.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ spec_meta_get_row_count <- list(
5757
expect_equal(rc, 0L)
5858
},
5959
#
60-
row_count_statement = function(con, table_name) {
61-
query <- paste0("CREATE TABLE ", table_name, " (a integer)")
60+
row_count_statement = function(ctx, con, table_name) {
61+
query <- ctx$tweaks$create_table_empty(table_name)
6262
#' For data manipulation statements issued with
6363
#' [dbSendStatement()],
6464
res <- local_result(dbSendStatement(con, query))

R/spec-meta-get-rows-affected.R

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,9 @@ spec_meta_get_rows_affected <- list(
5454
#' `NA` values are not allowed.
5555
},
5656
#'
57-
get_rows_affected_error = function(con, table_name) {
57+
get_rows_affected_error = function(ctx, con, table_name) {
5858
#' @section Failure modes:
59-
query <- paste0(
60-
"CREATE TABLE ", dbQuoteIdentifier(con, table_name), " (a integer)"
61-
)
59+
query <- ctx$tweaks$create_table_empty(table_name)
6260
res <- dbSendStatement(con, query)
6361
dbClearResult(res)
6462
#' Attempting to get the rows affected for a result set cleared with

R/spec-meta-get-statement.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ spec_meta_get_statement <- list(
2020
expect_identical(s, query)
2121
},
2222
#
23-
get_statement_statement = function(con, table_name) {
24-
query <- paste0("CREATE TABLE ", table_name, " (a integer)")
23+
get_statement_statement = function(ctx, con, table_name) {
24+
query <- ctx$tweaks$create_table_empty(table_name)
2525
#' [dbSendStatement()].
2626
res <- local_result(dbSendStatement(con, query))
2727
s <- dbGetStatement(res)

R/spec-meta-has-completed.R

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ spec_meta_has_completed <- list(
2121
expect_true(expect_visible(dbHasCompleted(res)))
2222
},
2323
#
24-
has_completed_statement = function(con, table_name) {
24+
has_completed_statement = function(ctx, con, table_name) {
2525
#' For a query initiated by [dbSendStatement()],
26-
res <- local_result(dbSendStatement(con, paste0("CREATE TABLE ", table_name, " (a integer)")))
26+
query <- ctx$tweaks$create_table_empty(table_name)
27+
res <- local_result(dbSendStatement(con, query))
2728
#' `dbHasCompleted()` always returns `TRUE`.
2829
expect_true(expect_visible(dbHasCompleted(res)))
2930
},

R/spec-meta-is-valid.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ spec_meta_is_valid <- list(
4343
expect_false(dbIsValid(res))
4444
},
4545
#
46-
is_valid_result_statement = function(con, table_name) {
47-
query <- paste0("CREATE TABLE ", table_name, " (a ", dbDataType(con, 1L), ")")
46+
is_valid_result_statement = function(ctx, con, table_name) {
47+
query <- ctx$tweaks$create_table_empty(table_name)
4848
res <- dbSendStatement(con, query)
4949
on.exit(dbClearResult(res))
5050
#' A [DBIResult-class] object is also valid after a call to [dbSendStatement()],

R/spec-result-fetch.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@ spec_result_fetch <- list(
8484
expect_equal(rows, data.frame(a = 1.5))
8585
},
8686

87-
fetch_no_return_value = function(con, table_name) {
87+
fetch_no_return_value = function(ctx, con, table_name) {
8888
#'
8989
#' Calling `dbFetch()` on a result set from a data manipulation query
9090
#' created by [dbSendStatement()] can
9191
#' be fetched and return an empty data frame, with a warning.
92-
query <- paste0("CREATE TABLE ", table_name, " (a integer)")
92+
query <- ctx$tweaks$create_table_empty(table_name)
9393

9494
res <- local_result(dbSendStatement(con, query))
9595
expect_warning(rows <- check_df(dbFetch(res)))

R/tweaks.R

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,11 @@
115115
#' from an SQL expression.
116116
"create_table_as" = function(table_name, query) paste0("CREATE TABLE ", table_name, " AS ", query),
117117

118+
#' @param create_table_empty `[function(character(1))]`\cr
119+
#' A function that creates an SQL expression for creating an empty table
120+
#' with a single integer column named 'a'.
121+
"create_table_empty" = function(table_name) paste0("CREATE TABLE ", table_name, " (a integer)"),
122+
118123
#' @param dbitest_version `[character(1)]`\cr
119124
#' Compatible DBItest version, default: "1.7.1".
120125
"dbitest_version" = "1.7.1",

man/tweaks.Rd

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)