1 package net.jaekl.cfb.db;
3 // Copyright (C) 2015 Christian Jaekl
5 import static net.jaekl.cfb.db.Column.Null.*;
6 import static net.jaekl.cfb.db.Column.Type.*;
7 import net.jaekl.cfb.db.driver.DbDriver;
10 public class CfbSchema extends Schema {
11 // Define each table as follows:
14 // { column_name, type, width (-1 for default), null/not_null }
16 private static final Object[][][] TABLES = {
18 // Description of each possible bug
20 { "BUGID", INTEGER, -1, NOT_NULL },
21 { "TYPE", VARCHAR, 80, NOT_NULL }
24 // Description of each possible bug category
26 { "CATEGORYID", INTEGER, -1, NOT_NULL },
27 { "CATEGORY", VARCHAR, 80, NOT_NULL }
30 // One BugInstance, found during an analysis
32 { "FOUNDID", INTEGER, -1, NOT_NULL },
33 { "BUGID", INTEGER, -1, NOT_NULL },
34 { "CATEGORYID", INTEGER, -1, NOT_NULL },
35 { "FIRSTLOCID", INTEGER, -1, NOT_NULL },
36 { "SECONDLOCID", INTEGER, -1, NULL },
37 { "THIRDLOCID", INTEGER, -1, NULL }
40 // Location in the source code referenced by a BugInstance
42 { "LOCID", INTEGER, -1, NOT_NULL },
43 { "CLASSNAME", VARCHAR, 256, NOT_NULL },
44 { "STARTLINE", INTEGER, -1, NULL },
45 { "ENDLINE", INTEGER, -1, NULL }
48 // Runs of FindBugs, normally one per build version
50 { "RUNID", INTEGER, -1, NOT_NULL },
51 { "VERSION", VARCHAR, 32, NULL },
52 { "STARTTIME", TIMESTAMPTZ, -1, NOT_NULL },
53 { "ENDTIME", TIMESTAMPTZ, -1, NOT_NULL }
57 public CfbSchema(DbDriver driver) {