Hi, I sometimes use virtual tables to implement some kind of one-to-many output. One of examples mentioned previously was the comma list virtual table when a field containing comma-separated values might be used to output rows of values from this list. Other example - performing regexp-like query against a text and outputting the result columns. But this involves assuming that some columns of the virtual table are required "input" parameters while the other is "output". For example, for comma list, the required parameter is the list, the output - extracted values. The consequence of this trick is that this virtual table is not fully functional one, so you can't query select * from it, it's useful only by providing where or "join .. on" clause containing the required "input" parameters.
I usually encouraged sqlite to provide all required input parameters by reporting a "cheap" value of estimatedCost when I recognized my "input" parameters in xBestIndex call and providing an "expensive" values for any other cases. This usually worked for simple and complex cases until 3.8.0.0. It seems the version introduced Next-Generation Query Planner and I noticed that in some complex cases my cheap-expensive recommendations were ignored, so even when I noticed in the debugger that cheap value was provided for the right index and expensive for all other cases, the following xFilter provided not all values required probably deciding it knew better :). Before this I used cheap value 1 and expensive value 10000. Testing (3.17.0) revealed that in some cases multiplying expensive by x100 helped, but other cases required increasing this value even more. So, what is the maximum reasonable value of estimatedCost that will not turn sqlite into possible overflow errors while telling at the same time that I consider some variant very, very expensive? Or maybe changing cheap from 1 to 0 will do the trick? Thanks Max _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users