This is indirectly related to #839.
I found that if the .IND file or the whole set of shapefiles for a given dataset
are read-only, then the .IND file is not used. Just making the .ind file
writeable is enough to have it used.
$ chmod -w shptest2.*
$ ogrinfo shptest2.shp -sql "SELECT * FROM shptest2 WHERE parcelid = 'D0134
M00015'"
ERROR 4: Unable to open shptest2.shp or shptest2.SHP.
ERROR 3: Open() failed for shptest2.ind
ERROR 4: Failed to open index file shptest2.ind.
Had to open data source read-only.
...
... the query works but doesn't use the index (slow)
...
$ chmod +w shptest2.ind
$ ls -l shptest2.*
-r--r--r-- 1 daniel users 276714879 Apr 27 11:07 shptest2.dbf
-r--r--r-- 1 daniel users 227 Apr 27 11:09 shptest2.idm
-rw-rw-r-- 1 daniel users 17092608 Apr 29 11:06 shptest2.ind
-r--r--r-- 1 daniel users 38 Apr 27 11:05 shptest2.prj
-r--r--r-- 1 daniel users 307403144 Apr 27 11:07 shptest2.shp
-r--r--r-- 1 daniel users 2657620 Apr 27 11:07 shptest2.shx
$ ogrinfo shptest2.shp -sql "SELECT * FROM shptest2 WHERE parcelid = 'D0134
M00015'"
ERROR 4: Unable to open shptest2.shp or shptest2.SHP.
Had to open data source read-only.
...
... this time the index is being used and returns fast
...