/*
* This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'.
* WARNING: Any modifications to this file will be lost.
* Relations can be changed by modifying master.py or
* by adding rules to dbscheme.template
*/
/* This is a dummy line to alter the dbscheme, so we can make a database upgrade
* without actually changing any of the dbscheme predicates. It contains a date
* to allow for such updates in the future as well.
*
* 2020-07-02
*
* DO NOT remove this comment carelessly, since it can revert the dbscheme back to a
* previously seen state (matching a previously seen SHA), which would make the upgrade
* mechanism not work properly.
*/
/*
* External artifacts
*/
externalDefects(
unique int id : @externalDefect,
varchar(900) queryPath : string ref,
int location : @location ref,
varchar(900) message : string ref,
float severity : float ref
);
externalMetrics(
unique int id : @externalMetric,
varchar(900) queryPath : string ref,
int location : @location ref,
float value : float ref
);
externalData(
int id : @externalDataElement,
varchar(900) queryPath : string ref,
int column: int ref,
varchar(900) data : string ref
);
snapshotDate(unique date snapshotDate : date ref);
sourceLocationPrefix(varchar(900) prefix : string ref);
/*
* Duplicate code
*/
duplicateCode(
unique int id : @duplication,
varchar(900) relativePath : string ref,
int equivClass : int ref);
similarCode(
unique int id : @similarity,
varchar(900) relativePath : string ref,
int equivClass : int ref);
@duplication_or_similarity = @duplication | @similarity
tokens(
int id : @duplication_or_similarity ref,
int offset : int ref,
int beginLine : int ref,
int beginColumn : int ref,
int endLine : int ref,
int endColumn : int ref);
/*
* Line metrics
*/
py_codelines(int id : @py_scope ref,
int count : int ref);
py_commentlines(int id : @py_scope ref,
int count : int ref);
py_docstringlines(int id : @py_scope ref,
int count : int ref);
py_alllines(int id : @py_scope ref,
int count : int ref);
/*
* Version history
*/
svnentries(
int id : @svnentry,
varchar(500) revision : string ref,
varchar(500) author : string ref,
date revisionDate : date ref,
int changeSize : int ref
)
svnaffectedfiles(
int id : @svnentry ref,
int file : @file ref,
varchar(500) action : string ref
)
svnentrymsg(
int id : @svnentry ref,
varchar(500) message : string ref
)
svnchurn(
int commit : @svnentry ref,
int file : @file ref,
int addedLines : int ref,
int deletedLines : int ref
)
/****************************
Python dbscheme
****************************/
/* fromSource is ignored */
files(unique int id: @file,
varchar(900) name: string ref,
varchar(900) simple: string ref,
varchar(900) ext: string ref,
int fromSource: int ref);
folders(unique int id: @folder,
varchar(900) name: string ref,
varchar(900) simple: string ref);
@container = @folder | @file;
containerparent(int parent: @container ref,
unique int child: @container ref);
@sourceline = @file | @py_Module | @xmllocatable;
numlines(int element_id: @sourceline ref,
int num_lines: int ref,
int num_code: int ref,
int num_comment: int ref
);
@location = @location_ast | @location_default ;
locations_default(unique int id: @location_default,
int file: @file ref,
int beginLine: int ref,
int beginColumn: int ref,
int endLine: int ref,
int endColumn: int ref);
locations_ast(unique int id: @location_ast,
int module: @py_Module ref,
int beginLine: int ref,
int beginColumn: int ref,
int endLine: int ref,
int endColumn: int ref);
file_contents(unique int file: @file ref, string contents: string ref);
py_module_path(int module: @py_Module ref, int file: @container ref);
variable(unique int id : @py_variable,
int scope : @py_scope ref,
varchar(1) name : string ref);
py_line_lengths(unique int id : @py_line,
int file: @py_Module ref,
int line : int ref,
int length : int ref);
py_extracted_version(int module : @py_Module ref,
varchar(1) version : string ref);
/* AUTO GENERATED PART STARTS HERE */
/* AnnAssign.location = 0, location */
/* AnnAssign.value = 1, expr */
/* AnnAssign.annotation = 2, expr */
/* AnnAssign.target = 3, expr */
/* Assert.location = 0, location */
/* Assert.test = 1, expr */
/* Assert.msg = 2, expr */
/* Assign.location = 0, location */
/* Assign.value = 1, expr */
/* Assign.targets = 2, expr_list */
/* AssignExpr.location = 0, location */
/* AssignExpr.parenthesised = 1, bool */
/* AssignExpr.value = 2, expr */
/* AssignExpr.target = 3, expr */
/* Attribute.location = 0, location */
/* Attribute.parenthesised = 1, bool */
/* Attribute.value = 2, expr */
/* Attribute.attr = 3, str */
/* Attribute.ctx = 4, expr_context */
/* AugAssign.location = 0, location */
/* AugAssign.operation = 1, BinOp */
/* Await.location = 0, location */
/* Await.parenthesised = 1, bool */
/* Await.value = 2, expr */
/* BinaryExpr.location = 0, location */
/* BinaryExpr.parenthesised = 1, bool */
/* BinaryExpr.left = 2, expr */
/* BinaryExpr.op = 3, operator */
/* BinaryExpr.right = 4, expr */
/* BinaryExpr = AugAssign */
/* BoolExpr.location = 0, location */
/* BoolExpr.parenthesised = 1, bool */
/* BoolExpr.op = 2, boolop */
/* BoolExpr.values = 3, expr_list */
/* Break.location = 0, location */
/* Bytes.location = 0, location */
/* Bytes.parenthesised = 1, bool */
/* Bytes.s = 2, bytes */
/* Bytes.prefix = 3, bytes */
/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */
/* Call.location = 0, location */
/* Call.parenthesised = 1, bool */
/* Call.func = 2, expr */
/* Call.positional_args = 3, expr_list */
/* Call.named_args = 4, dict_item_list */
/* Class.name = 0, str */
/* Class.body = 1, stmt_list */
/* Class = ClassExpr */
/* ClassExpr.location = 0, location */
/* ClassExpr.parenthesised = 1, bool */
/* ClassExpr.name = 2, str */
/* ClassExpr.bases = 3, expr_list */
/* ClassExpr.keywords = 4, dict_item_list */
/* ClassExpr.inner_scope = 5, Class */
/* Compare.location = 0, location */
/* Compare.parenthesised = 1, bool */
/* Compare.left = 2, expr */
/* Compare.ops = 3, cmpop_list */
/* Compare.comparators = 4, expr_list */
/* Continue.location = 0, location */
/* Delete.location = 0, location */
/* Delete.targets = 1, expr_list */
/* Dict.location = 0, location */
/* Dict.parenthesised = 1, bool */
/* Dict.items = 2, dict_item_list */
/* DictComp.location = 0, location */
/* DictComp.parenthesised = 1, bool */
/* DictComp.function = 2, Function */
/* DictComp.iterable = 3, expr */
/* DictUnpacking.location = 0, location */
/* DictUnpacking.value = 1, expr */
/* Ellipsis.location = 0, location */
/* Ellipsis.parenthesised = 1, bool */
/* ExceptStmt.location = 0, location */
/* ExceptStmt.type = 1, expr */
/* ExceptStmt.name = 2, expr */
/* ExceptStmt.body = 3, stmt_list */
/* Exec.location = 0, location */
/* Exec.body = 1, expr */
/* Exec.globals = 2, expr */
/* Exec.locals = 3, expr */
/* ExprStmt.location = 0, location */
/* ExprStmt.value = 1, expr */
/* Filter.location = 0, location */
/* Filter.parenthesised = 1, bool */
/* Filter.value = 2, expr */
/* Filter.filter = 3, expr */
/* For.location = 0, location */
/* For.target = 1, expr */
/* For.iter = 2, expr */
/* For.body = 3, stmt_list */
/* For.orelse = 4, stmt_list */
/* For.is_async = 5, bool */
/* FormattedValue.location = 0, location */
/* FormattedValue.parenthesised = 1, bool */
/* FormattedValue.value = 2, expr */
/* FormattedValue.conversion = 3, str */
/* FormattedValue.format_spec = 4, JoinedStr */
/* Function.name = 0, str */
/* Function.args = 1, parameter_list */
/* Function.vararg = 2, expr */
/* Function.kwonlyargs = 3, expr_list */
/* Function.kwarg = 4, expr */
/* Function.body = 5, stmt_list */
/* Function.is_async = 6, bool */
/* Function = FunctionParent */
/* FunctionExpr.location = 0, location */
/* FunctionExpr.parenthesised = 1, bool */
/* FunctionExpr.name = 2, str */
/* FunctionExpr.args = 3, arguments */
/* FunctionExpr.returns = 4, expr */
/* FunctionExpr.inner_scope = 5, Function */
/* GeneratorExp.location = 0, location */
/* GeneratorExp.parenthesised = 1, bool */
/* GeneratorExp.function = 2, Function */
/* GeneratorExp.iterable = 3, expr */
/* Global.location = 0, location */
/* Global.names = 1, str_list */
/* If.location = 0, location */
/* If.test = 1, expr */
/* If.body = 2, stmt_list */
/* If.orelse = 3, stmt_list */
/* IfExp.location = 0, location */
/* IfExp.parenthesised = 1, bool */
/* IfExp.test = 2, expr */
/* IfExp.body = 3, expr */
/* IfExp.orelse = 4, expr */
/* Import.location = 0, location */
/* Import.names = 1, alias_list */
/* ImportExpr.location = 0, location */
/* ImportExpr.parenthesised = 1, bool */
/* ImportExpr.level = 2, int */
/* ImportExpr.name = 3, str */
/* ImportExpr.top = 4, bool */
/* ImportStar.location = 0, location */
/* ImportStar.module = 1, expr */
/* ImportMember.location = 0, location */
/* ImportMember.parenthesised = 1, bool */
/* ImportMember.module = 2, expr */
/* ImportMember.name = 3, str */
/* Fstring.location = 0, location */
/* Fstring.parenthesised = 1, bool */
/* Fstring.values = 2, expr_list */
/* Fstring = FormattedValue */
/* KeyValuePair.location = 0, location */
/* KeyValuePair.value = 1, expr */
/* KeyValuePair.key = 2, expr */
/* Lambda.location = 0, location */
/* Lambda.parenthesised = 1, bool */
/* Lambda.args = 2, arguments */
/* Lambda.inner_scope = 3, Function */
/* List.location = 0, location */
/* List.parenthesised = 1, bool */
/* List.elts = 2, expr_list */
/* List.ctx = 3, expr_context */
/* ListComp.location = 0, location */
/* ListComp.parenthesised = 1, bool */
/* ListComp.function = 2, Function */
/* ListComp.iterable = 3, expr */
/* ListComp.generators = 4, comprehension_list */
/* ListComp.elt = 5, expr */
/* Module.name = 0, str */
/* Module.hash = 1, str */
/* Module.body = 2, stmt_list */
/* Module.kind = 3, str */
/* Name.location = 0, location */
/* Name.parenthesised = 1, bool */
/* Name.variable = 2, variable */
/* Name.ctx = 3, expr_context */
/* Name = ParameterList */
/* Nonlocal.location = 0, location */
/* Nonlocal.names = 1, str_list */
/* Num.location = 0, location */
/* Num.parenthesised = 1, bool */
/* Num.n = 2, number */
/* Num.text = 3, number */
/* Pass.location = 0, location */
/* PlaceHolder.location = 0, location */
/* PlaceHolder.parenthesised = 1, bool */
/* PlaceHolder.variable = 2, variable */
/* PlaceHolder.ctx = 3, expr_context */
/* Print.location = 0, location */
/* Print.dest = 1, expr */
/* Print.values = 2, expr_list */
/* Print.nl = 3, bool */
/* Raise.location = 0, location */
/* Raise.exc = 1, expr */
/* Raise.cause = 2, expr */
/* Raise.type = 3, expr */
/* Raise.inst = 4, expr */
/* Raise.tback = 5, expr */
/* Repr.location = 0, location */
/* Repr.parenthesised = 1, bool */
/* Repr.value = 2, expr */
/* Return.location = 0, location */
/* Return.value = 1, expr */
/* Set.location = 0, location */
/* Set.parenthesised = 1, bool */
/* Set.elts = 2, expr_list */
/* SetComp.location = 0, location */
/* SetComp.parenthesised = 1, bool */
/* SetComp.function = 2, Function */
/* SetComp.iterable = 3, expr */
/* Slice.location = 0, location */
/* Slice.parenthesised = 1, bool */
/* Slice.start = 2, expr */
/* Slice.stop = 3, expr */
/* Slice.step = 4, expr */
/* SpecialOperation.location = 0, location */
/* SpecialOperation.parenthesised = 1, bool */
/* SpecialOperation.name = 2, str */
/* SpecialOperation.arguments = 3, expr_list */
/* Starred.location = 0, location */
/* Starred.parenthesised = 1, bool */
/* Starred.value = 2, expr */
/* Starred.ctx = 3, expr_context */
/* Str.location = 0, location */
/* Str.parenthesised = 1, bool */
/* Str.s = 2, str */
/* Str.prefix = 3, str */
/* Str.implicitly_concatenated_parts = 4, StringPart_list */
/* StringPart.text = 0, str */
/* StringPart.location = 1, location */
/* StringPart = StringPartList */
/* StringPartList = BytesOrStr */
/* Subscript.location = 0, location */
/* Subscript.parenthesised = 1, bool */
/* Subscript.value = 2, expr */
/* Subscript.index = 3, expr */
/* Subscript.ctx = 4, expr_context */
/* TemplateDottedNotation.location = 0, location */
/* TemplateDottedNotation.parenthesised = 1, bool */
/* TemplateDottedNotation.value = 2, expr */
/* TemplateDottedNotation.attr = 3, str */
/* TemplateDottedNotation.ctx = 4, expr_context */
/* TemplateWrite.location = 0, location */
/* TemplateWrite.value = 1, expr */
/* Try.location = 0, location */
/* Try.body = 1, stmt_list */
/* Try.orelse = 2, stmt_list */
/* Try.handlers = 3, stmt_list */
/* Try.finalbody = 4, stmt_list */
/* Tuple.location = 0, location */
/* Tuple.parenthesised = 1, bool */
/* Tuple.elts = 2, expr_list */
/* Tuple.ctx = 3, expr_context */
/* Tuple = ParameterList */
/* UnaryExpr.location = 0, location */
/* UnaryExpr.parenthesised = 1, bool */
/* UnaryExpr.op = 2, unaryop */
/* UnaryExpr.operand = 3, expr */
/* While.location = 0, location */
/*