microsoft / pgtoolsservice
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 1,761 units with 9,567 lines of code in units (66.0% of code).
    • 1 very complex units (154 lines of code)
    • 2 complex units (95 lines of code)
    • 15 medium complex units (480 lines of code)
    • 63 simple units (1,142 lines of code)
    • 1,680 very simple units (7,696 lines of code)
1% | <1% | 5% | 11% | 80%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
py1% | <1% | 5% | 11% | 80%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
ossdbtoolsservice/language6% | 4% | 7% | 22% | 59%
ossdbtoolsservice/hosting0% | 0% | 20% | 21% | 58%
ossdbtoolsservice/driver0% | 0% | 21% | 6% | 71%
smo/utils0% | 0% | 26% | 6% | 67%
ossdbtoolsservice/object_explorer0% | 0% | 5% | 19% | 74%
ossdbtoolsservice/connection0% | 0% | 12% | 13% | 74%
ossdbtoolsservice/disaster_recovery0% | 0% | 16% | 0% | 83%
ossdbtoolsservice/query0% | 0% | 3% | 16% | 80%
ossdbtoolsservice/query_execution0% | 0% | 5% | 21% | 73%
pgsmo/objects0% | 0% | 0% | 2% | 97%
ossdbtoolsservice/edit_data0% | 0% | 0% | 11% | 88%
ossdbtoolsservice/workspace0% | 0% | 0% | 12% | 87%
ossdbtoolsservice/serialization0% | 0% | 0% | 75% | 25%
ossdbtoolsservice/utils0% | 0% | 0% | 19% | 80%
mysqlsmo/objects0% | 0% | 0% | 0% | 100%
ossdbtoolsservice/converters0% | 0% | 0% | 0% | 100%
smo/common0% | 0% | 0% | 0% | 100%
ossdbtoolsservice/tasks0% | 0% | 0% | 0% | 100%
ossdbtoolsservice/capabilities0% | 0% | 0% | 0% | 100%
ossdbtoolsservice/scripting0% | 0% | 0% | 0% | 100%
ossdbtoolsservice/metadata0% | 0% | 0% | 0% | 100%
ossdbtoolsservice/parsers0% | 0% | 0% | 0% | 100%
ossdbtoolsservice/admin0% | 0% | 0% | 0% | 100%
ossdbtoolsservice0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
def suggest_based_on_last_token()
in ossdbtoolsservice/language/completion/packages/sqlcompletion.py
154 52 2
def get_column_matches()
in ossdbtoolsservice/language/completion/pgcompleter.py
53 32 3
def get_join_condition_matches()
in ossdbtoolsservice/language/completion/pgcompleter.py
42 26 3
def __init__()
in ossdbtoolsservice/driver/types/pymysql_driver.py
36 24 3
def get_join_matches()
in ossdbtoolsservice/language/completion/pgcompleter.py
37 24 3
def extract_table_identifiers()
in ossdbtoolsservice/language/completion/packages/parseutils/tables.py
42 22 2
def needs_quoting()
in smo/utils/templating.py
38 21 2
def _bg_refresh()
in ossdbtoolsservice/language/completion_refresher.py
28 18 4
def _arg_list()
in ossdbtoolsservice/language/completion/pgcompleter.py
23 15 3
def execute()
in ossdbtoolsservice/query/batch.py
23 15 2
def _dispatch_message()
in ossdbtoolsservice/hosting/json_rpc_server.py
48 14 2
def _get_pg_exe_path()
in ossdbtoolsservice/disaster_recovery/disaster_recovery_service.py
33 13 4
def __init__()
in ossdbtoolsservice/driver/types/psycopg_driver.py
24 13 3
def populate_scoped_cols()
in ossdbtoolsservice/language/completion/pgcompleter.py
31 13 3
def _handle_create_session_request()
in ossdbtoolsservice/object_explorer/object_explorer_service.py
33 12 3
def connect()
in ossdbtoolsservice/connection/connection_service.py
33 11 2
def _try_read_headers()
in ossdbtoolsservice/hosting/json_reader.py
33 11 1
def _get_query_text_from_execute_params()
in ossdbtoolsservice/query_execution/query_execution_service.py
18 11 2
def extract_ctes()
in ossdbtoolsservice/language/completion/packages/parseutils/ctes.py
24 10 1
def send_definition_using_connected_completions()
in ossdbtoolsservice/language/language_service.py
30 10 5