]> err.no Git - mapper/blob - src/osm-sql-tables.h
Add SQL table and indexe definitions
[mapper] / src / osm-sql-tables.h
1 #ifndef _OSM_SQL_TABLES
2 #define _OSM_SQL_TABLES
3
4
5 /**
6  * SQL Table and index definitions
7  *
8  */
9
10 /*
11 PRAGMA page_size=4096;
12 PRAGMA encoding = "UTF-8"; 
13 */
14
15 #define OSM_TABLE_NODES "create table nodes IF NOT EXISTS ( \
16         nid     int primary key, \
17         ilat    int not null, \
18         ilon    int not null, \
19         rlat    real not null, \
20         rlon    real not null, \
21         l       int not null default 0, \
22         f       int not null default 0);"
23
24 #define OSM_TABLE_NODE_TAGS "create table node_tags IF NOT EXISTS ( \
25         nid     int not null, t text);"
26
27 #define OSM_TABLE_WAY "create table way IF NOT EXISTS ( \
28         wid             int primary key, \
29         type    int not null, \
30         nodes   int not null, \
31         flags   int not null, \
32         speed   int not null default 0, \
33         isin_c  int not null default 0, \
34         isin_p  int not null default 0, \
35         lat             real not null, \
36         lon             real not null);"
37
38 #define OSM_TABLE_WAY_TAGS "create table way_tags IF NOT EXISTS ( \
39         wid int not null, \
40         t text);"
41
42 #define OSM_TABLE_WAY_UPDATES "create table way_updates IF NOT EXISTS ( \
43         wid             int primary key, \
44         utime   int not null, \
45         notes   text);"
46
47 #define OSM_TABLE_WAY_N2N "create table way_n2n IF NOT EXISTS ( \
48         wid             int not null, \
49         f               int not null, \
50         t               int not null);"
51
52 #define OSM_TABLE_WAY_NAMES "create table way_names IF NOT EXISTS ( \
53         wid             int primary key, \
54         name    varchar(256), \
55         norm    varchar(256));"
56
57 #define OSM_TABLE_WAY_PC "create table way_pc IF NOT EXISTS ( \
58         wid             int primary key, \
59         pc              varchar(256));"
60
61 #define OSM_TABLE_WAY_NAMES_NLS "create table way_names_nls IF NOT EXISTS ( \
62         wid             int not null, \
63         lang    char(4) not null, \
64         name    varchar(256), \
65         norm    varchar(256));"
66
67 #define OSM_TABLE_ "create table way_ref IF NOT EXISTS ( \
68         rid             int primary key, \
69         ref             varchar(32), \
70         int_ref varchar(32));"
71
72 #define OSM_TABLE_PLACES "create table places IF NOT EXISTS ( \
73         nid             int primary key, \
74         type    int not null, \
75         name    text, \
76         isin_p  int not null, \
77         isin_c  int not null);"
78
79 #define OSM_TABLE_POI "create table poi IF NOT EXISTS ( \
80         poi_id  INTEGER PRIMARY KEY AUTOINCREMENT, \
81         lat             real not null, \
82         lon             real not null, \
83         elev    real default 0.0, \
84         label   text, \
85         desc    text, \
86         url             text, \
87         postal_code text, \
88         public  int default 1, \
89         source  int default 0, \
90         cat_id  int, \
91         osm_id  int default 0, \
92         isin_p  int default 0, \
93         isin_c  int default 0, \
94         priority int default 2, \
95         addtime int default 0);"
96
97 #define OSM_TABLE_POI_CATEGORY "create table category IF NOT EXISTS ( \
98         cat_id          INTEGER PRIMARY KEY AUTOINCREMENT, \
99         pcat_id         int not null default 0, \
100         priority        int not null default 2, \
101         label           text, \
102         desc            text, \
103         color           char(6) not null default '#AAAA40', \
104         icon            varchar(32), \
105         enabled         int not null default 1);"
106
107 /* Indexes */
108 #define OSM_INDEX_1 CREATE UNIQUE INDEX IF NOT EXISTS poi_lat_lon_idx on poi (lat, lon, cat_id);"
109 #define OSM_INDEX_2 CREATE INDEX IF NOT EXISTS poi_priority on poi (priority);"
110 #define OSM_INDEX_3 CREATE INDEX IF NOT EXISTS node_rlat_idx on nodes (rlat);"
111 #define OSM_INDEX_4 CREATE INDEX IF NOT EXISTS node_rlon_idx on nodes (rlon);"
112 #define OSM_INDEX_5 CREATE INDEX IF NOT EXISTS node_ilat_idx on nodes (ilat);"
113 #define OSM_INDEX_6 CREATE INDEX IF NOT EXISTS node_ilon_idx on nodes (ilon);"
114 #define OSM_INDEX_7 CREATE INDEX IF NOT EXISTS way_name_idx on way_names (name);"
115 #define OSM_INDEX_8 CREATE INDEX IF NOT EXISTS way_norm_name_idx on way_names (norm);"
116 #define OSM_INDEX_9 CREATE INDEX IF NOT EXISTS way_name_nls_id_idx on way_names_nls (wid);"
117 #define OSM_INDEX_10 CREATE INDEX IF NOT EXISTS way_name_nls_name_idx on way_names_nls (name);"
118 #define OSM_INDEX_11 CREATE INDEX IF NOT EXISTS way_norm_nls_name_idx on way_names_nls (norm);"
119 #define OSM_INDEX_12 CREATE INDEX IF NOT EXISTS way_ref_idx on way_ref (ref);"
120 #define OSM_INDEX_13 CREATE INDEX IF NOT EXISTS way_n2n_wid_idx on way_n2n (wid);"
121 #define OSM_INDEX_14 CREATE INDEX IF NOT EXISTS way_n2n_f_idx on way_n2n (f);"
122 #define OSM_INDEX_15 CREATE INDEX IF NOT EXISTS way_n2n_t_idx on way_n2n (t);"
123
124 #endif