gristlabs_grist-core/app
Paul Fitzpatrick d8df2404c2 (core) return to using meaningful SQL types for columns
Summary:
Previously in {{D1053}} we switched to using BLOB as the "type" for all columns, to prevent SQLite from casting data unexpectedly.  This diff now returns to more meaningful types.  We apply marshalling to values when being placed in a column where a cast might occur, to inhibit such casting.

The benefit is that Grist documents become easier to interact with via regular database clients/libraries, which often rely on the column type more than a purely SQLite tool would.

On column type conversion, we run all blobs in the column through a decode/encode cycle so if they no longer need to be marshalled they revert to native type.  This could be optimized further, it is somewhat brute force.

Test Plan: Updated tests and reference document

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2755
2021-03-25 10:26:39 -04:00
..
client (core) Fix searching in filter for coltype not a text-or-number (ie: Date) 2021-03-23 09:27:32 +01:00
common (core) add OWNERS='owners', EDITOR='editors', VIEWER='viewers' to condition formulas 2021-03-19 18:20:33 -04:00
gen-server (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
plugin (core) hide long sequences of unchanged rows in diffs 2020-11-19 18:19:54 -05:00
server (core) return to using meaningful SQL types for columns 2021-03-25 10:26:39 -04:00
tsconfig.json (core) move home server into core 2020-07-21 20:39:10 -04:00