mysql / mysql-workbench
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
txt
tpl
resx
vcxproj
filters
glade
props
csproj
plist
cmd
in
mak
properties
yy
ini
vbs
pro
i
nim
natvis
lex
asp
clang-format
tcl
lua
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main806841 LOC (87%) 3,388 files
test32332 LOC (3%) 211 files
generated25364 LOC (2%) 52 files
build and deployment9263 LOC (1%) 47 files
other44576 LOC (4%) 493 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
glade
vcxproj
filters
tpl
i
vbs
props
cmd
in
pro
yy
lex
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 3388 files match defined criteria (806,841 LOC, 100.0% vs. main code):
    • 783 *.cpp files (272,788 LOC)
    • 398 *.xml files (166,591 LOC)
    • 158 *.cxx files (79,792 LOC)
    • 1,067 *.h files (79,242 LOC)
    • 166 *.py files (66,846 LOC)
    • 224 *.cs files (42,005 LOC)
    • 113 *.mm files (29,714 LOC)
    • 214 *.sql files (17,808 LOC)
    • 24 *.glade files (11,302 LOC)
    • 43 *.vcxproj files (9,185 LOC)
    • 42 *.filters files (6,270 LOC)
    • 2 *.g4 files (5,436 LOC)
    • 10 *.cmake files (4,229 LOC)
    • 54 *.tpl files (2,924 LOC)
    • 3 *.hh files (2,514 LOC)
    • 26 *.m files (2,003 LOC)
    • 3 *.cc files (1,833 LOC)
    • 2 *.i files (1,163 LOC)
    • 3 *.vbs files (968 LOC)
    • 4 *.c files (959 LOC)
    • 3 *.css files (523 LOC)
    • 19 *.props files (516 LOC)
    • 1 *.js files (443 LOC)
    • 6 *.html files (407 LOC)
    • 6 *.cmd files (387 LOC)
    • 5 *.in files (310 LOC)
    • 3 *.pro files (301 LOC)
    • 2 *.java files (237 LOC)
    • 1 *.yy files (91 LOC)
    • 1 *.pl files (25 LOC)
    • 1 *.lex files (20 LOC)
    • 1 *.yaml files (9 LOC)
  • " *.cpp" is biggest, containing 33.81% of LOC.
  • " *.yaml" is smallest, containing 0% of LOC.


*.cpp272788 LOC (33%) 783 files
*.xml166591 LOC (20%) 398 files
*.cxx79792 LOC (9%) 158 files
*.h79242 LOC (9%) 1,067 files
*.py66846 LOC (8%) 166 files
*.cs42005 LOC (5%) 224 files
*.mm29714 LOC (3%) 113 files
*.sql17808 LOC (2%) 214 files
*.glade11302 LOC (1%) 24 files
*.vcxproj9185 LOC (1%) 43 files
*.filters6270 LOC (<1%) 42 files
*.g45436 LOC (<1%) 2 files
*.cmake4229 LOC (<1%) 10 files
*.tpl2924 LOC (<1%) 54 files
*.hh2514 LOC (<1%) 3 files
*.m2003 LOC (<1%) 26 files
*.cc1833 LOC (<1%) 3 files
*.i1163 LOC (<1%) 2 files
*.vbs968 LOC (<1%) 3 files
*.c959 LOC (<1%) 4 files
*.css523 LOC (<1%) 3 files
*.props516 LOC (<1%) 19 files
*.js443 LOC (<1%) 1 file
*.html407 LOC (<1%) 6 files
*.cmd387 LOC (<1%) 6 files
*.in310 LOC (<1%) 5 files
*.pro301 LOC (<1%) 3 files
*.java237 LOC (<1%) 2 files
*.yy91 LOC (<1%) 1 file
*.pl25 LOC (<1%) 1 file
*.lex20 LOC (<1%) 1 file
*.yaml9 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
vcxproj
in
mak
natvis
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[-]tests/.*".
    • files with paths like ".*/test_.*".
    • files with paths like ".*/test[.].*".
    • files with paths like ".*_test[.].*".
    • files with paths like ".*[.][Tt]est[.].*".
    • files with paths like ".*[.]test[.].*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*UnitTests[.][a-zA-Z0-9_]+".
  • 211 files match defined criteria (32,332 LOC, 4.0% vs. main code):
    • 91 *.cpp files (22,169 LOC)
    • 25 *.py files (4,351 LOC)
    • 47 *.h files (2,135 LOC)
    • 13 *.cxx files (2,113 LOC)
    • 2 *.mm files (580 LOC)
    • 22 *.sql files (436 LOC)
    • 1 *.vcxproj files (166 LOC)
    • 2 *.c files (111 LOC)
    • 1 *.html files (88 LOC)
    • 2 *.xml files (58 LOC)
    • 2 *.m files (47 LOC)
    • 1 *.in files (32 LOC)
    • 1 *.mak files (26 LOC)
    • 1 *.natvis files (20 LOC)
  • " *.cpp" is biggest, containing 68.57% of LOC.
  • " *.natvis" is smallest, containing 0.06% of LOC.


