Nothing
test_that("can create table idents", {
expect_equal(
new_table_ident(
table = c("A", "B", "C"),
schema = "schema"
),
vctrs::new_rcrd(list(
table = c("A", "B", "C"),
schema = vctrs::vec_rep("schema", 3),
catalog = vctrs::vec_rep(NA_character_, 3),
quoted = vctrs::vec_rep(FALSE, 3),
alias = vctrs::vec_rep(NA_character_, 3)
), class = "dbplyr_table_ident")
)
})
test_that("is properly vectorised", {
expect_equal(
new_table_ident(
table = c("A", "B"),
schema = c("schema1", "schema2"),
catalog = c("cat1", "cat2")
),
vctrs::new_rcrd(list(
table = c("A", "B"),
schema = c("schema1", "schema2"),
catalog = c("cat1", "cat2"),
quoted = vctrs::vec_rep(FALSE, 2),
alias = vctrs::vec_rep(NA_character_, 2)
), class = "dbplyr_table_ident")
)
expect_snapshot(error = TRUE, {
new_table_ident(table = c("A", "B", "c"), schema = c("schema1", "schema2"))
})
})
test_that("can't supply table and sql", {
expect_snapshot(error = TRUE, {
new_table_ident(schema = "my schema", table = "my table", quoted = TRUE)
})
})
test_that("must supply table and schema when catalog is used", {
expect_snapshot(error = TRUE, {
new_table_ident(table = "my table", catalog = "cat")
new_table_ident(schema = "schema", catalog = "cat")
})
# also works when schema is a vector
expect_snapshot(error = TRUE, {
new_table_ident(table = "my table", schema = c("my schema", NA), catalog = "cat")
})
})
test_that("can't coerce or cast to character", {
table <- new_table_ident(table = "table")
expect_snapshot(error = TRUE, {
c(table, "character")
as.character(table)
})
})
test_that("can print", {
expect_snapshot({
new_table_ident(table = "table")
new_table_ident(schema = "schema", table = "table")
new_table_ident(catalog = "catalog", schema = "schema", table = "table")
new_table_ident(table = "`my schema`.`my table`", quoted = TRUE)
})
# is correctly vectorised
expect_snapshot(
new_table_ident(
table = c("`my schema`.`my table`", "table1", "table2", "table3"),
schema = c( NA, NA, "schema2", "schema3"),
catalog = c( NA, NA, NA, "catalog3"),
quoted = c( TRUE, FALSE, FALSE, FALSE)
)
)
})
test_that("as_table_ident works", {
expect_equal(
as_table_ident("table"),
new_table_ident(table = "table")
)
expect_equal(
as_table_ident(ident("table")),
new_table_ident(table = "table")
)
expect_equal(
as_table_ident(in_schema("schema", "table")),
new_table_ident(schema = "schema", table = "table")
)
expect_equal(
as_table_ident(in_catalog("catalog", "schema", "table")),
new_table_ident(catalog = "catalog", schema = "schema", table = "table")
)
expect_equal(
as_table_ident(DBI::Id(catalog = "catalog", schema = "schema", table = "table")),
new_table_ident(catalog = "catalog", schema = "schema", table = "table")
)
table <- new_table_ident(table = "table")
expect_equal(
as_table_ident(table),
table
)
withr::local_options(rlib_message_verbosity = "verbose")
expect_snapshot({
expect_equal(
as_table_ident(ident_q("my schema.my table")),
new_table_ident(table = "my schema.my table", quoted = TRUE)
)
expect_equal(
as_table_ident(sql("my schema.my table")),
new_table_ident(table = "my schema.my table", quoted = TRUE)
)
})
})
test_that("escaped as needed", {
con <- simulate_dbi()
out <- c(
as_table_ident(ident("table1")),
as_table_ident(in_schema("schema2", "table2")),
as_table_ident(in_catalog("catalog3", "schema3", "table3"))
)
expect_equal(
escape(out, collapse = NULL, con = simulate_dbi()),
sql(
"`table1`",
"`schema2`.`table2`",
"`catalog3`.`schema3`.`table3`"
)
)
})
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.