SQLite Forum

update-from on without rowid virtual tables
Login
So on the query plan for the update from, I think you're correct, in the case of an equality constraint on "name" the code was:

```
info->estimatedRows = 1;
info->idxFlags = SQLITE_INDEX_SCAN_UNIQUE;
```

Adding

```
info->estimatedCost = 1;
```

Causes it to use an alternate query plan as I now only get this output from xColumn, so it's not doing a full scan any more.

```
sqlite3_vtab_nochange for column 0 returned false
sqlite3_vtab_nochange for column 0 returned false
sqlite3_vtab_nochange for column 0 returned false
sqlite3_vtab_nochange for column 1 returned false
```

I think when we wrote this, we may have mistakenly thought we didn't have to set the cost as saying there was one row would be enough - clearly not! I have raised an issue to review our other table implementations, it's really useful we've caught that, thanks!

Hopefully we'll hear from one of the devs soon on the sqlite_vtab_nochange issue.