This results in a ~1% increase in database size, which is worth it for reducing complexity and making the tiles and resources tables more similar in structure.
54 lines
1.6 KiB
Plaintext
54 lines
1.6 KiB
Plaintext
/* THIS IS A GENERATED FILE; EDIT offline_schema.sql INSTEAD */
|
|
static const char * schema =
|
|
"CREATE TABLE resources (\n"
|
|
" id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n"
|
|
" url TEXT NOT NULL,\n"
|
|
" kind INTEGER NOT NULL,\n"
|
|
" expires INTEGER,\n"
|
|
" modified INTEGER,\n"
|
|
" etag TEXT,\n"
|
|
" data BLOB,\n"
|
|
" compressed INTEGER NOT NULL DEFAULT 0,\n"
|
|
" accessed INTEGER NOT NULL,\n"
|
|
" UNIQUE (url)\n"
|
|
");\n"
|
|
"CREATE TABLE tiles (\n"
|
|
" id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n"
|
|
" url_template TEXT NOT NULL,\n"
|
|
" pixel_ratio INTEGER,\n"
|
|
" z INTEGER NOT NULL,\n"
|
|
" x INTEGER NOT NULL,\n"
|
|
" y INTEGER NOT NULL,\n"
|
|
" expires INTEGER,\n"
|
|
" modified INTEGER,\n"
|
|
" etag TEXT,\n"
|
|
" data BLOB,\n"
|
|
" compressed INTEGER NOT NULL DEFAULT 0,\n"
|
|
" accessed INTEGER NOT NULL,\n"
|
|
" UNIQUE (url_template, pixel_ratio, z, x, y)\n"
|
|
");\n"
|
|
"CREATE TABLE regions (\n"
|
|
" id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n"
|
|
" definition TEXT NOT NULL,\n"
|
|
" description BLOB\n"
|
|
");\n"
|
|
"CREATE TABLE region_resources (\n"
|
|
" region_id INTEGER NOT NULL REFERENCES regions(id),\n"
|
|
" resource_id INTEGER NOT NULL REFERENCES resources(id),\n"
|
|
" UNIQUE (region_id, resource_id)\n"
|
|
");\n"
|
|
"CREATE TABLE region_tiles (\n"
|
|
" region_id INTEGER NOT NULL REFERENCES regions(id),\n"
|
|
" tile_id INTEGER NOT NULL REFERENCES tiles(id),\n"
|
|
" UNIQUE (region_id, tile_id)\n"
|
|
");\n"
|
|
"CREATE INDEX resources_accessed\n"
|
|
"ON resources (accessed);\n"
|
|
"CREATE INDEX tiles_accessed\n"
|
|
"ON tiles (accessed);\n"
|
|
"CREATE INDEX region_resources_resource_id\n"
|
|
"ON region_resources (resource_id);\n"
|
|
"CREATE INDEX region_tiles_tile_id\n"
|
|
"ON region_tiles (tile_id);\n"
|
|
;
|