File: test-schema.R

package info (click to toggle)
r-cran-dbplyr 2.3.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,376 kB
  • sloc: sh: 13; makefile: 2
file content (37 lines) | stat: -rw-r--r-- 1,419 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
test_that("can construct and print", {
  expect_snapshot(in_schema("schema", "table"))
  expect_snapshot(in_catalog("catalog", "schema", "table"))
})

test_that("escaped as needed", {
  con <- simulate_dbi()
  expect_equal(as.sql(in_schema("s", "t"), con), ident_q("`s`.`t`"))
  expect_equal(as.sql(in_schema(sql("s"), sql("t")), con), ident_q("s.t"))
  expect_equal(as.sql(in_catalog("c", "s", "t"), con), ident_q("`c`.`s`.`t`"))
  expect_equal(as.sql(in_catalog(sql("c"), sql("s"), sql("t")), con), ident_q("c.s.t"))
})

test_that("can copy and collect with schema or Id", {
  con <- sqlite_con_with_aux()
  on.exit(dbDisconnect(con))
  df <- tibble(x = 1:10)

  db <- copy_to(con, df, in_schema("aux", "db1"), temporary = FALSE)
  expect_equal(collect(db), df)
  expect_equal(collect(filter(db, x < 2)), df[1, ])

  db <- copy_to(con, df, Id(schema = "aux", table = "db2"), temporary = FALSE)
  expect_equal(collect(db), df)
  expect_equal(collect(filter(db, x < 2)), df[1, ])
})

test_that("quoted identifier correctly escaped", {
  con <- simulate_dbi()
  x2 <- ident_q('"x"')
  expect_equal(as.sql(x2), x2)
  expect_equal(escape(x2, con = con), sql('"x"'))

  expect_equal(sql_vector(ident_q(), collapse = NULL, con = con), sql())
  expect_equal(sql_vector(ident_q(), parens = FALSE, collapse = "", con = con), sql(""))
  expect_equal(sql_vector(ident_q(), parens = TRUE, collapse = "", con = con), sql("()"))
})