test_that("passing field.types", { con <- dbConnect(SQLite()) on.exit(dbDisconnect(con)) dbWriteTable(con, "a", data.frame(a = 1:3), field.types = c("a" = "TEXT")) res <- dbReadTable(con, "a") expect_identical(res, data.frame(a = c("1", "2", "3"), stringsAsFactors = FALSE)) }) test_that("passing field.types for some columns only", { con <- dbConnect(SQLite()) on.exit(dbDisconnect(con)) dbWriteTable(con, "a", data.frame(a = 1:3, b = 4:6), field.types = c("a" = "TEXT")) expect_equal( dbReadTable(con, "a"), data.frame(a = as.character(1:3), b = 4:6, stringsAsFactors = FALSE) ) }) test_that("passing field.types with wrong name", { con <- dbConnect(SQLite()) on.exit(dbDisconnect(con)) expect_error( dbWriteTable(con, "a", data.frame(a = 1:3), field.types = c("b" = "TEXT")), "not found" ) }) test_that("passing field.types with primary key information", { con <- dbConnect(SQLite()) on.exit(dbDisconnect(con)) dbWriteTable(con, "a", data.frame(a = 1:3), field.types = c("a" = "INTEGER PRIMARY KEY")) res <- dbReadTable(con, "a") expect_identical(res, data.frame(a = 1:3)) }) test_that("passing field.types with primary key information and non-unique values", { con <- dbConnect(SQLite()) on.exit(dbDisconnect(con)) expect_error( dbWriteTable(con, "a", data.frame(a = c(1, 2, 1)), field.types = c("a" = "INTEGER PRIMARY KEY")), "UNIQUE" ) }) test_that("combining numeric types and NA to integer64 (#291)", { con <- dbConnect(SQLite()) on.exit(dbDisconnect(con)) x1 <- data.frame(a = c(1L, NA)) x2 <- data.frame(a = c(2, NA)) x3 <- data.frame(a = bit64::as.integer64(1e10)) dbWriteTable(con, "a", x1) dbWriteTable(con, "a", x2, append = TRUE) dbWriteTable(con, "a", x3, append = TRUE) expect_identical(dbReadTable(con, "a")$a, bit64::as.integer64(c(1, NA, 2, NA, 1e10))) }) test_that("combining numeric types and NA to numeric (#291)", { con <- dbConnect(SQLite()) on.exit(dbDisconnect(con)) x1 <- data.frame(a = c(1L, NA)) x2 <- data.frame(a = c(1.5, NA)) dbWriteTable(con, "a", x1) dbWriteTable(con, "a", x2, append = TRUE) expect_identical(dbReadTable(con, "a")$a, c(1, NA, 1.5, NA)) })
Generated by dwww version 1.15 on Thu Jun 20 12:31:04 CEST 2024.