[R-sig-DB] RPostgreSQL - dbExistsTable() is FALSE with schema names?

Sean Davis @d@v|@2 @end|ng |rom m@||@n|h@gov
Tue Apr 7 02:01:36 CEST 2009


On Mon, Apr 6, 2009 at 7:42 PM, Dirk Eddelbuettel <edd using debian.org> wrote:

>
> On 6 April 2009 at 19:18, Prasenjit Kapat wrote:
> | Hi,
> |
> | dbExistsTable (conn, name="myschema.mytable") is FALSE, whereas
> | dbExistsTable (conn, name="mytable") is TRUE ! 'mytable' is part of
> | the 'myschema'.
> |
> | Is this as expected?
>
> Not sure. Check the Pg API doc of what is expected.
>
> And in general, patches and debugging are welcome.  Sameer, who wrote
> RPostgreSQL as part of last year's Google Summer of Code seems to have lost
> touch with the code.
>

Looks like dbTableExists() method calls dbListTables() method, and that uses
the SQL query:

select tablename from pg_tables
where schemaname !='information_schema'
and schemaname !='pg_catalog'

This returns the table name, but no schema name.  R code is then used to
check for equality of strings.  This will lead to the incorrect behavior as
noted.  I can provide a patch, probably, but it won't be immediate, so if
someone else gets there first, just let us know.

Sean

	[[alternative HTML version deleted]]




More information about the R-sig-DB mailing list