*.cpp22169 LOC (68%) 91 files
*.py4351 LOC (13%) 25 files
*.h2135 LOC (6%) 47 files
*.cxx2113 LOC (6%) 13 files
*.mm580 LOC (1%) 2 files
*.sql436 LOC (1%) 22 files
*.vcxproj166 LOC (<1%) 1 file
*.c111 LOC (<1%) 2 files
*.html88 LOC (<1%) 1 file
*.xml58 LOC (<1%) 2 files
*.m47 LOC (<1%) 2 files
*.in32 LOC (<1%) 1 file
*.mak26 LOC (<1%) 1 file
*.natvis20 LOC (<1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
txt
cmd
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]cs" AND any line of content like "[/][/][ ]*".
    • files with paths like ".*/generated/.*".
    • files with paths like ".*[.](html|html|xhtml)" AND any line of content like "[ ]*[<]meta name[=]"generator" .*".
  • 52 files match defined criteria (25,364 LOC, 3.1% vs. main code):
    • 22 *.h files (15,401 LOC)
    • 11 *.html files (8,920 LOC)
    • 15 *.cs files (867 LOC)
    • 2 *.txt files (75 LOC)
    • 1 *.cmd files (66 LOC)
    • 1 *.sh files (35 LOC)
  • " *.h" is biggest, containing 60.72% of LOC.
  • " *.sh" is smallest, containing 0.14% of LOC.


*.h15401 LOC (60%) 22 files
*.html8920 LOC (35%) 11 files
*.cs867 LOC (3%) 15 files
*.txt75 LOC (<1%) 2 files
*.cmd66 LOC (<1%) 1 file
*.sh35 LOC (<1%) 1 file
Build and Deployment Code
Source code used to configure or support build and deployment process.
mak
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]csproj".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]mak".
    • files with paths like ".*[.]bat".
    • files with paths like ".*/build[.]xml".
  • 47 files match defined criteria (9,263 LOC, 1.1% vs. main code):
    • 5 *.mak files (6,157 LOC)
    • 17 *.csproj files (2,294 LOC)
    • 12 *.bat files (413 LOC)
    • 12 *.sh files (394 LOC)
    • 1 *.xml files (5 LOC)
  • " *.mak" is biggest, containing 66.47% of LOC.
  • " *.xml" is smallest, containing 0.05% of LOC.


*.mak6157 LOC (66%) 5 files
*.csproj2294 LOC (24%) 17 files
*.bat413 LOC (4%) 12 files
*.sh394 LOC (4%) 12 files
*.xml5 LOC (<1%) 1 file
Other Code
txt
ini
plist
properties
nim
asp
tcl
lua
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]plist".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*[.](rst|rest|resttxt|rsttxt)".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]xib".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[Ee]xamples/.*".
  • 493 files match defined criteria (44,576 LOC, 5.5% vs. main code):
    • 34 *.xib files (22,472 LOC)
    • 402 *.txt files (15,618 LOC)
    • 10 *.md files (4,263 LOC)
    • 4 *.ini files (570 LOC)
    • 5 *.json files (533 LOC)
    • 13 *.plist files (392 LOC)
    • 6 *.rst files (310 LOC)
    • 3 *.pl files (200 LOC)
    • 5 *.properties files (95 LOC)
    • 1 *.d files (24 LOC)
    • 1 *.nim files (24 LOC)
    • 1 *.cxx files (12 LOC)
    • 1 *.html files (12 LOC)
    • 1 *.asp files (12 LOC)
    • 1 *.py files (9 LOC)
    • 1 *.tcl files (9 LOC)
    • 1 *.vb files (6 LOC)
    • 1 *.rb files (6 LOC)
    • 1 *.php files (5 LOC)
    • 1 *.lua files (4 LOC)
  • " *.xib" is biggest, containing 50.41% of LOC.
  • " *.lua" is smallest, containing 0.01% of LOC.


*.xib22472 LOC (50%) 34 files
*.txt15618 LOC (35%) 402 files
*.md4263 LOC (9%) 10 files
*.ini570 LOC (1%) 4 files
*.json533 LOC (1%) 5 files
*.plist392 LOC (<1%) 13 files
*.rst310 LOC (<1%) 6 files
*.pl200 LOC (<1%) 3 files
*.properties95 LOC (<1%) 5 files
*.d24 LOC (<1%) 1 file
*.nim24 LOC (<1%) 1 file
*.cxx12 LOC (<1%) 1 file
*.html12 LOC (<1%) 1 file
*.asp12 LOC (<1%) 1 file
*.py9 LOC (<1%) 1 file
*.tcl9 LOC (<1%) 1 file
*.vb6 LOC (<1%) 1 file
*.rb6 LOC (<1%) 1 file
*.php5 LOC (<1%) 1 file
*.lua4 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.
  • *.cpp files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.xml files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.cxx files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.h files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.py files are analyzed with PythonAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Basic heuristic dependency analysis
  • *.cs files are analyzed with CSharpAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis (based on namespace heuristics)
  • *.mm files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.sql files are analyzed with SqlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.glade files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.vcxproj files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.filters files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.g4 files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.cmake files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.tpl files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.hh files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.m files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.cc files are analyzed with CppAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.i files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.vbs files are analyzed with VisualBasicAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.c files are analyzed with CStyleAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.css files are analyzed with CssAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.props files are analyzed with XmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.js files are analyzed with JavaScriptAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.html files are analyzed with HtmlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis
  • *.cmd files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.in files are analyzed with RustAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • No dependency analysis
  • *.pro files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.java files are analyzed with JavaAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Advanced heuristic dependency analysis (based on package names)
  • *.yy files are analyzed with JsonAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.pl files are analyzed with PerlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • Unit size analysis
    • Conditional complexity analysis
    • Basic heuristic dependency analysis
  • *.lex files are analyzed with DefaultLanguageAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Basic code cleaning (empty lines removed for LOC calculations and duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis
  • *.yaml files are analyzed with YamlAnalyzer:
    • All basic standard analyses supported (source code overview, duplication, file size, concerns, findings, metrics, controls)
    • Advanced code cleaning (empty lines and comments removed for LOC calculations, additional cleaning for duplication calculations)
    • No unit size analysis
    • No conditional complexity analysis
    • No dependency analysis


2025-05-09 19:49