(https://github.com/dimagi/commcare-export/pull/85) Improve performance when exporting multiple tables from the same datasource e.g. form + repeats
* Instead of fetching the same data for each table only fetch the data once and have each table process it directly
(https://github.com/dimagi/commcare-export/pull/97) Allow specifying alternate source field names
* Each source field is considered in order and the first one to appear in the data (even if it has an empty value) will be used.
* Additional columns may be created for specifying alternate field names. There are two options that may be used:
* Alternate fields listed as CSV
* Column title: "Alternate Source Fields"
* Column contents: A list of comma-separated field names to look for
* Alternate fields listed in individual columns
* One column added for each alternate field name
* Columns named "Alternate Source Field [N]" (N is a number)
(https://github.com/dimagi/commcare-export/pull/99) Allow specifying a checkpoint key via the command line to prevent having to re-start export after editing the query file
* This allows users to make changes to the query file without having to re-export existing data.
* This change also includes a new tool for interrogating the checkpoint data and for converting non-keyed checkpoints to keyed checkpoints. See `commcare-export-utils --help`.
(https://github.com/dimagi/commcare-export/pull/98) Don't reuse checkpoints when querying different sources
(https://github.com/dimagi/commcare-export/pull/105) Handle errors encountered when fetching data and retry with backoff
(https://github.com/dimagi/commcare-export/pull/101) Unwrap 'object' values from CommCare HQ if possible
(https://github.com/dimagi/commcare-export/pull/104) Prevent usage of `--since` and `--until` from affecting checkpoints
(https://github.com/dimagi/commcare-export/pull/92) Quote special characters in source field names
(https://github.com/dimagi/commcare-export/pull/91) Allow specifying the SQL table name in the query sheet in addition to the sheet name to get around the limitations on sheet name length