System.Data.SQLite
View Ticket
Not logged in
Ticket UUID: 56f511d26874979eaaccc53bbc46e56beb5e1fe3
Title: SQLiteIndex Passed to SQLiteModule.BestIndex Contains null SQLiteIndexOutputs SQLiteIndexContraintUsage
Status: Closed Type: Code_Defect
Severity: Minor Priority: Blocker
Subsystem: Virtual_Table Resolution: Fixed
Last Modified: 2015-01-22 18:38:43
Version Found In: 1.0.94.0
User Comments:
anonymous added on 2015-01-22 02:11:43:
For a virtual table implementation, when SQLiteModule.BestIndex is invoked for a query with a where clause, the SQLiteIndexConstraintUsages array of SQLiteIndexOutputs of the SQLiteIndex argument contains null entities.  Specifically:

  index.Outputs.ConstraintUsages[i] is null (where i is less than index.Outputs.ConstaintUsages.Length)

All constructors of SQLiteIndexConstraintUsages are internal, so there isn't any way to allocate an instance within .BestIndex.  There isn't anyway to pass constaints to .FilterBy without being able to set SQLiteIndexConstraintUsages.

I reviewed code in the latest trunk for SQLiteModule.cs and SQLiteIndex.FromIntPtr does not update Outputs.ConstraintUsages like it does for Inputs.Constraints and Inputs.OrderBys.

mistachkin added on 2015-01-22 14:56:30:
Thanks for the report.

This will be fixed in the upcoming 1.0.95.0 release, due out soon.

mistachkin added on 2015-01-22 18:38:43:
Fixed on trunk via check-in [c927246f90].