On 03/11/2014 04:17 AM, St. B. wrote:
Hi,
On Mon, Mar 10, 2014 at 6:37 PM, Dan Kennedy <danielk1...@gmail.com> wrote:
On 03/10/2014 06:49 PM, St. B. wrote:
Hi,
I posted this question last year, but did not get any feed back. Is this
something that can be handled on the ML, or should I ask in another place?
Regards,
---------- Forwarded message ----------
From: St. B. <sbart...@gmail.com>
Date: Sun, Jan 6, 2013 at 11:45 PM
Subject: Exception when querying a range index
To: sqlite-users@sqlite.org
Hi All,
I have an application using sqlite to store coast lines (application runs
on windows and uses the .Net version of sqlite v1.0.83). I use range
indexes to look-up coast line within range of a given point.
During run time I find that the following exception occurs.
vtable constructor failed: MapLevel_Idx3
How is virtual table MapLevel_Idx3 created? Is it an rtree table?
The virtual table is created with the following sql statement:
CREATE VIRTUAL TABLE MapLevel_Idx4 USING rtree(
id, -- Integer primary key
minX, maxX, -- Minimum and maximum X coordinate
minY, maxY -- Minimum and maximum Y coordinate
);
Yes it is an rtree table
SQLite version?
I am using system.data.SQLite v 1.0.84.0. I guess it includes sqlites in v
3.7.6.3 (but am not sure at all)
If it's possible, you should upgrade to a newer version of SDS. 3.7.6.3
is almost three years old now.
The "vtable constructor failed" message tells us that an error occurred
while trying to initialize the virtual table instance, but it doesn't
tell us any more than that. However, the error messages returned by the
rtree module have improved a lot since 3.7.6, so I fancy that if you
upgrade the new version will spit out a more specific complaint.
For example, I just tested the effects of encountering an SQLITE_BUSY
while initializing the rtree instance. With 3.8.4 the error message is
"database is locked". But with 3.7.6 all you get is "vtable constructor
failed".
There is a good chance that this is what is happening in your environment
as well - the db is locked and the error message is deceptive. In which
case you should just retry the operation or add a busy-handler to the
database connection. But upgrading first is the safer option.
Dan.
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users