Hello everybody,

we are using SQLite with in-memory tables to speed up importing of data into 
persistent tables. We therefore clone the persistent table's structure by 
querying the sqlite_master table for its create statement and replacing the 
table name. After importing the fresh data is copied over to the persistent 
table. Yesterday we introduced cloning of indexes on the permanent tables too.

The import of small data sets just works fine as before. However after 
importing 
larger data sets (~ 40000 rows) this causes problems. When trying to to copy 
them into the persistent table we get some weird errors like:

Error in query "DROP TABLE functionsSQLITEINMEMORYTEMP"
Error text is "database table is locked Unable to fetch row"
Error in query "DROP TABLE classes_2329_trunkSQLITEINMEMORYTEMP"
Error text is "database table is locked Unable to fetch row"
Error in query "DROP TABLE variables_2329_trunkSQLITEINMEMORYTEMP"
Error text is "database table is locked Unable to fetch row"
Error in query "INSERT INTO varaccess_2329_trunk SELECT * FROM varaccess_2329_tr
unkSQLITEINMEMORYTEMP"
Error text is "no such table: varaccess_2329_trunkSQLITEINMEMORYTEMP Unable to e
xecute statement"
Error in query "DELETE FROM varaccess_2329_trunkSQLITEINMEMORYTEMP"
Error text is "no such table: varaccess_2329_trunkSQLITEINMEMORYTEMP Unable to e

SQLite does not throw any warnings or errors before. We are kind of confused by 
the error messages:
1.) How can in-memory temporary tables that are only valid for one session be 
locked? No one else has access to these tables. Additionally we don't have any 
concurrent access to the persistent database file either.
2.) How can tables just disappear? See the last 2 error messages: the table 
varaccess_2329_trunkSQLITEINMEMORYTEMP was never dropped and previously used 
without problems to import the fresh data.

Is there any memory-limit for in-memory temporary tables? We did not find 
anything about this in the SQLite documentation. The cache_size pragma does not 
seem to be related to this problem - or is it? Maybe SQLite just has dropped 
the 
tables because it ran out of memory? However why is there no error message...

Thanks for any help in advance & greetings,
Jonas
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to