gristlabs_grist-core/app/server/lib
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
..
ACLFormula.ts (core) add OWNERS='owners', EDITOR='editors', VIEWER='viewers' to condition formulas 2021-03-19 18:20:33 -04:00
ActionHistory.ts (core) add endpoints for clearing snapshots and actions 2020-12-18 13:32:31 -05:00
ActionHistoryImpl.ts (core) When parsing ActionHistory into ActionGroups, avoid keeping many large actions in memory. 2020-09-19 20:45:33 -04:00
ActionSummary.ts (core) tolerate table renames when displaying differences 2020-11-12 10:55:15 -05:00
ActiveDoc.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
ActiveDocImport.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
AppEndpoint.ts (core) back-end support for tables that are accessible only by owners 2020-09-14 18:05:27 -04:00
Authorizer.ts (core) add endpoints for clearing snapshots and actions 2020-12-18 13:32:31 -05:00
BrowserSession.ts (core) revamp user attribute handling 2020-12-11 15:15:35 -05:00
checksumFile.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
Client.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
Comm.js (core) revamp user attribute handling 2020-12-11 15:15:35 -05:00
dbUtils.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocApi.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
DocClients.ts (core) granular access control in the presence of schema changes 2021-03-01 13:49:31 -05:00
DocManager.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
DocPluginData.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocPluginManager.ts (core) make user role available in ActiveDoc methods 2020-09-02 14:46:15 -04:00
DocSession.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
DocSnapshots.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
DocStorage.ts (core) return to using meaningful SQL types for columns 2021-03-25 10:26:39 -04:00
DocStorageManager.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
docUtils.d.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
docUtils.js (core) move home server into core 2020-07-21 20:39:10 -04:00
DocWorker.ts (core) Add getAclResources method for making all tables/columns available when editing ACL rules 2021-01-14 13:43:55 -05:00
DocWorkerMap.ts (core) support GRIST_WORKER_GROUP to place worker into an exclusive group 2020-11-02 15:46:46 -05:00
ExpandedQuery.ts (core) Fix 'table not found' error when converting columns in the presence of per-row ACL rules. 2021-02-10 09:22:34 -05:00
expressWrap.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
ExternalStorage.ts (core) fix sync to s3 when doc is marked as dirty but proves to be clean 2020-11-10 08:12:31 -05:00
extractOrg.ts (core) add a deployment test for Import-from-URL, and fix underlying issue 2020-07-23 11:26:16 -04:00
FileParserElement.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
FlexServer.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
GranularAccess.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
GristServer.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
gristSessions.ts (core) support GRIST_WORKER_GROUP to place worker into an exclusive group 2020-11-02 15:46:46 -05:00
guessExt.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
HashUtil.ts (core) add more detail to /compare endpoint 2020-09-18 16:31:29 -04:00
HostedMetadataManager.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
HostedStorageManager.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
IBilling.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
IChecksumStore.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
ICreate.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
IDocStorageManager.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
idUtils.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
IElectionStore.ts (core) move some material to core that slipped through in a rebase 2020-07-23 11:29:05 -04:00
IInstanceManager.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ILoginSession.ts (core) move client code to core 2020-10-02 13:24:21 -04:00
INotifier.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ISandbox.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
IShell.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ITestingHooks-ti.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ITestingHooks.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
log.ts (core) give instructions on using Grist with docker 2020-10-28 13:59:13 -04:00
manifest.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
NSandbox.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
OnDemandActions.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
PermissionInfo.ts (core) granular access control in the presence of schema changes 2021-03-01 13:49:31 -05:00
Permit.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
places.ts (core) fix docker packaging after core shuffle 2020-07-22 14:45:42 -04:00
PluginEndpoint.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
PluginManager.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
requestUtils.ts (core) add endpoints for clearing snapshots and actions 2020-12-18 13:32:31 -05:00
RowAccess.ts (core) granular access control in the presence of schema changes 2021-03-01 13:49:31 -05:00
SafePythonComponent.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
sandboxUtil.js (core) move home server into core 2020-07-21 20:39:10 -04:00
sendAppPage.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ServerColumnGetters.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
serverUtils.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
Sessions.ts (core) revamp user attribute handling 2020-12-11 15:15:35 -05:00
Sharing.ts (core) granular access control in the presence of schema changes 2021-03-01 13:49:31 -05:00
shortDesc.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
shutdown.js (core) move home server into core 2020-07-21 20:39:10 -04:00
SQLiteDB.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
TagChecker.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TestingHooks.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
Throttle.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TimeQuery.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
UnsafeNodeComponent.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
uploads.ts (core) mitigate csrf by requiring custom header for unsafe methods 2020-10-08 14:19:25 -04:00
WorkCoordinator.ts (core) move home server into core 2020-07-21 20:39:10 -04:00