tests/testthat/test-extract_alias.R

test_that("column aliases extract as expected", {
  expect_true(all(
    extract_alias("abc xyz") == c(xyz = "abc"),
    extract_alias("'abc'xyz") == c(xyz = "'abc'"),
    extract_alias("abc 'xyz'") == c(xyz = "abc"),
    extract_alias("abc'xyz'") == c(xyz = "abc"),
    extract_alias("'abc' 'xyz'") == c(xyz = "'abc'"),
    extract_alias("abc AS xyz") == c(xyz = "abc"),
    extract_alias("'abc' AS xyz") == c(xyz = "'abc'"),
    extract_alias("abc AS 'xyz'") == c(xyz = "abc"),
    extract_alias("'abc' AS 'xyz'") == c(xyz = "'abc'"),
    extract_alias("'abc' AS 'xyz'") == c(xyz = "'abc'"),
    extract_alias("'abc'AS xyz") == c(xyz = "'abc'"),
    extract_alias("abc AS'xyz'") == c(xyz = "abc"),
    extract_alias("'abc'AS 'xyz'") == c(xyz = "'abc'"),
    extract_alias("'abc' AS'xyz'") == c(xyz = "'abc'"),
    extract_alias("'abc'AS'xyz'") == c(xyz = "'abc'"),
    extract_alias("'abc' AS 'xyz'") == c(xyz = "'abc'"),
    extract_alias("'abc''xyz'") == "'abc''xyz'",
    extract_alias("abc AAS 'xyz'") == c(xyz = "abc AAS"),
    extract_alias("(abc) xyz") == c(xyz = "(abc)"),
    extract_alias("2+2'xyz'") == c(xyz = "2+2"),
    extract_alias("2+2") == "2+2",
    extract_alias("") == "",
    extract_alias("x") == "x",
    extract_alias("'x'") == "'x'",
    extract_alias("''") == "''",
    extract_alias("xs y") == c(y = "xs"),
    extract_alias("xas y") == c(y = "xas"),
    extract_alias("xs 'y'") == c(y = "xs"),
    extract_alias("xas 'y'") == c(y = "xas"),
    extract_alias("x like y") == "x like y",
    extract_alias("x IS NULL") == "x IS NULL",
    extract_alias("NULL") == "NULL",
    extract_alias("cast(1 as string)l") == c(l = "cast(1 as string)"),
    extract_alias("x between y and z l") == c(l = "x between y and z"),
    extract_alias("w.x") == "w.x",
    extract_alias("`w.x`") == "`w.x`",
    extract_alias("'w.x'") == "'w.x'",
    extract_alias("\"w.x\"") == "\"w.x\"",
    extract_alias("`w`.x") == "`w`.x",
    extract_alias("'w'.x") == "'w'.x",
    extract_alias("\"w\".x") == "\"w\".x",
    extract_alias("`w`.`x`") == "`w`.`x`",
    extract_alias("'w'.'x'") == "'w'.'x'",
    extract_alias("\"w\".\"x\"") == "\"w\".\"x\"",
    extract_alias("w.`x`") == "w.`x`",
    extract_alias("w.'x'") == "w.'x'",
    extract_alias("w.\"x\"") == "w.\"x\"",
    extract_alias("`w`.'x'") == "`w`.'x'",
    extract_alias("'w'.`x`") == "'w'.`x`"
  ))
})

test_that("column aliases extract as expected with UTF-8 characters present", {
  skip_on_os("windows")
  skip_on_cran()
  expect_true(all(
    extract_alias("ö x") == c(x = "ö"),
    extract_alias("ö 'ö'") == c("ö" = "ö"),
    extract_alias("'ö' 'ö'") == c("ö" = "'ö'"),
    extract_alias("ö AS 'ö'") == c("ö" = "ö"),
    extract_alias("ö AS'ö'") == c("ö" = "ö"),
    extract_alias("'ö'AS'ö'") == c("ö" = "'ö'"),
    extract_alias("ö as 1") == "ö as 1",
    extract_alias("ö ö") == c("ö" = "ö"),
    extract_alias("ö AS ö") == c("ö" = "ö"),
    extract_alias("1 as ö") == c("ö" = "1"),
    extract_alias("ÿ ź") == c("ź" = "ÿ")
  ))
})

Try the queryparser package in your browser

Any scripts or data that you put into this service are public.

queryparser documentation built on Jan. 10, 2023, 1:08 a.m.