FlightGear next
CacheSchema.h
Go to the documentation of this file.
1#pragma once
2
3const int SCHEMA_VERSION = 27;
4
5#define SCHEMA_SQL \
6 "CREATE TABLE properties (key VARCHAR, value VARCHAR);" \
7 "CREATE TABLE stat_cache (path VARCHAR unique, stamp INT, sha VARCHAR);" \
8 \
9 "CREATE TABLE positioned (type INT, ident VARCHAR collate nocase," \
10 "name VARCHAR collate nocase, airport INT64, lon FLOAT, lat FLOAT," \
11 "elev_m FLOAT, octree_node INT, cart_x FLOAT, cart_y FLOAT, cart_z FLOAT);" \
12 \
13 "CREATE INDEX pos_octree ON positioned(octree_node);" \
14 "CREATE INDEX pos_ident ON positioned(ident collate nocase);" \
15 "CREATE INDEX pos_name ON positioned(name collate nocase);" \
16 "CREATE INDEX pos_apt_type ON positioned(airport, type);" \
17 \
18 "CREATE TABLE airport (scenery_path VARCHAR, has_metar BOOL);" \
19 "CREATE TABLE comm (freq_khz INT,range_nm INT);" \
20 "CREATE INDEX comm_freq ON comm(freq_khz);" \
21 \
22 "CREATE TABLE runway (heading FLOAT, length_ft FLOAT, width_m FLOAT," \
23 "surface INT, displaced_threshold FLOAT,stopway FLOAT,reciprocal INT64,ils INT64);" \
24 "CREATE TABLE navaid (freq INT,range_nm INT,multiuse FLOAT, runway INT64,colocated INT64);" \
25 "CREATE INDEX navaid_freq ON navaid(freq);" \
26 \
27 "CREATE TABLE octree (children INT);" \
28 \
29 "CREATE TABLE airway (ident VARCHAR collate nocase, network INT);" \
30 "CREATE INDEX airway_ident ON airway(ident);" \
31 \
32 "CREATE TABLE airway_edge (network INT,airway INT64,a INT64,b INT64);" \
33 "CREATE INDEX airway_edge_from ON airway_edge(a);" \
34 "CREATE INDEX airway_edge_to ON airway_edge(b);"
35
36// this part is run for every new connection, including read-only connections
37
38#define TEMPORARY_SCHEMA_SQL \
39 "CREATE TEMPORARY TABLE temp_positioned (type INT, ident VARCHAR collate nocase," \
40 "name VARCHAR collate nocase, airport INT64, lon FLOAT, lat FLOAT," \
41 "elev_m FLOAT, octree_node INT, cart_x FLOAT, cart_y FLOAT, cart_z FLOAT);" \
42 \
43 \
44 "CREATE TEMPORARY VIEW all_positioned AS " \
45 "SELECT rowid AS guid, type, ident, name, airport, lon, lat," \
46 "elev_m, octree_node, cart_x, cart_y, cart_z FROM positioned " \
47 "UNION ALL " \
48 "SELECT rowid AS guid, type, ident, name, airport, lon, lat," \
49 "elev_m, octree_node, cart_x, cart_y, cart_z FROM temp_positioned;"
const int SCHEMA_VERSION
Definition CacheSchema.h:3