-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcreate_db.sql
More file actions
58 lines (55 loc) · 1.42 KB
/
create_db.sql
File metadata and controls
58 lines (55 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
CREATE TABLE IF NOT EXISTS `Variables` (
`TypeKind` INTEGER NOT NULL,
`TypeIdx` INTEGER NOT NULL,
`Name` INTEGER NOT NULL,
`SourceLocationIdx` INTEGER,
`StorageLocationIdx` INTEGER,
`Idx` INTEGER PRIMARY KEY AUTOINCREMENT,
FOREIGN KEY(`Name`) REFERENCES `Identifiers`(`Idx`)
);
CREATE TABLE IF NOT EXISTS `Types` (
`Kind` INTEGER NOT NULL,
`ElementIdx` INTEGER,
`Name` TEXT,
`Idx` INTEGER PRIMARY KEY AUTOINCREMENT
);
CREATE TABLE IF NOT EXISTS `Structs` (
`Name` INTEGER,
`Idx` INTEGER PRIMARY KEY AUTOINCREMENT
);
CREATE TABLE IF NOT EXISTS `Strings` (
`String` TEXT,
`Hash` INTEGER NOT NULL,
`Idx` INTEGER PRIMARY KEY AUTOINCREMENT
);
CREATE TABLE IF NOT EXISTS `Locations` (
`FullPath` TEXT,
`StartLine` INTEGER,
`StartCol` INTEGER,
`LineSpan` INTEGER,
`EndCol` INTEGER,
`Idx` INTEGER PRIMARY KEY AUTOINCREMENT
);
CREATE TABLE IF NOT EXISTS `Identifiers` (
`Name` TEXT,
`Hash` INTEGER NOT NULL,
`Idx` INTEGER PRIMARY KEY AUTOINCREMENT
);
CREATE TABLE IF NOT EXISTS `Files` (
`FileName` TEXT NOT NULL,
`FullPath` TEXT NOT NULL,
`FileHash` INTEGER NOT NULL,
`LexerHash` INTEGER NOT NULL,
`Content` TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS `Fields` (
`StructIdx` INTEGER NOT NULL,
`FieldIdx` INTEGER NOT NULL,
`Identifier` INTEGER,
`TypeIdx` INTEGER,
`Offset` INTEGER,
FOREIGN KEY(`Identifier`) REFERENCES `Identifiers`(`Idx`),
FOREIGN KEY(`TypeIdx`) REFERENCES `Types`(`Idx`),
PRIMARY KEY(`StructIdx`)
);
COMMIT;