Search code examples
rquantmodrmysql

Unable to use setDefaults on quantmod


I seem to be doing something wrong when trying to use setDefaults. If I enter each argument every time I use getSymbols.MySQL, it seems to work fine but I get an error when doing the following:

> setDefaults(getSymbols.MySQL, 
             user = 'root', 
             password = '********', 
             dbname = 'psedata', 
             db.fields = c("date", "open", "high", "low", "close", "volume", "adj"), 
             field.names = c("date", "open", "high", "low", "close", "volume", "adj"),
             env = .GlobalEnv)
> getSymbols('ALI', src = 'MySQL')
Error in .local(conn, statement, ...) : 
  could not run statement: FUNCTION psedata.c does not exist

However, the following works:

> getSymbols.MySQL('ALI', 
         user = 'root', 
         password = '********', 
         dbname = 'psedata', 
         db.fields = c("date", "open", "high", "low", "close", "volume", "adj"), 
         field.names = c("date", "open", "high", "low", "close", "volume", "adj"),
         env = .GlobalEnv)
[1] "ALI"

I feel like I'm missing something obvious but I really can't find it.


Solution

  • This looks like a bug (either in setDefaults or importDefaults), and the following code seems to produce a query that will work. Note that this is untested, because I don't have a MySQL database available.

    setDefaults(getSymbols.MySQL, 
        user = 'root', 
        password = '********', 
        dbname = 'psedata', 
        db.fields = quote(c("date", "open", "high", "low", "close", "volume", "adj")), 
        field.names = quote(c("date", "open", "high", "low", "close", "volume", "adj")),
        env = .GlobalEnv)