[Rd] Problem in 'methods' package (PR#4525)
David James
dj at research.bell-labs.com
Sat Oct 11 22:55:13 MEST 2003
Hello,
It seems to me that Fernando may be right. The problem seems to be
in R 1.8.0 when defining generics with explicit valueClass. E.g.,
R-1.7.1:
> setGeneric("foo", function(x) standardGeneric("foo"), valueClass="numeric")
> setMethod("foo", "numeric", function(x) x )
> foo(pi)
[1] 3.141593
R-devel (1.9.0): (I don't have 1.8.0 handy at this moment).
> setGeneric("foo", function(x) standardGeneric("foo"), valueClass="numeric")
> setMethod("foo", "numeric", function(x) x )
> foo(pi)
Error in foo(pi) : couldn't find function ".valueClassTest"
whether the problem is in the methods package or the namespace code,
I cannot say.
--
David
Uwe Ligges wrote:
> feferraz at linux.ime.usp.br wrote:
> >
> > Full_Name: Fernando Henrique Ferraz Pereira da Rosa
> > Version: 1.8.0
> > OS: Linux 2.4.21
> > Submission from: (NULL) (200.206.211.169)
> >
> > After installing R 1.8.0, the R DBI interface stopped working. I tracked it
> > down as a problem in the 'methods' package, that comes in the default
> > installation.
> > Somehow the function '.valueClassTest' which is defined on package
> > 'methods', is not being defined.
>
> It is. See below.
>
> > To ilustrate how this breaks DBI, try this in a 1.8.0 R install (with DBI
> > installed):
> >
> > > library(DBI)
> > > con <- dbConnect(dbDriver("MySQL"), dbname = "test")
> > Error in dbConnect(dbDriver("MySQL"), dbname = "test") :
> > couldn't find function ".valueClassTest"
> >
> > A dirty fix would be defining it by hand (from
> > src/library/methods/R/RMethodUtils.R) :
> >
> > .valueClassTest <- function(object, classes, fname) {
> > (...)
> > }
> >
> > (Which works), but ideally it'd be nice determning why the function is
> > not being defined on the first place.
>
> Package "methods" has a namespace from which .valueClassTest() is not
> exported, but it's in there, try:
> methods:::.valueClassTest
>
> I think .valueClassTest() is not intended to be called by the user, so
> the bug seems to be in package DBI rather than in R, and the maintainer
> of DBI (David A. James <dj at bell-labs.com>, in CC) will certainly fix it.
>
> Uwe Ligges
--
David A. James
Statistics Research, Room 2C-253 Phone: (908) 582-3082
Bell Labs, Lucent Technologies Fax: (908) 582-3340
Murray Hill, NJ 09794-0636
More information about the R-devel
mailing list