Hi Stephen, > I should note that there's a gross inefficiency when using triggers > to handle updates or deletes against views; SQLite does the > equivalent of this: > > For UPDATE <view> ... WHERE <condition>, SQLite copies the entire > source view into the temp table. > > SELECT * INTO <temptable> FROM <view> > > Then, it iterates over <temptable>, looking for rows that match > <condition>, and *then* runs the trigger on them. This means that > if your source view is large, this will run slowly.
That's horrendous, and surprisingly (and exponentially) inefficient for such otherwise efficient software. > I submitted a patch a long while ago to optimize this by turning the > initial temp-table population into "SELECT * INTO <temptable> FROM > <view> WHERE <condition>", which worked much faster Great thinking. > but I don't think anything came of it. I'm hoping it will now that Dennis has suggested mechanisms ;-) Thanks for your efforts. Thanks, Tom BareFeet _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users