microsoft / pgtoolsservice
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 12% duplication:
    • 13,443 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,677 duplicated lines
  • 166 duplicates
system12% (1,677 lines)
Duplication per Extension
py12% (1,639 lines)
ps155% (38 lines)
Duplication per Component (primary)
pgsmo/objects20% (594 lines)
ossdbtoolsservice/language10% (264 lines)
ossdbtoolsservice/disaster_recovery31% (238 lines)
ossdbtoolsservice/capabilities40% (194 lines)
mysqlsmo/objects37% (165 lines)
ossdbtoolsservice/object_explorer6% (60 lines)
smo/utils23% (54 lines)
scripts55% (38 lines)
ossdbtoolsservice/driver6% (26 lines)
ossdbtoolsservice/query_execution4% (24 lines)
ossdbtoolsservice/workspace3% (14 lines)
smo/common2% (6 lines)
mysqlsmo0% (0 lines)
ossdbtoolsservice0% (0 lines)
ossdbtoolsservice/admin0% (0 lines)
ossdbtoolsservice/connection0% (0 lines)
ossdbtoolsservice/converters0% (0 lines)
ossdbtoolsservice/edit_data0% (0 lines)
ossdbtoolsservice/hosting0% (0 lines)
ossdbtoolsservice/metadata0% (0 lines)
ossdbtoolsservice/parsers0% (0 lines)
ossdbtoolsservice/query0% (0 lines)
ossdbtoolsservice/scripting0% (0 lines)
ossdbtoolsservice/serialization0% (0 lines)
ossdbtoolsservice/tasks0% (0 lines)
ossdbtoolsservice/utils0% (0 lines)
pgsmo0% (0 lines)
ROOT0% (0 lines)
smo0% (0 lines)

Duplication Between Components (50+ lines)

G ossdbtoolsservice/language ossdbtoolsservice/language smo/utils smo/utils ossdbtoolsservice/language--smo/utils 108 mysqlsmo/objects mysqlsmo/objects pgsmo/objects pgsmo/objects mysqlsmo/objects--pgsmo/objects 55

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 166 duplicates...
Size#FoldersFilesLinesCode
54 x 2 ossdbtoolsservice/language
smo/utils
keywords.py
templating.py
28:81 (63%)
327:380 (24%)
view
32 x 2 ossdbtoolsservice/capabilities/connection_options
ossdbtoolsservice/capabilities/connection_options
mysql_connection_options.py
pg_connection_options.py
33:64 (20%)
34:65 (19%)
view
29 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
constraints.py
177:209 (10%)
352:384 (10%)
view
18 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
constraints.py
177:198 (6%)
273:294 (6%)
view
18 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
constraints.py
240:263 (6%)
322:346 (6%)
view
18 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
constraints.py
273:294 (6%)
352:373 (6%)
view
17 x 2 ossdbtoolsservice/language/completion
ossdbtoolsservice/language/completion
mysqlcompleter.py
pgcompleter.py
137:158 (18%)
684:705 (3%)
view
15 x 2 ossdbtoolsservice/capabilities/connection_options
ossdbtoolsservice/capabilities/connection_options
mysql_connection_options.py
pg_connection_options.py
17:31 (9%)
18:32 (8%)
view
15 x 2 ossdbtoolsservice/language/completion
ossdbtoolsservice/language/completion
mysqlcompleter.py
pgcompleter.py
102:123 (16%)
312:333 (2%)
view
14 x 2 mysqlsmo/objects/table
mysqlsmo/objects/view
table.py
view.py
29:48 (30%)
36:56 (30%)
view
13 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
constraints.py
134:150 (4%)
314:330 (4%)
view
13 x 2 ossdbtoolsservice/disaster_recovery/contracts
ossdbtoolsservice/disaster_recovery/contracts
backup.py
restore.py
373:385 (3%)
256:268 (5%)
view
13 x 2 ossdbtoolsservice/disaster_recovery/contracts
ossdbtoolsservice/disaster_recovery/contracts
backup.py
restore.py
269:281 (3%)
200:212 (5%)
view
13 x 2 pgsmo/objects/database
pgsmo/objects/schema
database.py
schema.py
168:184 (7%)
65:81 (10%)
view
13 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
index.py
126:142 (4%)
78:94 (11%)
view
12 x 2 ossdbtoolsservice/capabilities/connection_options
ossdbtoolsservice/capabilities/connection_options
mysql_connection_options.py
pg_connection_options.py
119:130 (7%)
113:124 (7%)
view
12 x 2 mysqlsmo/objects/function
mysqlsmo/objects/procedure
function.py
procedure.py
36:54 (33%)
36:54 (33%)
view
12 x 2 ossdbtoolsservice/query_execution
ossdbtoolsservice/query_execution
query_execution_service.py
query_execution_service.py
177:190 (3%)
217:230 (3%)
view
12 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
constraints.py
154:169 (4%)
330:346 (4%)
view
12 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
constraints.py
154:169 (4%)
248:263 (4%)
view
Duplicated Units
The list of top 7 duplicated units.
See data for all 7 unit duplicates...
Size#FoldersFilesLinesCode
18 x 2 ossdbtoolsservice/language/completion
ossdbtoolsservice/language/completion
mysqlcompleter.py
pgcompleter.py
0:0 
0:0 
view
17 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
constraints.py
0:0 
0:0 
view
9 x 2 pgsmo/objects/table_objects
pgsmo/objects/table_objects
constraints.py
constraints.py
0:0 
0:0 
view
8 x 2 mysqlsmo/objects/function
mysqlsmo/objects/procedure
function.py
procedure.py
0:0 
0:0 
view
6 x 2 pgsmo/objects/table
pgsmo/objects/view
table.py
view_base.py
0:0 
0:0 
view
6 x 2 mysqlsmo/objects/database
mysqlsmo/objects/udf_function
database.py
udf_function.py
0:0 
0:0 
view
18 x 2 mysqlsmo/objects/collation
mysqlsmo/objects/column
collation.py
column.py
0:0 
0:0 
view