gristlabs_grist-core/app/server
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
..
lib (core) return to using meaningful SQL types for columns 2021-03-25 10:26:39 -04:00
declarations.d.ts (core) remove metrics 2020-09-29 18:57:56 -04:00
devServerMain.ts (core) remove metrics 2020-09-29 18:57:56 -04:00
mergedServerMain.ts (core) add housekeeping endpoints for cleaning doc snapshots+state 2021-01-05 10:31:14 -05:00
serverMethods.js (core) make ValueFormatter.format honor its return type 2020-11-12 15:19:38 -05:00
tsconfig.json (core) move home server into core 2020-07-21 20:39:10 -04:00