What does SQLITE_FULL - "database is full" mean? How to fix?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

What does SQLITE_FULL - "database is full" mean? How to fix?

John Duprey
Hi all,

I just recently got the SQLITE_FULL error while trying to insert a row
into a table.  What does it mean when the database is full?  Out of
disk space perhaps or did I hit some internal constraint?

Here's a except from my log:
Oct 14 17:49:19 [8048/3899832] ERROR: SQL statement failure executing:
"INSERT INTO category (taxonomy_id, category_uid, version,
category_state_id)
Oct 14 17:49:19 [8048/3899832] ERROR: VALUES
Oct 14 17:49:19 [8048/3899832] ERROR: (
Oct 14 17:49:19 [8048/3899832] ERROR:  (SELECT rowid FROM
taxonomy_description WHERE name='TRG-CACIVP'),
Oct 14 17:49:19 [8048/3899832] ERROR:  '294790203',
Oct 14 17:49:19 [8048/3899832] ERROR:  '_NO_VERSION_',
Oct 14 17:49:19 [8048/3899832] ERROR:  (SELECT rowid FROM
category_state WHERE state='TRAINING' )
Oct 14 17:49:19 [8048/3899832] ERROR: );
Oct 14 17:49:19 [8048/3899832] ERROR:
Oct 14 17:49:19 [8048/3899832] ERROR: " because "database is full".

I'd appreciate any feedback you have on this error.

Thank you,

-John
Reply | Threaded
Open this post in threaded view
|

Re: What does SQLITE_FULL - "database is full" mean? How to fix?

Stephen J. Lombardo
Hi John,

I believe that SQLite will return with an SQLITE_FULL error if your run
out of disk space, OR if the value of the inserted row's rowid or INTEGER
PRIMARY KEY AUTOINCREMENT column exceeds a maximum value (2147483647 on a
32 bit, 9223372036854775807 on a 64 bit).

The first condition should be easy to check - just see if the drive or
volume you store the database on has any free space.

To check the second condition you could "SELECT max(rowid) from category;"
and see if you are at or near the maximum value for your platform.

Cheers,
Stephen

> Hi all,
>
> I just recently got the SQLITE_FULL error while trying to insert a row
> into a table.  What does it mean when the database is full?  Out of
> disk space perhaps or did I hit some internal constraint?
>
> Here's a except from my log:
> Oct 14 17:49:19 [8048/3899832] ERROR: SQL statement failure executing:
> "INSERT INTO category (taxonomy_id, category_uid, version,
> category_state_id)
> Oct 14 17:49:19 [8048/3899832] ERROR: VALUES
> Oct 14 17:49:19 [8048/3899832] ERROR: (
> Oct 14 17:49:19 [8048/3899832] ERROR:  (SELECT rowid FROM
> taxonomy_description WHERE name='TRG-CACIVP'),
> Oct 14 17:49:19 [8048/3899832] ERROR:  '294790203',
> Oct 14 17:49:19 [8048/3899832] ERROR:  '_NO_VERSION_',
> Oct 14 17:49:19 [8048/3899832] ERROR:  (SELECT rowid FROM
> category_state WHERE state='TRAINING' )
> Oct 14 17:49:19 [8048/3899832] ERROR: );
> Oct 14 17:49:19 [8048/3899832] ERROR:
> Oct 14 17:49:19 [8048/3899832] ERROR: " because "database is full".
>
> I'd appreciate any feedback you have on this error.
>
> Thank you,
>
> -John
>

Reply | Threaded
Open this post in threaded view
|

Re: What does SQLITE_FULL - "database is full" mean? How to fix?

John Duprey
Stephen,

Thank you.  That makes sense.  I later confirmed that the file system
had temporarily ran out of disk space.

-John

On 10/17/05, [hidden email] <[hidden email]> wrote:

> Hi John,
>
> I believe that SQLite will return with an SQLITE_FULL error if your run
> out of disk space, OR if the value of the inserted row's rowid or INTEGER
> PRIMARY KEY AUTOINCREMENT column exceeds a maximum value (2147483647 on a
> 32 bit, 9223372036854775807 on a 64 bit).
>
> The first condition should be easy to check - just see if the drive or
> volume you store the database on has any free space.
>
> To check the second condition you could "SELECT max(rowid) from category;"
> and see if you are at or near the maximum value for your platform.
>
> Cheers,
> Stephen
>
> > Hi all,
> >
> > I just recently got the SQLITE_FULL error while trying to insert a row
> > into a table.  What does it mean when the database is full?  Out of
> > disk space perhaps or did I hit some internal constraint?
> >
> > Here's a except from my log:
> > Oct 14 17:49:19 [8048/3899832] ERROR: SQL statement failure executing:
> > "INSERT INTO category (taxonomy_id, category_uid, version,
> > category_state_id)
> > Oct 14 17:49:19 [8048/3899832] ERROR: VALUES
> > Oct 14 17:49:19 [8048/3899832] ERROR: (
> > Oct 14 17:49:19 [8048/3899832] ERROR:  (SELECT rowid FROM
> > taxonomy_description WHERE name='TRG-CACIVP'),
> > Oct 14 17:49:19 [8048/3899832] ERROR:  '294790203',
> > Oct 14 17:49:19 [8048/3899832] ERROR:  '_NO_VERSION_',
> > Oct 14 17:49:19 [8048/3899832] ERROR:  (SELECT rowid FROM
> > category_state WHERE state='TRAINING' )
> > Oct 14 17:49:19 [8048/3899832] ERROR: );
> > Oct 14 17:49:19 [8048/3899832] ERROR:
> > Oct 14 17:49:19 [8048/3899832] ERROR: " because "database is full".
> >
> > I'd appreciate any feedback you have on this error.
> >
> > Thank you,
> >
> > -John
> >
>
>