mirror of
https://github.com/f-droid/fdroidclient.git
synced 2026-02-05 12:42:34 -05:00
This is far less brittle at runtime, but slightly more work at dev time. The following things are undesirable but make it much easier to write: * Use of `CREATE_TABLE_APP.replaceFirst(...)` to create the temp tables. * Having to specify a list fo columns twice in `Schema` (`ALL_COLS` + `COLS`). The `replaceFirst` means we don't need to maintain two separate create table statements. It is a little messy because there is no compile time guarantee that we are creating a valid SQL statement at the end, just our knowledge that a create table statment tends to have the table name first and it probably wont cause problems. The `ALL_COLS` + `COLS` is required so that we don't have to type out a list of fields when copying data in `TempAppProvider`. Otherwise, whenever a new column is added, developers would need to know that it also needs to be added to this third place. Currently it is in the `Schema` and the `CREATE_TABLE_*` statements where one needs to add a new column. These are both intuitive and hopefully easily discoverable. Having to add it to the `TempAppProvider` is less intuitive and likely to result in bugs.