Open renkun-ken opened 7 years ago
I capture the error and stacktrace as following:
Available environments had calls:
1: source("R/test.R")
2: withVisible(eval(ei, envir))
3: eval(ei, envir)
4: eval(ei, envir)
5: test.R#6: dbGetQuery(con, "select * from test_table")
6: dbGetQuery(con, "select * from test_table")
7: dbSendQuery(conn, statement, ...)
8: dbSendQuery(conn, statement, ...)
9: .local(conn, statement, ...)
10: new("MySQLResult", Id = rsId)
11: initialize(value, ...)
12: initialize(value, ...)
13: validObject(.Object)
14: stop(msg, ": ", errors, domain = NA)
15: (function (e)
{
dump.frames(to.file = TRUE)
browser()
})()
and I notice that in 9: .local(conn, statement, ...)
, rsId = c("names", "class")
instead of an integer as supposed?
In the same session, when I create the connection and disconnect, and connect again, then the error disappears magically. But when multiple tables are queried, the error still occurs like the following:
Error in dbFetch(rs, n = -1, ...) :
INTEGER() can only be applied to a 'integer', not a 'list'
Calls: load_data -> sys.source -> eval -> eval
Error in .local(dbObj, ...) :
INTEGER() can only be applied to a 'integer', not a 'list'
Calls: load_data -> sys.source -> eval -> eval
Execution halted
Thanks. Is this RMySQL from CRAN or from GitHub?
It is CRAN version.
I switch to RMariaDB
and this problem is gone.
This is a reproducible example of #40 and #196. The problem can be described as: when a table contains many
DECIMAL
columns, query this table will result in error in R terminal (R
andRscript
) but not in RStudio.First, create a new schema
test
usingSecond, create the following table with many
DECIMAL
columns:Then put some random data in the table (user and password need to be supplied):
Last, start an R terminal and query data from the table or create a script like the following and run it via
Rscript
:Then the error is always reproducible:
My session info: