Skip to content

Commit 5304fe2

Browse files
committed
QL: Clean up structured logs module
Pushes it into an internal module and removes the abstract class.
1 parent dffb120 commit 5304fe2

File tree

1 file changed

+61
-60
lines changed

1 file changed

+61
-60
lines changed

ql/ql/src/codeql_ql/StructuredLogs.qll

Lines changed: 61 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ private import codeql_ql.ast.internal.TreeSitter
33

44
class Object extends JSON::Object {
55
JSON::Value getValue(string key) {
6-
exists(JSON::Pair p |
7-
p = this.getChild(_) and p.getKey().(JSON::String).getChild().getValue() = key
8-
|
6+
exists(JSON::Pair p | p = this.getChild(_) |
7+
key = p.getKey().(JSON::String).getChild().getValue() and
98
result = p.getValue()
109
)
1110
}
@@ -35,104 +34,106 @@ class Array extends JSON::Array {
3534
Array getArray(int i) { result = this.getChild(i) }
3635
}
3736

38-
abstract class LogEntry extends Object { }
37+
module EvaluatorLog {
38+
class Entry extends Object { }
3939

40-
class LogHeader extends LogEntry {
41-
LogHeader() { this.getType() = "LOG_HEADER" }
40+
class LogHeader extends Entry {
41+
LogHeader() { this.getType() = "LOG_HEADER" }
4242

43-
string getCodeQLVersion() { result = this.getString("codeqlVersion") }
43+
string getCodeQLVersion() { result = this.getString("codeqlVersion") }
4444

45-
string getLogVersion() { result = this.getString("logVersion") }
46-
}
45+
string getLogVersion() { result = this.getString("logVersion") }
46+
}
4747

48-
class QueryStarted extends LogEntry {
49-
QueryStarted() { this.getType() = "QUERY_STARTED" }
48+
class QueryStarted extends Entry {
49+
QueryStarted() { this.getType() = "QUERY_STARTED" }
5050

51-
string getQueryName() { result = this.getString("queryName") }
51+
string getQueryName() { result = this.getString("queryName") }
5252

53-
int getStage(int i) { result = this.getArray("stage").getNumber(i) }
54-
}
53+
int getStage(int i) { result = this.getArray("stage").getNumber(i) }
54+
}
5555

56-
class PredicateStarted extends LogEntry {
57-
PredicateStarted() { this.getType() = "PREDICATE_STARTED" }
56+
class PredicateStarted extends Entry {
57+
PredicateStarted() { this.getType() = "PREDICATE_STARTED" }
5858

59-
string getPredicateName() { result = this.getString("predicateName") }
59+
string getPredicateName() { result = this.getString("predicateName") }
6060

61-
string getPosition() { result = this.getString("position") }
61+
string getPosition() { result = this.getString("position") }
6262

63-
string getPredicateType() { result = this.getString("predicateType") }
63+
string getPredicateType() { result = this.getString("predicateType") }
6464

65-
int getQueryCausingWork() { result = this.getNumber("queryCausingWork") }
65+
int getQueryCausingWork() { result = this.getNumber("queryCausingWork") }
6666

67-
string getRAHash() { result = this.getString("raHash") }
67+
string getRAHash() { result = this.getString("raHash") }
6868

69-
Object getRA() { result = this.getValue("ra") }
69+
Object getRA() { result = this.getValue("ra") }
7070

71-
string getDependency(string key) { result = this.getObject("dependencies").getString(key) }
72-
}
71+
string getDependency(string key) { result = this.getObject("dependencies").getString(key) }
72+
}
7373

74-
class PipelineStarted extends LogEntry {
75-
PipelineStarted() { this.getType() = "PIPELINE_STARTED" }
74+
class PipelineStarted extends Entry {
75+
PipelineStarted() { this.getType() = "PIPELINE_STARTED" }
7676

77-
int getPredicateStartEvent() { result = this.getNumber("predicateStartEvent") }
77+
int getPredicateStartEvent() { result = this.getNumber("predicateStartEvent") }
7878

79-
string getRAReference() { result = this.getString("raReference") }
80-
}
79+
string getRAReference() { result = this.getString("raReference") }
80+
}
8181

82-
class PipelineCompleted extends LogEntry {
83-
PipelineCompleted() { this.getType() = "PIPELINE_COMPLETED" }
82+
class PipelineCompleted extends Entry {
83+
PipelineCompleted() { this.getType() = "PIPELINE_COMPLETED" }
8484

85-
int getStartEvent() { result = this.getNumber("startEvent") }
85+
int getStartEvent() { result = this.getNumber("startEvent") }
8686

87-
string getRAReference() { result = this.getString("raReference") }
87+
string getRAReference() { result = this.getString("raReference") }
8888

89-
int getCount(int i) { result = this.getArray("counts").getNumber(i) }
89+
int getCount(int i) { result = this.getArray("counts").getNumber(i) }
9090

91-
int getDuplicationPercentage(int i) {
92-
result = this.getArray("duplicationPercentages").getNumber(i)
93-
}
91+
int getDuplicationPercentage(int i) {
92+
result = this.getArray("duplicationPercentages").getNumber(i)
93+
}
9494

95-
int getResultSize() { result = this.getNumber("resultSize") }
96-
}
95+
int getResultSize() { result = this.getNumber("resultSize") }
96+
}
9797

98-
class PredicateCompleted extends LogEntry {
99-
PredicateCompleted() { this.getType() = "PREDICATE_COMPLETED" }
98+
class PredicateCompleted extends Entry {
99+
PredicateCompleted() { this.getType() = "PREDICATE_COMPLETED" }
100100

101-
int getStartEvent() { result = this.getNumber("startEvent") }
101+
int getStartEvent() { result = this.getNumber("startEvent") }
102102

103-
int getResultSize() { result = this.getNumber("resultSize") }
104-
}
103+
int getResultSize() { result = this.getNumber("resultSize") }
104+
}
105105

106-
class QueryCompleted extends LogEntry {
107-
QueryCompleted() { this.getType() = "QUERY_COMPLETED" }
106+
class QueryCompleted extends Entry {
107+
QueryCompleted() { this.getType() = "QUERY_COMPLETED" }
108108

109-
int getStartEvent() { result = this.getNumber("startEvent") }
109+
int getStartEvent() { result = this.getNumber("startEvent") }
110110

111-
string getTerminationType() { result = this.getString("terminationType") }
112-
}
111+
string getTerminationType() { result = this.getString("terminationType") }
112+
}
113113

114-
class LogFooter extends LogEntry {
115-
LogFooter() { this.getType() = "LOG_FOOTER" }
116-
}
114+
class LogFooter extends Entry {
115+
LogFooter() { this.getType() = "LOG_FOOTER" }
116+
}
117117

118-
class CacheLookup extends LogEntry {
119-
CacheLookup() { this.getType() = "CACHE_LOOKUP" }
118+
class CacheLookup extends Entry {
119+
CacheLookup() { this.getType() = "CACHE_LOOKUP" }
120120

121-
int getRelationSize() { result = this.getNumber("relationSize") }
122-
}
121+
int getRelationSize() { result = this.getNumber("relationSize") }
122+
}
123123

124-
class SentinelEmpty extends LogEntry {
125-
SentinelEmpty() { this.getType() = "SENTINEL_EMPTY" }
124+
class SentinelEmpty extends Entry {
125+
SentinelEmpty() { this.getType() = "SENTINEL_EMPTY" }
126+
}
126127
}
127128

128129
// Stuff to test whether we've covered all event types
129-
private File logFile() { result = any(LogHeader h).getLocation().getFile() }
130+
private File logFile() { result = any(EvaluatorLog::LogHeader h).getLocation().getFile() }
130131

131132
private Object missing() {
132133
result =
133134
any(Object o |
134135
o.getLocation().getFile() = logFile() and
135-
not o instanceof LogEntry and
136+
not o instanceof EvaluatorLog::Entry and
136137
not exists(o.getParent().getParent()) // don't count nested objects
137138
)
138139
}

0 commit comments

Comments
 (0)