On 7/15/16, Jain, Punit <punit.j...@emc.com> wrote: > Clemens, thanks for the response. Since we are performing a join on a column > name of a table, we cannot give a fixed value. Is there any other way to > optimize join operations? >
If you set up your virtual table so that it can handle queries of the form "select * from t1 where name=?1" without doing a full table scan, then the SQLite query planner will take care of the joins for you automatically. > -----Original Message----- > From: sqlite-users-boun...@mailinglists.sqlite.org > [mailto:sqlite-users-boun...@mailinglists.sqlite.org] On Behalf Of Clemens > Ladisch > Sent: Friday, July 15, 2016 5:34 PM > To: sqlite-users@mailinglists.sqlite.org > Subject: Re: [sqlite] Question on Join in Virtual Tables > > Jain, Punit wrote: >> We have implemented virtual tables >> >> E.g. a query such as "select * from t1 join t2 on t1.name=t2.name" >> >> We tried to optimize it using xBestIndex and xFilter but to no avail. >> We couldn't find a way to pass the value of t1.name (for each row) to >> the filter of t2. > > SQLite uses nested loop joins. You have to support lookups of the form > "t1.name = <fixed value>" or "t2.name = <fixed value>". > > > Regards, > Clemens > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > -- D. Richard Hipp d...@sqlite.org _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users