Updated Spanish translation
[anjuta-git-plugin.git] / plugins / symbol-db / tables.sql
blobef21a007f6ffa4b8663f367aa6cce9b903f3af19
2 PRAGMA page_size = 4096;
3 PRAGMA default_cache_size = 10000;
4 PRAGMA default_synchronous = OFF; 
5 PRAGMA default_temp_store = MEMORY;
8 CREATE TABLE workspace (workspace_id integer PRIMARY KEY AUTOINCREMENT,
9                         workspace_name varchar (50) not null unique,
10                         analize_time DATE
11                         );
13 CREATE TABLE project (project_id integer PRIMARY KEY AUTOINCREMENT,
14                       project_name varchar (50) not null unique,
15                       wrkspace_id integer REFERENCES workspace (workspace_id),
16                       analize_time DATE
17                       );
18                     
19 CREATE TABLE file_include (file_include_id integer PRIMARY KEY AUTOINCREMENT,
20                            type varchar (10) not null unique
21                            );
23 CREATE TABLE ext_include (prj_id integer REFERENCES project (project_id),
24                           file_incl_id integer REFERENCES file_include (file_include_id),
25                           PRIMARY KEY (prj_id, file_incl_id)
26                           );
27                           
28 CREATE TABLE file_ignore (file_ignore_id integer PRIMARY KEY AUTOINCREMENT,
29                           type varchar (10) unique                          
30                           );
32 CREATE TABLE ext_ignore (prj_id integer REFERENCES project (project_id),
33                          file_ign_id integer REFERENCES file_ignore (file_ignore_id),
34                          PRIMARY KEY (prj_id, file_ign_id)
35                          );
36                          
37 CREATE TABLE file (file_id integer PRIMARY KEY AUTOINCREMENT,
38                    file_path TEXT not null unique,
39                    prj_id integer REFERENCES project (projec_id),
40                    lang_id integer REFERENCES language (language_id),
41                    analize_time DATE
42                    );
43                    
44 CREATE TABLE language (language_id integer PRIMARY KEY AUTOINCREMENT,
45                        language_name varchar (50) not null unique);
47 CREATE TABLE symbol (symbol_id integer PRIMARY KEY AUTOINCREMENT,
48                      file_defined_id integer not null REFERENCES file (file_id),
49                      name varchar (256) not null,
50                      file_position integer,
51                      is_file_scope integer,
52                      signature varchar (256),
53                      scope_definition_id integer,
54                      scope_id integer,
55                      type_id integer REFERENCES sym_type (type_id),
56                      kind_id integer REFERENCES sym_kind (sym_kind_id),
57                      access_kind_id integer REFERENCES sym_access (sym_access_id),
58                      implementation_kind_id integer REFERENCES sym_implementation (sym_impl_id),
59                                          update_flag integer default 0
60                      );
61                      
62 CREATE TABLE sym_type (type_id integer PRIMARY KEY AUTOINCREMENT,
63                    type varchar (256) not null,
64                    type_name varchar (256) not null,
65                    unique (type, type_name)
66                    );
68 CREATE TABLE sym_kind (sym_kind_id integer PRIMARY KEY AUTOINCREMENT,
69                        kind_name varchar (50) not null unique
70                        );
72 CREATE TABLE sym_access (access_kind_id integer PRIMARY KEY AUTOINCREMENT,
73                          access_name varchar (50) not null unique
74                          );
76 CREATE TABLE sym_implementation (sym_impl_id integer PRIMARY KEY AUTOINCREMENT,
77                                  implementation_name varchar (50) not null unique
78                                  );
80 CREATE TABLE heritage (symbol_id_base integer REFERENCES symbol (symbol_id),
81                        symbol_id_derived integer REFERENCES symbol (symbol_id),
82                        PRIMARY KEY (symbol_id_base, symbol_id_derived)
83                        );
84                        
85 CREATE TABLE scope (scope_id integer PRIMARY KEY AUTOINCREMENT,
86                     scope varchar(256) not null,
87                     type_id integer REFERENCES sym_type (type_id),
88                                         unique (scope, type_id)
89                     );
90                     
91 CREATE TABLE __tmp_heritage_scope (tmp_heritage_scope_id integer PRIMARY KEY AUTOINCREMENT,
92                                                         symbol_referer_id integer not null,
93                                                         field_inherits varchar(256),
94                                                         field_struct varchar(256),
95                                                         field_typeref varchar(256),
96                                                         field_enum varchar(256),
97                                                         field_union varchar(256),
98                                                         field_class varchar(256),
99                                                         field_namespace varchar(256)
100                                                         );
102 CREATE TABLE __tmp_removed (tmp_removed_id integer PRIMARY KEY AUTOINCREMENT,
103                                                         symbol_removed_id integer not null
104                                                         );
106 CREATE INDEX symbol_idx_1 ON symbol (name);
108 CREATE UNIQUE INDEX symbol_idx_2 ON symbol (name, file_defined_id, file_position);
110 CREATE UNIQUE INDEX uniq_scope_idx ON scope (scope);
112 CREATE TRIGGER delete_file BEFORE DELETE ON file
113 FOR EACH ROW
114 BEGIN
115 DELETE FROM symbol WHERE file_defined_id = (SELECT file_id FROM file WHERE file_path = old.file_path);
116 END;
118 CREATE TRIGGER delete_symbol BEFORE DELETE ON symbol
119 FOR EACH ROW
120 BEGIN
121         DELETE FROM scope WHERE scope.scope_id=old.scope_definition_id;
122         DELETE FROM sym_type WHERE sym_type.type_id=old.type_id;
123         UPDATE symbol SET scope_id='-1' WHERE symbol.scope_id=old.scope_definition_id AND symbol.scope_id > 0;
124         INSERT INTO __tmp_removed (symbol_removed_id) VALUES (old.symbol_id);
125 END;