dplyr & monetdb - 查询 schema.table 的适当语法?

dplyr & monetdb - appropriate syntax for querying schema.table?

monetdb 中,我设置了一个模式 main 并且我的 table 被创建到这个模式中。

例如departmenttable就是main.department.

使用 dplyr 我尝试查询 table:

mdb <- src_monetdb(dbname="model", user="monetdb", password="monetdb")

tbl(mdb, "department")

但是我明白了

Error in .local(conn, statement, ...) : 
  Unable to execute statement 'PREPARE SELECT * FROM "department"'.
Server says 'SELECT: no such table 'department'' [#42S02].

我尝试使用 "main.department" 和其他类似的组合,但没有成功。

什么是合适的语法?

对此有一个有点棘手的解决方法:我们可以手动设置连接的默认架构。我有一个数据库 testing,其中有一个模式 foo 和一个名为 bar 的 table。

mdb <- src_monetdb("testing")
dbSendQuery(mdb$con, "SET SCHEMA foo");
t <- tbl(mdb, "bar")

dbplyr 包(dplyr 的后端,用于数据库连接)具有针对这些情况的 in_schema() 函数:

conn <- dbConnect(
  MonetDB.R(),
  host = "localhost",
  dbname = "model",
  user = "monetdb",
  password = "monetdb",
  timeout = 86400L
)

department = tbl(conn, dbplyr::in_schema("main", "department"))