[R-sig-Debian] Querying sqlite through RODBC causes R to crash
Dirk Eddelbuettel
edd at debian.org
Mon Aug 27 19:12:40 CEST 2012
On 27 August 2012 at 18:38, Tom Gottfried wrote:
| Here comes what is almost self-contained. Unfortunately I was not able
| to find a command-line tool to configure the ODBC DSN.
|
|
| apt-get install r-cran-rodbc libsqliteodbc sqlite3 unixodbc-bin \
| r-cran-rsqlite
|
| sqlite3 testdb.sqlite 'create table test
| (id integer primary key, test text);
| insert into test values (1, "test");'
|
| ODBCManageDataSourcesQ4
| # add DSN with name 'testdb' referring to
| # testdb.sqlite with SQLite3 driver
|
| echo 'library(RODBC)
| sqlQuery(odbcConnect("testdb"), "select * from test")' |
| R --vanilla
| # crashes R
|
| echo 'library(RSQLite)
| dbGetQuery(dbConnect("SQLite", dbname="testdb.sqlite"),
| "select * from test")' |
| R --vanilla
| # returns a data.frame as expected
As the last and successful part removes a lot of blame from SQLite, I would
look into libsqliteodbc. And possibly unixodc, I have in the past also tried
libiodbc (?) but generally find fiddling with DSNs so annoying that I prefer
direct interfaces wherever possible...
Dirk
|
| Am 27.08.2012 15:12, schrieb Dirk Eddelbuettel:
| >
| > On 27 August 2012 at 11:46, Tom Gottfried wrote:
| > | Dear R-SIG-Debian,
| > |
| > | while trying to query data from an SQLite database through RODBC on
| > | Debian testing, R crashes with the following message:
| > |
| > | library(RODBC)
| > | con3<- odbcConnect("test3")
| > | # 'test3' being an ODBC datasource configured with SQLite3 driver,
| > | # but the same happens with SQLite driver
| > | sqlQuery(con3, "select * from test") # 'test' being any table
| >
| > Please provide a self-contained example which
| >
| > -- creates a tempfile
| > -- puts a sqlite3 db into it
| > -- access this temp db from R
| > -- has R crashing
| >
| > as there is nothing reproducible in your report. I would also suggest to
| > skip ODBC at first and focus on the RSQLite package.
| >
| > Dirk
| >
| > |
| > | *** caught segfault ***
| > | address 0x438, cause 'memory not mapped'
| > |
| > | Traceback:
| > | 1: .Call(C_RODBCQuery, attr(channel, "handle_ptr"),
| > | as.character(query), as.integer(rows_at_time))
| > | 2: odbcQuery(channel, query, rows_at_time)
| > | 3: sqlQuery(con3, "select * from test")
| > |
| > | Possible actions:
| > | 1: abort (with core dump, if enabled)
| > | 2: normal R exit
| > | 3: exit R without saving workspace
| > | 4: exit R saving workspace
| > | Selection: 1
| > | aborting ...
| > | Segmentation fault
| > |
| > |
| > |
| > | This is what sessionInfo says:
| > |
| > | R version 2.15.1 (2012-06-22)
| > | Platform: x86_64-pc-linux-gnu (64-bit)
| > |
| > | locale:
| > | [1] C
| > |
| > | attached base packages:
| > | [1] stats graphics grDevices utils datasets methods base
| > |
| > | other attached packages:
| > | [1] RODBC_1.3-6
| > |
| > |
| > |
| > | I tested the same under Windows 7 with the same sqlite-file without any
| > | problem. sessionInfo for the Windows-system:
| > |
| > | R version 2.15.1 (2012-06-22)
| > | Platform: x86_64-pc-mingw32/x64 (64-bit)
| > |
| > | locale:
| > | [1] LC_COLLATE=German_Germany.1252 LC_CTYPE=German_Germany.1252
| > | [3] LC_MONETARY=German_Germany.1252 LC_NUMERIC=C
| > | [5] LC_TIME=German_Germany.1252
| > |
| > | attached base packages:
| > | [1] stats graphics grDevices utils datasets methods base
| > |
| > | other attached packages:
| > | [1] RODBC_1.3-6
| > |
| > | loaded via a namespace (and not attached):
| > | [1] tools_2.15.1
| > |
| > |
| > |
| > | On the Debian system, both R and RODBC were installed from the Debian
| > | repositories. I also tried with an RODBC build from source with the R
| > | mechanisms (install.packages()), which results in the same error.
| > |
| > | Any idea what is the cause or how I could sort it out?
| > |
| > | Thank you very much!
| > | Tom
| > | --
| > | Indo-German Centre for Sustainability
| > | Indian Institute of Technology Madras
| > | 600 036 Chennai, India
| > | www.igcs-chennai.org
| > |
| > | _______________________________________________
| > | R-SIG-Debian mailing list
| > | R-SIG-Debian at r-project.org
| > | https://stat.ethz.ch/mailman/listinfo/r-sig-debian
| >
|
| --
| Indo-German Centre for Sustainability
| Indian Institute of Technology Madras
| 600 036 Chennai, India
| www.igcs-chennai.org
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the R-SIG-Debian
mailing list