[R] sqldf returns Error: database or disk is full
Bert Gunter
bgunter@4567 @end|ng |rom gm@||@com
Mon Jun 27 19:44:03 CEST 2022
You should probably heed the warning messages you received before doing
anything further.
Bert
On Mon, Jun 27, 2022, 2:55 PM Ian Worthington via R-help <
r-help using r-project.org> wrote:
> I'm using sqldf() to execute a query using a named dbname. It appears to
> create an external db but after 30 minutes or so returns:
>
> Error: database or disk is full
> The disk is not full, so have I hit some internal db size limit? The
> external db created is about 610MB and doesn't grow, so maybe it's running
> out of room for the result set, where ever that is stored?
>
> Code being executed is:
> sqlCmds <- c(#"create index ixsip on ipTrace100(source)",
> "create index ixdip on ipTrace100(destination)",
> #"create index ixspo on ipTrace100(SrcPo)",
> "create index ixdpo on ipTrace100(DstPo)",
> #"create index ixno on ipTrace100(`No.`)",
> # "explain query plan
> "select tr1.`No.` InNo, tr1.Time InTime, tr1.source
> InSource, /*tr1.destination InDest,*/ tr1.SrcPo InSrcPo, tr1.DstPo InDstPo,
> min(tr2.`No.`) OutNo, tr2.Time OutTime /*,
> tr2.source OutSource,*/ /*tr2.destination OutDest,*/ /*tr2.SrcPo OutSrcPo*/
> /*, tr2.DstPo OutDstPo */
> from main.ipTrace100 tr1
> join main.ipTrace100 tr2
> on tr1.destination = '10.27.187.1' and
> tr1.source = tr2.destination and
> tr1.SrcPo = tr2.DstPo and
> tr1.`No.` < tr2.`No.`
> group by tr1.`No.`"
> )
> (tempfile <- tempfile())
> system.time( sqldf(sqlCmds, dbname=tempfile, verbose=TRUE) )
> and console log:
>
> |
> | |
>
> > system.time( sqldf(sqlCmds, dbname=tempfile, verbose=TRUE) )
> sqldf: library(RSQLite)
> sqldf: m <- dbDriver("SQLite")
> sqldf: connection <- dbConnect(m, dbname =
> "C:\Users\PIWN01~1\AppData\Local\Temp\RtmpSycE1E\file78e464e72860")
> sqldf: initExtension(connection)
> sqldf: dbWriteTable(connection, 'ipTrace100', ipTrace100, row.names =
> FALSE)
> sqldf: dbGetQuery(connection, 'create index ixdip on
> ipTrace100(destination)')
> Warning in result_fetch(res using ptr, n = n) :
> SQL statements must be issued with dbExecute() or dbSendStatement()
> instead of dbGetQuery() or dbSendQuery().
> sqldf: dbGetQuery(connection, 'create index ixdpo on ipTrace100(DstPo)')
> Warning in result_fetch(res using ptr, n = n) :
> SQL statements must be issued with dbExecute() or dbSendStatement()
> instead of dbGetQuery() or dbSendQuery().
> sqldf: dbGetQuery(connection, 'select tr1.`No.` InNo, tr1.Time
> InTime, tr1.source InSource, /*tr1.destination InDest,*/ tr1.SrcPo InSrcPo,
> tr1.DstPo InDstPo,
> min(tr2.`No.`) OutNo, tr2.Time OutTime /*,
> tr2.source OutSource,*/ /*tr2.destination OutDest,*/ /*tr2.SrcPo OutSrcPo*/
> /*, tr2.DstPo OutDstPo */
> from main.ipTrace100 tr1
> join main.ipTrace100 tr2
> on tr1.destination = '10.27.187.1' and
> tr1.source = tr2.destination and
> tr1.SrcPo = tr2.DstPo and
> tr1.`No.` < tr2.`No.`
> group by tr1.`No.`')
> Error: database or disk is full
> sqldf: dbDisconnect(connection)
> sqldf: file.remove(dbname)
> Timing stopped at: 413.1 1081 1780 |
>
>
> | |
>
>
>
>
> Best wishes / Mejores deseos / Meilleurs vœux
>
> Ian ...
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list