Comments (6)
The .metadata.json
file may be the place to do this. Right now the accompanying line_bits.metadata.json
for the above table looks like this:
{
"name": "line_bits",
"columns": [
"file_id",
"context_id",
"numbits"
],
"schema": "CREATE TABLE line_bits (\n -- If recording lines, a row per context per file executed.\n -- All of the line numbers for that file/context are in one numbits.\n file_id integer, -- foreign key to `file`.\n context_id integer, -- foreign key to `context`.\n numbits blob, -- see the numbits functions in coverage.numbits\n foreign key (file_id) references file (id),\n foreign key (context_id) references context (id),\n unique (file_id, context_id)\n)"
}
I could use this to say "the third column is binary, so treat it as such" somehow.
from sqlite-diffable.
Maybe columns
could store type information:
"columns": [
["file_id", "integer"],
["context_id", "integer"],
["numbits", "blob"]
]
from sqlite-diffable.
Here's how sqlite3 .coverage .dump
outputs this data:
INSERT INTO line_bits VALUES(1,1,X'0e');
INSERT INTO line_bits VALUES(2,1,X'5a');
INSERT INTO line_bits VALUES(3,1,X'36218410420821841042');
INSERT INTO line_bits VALUES(4,1,X'fefffd7be0021000577d6fdb7bef7d6fefbdf792e80000ca09e0fbdf0779dbbef39773d7d8eb06d959164117e602022040081000bc48c12440f77d3f010420000000000425000400000000003c174800001220e9c80800000000000040000000d44db5180077d7ddddb66dbaa9e0a7f35a82fb4e0000000000000002000000000024600004');
from sqlite-diffable.
I can accompany this with a parametrized test that covers all of the other SQLite types as well.
from sqlite-diffable.
Hello @simonw -- I love this project, thanks for making it happen. Is this issue essentially tracking the attempt to properly make a load
command, specially to handle dump-and-load of binary data stored in sqlite?
My main usage goal: enable more-efficient git
a) storage and b) diff-abiliity of sqlite databases. (Yes, git
-based.)
Additional questions:
- are there alternatives to
sqlite-diffable
other than https://stackoverflow.com/a/21789167/605356 ? - Is there anything I can do to help implement a
load
command?
Additional reference (for my sake):
https://news.ycombinator.com/item?id=25004913
fyi. The following is my environment's data after installing sqlite-diffable
today:
$ sqlite-diffable --version
sqlite-diffable, version 0.2.1
$
$ sqlite-diffable --help
Usage: sqlite-diffable [OPTIONS] COMMAND [ARGS]...
Tools for dumping/loading a SQLite database to diffable directory structure
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
dump
$
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.7
BuildVersion: 19H1713
$
$ date
Wed Feb 23 21:41:32 CST 2022
$
$ sqlite-diffable load
Usage: sqlite-diffable [OPTIONS] COMMAND [ARGS]...
Try 'sqlite-diffable --help' for help.
Error: No such command 'load'.
$
from sqlite-diffable.
Checking in - any update(s) on this topic/issue/discussion? ( @simonw )
from sqlite-diffable.
Related Issues (8)
- Handle tables with surprising names
- Option to dump table rows as individual files in a directory
- `sqlite-diffable load` command for restoring a dump HOT 1
- Documentation should show examples of output HOT 1
- `load` should handle case where database tables already exist HOT 3
- Command for outputting a dump as NL objects HOT 2
- Restoring dumps which contain AUTOINCREMENT columns
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sqlite-diffable.