It is recommended to use the CppDepend interactive UI capabilities
to make the most of CppDepend by mastering all aspects of your code.
Diagrams
Application Metrics
Note: Further Application Statistics are available.
|
Quality Gates summary
911can be stopped upon quality gate
failure. Online documentation.
be run on the baseline. Hence they
have blank trend and baseline status.
Name | Trend | Baseline Value | Value | Group | |||
---|---|---|---|---|---|---|---|
| N/A because no coverage data | Project Rules \ Quality Gates | |||||
| N/A because no coverage data | Project Rules \ Quality Gates | |||||
| N/A because no coverage data | Project Rules \ Quality Gates | |||||
| 0 issues | 0 issues | Project Rules \ Quality Gates | ||||
| 7 issues | 7 issues | Project Rules \ Quality Gates | ||||
| 0 issues | Project Rules \ Quality Gates | |||||
| 3 rules | 3 rules | Project Rules \ Quality Gates | ||||
| 9.79 % | 9.79 % | Project Rules \ Quality Gates | ||||
| 0 man-days | Project Rules \ Quality Gates | |||||
| 0 namespaces | 0 namespaces | Project Rules \ Quality Gates | ||||
| 0 man-days | Project Rules \ Quality Gates |
Rules summary
131143- Number of Rules or Queries with Error (syntax error, exception thrown, time-out): 0
- Number of Rules violated: 17
development-time, from within Visual
Studio. Online documentation.
run on the baseline. Hence they
have blank # Issues Fixed or Added.
Name | # Issues | Added | Fixed | Elements | Group | |||
---|---|---|---|---|---|---|---|---|
| 2 | 0 | 0 | files | Project Rules \ Code Smells | |||
| 31 | 0 | 0 | types | Project Rules \ Code Smells | |||
| 266 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 40 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 68 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 75 | 0 | 0 | methods | Project Rules \ Code Smells | |||
| 1 | 0 | 0 | field | Project Rules \ CWE Rules | |||
| 5 | 0 | 0 | fields | Project Rules \ CWE Rules | |||
| 1 | 0 | 0 | field | Project Rules \ Memory Management \ Leaks | |||
| 5 | 0 | 0 | fields | Project Rules \ Memory Management \ Null Pointer | |||
| 49 | 0 | 0 | fields | Project Rules \ Memory Management \ Null Pointer | |||
| 7 | 0 | 0 | fields | Project Rules \ Misc | |||
| 188 | 0 | 0 | fields | Project Rules \ Misc | |||
| 1 | 0 | 0 | field | Project Rules \ Misc | |||
| 1 | 0 | 0 | field | Project Rules \ Misc | |||
| 10 | 0 | 0 | types | Project Rules \ Naming Conventions | |||
| 2 | 0 | 0 | methods | Project Rules \ Naming Conventions |
Application Statistics
Stat | # Occurences | Avg | StdDev | Max |
---|---|---|---|---|
Properties on interfaces | interfaces | 0 | 0 | -1 properties on |
Methods on interfaces | interfaces | 0 | 0 | -1 methods on |
Arguments on methods on interfaces | methods | 0 | 0 | -1 arguments on |
Public properties on classes | 4 Classes | 57.25 | 97.44 | 226 public properties on <d>SQLite.<f>sqlite3·c.__Globals |
Public methods on classes | 4 classes | 503 | 822.29 | 1926 public methods on <d>SQLite.<f>sqlite3·c.__Globals |
Arguments on public methods on classes | 2,012 methods | 2.38 | 1.55 | 12 arguments on <d>SQLite.<f>sqlite3·c.__Globals.sqlite3GenerateConstraintChecks(Parse*,Table*,int*,int,int,int,int,u8,u8,int,int*,int*) |
IL instructions in non-abstract methods | 2,012 methods | 0.39 | 0.75 | 8 IL instructions in <d>SQLite.<f>sqlite3·c.__Globals.sqlite3GetToken(constunsignedchar*,int*) |
Cyclomatic complexity on non abstract Methods | 2,012 Methods | 0 | 0 | CC = 0 for <d>SQLite.<f>shell·c.__Globals.setBinaryMode(FILE*,int) |
Projects Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Projects | # lines of code | # lines of comment | % Comment | # Types | # Methods | Afferent Coupling | Efferent Coupling |
---|---|---|---|---|---|---|---|
SQLite v1.0.0.0 | 46290 | 81010 | 63.63708 | 230 | 2009 | 0 | 7 |
Types Metrics : Code Quality
If you wish to define thresholds on types' Code Metrics, consider writing some Rule.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Type Name | Type Rank | Fields |
---|---|---|
Expr | 11.81 | 15 |
Table | 10.83 | 22 |
sqlite3 | 8.81 | 79 |
Bitvec | 7.91 | 4 |
ExprList | 7.33 | 2 |
Bitvec+Anonymous | 7.26 | 3 |
ExprList+ExprList_item | 6.77 | 8 |
SorterRecord | 6.66 | 2 |
SorterRecord+Anonymous | 6.2 | 2 |
FuncDef | 4.81 | 8 |
FuncDef+Anonymous | 4.63 | 2 |
Index | 4.6 | 22 |
Schema | 4.11 | 11 |
sqlite3_io_methods | 3.96 | 19 |
WhereClause | 3.89 | 7 |
Mem | 3.85 | 11 |
AggInfo | 3.79 | 13 |
Expr+Anonymous | 3.63 | 2 |
Btree | 3.6 | 12 |
ExprList+ExprList_item+Anonymous+Anonymo us | 3.28 | 2 |
ExprList+ExprList_item+Anonymous | 3.22 | 2 |
sqlite3_module | 3.21 | 23 |
HashElem | 3.11 | 4 |
sqlite3_file | 2.94 | 1 |
Select | 2.88 | 17 |
WhereTerm | 2.82 | 13 |
VTable | 2.68 | 7 |
Hash | 2.65 | 4 |
Trigger | 2.65 | 10 |
sqlite3_mutex | 2.51 | 2 |
SrcList+SrcList_item | 2.49 | 17 |
PgHdr | 2.45 | 11 |
BtShared | 2.41 | 28 |
sqlite3_vtab | 2.39 | 3 |
IdList+IdList_item | 2.32 | 2 |
FuncDestructor | 2.31 | 3 |
SrcList | 2.29 | 3 |
Parse | 2.21 | 70 |
WhereInfo | 2.1 | 24 |
VdbeOp+p4union | 2.1 | 15 |
IdList | 2.09 | 2 |
Mem+MemValue | 1.98 | 6 |
CollSeq | 1.91 | 5 |
VdbeOp | 1.83 | 7 |
sqlite3_pcache_page | 1.72 | 2 |
KeyInfo | 1.72 | 7 |
sqlite3_vfs | 1.62 | 22 |
BtLock | 1.61 | 4 |
With+Cte | 1.53 | 4 |
Vdbe | 1.5 | 51 |
Hash+_ht | 1.47 | 2 |
WhereLoop | 1.47 | 15 |
Pager | 1.45 | 62 |
WhereLoop+Anonymous+Anonymous | 1.36 | 4 |
AggInfo+AggInfo_col | 1.35 | 6 |
AggInfo+AggInfo_func | 1.35 | 4 |
Column | 1.35 | 7 |
FKey | 1.35 | 10 |
RowSetEntry | 1.35 | 3 |
PgHdr1 | 1.3 | 9 |
MemPage | 1.2 | 26 |
winShmNode | 1.2 | 10 |
PCache | 1.18 | 13 |
With | 1.16 | 3 |
LookasideSlot | 1.15 | 1 |
sqlite3_module | 1.11 | 23 |
WhereTerm+Anonymous | 1.08 | 3 |
SortSubtask | 1.05 | 9 |
VdbeFrame | 1.05 | 17 |
Module | 1.04 | 5 |
WhereLevel+Anonymous+Anonymous+InLoop | 1.03 | 3 |
SubProgram | 0.98 | 6 |
WhereLoop+Anonymous | 0.97 | 2 |
sqlite3_vtab_cursor | 0.93 | 1 |
FileChunk | 0.91 | 2 |
TriggerStep | 0.9 | 10 |
PGroup | 0.9 | 6 |
PCache1 | 0.9 | 15 |
BtCursor | 0.89 | 20 |
YYMINORTYPE | 0.89 | 14 |
RowSet | 0.84 | 9 |
WhereOrInfo | 0.8 | 2 |
WhereAndInfo | 0.8 | 1 |
UnpackedRecord | 0.79 | 8 |
winShm | 0.77 | 5 |
WhereOrCost | 0.75 | 3 |
PmaReader | 0.74 | 11 |
SorterFile | 0.72 | 2 |
Savepoint | 0.71 | 4 |
sqlite3+sqlite3InitInfo | 0.71 | 5 |
VtabCtx | 0.71 | 4 |
BusyHandler | 0.71 | 3 |
sqlite3+Anonymous | 0.71 | 2 |
Lookaside | 0.71 | 9 |
Db | 0.71 | 5 |
VdbeCursor | 0.69 | 26 |
VdbeSorter | 0.67 | 18 |
sqlite3_io_methods | 0.67 | 19 |
sqlite3_vtab | 0.67 | 3 |
WalIterator+WalSegment | 0.67 | 5 |
FKey+sColMap | 0.66 | 2 |
IncrMerger | 0.66 | 7 |
Token | 0.62 | 2 |
AuxData | 0.61 | 5 |
Wal | 0.61 | 23 |
MergeEngine | 0.6 | 4 |
WhereLevel+Anonymous+Anonymous | 0.57 | 2 |
SorterList | 0.54 | 3 |
WhereLevel+Anonymous | 0.54 | 2 |
RowSetChunk | 0.52 | 2 |
SrcList+SrcList_item+Anonymous | 0.51 | 7 |
winShmNode+ShmRegion | 0.5 | 2 |
winFile | 0.5 | 16 |
VdbeCursor+Anonymous | 0.47 | 4 |
WhereMaskSet | 0.46 | 2 |
WhereLevel | 0.46 | 20 |
WalIndexHdr | 0.45 | 11 |
sqlite3_context | 0.42 | 10 |
yyStackEntry | 0.41 | 3 |
Stat4Sample | 0.41 | 2 |
ScratchFreeslot | 0.41 | 1 |
Walker+Anonymous | 0.41 | 8 |
SQLiteThread | 0.41 | 5 |
CellInfo | 0.38 | 5 |
Parse+yColCache | 0.36 | 6 |
TableLock | 0.36 | 4 |
TriggerPrg | 0.36 | 5 |
AutoincInfo | 0.36 | 4 |
sqlite3_backup | 0.35 | 12 |
PagerSavepoint | 0.35 | 6 |
SrcCount | 0.33 | 3 |
NameContext | 0.33 | 8 |
IdxCover | 0.33 | 2 |
StrAccum | 0.32 | 8 |
PgFreeslot | 0.32 | 1 |
PragmaName | 0.32 | 6 |
sqlite3_index_info+sqlite3_index_constra int_usage | 0.32 | 2 |
sqlite3_index_info+sqlite3_index_orderby | 0.32 | 2 |
sqlite3_index_info+sqlite3_index_constra int_usage | 0.32 | 2 |
sqlite3_index_info+sqlite3_index_constra int | 0.32 | 4 |
sqlite3_index_info+sqlite3_index_orderby | 0.32 | 2 |
sqlite3_index_info+sqlite3_index_constra int | 0.32 | 4 |
sqlite3_pcache_methods2 | 0.28 | 13 |
FilePoint | 0.28 | 2 |
sqlite3_mem_methods | 0.28 | 8 |
sqlite3_mutex_methods | 0.28 | 9 |
WhereOrSet | 0.25 | 2 |
TrigEvent | 0.25 | 2 |
LimitVal | 0.25 | 2 |
YYMINORTYPE+Anonymous | 0.25 | 2 |
ExprSpan | 0.25 | 3 |
Incrblob | 0.15 | 8 |
DistinctCtx | 0.15 | 4 |
SortCtx | 0.15 | 9 |
PragmaVtab | 0.15 | 5 |
PragmaVtabCursor | 0.15 | 4 |
TabResult | 0.15 | 7 |
WhereLoopBuilder | 0.15 | 5 |
yyParser | 0.15 | 3 |
WherePath | 0.15 | 7 |
WhereScan | 0.15 | 11 |
Anonymous | 0.15 | 2 |
Stat4Accum | 0.15 | 13 |
analysisInfo | 0.15 | 2 |
PmaWriter | 0.15 | 7 |
MemJournal | 0.15 | 10 |
compareInfo | 0.15 | 4 |
sqlite3_api_routines | 0.15 | 216 |
sqlite3AutoExtList | 0.15 | 2 |
SumCtx | 0.15 | 5 |
CountCtx | 0.15 | 1 |
ReusableSpace | 0.15 | 3 |
sqlite3_index_info | 0.15 | 13 |
sqlite3_pcache_methods | 0.15 | 11 |
sqlite3_snapshot | 0.15 | 1 |
ImportCtx | 0.15 | 9 |
fts5_api | 0.15 | 4 |
SavedModeInfo | 0.15 | 4 |
ShellState | 0.15 | 36 |
fts5_tokenizer | 0.15 | 3 |
fts5_api | 0.15 | 4 |
BtreePayload | 0.15 | 7 |
Fts5ExtensionApi | 0.15 | 20 |
sqlite3_rtree_geometry | 0.15 | 5 |
sqlite3_rtree_query_info | 0.15 | 16 |
Fts5PhraseIter | 0.15 | 2 |
fts5_tokenizer | 0.15 | 3 |
sqlite3_vtab_cursor | 0.15 | 1 |
sqlite3_mutex_methods | 0.15 | 9 |
sqlite3_pcache_page | 0.15 | 2 |
sqlite3_index_info | 0.15 | 13 |
sqlite3_file | 0.15 | 1 |
sqlite3_vfs | 0.15 | 22 |
sqlite3_mem_methods | 0.15 | 8 |
sqlite3_rtree_query_info | 0.15 | 16 |
Fts5PhraseIter | 0.15 | 2 |
Fts5ExtensionApi | 0.15 | 20 |
sqlite3_rtree_geometry | 0.15 | 5 |
sqlite3_pcache_methods2 | 0.15 | 13 |
sqlite3_pcache_methods | 0.15 | 11 |
sqlite3_snapshot | 0.15 | 1 |
winVfsAppData | 0.15 | 3 |
win_syscall | 0.15 | 3 |
EntropyGatherer | 0.15 | 4 |
sqlite3PrngType | 0.15 | 4 |
BenignMallocHooks | 0.15 | 2 |
Mem0Global | 0.15 | 6 |
et_info | 0.15 | 6 |
IntegrityCk | 0.15 | 12 |
CellArray | 0.15 | 4 |
ValueNewStat4Ctx | 0.15 | 4 |
WalWriter | 0.15 | 5 |
PCacheGlobal | 0.15 | 13 |
WalCkptInfo | 0.15 | 5 |
WalIterator | 0.15 | 3 |
Anonymous | 0.15 | 5 |
AuthContext | 0.15 | 2 |
DbFixer | 0.15 | 6 |
InitData | 0.15 | 4 |
SelectDest | 0.15 | 6 |
VdbeOpList | 0.15 | 4 |
FuncDefHash | 0.15 | 1 |
IndexSample | 0.15 | 5 |
PreUpdate | 0.15 | 13 |
sqlite3StatType | 0.15 | 2 |
DateTime | 0.15 | 15 |
ScanStatus | 0.15 | 6 |
Sqlite3Config | 0.15 | 40 |
Walker | 0.15 | 7 |
PrintfArguments | 0.15 | 3 |
Files Metrics
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Name | Full Path | # lines of code | # lines of comment | % Comment | CC | # Types | # Methods | Afferent Coupling | Efferent Coupling |
---|---|---|---|---|---|---|---|---|---|
sqlite3·h | C:\work2\SQLite\sqlite3.h | 0 | 4164 | 100 | 0 | 22 | 0 | 1 | 0 |
shell·c | C:\work2\SQLite\shell.c | 3072 | 962 | 23.8473 | 1319 | 3 | 84 | 0 | 3 |
sqlite3·c | C:\work2\SQLite\sqlite3.c | 43218 | 73246 | 62.89154 | 14116 | 205 | 1925 | 0 | 5 |
Project Rules | 911 |
Quality Gates | 911 |
|
Quality Gate Pass: Percentage Code Coverage |
Scalar Result: N/A %
Quality Gate Pass: Percentage Coverage on New Code |
Scalar Result: N/A %
Quality Gate Pass: Percentage Coverage on Refactored Code |
Scalar Result: N/A %
Quality Gate Pass: Blocker Issues |
No issue matched
Quality Gate Warn: Critical Issues |
7 issues matched
7 issues | Severity | Debt | Annual Interest | Full Name |
---|---|---|---|---|
Critical issue on: SQLite.sqlite3·c | Critical | 1d 2h | 2h 0min | Rule violated: Files too big - critical |
Critical issue on: SQLite.shell·c | Critical | 1d 2h | 2h 0min | Rule violated: Files too big - critical |
Critical issue on: <d>SQLite.<f >sqlite3·c.sqlite3_api_routines | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types with too many fields |
Critical issue on: <d>SQLite.<f >sqlite3·c.__Globals.sqlite3VdbeExec (Vdbe*) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: <d>SQLite.<f >sqlite3·c.__Globals.sqlite3Pragma (Parse*,Token*,Token*,Token*,int) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: <d>SQLite.<f>shell·c .__Globals.do_meta_command(char* ,ShellState*) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WhereCodeOneLoopStart(WhereInfo* ,int,Bitmask) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Statistics
Stat | Severity | Debt | Annual Interest |
---|---|---|---|
Sum: | - | 6d 6h | 1d 6h |
Average: | - | 7h 42min | 2h 0min |
Minimum: | - | 6h 0min | 2h 0min |
Maximum: | - | 1d 2h | 2h 0min |
Standard deviation: | - | 1h 58min | 0min 0s |
Variance: | - | 1 763d | 0min 0s |
Quality Gate Pass: New Blocker / Critical / Major Issues |
No issue matched
Quality Gate Fail: Critical Rules Violated |
3 rules matched
3 rules | issues | Full Name |
---|---|---|
Files too big - critical | 2 issues | Rule |
Avoid methods too big, too complex | 266 issues | Rule |
Avoid methods with too many parameters | 40 issues | Rule |
Statistics
Stat | issues |
---|---|
Sum: | 308 |
Average: | 102.67 |
Minimum: | 2 |
Maximum: | 266 |
Standard deviation: | 116.53 |
Variance: | 13 580 |
Quality Gate Pass: Percentage Debt |
Scalar Result: 9.79 %
Quality Gate Pass: New Debt since Baseline |
Scalar Result: 0 man-days
Quality Gate Pass: Debt Rating per Namespace |
No file matched
Quality Gate Pass: New Annual Interest since Baseline |
Scalar Result: 0 man-days
Project Rules | 131143 |
Code Smells | 233 |
Critical Rule Violated: Files too big - critical |
warnif count > 0 from f in Files where
f.NbLinesOfCode > 1000
orderby f.NbLinesOfCode descending
select new {
f,
f.NbLinesOfCode,
Debt = (f.NbLinesOfCode.Linear(200, 1, 2000, 10)).ToHours().ToDebt(),
// The annual interest varies linearly from interest for severity major for 300 loc
// to interest for severity critical for 2000 loc
AnnualInterest = f.NbLinesOfCode.Linear(
200, Severity.Medium.AnnualInterestThreshold().Value.TotalMinutes,
2000, Severity.Critical.AnnualInterestThreshold().Value.TotalMinutes).ToMinutes().ToAnnualInterest()
}
// Files where NbLinesOfCode > 1000 are extremely complex
// and should be split in a smaller group of files.
// See the definition of the NbLinesOfCode metric here
// http://www.cppdepend.com/Metrics.aspx#NbLinesOfCode
2 files matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
2 files | # lines of code (LOC) | Debt | Annual Interest | Full Name |
---|---|---|---|---|
SQLite.sqlite3·c | 43 218 | 1d 2h | 2h 0min | SQLite.sqlite3·c |
SQLite.shell·c | 3 072 | 1d 2h | 2h 0min | SQLite.shell·c |
Statistics
Stat | # lines of code (LOC) | Debt | Annual Interest |
---|---|---|---|
Sum: | 46 290 | 2d 4h | 4h 0min |
Average: | 23 145 | 1d 2h | 2h 0min |
Minimum: | 3 072 | 1d 2h | 2h 0min |
Maximum: | 43 218 | 1d 2h | 2h 0min |
Standard deviation: | 20 073 | 0min 0s | 0min 0s |
Variance: | 402 925 329 | 0min 0s | 0min 0s |
Rule Violated: Avoid types with too many fields |
• How to Fix Issues: To refactor such type and increase code quality and maintainability, certainly you'll have to group subsets of fields into smaller types and dispatch the logic implemented into the methods into these smaller types. More refactoring advices can be found in the default rule Types to Big, HowToFix section. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a type with 15 fields, to up to 10 hours for a type with 200 or more fields.
31 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
31 types | instanceFields | staticFields | methodsAssigningFields | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
sqlite3_api_routines | 216 fields | no field | no method | 1d 2h | 2h 0min | <d>SQLite.<f>sqlite3·c .sqlite3_api_routines |
sqlite3 | 79 fields | no field | 302 methods | 4h 6min | 42min | <d>SQLite.<f>sqlite3·c.sqlite3 |
Parse | 70 fields | no field | 283 methods | 3h 40min | 37min | <d>SQLite.<f>sqlite3·c.Parse |
Pager | 62 fields | no field | 232 methods | 3h 17min | 31min | <d>SQLite.<f>sqlite3·c.Pager |
Vdbe | 51 fields | no field | 173 methods | 2h 45min | 24min | <d>SQLite.<f>sqlite3·c.Vdbe |
Sqlite3Config | 40 fields | no field | 55 methods | 2h 12min | 17min | <d>SQLite.<f>sqlite3·c.Sqlite3Config |
ShellState | 36 fields | no field | 84 methods | 2h 1min | 15min | <d>SQLite.<f>shell·c.ShellState |
BtShared | 28 fields | no field | 125 methods | 1h 37min | 10min | <d>SQLite.<f>sqlite3·c.BtShared |
VdbeCursor | 26 fields | no field | 34 methods | 1h 32min | 9min | <d>SQLite.<f>sqlite3·c.VdbeCursor |
MemPage | 26 fields | no field | 169 methods | 1h 32min | 9min | <d>SQLite.<f>sqlite3·c.MemPage |
WhereInfo | 24 fields | no field | 57 methods | 1h 26min | 7min | <d>SQLite.<f>sqlite3·c.WhereInfo |
sqlite3_module | 23 fields | no field | no method | 1h 23min | 7min | <d>SQLite.<f>sqlite3·h.sqlite3_module |
sqlite3_module | 23 fields | no field | 21 methods | 1h 23min | 7min | <d>SQLite.<f>sqlite3·c.sqlite3_module |
Wal | 23 fields | no field | 63 methods | 1h 23min | 7min | <d>SQLite.<f>sqlite3·c.Wal |
sqlite3_vfs | 22 fields | no field | 2 methods | 1h 20min | 6min | <d>SQLite.<f>sqlite3·h.sqlite3_vfs |
sqlite3_vfs | 22 fields | no field | 17 methods | 1h 20min | 6min | <d>SQLite.<f>sqlite3·c.sqlite3_vfs |
Table | 22 fields | no field | 226 methods | 1h 20min | 6min | <d>SQLite.<f>sqlite3·c.Table |
Index | 22 fields | no field | 165 methods | 1h 20min | 6min | <d>SQLite.<f>sqlite3·c.Index |
Fts5ExtensionApi | 20 fields | no field | no method | 1h 14min | 5min | <d>SQLite.<f>sqlite3·h.Fts5ExtensionApi |
Fts5ExtensionApi | 20 fields | no field | no method | 1h 14min | 5min | <d>SQLite.<f>sqlite3·c.Fts5ExtensionApi |
BtCursor | 20 fields | no field | 87 methods | 1h 14min | 5min | <d>SQLite.<f>sqlite3·c.BtCursor |
WhereLevel | 20 fields | no field | 36 methods | 1h 14min | 5min | <d>SQLite.<f>sqlite3·c.WhereLevel |
sqlite3_io_methods | 19 fields | no field | 1 method | 1h 11min | 4min 33s | <d>SQLite.<f>sqlite3·h .sqlite3_io_methods |
sqlite3_io_methods | 19 fields | no field | 1 method | 1h 11min | 4min 33s | <d>SQLite.<f>sqlite3·c .sqlite3_io_methods |
VdbeSorter | 18 fields | no field | 37 methods | 1h 8min | 3min 54s | <d>SQLite.<f>sqlite3·c.VdbeSorter |
SrcList+SrcList_item | 17 fields | no field | 97 methods | 1h 5min | 3min 16s | <d>SQLite.<f>sqlite3·c .SrcList+SrcList_item |
Select | 17 fields | no field | 156 methods | 1h 5min | 3min 16s | <d>SQLite.<f>sqlite3·c.Select |
VdbeFrame | 17 fields | no field | 20 methods | 1h 5min | 3min 16s | <d>SQLite.<f>sqlite3·c.VdbeFrame |
sqlite3_rtree_query_info | 16 fields | no field | no method | 1h 2min | 2min 38s | <d>SQLite.<f>sqlite3·h .sqlite3_rtree_query_info |
sqlite3_rtree_query_info | 16 fields | no field | no method | 1h 2min | 2min 38s | <d>SQLite.<f>sqlite3·c .sqlite3_rtree_query_info |
winFile | 16 fields | no field | 55 methods | 1h 2min | 2min 38s | <d>SQLite.<f>sqlite3·c.winFile |
Critical Rule Violated: Avoid methods too big, too complex |
• How to Fix Issues: A large and complex method should be split in smaller methods, or even one or several classes can be created for that. During this process it is important to question the scope of each variable local to the method. This can be an indication if such local variable will become an instance field of the newly created class(es). Large switch…case structures might be refactored through the help of a set of types that implement a common interface, the interface polymorphism playing the role of the switch cases tests. Unit Tests can help: write tests for each method before extracting it to ensure you don't break functionality. The estimated Debt, which means the effort to fix such issue, varies from 40 minutes to 8 hours, linearly from a weighted complexity score.
266 methods matched
- The following list of methods is truncated and contains only the first 100 methods of the 266 methods matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
266 methods | # lines of code (LOC) | Cyclomatic Complexity (CC) | complexityScore | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|
sqlite3VdbeExec(Vdbe*) | 3 022 | 863 | 2 374 | 1d 0h | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeExec(Vdbe*) |
do_meta_command(char*,ShellState*) | 1 044 | 441 | 963 | 1d 0h | 40min | <d>SQLite.<f>shell·c.__Globals .do_meta_command(char*,ShellState*) |
yy_reduce(yyParser*,unsignedint) | 1 090 | 326 | 871 | 1d 0h | 40min | <d>SQLite.<f>sqlite3·c.__Globals .yy_reduce(yyParser*,unsignedint) |
sqlite3Pragma(Parse*,Token*,Token* ,Token*,int) | 809 | 245 | 649 | 1d 0h | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Pragma(Parse*,Token*,Token* ,Token*,int) |
sqlite3WhereCodeOneLoopStart(WhereInfo* ,int,Bitmask) | 593 | 156 | 452 | 1d 0h | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WhereCodeOneLoopStart(WhereInfo* ,int,Bitmask) |
sqlite3VXPrintf(StrAccum*,constchar* ,va_list) | 460 | 157 | 387 | 7h 44min | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VXPrintf(StrAccum*,constchar* ,va_list) |
sqlite3Select(Parse*,Select*,SelectDest* ) | 422 | 111 | 322 | 6h 27min | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Select(Parse*,Select* ,SelectDest*) |
sqlite3ExprCodeTarget(Parse*,Expr*,int) | 412 | 102 | 308 | 6h 10min | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ExprCodeTarget(Parse*,Expr*,int) |
sqlite3Update(Parse*,SrcList*,ExprList* ,Expr*,int) | 335 | 138 | 305 | 6h 7min | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Update(Parse*,SrcList*,ExprList* ,Expr*,int) |
balance_nonroot(MemPage*,int,u8*,int,int ) | 377 | 112 | 300 | 6h 1min | 40min | <d>SQLite.<f>sqlite3·c.__Globals .balance_nonroot(MemPage*,int,u8*,int ,int) |
sqlite3Insert(Parse*,SrcList*,Select* ,IdList*,int) | 318 | 120 | 279 | 5h 36min | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Insert(Parse*,SrcList*,Select* ,IdList*,int) |
shell_callback(void*,int,char**,char** ,int*) | 253 | 151 | 277 | 5h 33min | 40min | <d>SQLite.<f>shell·c.__Globals .shell_callback(void*,int,char**,char** ,int*) |
sqlite3CreateIndex(Parse*,Token*,Token* ,SrcList*,ExprList*,int,Token*,Expr*,int ,int,u8) | 299 | 122 | 271 | 5h 26min | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CreateIndex(Parse*,Token*,Token* ,SrcList*,ExprList*,int,Token*,Expr*,int ,int,u8) |
wmain(int,wchar_t**) | 248 | 96 | 220 | 4h 25min | 40min | <d>SQLite.<f>shell·c.__Globals.wmain(int ,wchar_t**) |
sqlite3GenerateConstraintChecks(Parse* ,Table*,int*,int,int,int,int,u8,u8,int ,int*,int*) | 241 | 97 | 217 | 4h 22min | 40min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3GenerateConstraintChecks(Parse* ,Table*,int*,int,int,int,int,u8,u8,int ,int*,int*) |
sqlite3WhereBegin(Parse*,SrcList*,Expr* ,ExprList*,ExprList*,u16,int) | 218 | 89 | 198 | 3h 59min | 39min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WhereBegin(Parse*,SrcList*,Expr* ,ExprList*,ExprList*,u16,int) |
sqlite3GetToken(constunsignedchar*,int*) | 205 | 91 | 193 | 3h 53min | 38min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3GetToken(constunsignedchar*,int* ) |
wherePathSatisfiesOrderBy(WhereInfo* ,ExprList*,WherePath*,u16,u16,WhereLoop* ,Bitmask*) | 192 | 89 | 185 | 3h 44min | 36min | <d>SQLite.<f>sqlite3·c.__Globals .wherePathSatisfiesOrderBy(WhereInfo* ,ExprList*,WherePath*,u16,u16,WhereLoop* ,Bitmask*) |
lookupName(Parse*,constchar*,constchar* ,constchar*,NameContext*,Expr*) | 179 | 86 | 175 | 3h 32min | 34min | <d>SQLite.<f>sqlite3·c.__Globals .lookupName(Parse*,constchar*,constchar* ,constchar*,NameContext*,Expr*) |
allocateBtreePage(BtShared*,MemPage** ,Pgno*,Pgno,u8) | 198 | 68 | 167 | 3h 22min | 32min | <d>SQLite.<f>sqlite3·c.__Globals .allocateBtreePage(BtShared*,MemPage** ,Pgno*,Pgno,u8) |
sqlite3DeleteFrom(Parse*,SrcList*,Expr*) | 209 | 63 | 167 | 3h 22min | 32min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3DeleteFrom(Parse*,SrcList*,Expr* ) |
multiSelect(Parse*,Select*,SelectDest*) | 245 | 44 | 166 | 3h 21min | 32min | <d>SQLite.<f>sqlite3·c.__Globals .multiSelect(Parse*,Select*,SelectDest*) |
xferOptimization(Parse*,Table*,Select* ,int,int) | 189 | 66 | 160 | 3h 14min | 31min | <d>SQLite.<f>sqlite3·c.__Globals .xferOptimization(Parse*,Table*,Select* ,int,int) |
selectExpander(Walker*,Select*) | 175 | 70 | 157 | 3h 11min | 30min | <d>SQLite.<f>sqlite3·c.__Globals .selectExpander(Walker*,Select*) |
flattenSubquery(Parse*,Select*,int,int ,int) | 186 | 64 | 157 | 3h 11min | 30min | <d>SQLite.<f>sqlite3·c.__Globals .flattenSubquery(Parse*,Select*,int,int ,int) |
exprAnalyze(SrcList*,WhereClause*,int) | 208 | 51 | 155 | 3h 8min | 29min | <d>SQLite.<f>sqlite3·c.__Globals .exprAnalyze(SrcList*,WhereClause*,int) |
wherePathSolver(WhereInfo*,LogEst) | 170 | 65 | 150 | 3h 2min | 28min | <d>SQLite.<f>sqlite3·c.__Globals .wherePathSolver(WhereInfo*,LogEst) |
selectInnerLoop(Parse*,Select*,ExprList* ,int,SortCtx*,DistinctCtx*,SelectDest* ,int,int) | 191 | 55 | 150 | 3h 2min | 28min | <d>SQLite.<f>sqlite3·c.__Globals .selectInnerLoop(Parse*,Select* ,ExprList*,int,SortCtx*,DistinctCtx* ,SelectDest*,int,int) |
whereLoopAddBtreeIndex(WhereLoopBuilder* ,structSrcList_item*,Index*,LogEst) | 176 | 50 | 138 | 2h 48min | 26min | <d>SQLite.<f>sqlite3·c.__Globals .whereLoopAddBtreeIndex (WhereLoopBuilder*,structSrcList_item* ,Index*,LogEst) |
sqlite3BtreeOpen(sqlite3_vfs*,constchar* ,sqlite3*,Btree**,int,int) | 158 | 57 | 136 | 2h 46min | 25min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BtreeOpen(sqlite3_vfs* ,constchar*,sqlite3*,Btree**,int,int) |
multiSelectOrderBy(Parse*,Select* ,SelectDest*) | 205 | 30 | 132 | 2h 41min | 24min | <d>SQLite.<f>sqlite3·c.__Globals .multiSelectOrderBy(Parse*,Select* ,SelectDest*) |
parseModifier(sqlite3_context* ,constchar*,int,DateTime*) | 143 | 57 | 128 | 2h 36min | 23min | <d>SQLite.<f>sqlite3·c.__Globals .parseModifier(sqlite3_context* ,constchar*,int,DateTime*) |
sqlite3ParseUri(constchar*,constchar* ,unsignedint*,sqlite3_vfs**,char** ,char**) | 121 | 64 | 124 | 2h 31min | 23min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ParseUri(constchar*,constchar* ,unsignedint*,sqlite3_vfs**,char** ,char**) |
resolveExprStep(Walker*,Expr*) | 149 | 48 | 122 | 2h 29min | 22min | <d>SQLite.<f>sqlite3·c.__Globals .resolveExprStep(Walker*,Expr*) |
sqlite3BtreeMovetoUnpacked(BtCursor* ,UnpackedRecord*,i64,int,int*) | 153 | 46 | 122 | 2h 29min | 22min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BtreeMovetoUnpacked(BtCursor* ,UnpackedRecord*,i64,int,int*) |
sqlite3FindInIndex(Parse*,Expr*,u32,int* ,int*) | 126 | 53 | 116 | 2h 22min | 21min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3FindInIndex(Parse*,Expr*,u32 ,int*,int*) |
sqlite3AtoF(constchar*,double*,int,u8) | 120 | 53 | 113 | 2h 18min | 20min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3AtoF(constchar*,double*,int,u8) |
whereLoopAddBtree(WhereLoopBuilder* ,Bitmask) | 131 | 47 | 112 | 2h 17min | 20min | <d>SQLite.<f>sqlite3·c.__Globals .whereLoopAddBtree(WhereLoopBuilder* ,Bitmask) |
exprAnalyzeOrTerm(SrcList*,WhereClause* ,int) | 146 | 39 | 112 | 2h 17min | 20min | <d>SQLite.<f>sqlite3·c.__Globals .exprAnalyzeOrTerm(SrcList*,WhereClause* ,int) |
sqlite3_backup_step(sqlite3_backup*,int) | 123 | 49 | 110 | 2h 15min | 19min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_backup_step(sqlite3_backup*,int ) |
sqlite3WalFrames(Wal*,int,PgHdr*,Pgno ,int,int) | 128 | 43 | 107 | 2h 11min | 19min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WalFrames(Wal*,int,PgHdr*,Pgno ,int,int) |
checkTreePage(IntegrityCk*,int,i64*,i64) | 144 | 34 | 106 | 2h 10min | 18min | <d>SQLite.<f>sqlite3·c.__Globals .checkTreePage(IntegrityCk*,int,i64*,i64 ) |
strftimeFunc(sqlite3_context*,int ,sqlite3_value**) | 129 | 41 | 105 | 2h 9min | 18min | <d>SQLite.<f>sqlite3·c.__Globals .strftimeFunc(sqlite3_context*,int ,sqlite3_value**) |
sqlite3PagerOpen(sqlite3_vfs*,Pager** ,constchar*,int,int,int,void(*)(DbPage*) ) | 148 | 31 | 105 | 2h 9min | 18min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3PagerOpen(sqlite3_vfs*,Pager** ,constchar*,int,int,int,void(*)(DbPage*) ) |
sqlite3_blob_open(sqlite3*,constchar* ,constchar*,constchar*,sqlite3_int64,int ,sqlite3_blob**) | 124 | 41 | 103 | 2h 6min | 18min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_blob_open(sqlite3*,constchar* ,constchar*,constchar*,sqlite3_int64,int ,sqlite3_blob**) |
patternCompare(constu8*,constu8* ,conststructcompareInfo*,u32) | 92 | 55 | 101 | 2h 4min | 17min | <d>SQLite.<f>sqlite3·c.__Globals .patternCompare(constu8*,constu8* ,conststructcompareInfo*,u32) |
sqlite3BeginTrigger(Parse*,Token*,Token* ,int,int,IdList*,SrcList*,Expr*,int,int) | 99 | 51 | 100 | 2h 3min | 17min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BeginTrigger(Parse*,Token* ,Token*,int,int,IdList*,SrcList*,Expr* ,int,int) |
constructAutomaticIndex(Parse* ,WhereClause*,structSrcList_item* ,Bitmask,WhereLevel*) | 139 | 31 | 100 | 2h 3min | 17min | <d>SQLite.<f>sqlite3·c.__Globals .constructAutomaticIndex(Parse* ,WhereClause*,structSrcList_item* ,Bitmask,WhereLevel*) |
sqlite3_complete(constchar*) | 97 | 51 | 99 | 2h 2min | 17min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_complete(constchar*) |
sqlite3ExprCodeIN(Parse*,Expr*,int,int) | 132 | 32 | 98 | 2h 0min | 17min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ExprCodeIN(Parse*,Expr*,int,int) |
vdbeCommit(sqlite3*,Vdbe*) | 112 | 40 | 96 | 1h 58min | 16min | <d>SQLite.<f>sqlite3·c.__Globals .vdbeCommit(sqlite3*,Vdbe*) |
sqlite3VdbeRecordCompareWithSkip(int ,constvoid*,UnpackedRecord*,int) | 127 | 32 | 95 | 1h 57min | 16min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeRecordCompareWithSkip(int ,constvoid*,UnpackedRecord*,int) |
sqlite3CodeSubselect(Parse*,Expr*,int ,int) | 125 | 32 | 94 | 1h 56min | 16min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CodeSubselect(Parse*,Expr*,int ,int) |
openDatabase(constchar*,sqlite3** ,unsignedint,constchar*) | 118 | 32 | 91 | 1h 52min | 15min | <d>SQLite.<f>sqlite3·c.__Globals .openDatabase(constchar*,sqlite3** ,unsignedint,constchar*) |
sqlite3VdbeHalt(Vdbe*) | 97 | 42 | 90 | 1h 51min | 15min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeHalt(Vdbe*) |
resolveSelectStep(Walker*,Select*) | 103 | 39 | 90 | 1h 51min | 15min | <d>SQLite.<f>sqlite3·c.__Globals .resolveSelectStep(Walker*,Select*) |
sqlite3BtreeInsert(BtCursor* ,constBtreePayload*,int,int) | 112 | 34 | 90 | 1h 51min | 15min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BtreeInsert(BtCursor* ,constBtreePayload*,int,int) |
sqlite3FkCheck(Parse*,Table*,int,int ,int*,int) | 90 | 42 | 87 | 1h 47min | 14min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3FkCheck(Parse*,Table*,int,int ,int*,int) |
sqlite3StartTable(Parse*,Token*,Token* ,int,int,int,int) | 101 | 37 | 87 | 1h 47min | 14min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3StartTable(Parse*,Token*,Token* ,int,int,int,int) |
sqlite3EndTable(Parse*,Token*,Token*,u8 ,Select*) | 123 | 26 | 87 | 1h 47min | 14min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3EndTable(Parse*,Token*,Token*,u8 ,Select*) |
codeEqualityTerm(Parse*,WhereTerm* ,WhereLevel*,int,int,int) | 109 | 30 | 84 | 1h 44min | 14min | <d>SQLite.<f>sqlite3·c.__Globals .codeEqualityTerm(Parse*,WhereTerm* ,WhereLevel*,int,int,int) |
analyzeOneTable(Parse*,Table*,Index*,int ,int,int) | 120 | 24 | 84 | 1h 44min | 14min | <d>SQLite.<f>sqlite3·c.__Globals .analyzeOneTable(Parse*,Table*,Index* ,int,int,int) |
walCheckpoint(Wal*,sqlite3*,int,int(*) (void*),void*,int,u8*) | 92 | 37 | 83 | 1h 43min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .walCheckpoint(Wal*,sqlite3*,int,int(*) (void*),void*,int,u8*) |
sqlite3RunVacuum(char**,sqlite3*,int) | 103 | 32 | 83 | 1h 43min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3RunVacuum(char**,sqlite3*,int) |
attachFunc(sqlite3_context*,int ,sqlite3_value**) | 105 | 31 | 83 | 1h 43min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .attachFunc(sqlite3_context*,int ,sqlite3_value**) |
sqlite3ExprIfFalse(Parse*,Expr*,int,int) | 117 | 25 | 83 | 1h 43min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ExprIfFalse(Parse*,Expr*,int,int ) |
keywordCode(constchar*,int,int*) | 146 | 9 | 82 | 1h 41min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .keywordCode(constchar*,int,int*) |
sqlite3WhereEnd(WhereInfo*) | 98 | 32 | 81 | 1h 40min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WhereEnd(WhereInfo*) |
sqlite3_test_control(int) | 106 | 28 | 81 | 1h 40min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_test_control(int) |
testcase_glob(constchar*,constchar*) | 70 | 45 | 80 | 1h 39min | 13min | <d>SQLite.<f>shell·c.__Globals .testcase_glob(constchar*,constchar*) |
sqlite3PagerSharedLock(Pager*) | 84 | 38 | 80 | 1h 39min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3PagerSharedLock(Pager*) |
sqlite3_config(int) | 98 | 31 | 80 | 1h 39min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_config(int) |
sqlite3InitOne(sqlite3*,int,char**) | 99 | 30 | 79 | 1h 38min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3InitOne(sqlite3*,int,char**) |
sqlite3ExprIfTrue(Parse*,Expr*,int,int) | 109 | 25 | 79 | 1h 38min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ExprIfTrue(Parse*,Expr*,int,int) |
fkActionTrigger(Parse*,Table*,FKey* ,ExprList*) | 104 | 26 | 78 | 1h 37min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .fkActionTrigger(Parse*,Table*,FKey* ,ExprList*) |
allocateIndexInfo(Parse*,WhereClause* ,Bitmask,structSrcList_item*,ExprList* ,u16*) | 91 | 32 | 77 | 1h 35min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .allocateIndexInfo(Parse*,WhereClause* ,Bitmask,structSrcList_item*,ExprList* ,u16*) |
walIndexRecover(Wal*) | 99 | 28 | 77 | 1h 35min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .walIndexRecover(Wal*) |
sqlite3_db_status(sqlite3*,int,int*,int* ,int) | 95 | 27 | 74 | 1h 32min | 11min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_db_status(sqlite3*,int,int* ,int*,int) |
winOpen(sqlite3_vfs*,constchar* ,sqlite3_file*,int,int*) | 104 | 22 | 74 | 1h 32min | 11min | <d>SQLite.<f>sqlite3·c.__Globals.winOpen (sqlite3_vfs*,constchar*,sqlite3_file* ,int,int*) |
sqlite3BtreeBeginTrans(Btree*,int) | 70 | 38 | 73 | 1h 31min | 11min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BtreeBeginTrans(Btree*,int) |
shell_exec(sqlite3*,constchar*,int(*) (void*,int,char**,char**,int*) ,ShellState*,char**) | 74 | 36 | 73 | 1h 31min | 11min | <d>SQLite.<f>shell·c.__Globals .shell_exec(sqlite3*,constchar*,int(*) (void*,int,char**,char**,int*) ,ShellState*,char**) |
pager_playback(Pager*,int) | 75 | 36 | 73 | 1h 31min | 11min | <d>SQLite.<f>sqlite3·c.__Globals .pager_playback(Pager*,int) |
sqlite3VdbeList(Vdbe*) | 104 | 21 | 73 | 1h 31min | 11min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeList(Vdbe*) |
process_input(ShellState*,FILE*) | 71 | 37 | 72 | 1h 29min | 11min | <d>SQLite.<f>shell·c.__Globals .process_input(ShellState*,FILE*) |
valueFromExpr(sqlite3*,Expr*,u8,u8 ,sqlite3_value**,structValueNewStat4Ctx* ) | 81 | 32 | 72 | 1h 29min | 11min | <d>SQLite.<f>sqlite3·c.__Globals .valueFromExpr(sqlite3*,Expr*,u8,u8 ,sqlite3_value**,structValueNewStat4Ctx* ) |
generateSortTail(Parse*,Select*,SortCtx* ,int,SelectDest*) | 102 | 20 | 71 | 1h 28min | 11min | <d>SQLite.<f>sqlite3·c.__Globals .generateSortTail(Parse*,Select* ,SortCtx*,int,SelectDest*) |
pager_playback_one_page(Pager*,i64* ,Bitvec*,int,int) | 83 | 29 | 70 | 1h 27min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .pager_playback_one_page(Pager*,i64* ,Bitvec*,int,int) |
sqlite3RunParser(Parse*,constchar* ,char**) | 88 | 25 | 69 | 1h 26min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3RunParser(Parse*,constchar* ,char**) |
yy_destructor(yyParser*,unsignedchar ,YYMINORTYPE*) | 59 | 39 | 68 | 1h 25min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .yy_destructor(yyParser*,unsignedchar ,YYMINORTYPE*) |
sqlite3_exec(sqlite3*,constchar*,int(*) (void*,int,char**,char**),void*,char**) | 76 | 30 | 68 | 1h 25min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_exec(sqlite3*,constchar*,int(*) (void*,int,char**,char**),void*,char**) |
lockBtree(BtShared*) | 78 | 29 | 68 | 1h 25min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .lockBtree(BtShared*) |
sqlite3LoadExtension(sqlite3*,constchar* ,constchar*,char**) | 80 | 28 | 68 | 1h 25min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3LoadExtension(sqlite3* ,constchar*,constchar*,char**) |
sqlite3Prepare(sqlite3*,constchar*,int ,int,Vdbe*,sqlite3_stmt**,constchar**) | 85 | 26 | 68 | 1h 25min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Prepare(sqlite3*,constchar*,int ,int,Vdbe*,sqlite3_stmt**,constchar**) |
sqlite3AlterRenameTable(Parse*,SrcList* ,Token*) | 75 | 30 | 67 | 1h 24min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3AlterRenameTable(Parse*,SrcList* ,Token*) |
walTryBeginRead(Wal*,int*,int,int) | 72 | 30 | 66 | 1h 22min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .walTryBeginRead(Wal*,int*,int,int) |
sqlite3BtreeDelete(BtCursor*,u8) | 87 | 23 | 66 | 1h 22min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BtreeDelete(BtCursor*,u8) |
sqlite3DropTable(Parse*,SrcList*,int,int ) | 65 | 33 | 65 | 1h 21min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3DropTable(Parse*,SrcList*,int ,int) |
sqlite3CreateForeignKey(Parse*,ExprList* ,Token*,ExprList*,int) | 77 | 26 | 64 | 1h 20min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CreateForeignKey(Parse* ,ExprList*,Token*,ExprList*,int) |
convertToWithoutRowidTable(Parse*,Table* ) | 76 | 26 | 64 | 1h 20min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .convertToWithoutRowidTable(Parse* ,Table*) |
analyzeAggregate(Walker*,Expr*) | 75 | 26 | 63 | 1h 19min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .analyzeAggregate(Walker*,Expr*) |
Critical Rule Violated: Avoid methods with too many parameters |
• How to Fix Issues: More properties/fields can be added to the declaring type to handle numerous states. An alternative is to provide a class or a structure dedicated to handle arguments passing. The estimated Debt, which means the effort to fix such issue, varies linearly from 1 hour for a method with 7 parameters, up to 6 hours for a methods with 40 or more parameters.
40 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
40 methods | # Parameters | Debt | Annual Interest | Full Name |
---|---|---|---|---|
sqlite3GenerateConstraintChecks(Parse* ,Table*,int*,int,int,int,int,u8,u8,int ,int*,int*) | 12 | 1h 45min | 19min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3GenerateConstraintChecks(Parse* ,Table*,int*,int,int,int,int,u8,u8,int ,int*,int*) |
sqlite3CreateIndex(Parse*,Token*,Token* ,SrcList*,ExprList*,int,Token*,Expr*,int ,int,u8) | 11 | 1h 36min | 16min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CreateIndex(Parse*,Token*,Token* ,SrcList*,ExprList*,int,Token*,Expr*,int ,int,u8) |
sqlite3GenerateRowDelete(Parse*,Table* ,Trigger*,int,int,int,i16,u8,u8,u8,int) | 11 | 1h 36min | 16min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3GenerateRowDelete(Parse*,Table* ,Trigger*,int,int,int,i16,u8,u8,u8,int) |
sqlite3SelectNew(Parse*,ExprList* ,SrcList*,Expr*,ExprList*,Expr* ,ExprList*,u32,Expr*,Expr*) | 10 | 1h 27min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3SelectNew(Parse*,ExprList* ,SrcList*,Expr*,ExprList*,Expr* ,ExprList*,u32,Expr*,Expr*) |
sqlite3BeginTrigger(Parse*,Token*,Token* ,int,int,IdList*,SrcList*,Expr*,int,int) | 10 | 1h 27min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BeginTrigger(Parse*,Token* ,Token*,int,int,IdList*,SrcList*,Expr* ,int,int) |
sqlite3WalCheckpoint(Wal*,sqlite3*,int ,int(*)(void*),void*,int,int,u8*,int* ,int*) | 10 | 1h 27min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WalCheckpoint(Wal*,sqlite3*,int ,int(*)(void*),void*,int,int,u8*,int* ,int*) |
sqlite3_create_function_v2(sqlite3* ,constchar*,int,int,void*,void(*) (sqlite3_context*,int,sqlite3_value**) ,void(*)(sqlite3_context*,int ,sqlite3_value**),void(*) (sqlite3_context*),void(*)(void*)) | 9 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_create_function_v2(sqlite3* ,constchar*,int,int,void*,void(*) (sqlite3_context*,int,sqlite3_value**) ,void(*)(sqlite3_context*,int ,sqlite3_value**),void(*) (sqlite3_context*),void(*)(void*)) |
sqlite3_table_column_metadata(sqlite3* ,constchar*,constchar*,constchar* ,constchar**,constchar**,int*,int*,int*) | 9 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_table_column_metadata(sqlite3* ,constchar*,constchar*,constchar* ,constchar**,constchar**,int*,int*,int*) |
sqlite3CompleteInsertion(Parse*,Table* ,int,int,int,int*,int,int,int) | 9 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CompleteInsertion(Parse*,Table* ,int,int,int,int*,int,int,int) |
sqlite3CodeRowTrigger(Parse*,Trigger* ,int,ExprList*,int,Table*,int,int,int) | 9 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CodeRowTrigger(Parse*,Trigger* ,int,ExprList*,int,Table*,int,int,int) |
sqlite3CreateFunc(sqlite3*,constchar* ,int,int,void*,void(*)(sqlite3_context* ,int,sqlite3_value**),void(*) (sqlite3_context*,int,sqlite3_value**) ,void(*)(sqlite3_context*) ,FuncDestructor*) | 9 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CreateFunc(sqlite3*,constchar* ,int,int,void*,void(*)(sqlite3_context* ,int,sqlite3_value**),void(*) (sqlite3_context*,int,sqlite3_value**) ,void(*)(sqlite3_context*) ,FuncDestructor*) |
fkLookupParent(Parse*,int,Table*,Index* ,FKey*,int*,int,int,int) | 9 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .fkLookupParent(Parse*,int,Table*,Index* ,FKey*,int*,int,int,int) |
selectInnerLoop(Parse*,Select*,ExprList* ,int,SortCtx*,DistinctCtx*,SelectDest* ,int,int) | 9 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .selectInnerLoop(Parse*,Select* ,ExprList*,int,SortCtx*,DistinctCtx* ,SelectDest*,int,int) |
sqlite3_create_function(sqlite3* ,constchar*,int,int,void*,void(*) (sqlite3_context*,int,sqlite3_value**) ,void(*)(sqlite3_context*,int ,sqlite3_value**),void(*) (sqlite3_context*)) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_create_function(sqlite3* ,constchar*,int,int,void*,void(*) (sqlite3_context*,int,sqlite3_value**) ,void(*)(sqlite3_context*,int ,sqlite3_value**),void(*) (sqlite3_context*)) |
sqlite3_create_function16(sqlite3* ,constvoid*,int,int,void*,void(*) (sqlite3_context*,int,sqlite3_value**) ,void(*)(sqlite3_context*,int ,sqlite3_value**),void(*) (sqlite3_context*)) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_create_function16(sqlite3* ,constvoid*,int,int,void*,void(*) (sqlite3_context*,int,sqlite3_value**) ,void(*)(sqlite3_context*,int ,sqlite3_value**),void(*) (sqlite3_context*)) |
sqlite3CreateView(Parse*,Token*,Token* ,Token*,ExprList*,Select*,int,int) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CreateView(Parse*,Token*,Token* ,Token*,ExprList*,Select*,int,int) |
sqlite3SrcListAppendFromTerm(Parse* ,SrcList*,Token*,Token*,Token*,Select* ,Expr*,IdList*) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3SrcListAppendFromTerm(Parse* ,SrcList*,Token*,Token*,Token*,Select* ,Expr*,IdList*) |
sqlite3GenerateIndexKey(Parse*,Index* ,int,int,int,int*,Index*,int) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3GenerateIndexKey(Parse*,Index* ,int,int,int,int*,Index*,int) |
sqlite3OpenTableAndIndices(Parse*,Table* ,int,u8,int,u8*,int*,int*) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3OpenTableAndIndices(Parse* ,Table*,int,u8,int,u8*,int*,int*) |
codeCompare(Parse*,Expr*,Expr*,int,int ,int,int,int) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .codeCompare(Parse*,Expr*,Expr*,int,int ,int,int,int) |
fkScanChildren(Parse*,SrcList*,Table* ,Index*,FKey*,int*,int,int) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .fkScanChildren(Parse*,SrcList*,Table* ,Index*,FKey*,int*,int,int) |
addWhereTerm(Parse*,SrcList*,int,int,int ,int,int,Expr**) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .addWhereTerm(Parse*,SrcList*,int,int ,int,int,int,Expr**) |
generateOutputSubroutine(Parse*,Select* ,SelectDest*,SelectDest*,int,int ,KeyInfo*,int) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .generateOutputSubroutine(Parse*,Select* ,SelectDest*,SelectDest*,int,int ,KeyInfo*,int) |
updateVirtualTable(Parse*,SrcList* ,Table*,ExprList*,Expr*,int*,Expr*,int) | 8 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .updateVirtualTable(Parse*,SrcList* ,Table*,ExprList*,Expr*,int*,Expr*,int) |
sqlite3_blob_open(sqlite3*,constchar* ,constchar*,constchar*,sqlite3_int64,int ,sqlite3_blob**) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_blob_open(sqlite3*,constchar* ,constchar*,constchar*,sqlite3_int64,int ,sqlite3_blob**) |
sqlite3VdbeAddOp4(Vdbe*,int,int,int,int ,constchar*,int) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeAddOp4(Vdbe*,int,int,int,int ,constchar*,int) |
sqlite3VdbeAddOp4Dup8(Vdbe*,int,int,int ,int,constu8*,int) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeAddOp4Dup8(Vdbe*,int,int,int ,int,constu8*,int) |
sqlite3PagerOpen(sqlite3_vfs*,Pager** ,constchar*,int,int,int,void(*)(DbPage*) ) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3PagerOpen(sqlite3_vfs*,Pager** ,constchar*,int,int,int,void(*)(DbPage*) ) |
sqlite3StartTable(Parse*,Token*,Token* ,int,int,int,int) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3StartTable(Parse*,Token*,Token* ,int,int,int,int) |
sqlite3WhereBegin(Parse*,SrcList*,Expr* ,ExprList*,ExprList*,u16,int) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WhereBegin(Parse*,SrcList*,Expr* ,ExprList*,ExprList*,u16,int) |
sqlite3TriggerColmask(Parse*,Trigger* ,ExprList*,int,int,Table*,int) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3TriggerColmask(Parse*,Trigger* ,ExprList*,int,int,Table*,int) |
walCheckpoint(Wal*,sqlite3*,int,int(*) (void*),void*,int,u8*) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .walCheckpoint(Wal*,sqlite3*,int,int(*) (void*),void*,int,u8*) |
insertCell(MemPage*,int,u8*,int,u8*,Pgno ,int*) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .insertCell(MemPage*,int,u8*,int,u8* ,Pgno,int*) |
pageInsertArray(MemPage*,u8*,u8**,u8* ,int,int,CellArray*) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .pageInsertArray(MemPage*,u8*,u8**,u8* ,int,int,CellArray*) |
codeAttach(Parse*,int,constFuncDef* ,Expr*,Expr*,Expr*,Expr*) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .codeAttach(Parse*,int,constFuncDef* ,Expr*,Expr*,Expr*,Expr*) |
sqlite3Prepare(sqlite3*,constchar*,int ,int,Vdbe*,sqlite3_stmt**,constchar**) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Prepare(sqlite3*,constchar*,int ,int,Vdbe*,sqlite3_stmt**,constchar**) |
sqlite3LockAndPrepare(sqlite3* ,constchar*,int,int,Vdbe*,sqlite3_stmt** ,constchar**) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3LockAndPrepare(sqlite3* ,constchar*,int,int,Vdbe*,sqlite3_stmt** ,constchar**) |
pushOntoSorter(Parse*,SortCtx*,Select* ,int,int,int,int) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .pushOntoSorter(Parse*,SortCtx*,Select* ,int,int,int,int) |
whereLoopAddVirtualOne(WhereLoopBuilder* ,Bitmask,Bitmask,u16,sqlite3_index_info* ,u16,int*) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .whereLoopAddVirtualOne (WhereLoopBuilder*,Bitmask,Bitmask,u16 ,sqlite3_index_info*,u16,int*) |
wherePathSatisfiesOrderBy(WhereInfo* ,ExprList*,WherePath*,u16,u16,WhereLoop* ,Bitmask*) | 7 | 1h 0min | 2min 0s | <d>SQLite.<f>sqlite3·c.__Globals .wherePathSatisfiesOrderBy(WhereInfo* ,ExprList*,WherePath*,u16,u16,WhereLoop* ,Bitmask*) |
Rule Violated: Avoid methods with too many local variables |
• How to Fix Issues: To refactor such method and increase code quality and maintainability, certainly you'll have to split the method into several smaller methods or even create one or several classes to implement the logic. During this process it is important to question the scope of each variable local to the method. This can be an indication if such local variable will become an instance field of the newly created class(es). The estimated Debt, which means the effort to fix such issue, varies linearly from 10 minutes for a method with 15 variables, up to 2 hours for a methods with 80 or more variables.
68 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
68 methods | # Variables | Debt | Annual Interest | Full Name |
---|---|---|---|---|
sqlite3VdbeExec(Vdbe*) | 299 | 6h 0min | 2h 0min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeExec(Vdbe*) |
sqlite3Pragma(Parse*,Token*,Token* ,Token*,int) | 140 | 6h 0min | 2h 0min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Pragma(Parse*,Token*,Token* ,Token*,int) |
do_meta_command(char*,ShellState*) | 114 | 6h 0min | 2h 0min | <d>SQLite.<f>shell·c.__Globals .do_meta_command(char*,ShellState*) |
sqlite3WhereCodeOneLoopStart(WhereInfo* ,int,Bitmask) | 101 | 6h 0min | 2h 0min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WhereCodeOneLoopStart(WhereInfo* ,int,Bitmask) |
sqlite3Select(Parse*,Select*,SelectDest* ) | 67 | 5h 0min | 1h 36min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Select(Parse*,Select* ,SelectDest*) |
balance_nonroot(MemPage*,int,u8*,int,int ) | 66 | 4h 55min | 1h 34min | <d>SQLite.<f>sqlite3·c.__Globals .balance_nonroot(MemPage*,int,u8*,int ,int) |
exprAnalyze(SrcList*,WhereClause*,int) | 56 | 4h 9min | 1h 16min | <d>SQLite.<f>sqlite3·c.__Globals .exprAnalyze(SrcList*,WhereClause*,int) |
sqlite3VXPrintf(StrAccum*,constchar* ,va_list) | 55 | 4h 4min | 1h 14min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VXPrintf(StrAccum*,constchar* ,va_list) |
sqlite3Update(Parse*,SrcList*,ExprList* ,Expr*,int) | 53 | 3h 55min | 1h 10min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Update(Parse*,SrcList*,ExprList* ,Expr*,int) |
sqlite3Insert(Parse*,SrcList*,Select* ,IdList*,int) | 49 | 3h 36min | 1h 3min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Insert(Parse*,SrcList*,Select* ,IdList*,int) |
sqlite3ExprCodeTarget(Parse*,Expr*,int) | 46 | 3h 23min | 58min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ExprCodeTarget(Parse*,Expr*,int) |
multiSelectOrderBy(Parse*,Select* ,SelectDest*) | 42 | 3h 4min | 51min | <d>SQLite.<f>sqlite3·c.__Globals .multiSelectOrderBy(Parse*,Select* ,SelectDest*) |
yy_reduce(yyParser*,unsignedint) | 41 | 3h 0min | 49min | <d>SQLite.<f>sqlite3·c.__Globals .yy_reduce(yyParser*,unsignedint) |
sqlite3CreateIndex(Parse*,Token*,Token* ,SrcList*,ExprList*,int,Token*,Expr*,int ,int,u8) | 38 | 2h 46min | 43min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CreateIndex(Parse*,Token*,Token* ,SrcList*,ExprList*,int,Token*,Expr*,int ,int,u8) |
multiSelect(Parse*,Select*,SelectDest*) | 38 | 2h 46min | 43min | <d>SQLite.<f>sqlite3·c.__Globals .multiSelect(Parse*,Select*,SelectDest*) |
wherePathSolver(WhereInfo*,LogEst) | 36 | 2h 36min | 40min | <d>SQLite.<f>sqlite3·c.__Globals .wherePathSolver(WhereInfo*,LogEst) |
sqlite3DeleteFrom(Parse*,SrcList*,Expr*) | 35 | 2h 32min | 38min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3DeleteFrom(Parse*,SrcList*,Expr* ) |
sqlite3GenerateConstraintChecks(Parse* ,Table*,int*,int,int,int,int,u8,u8,int ,int*,int*) | 34 | 2h 27min | 36min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3GenerateConstraintChecks(Parse* ,Table*,int*,int,int,int,int,u8,u8,int ,int*,int*) |
exprAnalyzeOrTerm(SrcList*,WhereClause* ,int) | 33 | 2h 23min | 34min | <d>SQLite.<f>sqlite3·c.__Globals .exprAnalyzeOrTerm(SrcList*,WhereClause* ,int) |
wherePathSatisfiesOrderBy(WhereInfo* ,ExprList*,WherePath*,u16,u16,WhereLoop* ,Bitmask*) | 33 | 2h 23min | 34min | <d>SQLite.<f>sqlite3·c.__Globals .wherePathSatisfiesOrderBy(WhereInfo* ,ExprList*,WherePath*,u16,u16,WhereLoop* ,Bitmask*) |
sqlite3WhereBegin(Parse*,SrcList*,Expr* ,ExprList*,ExprList*,u16,int) | 32 | 2h 18min | 32min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WhereBegin(Parse*,SrcList*,Expr* ,ExprList*,ExprList*,u16,int) |
checkTreePage(IntegrityCk*,int,i64*,i64) | 32 | 2h 18min | 32min | <d>SQLite.<f>sqlite3·c.__Globals .checkTreePage(IntegrityCk*,int,i64*,i64 ) |
selectExpander(Walker*,Select*) | 32 | 2h 18min | 32min | <d>SQLite.<f>sqlite3·c.__Globals .selectExpander(Walker*,Select*) |
sqlite3FindInIndex(Parse*,Expr*,u32,int* ,int*) | 31 | 2h 13min | 31min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3FindInIndex(Parse*,Expr*,u32 ,int*,int*) |
constructAutomaticIndex(Parse* ,WhereClause*,structSrcList_item* ,Bitmask,WhereLevel*) | 30 | 2h 9min | 29min | <d>SQLite.<f>sqlite3·c.__Globals .constructAutomaticIndex(Parse* ,WhereClause*,structSrcList_item* ,Bitmask,WhereLevel*) |
whereLoopAddBtreeIndex(WhereLoopBuilder* ,structSrcList_item*,Index*,LogEst) | 29 | 2h 4min | 27min | <d>SQLite.<f>sqlite3·c.__Globals .whereLoopAddBtreeIndex (WhereLoopBuilder*,structSrcList_item* ,Index*,LogEst) |
sqlite3ExprCodeIN(Parse*,Expr*,int,int) | 27 | 1h 55min | 23min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ExprCodeIN(Parse*,Expr*,int,int) |
selectInnerLoop(Parse*,Select*,ExprList* ,int,SortCtx*,DistinctCtx*,SelectDest* ,int,int) | 26 | 1h 50min | 21min | <d>SQLite.<f>sqlite3·c.__Globals .selectInnerLoop(Parse*,Select* ,ExprList*,int,SortCtx*,DistinctCtx* ,SelectDest*,int,int) |
sqlite3ParseUri(constchar*,constchar* ,unsignedint*,sqlite3_vfs**,char** ,char**) | 25 | 1h 46min | 20min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ParseUri(constchar*,constchar* ,unsignedint*,sqlite3_vfs**,char** ,char**) |
sqlite3CodeSubselect(Parse*,Expr*,int ,int) | 25 | 1h 46min | 20min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3CodeSubselect(Parse*,Expr*,int ,int) |
analyzeOneTable(Parse*,Table*,Index*,int ,int,int) | 25 | 1h 46min | 20min | <d>SQLite.<f>sqlite3·c.__Globals .analyzeOneTable(Parse*,Table*,Index* ,int,int,int) |
codeEqualityTerm(Parse*,WhereTerm* ,WhereLevel*,int,int,int) | 25 | 1h 46min | 20min | <d>SQLite.<f>sqlite3·c.__Globals .codeEqualityTerm(Parse*,WhereTerm* ,WhereLevel*,int,int,int) |
fkActionTrigger(Parse*,Table*,FKey* ,ExprList*) | 24 | 1h 41min | 18min | <d>SQLite.<f>sqlite3·c.__Globals .fkActionTrigger(Parse*,Table*,FKey* ,ExprList*) |
xferOptimization(Parse*,Table*,Select* ,int,int) | 24 | 1h 41min | 18min | <d>SQLite.<f>sqlite3·c.__Globals .xferOptimization(Parse*,Table*,Select* ,int,int) |
flattenSubquery(Parse*,Select*,int,int ,int) | 24 | 1h 41min | 18min | <d>SQLite.<f>sqlite3·c.__Globals .flattenSubquery(Parse*,Select*,int,int ,int) |
whereLoopAddBtree(WhereLoopBuilder* ,Bitmask) | 24 | 1h 41min | 18min | <d>SQLite.<f>sqlite3·c.__Globals .whereLoopAddBtree(WhereLoopBuilder* ,Bitmask) |
shell_callback(void*,int,char**,char** ,int*) | 23 | 1h 36min | 16min | <d>SQLite.<f>shell·c.__Globals .shell_callback(void*,int,char**,char** ,int*) |
wmain(int,wchar_t**) | 23 | 1h 36min | 16min | <d>SQLite.<f>shell·c.__Globals.wmain(int ,wchar_t**) |
sqlite3_backup_step(sqlite3_backup*,int) | 23 | 1h 36min | 16min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_backup_step(sqlite3_backup*,int ) |
lookupName(Parse*,constchar*,constchar* ,constchar*,NameContext*,Expr*) | 23 | 1h 36min | 16min | <d>SQLite.<f>sqlite3·c.__Globals .lookupName(Parse*,constchar*,constchar* ,constchar*,NameContext*,Expr*) |
sqlite3EndTable(Parse*,Token*,Token*,u8 ,Select*) | 22 | 1h 32min | 14min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3EndTable(Parse*,Token*,Token*,u8 ,Select*) |
sqlite3FkCheck(Parse*,Table*,int,int ,int*,int) | 22 | 1h 32min | 14min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3FkCheck(Parse*,Table*,int,int ,int*,int) |
allocateBtreePage(BtShared*,MemPage** ,Pgno*,Pgno,u8) | 22 | 1h 32min | 14min | <d>SQLite.<f>sqlite3·c.__Globals .allocateBtreePage(BtShared*,MemPage** ,Pgno*,Pgno,u8) |
vdbeCommit(sqlite3*,Vdbe*) | 22 | 1h 32min | 14min | <d>SQLite.<f>sqlite3·c.__Globals .vdbeCommit(sqlite3*,Vdbe*) |
lintFkeyIndexes(ShellState*,char**,int) | 21 | 1h 27min | 12min | <d>SQLite.<f>shell·c.__Globals .lintFkeyIndexes(ShellState*,char**,int) |
sqlite3_test_control(int) | 21 | 1h 27min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_test_control(int) |
generateWithRecursiveQuery(Parse* ,Select*,SelectDest*) | 21 | 1h 27min | 12min | <d>SQLite.<f>sqlite3·c.__Globals .generateWithRecursiveQuery(Parse* ,Select*,SelectDest*) |
resolveExprStep(Walker*,Expr*) | 20 | 1h 23min | 11min | <d>SQLite.<f>sqlite3·c.__Globals .resolveExprStep(Walker*,Expr*) |
generateSortTail(Parse*,Select*,SortCtx* ,int,SelectDest*) | 20 | 1h 23min | 11min | <d>SQLite.<f>sqlite3·c.__Globals .generateSortTail(Parse*,Select* ,SortCtx*,int,SelectDest*) |
sqlite3WhereEnd(WhereInfo*) | 19 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WhereEnd(WhereInfo*) |
sqlite3WalFrames(Wal*,int,PgHdr*,Pgno ,int,int) | 19 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WalFrames(Wal*,int,PgHdr*,Pgno ,int,int) |
walIndexRecover(Wal*) | 19 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .walIndexRecover(Wal*) |
fkScanChildren(Parse*,SrcList*,Table* ,Index*,FKey*,int*,int,int) | 19 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .fkScanChildren(Parse*,SrcList*,Table* ,Index*,FKey*,int*,int,int) |
whereLoopAddOr(WhereLoopBuilder*,Bitmask ,Bitmask) | 19 | 1h 18min | 9min | <d>SQLite.<f>sqlite3·c.__Globals .whereLoopAddOr(WhereLoopBuilder* ,Bitmask,Bitmask) |
winOpen(sqlite3_vfs*,constchar* ,sqlite3_file*,int,int*) | 18 | 1h 13min | 7min | <d>SQLite.<f>sqlite3·c.__Globals.winOpen (sqlite3_vfs*,constchar*,sqlite3_file* ,int,int*) |
pushOntoSorter(Parse*,SortCtx*,Select* ,int,int,int,int) | 18 | 1h 13min | 7min | <d>SQLite.<f>sqlite3·c.__Globals .pushOntoSorter(Parse*,SortCtx*,Select* ,int,int,int,int) |
whereLoopAddVirtual(WhereLoopBuilder* ,Bitmask,Bitmask) | 18 | 1h 13min | 7min | <d>SQLite.<f>sqlite3·c.__Globals .whereLoopAddVirtual(WhereLoopBuilder* ,Bitmask,Bitmask) |
sqlite3_blob_open(sqlite3*,constchar* ,constchar*,constchar*,sqlite3_int64,int ,sqlite3_blob**) | 17 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_blob_open(sqlite3*,constchar* ,constchar*,constchar*,sqlite3_int64,int ,sqlite3_blob**) |
sqlite3BtreeOpen(sqlite3_vfs*,constchar* ,sqlite3*,Btree**,int,int) | 17 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BtreeOpen(sqlite3_vfs* ,constchar*,sqlite3*,Btree**,int,int) |
sqlite3PagerOpen(sqlite3_vfs*,Pager** ,constchar*,int,int,int,void(*)(DbPage*) ) | 17 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3PagerOpen(sqlite3_vfs*,Pager** ,constchar*,int,int,int,void(*)(DbPage*) ) |
resolveSelectStep(Walker*,Select*) | 17 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .resolveSelectStep(Walker*,Select*) |
vtabCallConstructor(sqlite3*,Table* ,Module*,int(*)(sqlite3*,void*,int ,constchar*const*,sqlite3_vtab**,char**) ,char**) | 17 | 1h 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .vtabCallConstructor(sqlite3*,Table* ,Module*,int(*)(sqlite3*,void*,int ,constchar*const*,sqlite3_vtab**,char**) ,char**) |
sqlite3VdbeRecordCompareWithSkip(int ,constvoid*,UnpackedRecord*,int) | 16 | 1h 4min | 3min 48s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeRecordCompareWithSkip(int ,constvoid*,UnpackedRecord*,int) |
walCheckpoint(Wal*,sqlite3*,int,int(*) (void*),void*,int,u8*) | 16 | 1h 4min | 3min 48s | <d>SQLite.<f>sqlite3·c.__Globals .walCheckpoint(Wal*,sqlite3*,int,int(*) (void*),void*,int,u8*) |
fillInCell(MemPage*,unsignedchar* ,constBtreePayload*,int*) | 16 | 1h 4min | 3min 48s | <d>SQLite.<f>sqlite3·c.__Globals .fillInCell(MemPage*,unsignedchar* ,constBtreePayload*,int*) |
sqlite3LoadExtension(sqlite3*,constchar* ,constchar*,char**) | 16 | 1h 4min | 3min 48s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3LoadExtension(sqlite3* ,constchar*,constchar*,char**) |
sqliteProcessJoin(Parse*,Select*) | 16 | 1h 4min | 3min 48s | <d>SQLite.<f>sqlite3·c.__Globals .sqliteProcessJoin(Parse*,Select*) |
isLikeOrGlob(Parse*,Expr*,Expr**,int* ,int*) | 16 | 1h 4min | 3min 48s | <d>SQLite.<f>sqlite3·c.__Globals .isLikeOrGlob(Parse*,Expr*,Expr**,int* ,int*) |
Rule Violated: Avoid methods potentially poorly commented |
• How to Fix Issues: Typically add more comment. But code commenting is subject to controversy. While poorly written and designed code would needs a lot of comment to be understood, clean code doesn't need that much comment, especially if variables and methods are properly named and convey enough information. Unit-Test code can also play the role of code commenting. However, even when writing clean and well-tested code, one will have to write hacks at a point, usually to circumvent some API limitations or bugs. A hack is a non-trivial piece of code, that doesn't make sense at first glance, and that took time and web research to be found. In such situation comments must absolutely be used to express the intention, the need for the hacks and the source where the solution has been found. The estimated Debt, which means the effort to comment such method, varies linearly from 2 minutes for 10 lines of code not commented, up to 20 minutes for 200 or more, lines of code not commented.
75 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
75 methods | Percentage Comment | # lines of code (LOC) | # lines of comment | nbLinesOfCodeNotCommented | Debt | Annual Interest | Full Name |
---|---|---|---|---|---|---|---|
do_meta_command(char*,ShellState*) | 9.77 | 1 044 | 113 | 931 | 20min | 9min | <d>SQLite.<f>shell·c.__Globals .do_meta_command(char*,ShellState*) |
sqlite3VXPrintf(StrAccum*,constchar* ,va_list) | 18.73 | 460 | 106 | 354 | 20min | 2min 53s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VXPrintf(StrAccum*,constchar* ,va_list) |
shell_callback(void*,int,char**,char** ,int*) | 3.8 | 253 | 10 | 243 | 20min | 13min | <d>SQLite.<f>shell·c.__Globals .shell_callback(void*,int,char**,char** ,int*) |
wmain(int,wchar_t**) | 16.5 | 248 | 49 | 199 | 19min | 4min 27s | <d>SQLite.<f>shell·c.__Globals.wmain(int ,wchar_t**) |
sqlite3GetToken(constunsignedchar*,int*) | 7.24 | 205 | 16 | 189 | 18min | 10min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3GetToken(constunsignedchar*,int* ) |
strftimeFunc(sqlite3_context*,int ,sqlite3_value**) | 15.69 | 129 | 24 | 105 | 10min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .strftimeFunc(sqlite3_context*,int ,sqlite3_value**) |
sqlite3ExprIfTrue(Parse*,Expr*,int,int) | 14.84 | 109 | 19 | 90 | 9min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ExprIfTrue(Parse*,Expr*,int,int) |
generateSortTail(Parse*,Select*,SortCtx* ,int,SelectDest*) | 16.39 | 102 | 20 | 82 | 8min | 4min 31s | <d>SQLite.<f>sqlite3·c.__Globals .generateSortTail(Parse*,Select* ,SortCtx*,int,SelectDest*) |
winFileControl(sqlite3_file*,int,void*) | 3.61 | 80 | 3 | 77 | 7min | 13min | <d>SQLite.<f>sqlite3·c.__Globals .winFileControl(sqlite3_file*,int,void*) |
displayP4(Op*,char*,int) | 7.06 | 79 | 6 | 73 | 7min | 11min | <d>SQLite.<f>sqlite3·c.__Globals .displayP4(Op*,char*,int) |
vtabCallConstructor(sqlite3*,Table* ,Module*,int(*)(sqlite3*,void*,int ,constchar*const*,sqlite3_vtab**,char**) ,char**) | 15.05 | 79 | 14 | 65 | 6min | 5min | <d>SQLite.<f>sqlite3·c.__Globals .vtabCallConstructor(sqlite3*,Table* ,Module*,int(*)(sqlite3*,void*,int ,constchar*const*,sqlite3_vtab**,char**) ,char**) |
display_stats(sqlite3*,ShellState*,int) | 8.97 | 71 | 7 | 64 | 6min | 9min | <d>SQLite.<f>shell·c.__Globals .display_stats(sqlite3*,ShellState*,int) |
tryToCloneData(ShellState*,sqlite3* ,constchar*) | 10 | 72 | 8 | 64 | 6min | 9min | <d>SQLite.<f>shell·c.__Globals .tryToCloneData(ShellState*,sqlite3* ,constchar*) |
dump_callback(void*,int,char**,char**) | 10.13 | 71 | 8 | 63 | 6min | 8min | <d>SQLite.<f>shell·c.__Globals .dump_callback(void*,int,char**,char**) |
whereLoopAddOr(WhereLoopBuilder*,Bitmask ,Bitmask) | 18.89 | 73 | 17 | 56 | 5min | 2min 46s | <d>SQLite.<f>sqlite3·c.__Globals .whereLoopAddOr(WhereLoopBuilder* ,Bitmask,Bitmask) |
codeVectorCompare(Parse*,Expr*,int,u8,u8 ) | 18.82 | 69 | 16 | 53 | 5min | 2min 49s | <d>SQLite.<f>sqlite3·c.__Globals .codeVectorCompare(Parse*,Expr*,int,u8 ,u8) |
sqlite3DropTable(Parse*,SrcList*,int,int ) | 16.67 | 65 | 13 | 52 | 5min | 4min 20s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3DropTable(Parse*,SrcList*,int ,int) |
quoteFunc(sqlite3_context*,int ,sqlite3_value**) | 11.94 | 59 | 8 | 51 | 5min | 7min | <d>SQLite.<f>sqlite3·c.__Globals .quoteFunc(sqlite3_context*,int ,sqlite3_value**) |
trimFunc(sqlite3_context*,int ,sqlite3_value**) | 16 | 63 | 12 | 51 | 5min | 4min 48s | <d>SQLite.<f>sqlite3·c.__Globals .trimFunc(sqlite3_context*,int ,sqlite3_value**) |
whereShortCut(WhereLoopBuilder*) | 18.52 | 66 | 15 | 51 | 5min | 3min 2s | <d>SQLite.<f>sqlite3·c.__Globals .whereShortCut(WhereLoopBuilder*) |
shell_dbinfo_command(ShellState*,int ,char**) | 9.09 | 50 | 5 | 45 | 4min 30s | 9min | <d>SQLite.<f>shell·c.__Globals .shell_dbinfo_command(ShellState*,int ,char**) |
tryToCloneSchema(ShellState*,sqlite3* ,constchar*,void(*)(ShellState*,sqlite3* ,constchar*)) | 10.91 | 49 | 6 | 43 | 4min 18s | 8min | <d>SQLite.<f>shell·c.__Globals .tryToCloneSchema(ShellState*,sqlite3* ,constchar*,void(*)(ShellState*,sqlite3* ,constchar*)) |
createTableStmt(sqlite3*,Table*) | 9.43 | 48 | 5 | 43 | 4min 18s | 9min | <d>SQLite.<f>sqlite3·c.__Globals .createTableStmt(sqlite3*,Table*) |
sqlite3_declare_vtab(sqlite3*,constchar* ) | 19.7 | 53 | 13 | 40 | 4min 0s | 2min 12s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_declare_vtab(sqlite3* ,constchar*) |
sqlite3ExprListDup(sqlite3*,ExprList* ,int) | 0 | 40 | 0 | 40 | 4min 0s | 16min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ExprListDup(sqlite3*,ExprList* ,int) |
pragmaVtabConnect(sqlite3*,void*,int ,constchar*const*,sqlite3_vtab**,char**) | 6.52 | 43 | 3 | 40 | 4min 0s | 11min | <d>SQLite.<f>sqlite3·c.__Globals .pragmaVtabConnect(sqlite3*,void*,int ,constchar*const*,sqlite3_vtab**,char**) |
generateColumnNames(Parse*,SrcList* ,ExprList*) | 15.52 | 49 | 9 | 40 | 4min 0s | 5min | <d>SQLite.<f>sqlite3·c.__Globals .generateColumnNames(Parse*,SrcList* ,ExprList*) |
whereScanNext(WhereScan*) | 18.75 | 52 | 12 | 40 | 4min 0s | 2min 52s | <d>SQLite.<f>sqlite3·c.__Globals .whereScanNext(WhereScan*) |
sqlite3DropIndex(Parse*,SrcList*,int) | 12.24 | 43 | 6 | 37 | 3min 42s | 7min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3DropIndex(Parse*,SrcList*,int) |
sqlite3SrcListDup(sqlite3*,SrcList*,int) | 0 | 36 | 0 | 36 | 3min 36s | 16min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3SrcListDup(sqlite3*,SrcList*,int ) |
sqlite3AddColumn(Parse*,Token*,Token*) | 18.18 | 45 | 10 | 35 | 3min 30s | 3min 16s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3AddColumn(Parse*,Token*,Token*) |
clearDatabasePage(BtShared*,Pgno,int ,int*) | 15.69 | 43 | 8 | 35 | 3min 30s | 5min | <d>SQLite.<f>sqlite3·c.__Globals .clearDatabasePage(BtShared*,Pgno,int ,int*) |
sqlite3Reindex(Parse*,Token*,Token*) | 18.52 | 44 | 10 | 34 | 3min 24s | 3min 2s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3Reindex(Parse*,Token*,Token*) |
winAccess(sqlite3_vfs*,constchar*,int ,int*) | 18.52 | 44 | 10 | 34 | 3min 24s | 3min 2s | <d>SQLite.<f>sqlite3·c.__Globals .winAccess(sqlite3_vfs*,constchar*,int ,int*) |
sqlite3SelectDup(sqlite3*,Select*,int) | 0 | 32 | 0 | 32 | 3min 12s | 16min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3SelectDup(sqlite3*,Select*,int) |
vdbeSorterSort(SortSubtask*,SorterList*) | 11.9 | 37 | 5 | 32 | 3min 12s | 7min | <d>SQLite.<f>sqlite3·c.__Globals .vdbeSorterSort(SortSubtask*,SorterList* ) |
renameParentFunc(sqlite3_context*,int ,sqlite3_value**) | 8.11 | 34 | 3 | 31 | 3min 6s | 10min | <d>SQLite.<f>sqlite3·c.__Globals .renameParentFunc(sqlite3_context*,int ,sqlite3_value**) |
sqlite3MallocInit() | 8.82 | 31 | 3 | 28 | 2min 48s | 9min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3MallocInit() |
newDatabase(BtShared*) | 13.16 | 33 | 5 | 28 | 2min 48s | 6min | <d>SQLite.<f>sqlite3·c.__Globals .newDatabase(BtShared*) |
freeP4(sqlite3*,int,void*) | 0 | 28 | 0 | 28 | 2min 48s | 16min | <d>SQLite.<f>sqlite3·c.__Globals.freeP4 (sqlite3*,int,void*) |
pragmaVtabBestIndex(sqlite3_vtab* ,sqlite3_index_info*) | 16.67 | 35 | 7 | 28 | 2min 48s | 4min 20s | <d>SQLite.<f>sqlite3·c.__Globals .pragmaVtabBestIndex(sqlite3_vtab* ,sqlite3_index_info*) |
pragmaVtabFilter(sqlite3_vtab_cursor* ,int,constchar*,int,sqlite3_value**) | 8.82 | 31 | 3 | 28 | 2min 48s | 9min | <d>SQLite.<f>sqlite3·c.__Globals .pragmaVtabFilter(sqlite3_vtab_cursor* ,int,constchar*,int,sqlite3_value**) |
whereLoopAddAll(WhereLoopBuilder*) | 16.67 | 35 | 7 | 28 | 2min 48s | 4min 20s | <d>SQLite.<f>sqlite3·c.__Globals .whereLoopAddAll(WhereLoopBuilder*) |
sqlite3PagerSetFlags(Pager*,unsignedint) | 6.67 | 28 | 2 | 26 | 2min 36s | 11min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3PagerSetFlags(Pager*,unsignedint ) |
winShmPurge(sqlite3_vfs*,int) | 15.79 | 32 | 6 | 26 | 2min 36s | 4min 56s | <d>SQLite.<f>sqlite3·c.__Globals .winShmPurge(sqlite3_vfs*,int) |
detachFunc(sqlite3_context*,int ,sqlite3_value**) | 19.05 | 34 | 8 | 26 | 2min 36s | 2min 40s | <d>SQLite.<f>sqlite3·c.__Globals .detachFunc(sqlite3_context*,int ,sqlite3_value**) |
set_table_name(ShellState*,constchar*) | 14.29 | 30 | 5 | 25 | 2min 30s | 6min | <d>SQLite.<f>shell·c.__Globals .set_table_name(ShellState*,constchar*) |
sqlite3VdbeChangeP4(Vdbe*,int,constchar* ,int) | 6.9 | 27 | 2 | 25 | 2min 30s | 11min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeChangeP4(Vdbe*,int ,constchar*,int) |
find_home_dir(int) | 18.42 | 31 | 7 | 24 | 2min 24s | 3min 6s | <d>SQLite.<f>shell·c.__Globals .find_home_dir(int) |
sqlite3_set_auxdata(sqlite3_context*,int ,void*,void(*)(void*)) | 14.71 | 29 | 5 | 24 | 2min 24s | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_set_auxdata(sqlite3_context* ,int,void*,void(*)(void*)) |
parseHhMmSs(constchar*,DateTime*) | 18.92 | 30 | 7 | 23 | 2min 18s | 2min 45s | <d>SQLite.<f>sqlite3·c.__Globals .parseHhMmSs(constchar*,DateTime*) |
computeJD(DateTime*) | 18.92 | 30 | 7 | 23 | 2min 18s | 2min 45s | <d>SQLite.<f>sqlite3·c.__Globals .computeJD(DateTime*) |
zeroPage(MemPage*,int) | 12.9 | 27 | 4 | 23 | 2min 18s | 6min | <d>SQLite.<f>sqlite3·c.__Globals .zeroPage(MemPage*,int) |
charFunc(sqlite3_context*,int ,sqlite3_value**) | 15.15 | 28 | 5 | 23 | 2min 18s | 5min | <d>SQLite.<f>sqlite3·c.__Globals .charFunc(sqlite3_context*,int ,sqlite3_value**) |
isNumber(constchar*,int*) | 10.71 | 25 | 3 | 22 | 2min 12s | 8min | <d>SQLite.<f>shell·c.__Globals.isNumber (constchar*,int*) |
pcache1InitBulk(PCache1*) | 15.62 | 27 | 5 | 22 | 2min 12s | 5min | <d>SQLite.<f>sqlite3·c.__Globals .pcache1InitBulk(PCache1*) |
sqlite3IntFloatCompare(i64,double) | 15.62 | 27 | 5 | 22 | 2min 12s | 5min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3IntFloatCompare(i64,double) |
roundFunc(sqlite3_context*,int ,sqlite3_value**) | 13.33 | 26 | 4 | 22 | 2min 12s | 6min | <d>SQLite.<f>sqlite3·c.__Globals .roundFunc(sqlite3_context*,int ,sqlite3_value**) |
groupConcatStep(sqlite3_context*,int ,sqlite3_value**) | 10.71 | 25 | 3 | 22 | 2min 12s | 8min | <d>SQLite.<f>sqlite3·c.__Globals .groupConcatStep(sqlite3_context*,int ,sqlite3_value**) |
integerValue(constchar*) | 11.11 | 24 | 3 | 21 | 2min 6s | 8min | <d>SQLite.<f>shell·c.__Globals .integerValue(constchar*) |
runOneSqlLine(ShellState*,char*,FILE* ,int) | 11.11 | 24 | 3 | 21 | 2min 6s | 8min | <d>SQLite.<f>shell·c.__Globals .runOneSqlLine(ShellState*,char*,FILE* ,int) |
sqlite3ResultSetOfSelect(Parse*,Select*) | 18.18 | 27 | 6 | 21 | 2min 6s | 3min 16s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ResultSetOfSelect(Parse*,Select* ) |
sqlite3BitvecClear(Bitvec*,u32,void*) | 18.18 | 27 | 6 | 21 | 2min 6s | 3min 16s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BitvecClear(Bitvec*,u32,void*) |
sqlite3VdbeSorterNext(sqlite3* ,constVdbeCursor*,int*) | 13.79 | 25 | 4 | 21 | 2min 6s | 6min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeSorterNext(sqlite3* ,constVdbeCursor*,int*) |
output_quoted_string(FILE*,constchar*) | 11.54 | 23 | 3 | 20 | 2min 0s | 7min | <d>SQLite.<f>shell·c.__Globals .output_quoted_string(FILE*,constchar*) |
output_c_string(FILE*,constchar*) | 11.54 | 23 | 3 | 20 | 2min 0s | 7min | <d>SQLite.<f>shell·c.__Globals .output_c_string(FILE*,constchar*) |
sqlite3_bind_value(sqlite3_stmt*,int ,constsqlite3_value*) | 4.55 | 21 | 1 | 20 | 2min 0s | 12min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3_bind_value(sqlite3_stmt*,int ,constsqlite3_value*) |
sqlite3ScratchFree(void*) | 19.35 | 25 | 6 | 19 | 2min 0s | 2min 27s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3ScratchFree(void*) |
sqlite3VdbeSorterReset(sqlite3* ,VdbeSorter*) | 12 | 22 | 3 | 19 | 2min 0s | 7min | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3VdbeSorterReset(sqlite3* ,VdbeSorter*) |
pcacheSortDirtyList(PgHdr*) | 12 | 22 | 3 | 19 | 2min 0s | 7min | <d>SQLite.<f>sqlite3·c.__Globals .pcacheSortDirtyList(PgHdr*) |
pcache1Free(void*) | 12 | 22 | 3 | 19 | 2min 0s | 7min | <d>SQLite.<f>sqlite3·c.__Globals .pcache1Free(void*) |
lengthFunc(sqlite3_context*,int ,sqlite3_value**) | 12 | 22 | 3 | 19 | 2min 0s | 7min | <d>SQLite.<f>sqlite3·c.__Globals .lengthFunc(sqlite3_context*,int ,sqlite3_value**) |
sqlite3BtreeCloseCursor(BtCursor*) | 17.86 | 23 | 5 | 18 | 2min 0s | 3min 30s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3BtreeCloseCursor(BtCursor*) |
computeYMD(DateTime*) | 12.5 | 21 | 3 | 18 | 2min 0s | 7min | <d>SQLite.<f>sqlite3·c.__Globals .computeYMD(DateTime*) |
sqlite3DropTriggerPtr(Parse*,Trigger*) | 19.23 | 21 | 5 | 16 | 2min 0s | 2min 32s | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3DropTriggerPtr(Parse*,Trigger*) |
CWE Rules | 2120 |
|
Rule Violated: Incomplete Cleanup |
warnif count > 0
from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="resourceLeak" select
new { issue,issue.FilePath,Line=issue.BeginLine}
1 field matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 field | FilePath | Line | Full Name |
---|---|---|---|
Resource leak: in | c:\work2\sqlite\shell.c | 2 308 | CppCheck.error.error.Resource leak: in |
Statistics
Stat | FilePath | Line |
---|---|---|
Sum: | - | 2 308 |
Average: | - | 2 308 |
Minimum: | - | 2 308 |
Maximum: | - | 2 308 |
Standard deviation: | - | 0 |
Variance: | - | 0 |
Rule Violated: NULL Pointer Dereferenced |
warnif count > 0
from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="nullPointer" select
new { issue,issue.FilePath,Line=issue.BeginLine}
5 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
5 fields | FilePath | Line | Full Name |
---|---|---|---|
Possible null pointer dereference: pbOpen | c:\work2\sqlite\sqlite3.c | 54 189 | CppCheck.warning.warning.Possible null pointer dereference: pbOpen |
Possible null pointer dereference: pName2 | c:\work2\sqlite\sqlite3.c | 102 110 | CppCheck.warning.warning.Possible null pointer dereference: pName2 |
Possible null pointer dereference: pName2 | c:\work2\sqlite\sqlite3.c | 99 926 | CppCheck.warning.warning.Possible null pointer dereference: pName2 |
Possible null pointer dereference: pName2 | c:\work2\sqlite\sqlite3.c | 97 782 | CppCheck.warning.warning.Possible null pointer dereference: pName2 |
Possible null pointer dereference: pDistinct | c:\work2\sqlite\sqlite3.c | 116 552 | CppCheck.warning.warning.Possible null pointer dereference: pDistinct |
Statistics
Stat | FilePath | Line |
---|---|---|
Sum: | - | 470 559 |
Average: | - | 94 112 |
Minimum: | - | 54 189 |
Maximum: | - | 116 552 |
Standard deviation: | - | 21 017 |
Variance: | - | 441 727 806 |
Memory Management | 3630 |
Leaks | 1210 |
|
Rule Violated: Resource leak: varname |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="resourceLeak"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 10.ToMinutes().ToDebt(),
Severity =Severity.High
}
1 field matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 field | FilePath | Line | Debt | Severity | Full Name |
---|---|---|---|---|---|
Resource leak: in | c:\work2\sqlite\shell.c | 2 308 | 10min | High | CppCheck.error.error.Resource leak: in |
Statistics
Stat | FilePath | Line | Debt | Severity |
---|---|---|---|---|
Sum: | - | 2 308 | 10min | - |
Average: | - | 2 308 | 10min | - |
Minimum: | - | 2 308 | 10min | - |
Maximum: | - | 2 308 | 10min | - |
Standard deviation: | - | 0 | 0min 0s | - |
Variance: | - | 0 | 0min 0s | - |
Null Pointer | 120 |
Rule Violated: Null pointer dereference |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="nullPointer"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 10.ToMinutes().ToDebt(),
Severity =Severity.High
}
5 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
5 fields | FilePath | Line | Debt | Severity | Full Name |
---|---|---|---|---|---|
Possible null pointer dereference: pbOpen | c:\work2\sqlite\sqlite3.c | 54 189 | 10min | High | CppCheck.warning.warning.Possible null pointer dereference: pbOpen |
Possible null pointer dereference: pName2 | c:\work2\sqlite\sqlite3.c | 102 110 | 10min | High | CppCheck.warning.warning.Possible null pointer dereference: pName2 |
Possible null pointer dereference: pName2 | c:\work2\sqlite\sqlite3.c | 99 926 | 10min | High | CppCheck.warning.warning.Possible null pointer dereference: pName2 |
Possible null pointer dereference: pName2 | c:\work2\sqlite\sqlite3.c | 97 782 | 10min | High | CppCheck.warning.warning.Possible null pointer dereference: pName2 |
Possible null pointer dereference: pDistinct | c:\work2\sqlite\sqlite3.c | 116 552 | 10min | High | CppCheck.warning.warning.Possible null pointer dereference: pDistinct |
Statistics
Stat | FilePath | Line | Debt | Severity |
---|---|---|---|---|
Sum: | - | 470 559 | 50min | - |
Average: | - | 94 112 | 10min | - |
Minimum: | - | 54 189 | 10min | - |
Maximum: | - | 116 552 | 10min | - |
Standard deviation: | - | 21 017 | 0min 0s | - |
Variance: | - | 441 727 806 | 0min 0s | - |
Rule Violated: Either the condition is redundant or there is possible null pointer dereference: pointer. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="nullPointerRedundantCheck"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Low
}
49 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
49 fields | FilePath | Line | Debt | Severity | Full Name |
---|---|---|---|---|---|
Either the condition 'if(pArg&&pArg.statsOn)' is redundant or there is possible null pointer dereference: p. | c:\work2\sqlite\shell.c | 1 784 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'if(pArg&&pArg.statsOn)' is redundant or there is possible null pointer dereference: p. |
Either the condition 'if(pArg&&pArg.statsOn)' is redundant or there is possible null pointer dereference: p. | c:\work2\sqlite\shell.c | 1 785 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'if(pArg&&pArg.statsOn)' is redundant or there is possible null pointer dereference: p. |
Either the condition 'if(pArg&&pArg.statsOn)' is redundant or there is possible null pointer dereference: p. | c:\work2\sqlite\shell.c | 1 786 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'if(pArg&&pArg.statsOn)' is redundant or there is possible null pointer dereference: p. |
Either the condition 'if(pArg&&pArg.statsOn)' is redundant or there is possible null pointer dereference: p. | c:\work2\sqlite\shell.c | 1 787 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'if(pArg&&pArg.statsOn)' is redundant or there is possible null pointer dereference: p. |
Either the condition 'zLine' is redundant or there is possible null pointer dereference: zLine. | c:\work2\sqlite\shell.c | 5 415 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'zLine' is redundant or there is possible null pointer dereference: zLine. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 873 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 886 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 890 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 897 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 898 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 899 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 908 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 914 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 927 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 928 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 939 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 940 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 941 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 942 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 943 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 944 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 951 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 956 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 962 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 979 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 984 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 93 985 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 94 021 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 94 022 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 94 029 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 94 045 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 94 055 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 94 066 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 94 076 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 94 079 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. | c:\work2\sqlite\sqlite3.c | 94 081 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pExpr' is redundant or there is possible null pointer dereference: pExpr. |
Either the condition 'pEList!=0' is redundant or there is possible null pointer dereference: pEList. | c:\work2\sqlite\sqlite3.c | 92 997 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pEList!=0' is redundant or there is possible null pointer dereference: pEList. |
Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. | c:\work2\sqlite\sqlite3.c | 41 822 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. |
Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. | c:\work2\sqlite\sqlite3.c | 40 210 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. |
Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. | c:\work2\sqlite\sqlite3.c | 40 212 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. |
Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. | c:\work2\sqlite\sqlite3.c | 40 221 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. |
Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. | c:\work2\sqlite\sqlite3.c | 40 284 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. |
Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. | c:\work2\sqlite\sqlite3.c | 40 618 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. |
Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. | c:\work2\sqlite\sqlite3.c | 40 767 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. |
Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. | c:\work2\sqlite\sqlite3.c | 40 902 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'id!=0' is redundant or there is possible null pointer dereference: pFile. |
Either the condition 'ppStmt==0' is redundant or there is possible null pointer dereference: ppStmt. | c:\work2\sqlite\sqlite3.c | 115 602 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'ppStmt==0' is redundant or there is possible null pointer dereference: ppStmt. |
Either the condition 'ppStmt==0' is redundant or there is possible null pointer dereference: ppStmt. | c:\work2\sqlite\sqlite3.c | 115 610 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'ppStmt==0' is redundant or there is possible null pointer dereference: ppStmt. |
Either the condition 'ppStmt==0' is redundant or there is possible null pointer dereference: ppStmt. | c:\work2\sqlite\sqlite3.c | 115 713 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'ppStmt==0' is redundant or there is possible null pointer dereference: ppStmt. |
Either the condition 'pEList!=0' is redundant or there is possible null pointer dereference: pEList. | c:\work2\sqlite\sqlite3.c | 118 947 | 2min 0s | Low | CppCheck.warning.warning.Either the condition 'pEList!=0' is redundant or there is possible null pointer dereference: pEList. |
Statistics
Stat | FilePath | Line | Debt | Severity |
---|---|---|---|---|
Sum: | - | 3 809 422 | 1h 38min | - |
Average: | - | 77 743 | 2min 0s | - |
Minimum: | - | 1 784 | 2min 0s | - |
Maximum: | - | 118 947 | 2min 0s | - |
Standard deviation: | - | 33 114 | 0min 0s | - |
Variance: | - | 1 096 523 982 | 0min 0s | - |
Misc | 3640 |
Rule Violated: Variable var is reassigned a value before the old one has been used. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="redundantAssignment"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Low
}
7 fields matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
7 fields | FilePath | Line | Debt | Severity | Full Name |
---|---|---|---|---|---|
Variable 'db.xAuth' is reassigned a value before the old one has been used. | c:\work2\sqlite\sqlite3.c | 101 365 | 2min 0s | Low | CppCheck.style.style.Variable 'db.xAuth' is reassigned a value before the old one has been used. |
Variable 'db.vtabOnConflict' is reassigned a value before the old one has been used. | c:\work2\sqlite\sqlite3.c | 84 797 | 2min 0s | Low | CppCheck.style.style.Variable 'db.vtabOnConflict' is reassigned a value before the old one has been used. |
Variable 'res' is reassigned a value before the old one has been used. | c:\work2\sqlite\sqlite3.c | 40 854 | 2min 0s | Low | CppCheck.style.style.Variable 'res' is reassigned a value before the old one has been used. |
Variable 'pGroup.nMaxPage' is reassigned a value before the old one has been used. | c:\work2\sqlite\sqlite3.c | 45 685 | 2min 0s | Low | CppCheck.style.style.Variable 'pGroup.nMaxPage' is reassigned a value before the old one has been used. |
Variable 'db.suppressErr' is reassigned a value before the old one has been used. | c:\work2\sqlite\sqlite3.c | 89 822 | 2min 0s | Low | CppCheck.style.style.Variable 'db.suppressErr' is reassigned a value before the old one has been used. |
Variable 'pTab.nCol' is reassigned a value before the old one has been used. | c:\work2\sqlite\sqlite3.c | 120 138 | 2min 0s | Low | CppCheck.style.style.Variable 'pTab.nCol' is reassigned a value before the old one has been used. |
Variable 'pSelect.pEList' is reassigned a value before the old one has been used. | c:\work2\sqlite\sqlite3.c | 126 330 | 2min 0s | Low | CppCheck.style.style.Variable 'pSelect.pEList' is reassigned a value before the old one has been used. |
Statistics
Stat | FilePath | Line | Debt | Severity |
---|---|---|---|---|
Sum: | - | 608 991 | 14min | - |
Average: | - | 86 999 | 2min 0s | - |
Minimum: | - | 40 854 | 2min 0s | - |
Maximum: | - | 126 330 | 2min 0s | - |
Standard deviation: | - | 30 939 | 0min 0s | - |
Variance: | - | 957 218 370 | 0min 0s | - |
Rule Violated: The scope of the variable varname can be reduced. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="variableScope"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Low
}
188 fields matched
- The following list of fields is truncated and contains only the first 100 fields of the 188 fields matched.
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
188 fields | FilePath | Line | Debt | Severity | Full Name |
---|---|---|---|---|---|
The scope of the variable 'zPrompt' can be reduced. | c:\work2\sqlite\shell.c | 562 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'zPrompt' can be reduced. |
The scope of the variable 'n' can be reduced. | c:\work2\sqlite\shell.c | 1 015 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'n' can be reduced. |
The scope of the variable 'nParen' can be reduced. | c:\work2\sqlite\shell.c | 1 092 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'nParen' can be reduced. |
The scope of the variable 'cEnd' can be reduced. | c:\work2\sqlite\shell.c | 1 093 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'cEnd' can be reduced. |
The scope of the variable 'nLine' can be reduced. | c:\work2\sqlite\shell.c | 1 095 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'nLine' can be reduced. |
The scope of the variable 'z' can be reduced. | c:\work2\sqlite\shell.c | 1 401 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'z' can be reduced. |
The scope of the variable 'zStmtSql' can be reduced. | c:\work2\sqlite\shell.c | 1 915 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'zStmtSql' can be reduced. |
The scope of the variable 'rc' can be reduced. | c:\work2\sqlite\shell.c | 2 035 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'rc' can be reduced. |
The scope of the variable 'zSql' can be reduced. | c:\work2\sqlite\shell.c | 3 374 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'zSql' can be reduced. |
The scope of the variable 'len' can be reduced. | c:\work2\sqlite\shell.c | 5 017 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'len' can be reduced. |
The scope of the variable 'rc2' can be reduced. | c:\work2\sqlite\shell.c | 5 079 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'rc2' can be reduced. |
The scope of the variable 'v' can be reduced. | c:\work2\sqlite\shell.c | 4 822 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'v' can be reduced. |
The scope of the variable 'v' can be reduced. | c:\work2\sqlite\shell.c | 4 829 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'v' can be reduced. |
The scope of the variable 'n' can be reduced. | c:\work2\sqlite\shell.c | 5 613 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'n' can be reduced. |
The scope of the variable 'home_dir' can be reduced. | c:\work2\sqlite\shell.c | 5 649 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'home_dir' can be reduced. |
The scope of the variable 'nHistory' can be reduced. | c:\work2\sqlite\shell.c | 6 131 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'nHistory' can be reduced. |
The scope of the variable 'db' can be reduced. | c:\work2\sqlite\sqlite3.c | 85 433 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'db' can be reduced. |
The scope of the variable 'destMode' can be reduced. | c:\work2\sqlite\sqlite3.c | 68 981 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'destMode' can be reduced. |
The scope of the variable 'pgszSrc' can be reduced. | c:\work2\sqlite\sqlite3.c | 68 982 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pgszSrc' can be reduced. |
The scope of the variable 'pgszDest' can be reduced. | c:\work2\sqlite\sqlite3.c | 68 983 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pgszDest' can be reduced. |
The scope of the variable 'pp' can be reduced. | c:\work2\sqlite\sqlite3.c | 69 234 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pp' can be reduced. |
The scope of the variable 'ap' can be reduced. | c:\work2\sqlite\sqlite3.c | 26 049 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'ap' can be reduced. |
The scope of the variable 'pOp' can be reduced. | c:\work2\sqlite\sqlite3.c | 72 146 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pOp' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 88 826 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'pItem' can be reduced. | c:\work2\sqlite\sqlite3.c | 88 827 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pItem' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 88 862 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'pItem' can be reduced. | c:\work2\sqlite\sqlite3.c | 88 863 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pItem' can be reduced. |
The scope of the variable 'flag_leftjustify' can be reduced. | c:\work2\sqlite\sqlite3.c | 25 169 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'flag_leftjustify' can be reduced. |
The scope of the variable 'flag_plussign' can be reduced. | c:\work2\sqlite\sqlite3.c | 25 170 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'flag_plussign' can be reduced. |
The scope of the variable 'flag_blanksign' can be reduced. | c:\work2\sqlite\sqlite3.c | 25 171 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'flag_blanksign' can be reduced. |
The scope of the variable 'flag_alternateform' can be reduced. | c:\work2\sqlite\sqlite3.c | 25 172 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'flag_alternateform' can be reduced. |
The scope of the variable 'flag_altform2' can be reduced. | c:\work2\sqlite\sqlite3.c | 25 173 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'flag_altform2' can be reduced. |
The scope of the variable 'flag_zeropad' can be reduced. | c:\work2\sqlite\sqlite3.c | 25 174 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'flag_zeropad' can be reduced. |
The scope of the variable 'done' can be reduced. | c:\work2\sqlite\sqlite3.c | 25 177 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'done' can be reduced. |
The scope of the variable 'xtype' can be reduced. | c:\work2\sqlite\sqlite3.c | 25 178 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'xtype' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 92 153 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'aOp' can be reduced. | c:\work2\sqlite\sqlite3.c | 113 094 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'aOp' can be reduced. |
The scope of the variable 'pTab' can be reduced. | c:\work2\sqlite\sqlite3.c | 113 771 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pTab' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 113 807 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 99 729 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'pColl' can be reduced. | c:\work2\sqlite\sqlite3.c | 117 530 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pColl' can be reduced. |
The scope of the variable 'p' can be reduced. | c:\work2\sqlite\sqlite3.c | 117 532 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'p' can be reduced. |
The scope of the variable 'n' can be reduced. | c:\work2\sqlite\sqlite3.c | 117 545 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'n' can be reduced. |
The scope of the variable 'zType' can be reduced. | c:\work2\sqlite\sqlite3.c | 100 211 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'zType' can be reduced. |
The scope of the variable 'pCol' can be reduced. | c:\work2\sqlite\sqlite3.c | 100 376 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pCol' can be reduced. |
The scope of the variable 'n' can be reduced. | c:\work2\sqlite\sqlite3.c | 101 062 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'n' can be reduced. |
The scope of the variable 'j' can be reduced. | c:\work2\sqlite\sqlite3.c | 43 778 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'j' can be reduced. |
The scope of the variable 'rc' can be reduced. | c:\work2\sqlite\sqlite3.c | 43 779 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'rc' can be reduced. |
The scope of the variable 'n' can be reduced. | c:\work2\sqlite\sqlite3.c | 101 307 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'n' can be reduced. |
The scope of the variable 'pDb' can be reduced. | c:\work2\sqlite\sqlite3.c | 108 531 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pDb' can be reduced. |
The scope of the variable 'memId' can be reduced. | c:\work2\sqlite\sqlite3.c | 108 532 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'memId' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 102 937 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'pItem' can be reduced. | c:\work2\sqlite\sqlite3.c | 102 938 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pItem' can be reduced. |
The scope of the variable 'addr' can be reduced. | c:\work2\sqlite\sqlite3.c | 134 157 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'addr' can be reduced. |
The scope of the variable 'k' can be reduced. | c:\work2\sqlite\sqlite3.c | 134 228 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'k' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 93 518 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'minLru' can be reduced. | c:\work2\sqlite\sqlite3.c | 93 519 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'minLru' can be reduced. |
The scope of the variable 'idxLru' can be reduced. | c:\work2\sqlite\sqlite3.c | 93 520 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'idxLru' can be reduced. |
The scope of the variable 'inReg' can be reduced. | c:\work2\sqlite\sqlite3.c | 94 558 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'inReg' can be reduced. |
The scope of the variable 'nextCase' can be reduced. | c:\work2\sqlite\sqlite3.c | 94 385 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'nextCase' can be reduced. |
The scope of the variable 'j' can be reduced. | c:\work2\sqlite\sqlite3.c | 94 646 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'j' can be reduced. |
The scope of the variable 'pItem' can be reduced. | c:\work2\sqlite\sqlite3.c | 95 495 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pItem' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 95 496 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 103 098 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'x' can be reduced. | c:\work2\sqlite\sqlite3.c | 109 784 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'x' can be reduced. |
The scope of the variable 'j' can be reduced. | c:\work2\sqlite\sqlite3.c | 103 324 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'j' can be reduced. |
The scope of the variable 'h' can be reduced. | c:\work2\sqlite\sqlite3.c | 103 958 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'h' can be reduced. |
The scope of the variable 'p' can be reduced. | c:\work2\sqlite\sqlite3.c | 115 984 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'p' can be reduced. |
The scope of the variable 'iSrc' can be reduced. | c:\work2\sqlite\sqlite3.c | 99 044 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'iSrc' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 28 757 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 90 394 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 97 761 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'zSql' can be reduced. | c:\work2\sqlite\sqlite3.c | 98 245 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'zSql' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 103 506 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'yyact' can be reduced. | c:\work2\sqlite\sqlite3.c | 137 940 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'yyact' can be reduced. |
The scope of the variable 'rc' can be reduced. | c:\work2\sqlite\sqlite3.c | 111 996 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'rc' can be reduced. |
The scope of the variable 'z' can be reduced. | c:\work2\sqlite\sqlite3.c | 125 089 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'z' can be reduced. |
The scope of the variable 'rc' can be reduced. | c:\work2\sqlite\sqlite3.c | 76 541 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'rc' can be reduced. |
The scope of the variable 'bRc' can be reduced. | c:\work2\sqlite\sqlite3.c | 26 933 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'bRc' can be reduced. |
The scope of the variable 'idx' can be reduced. | c:\work2\sqlite\sqlite3.c | 80 171 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'idx' can be reduced. |
The scope of the variable 'pColl' can be reduced. | c:\work2\sqlite\sqlite3.c | 80 172 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pColl' can be reduced. |
The scope of the variable 'bRev' can be reduced. | c:\work2\sqlite\sqlite3.c | 80 173 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'bRev' can be reduced. |
The scope of the variable 'rc' can be reduced. | c:\work2\sqlite\sqlite3.c | 73 738 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'rc' can be reduced. |
The scope of the variable 'pgsz' can be reduced. | c:\work2\sqlite\sqlite3.c | 86 520 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pgsz' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 86 521 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'bFlush' can be reduced. | c:\work2\sqlite\sqlite3.c | 87 360 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'bFlush' can be reduced. |
The scope of the variable 'Z' can be reduced. | c:\work2\sqlite\sqlite3.c | 19 183 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'Z' can be reduced. |
The scope of the variable 'n' can be reduced. | c:\work2\sqlite\sqlite3.c | 19 639 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'n' can be reduced. |
The scope of the variable 'pEntry' can be reduced. | c:\work2\sqlite\sqlite3.c | 29 311 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pEntry' can be reduced. |
The scope of the variable 'zDbgBuf' can be reduced. | c:\work2\sqlite\sqlite3.c | 38 917 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'zDbgBuf' can be reduced. |
The scope of the variable 'rc' can be reduced. | c:\work2\sqlite\sqlite3.c | 42 415 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'rc' can be reduced. |
The scope of the variable 'i' can be reduced. | c:\work2\sqlite\sqlite3.c | 45 385 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'i' can be reduced. |
The scope of the variable 'p' can be reduced. | c:\work2\sqlite\sqlite3.c | 47 843 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'p' can be reduced. |
The scope of the variable 'aMagic' can be reduced. | c:\work2\sqlite\sqlite3.c | 48 320 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'aMagic' can be reduced. |
The scope of the variable 'iHdrOff' can be reduced. | c:\work2\sqlite\sqlite3.c | 50 120 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'iHdrOff' can be reduced. |
The scope of the variable 'nativeCksum' can be reduced. | c:\work2\sqlite\sqlite3.c | 55 000 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'nativeCksum' can be reduced. |
The scope of the variable 'cnt' can be reduced. | c:\work2\sqlite\sqlite3.c | 57 179 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'cnt' can be reduced. |
The scope of the variable 'p' can be reduced. | c:\work2\sqlite\sqlite3.c | 58 739 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'p' can be reduced. |
The scope of the variable 'p' can be reduced. | c:\work2\sqlite\sqlite3.c | 58 755 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'p' can be reduced. |
The scope of the variable 'pc' can be reduced. | c:\work2\sqlite\sqlite3.c | 60 193 | 2min 0s | Low | CppCheck.style.style.The scope of the variable 'pc' can be reduced. |
Statistics
Stat | FilePath | Line | Debt | Severity |
---|---|---|---|---|
Sum: | - | 15 833 851 | 6h 16min | - |
Average: | - | 84 223 | 2min 0s | - |
Minimum: | - | 562 | 2min 0s | - |
Maximum: | - | 138 373 | 2min 0s | - |
Standard deviation: | - | 38 265 | 0min 0s | - |
Variance: | - | 1 464 180 571 | 0min 0s | - |
Rule Violated: Redundant assignment of varname to itself. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="selfAssignment"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Low
}
1 field matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 field | FilePath | Line | Debt | Severity | Full Name |
---|---|---|---|---|---|
Redundant assignment of 'yymsp[0].minor.yy0' to itself. | c:\work2\sqlite\sqlite3.c | 137 325 | 2min 0s | Low | CppCheck.warning.warning.Redundant assignment of 'yymsp[0].minor.yy0' to itself. |
Statistics
Stat | FilePath | Line | Debt | Severity |
---|---|---|---|---|
Sum: | - | 137 325 | 2min 0s | - |
Average: | - | 137 325 | 2min 0s | - |
Minimum: | - | 137 325 | 2min 0s | - |
Maximum: | - | 137 325 | 2min 0s | - |
Standard deviation: | - | 0 | 0min 0s | - |
Variance: | - | 0 | 0min 0s | - |
Rule Violated: Consecutive return, break, continue, goto or throw statements are unnecessary. |
warnif count > 0 from issue in ImportedIssues where issue.ToolName=="CppCheck" && issue.Type=="duplicateBreak"
select new { issue, issue.FilePath, Line = issue.BeginLine ,
Debt = 2.ToMinutes().ToDebt(),
Severity =Severity.Low
}
1 field matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
1 field | FilePath | Line | Debt | Severity | Full Name |
---|---|---|---|---|---|
Consecutive return, break, continue, goto or throw statements are unnecessary. | c:\work2\sqlite\sqlite3.c | 81 812 | 2min 0s | Low | CppCheck.style.style.Consecutive return, break, continue, goto or throw statements are unnecessary. |
Statistics
Stat | FilePath | Line | Debt | Severity |
---|---|---|---|---|
Sum: | - | 81 812 | 2min 0s | - |
Average: | - | 81 812 | 2min 0s | - |
Minimum: | - | 81 812 | 2min 0s | - |
Maximum: | - | 81 812 | 2min 0s | - |
Standard deviation: | - | 0 | 0min 0s | - |
Variance: | - | 0 | 0min 0s | - |
Naming Conventions | 220 |
Rule Violated: Types name should begin with an Upper character |
warnif count > 0 (from t in Types where
!t.NameLike (@"^[A-Z]") // The name of a type should begin with an Upper letter.
&& // Except if it is generated by compiler or ...
!t.IsThirdParty && !t.IsGlobal
select new { t, t.NbLinesOfCode }).Take(10)
10 types matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
10 types | # lines of code (LOC) | Full Name |
---|---|---|
sqlite3_file | 0 | <d>SQLite.<f>sqlite3·h.sqlite3_file |
sqlite3_io_methods | 0 | <d>SQLite.<f>sqlite3·h .sqlite3_io_methods |
sqlite3_vfs | 0 | <d>SQLite.<f>sqlite3·h.sqlite3_vfs |
sqlite3_mem_methods | 0 | <d>SQLite.<f>sqlite3·h .sqlite3_mem_methods |
sqlite3_module | 0 | <d>SQLite.<f>sqlite3·h.sqlite3_module |
sqlite3_index_info | 0 | <d>SQLite.<f>sqlite3·h .sqlite3_index_info |
sqlite3_index_info+sqlite3_index_constra int | 0 | <d>SQLite.<f>sqlite3·h .sqlite3_index_info+sqlite3_index_constr aint |
sqlite3_index_info+sqlite3_index_orderby | 0 | <d>SQLite.<f>sqlite3·h .sqlite3_index_info+sqlite3_index_orderb y |
sqlite3_index_info+sqlite3_index_constra int_usage | 0 | <d>SQLite.<f>sqlite3·h .sqlite3_index_info+sqlite3_index_constr aint_usage |
sqlite3_vtab | 0 | <d>SQLite.<f>sqlite3·h.sqlite3_vtab |
Statistics
Stat | # lines of code (LOC) |
---|---|
Sum: | 0 |
Average: | 0 |
Minimum: | 0 |
Maximum: | 0 |
Standard deviation: | 0 |
Variance: | 0 |
Rule Violated: Avoid methods with name too long |
warnif count > 0 from m in Application.Methods where
!m.IsGeneratedByCompiler
&& m.SimpleName.Length > 35 && !m.IsThirdParty
select new { m, m.SimpleName }
// The regex matches methods with name longer
// than 35 characters.
// Method Name doesn't contain the type and namespace
// prefix, FullName does.
// The regex computes the method name length from
// the beginning until the first open parenthesis
// or first lower than (for generic methods).
2 methods matched
-
Formatting: bold means added, underlined means code was changed,
strike-boldmeans removed (since baseline)
2 methods | SimpleName | Full Name |
---|---|---|
sqlite3SelectAddColumnTypeAndCollation (Parse*,Table*,Select*) | sqlite3SelectAddColumnTypeAndCollation | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3SelectAddColumnTypeAndCollation (Parse*,Table*,Select*) |
sqlite3RegisterPerConnectionBuiltinFunct ions(sqlite3*) | sqlite3RegisterPerConnectionBuiltinFunctions | <d>SQLite.<f>sqlite3·c.__Globals .sqlite3RegisterPerConnectionBuiltinFunc tions(sqlite3*) |
Statistics
Stat | SimpleName |
---|---|
Sum: | - |
Average: | - |
Minimum: | - |
Maximum: | - |
Standard deviation: | - |
Variance: | - |
Quality Gates
|
Code Query: Quality Gates Evolution |
8 quality gates matched
8 quality gates | Evolution | BaselineStatus | Status | BaselineValue | Value | Full Name |
---|---|---|---|---|---|---|
Blocker Issues | Pass | Pass | 0 issues | 0 issues | Quality Gate | |
Critical Issues | Warn | Warn | 7 issues | 7 issues | Quality Gate | |
New Blocker / Critical / Major Issues | N/A | N/A | Pass | null | 0 issues | Quality Gate |
Critical Rules Violated | Fail | Fail | 3 rules | 3 rules | Quality Gate | |
Percentage Debt | Pass | Pass | 9.79 % | 9.79 % | Quality Gate | |
New Debt since Baseline | N/A | N/A | Pass | null | 0 man-days | Quality Gate |
Debt Rating per Namespace | Pass | Pass | 0 namespaces | 0 namespaces | Quality Gate | |
New Annual Interest since Baseline | N/A | N/A | Pass | null | 0 man-days | Quality Gate |
Statistics
Stat | Evolution | BaselineStatus | Status | BaselineValue | Value |
---|---|---|---|---|---|
Sum: | - | - | - | - | - |
Average: | - | - | - | - | - |
Minimum: | - | - | - | - | - |
Maximum: | - | - | - | - | - |
Standard deviation: | - | - | - | - | - |
Variance: | - | - | - | - | - |
Quality Gate Pass: Percentage Code Coverage |
Scalar Result: N/A %
Quality Gate Pass: Percentage Coverage on New Code |
Scalar Result: N/A %
Quality Gate Pass: Percentage Coverage on Refactored Code |
Scalar Result: N/A %
Quality Gate Pass: Blocker Issues |
No issue matched
Quality Gate Warn: Critical Issues |
7 issues matched
7 issues | Severity | Debt | Annual Interest | Full Name |
---|---|---|---|---|
Critical issue on: SQLite.sqlite3·c | Critical | 1d 2h | 2h 0min | Rule violated: Files too big - critical |
Critical issue on: SQLite.shell·c | Critical | 1d 2h | 2h 0min | Rule violated: Files too big - critical |
Critical issue on: <d>SQLite.<f >sqlite3·c.sqlite3_api_routines | Critical | 1d 2h | 2h 0min | Rule violated: Avoid types with too many fields |
Critical issue on: <d>SQLite.<f >sqlite3·c.__Globals.sqlite3VdbeExec (Vdbe*) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: <d>SQLite.<f >sqlite3·c.__Globals.sqlite3Pragma (Parse*,Token*,Token*,Token*,int) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: <d>SQLite.<f>shell·c .__Globals.do_meta_command(char* ,ShellState*) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Critical issue on: <d>SQLite.<f>sqlite3·c.__Globals .sqlite3WhereCodeOneLoopStart(WhereInfo* ,int,Bitmask) | Critical | 6h 0min | 2h 0min | Rule violated: Avoid methods with too many local variables |
Statistics
Stat | Severity | Debt | Annual Interest |
---|---|---|---|
Sum: | - | 6d 6h | 1d 6h |
Average: | - | 7h 42min | 2h 0min |
Minimum: | - | 6h 0min | 2h 0min |
Maximum: | - | 1d 2h | 2h 0min |
Standard deviation: | - | 1h 58min | 0min 0s |
Variance: | - | 1 763d | 0min 0s |
Quality Gate Pass: New Blocker / Critical / Major Issues |
No issue matched
Quality Gate Fail: Critical Rules Violated |
3 rules matched
3 rules | issues | Full Name |
---|---|---|
Files too big - critical | 2 issues | Rule |
Avoid methods too big, too complex | 266 issues | Rule |
Avoid methods with too many parameters | 40 issues | Rule |
Statistics
Stat | issues |
---|---|
Sum: | 308 |
Average: | 102.67 |
Minimum: | 2 |
Maximum: | 266 |
Standard deviation: | 116.53 |
Variance: | 13 580 |
Quality Gate Pass: Percentage Debt |
Scalar Result: 9.79 %
Quality Gate Pass: New Debt since Baseline |
Scalar Result: 0 man-days
Quality Gate Pass: Debt Rating per Namespace |
No file matched
Quality Gate Pass: New Annual Interest since Baseline |
Scalar Result: 0 man-days
Code Diff Summary
Code Query: New Projects |
from a in Application.Projects where a.WasAdded()
select new { a, a.NbLinesOfCode }
No project matched
Code Query: Projects removed |
from a in codeBase.OlderVersion().Application.Projects where a.WasRemoved()
select new { a, a.NbLinesOfCode }
No project matched
Code Query: Projects where code was changed |
from a in Application.Projects where a.CodeWasChanged()
select new { a, a.NbLinesOfCode,
oldNbLinesOfCode = a.OlderVersion().NbLinesOfCode ,
delta = (int) a.NbLinesOfCode - a.OlderVersion().NbLinesOfCode }
No project matched
Code Query: New files |
from f in Application.Files where
!f.ParentProject.WasAdded() &&
f.WasAdded()
select new { f, f.NbLinesOfCode }
No file matched
Code Query: Files removed |
from f in codeBase.OlderVersion().Application.Files where
!f.ParentProject.WasRemoved() &&
f.WasRemoved()
select new { f, f.NbLinesOfCode }
No file matched
Code Query: Files where code was changed |
from f in Application.Files where f.CodeWasChanged()
select new { f, f.NbLinesOfCode,
oldNbLinesOfCode = f.OlderVersion().NbLinesOfCode ,
delta = (int) f.NbLinesOfCode - f.OlderVersion().NbLinesOfCode }
No file matched
Code Query: New methods |
from m in Application.Methods where
!m.ParentType.WasAdded() &&
m.WasAdded()
select new { m, m.NbLinesOfCode }
No method matched
Code Query: Methods removed |
from m in codeBase.OlderVersion().Application.Methods where
!m.ParentType.WasRemoved() &&
m.WasRemoved()
select new { m, m.NbLinesOfCode }
No method matched
Code Query: Methods where code was changed |
// To visualize changes in code, right-click a matched method and select:
// - Compare older and newer versions of source file
// - Compare older and newer versions disassembled with Reflector
from m in Application.Methods where m.CodeWasChanged()
select new { m, m.NbLinesOfCode,
oldNbLinesOfCode = m.OlderVersion().NbLinesOfCode ,
delta = (int?) m.NbLinesOfCode - m.OlderVersion().NbLinesOfCode }
No method matched
Code Query: Methods directly calling one or several methods changed |
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()
from m in JustMyCode.Methods.UsingAny(methodsChanged ) where
!m.CodeWasChanged() &&
!m.WasAdded()
let methodsChangedCalled = m.MethodsCalled.Intersect(methodsChanged)
select new { m, methodsChangedCalled }
No method matched
Code Query: Methods indirectly calling one or several methods changed |
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()
// 'depth' represents a code metric defined on methods using
// directly or indirectly any method where code was changed.
let depth = JustMyCode.Methods.DepthOfIsUsingAny(methodsChanged)
from m in depth.DefinitionDomain where
!m.CodeWasChanged() &&
!m.WasAdded()
let methodsChangedDirectlyUsed = m.MethodsCalled.Intersect(methodsChanged)
let depthOfUsingMethodsChanged = depth[m]
orderby depthOfUsingMethodsChanged
select new { m, depthOfUsingMethodsChanged, methodsChangedDirectlyUsed }
No method matched
Code Query: New fields |
from f in Application.Fields where
!f.ParentType.WasAdded() &&
f.WasAdded()
select new { f }
No field matched
Code Query: Fields removed |
from f in codeBase.OlderVersion().Application.Fields where
!f.ParentType.WasRemoved() &&
f.WasRemoved()
select new { f }
No field matched
Code Query: Third party methods that were not used and that are now used |
from m in ThirdParty.Methods where
m.IsUsedRecently() &&
!m.ParentType.IsUsedRecently()
select m
No method matched
Code Query: Third party methods that were used and that are not used anymore |
from m in codeBase.OlderVersion().Methods where
m.IsNotUsedAnymore() &&
!m.ParentType.IsNotUsedAnymore()
select m
No method matched
Code Query: Third party fields that were not used and that are now used |
from f in ThirdParty.Fields where
f.IsUsedRecently() &&
!f.ParentType.IsUsedRecently()
select f
No field matched
Code Query: Third party fields that were used and that are not used anymore |
from f in codeBase.OlderVersion().Fields where
f.IsNotUsedAnymore() &&
!f.ParentType.IsNotUsedAnymore()
select f
No field matched
Code Coverage
Validated Rule: C.R.A.P method code metric |
• How to Fix Issues: In such situation, it is recommended to both refactor the complex method logic into several smaller and less complex methods (that might belong to some new types especially created), and also write unit-tests to full cover the refactored logic. You'll find code impossible to cover by unit-tests, like calls to MessageBox.Show(). An infrastructure must be defined to be able to mock such code at test-time.
No method matched
Validated Rule: Complex methods partially covered by tests should be 100% covered |
• How to Fix Issues: In such situation, it is recommended to both: • refactor the complex method logic into several smaller and less complex methods (that might belong to some new types especially created), • and also write more unit-tests to full cover the refactored logic. You'll find code impossible to cover by unit-tests, like calls to MessageBox.Show(). An infrastructure must be defined to be able to mock such code at test-time.
No method matched
Validated Rule: Method changed poorly covered |
• How to Fix Issues: Write unit-tests to cover the code of most methods and classes refactored.
No method matched
Validated Rule: Method added poorly covered |
• How to Fix Issues: Write unit-tests to cover the code of most methods and classes added.
No method matched
Validated Rule: Types 95% to 99% covered |
• How to Fix Issues: Write more unit-tests dedicated to cover code not covered yet. If you find some hard-to-test code, it is certainly a sign that this code is not well designed and hence, needs refactoring.
No type matched
Validated Rule: Namespaces 95% to 99% covered |
• How to Fix Issues: Write more unit-tests dedicated to cover code not covered yet in the namespace. If you find some hard-to-test code, it is certainly a sign that this code is not well designed and hence, needs refactoring.
No file matched
Validated Rule: Types tagged with FullCoveredAttribute should be 100% covered |
• How to Fix Issues: Write more unit-tests dedicated to cover code of matched classes not covered yet. If you find some hard-to-test code, it is certainly a sign that this code is not well designed and hence, needs refactoring.
No type matched
Validated Rule: Types 100% covered should be tagged with FullCoveredAttribute |
• How to Fix Issues: Just tag types 100% covered by tests with the FullCoveredAttribute that can be found in NDepend.API.dll, or by an attribute of yours defined in your own code (in which case this rule must be adapted).
No type matched
Code Query: Types not covered at all |
No type matched
Code Query: Namespaces not covered at all |
No file matched
Code Query: Test Methods |
No method matched
Code Query: Methods directly called by test Methods |
No method matched
Code Query: Methods directly and indirectly called by test Methods |
No method matched
Trend Charts
Lines of Code
Rules Violated
Rules Violations
Max
Average
Third-Party Usage
Projects Dependencies
Assembly | Depends on | Is referenced by |
---|---|---|
WindowsAPI v1.0.0.0 | - | SQLite v1.0.0.0 ; |
Externals v1.0.0.0 | - | SQLite v1.0.0.0 ; |
SQLite v1.0.0.0 | WindowsAPI v1.0.0.0 ; Externals v1.0.0.0 ; | - |
Projects Build Order
- SQLite
Projects Build Order
- SQLite
Analysis Log : Information and Warnings
The Warnings can reveal potential flaws concerning the health of the build process.
A particular warn can be disabled through the CppDepend interactive UI, panel Error List, tick the checkbox Disabled corresponding to the warn to disable.
Message | |
---|---|
Begin analysis with CppDepend v2017.1.0.8903 | |
The parser used is Clang | |
4 Cores are used, you can change this value from the menu Tools->Options->Parser Configuration | |
No dependency cycle detected in Projects referencement graph. | |
Analyse dependencies of your application. | |
Log trend metrics values. | |
Execute queries and rules. | |
1 quality gate fail. - 'Critical Rules Violated' value 3 rules greater than fail threshold 0 rules | |
CppDepend analysis done. Duration: 00:00:55 | |
Building the report (standard). |